:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#e2e8f0;--text:#0f172a;--text-dim:#64748b;--accent:#b02924;--accent-strong:#921f1c;--accent-light:#d8423c;--accent-tint:#fef2f2;--radius:.75rem;--shadow:0 1px 2px #0f172a0f, 0 1px 3px #0f172a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;padding:0}body{min-height:100dvh;font-size:16px;line-height:1.5}#root{flex-direction:column;min-height:100dvh;display:flex}.app-shell{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;flex:1;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.875rem 1.25rem;display:flex}.app-header__logo{flex-shrink:0;width:2rem;height:2rem}.app-title{flex:1;margin:0;font-size:1.0625rem;font-weight:600}.app-portal{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.app-main{flex-direction:column;flex:1;gap:1rem;padding:1.25rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card h2{margin:0 0 .5rem;font-size:1rem;font-weight:600}.card p{color:var(--text-dim);margin:0;font-size:.9375rem}.btn{appearance:none;border-radius:var(--radius);background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;padding:.75rem 1.25rem;font-weight:500}.btn:active{background:var(--accent-strong)}.btn--ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn--ghost:active{background:var(--surface-2)}.btn--link{color:var(--text-dim);background:0 0;border:0;min-height:44px;padding:.5rem;text-decoration:underline}.install{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:30rem;margin:0 auto;padding:2rem 1.25rem;display:flex}.install__head{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.install__logo{width:5rem;height:5rem}.install__head h1{margin:0;font-size:1.375rem;font-weight:650}.install__head p{color:var(--text-dim);margin:0}.install__steps{counter-reset:step;flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.install__step{counter-increment:step;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.install__step-head{align-items:center;gap:.75rem;display:flex}.install__step-head:before{content:counter(step);background:var(--accent-tint);width:1.75rem;height:1.75rem;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.875rem;font-weight:650;display:grid}.install__step-text{font-size:.9375rem}.install__shot{border:1px solid var(--border);background:var(--surface-2);border-radius:.5rem;width:100%;margin:.875rem 0 0;display:block}.install__note{background:var(--accent-tint);border-radius:var(--radius);color:var(--accent-strong);border:1px solid #fecaca;padding:.875rem 1rem;font-size:.875rem}.install__actions{flex-direction:column;align-items:center;gap:.5rem;display:flex}@media (width>=40rem){.app-main{width:100%;max-width:48rem;margin:0 auto;padding:2rem}.app-header{padding:1rem 2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.login{min-height:100dvh;padding:1.5rem;padding-bottom:max(1.5rem, env(safe-area-inset-bottom));background:var(--bg);place-items:center;display:grid}.login__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(24rem,100%);box-shadow:var(--shadow);flex-direction:column;gap:1rem;padding:1.75rem;display:flex}.login__logo{align-self:center;width:3.5rem;height:3.5rem}.login__card h1{text-align:center;margin:0;font-size:1.375rem}.login__portal{text-align:center;color:var(--text-dim);margin:-.75rem 0 0;font-size:.875rem}.field{color:var(--text-dim);flex-direction:column;gap:.35rem;font-size:.875rem;display:flex}.field input,.field select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.6rem .7rem;font-size:1rem}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-error{color:var(--accent-strong);background:var(--accent-tint);border-radius:.5rem;margin:0;padding:.6rem .75rem;font-size:.875rem}.form-notice{color:var(--text-dim);background:var(--surface-2);border-radius:.5rem;margin:0;padding:.6rem .75rem;font-size:.875rem}.app-signed-in{color:var(--text-dim);font-size:.875rem}.dev{flex-direction:column;gap:1.25rem;max-width:60rem;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex}.dev__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.dev__head h1{margin:0;font-size:1.25rem}.dev__sub{color:var(--text-dim);margin:.25rem 0 0;font-size:.875rem}.dev__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.dev__panel h2{margin:0 0 1rem;font-size:1rem}.dev__form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.25rem;display:flex}.dev__table-wrap{overflow-x:auto}.dev__table{border-collapse:collapse;width:100%;font-size:.875rem}.dev__table th,.dev__table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem .6rem}.dev__table th{color:var(--text-dim);font-weight:600}.dev__table select,.dev__table input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.375rem;padding:.25rem}.dev__id{color:var(--text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.portal-footer{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));text-align:center;margin-top:auto}.portal-footer__version{color:var(--text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem}
