:root{
  --bg:#f4f1ea;--panel:#fffdf8;--panel2:#f8f5ee;--ink:#1a1f1c;--ink2:#3d4540;--muted:#6b736d;--faint:#9ba29c;
  --line:#e6e1d6;--line2:#d6d0c2;--accent:#0f766e;--accent-h:#0b5f58;--accent-ink:#fff;--accent-soft:#e3f1ec;--accent-line:#b9ddd3;
  --good:#15803d;--good-soft:#e4f3e8;--warn:#c2690a;--warn-soft:#fcefdc;--bad:#c53b30;--bad-soft:#fbe9e6;
  --shadow-sm:0 1px 2px rgba(40,34,20,.06);--shadow:0 1px 2px rgba(40,34,20,.04),0 8px 28px -12px rgba(40,34,20,.14);
  --shadow-lg:0 30px 70px -28px rgba(15,80,70,.30),0 2px 6px rgba(40,34,20,.06);
  --glow:radial-gradient(55% 55% at 50% 0%,rgba(20,184,166,.16),transparent 70%),radial-gradient(35% 40% at 85% 10%,rgba(245,158,11,.12),transparent 70%);
  --grad:linear-gradient(100deg,#0f766e,#14a085 50%,#e08a1e);
  --r:16px;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c1210;--panel:#121a17;--panel2:#16201c;--ink:#e9efe9;--ink2:#c3ccc5;--muted:#8a968e;--faint:#5d6a62;
  --line:#1e2a25;--line2:#2a3832;--accent:#2dd4bf;--accent-h:#5eead4;--accent-ink:#06120f;--accent-soft:#10302a;--accent-line:#1f5248;
  --good:#4ade80;--good-soft:#0f2a1a;--warn:#fbbf24;--warn-soft:#2b220d;--bad:#f87171;--bad-soft:#2d1514;
  --shadow-sm:none;--shadow:0 0 0 1px rgba(255,255,255,.02);--shadow-lg:0 30px 80px -30px rgba(0,0,0,.8);
  --glow:radial-gradient(55% 55% at 50% 0%,rgba(45,212,191,.14),transparent 70%),radial-gradient(35% 40% at 85% 10%,rgba(251,191,36,.08),transparent 70%);
  --grad:linear-gradient(100deg,#2dd4bf,#5eead4 45%,#fbbf24);}}
:root[data-theme="dark"]{
  --bg:#0c1210;--panel:#121a17;--panel2:#16201c;--ink:#e9efe9;--ink2:#c3ccc5;--muted:#8a968e;--faint:#5d6a62;
  --line:#1e2a25;--line2:#2a3832;--accent:#2dd4bf;--accent-h:#5eead4;--accent-ink:#06120f;--accent-soft:#10302a;--accent-line:#1f5248;
  --good:#4ade80;--good-soft:#0f2a1a;--warn:#fbbf24;--warn-soft:#2b220d;--bad:#f87171;--bad-soft:#2d1514;
  --shadow-sm:none;--shadow:0 0 0 1px rgba(255,255,255,.02);--shadow-lg:0 30px 80px -30px rgba(0,0,0,.8);
  --glow:radial-gradient(55% 55% at 50% 0%,rgba(45,212,191,.14),transparent 70%),radial-gradient(35% 40% at 85% 10%,rgba(251,191,36,.08),transparent 70%);
  --grad:linear-gradient(100deg,#2dd4bf,#5eead4 45%,#fbbf24);}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:15px/1.55 Geist,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
[hidden]{display:none!important}
main{overflow-x:clip}
.wrap{max-width:1240px;margin:0 auto;padding:0 max(24px,env(safe-area-inset-left))}
@media(max-width:640px){.wrap{padding:0 16px}}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:10px;height:62px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;min-width:0}
.brand svg{width:32px;height:32px;flex:none}
.brand b{font-size:17px;font-weight:700;letter-spacing:.01em}
.brand span{color:var(--muted);font-size:13.5px;white-space:nowrap}
@media(max-width:640px){.brand span{display:none}}
.navbtn{display:inline-flex;align-items:center;gap:7px;flex:none;height:36px;padding:0 13px;border:0;border-radius:10px;background:none;color:var(--muted);font-weight:550;font-size:14px;cursor:pointer;white-space:nowrap}
.navbtn:hover{color:var(--ink);background:var(--panel)}
.navbtn.on{color:var(--ink);background:var(--panel);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line)}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font:600 11.5px/20px var(--mono);text-align:center}
.iconbtn{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:none;color:var(--muted);cursor:pointer}
.iconbtn:hover{color:var(--ink);background:var(--panel)}
.iconbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.brand b{flex:none}
@media(max-width:520px){.nav .wrap{gap:4px}.navbtn{padding:0 9px}.navbtn .ns{display:none}}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-sm);transition:border-color .15s,background .15s,transform .05s}
.btn:hover{border-color:var(--faint)}
.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--accent);border-color:transparent;color:var(--accent-ink);box-shadow:0 1px 2px rgba(0,0,0,.08),0 6px 16px -6px color-mix(in srgb,var(--accent) 70%,transparent)}
.btn.pri:hover{background:var(--accent-h)}
.btn.ghost{background:none;border-color:transparent;box-shadow:none;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);background:var(--panel)}
.btn.danger:hover{color:var(--bad);border-color:var(--bad)}
.btn:disabled{opacity:.45;cursor:default;transform:none}
.btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn.lg{height:46px;padding:0 22px;font-size:15px;border-radius:12px}
.field label,.flabel{display:block;font-size:12.5px;font-weight:600;color:var(--ink2);margin:0 0 6px}
.input,select.input{width:100%;height:40px;padding:0 12px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
select.input{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b91aa' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;cursor:pointer}
@media(max-width:640px){.input,textarea{font-size:16px!important}}
input[type=checkbox]{appearance:none;width:18px;height:18px;margin:0;border:1.5px solid var(--line2);border-radius:5px;background:var(--panel);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .12s,border-color .12s}
input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}
input[type=checkbox]:checked::after{content:"";width:9px;height:5px;border:2px solid var(--accent-ink);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
input[type=checkbox]:disabled{opacity:.35;cursor:default}
input[type=checkbox]:focus-visible,.btn:focus-visible,.navbtn:focus-visible,.iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.seg{display:flex;padding:3px;gap:3px;border-radius:11px;background:var(--panel2);border:1px solid var(--line)}
.seg button{flex:1;height:32px;border:0;border-radius:8px;background:none;color:var(--muted);font-weight:550;font-size:13.5px;cursor:pointer;white-space:nowrap;padding:0 10px}
.seg button.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow-sm),0 0 0 1px var(--line)}
.seg button .n{font:500 12px var(--mono);color:var(--faint);margin-left:5px}
.seg button.on .n{color:var(--accent)}

/* layout */
.wrap{max-width:1440px}
.app{display:grid;grid-template-columns:372px minmax(0,1fr);gap:24px;align-items:start;padding-top:24px;padding-bottom:48px}
.side{position:sticky;top:86px;max-height:calc(100vh - 110px);overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}
.content{container:content/inline-size;min-width:0;scroll-margin-top:76px}
@media(max-width:1000px){.app{grid-template-columns:minmax(0,1fr);gap:20px;padding-top:16px}.side{position:static;max-height:none}}
.side form{padding:22px}
.side h2{margin:0 0 4px;font-size:18px;letter-spacing:-.015em}
.side .lead{margin:0 0 18px;color:var(--muted);font-size:13.5px}
.side .field{margin-bottom:16px}
.side textarea.input{height:auto;min-height:104px;padding:10px 12px;line-height:1.5;resize:vertical}
.side .go{width:100%;margin-top:4px}
.side .hint{margin:10px 0 0;text-align:center;color:var(--faint);font-size:12.5px}
.formerr{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--bad-soft);color:var(--bad);font-size:13.5px}
.intro{position:relative;overflow:hidden;padding:64px 48px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow);text-align:center}
.intro::before{content:"";position:absolute;inset:0;background:var(--glow);pointer-events:none}
.intro>*{position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 8px;border:1px solid var(--line2);border-radius:99px;background:var(--panel);color:var(--ink2);font-size:13px;font-weight:550;box-shadow:var(--shadow-sm)}
.eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.intro h1{margin:0 auto 14px;max-width:720px;font-size:clamp(30px,4.6vw,54px);line-height:1.05;letter-spacing:-.035em;font-weight:700}
.intro h1 em{font-style:normal;white-space:nowrap;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.intro p{margin:0 auto;max-width:560px;color:var(--muted);font-size:clamp(15px,1.6vw,17.5px)}
@media(max-width:640px){.intro{padding:40px 20px}}

/* progress */
.prog{max-width:620px;margin:0 auto;padding:30px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow-lg)}
.prog .kicker{color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.prog h2{margin:6px 0 22px;font-size:21px;letter-spacing:-.02em;line-height:1.3;overflow-wrap:anywhere}
.pbar{height:6px;border-radius:9px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.pbar i{display:block;height:100%;width:0;border-radius:9px;background:var(--grad);transition:width .6s ease}
.plist{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.plist li{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:14.5px}
.plist li .ic{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line2);flex:none}
.plist li.done{color:var(--ink2)}
.plist li.done .ic{background:var(--good);border-color:var(--good)}
.plist li.done .ic::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.plist li.active{color:var(--ink);font-weight:600}
.plist li.active .ic{border-color:var(--accent-line);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.prog .foot{display:flex;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.prog .foot b{font:600 13px var(--mono);color:var(--ink2)}
.prog .err{margin-top:20px;padding:12px 14px;border-radius:12px;background:var(--bad-soft);color:var(--bad);font-size:14px}

/* results */
.rhead{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:6px 0 20px}
.rhead .t{flex:1;min-width:260px}
.rhead .kicker{color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.rhead h2{margin:4px 0 10px;font-size:clamp(22px,3vw,30px);line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--line);border-radius:99px;background:var(--panel);color:var(--muted);font-size:12.5px;font-weight:550}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.stat{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);box-shadow:var(--shadow)}
.stat b{display:block;font:600 28px/1.15 var(--mono);letter-spacing:-.03em}
.stat span{color:var(--muted);font-size:13px}
.stat.hl b{color:var(--accent)}
@container content (max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.stat b{font-size:23px}}
.note{display:flex;gap:10px;align-items:flex-start;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--ink2);font-size:13.5px}
.note svg{width:18px;height:18px;flex:none;margin-top:1px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}
.card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);box-shadow:var(--shadow)}
.cbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line)}
.cbar .seg{flex:0 1 auto}
.cbar .sp{flex:1}
@container content (max-width:600px){.cbar .seg{flex:1 1 100%;overflow-x:auto}.cbar .sp{display:none}.cbar>.btn{flex:1}}
.tools{display:flex;gap:10px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line);background:var(--panel2)}
.search{position:relative;flex:1 1 240px}
.search svg{position:absolute;left:11px;top:11px;width:18px;height:18px;fill:none;stroke:var(--faint);stroke-width:2;stroke-linecap:round}
.search .input{padding-left:36px}
.tools select.input{flex:0 1 220px;width:auto;min-width:0}
#v-saved .tools .search{flex:1 1 100%}
#v-saved .tools select.input{flex:1 1 160px;max-width:none}
#v-saved .svrow{cursor:pointer;transition:background .12s}
#v-saved .svrow:hover{background:var(--panel2)}
#v-saved .svrow.open{background:var(--panel2)}
.chev{width:16px;height:16px;margin-left:6px;vertical-align:-3px;fill:none;stroke:var(--faint);stroke-width:2;stroke-linecap:round;transition:transform .15s}
.svrow.open .chev{transform:rotate(180deg)}
.svdet{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px 24px;margin:6px 0 2px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:default}
.svdet dt{margin-bottom:4px;color:var(--faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.svdet dd{margin:0;color:var(--ink2);font-size:14px;overflow-wrap:anywhere}
.svdet dd small{color:var(--faint)}
@container content (max-width:600px){.tools select.input{flex:1 1 calc(50% - 5px)}}
.selrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.selrow .lbl{color:var(--muted);font-size:13px;margin-right:2px}
.pill{height:30px;padding:0 12px;border:1px solid var(--line2);border-radius:99px;background:var(--panel);color:var(--ink2);font-size:13px;font-weight:550;cursor:pointer}
.pill:hover{border-color:var(--accent);color:var(--accent)}
.selrow .info{margin-left:auto;color:var(--muted);font-size:13px}
@container content (max-width:600px){.selrow .info{margin-left:0;flex:1}}

/* list */
.lhead,.row{display:grid;align-items:center;gap:14px;padding:0 16px}
.seo .lhead,.seo .row{grid-template-columns:20px minmax(0,1fr) 126px 134px 92px 108px 128px}
.geo .lhead,.geo .row{grid-template-columns:20px minmax(0,1fr) 120px 124px 108px 128px}
.c-mets{display:contents}
.lhead{height:42px;white-space:nowrap;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.lhead button{padding:0;border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}
.lhead button:hover,.lhead button.on{color:var(--ink)}
.lhead button.on::after{content:" ↓"}
.lhead button.on.asc::after{content:" ↑"}
.row{padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.row:last-child{border-bottom:0}
.row:hover{background:var(--panel2)}
.row.on{background:var(--accent-soft)}
.row.saved{cursor:default}
.kw{font-weight:600;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.geo .kw{font-weight:550}
.sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:5px;color:var(--muted);font-size:12.5px}
.sub .tag{display:inline-block;max-width:100%;padding:1px 8px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sub .cited{flex-basis:100%;color:var(--faint)}
.meter{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:550;color:var(--ink2);text-transform:capitalize}
.bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}
.bars i{width:4px;border-radius:2px;background:var(--line2)}
.bars i:nth-child(1){height:6px}.bars i:nth-child(2){height:10px}.bars i:nth-child(3){height:14px}
.t-good .bars i.f{background:var(--good)}.t-warn .bars i.f{background:var(--warn)}.t-bad .bars i.f{background:var(--bad)}.t-low .bars i.f{background:var(--faint)}
.dots{display:inline-flex;gap:3px;align-items:center}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--line2)}
.dots i.f{background:var(--accent)}
.dots b{margin-left:6px;font:500 12.5px var(--mono);color:var(--muted)}
.score{display:flex;align-items:center;gap:9px}
.score b{font:600 14px var(--mono);min-width:34px}
.sbar{flex:1;max-width:64px;height:5px;border-radius:9px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.sbar i{display:block;height:100%;border-radius:9px;background:var(--accent)}
.c-act{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.gbtn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--ink2);font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.gbtn:hover{border-color:var(--accent);color:var(--accent)}
.gbtn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.bm{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--faint);cursor:pointer}
.bm:hover{color:var(--accent);background:var(--panel)}
.bm svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.bm.on{color:var(--accent)}.bm.on svg{fill:currentColor}
.empty{padding:56px 20px;text-align:center;color:var(--muted)}
.empty .ill{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:16px;background:var(--accent-soft);color:var(--accent)}
.empty .ill svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.empty h3{margin:0 0 6px;color:var(--ink);font-size:17px}
.empty p{margin:0 auto 18px;max-width:420px}
@container content (max-width:900px){
  .lhead{display:none}
  .seo .row,.geo .row{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"chk main act" ". mets mets";row-gap:12px;align-items:start}
  .c-chk{grid-area:chk;padding-top:2px}.c-main{grid-area:main}.c-act{grid-area:act}
  .c-mets{grid-area:mets;display:flex;flex-wrap:wrap;gap:10px 22px}
  .c-mets>div::before{content:attr(data-l);display:block;margin-bottom:4px;color:var(--faint);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
  .gbtn span{display:none}.gbtn{width:32px;padding:0;justify-content:center}.gbtn svg{width:15px;height:15px}
}

/* intents */
.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px;padding:16px}
.icard{display:flex;flex-direction:column;padding:14px 18px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);cursor:pointer;transition:border-color .12s,background .12s}
.icard:hover{border-color:var(--line2)}
.icard.on{border-color:var(--accent);background:var(--accent-soft)}
.icard.saved{cursor:default}
.ihead{display:flex;align-items:center;justify-content:space-between;margin:0 -8px 6px 0}
.icard h3{margin:0 0 4px;font-size:16px;letter-spacing:-.01em;line-height:1.35}
.icard .who{color:var(--muted);font-size:13px}
.icard p{margin:12px 0 14px;color:var(--ink2);font-size:14px;flex:1}
.icard .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.icard .foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.linkbtn{padding:0;border:0;background:none;color:var(--accent);font-weight:600;font-size:13px;cursor:pointer}
.linkbtn:hover{text-decoration:underline}

/* saved */
.svrow,.svhead{display:grid;grid-template-columns:minmax(0,1fr) 96px 112px 112px 132px;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.svhead{padding-top:0;padding-bottom:0;height:40px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.svrow:last-child{border-bottom:0}
.ktag{display:inline-block;padding:2px 8px;border-radius:6px;font:600 11px var(--mono);letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);text-align:center}
.ktag.geo{background:var(--warn-soft);color:var(--warn)}
.stat.hl{background:var(--accent-soft);border-color:var(--accent-line)}
@container content (max-width:760px){.svhead{display:none}.svrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main act" "meta meta"}.svrow .c-main{grid-area:main}.svrow .c-act{grid-area:act}.svrow .smeta{grid-area:meta;display:flex;flex-wrap:wrap;gap:10px 22px}
  .smeta>div::before{content:attr(data-l);display:block;margin-bottom:4px;color:var(--faint);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}}
.smeta{display:contents}

/* action bar & toast */
.actbar{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:30;display:flex;align-items:center;gap:6px;padding:7px 7px 7px 18px;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:0 18px 50px -12px rgba(0,0,0,.45);max-width:calc(100% - 32px);animation:up .18s ease}
.actbar span{font-weight:600;font-size:14px;margin-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.actbar .btn{border-color:transparent;box-shadow:none}
.actbar .btn.ghost{color:color-mix(in srgb,var(--bg) 75%,transparent)}
.actbar .btn.ghost:hover{background:color-mix(in srgb,var(--bg) 12%,transparent);color:var(--bg)}
@keyframes up{from{opacity:0;transform:translate(-50%,8px)}}
@media(max-width:640px){.actbar{left:16px;right:16px;transform:none;animation:none}.actbar span{margin-right:auto}}
body.has-sel main{padding-bottom:96px}
.toast{position:fixed;left:50%;bottom:24px;z-index:40;transform:translate(-50%,10px);padding:11px 16px;border-radius:12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg);font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
body.has-sel .toast{bottom:92px}

/* ---------- shared: links, small text ---------- */
a.navbtn{text-decoration:none}
.muted{color:var(--muted);font-size:14px}
.check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 16px;color:var(--ink2);font-size:14px;line-height:1.45;cursor:pointer}
.check input{margin-top:2px}
.check a{color:var(--accent)}

/* ---------- app: usage, verify banner, account ---------- */
.usage{padding:0 10px;color:var(--muted);font:500 12.5px var(--mono);white-space:nowrap}
.usage.out{color:var(--bad)}
@media(max-width:860px){.usage{display:none}}
.verify{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-size:13.5px}
.verify .linkbtn{color:inherit;text-decoration:underline}
.acgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px}
.acc{padding:20px}
.acc h3{margin:0 0 6px;font-size:16px}
.acc .field{margin-bottom:12px}
.code{margin:14px 0;padding:14px;border:1.5px dashed var(--accent-line);border-radius:12px;background:var(--accent-soft);color:var(--accent);font:600 26px var(--mono);letter-spacing:.18em;text-align:center}
.row2{display:flex;gap:8px;flex-wrap:wrap}
.minis{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin-top:14px}
.minis div{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.minis b{display:block;font:600 20px var(--mono)}
.minis span{color:var(--muted);font-size:12px}
.danger-zone{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}

/* ---------- public pages ---------- */
.page{padding-top:40px;padding-bottom:64px}
.narrow{max-width:760px;margin:0 auto}
.lhero{position:relative;padding:72px 0 48px;text-align:center}
.lhero::before{content:"";position:absolute;inset:0 -30vw;background:var(--glow);pointer-events:none;z-index:-1}
.lhero h1{margin:0 auto 16px;max-width:860px;font-size:clamp(34px,6vw,62px);line-height:1.04;letter-spacing:-.035em}
.lhero h1 em{font-style:normal;white-space:nowrap;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lhero p{margin:0 auto 28px;max-width:620px;color:var(--muted);font-size:clamp(16px,2vw,19px)}
.ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.lsec{padding:40px 0}
.lsec h2{margin:0 0 8px;font-size:clamp(24px,3vw,32px);letter-spacing:-.025em;text-align:center}
.lsec .lsub{margin:0 auto 28px;max-width:620px;color:var(--muted);text-align:center}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.feat .card{padding:22px}
.feat h3{margin:10px 0 6px;font-size:16.5px}
.feat p{margin:0;color:var(--muted);font-size:14.5px}
.ficon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.ficon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.plan{max-width:560px;margin:0 auto;padding:26px;text-align:center}
.plan .big{font:600 44px var(--mono);letter-spacing:-.03em}
.plan ul{list-style:none;margin:18px 0 22px;padding:0;display:grid;gap:8px;color:var(--ink2);font-size:15px}
.faq{max-width:760px;margin:0 auto;display:grid;gap:10px}
.faq details{padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:10px 0 0;color:var(--ink2)}
.sitefoot{padding:28px 0 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
.sitefoot .wrap{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.sitefoot a{color:inherit}
.sitefoot .sp{flex:1}
.authbox{max-width:440px;margin:48px auto;padding:28px}
.authbox h1{margin:0 0 6px;font-size:24px;letter-spacing:-.02em}
.authbox .field{margin-bottom:14px}
.authbox .btn.go{width:100%;margin-top:6px}
.authbox .alt{margin-top:16px;text-align:center;color:var(--muted);font-size:14px}
.authbox .alt a{color:var(--accent);font-weight:600}
.hintok{margin-top:5px;font-size:12.5px;color:var(--good)}
.hintbad{margin-top:5px;font-size:12.5px;color:var(--bad)}
.okbox{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--good-soft);color:var(--good);font-size:13.5px}
.legal h1{font-size:clamp(28px,4vw,38px);letter-spacing:-.025em;margin:0 0 6px}
.legal h2{font-size:19px;margin:30px 0 8px}
.legal p,.legal li{color:var(--ink2);line-height:1.65}
.dirgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px}
.dircard{display:flex;align-items:center;gap:12px;padding:14px 16px}
.dircard .av{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;flex:none}
.dircard .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dircard .sm{color:var(--muted);font-size:12.5px}
.dircard .btn{margin-left:auto;height:32px;padding:0 11px;font-size:13px}
.atable{width:100%;border-collapse:collapse;font-size:13.5px}
.atable th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.atable td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.atable td.m{font-family:var(--mono)}
.ascroll{overflow-x:auto}
.pager{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:22px}
.pager .btn{min-width:40px;height:36px;padding:0 12px}
.pager .gap{color:var(--muted);padding:0 4px}

/* app: promo card for regular users (dark, non-blocking, bottom-right) */
.promo{position:fixed;inset:auto 24px 24px auto;z-index:35;margin:0;border:0;padding:0;background:transparent;width:min(400px,calc(100% - 32px));max-height:calc(100dvh - 48px)}
.promo[open]{animation:promoIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes promoIn{from{opacity:0;transform:translateY(18px)}}
body.has-sel .promo{bottom:96px}
@media(max-width:640px){.promo{inset:auto 16px 16px 16px;width:auto}}
.promo-card{position:relative;max-height:calc(100dvh - 48px);overflow-y:auto;padding:22px 22px 16px;border:1px solid rgba(255,255,255,.09);border-radius:18px;
  background:radial-gradient(120% 80% at 100% 0%,rgba(45,212,191,.18),transparent 55%),linear-gradient(165deg,#13241f 0%,#0b1310 70%);
  color:#e9f0eb;box-shadow:0 24px 60px -12px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.2)}
.promo .kicker{color:#5eead4;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.09em}
.promo h2{margin:6px 32px 10px 0;font-size:20px;line-height:1.2;letter-spacing:-.02em;color:#f4f8f5}
.promo p{margin:0 0 10px;color:#b7c4bc;font-size:14px;line-height:1.55}
.promo p b{color:#e9f0eb;font-weight:600}
.promo-by{display:flex;align-items:center;gap:10px;margin:14px 0}
.promo-by .av{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2dd4bf,#fbbf24);color:#07120f;font-weight:700;font-size:14px}
.promo-by b{display:block;font-size:13.5px;color:#f4f8f5}
.promo-by small{color:#8fa198;font-size:12px}
.promo-ctas{display:flex;gap:8px;flex-wrap:wrap}
.promo-ctas .btn{flex:1 1 150px;height:40px;font-size:14px;border-radius:10px;box-shadow:none}
.promo-ctas .btn.pri{background:#2dd4bf;color:#06120f}
.promo-ctas .btn.pri:hover{background:#5eead4}
.promo-ctas .btn:not(.pri){background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:#e9f0eb}
.promo-ctas .btn:not(.pri):hover{border-color:rgba(255,255,255,.35)}
.promo-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:#b7c4bc;font-size:14px;cursor:pointer}
.promo-x:hover{background:rgba(255,255,255,.14);color:#fff}
.promo-later{display:block;margin:10px auto 0;padding:6px 12px;border:0;background:none;color:#8fa198;font:inherit;font-size:13px;cursor:pointer}
.promo-later:hover{color:#e9f0eb}

/* in-page confirmation */
.askbox{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 6px 6px 12px;border:1px solid color-mix(in srgb,var(--bad) 40%,var(--line));border-radius:10px;background:var(--bad-soft);color:var(--bad);font-size:13.5px;font-weight:550}
.askbox .btn{height:32px;padding:0 12px;font-size:13px}
.btn.danger-solid{background:var(--bad);border-color:transparent;color:#fff}
.btn.danger-solid:hover{filter:brightness(1.08)}

/* styled dropdowns */
.dd{position:relative;min-width:0}
.dd-btn{display:flex;align-items:center;width:100%;padding-right:34px;text-align:left;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b91aa' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
.dd-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd.open .dd-btn{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.dd-list{position:absolute;left:0;top:calc(100% + 6px);z-index:45;min-width:max(100%,220px);max-width:min(420px,calc(100vw - 32px));max-height:300px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-lg);animation:ddIn .14s ease}
@keyframes ddIn{from{opacity:0;transform:translateY(-4px)}}
.dd.up .dd-list{top:auto;bottom:calc(100% + 6px)}
.dd.alignr .dd-list{left:auto;right:0}
.dd-opt{position:relative;padding:9px 12px 9px 32px;border-radius:8px;color:var(--ink2);font-size:14px;line-height:1.35;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-opt.act{background:var(--panel2);color:var(--ink)}
.dd-opt.on{color:var(--accent);font-weight:600}
.dd-opt.on::before{content:"";position:absolute;left:13px;top:50%;width:9px;height:5px;border:2px solid currentColor;border-top:0;border-right:0;transform:translateY(-70%) rotate(-45deg)}

/* "Don't chase volume" line under the hero text */
.intent-line{margin:16px auto 0!important;max-width:560px;padding:12px 16px;border:1px solid var(--accent-line);border-radius:12px;background:var(--accent-soft);color:var(--ink2)!important;font-size:15px!important;line-height:1.55}
.intent-line b{color:var(--accent)}
.lhero .intent-line{margin:0 auto 28px!important}
.lhero p:has(+ .intent-line){margin-bottom:16px}

/* ---------- small screens & touch ---------- */
.navbtn .ni{display:none;width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px){
  /* app top bar: icons instead of words so everything fits */
  .nav .navbtn:has(.ni){padding:0 10px;gap:4px}
  .nav .navbtn .ni{display:block}
  .nav .navbtn .nl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .nav .badge{min-width:18px;height:18px;line-height:18px;font-size:10.5px;padding:0 5px}
  .nav:has(.ni) .brand b{display:none}
}
@media(max-width:360px){.nav .navbtn:has(.ni){padding:0 8px}.nav .wrap{gap:2px}}
main.page .stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
@media(pointer:coarse){
  input[type=checkbox]{width:22px;height:22px}
  .linkbtn{min-height:36px;padding:8px 0}
}
.selrow label.lbl{cursor:pointer;padding:6px 4px;margin:-6px 0}
.seg .ts{display:none}
@container content (max-width:520px){
  .seg .tl{display:none}.seg .ts{display:inline}
  .cbar .seg button,#svtabs button{flex:1 1 0;padding:0 6px;font-size:13px}
}
.free-badge{margin-bottom:22px;font-size:14px;padding:6px 14px 6px 10px}
