/* Tonight (the home screen), the top bar and the bottom nav. Structure only: every color, font,
   radius, shadow and duration comes from the active theme (theme/*.css). Adapted from the UI
   designer's reference (tonight.css). */
.topbar{display:flex;align-items:center;gap:16px;padding:16px 28px 6px;max-width:1000px;margin:0 auto}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font:var(--fwh) 15px/1 var(--fh);white-space:nowrap;letter-spacing:var(--lsb)}
.brand i{width:24px;height:24px;border-radius:7px;background:var(--acc);border:var(--bw) solid var(--bc);display:block}
.navt{display:flex;gap:4px;margin:0 auto;padding:4px;border-radius:999px;background:var(--navbg);border:var(--bw) solid var(--navb)}
.navt a{display:flex;align-items:center;gap:6px;text-decoration:none;font-weight:750;font-size:14px;padding:8px 14px;border-radius:999px;color:var(--mut);transition:background var(--dur-fast),color var(--dur-fast)}
.navt a:hover{color:var(--ink)}
.navt a[aria-current=page]{background:var(--navon);color:var(--navonInk)}
.soon{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 5px;border-radius:4px;background:var(--soft);color:var(--mut)}
.tools{display:flex;gap:8px}
.ib{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--rs);border:var(--bw) solid var(--bc);background:var(--card);box-shadow:var(--shs);padding:0}
#estpop[hidden]{display:none}
main.tnm{max-width:820px;margin:0 auto;padding:6px 28px 90px}
.tnm .thero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:20px 0 18px}
.tnm .hl{min-width:0}
.tnm .greet{margin:0 0 6px;font-weight:750;font-size:14px;color:var(--mut);letter-spacing:var(--lsg);text-transform:var(--ttg)}
.tnm .verdict{margin:0;font:var(--fwh) 36px/1.08 var(--fh);letter-spacing:var(--lsh);text-transform:var(--tth);text-wrap:balance}
.tnm .nudge{margin:9px 0 0;color:var(--ink2);font-size:15px}
.tnm .flagn{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:13.5px;font-weight:750;color:var(--flagInk)}
.tnm .flagn svg,.tnm .fl-h svg,.tnm .cflag svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;flex:none}
.tnm .hr{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:none;padding-top:2px}
.fresh{display:flex;align-items:center;gap:6px}
.fpill{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;background:var(--card);border:var(--bw) solid var(--bc);box-shadow:var(--shs)}
.fpill .fdot{width:8px;height:8px;border-radius:50%;background:var(--okc);flex:none}
.fpill.ferr{color:var(--late)}
.fpill.ferr .fdot{background:var(--late)}
.fpill.stale{background:var(--warn);color:var(--warnInk);border-color:var(--warnB)}
.fpill.stale .fdot{background:var(--warnInk)}
.fpill.fsync .fdot{background:var(--mut)}
.fpill.fsync::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:35%;background:var(--acc2);animation:sweep var(--dur-loop) ease-in-out infinite}
@keyframes sweep{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
.refresh{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;border:var(--bw) solid var(--bc);background:var(--card);box-shadow:var(--shs);padding:0}
.refresh svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.refresh:disabled{opacity:.45;cursor:default}
.tnm .tprog{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mut);font-weight:700}
.tnm .tpt b{color:var(--ink)}
.tnm .ps{display:none}
.tnm .pbar{width:96px;height:8px;border-radius:9px;background:var(--soft);overflow:hidden;border:var(--pbb)}
.tnm .pbar i{display:block;height:100%;background:var(--acc2);border-radius:9px;transition:width var(--dur-mid)}
.banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:13px 14px 13px 16px;border-radius:var(--r);margin:0 0 6px;font-size:14px}
.banner .bt{flex:1 1 300px}
.bs{display:block;color:var(--mut);font-size:13px;margin-top:2px}
.banner.ferr{background:var(--lateBg);border:var(--bw2) solid var(--late)}
.banner.stale{background:var(--warnSoft);border:var(--bw2) solid var(--warnB)}
.banner.slow{background:var(--soft);border:var(--bw) solid var(--bc)}
.ba{display:flex;gap:8px;flex-wrap:wrap}
.tnm .sec{margin-top:24px}
.tnm .sh{display:flex;align-items:center;gap:10px;margin:0 0 10px;min-height:26px}
.tnm .sh h2{margin:0;font:var(--fwh) 19px/1 var(--fh);letter-spacing:var(--lsh);text-transform:var(--tth)}
.tnm .sh .cnt{font-weight:800;font-size:12px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--cnt);color:var(--cntInk)}
.tnm .dofirst .sh .cnt{background:var(--late);color:var(--on-late)}
.tnm .sh .meta{margin-left:auto;font-size:13px;color:var(--mut);text-align:right}
.tnm .list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tnm .trow{position:relative;display:flex;align-items:center;gap:14px;padding:14px 14px 14px 14px;background:var(--card);border:var(--bw) solid var(--bc);border-radius:var(--r);box-shadow:var(--sh);touch-action:pan-y;transition:transform var(--dur-fast) cubic-bezier(.2,.8,.2,1),box-shadow var(--dur-fast);-webkit-user-select:none;user-select:none}
.tnm #tnList .trow{cursor:grab}
.tnm .trow.lift{transition:box-shadow var(--dur-fast);z-index:5;box-shadow:var(--lift);cursor:grabbing}
body.dragging,body.dragging *{cursor:grabbing!important}
.tnm .grip{flex:none;width:18px;height:36px;margin:0 -6px 0 -4px;border:0;background:none;color:var(--mut);opacity:.45;padding:0;display:grid;place-items:center;cursor:grab}
.tnm .grip svg{width:10px;height:18px}
.tnm .trow:hover .grip,.tnm .grip:focus-visible{opacity:1}
.tnm .bigchk{flex:none;width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:var(--chr);border:var(--chb) solid var(--chc);background:var(--chbg);transition:background var(--dur-fast),transform var(--dur-fast)}
.tnm .bigchk:active{transform:scale(.92)}
.tnm .bigchk .ck{width:26px;height:26px;fill:none;stroke:var(--ckInk);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity var(--dur-fast)}
.tnm .bigchk:hover .ck{opacity:.28}
.tnm .bigchk[aria-pressed=true]{background:var(--ckBg);border-color:var(--ckB)}
.tnm .bigchk[aria-pressed=true] .ck{opacity:1}
.tnm .rb{flex:1;min-width:0}
.tnm .rt{font-weight:var(--fwt);font-size:16.5px;line-height:1.25;text-decoration:none;-webkit-user-drag:none}
.tnm .rt .ex{opacity:.35;transition:opacity var(--dur-fast)}
.tnm .rt:hover{text-decoration:underline;text-underline-offset:3px}
.tnm .rt:hover .ex{opacity:1}
.tnm .rm{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:6px;font-size:13px;color:var(--mut)}
.tnm .rcls{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12px;color:var(--ink2)}
.tnm .rcls::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--c);flex:none}
.tnm .due{font-weight:650}
.tnm .q{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--flagInk);color:var(--card);font-size:11px;font-weight:900;margin-right:5px;vertical-align:1px}
.tnm .pin{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:5px;background:var(--soft);color:var(--ink2)}
.tnm .estb{flex:none;min-width:54px;height:36px;padding:0 10px;border-radius:999px;border:var(--bw) solid var(--bc);background:var(--card);font-weight:800;font-size:13.5px;color:var(--ink)}
.tnm .estb.guess{border-style:dashed;color:var(--mut)}
.tnm .legend{display:flex;align-items:center;gap:8px;margin:10px 2px 0;font-size:12.5px;color:var(--mut)}
.tnm .legend .lg{width:22px;height:14px;border-radius:999px;border:1.5px dashed var(--mut)}
.tnm .mb{display:none}
.tnm .estb:hover{border-style:solid;color:var(--ink)}
.tnm .trow.tlate{background:var(--lateBg);border-color:var(--lateB)}
.tnm .trow.tlate .due{color:var(--late);font-weight:800}
.tnm .trow.flagged{border-color:var(--flagB)}
.tnm .flagbox{margin-top:10px;padding:10px 12px;border-radius:calc(var(--r)*.7);background:var(--flagBg);border:1.5px dashed var(--flagB);font-size:13.5px;color:var(--ink);-webkit-user-select:text;user-select:text}
.tnm .fl-h{display:flex;align-items:center;gap:6px;font-weight:850;color:var(--flagInk)}
.tnm .flagbox p{margin:4px 0 8px;color:var(--ink2);line-height:1.4}
.tnm .fl-a{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.tnm .fl-a a{font-weight:750}
.tnm .trow.tdone{padding-top:10px;padding-bottom:10px;box-shadow:none;opacity:.8}
.tnm .trow.tdone .rt{text-decoration:line-through;text-decoration-thickness:2px;color:var(--mut)}
.tnm .trow.tdone .bigchk{width:34px;height:34px}
.tnm .trow.tdone .bigchk .ck{width:21px;height:21px}
.tnm .trow.arrive{animation:arrive var(--dur-mid) cubic-bezier(.2,.9,.3,1.2)}
@keyframes arrive{from{transform:translateY(-6px) scale(.98);opacity:.2}}
.tnm .hid{display:flex;justify-content:center;align-items:center;gap:6px;margin:16px 0 0;font-size:13.5px;color:var(--mut);font-weight:650}
.tnm .donel{margin-top:10px}
.tnm .cuw{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tnm .cug{background:var(--well);border:var(--wellB);border-radius:var(--r);padding:12px}
.tnm .cug h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 2px 8px;font:var(--fwh) 14px/1.1 var(--fh);letter-spacing:var(--lsh);text-transform:var(--tth)}
.tnm .cug h3 em{font:700 12px/1 var(--fb);font-style:normal;color:var(--mut);letter-spacing:0;text-transform:none}
.tnm .cug ul,.tnm .peek ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tnm .cu{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 11px;background:var(--card);border:var(--bwc) solid var(--bc);border-radius:calc(var(--r)*.75)}
.tnm .cdot{width:10px;height:10px;border-radius:50%;background:var(--c);flex:none}
.tnm .cu .cb{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.tnm .ct{font-weight:750;font-size:14px;text-decoration:none;line-height:1.25}
.tnm .ct:hover{text-decoration:underline}
.tnm .cm{font-size:12px;color:var(--mut)}
.tnm .cu.is-done .ct{text-decoration:line-through;color:var(--mut)}
.tnm .cdone{font-size:12px;font-weight:800;color:var(--mut);padding:0 6px}
.tnm .cflag{display:flex;flex-direction:column;gap:3px;margin-top:6px;font-size:12px;color:var(--ink2);background:var(--flagBg);border:1.5px dashed var(--flagB);border-radius:6px;padding:6px 8px}
.tnm .cfh{display:flex;align-items:center;gap:5px;font-weight:850;color:var(--flagInk)}
.tnm .cfw{line-height:1.35}
.tnm .cfa{display:flex;flex-wrap:wrap;gap:2px 12px}
.tnm .cfa a{font-weight:750}
.tnm .cflag a{color:var(--ink)}
.tnm .pull{flex:none;display:flex;align-items:center;gap:4px;height:32px;padding:0 10px 0 8px;border-radius:999px;border:var(--bw) solid var(--bc);background:var(--card);font-weight:800;font-size:12.5px}
.tnm .pull svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tnm .pull:hover{background:var(--acc);color:var(--accInk);border-color:var(--bc)}
.tnm .free{position:relative;text-align:center;padding:30px 24px 24px;background:var(--card);border:var(--bw) solid var(--bc);border-radius:var(--r);box-shadow:var(--sh)}
.tnm .art{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:110px;justify-content:center}
.tnm .fl{margin:12px auto 0;max-width:440px;color:var(--ink2);font-size:15px}
.tnm .peek{max-width:560px;margin:22px auto 0;text-align:left;padding-top:18px;border-top:var(--bw) dashed var(--line)}
.tnm .peek .sh h2{font-size:16px}
.tnm .then{margin:10px 2px 0;font-size:13px;color:var(--mut);font-weight:650}
.tnm .sk{display:block;background:var(--skel);border-radius:7px;position:relative;overflow:hidden}
.tnm .sk::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--skelHi),transparent);transform:translateX(-100%);animation:shim var(--dur-loop) ease-in-out infinite}
@keyframes shim{to{transform:translateX(100%)}}
.tnm .sk.vb{height:34px;width:min(420px,80vw);margin-top:4px}
.tnm .sk.nb{height:14px;width:min(300px,60vw);margin-top:12px}
.tnm .sk.hb{height:18px;width:110px}
.tnm .skrow{display:flex;align-items:center;gap:14px;padding:14px;background:var(--card);border:var(--bw) solid var(--bc);border-radius:var(--r);opacity:.9}
.tnm .skrow+.skrow{margin-top:10px}
.tnm .sk.ckk{width:40px;height:40px;border-radius:var(--chr);flex:none}
.tnm .skb{flex:1;display:flex;flex-direction:column;gap:8px}
.tnm .skb .sk{height:14px}
.tnm .skb .sk.s2{height:10px}
.tnm .sk.skchip{width:54px;height:30px;border-radius:999px}
.tnm .cug.sk-g .skrow{padding:10px}
.tnm .cug.sk-g .sk.ckk{width:12px;height:12px;border-radius:50%}
.tnm .stub{text-align:center;padding:48px 24px;background:var(--card);border:var(--bw) solid var(--bc);border-radius:var(--r);box-shadow:var(--sh)}
.tnm .stub h1{margin:12px 0 8px;font:var(--fwh) 34px/1.1 var(--fh);text-transform:var(--tth);letter-spacing:var(--lsh)}
.tnm .stub p{max-width:460px;margin:0 auto 20px;color:var(--ink2)}
.tnm .stub .soon{font-size:12px;padding:4px 8px;background:var(--acc);color:var(--accInk)}
.tnm .sa{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.tnm .stubh{padding-bottom:8px}
#estpop{position:absolute;z-index:70;display:flex;align-items:center;gap:4px;padding:6px;background:var(--card);border:var(--bw) solid var(--bc);border-radius:14px;box-shadow:var(--pop);animation:pop var(--dur-fast) ease-out}
@keyframes pop{from{opacity:0;transform:translateY(-4px)}}
#estpop .eh{font-size:12px;font-weight:800;color:var(--mut);padding:0 6px 0 4px}
#estpop button{height:36px;min-width:48px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-weight:800;font-size:13.5px}
#estpop button.on{background:var(--navon);color:var(--navonInk);border-color:transparent}
@keyframes tin{from{opacity:0;transform:translateY(10px)}}
#fx{position:fixed;inset:0;pointer-events:none;z-index:75}
#fx .tpt{position:fixed;width:20px;height:20px}
#fx .tpt svg{width:100%;height:100%}
.tnm .stamp{position:absolute;right:84px;top:50%;pointer-events:none;z-index:3;white-space:nowrap}
#cel{position:fixed;inset:0;z-index:85;pointer-events:none;display:grid;place-items:center}
.botnav{display:none}
@media (max-width:900px){.topbar{padding:12px 16px 4px;gap:10px}
.navt{display:none}
.tools{margin-left:auto}
.botnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--card);border-top:var(--bw) solid var(--bc);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:var(--shadow-nav)}
.botnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0;font-size:11px;font-weight:800;text-decoration:none;color:var(--mut);border-radius:10px}
.botnav a svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.botnav a[aria-current=page]{color:var(--ink)}
.botnav a[aria-current=page] svg{stroke-width:2.4}
.botnav a .soon{font-size:8.5px;padding:1px 4px;margin-top:-1px}
main.tnm{padding:2px 16px 112px}
.tnm .thero{flex-direction:column;gap:12px;padding:10px 0 12px}
.tnm .verdict{font-size:28px}
.tnm .hr{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px}
.fpill{font-size:12.5px;padding:0 12px}
.tnm .grip{display:none}
.tnm .dk{display:none}
.tnm .mb{display:inline}
.tnm .trow{gap:12px;padding:12px}
.tnm .rt{font-size:16px}
.tnm .stamp{right:66px}
.tnm .cuw{grid-template-columns:1fr}
.tnm .sh .meta{font-size:12px}
.banner .ba{width:100%}}
@media (prefers-reduced-motion:reduce){}
