/* Tarufo website. Tokens and values come from the design mockup. No inline styles anywhere (CSP). */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/bricolage-grotesque.woff2) format('woff2')}

:root{
  --page:#FAFAF9;--ink:#1F1E1C;--ink2:#3A3835;--mut:#605D58;--mut2:#6F6C66;--line:#D9D8D5;--line2:#E5E5E3;--soft:#F2F2F1;
  --acc:#7C5228;--acc2:#66431F;--gold:#D2B07E;--ok:#4E6A3B;--warn:#8E5D12;--bad:#A3412E;
  --dark:#151515;--dcard:#262625;--dline:#383836;--dline2:#4A4947;--dtx:#ECEBE8;--dmut:#A9A7A1;--dmut2:#98958F;
  --sans:-apple-system,BlinkMacSystemFont,'SF Pro Text',system-ui,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --disp:'Bricolage Grotesque',-apple-system,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--page);color:var(--ink);font:16px/24px var(--sans);overflow-x:hidden}
button,a,input,summary{font:inherit;color:inherit}
button{background:none;border:0;padding:0;margin:0;cursor:pointer}
a{text-decoration:none}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}
.dark :focus-visible{outline-color:var(--gold)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
.disp{font-family:var(--disp);letter-spacing:-0.02em;font-weight:650}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:48px;align-items:center}
.col{display:flex;flex-direction:column;gap:16px}
[hidden]{display:none !important}
.lede{font-size:17px;line-height:27px;color:var(--mut)}

/* buttons */
.pri,.sec{display:inline-flex;align-items:center;font-weight:500;transition:background-color 120ms ease-out,transform 70ms ease-out}
.pri{background:var(--acc);color:#fff}
.pri:hover{background:var(--acc2)}
.sec{background:var(--soft)}
.sec:hover{background:#E5E5E3}
.pri:active,.sec:active{transform:scale(.98)}
.nl:hover{color:var(--ink)}

/* header */
.hdr{position:sticky;top:0;z-index:20;background:rgba(250,250,249,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line2)}
.hdr .wrap{display:flex;align-items:center;gap:28px;height:60px}
.logo{display:flex;align-items:center;color:var(--ink)}
.mainnav{display:flex;gap:24px;font-size:14px;color:var(--mut)}
.grow{flex:1}
.hdr-src{font-size:14px;color:var(--mut)}
.hdr-cta{height:34px;padding:0 14px;border-radius:9px;font-size:14px}

/* hero */
.hero{padding:88px 0 72px}
.hero .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
.pill{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:999px;background:var(--soft);font-size:13px;color:var(--ink2)}
.pill i{width:6px;height:6px;border-radius:50%;background:var(--ok)}
.hero h1{font-size:72px;line-height:72px}
.hero h1 span{color:var(--acc)}
.hero .lede{max-width:620px;font-size:19px;line-height:29px}
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.btn-lg{height:44px;padding:0 20px;border-radius:11px;font-size:15px;gap:8px}
.fine{font-size:13px;color:var(--mut2)}
.rise{animation:rise 600ms cubic-bezier(.2,.7,.2,1) backwards}
.d1{animation-delay:60ms}.d2{animation-delay:120ms}.d3{animation-delay:180ms}.d4{animation-delay:220ms}.d5{animation-delay:280ms}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.demo-wrap{width:100%;max-width:1040px;margin-top:32px}
.demo-note{margin-top:14px;font-size:12px;color:var(--mut2);text-align:center}

/* dark sections */
.dark{background:var(--dark);color:var(--dtx)}
.sect{padding:96px 0}
.sect .wrap.stack{display:flex;flex-direction:column;gap:48px}
.sect-head{max-width:680px;display:flex;flex-direction:column;gap:14px}
.sect-head h2{font-size:48px;line-height:52px}
.sect-head p{font-size:18px;line-height:28px}
.dark .eyebrow{color:var(--gold)}
.dark .lede,.dark .card p{color:var(--dmut)}
.card{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:13px;background:var(--dcard);border:1px solid var(--dline)}
.card svg{stroke:var(--gold)}
.card h3{font-size:18px;line-height:24px;font-weight:600}
.card p{font-size:15px;line-height:23px}
.note{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:20px 24px;border-radius:13px;border:1px dashed var(--dline2);color:var(--dmut);font-size:15px;line-height:23px}
.note b{font-weight:600;color:var(--dtx)}
.note span{flex:1;min-width:260px}

/* navigation */
.h44{font-size:44px;line-height:48px}
.navtabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.navtabs button{height:32px;padding:0 12px;border-radius:8px;font-size:14px;background:var(--soft);color:var(--ink2);transition:background-color 120ms ease-out}
.navtabs button:hover{background:#E5E5E3}
.navtabs button[aria-selected="true"]{background:var(--ink);color:#fff;font-weight:600}
.navbody{font-size:15px;line-height:23px;color:var(--ink2);min-height:46px}
.pal{border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 48px rgba(31,30,28,.10);overflow:hidden}
.pal-q{display:flex;align-items:center;gap:10px;height:52px;padding:0 16px;border-bottom:1px solid var(--line2)}
.pal-q b{font-family:var(--disp);font-size:16px;font-weight:600;color:var(--acc)}
.pal-q .caret{width:1px;height:18px;background:var(--acc)}
.pal-rows{padding:6px 8px 10px}
.pal-head{display:block;padding:8px 10px 4px;font-size:11px;color:var(--mut)}
.pal-row{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;border-radius:8px}
.pal-row.first{background:#F0EFED}
.pal-row .sq{width:20px;height:20px;border-radius:5px}
.pal-row .t{flex:1;display:flex;flex-direction:column}
.pal-row .t span:first-child{font-size:14px;line-height:18px}
.pal-row .t span:last-child{font-size:11px;line-height:14px;color:var(--mut)}
.pal-row .h{font-size:11px;color:var(--mut)}
.c-acc{background:var(--acc)}.c-ink2{background:var(--ink2)}.c-bad{background:var(--bad)}.c-warn{background:var(--warn)}.c-mut2{background:var(--mut2)}
.t-acc{color:var(--acc)}.t-mut{color:var(--mut)}

/* privacy */
.priv{background:var(--soft)}
.checks{margin-top:8px;display:flex;flex-direction:column;gap:10px}
.checks li{display:flex;gap:10px;font-size:15px;line-height:22px}
.checks svg{flex:none;margin-top:2px;stroke:var(--ok)}
.trkcard{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.trkcard label{font-size:14px;font-weight:600}
.trkcard input{height:40px;padding:0 12px;border-radius:9px;border:1px solid var(--line);background:var(--page);font:13px var(--mono);color:var(--ink);min-width:0}
.trk-out{display:flex;flex-direction:column;gap:8px}
.trk-head{font-size:14px;font-weight:500;color:var(--ink2)}
.trk-head.ok{color:var(--ok)}
.trk-row{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:8px;background:var(--page);font-size:12px}
.trk-row .key{font:600 12px var(--mono)}
.trk-row .d{flex:1;min-width:0;color:var(--mut)}
.trk-row.p{color:var(--bad)}.trk-row.c{color:var(--warn)}.trk-row.kept{color:var(--ink2)}
.trk-row.p .key,.trk-row.c .key{text-decoration:line-through}
.trk-clean-l{font-size:12px;color:var(--mut)}
.trk-clean{font:12px/18px var(--mono);color:var(--ink);word-break:break-all}
.trkcard small{font-size:11px;line-height:15px;color:var(--mut2)}

/* developers */
.dev .stack{display:flex;flex-direction:column;gap:40px}
.dev-card{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:13px;background:#fff;border:1px solid var(--line);transition:border-color 160ms ease-out}
.dev-card:hover{border-color:#C4C2BE}
.dev-card .top{display:flex;align-items:center;gap:10px}
.dev-card svg{stroke:var(--acc)}
.dev-card h3{font-size:17px;line-height:22px;font-weight:600}
.dev-card .later{margin-left:auto;height:20px;padding:0 7px;border-radius:6px;background:var(--soft);font-size:11px;line-height:20px;color:var(--mut)}
.dev-card p{font-size:15px;line-height:23px;color:var(--mut)}
.code{border-radius:13px;background:var(--dark);color:var(--dtx);padding:22px 24px;font:13px/22px var(--mono);overflow-x:auto}
.code div{white-space:pre}
.code .cm{color:var(--dmut2)}.code .tb{color:var(--gold)}.code .st{color:#A3B58C}.code .gap{margin-top:12px}

/* open source */
.opensrc{padding:80px 0;background:var(--soft)}
.opensrc h2{font-size:40px;line-height:44px}
.opensrc .col{gap:14px}
.demo-fallback{padding:48px 24px;border-radius:13px;background:var(--soft);color:var(--mut);font-size:14px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fact{padding:18px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.fact div:first-child{font-size:12px;color:var(--mut)}
.fact div:last-child{font-size:16px;line-height:22px;font-weight:600;margin-top:4px}

/* faq */
.faq .wrap{max-width:820px;display:flex;flex-direction:column;gap:24px}
.faq h2{font-size:40px;line-height:44px}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 8px;font-size:17px;font-weight:500;border-radius:8px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:#EDEDEC}
.faq summary span{flex:1}
.faq summary svg{stroke:var(--mut);transition:transform 160ms ease-out}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq details p{padding:0 8px 20px;font-size:15px;line-height:24px;color:var(--mut)}

/* download */
.dl .wrap{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.dl h2{font-size:48px;line-height:52px}
.dl .lede{max-width:520px}
.join{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;max-width:460px}
.join input[type=email]{flex:1 1 240px;height:46px;padding:0 14px;border-radius:11px;border:1px solid var(--dline2);background:var(--dcard);font-size:15px;color:var(--dtx)}
.join input::placeholder{color:var(--dmut2)}
.join .pri{height:46px;padding:0 22px;border-radius:11px;font-size:15px}
.join .pri:disabled{opacity:.6;cursor:default}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{display:none;margin:0;font-size:15px}
.msg.ok{padding:12px 18px;border-radius:11px;background:var(--dcard);color:var(--dtx)}
.msg.err{font-size:13px;color:#E3907A}
.msg:target,.msg.show{display:block}
.dl:has(#joined:target) .join,.dl.is-joined .join{display:none}
.dl .fine{color:var(--dmut2)}

/* footer */
.ftr{padding:40px 0;border-top:1px solid var(--line2)}
.ftr .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;font-size:13px;color:var(--mut)}

@media (max-width:720px){
  .wrap{padding:0 16px}
  .g2{grid-template-columns:1fr;gap:32px}
  .hideS{display:none !important}
  .hero h1{font-size:44px;line-height:46px}
  .sect-head h2,.dl h2{font-size:36px;line-height:40px}
  .h44{font-size:36px;line-height:40px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:1ms !important;transition-duration:1ms !important}
}

/* ---- Demo window (hero). Theme tokens are scoped to the window: Alba (light) and Estivo (dark). ---- */
.sh-light{color-scheme:light;--win:#F2F2F1;--side:#ECECEB;--page:#FAFAF9;--surf:#FFFFFF;--hov:#E5E5E3;--sel:#E4E3E0;--line:#D9D8D5;--line2:#C4C2BE;--line3:#EDEDEC;--tx:#1F1E1C;--tx2:#3A3835;--mut:#605D58;--mut2:#8E8B85;--mut3:#A8A59F;--acc:#7C5228;--acc2:#66431F;--ok:#4E6A3B;--warn:#8E5D12;--bad:#A3412E;--inv:#1F1E1C;--invtx:#F2F2F1;--shc:43,36,29}
.sh-dark{color-scheme:dark;--win:#151515;--side:#1A1A19;--page:#1E1E1D;--surf:#262625;--hov:#2E2E2C;--sel:#383836;--line:#2F2F2D;--line2:#4A4947;--line3:#262625;--tx:#ECEBE8;--tx2:#D0CEC9;--mut:#A9A7A1;--mut2:#86847E;--mut3:#7A7873;--acc:#D2B07E;--acc2:#DEC092;--ok:#A3B58C;--warn:#DDB46E;--bad:#E3907A;--inv:#323230;--invtx:#ECEBE8;--shc:0,0,0}
.mk{position:relative;height:480px;display:flex;flex-direction:column;border-radius:13px;background:var(--win);color:var(--tx);border:1px solid var(--line);box-shadow:0 40px 80px rgba(31,30,28,.14),0 2px 6px rgba(31,30,28,.06);overflow:hidden;text-align:left;font-size:13px;line-height:18px;transition:background-color 200ms ease-out}
.fade{animation:fade 160ms ease-out}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lights{flex:none;display:flex;gap:6px;margin-right:12px}
.lights span{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.lights span:nth-child(2){background:#febc2e}.lights span:nth-child(3){background:#28c840}
.mb{flex:none;width:26px;height:24px;border-radius:7px;display:grid;place-items:center;color:var(--tx2);transition:background-color 120ms ease-out}
.mb:not([aria-pressed="true"]):not([aria-expanded="true"]):not([aria-current="page"]):not([aria-selected="true"]):not([aria-disabled="true"]):hover,.mrow:not(.on):hover{background:var(--hov)}
.mb[aria-disabled="true"]{cursor:default;color:var(--mut3)}
.mrow{transition:background-color 120ms ease-out}
.mx{flex:none;max-width:0;width:0;height:20px;margin-right:0;border-radius:5px;display:grid;place-items:center;color:var(--mut);opacity:0;overflow:hidden;transition:max-width 120ms ease-out,opacity 120ms ease-out}
.mrow:hover .mx,.mrow:focus-within .mx{max-width:22px;width:20px;opacity:1;margin-right:5px}
.fav{flex:none;width:14px;height:14px;border-radius:4px;color:#fff;display:grid;place-items:center;font-size:8px;line-height:1;font-weight:700}
.fav.big{width:16px;height:16px;font-size:9px}
.f1{background:#3F3E3C}.f2{background:#B4503F}.f3{background:#3F67A6}.f4{background:#1F1E1C}.f5{background:#A87532}.f6{background:#4F7A45}.f7{background:#7A7873}.fnone{background:var(--line2)}
.mring{box-shadow:0 0 0 1.5px var(--acc)}
.vsep{flex:none;width:1px;height:14px;margin:0 6px;background:var(--line)}

.strip{flex:none;height:36px;display:flex;align-items:center;gap:2px;padding:4px 8px 0 14px}
.qa-top{flex:none;display:flex;align-items:center;gap:2px;margin-left:4px}
.tabs-top{flex:1;min-width:0;display:flex;align-items:center;gap:3px;overflow:hidden}
.tabbtn{flex:1;min-width:0;display:flex;align-items:center;text-align:left}
.tt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tx2)}
.toptab{flex:0 1 180px;min-width:40px;display:flex;align-items:center;height:26px;border-radius:7px;box-shadow:inset 0 0 0 1px transparent}
.toptab.on{background:var(--page);box-shadow:inset 0 0 0 1px var(--line)}
.toptab .tabbtn{height:26px;gap:6px;padding:0 7px}
.toptab .tt{font-size:11px;line-height:14px}
.on>.tabbtn .tt{color:var(--tx)}

.bar{flex:none;height:36px;display:flex;align-items:center;padding:0 8px 0 0}
.bar-l{flex:none;display:flex;align-items:center;padding-left:8px}
.bar-l.side{width:200px;padding-left:12px}
.addr{flex:1;min-width:0;height:26px;display:flex;align-items:center;gap:2px;padding:0 3px;border-radius:9px;background:var(--page);border:1px solid var(--line)}
.addr.editing{border-color:var(--acc)}
#addr{flex:1;min-width:0;height:22px;padding:0 6px;border:0;outline:none;background:transparent;font-size:12px;color:var(--tx)}
.hint{flex:none;padding:0 6px;font-size:10px;color:var(--mut3)}
.editing .hint{color:var(--mut2)}
.lock{width:20px;height:20px;border-radius:5px;color:var(--ok)}
.crumbs{flex:0 1 auto;min-width:0;display:flex;align-items:center;overflow:hidden;white-space:nowrap}
.csep{flex:none;color:var(--mut3);font-size:10px}
.crumb{display:block;width:auto;flex:0 1 auto;min-width:0;height:20px;padding:0 4px;border-radius:5px;font-size:12px;line-height:16px;font-weight:400;color:var(--mut);overflow:hidden;text-overflow:ellipsis}
.crumb.strong,.crumb.last{color:var(--tx);font-weight:500}.crumb.strong{font-weight:600}
.editfill{flex:1;align-self:stretch;min-width:12px;cursor:text}
.pillbtn{display:inline-flex;width:auto;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;background:var(--hov);font-size:11px;line-height:14px;font-weight:500;color:var(--ok);white-space:nowrap}
.pillbtn.open{background:var(--sel)}
.emptyaddr{flex:1;min-width:0;height:20px;padding:0 6px;text-align:left;font-size:12px;color:var(--mut);cursor:text}
.bar-r{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:1px;padding-left:8px}
.bar-r.wide{width:258px}
.bar-r .vsep{margin:0 4px}
.tool.on{background:var(--sel);color:var(--acc)}

.body{position:relative;flex:1;min-height:0;display:flex}
.sidenav{flex:none;width:200px;display:flex;flex-direction:column;padding:6px 10px 8px 12px}
.cap{display:block;font-size:10px;font-weight:500;color:var(--mut)}
.sidenav>.cap{display:flex;align-items:center;height:18px;margin-bottom:6px}
.qa-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.qa{width:auto;height:34px;border-radius:8px;background:var(--page)}
.qa.on{background:var(--sel)}
.spacehead{display:flex;align-items:center;gap:7px;height:26px;margin-top:14px;padding:0 8px;font-size:11px;font-weight:600;color:var(--tx)}
.dot{flex:none;width:7px;height:7px;border-radius:50%}
.dot.acc{background:var(--acc)}.dot.ok{background:var(--ok)}
.sidelist{flex:1;min-height:0;display:flex;flex-direction:column;gap:2px;margin-top:4px;overflow-y:auto}
.newrow{flex:none;display:flex;align-items:center;gap:8px;height:28px;padding:0 8px;border-radius:7px;text-align:left;color:var(--tx2)}
.newrow span{flex:1;font-size:12px}
.newrow i{font-style:normal;font-size:10px;color:var(--mut2)}
.sidetab{flex:none;display:flex;align-items:center;height:30px;border-radius:7px}
.sidetab.on{background:var(--sel)}
.sidetab .tabbtn{height:30px;gap:8px;padding:0 8px}
.sidetab .tt{font-size:12px;line-height:16px}
.reopen{flex:none;display:flex;align-items:center;gap:8px;height:26px;margin-top:4px;padding:0 8px;border-radius:7px;text-align:left;color:var(--mut)}
.reopen span{flex:1;min-width:0;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spaces{flex:none;display:flex;gap:4px;padding-top:8px;border-top:1px solid var(--line)}
.space{display:inline-flex;width:auto;align-items:center;gap:6px;height:24px;padding:0 8px;font-size:11px;color:var(--mut)}
.space.on{background:var(--sel);color:var(--tx)}

.main{position:relative;flex:1;min-width:0;margin:0 8px 8px;border-radius:11px;background:var(--page);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
.main.flush{margin-left:0}
.mload{position:absolute;top:0;left:0;height:2px;background:var(--acc);animation:mload 800ms cubic-bezier(.2,.6,.3,1) forwards}
@keyframes mload{from{width:0}to{width:90%}}
.doc{flex:1;overflow:hidden;padding:32px 36px}
.sub{font-size:12px;color:var(--mut)}
.doc .sub{margin-bottom:6px}
.dh{font-size:28px;line-height:32px;font-weight:600;margin-bottom:18px}
.skel{display:flex;flex-direction:column;gap:9px}
.skel span{height:9px;border-radius:5px;background:var(--hov)}
.skel .blk{height:120px;border-radius:10px;background:var(--win);margin:10px 0}
.w94{width:94%}.w100{width:100%}.w71{width:71%}.w88{width:88%}.w54{width:54%}
.results{flex:1;overflow:auto;padding:24px 36px;display:flex;flex-direction:column;gap:16px}
.res{display:flex;flex-direction:column;gap:2px}
.rd{font-size:11px;color:var(--mut)}
.rt{align-self:flex-start;font-size:15px;line-height:20px;color:var(--acc);text-align:left;text-decoration:underline;text-underline-offset:3px}
.rn{font-size:12px;color:var(--tx2)}
.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center}
.e1{font-size:15px;font-weight:600}.e2{font-size:12px;color:var(--mut)}

.panel{position:relative;top:0;right:0;bottom:0;z-index:4;flex:none;width:250px;max-width:calc(100% - 16px);margin:0 8px 8px 0;border-radius:11px;background:var(--page);border:1px solid var(--line);padding:12px 14px;display:flex;flex-direction:column;gap:12px;overflow:auto}
.panel.float{position:absolute;box-shadow:0 12px 32px rgba(var(--shc),.2)}
.panel-h{display:flex;align-items:center;gap:8px}
.panel-h span{flex:1;font-size:13px;font-weight:600}
.panel-h .mb{width:22px;height:22px;border-radius:6px;color:var(--mut)}
.p1{font-size:12px;line-height:17px;color:var(--tx2)}
.p2{font-size:11px;line-height:15px;color:var(--mut)}
.radar{display:flex;height:8px;gap:2px;border-radius:4px;overflow:hidden}
.radar span{display:block}
.r-act{background:var(--acc)}.r-warm{background:var(--tx2)}.r-rest{background:var(--line2)}.r-free{border:1px dashed var(--mut)}
.legend{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10px;color:var(--mut)}
.lg{display:inline-block;width:6px;height:6px;border-radius:2px;margin-right:4px}
.lg.acc{background:var(--acc)}.lg.tx2{background:var(--tx2)}.lg.line2{background:var(--line2)}
.segs{display:flex;gap:2px;padding:2px;border-radius:8px;background:var(--win)}
.seg{flex:1;height:22px;border-radius:6px;font-size:11px}
.seg.on{background:var(--surf);font-weight:600;box-shadow:0 1px 2px rgba(var(--shc),.14)}
.devlines{display:flex;flex-direction:column;gap:3px;font:11px/16px var(--mono)}
.dline{display:flex;gap:8px;color:var(--tx2)}
.dline.mutd{color:var(--mut)}
.dlt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dtag{flex:none;color:var(--mut)}.dtag.ok{color:var(--ok)}.dtag.bad{color:var(--bad)}
.askbox{height:30px;display:flex;align-items:center;padding:0 10px;border-radius:8px;border:1px dashed var(--line2);font-size:12px;color:var(--mut)}
.tdwrap{display:flex;flex-direction:column;gap:4px}
.tdrow{display:flex;align-items:center;gap:8px;width:100%;height:30px;padding:0 6px;border-radius:7px;text-align:left}
.tdrow .tt{font-size:12px;color:var(--tx)}
.tstate{flex:none;font-size:10px;color:var(--mut)}

.scrim{position:absolute;inset:0;z-index:8;background:transparent;cursor:default}
.pop{position:absolute;z-index:9;width:260px;padding:6px;border-radius:11px;background:var(--surf);border:1px solid var(--line);box-shadow:0 8px 24px rgba(var(--shc),.18);display:flex;flex-direction:column;gap:2px}
.pop>p{padding:6px 8px 2px;font-size:12px;font-weight:600}
.popitem{display:flex;align-items:center;gap:8px;width:100%;min-height:30px;padding:4px 8px;border-radius:7px;text-align:left}
.popitem[aria-disabled="true"]{cursor:default}
.popitem>span{flex:1;min-width:0;display:flex;flex-direction:column}
.pd{flex:none;width:6px;height:6px;border-radius:50%}
.pd.bad{background:var(--bad)}.pd.warn{background:var(--warn)}.pd.ok{background:var(--ok)}.pd.acc{background:var(--acc)}.pd.tx2{background:var(--tx2)}.pd.mut3{background:var(--mut3)}
.pl{font-size:12px;line-height:16px}.pl.strike{text-decoration:line-through}
.ps{font-size:11px;line-height:14px;color:var(--mut)}
.appear{display:flex;flex-direction:column;gap:6px;padding:8px 8px 4px;border-top:1px solid var(--line);margin-top:2px}
.appear>span{font-size:11px;color:var(--mut)}
.pop .segs{background:var(--hov)}.pop .seg{height:24px}
.toast{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:10;height:32px;padding:0 12px;border-radius:9px;background:var(--inv);color:var(--invtx);display:flex;align-items:center;font-size:12px;white-space:nowrap;box-shadow:0 8px 24px rgba(var(--shc),.2)}

/* 404 */
.nf{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px}
.nf h1{font-size:56px;line-height:60px}

@media (max-width:560px){.addr .hint{display:none}}
