/* ===== Consursado — tema ===== */
:root{
  --bg:#0f1117; --bg-2:#161a23; --bg-3:#1d222d;
  --line:#272d3a; --line-2:#333b4c;
  --fg:#e8eaf0; --fg-dim:#9aa3b5; --fg-mute:#6b7488;
  --accent:#6c8cff; --accent-2:#8b6cff;
  --ok:#2fbf71; --ok-bg:rgba(47,191,113,.13);
  --err:#f2555a; --err-bg:rgba(242,85,90,.13);
  --warn:#f0a53c;
  --radius:14px; --radius-sm:10px;
  --shadow:0 6px 24px rgba(0,0,0,.35);
  --safe-b: env(safe-area-inset-bottom, 0px);
  --safe-t: env(safe-area-inset-top, 0px);
}
html[data-theme="light"]{
  --bg:#f5f6fa; --bg-2:#ffffff; --bg-3:#eef0f6;
  --line:#e0e3ec; --line-2:#cfd4e2;
  --fg:#161a23; --fg-dim:#5b6478; --fg-mute:#8a92a6;
  --ok-bg:rgba(47,191,113,.14); --err-bg:rgba(242,85,90,.12);
  --shadow:0 6px 20px rgba(20,25,40,.09);
}
@media (prefers-color-scheme: light){
  html:not([data-theme="dark"]){
    --bg:#f5f6fa; --bg-2:#ffffff; --bg-3:#eef0f6;
    --line:#e0e3ec; --line-2:#cfd4e2;
    --fg:#161a23; --fg-dim:#5b6478; --fg-mute:#8a92a6;
    --ok-bg:rgba(47,191,113,.14); --err-bg:rgba(242,85,90,.12);
    --shadow:0 6px 20px rgba(20,25,40,.09);
  }
}
html[data-theme="dark"]{ color-scheme:dark }
html[data-theme="light"]{ color-scheme:light }

*{box-sizing:border-box; -webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
/* Regras de autor como .sheet{display:flex} vencem o display:none que o
   navegador aplica ao atributo hidden. Sem isto, nada com [hidden] some. */
[hidden]{display:none !important}
body{
  background:var(--bg); color:var(--fg);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  overscroll-behavior-y:none;
}
h1,h2,h3{margin:0;line-height:1.25}
button,select,textarea,input{font:inherit;color:inherit}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--bg-3);padding:1px 5px;border-radius:5px}

/* ===== screens ===== */
.screen{display:none;min-height:100vh;min-height:100dvh}
.screen.is-active{display:block}
.wrap{max-width:820px;margin:0 auto;padding:16px 16px calc(40px + var(--safe-b))}

/* ===== topbar ===== */
.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:12px;
  padding:calc(12px + var(--safe-t)) 16px 12px;
  background:var(--bg); /* fallback para navegadores sem color-mix */
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:saturate(1.6) blur(12px);
  border-bottom:1px solid var(--line);
}
.topbar-title{flex:1;min-width:0}
.topbar h1{font-size:17px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.brand h1{font-size:18px;letter-spacing:-.2px}
.brand-sub{margin:1px 0 0;font-size:12px;color:var(--fg-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-mark{
  width:34px;height:34px;flex:none;display:grid;place-items:center;
  border-radius:10px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
}
.icon-btn{
  width:36px;height:36px;flex:none;border:1px solid var(--line);
  background:var(--bg-2);border-radius:10px;cursor:pointer;
  font-size:16px;line-height:1;display:grid;place-items:center;
}
.icon-btn:active{transform:scale(.94)}
.mini-select{background:var(--bg-2);border:1px solid var(--line);border-radius:9px;padding:7px 8px;font-size:12.5px}

.section-title{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-mute);margin:26px 0 10px;font-weight:650}
.section-title:first-child{margin-top:6px}

/* ===== home: cards de concurso ===== */
.card-grid{display:grid;gap:12px}
.concurso-card{
  display:block;width:100%;text-align:left;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;position:relative;overflow:hidden;
}
.concurso-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--accent),var(--accent-2))}
.concurso-card:active{transform:scale(.99)}
.cc-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.cc-nome{font-size:17px;font-weight:680;letter-spacing:-.2px}
.cc-sub{font-size:12.5px;color:var(--fg-dim);margin-top:3px}
.badge{
  flex:none;font-size:11.5px;font-weight:700;padding:5px 9px;border-radius:999px;
  background:var(--bg-3);color:var(--fg-dim);border:1px solid var(--line);white-space:nowrap;
}
.badge.hot{background:rgba(242,85,90,.14);color:#ff8b8f;border-color:rgba(242,85,90,.3)}
.badge.warm{background:rgba(240,165,60,.14);color:var(--warn);border-color:rgba(240,165,60,.3)}
.badge.done{background:var(--bg-3);color:var(--fg-mute)}
.cc-mini{display:flex;gap:18px;margin-top:14px;align-items:flex-end}
.cc-mini .m{display:flex;flex-direction:column;gap:1px}
.cc-mini b{font-size:17px;font-weight:700;letter-spacing:-.3px}
.cc-mini span{font-size:10.5px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.06em}
.cc-mini .spark{margin-left:auto}
.foot-note{color:var(--fg-mute);font-size:12px;margin-top:22px;line-height:1.6}

/* ===== countdown ===== */
.countdown-panel{
  background:linear-gradient(140deg,var(--bg-2),var(--bg-3));
  border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 18px;text-align:center;margin-bottom:14px;
}
.cd-big{display:flex;align-items:baseline;justify-content:center;gap:9px}
.cd-big span{
  font-size:56px;font-weight:800;letter-spacing:-2.5px;line-height:1;
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.cd-big small{font-size:14px;color:var(--fg-dim);font-weight:600}
.cd-rest{display:flex;justify-content:center;gap:20px;margin-top:10px}
.cd-rest div{display:flex;align-items:baseline;gap:3px}
.cd-rest b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.cd-rest span{font-size:11px;color:var(--fg-mute)}
.cd-data{margin:12px 0 0;font-size:12px;color:var(--fg-mute)}

/* ===== stats ===== */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 10px;text-align:center}
.stat b{display:block;font-size:19px;font-weight:730;letter-spacing:-.4px}
.stat span{font-size:10.5px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.05em}

/* ===== modos ===== */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mode-card{
  display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px;
}
.mode-card:active{transform:scale(.98)}
.mode-card b{font-size:14.5px;font-weight:650}
.mode-card small{font-size:11.5px;color:var(--fg-mute);line-height:1.4}
.mode-ico{font-size:19px;margin-bottom:4px}
.mode-primary{grid-column:1/-1;border-color:var(--accent);background:linear-gradient(135deg,rgba(108,140,255,.13),rgba(139,108,255,.07))}

.mode-real{border-color:rgba(240,165,60,.45);background:linear-gradient(135deg,rgba(240,165,60,.11),transparent)}

/* ===== provas anteriores ===== */
.prova-card{
  display:block;width:100%;text-align:left;cursor:pointer;margin-bottom:10px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;
}
.prova-card.destaque{border-color:rgba(240,165,60,.5);background:linear-gradient(135deg,rgba(240,165,60,.1),var(--bg-2))}
.prova-card:active{transform:scale(.99)}
.prova-topo{display:flex;align-items:center;gap:9px}
.prova-topo b{font-size:15.5px;font-weight:680}
.prova-meta{font-size:12px;color:var(--fg-dim);margin-top:4px}
.prova-obs{font-size:11.5px;color:var(--fg-mute);margin-top:7px;line-height:1.5}

/* selo de questão real */
.selo-real{
  display:inline-flex;align-items:center;gap:6px;vertical-align:middle;
  background:rgba(240,165,60,.14);border:1px solid rgba(240,165,60,.4);
  border-radius:999px;padding:3px 9px;margin-right:8px;
}
.selo-real b{font-size:10px;font-weight:750;color:var(--warn);letter-spacing:.04em;text-transform:uppercase}
.selo-real span{font-size:10px;color:var(--fg-dim);letter-spacing:.02em;text-transform:none}
.rev .selo-real{margin-bottom:10px}
#q-topico{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
#q-topico .topico-txt{flex:1;min-width:0}

/* figura dentro do enunciado */
.q-figura{
  display:block;max-width:100%;height:auto;margin:14px 0;border-radius:var(--radius-sm);
  background:#fff;padding:8px;border:1px solid var(--line);
}

/* ===== disciplinas ===== */
.disc-list{display:grid;gap:8px}
.disc{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px}
.disc-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px}
.disc-top b{font-weight:600}
.disc-top em{font-style:normal;color:var(--fg-mute);font-size:11.5px}
.disc-pct{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px}
.bar{height:6px;border-radius:99px;background:var(--bg-3);margin-top:8px;overflow:hidden}
.bar > i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.bar > i.g{background:var(--ok)} .bar > i.y{background:var(--warn)} .bar > i.r{background:var(--err)}

/* ===== chart / historico ===== */
.chart-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.chart-card svg{display:block;width:100%;height:auto;overflow:visible}
.hist-list{display:grid;gap:7px;margin-top:12px}
.hist{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;
}
.hist .h-when{color:var(--fg-mute);font-size:11.5px;flex:1;min-width:0}
.hist .h-nota{font-weight:700;font-variant-numeric:tabular-nums}
.hist .h-tag{font-size:10.5px;padding:3px 7px;border-radius:99px;background:var(--bg-2);color:var(--fg-dim);border:1px solid var(--line)}
.empty{color:var(--fg-mute);font-size:13px;text-align:center;padding:20px 10px;line-height:1.6}

/* ===== quiz ===== */
.quiz-bar{justify-content:space-between}
.quiz-meta{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}
.quiz-meta #quiz-pos{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.quiz-disc{font-size:11px;color:var(--fg-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.quiz-timer{font-variant-numeric:tabular-nums;font-size:14px;font-weight:650;min-width:58px;text-align:right}
.quiz-timer.low{color:var(--err)}
.progress{height:3px;background:var(--bg-3);position:sticky;top:calc(60px + var(--safe-t));z-index:19}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .25s}
.quiz-wrap{padding-bottom:calc(96px + var(--safe-b))}
.q-topico{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:650;margin:6px 0 10px}
.q-enunciado{font-size:15.5px;line-height:1.65;margin-bottom:18px;white-space:pre-wrap}
.q-enunciado .texto-base{
  display:block;background:var(--bg-2);border-left:3px solid var(--line-2);
  padding:12px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:14px;
  font-size:14.5px;color:var(--fg-dim);white-space:pre-wrap;
}
.q-enunciado pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;overflow-x:auto;font-size:13px;margin:12px 0}
.options{display:grid;gap:9px}
.opt{
  display:flex;gap:11px;align-items:flex-start;text-align:left;width:100%;cursor:pointer;
  background:var(--bg-2);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:13px 14px;font-size:14.5px;line-height:1.5;transition:border-color .12s,background .12s;
}
.opt:active{transform:scale(.995)}
.opt .letra{
  flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;
  background:var(--bg-3);border:1px solid var(--line);font-size:12px;font-weight:700;margin-top:1px;
}
.opt.sel{border-color:var(--accent);background:rgba(108,140,255,.1)}
.opt.sel .letra{background:var(--accent);border-color:var(--accent);color:#fff}

.quiz-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:21;
  display:flex;gap:9px;padding:12px 16px calc(12px + var(--safe-b));
  background:var(--bg); /* fallback para navegadores sem color-mix */
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(12px);border-top:1px solid var(--line);
}
.quiz-nav .btn{flex:1}
.btn{
  cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);
  padding:12px 16px;font-size:14.5px;font-weight:620;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
}
.btn:active{transform:scale(.98)}
.btn-ghost{background:var(--bg-2);border-color:var(--line);color:var(--fg)}
.btn-sm{padding:8px 13px;font-size:13px}
.btn-full{width:100%;margin-top:12px}
.btn-danger{background:var(--err)}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ===== mapa ===== */
.sheet{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.55);display:flex;align-items:flex-end}
.sheet-inner{
  width:100%;max-height:82vh;overflow:auto;background:var(--bg-2);
  border-radius:18px 18px 0 0;padding:16px 16px calc(20px + var(--safe-b));border-top:1px solid var(--line);
}
@media(min-width:700px){ .sheet{align-items:center;justify-content:center} .sheet-inner{max-width:560px;border-radius:18px} }
.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.mapa{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:7px}
.mapa button{
  aspect-ratio:1;border-radius:9px;border:1px solid var(--line);background:var(--bg-3);
  cursor:pointer;font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;
}
.mapa button.resp{background:var(--accent);border-color:var(--accent);color:#fff}
.mapa button.atual{outline:2px solid var(--fg);outline-offset:1px}

/* ===== resultado ===== */
.score-hero{
  text-align:center;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:24px 18px;margin-bottom:14px;
}
.score-hero.aprovado{border-color:rgba(47,191,113,.45);background:linear-gradient(160deg,var(--ok-bg),var(--bg-2))}
.score-hero.reprovado{border-color:rgba(242,85,90,.4);background:linear-gradient(160deg,var(--err-bg),var(--bg-2))}
.score-num{font-size:52px;font-weight:800;letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}
.score-max{font-size:15px;color:var(--fg-mute);font-weight:600}
.score-status{margin-top:12px;font-size:14px;font-weight:700}
.score-status.ok{color:var(--ok)} .score-status.no{color:var(--err)}
.score-why{font-size:12px;color:var(--fg-dim);margin-top:6px;line-height:1.55}
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.res-grid .stat b.ok{color:var(--ok)} .res-grid .stat b.err{color:var(--err)}
.tbl{width:100%;border-collapse:collapse;font-size:13px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.tbl th,.tbl td{padding:9px 11px;text-align:right;border-bottom:1px solid var(--line)}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl thead th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-mute);font-weight:650;background:var(--bg-3)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tr.zerada td{background:var(--err-bg)}
.tbl tfoot td{font-weight:700;background:var(--bg-3);border-top:1px solid var(--line-2)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.res-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}

/* ===== revisão ===== */
.rev{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:15px;margin-bottom:11px}
.rev-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.rev-n{font-size:11.5px;color:var(--fg-mute);font-weight:650}
.rev-tag{font-size:11px;font-weight:700;padding:4px 9px;border-radius:99px}
.rev-tag.ok{background:var(--ok-bg);color:var(--ok)}
.rev-tag.err{background:var(--err-bg);color:var(--err)}
.rev-tag.branco{background:var(--bg-3);color:var(--fg-mute)}
.rev-enunciado{font-size:14.5px;line-height:1.6;margin-bottom:12px;white-space:pre-wrap}
.rev-enunciado .texto-base{display:block;background:var(--bg-3);border-left:3px solid var(--line-2);padding:11px 13px;border-radius:0 8px 8px 0;margin-bottom:12px;font-size:14px;color:var(--fg-dim);white-space:pre-wrap}
.rev-enunciado pre{background:var(--bg-3);border:1px solid var(--line);border-radius:8px;padding:11px;overflow-x:auto;font-size:12.5px;margin:10px 0}
.rev-opt{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:9px;border:1px solid var(--line);margin-bottom:6px;font-size:14px;line-height:1.5;background:var(--bg-3)}
.rev-opt .letra{flex:none;width:21px;height:21px;border-radius:6px;display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--line);font-size:11px;font-weight:700;margin-top:1px}
.rev-opt.correta{border-color:rgba(47,191,113,.5);background:var(--ok-bg)}
.rev-opt.correta .letra{background:var(--ok);border-color:var(--ok);color:#fff}
.rev-opt.marcada-errada{border-color:rgba(242,85,90,.5);background:var(--err-bg)}
.rev-opt.marcada-errada .letra{background:var(--err);border-color:var(--err);color:#fff}
.rev-opt .mark{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--fg-mute);white-space:nowrap;align-self:center}
.gabarito{margin-top:12px;padding:13px;border-radius:var(--radius-sm);background:var(--bg-3);border:1px solid var(--line)}
.gabarito h4{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.gabarito p{margin:0;font-size:13.5px;line-height:1.65;color:var(--fg-dim);white-space:pre-wrap}
.rev-fonte{margin-top:9px;font-size:11px;color:var(--fg-mute)}

/* ===== setup ===== */
.setup-opt{
  display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:13px 14px;margin-bottom:8px;cursor:pointer;font-size:14px;
}
.setup-opt small{display:block;color:var(--fg-mute);font-size:11.5px;margin-top:2px}
.setup-opt .qtd{font-size:12px;color:var(--fg-mute);white-space:nowrap}
.field{margin:14px 0}
.field label{display:block;font-size:12.5px;color:var(--fg-dim);margin-bottom:6px}
.field input[type=number]{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px}

/* ===== importer / danger ===== */
.importer{margin-top:26px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px}
.importer summary{cursor:pointer;font-size:13.5px;font-weight:600}
.importer textarea{width:100%;background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;margin-top:8px;resize:vertical}
.importer-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.hint{font-size:11.5px;color:var(--fg-mute);line-height:1.5;margin:6px 0 0}
.danger-zone{margin-top:22px;text-align:center}
.retomar{background:linear-gradient(135deg,rgba(240,165,60,.14),var(--bg-2));border:1px solid rgba(240,165,60,.4);border-radius:var(--radius);padding:14px;margin-top:12px}
.retomar p{margin:0 0 10px;font-size:13.5px}
.retomar-acts{display:flex;gap:8px}

/* ===== login ===== */
.login-wrap{
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;
  padding:24px 20px calc(24px + var(--safe-b));
}
.login-card{
  width:100%;max-width:360px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:18px;padding:28px 24px;box-shadow:var(--shadow);text-align:center;
}
.login-card .brand-mark.lg{width:56px;height:56px;border-radius:16px;font-size:26px;margin:0 auto 14px}
.login-card h1{font-size:22px;letter-spacing:-.3px}
.login-sub{margin:4px 0 22px;font-size:13px;color:var(--fg-mute)}
.login-card .field{text-align:left;margin-bottom:12px}
.login-card .field input{width:100%;background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 13px}
.login-card .field input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}
.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--fg-dim);margin:4px 0 16px;cursor:pointer;text-align:left}
.check input{width:15px;height:15px;accent-color:var(--accent);flex:none}
.login-erro{margin:12px 0 0;font-size:13px;color:var(--err);font-weight:600}
.login-nota{max-width:360px;font-size:11.5px;color:var(--fg-mute);text-align:center;line-height:1.6;margin:0}
.ger-saida{
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:14px;margin-top:14px;font-size:12.5px;overflow-x:auto;white-space:pre;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ===== sincronização ===== */
.sync-strip{
  display:flex;align-items:center;gap:9px;width:100%;text-align:left;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:10px 13px;font-size:12.5px;color:var(--fg-dim);margin-bottom:14px;
}
.sync-strip .dot{width:7px;height:7px;border-radius:99px;flex:none;background:var(--fg-mute)}
.sync-strip.ok .dot{background:var(--ok)}
.sync-strip.warn .dot{background:var(--warn)}
.sync-strip.err .dot{background:var(--err)}
.sync-strip .acao{margin-left:auto;color:var(--accent);font-weight:650;white-space:nowrap}
.sync-strip.girando .dot{animation:pulsa 1s ease-in-out infinite}
@keyframes pulsa{0%,100%{opacity:1}50%{opacity:.25}}

.sync-status{
  background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px 14px;margin-bottom:14px;font-size:13px;line-height:1.55;
}
.sync-status b{display:block;margin-bottom:2px}
.sync-status .quando{color:var(--fg-mute);font-size:11.5px}
#sync-conectado .btn{margin-bottom:8px}
.passos{margin:10px 0 4px;padding-left:20px;font-size:12.5px;color:var(--fg-dim);line-height:1.7}
.passos li{margin-bottom:5px}
.passos a{color:var(--accent)}
.field input[type=password],.field input[type=text]{
  width:100%;background:var(--bg-3);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:11px 13px;
}
.sync-arquivo{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.sync-arquivo h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:4px}

/* ===== toast ===== */
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + var(--safe-b));z-index:60;
  background:var(--bg-3);border:1px solid var(--line-2);border-radius:99px;
  padding:10px 18px;font-size:13.5px;box-shadow:var(--shadow);max-width:88vw;text-align:center;
}

@media(min-width:700px){
  .stats-row{grid-template-columns:repeat(3,1fr)}
  .card-grid{grid-template-columns:1fr}
}
@media(max-width:360px){
  .mode-grid{grid-template-columns:1fr}
  .cd-big span{font-size:46px}
}
