/* Visual tokens and components copied from docs/web-ui/003-wireframe-auth.html (validated wireframes). */
/* ROOT:BEGIN (bloco copiado identico nos 5 arquivos 003-wireframe-*.html) */
:root{
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:40px;
  --radius:10px;--radius-lg:14px;--touch:44px;
  --bg:#0d1117;--surface:#161b22;--surface-2:#1f262e;--surface-3:#2a323c;
  --border:#30363d;--border-strong:#4a5460;
  --text:#e6edf3;--text-muted:#a0aab5;
  --accent:#2f6fe4;--accent-hover:#3d7cf0;--accent-press:#2459bd;--accent-text:#79b8ff;--accent-bg:#13243f;--on-accent:#ffffff;
  --focus:#79b8ff;
  --success:#3fb950;--success-bg:#12261a;
  --warn:#e3b341;--warn-bg:#2b2208;
  --danger:#ff7b72;--danger-bg:#2d1214;--danger-solid:#da3633;--danger-hover:#e5534b;--on-danger:#ffffff;
  --info:#58a6ff;--info-bg:#10243d;
  --term-bg:#010409;--term-text:#d0d7de;--term-dim:#8b949e;--term-line:#21262d;
  --term-green:#56d364;--term-amber:#e3b341;--term-blue:#79b8ff;--term-red:#ff7b72;
  --scrim:rgba(1,4,9,.72);--scrim-soft:rgba(1,4,9,.8);
  --shadow:0 8px 24px rgba(0,0,0,.45);
}
@media (prefers-color-scheme:light){
  :root{
    --bg:#f6f8fa;--surface:#ffffff;--surface-2:#eef1f4;--surface-3:#e1e6eb;
    --border:#d0d7de;--border-strong:#8c959f;
    --text:#1f2328;--text-muted:#59636e;
    --accent:#0b57d0;--accent-hover:#1a66e0;--accent-press:#0a4cb3;--accent-text:#0b57d0;--accent-bg:#e3eefc;--on-accent:#ffffff;
    --focus:#0b57d0;
    --success:#1a7f37;--success-bg:#e2f5e7;
    --warn:#8a5a00;--warn-bg:#fff3d1;
    --danger:#cf222e;--danger-bg:#ffe5e7;--danger-solid:#cf222e;--danger-hover:#b31d28;--on-danger:#ffffff;
    --info:#0550ae;--info-bg:#ddeeff;
    --term-bg:#ffffff;--term-text:#1f2328;--term-dim:#59636e;--term-line:#d0d7de;
    --term-green:#1a7f37;--term-amber:#8a5a00;--term-blue:#0550ae;--term-red:#cf222e;
    --scrim:rgba(31,35,40,.5);--scrim-soft:rgba(255,255,255,.82);
    --shadow:0 8px 24px rgba(31,35,40,.18);
  }
}
/* ROOT:END */

*{box-sizing:border-box}
html{color-scheme:dark light}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 var(--font)}
h1,h2,h3,p{margin:0}
code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:4px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

.stack>*+*{margin-top:var(--sp-3)}
.brand{font:700 26px var(--mono);letter-spacing:-.5px}
.brand span{color:var(--accent-text)}
.muted{color:var(--text-muted)}
.small{font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--touch);padding:0 var(--sp-4);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:600 15px var(--font);cursor:pointer;text-align:center}
.btn:hover,.btn.is-hover{background:var(--surface-3)}
.btn:active,.btn.is-pressed{transform:translateY(1px);box-shadow:inset 0 0 0 2px var(--accent)}
.btn-block{display:flex;width:100%}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-primary:hover,.btn-primary.is-hover{background:var(--accent-hover)}
.btn-primary:active,.btn-primary.is-pressed{background:var(--accent-press);box-shadow:inset 0 0 0 2px var(--focus)}
.btn-danger{background:var(--danger-solid);border-color:var(--danger-solid);color:var(--on-danger)}
.btn-danger:hover,.btn-danger.is-hover{background:var(--danger-hover)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--accent-text)}
.btn-google{background:#ffffff;border-color:#c6cbd1;color:#1f1f1f}
.btn-google:hover{background:#f1f3f4}
.btn-google .g{width:22px;height:22px;border-radius:50%;background:#4285f4;color:#fff;font:700 13px/22px var(--font);text-align:center}
.btn-success{background:var(--success-bg);border-color:var(--success);color:var(--success)}
.btn.is-error{border-color:var(--danger);color:var(--danger)}
.btn[disabled],.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.btn.is-loading::before{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
.project-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3)}
.alert{display:flex;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius);border:1px solid var(--border);font-size:14px}
.alert .ic{flex:none;width:20px;text-align:center;font-weight:700}
.alert strong{display:block}
.alert-info{background:var(--info-bg);border-color:var(--info)}.alert-info .ic{color:var(--info)}
.alert-success{background:var(--success-bg);border-color:var(--success)}.alert-success .ic{color:var(--success)}
.alert-warn{background:var(--warn-bg);border-color:var(--warn)}.alert-warn .ic{color:var(--warn)}
.alert-danger{background:var(--danger-bg);border-color:var(--danger)}.alert-danger .ic{color:var(--danger)}
.banner{padding:var(--sp-2) var(--sp-3);font-size:13px;font-weight:600;text-align:center;flex:none}
.banner-offline{background:var(--danger-solid);color:var(--on-danger)}

/* page layout */
[hidden]{display:none!important}
.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.screen{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-4);padding:var(--sp-5);width:100%;max-width:440px;margin:0 auto}
.screen h1{font-size:24px}
a.btn{text-decoration:none}
.footer-line{padding:var(--sp-3);text-align:center;font-size:12px;color:var(--text-muted);flex:none}
.value{font-weight:600;overflow-wrap:anywhere}
.alert-slot>*+*{margin-top:var(--sp-2)}
.tagline{margin-top:var(--sp-2)}
.card-gap{margin-top:var(--sp-2)}
