/* Central CTO — app nativo mobile-first (shell 100dvh: nav + conteúdo rolável + tab bar). Sem webfonts. */
:root{
  --bg-0:#070c17; --bg-1:#0c1424; --bg-2:#101a2e;
  --ink:#eef2fb; --ink-soft:#aab7d0; --ink-faint:#6d7c9b;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.14);
  --glass:rgba(16,26,45,.72); --glass-2:rgba(24,38,64,.9); --glass-hi:rgba(255,255,255,.055);
  --gold:#e7c25e; --gold-deep:#c9a227; --ice:#74b9ff;
  --good:#57d18d; --warn:#f0b84c; --idle:#59688a; --danger:#f0757a;
  --shadow:0 16px 44px -20px rgba(0,0,0,.7); --shadow-sm:0 6px 18px -10px rgba(0,0,0,.55);
  --a-a:rgba(201,162,39,.2); --a-b:rgba(48,104,196,.24); --a-c:rgba(90,170,255,.13);
  --disp:-apple-system,"SF Pro Display",system-ui,"Segoe UI",Roboto,sans-serif;
  --body:-apple-system,"SF Pro Text",system-ui,"Segoe UI",Roboto,sans-serif;
  --pad:16px; --r:20px; --r-md:16px; --r-sm:12px;
}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){
  --bg-0:#eceff5; --bg-1:#f1f4f9; --bg-2:#f7f9fc; --ink:#101d33; --ink-soft:#3f5069; --ink-faint:#77869e;
  --line:rgba(18,32,56,.1); --line-2:rgba(18,32,56,.17); --glass:rgba(255,255,255,.78); --glass-2:rgba(255,255,255,.92); --glass-hi:rgba(255,255,255,.62);
  --gold:#9a7813; --gold-deep:#7c630f; --ice:#2a6fb8; --shadow:0 18px 40px -22px rgba(24,44,82,.32); --shadow-sm:0 6px 16px -10px rgba(24,44,82,.28);
  --a-a:rgba(201,162,39,.18); --a-b:rgba(48,104,196,.14); --a-c:rgba(90,170,255,.16);
}}
:root[data-theme="dark"]{--bg-0:#070c17;--bg-1:#0c1424;--bg-2:#101a2e;--ink:#eef2fb;--ink-soft:#aab7d0;--ink-faint:#6d7c9b;--line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.14);--glass:rgba(16,26,45,.72);--glass-2:rgba(24,38,64,.9);--glass-hi:rgba(255,255,255,.055);--gold:#e7c25e;--gold-deep:#c9a227;--ice:#74b9ff;--shadow:0 16px 44px -20px rgba(0,0,0,.7);--shadow-sm:0 6px 18px -10px rgba(0,0,0,.55);--a-a:rgba(201,162,39,.2);--a-b:rgba(48,104,196,.24);--a-c:rgba(90,170,255,.13)}
:root[data-theme="light"]{--bg-0:#eceff5;--bg-1:#f1f4f9;--bg-2:#f7f9fc;--ink:#101d33;--ink-soft:#3f5069;--ink-faint:#77869e;--line:rgba(18,32,56,.1);--line-2:rgba(18,32,56,.17);--glass:rgba(255,255,255,.78);--glass-2:rgba(255,255,255,.92);--glass-hi:rgba(255,255,255,.62);--gold:#9a7813;--gold-deep:#7c630f;--ice:#2a6fb8;--shadow:0 18px 40px -22px rgba(24,44,82,.32);--shadow-sm:0 6px 16px -10px rgba(24,44,82,.28);--a-a:rgba(201,162,39,.18);--a-b:rgba(48,104,196,.14);--a-c:rgba(90,170,255,.16)}

*{box-sizing:border-box}
html,body{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden}
/* base sólida do tema no html: cobre safe-area do iPhone + overscroll (senão aparece branco) */
html{-webkit-text-size-adjust:100%;background:var(--bg-1);min-height:100%}
body{font-family:var(--body);color:var(--ink);min-height:100dvh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background-color:var(--bg-1);
  background-image:radial-gradient(820px 560px at 92% -8%,var(--a-a),transparent 60%),radial-gradient(760px 560px at -8% 4%,var(--a-b),transparent 58%),radial-gradient(700px 520px at 55% 116%,var(--a-c),transparent 60%),linear-gradient(180deg,var(--bg-0),var(--bg-1) 48%,var(--bg-2));
  background-repeat:no-repeat;background-size:cover;background-attachment:fixed}
svg{flex:none;vertical-align:middle}
button{-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4{font-family:var(--disp);letter-spacing:-.02em;margin:0;text-wrap:balance}

.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(64px);opacity:.4}
.b1{width:42vw;height:42vw;left:58%;top:-12%;background:radial-gradient(circle,var(--a-a),transparent 68%);animation:d1 28s ease-in-out infinite}
.b2{width:36vw;height:36vw;left:-10%;top:22%;background:radial-gradient(circle,var(--a-b),transparent 68%);animation:d2 34s ease-in-out infinite}
.b3{width:30vw;height:30vw;left:38%;top:82%;background:radial-gradient(circle,var(--a-c),transparent 70%);animation:d1 40s ease-in-out infinite reverse}
@keyframes d1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4%,4%) scale(1.06)}}
@keyframes d2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(5%,-3%) scale(1.08)}}
@media (prefers-reduced-motion:reduce){.blob{animation:none}}
#app{position:relative;z-index:1}

.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.mark{width:36px;height:36px;border-radius:11px;flex:none;display:grid;place-items:center;background:linear-gradient(150deg,var(--gold),var(--gold-deep));color:#1f1708;font-family:var(--disp);font-weight:800;font-size:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 5px 12px -6px rgba(201,162,39,.5)}
.mark.sm{width:30px;height:30px;border-radius:9px;font-size:14px}

/* controles */
.btn{font:inherit;cursor:pointer;border:1px solid var(--line-2);background:var(--glass-hi);color:var(--ink);border-radius:12px;padding:11px 15px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1;transition:transform .12s,background .2s;min-height:42px}
.btn:active{transform:scale(.97)}
.btn.gold{background:linear-gradient(160deg,var(--gold),var(--gold-deep));color:#20180a;border-color:transparent;box-shadow:0 8px 18px -8px rgba(201,162,39,.5);font-weight:700}
.btn.sm{padding:8px 12px;font-size:12.5px;border-radius:10px;min-height:36px}
.btn.ghost{background:none;border-color:var(--line)}
.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}
.btn svg{width:16px;height:16px}.btn.sm svg{width:15px;height:15px}
:where(.btn,input,textarea,.tapstage,.card,.proj,.tbtn,.chkchip,.sitem,.tab,.bigbtn,.srow):focus-visible{outline:2px solid var(--gold);outline-offset:2px}
input,textarea{font:inherit;color:var(--ink);background:var(--glass-hi);border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;width:100%;max-width:100%}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:var(--ink-faint)}
label{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600;display:block;margin:0 0 7px}
.tbtn{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--glass-hi);color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;flex:none;transition:transform .12s,background .2s,color .2s}
.tbtn:active{transform:scale(.92)}.tbtn:hover{color:var(--ink)}
.tbtn svg{width:19px;height:19px}
.spacer{flex:1}

/* login */
.login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login .card{width:min(380px,100%);padding:28px;background:var(--glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.login .brand{display:flex;align-items:center;gap:13px;margin-bottom:24px}
.login h1{font-size:19px}.login .brand p{margin:3px 0 0;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.login .field{margin-bottom:14px}
.err{color:var(--danger);font-size:13px;margin:10px 0 0;min-height:18px;text-align:center}
.field{margin-bottom:12px}

/* ===== SHELL nativo ===== */
/* altura dinâmica (dvh) em vez de inset:0 — senão no iOS a tab bar fica uns px
   abaixo do visível (barra do Safari) e só "encaixa" ao rolar. */
.shell{position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;z-index:1}
.nav{flex:none;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;
  padding:9px 12px 9px 14px;padding-top:calc(9px + env(safe-area-inset-top));min-height:calc(52px + env(safe-area-inset-top));
  background:var(--glass);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--line)}
.nav h1{font-size:19px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.view{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:18px var(--pad) 24px}
.tabbar{flex:none;display:flex;background:var(--glass);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px 8px;background:none;border:0;cursor:pointer;color:var(--ink-faint);font:inherit;font-size:10.5px;font-weight:600;transition:color .18s}
.tab svg{width:23px;height:23px}
.tab.on{color:var(--gold)}
.tab:active{transform:scale(.94)}

/* detalhe / público (rolam com o body) */
.wrap{max-width:900px;margin:0 auto}
.wrap.detail{min-height:100dvh;padding:0 var(--pad) calc(40px + env(safe-area-inset-bottom))}
.wrap.detail .nav{margin:0 calc(-1*var(--pad)) 16px;position:sticky}

/* ===== INÍCIO ===== */
.view>*{animation:rise .45s cubic-bezier(.2,.7,.3,1) both}
.view>*:nth-child(2){animation-delay:.04s}.view>*:nth-child(3){animation-delay:.08s}.view>*:nth-child(4){animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.view>*{animation:none}}
.hello{margin:2px 0 18px}
.hello p{margin:0;color:var(--ink-faint);font-size:14px}
.hello h2{font-size:28px;font-weight:750;letter-spacing:-.03em;margin-top:2px}
.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px}
.stat{padding:14px 12px;text-align:center;border-radius:var(--r-md)}
.stat b{display:block;font-family:var(--disp);font-size:24px;font-weight:750;letter-spacing:-.02em}
.stat span{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}
.bigbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;padding:15px;border:0;border-radius:var(--r-md);cursor:pointer;font:inherit;font-size:15px;font-weight:700;color:#20180a;background:linear-gradient(160deg,var(--gold),var(--gold-deep));box-shadow:0 10px 22px -10px rgba(201,162,39,.55);transition:transform .12s;margin-bottom:22px}
.bigbtn:active{transform:scale(.98)}
.bigbtn svg{width:19px;height:19px}
.blk{margin-bottom:22px}
.blkhead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:11px}
.blkhead h3{font-size:16px;font-weight:700}
.lnk{background:none;border:0;color:var(--gold);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:2px}
.hint{color:var(--ink-faint);font-size:13px;margin:0 0 14px}

/* ===== cards de projeto (lista) ===== */
.plist{display:flex;flex-direction:column;gap:11px}
.proj{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:transform .14s,border-color .2s}
.proj:active{transform:scale(.985)}
.proj:hover{border-color:color-mix(in srgb,var(--gold) 40%,transparent)}
.projtop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.projtop h3{font-size:16.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj .tag{flex:none;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--glass-hi);border:1px solid var(--line);color:var(--ink-soft);display:inline-flex;align-items:center;gap:4px}
.proj .tag.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 34%,transparent);background:color-mix(in srgb,var(--good) 12%,transparent)}
.proj .meta{font-size:13px;color:var(--ink-faint);margin:5px 0 13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.prog{display:flex;align-items:center;gap:10px}
.progbar{flex:1;height:6px;border-radius:99px;background:var(--glass-hi);border:1px solid var(--line);overflow:hidden}
.progbar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold-deep),var(--gold))}
.progn{flex:none;font-size:11.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== ferramentas (grade estilo apps) ===== */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:620px){.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
.card{position:relative;text-align:left;cursor:pointer;padding:16px;color:inherit;font:inherit;border:1px solid var(--line);border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:var(--shadow-sm);transition:transform .16s,border-color .2s;min-width:0}
.card:active{transform:scale(.98)}.card:hover{border-color:color-mix(in srgb,var(--gold) 42%,transparent)}
.card .num{position:absolute;top:14px;right:14px;font-family:var(--disp);font-size:11.5px;font-weight:700;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.appicon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;margin-bottom:12px;color:var(--gold);background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 24%,transparent),color-mix(in srgb,var(--gold) 8%,transparent));border:1px solid color-mix(in srgb,var(--gold) 26%,transparent)}
.appicon svg{width:23px;height:23px}
.card h4{font-size:14.5px;font-weight:650;margin-bottom:5px;line-height:1.25}
.card p{margin:0 0 12px;font-size:12px;line-height:1.45;color:var(--ink-soft)}
.card .foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.count{font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.pill{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good);border:1px solid color-mix(in srgb,var(--good) 32%,transparent)}

/* ===== infra ===== */
.infra{display:flex;flex-direction:column;gap:9px}
.istat{display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--glass-hi)}
.istat b{display:block;font-size:14px;font-weight:600}
.istat span{font-size:11.5px;color:var(--ink-faint)}
.idot{width:9px;height:9px;border-radius:50%;flex:none}
.idot.good{background:var(--good);box-shadow:0 0 8px var(--good)}
.idot.warn{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.idot.idle{background:var(--idle)}

/* ===== detalhe do projeto ===== */
.detail-head{padding:18px;margin-bottom:16px;background:var(--glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.detail-head h2{font-size:21px;line-height:1.15}
.pline{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.tapstage{flex:1 1 auto;min-width:82px;cursor:pointer;font:inherit;border:1px solid var(--line);background:var(--glass-hi);color:var(--ink-soft);border-radius:11px;padding:9px 6px;text-align:center;font-size:11.5px;font-weight:600;transition:.14s}
.tapstage:active{transform:scale(.96)}
.tapstage.feito{background:color-mix(in srgb,var(--good) 20%,transparent);border-color:color-mix(in srgb,var(--good) 38%,transparent);color:var(--ink)}
.tapstage.atual{border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.12)}
.tapstage .st{display:block;font-size:8.5px;opacity:.72;text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.cols{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:820px){.cols{grid-template-columns:1.35fr 1fr;align-items:start}}
.panel{padding:17px;min-width:0;background:var(--glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.panel h4{font-size:12px;margin-bottom:14px;color:var(--gold);text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.note{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--glass-hi);margin-bottom:10px}
.note .when{font-size:11px;color:var(--ink-faint);margin-bottom:7px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.note .when svg{width:14px;height:14px;margin-right:3px}
.note p{margin:0;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.rec{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.recdot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:pulse 1.1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.recdot{animation:none}}
audio{width:100%;margin-top:6px;height:38px}
.chkstrip{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:14px}
.chklbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:700}
.chkchip{cursor:pointer;font:inherit;font-size:12px;color:var(--ink-soft);background:var(--glass-hi);border:1px solid var(--line);border-radius:999px;padding:6px 11px}
.chkchip b{color:var(--ink);font-variant-numeric:tabular-nums}
.chkchip:active{transform:scale(.96)}
.chkchip.full{background:color-mix(in srgb,var(--good) 16%,transparent);border-color:color-mix(in srgb,var(--good) 38%,transparent);color:var(--ink)}
.chkchip.full b{color:var(--good)}
.transc{margin-top:10px;font-size:13px;line-height:1.55;color:var(--ink-soft);border-left:2px solid color-mix(in srgb,var(--gold) 55%,transparent);padding:1px 0 1px 11px;white-space:pre-wrap;overflow-wrap:anywhere}
.transc.pend{color:var(--ink-faint);font-style:italic;border-color:var(--idle);display:flex;align-items:center;gap:7px}
.transc.pend svg,.transc>svg{width:14px;height:14px}
.transc>svg{margin-right:5px;color:var(--gold)}

/* ===== leitor de playbook ===== */
.reader{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--bg-1);background-image:radial-gradient(700px 460px at 90% -8%,var(--a-a),transparent 60%),radial-gradient(620px 440px at -6% 4%,var(--a-b),transparent 60%)}
.reader .rbar{display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.reader .rbar h3{font-size:15px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reader .doc{overflow-y:auto;overflow-x:hidden;padding:22px 18px calc(50px + env(safe-area-inset-bottom));max-width:780px;margin:0 auto;width:100%;-webkit-overflow-scrolling:touch}
.doc h1{font-size:24px;margin:.1em 0 .5em}
.doc h2{font-size:19px;margin:1.3em 0 .5em;padding-top:.5em;border-top:1px solid var(--line)}
.doc h3{font-size:16px;margin:1.1em 0 .4em;color:var(--gold)}
.doc h4,.doc h5{font-size:12.5px;margin:1em 0 .3em;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.doc p,.doc li{font-size:14.5px;line-height:1.68;color:var(--ink-soft);overflow-wrap:anywhere}
.doc strong{color:var(--ink)}
.doc code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;background:var(--glass-hi);padding:2px 6px;border-radius:6px;color:var(--ice);overflow-wrap:anywhere}
.doc pre{background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:12px;padding:14px;overflow-x:auto;max-width:100%}
.doc pre code{background:none;padding:0;color:var(--ink-soft)}
.doc table{border-collapse:collapse;width:100%;margin:1em 0;display:block;overflow-x:auto;font-size:13px}
.doc th,.doc td{border:1px solid var(--line);padding:8px 11px;text-align:left}
.doc th{background:var(--glass-hi);color:var(--ink)}
.doc blockquote{border-left:3px solid var(--gold);margin:1em 0;padding:.4em 0 .4em 14px;background:var(--glass-hi);border-radius:0 10px 10px 0}
.doc blockquote p{color:var(--ink)}
.doc ul,.doc ol{padding-left:20px}
.doc hr{border:0;border-top:1px solid var(--line);margin:1.5em 0}
.doc .ckitem{display:flex;gap:11px;align-items:flex-start;padding:9px 11px;margin:4px 0;border:1px solid var(--line);border-radius:11px;background:var(--glass-hi);cursor:pointer;font-size:14px;line-height:1.45}
.doc .ckitem input{width:17px;height:17px;margin-top:2px;accent-color:var(--good);flex:none;cursor:pointer}
.doc .ckitem.on{background:color-mix(in srgb,var(--good) 13%,transparent);border-color:color-mix(in srgb,var(--good) 32%,transparent)}
.doc .ckitem.on span{color:var(--ink-faint);text-decoration:line-through}

/* ===== modais + bottom sheet ===== */
.scrim{position:fixed;inset:0;z-index:50;background:rgba(4,8,16,.6);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;padding-bottom:max(18px,env(safe-area-inset-bottom));animation:fade .2s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{width:min(440px,100%);max-height:88dvh;overflow-y:auto;padding:22px;background:var(--glass-2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow);animation:pop .24s cubic-bezier(.2,.8,.3,1)}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.scrim,.modal,.sheet{animation:none}}
.modal h3{margin:0 0 16px;font-size:17.5px;font-weight:650;display:flex;align-items:center;gap:9px}
.modal h3 svg{width:19px;height:19px;color:var(--gold)}
.modal .row{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.seg{display:flex;gap:7px;margin-bottom:14px}
.seg button{flex:1;padding:10px;border-radius:11px;border:1px solid var(--line);background:var(--glass-hi);color:var(--ink-soft);font:inherit;font-weight:600;cursor:pointer;font-size:12.5px}
.seg button.on{border-color:var(--gold);color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent)}
/* bottom sheet (conta) */
.sheetwrap{align-items:flex-end;padding:0}
.sheet{width:100%;max-width:520px;margin:0 auto;padding:14px 14px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--glass-2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--line-2);border-bottom:0;box-shadow:var(--shadow);animation:slideup .26s cubic-bezier(.2,.8,.3,1)}
@keyframes slideup{from{transform:translateY(100%)}to{transform:none}}
.sheethead{display:flex;align-items:center;gap:12px;padding:6px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.sheethead b{display:block;font-size:15px;font-weight:650}
.sheethead span{font-size:11px;color:var(--ink-faint)}
.srow{display:flex;align-items:center;gap:13px;width:100%;padding:13px 10px;background:none;border:0;border-radius:12px;cursor:pointer;font:inherit;font-size:15px;font-weight:500;color:var(--ink);text-align:left}
.srow:active{background:var(--glass-hi)}
.srow svg{width:20px;height:20px;color:var(--ink-soft)}
.srow.danger{color:var(--danger)}.srow.danger svg{color:var(--danger)}

/* busca */
.searchov{align-items:flex-start}
.searchov .modal{width:min(560px,100%);margin-top:11vh}
.sres{margin-top:12px;max-height:56dvh;overflow-y:auto}
.sgrp{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:12px 2px 6px}
.sitem{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;background:none;border:1px solid transparent;border-radius:12px;padding:10px}
.sitem:hover{background:var(--glass-hi);border-color:var(--line)}
.sitem .sico{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--glass-hi);border:1px solid var(--line);color:var(--gold)}
.sitem .sico svg{width:16px;height:16px}
.sitem b{display:block;font-size:14px;font-weight:600}
.sitem>span{min-width:0}
.sitem span span{font-size:12px;color:var(--ink-faint);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.empty{text-align:center;color:var(--ink-faint);font-size:13px;padding:24px 10px}
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:sp .8s linear infinite;margin:40px auto}
@keyframes sp{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(8px);z-index:80;background:var(--glass-2);border:1px solid var(--line-2);border-radius:13px;padding:12px 18px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:0;transition:opacity .25s,transform .25s;max-width:calc(100vw - 32px);text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{color:var(--danger)}.toast.ok{color:var(--good)}
