/* NYC Portfolios Tracker design system
   1 tokens  2 base  3 layout  4 header/footer  5 components  6 marketing patterns  7 app (dashboard/admin)  8 feature modules  9 utilities */

/* ---------- 1. Tokens ---------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-latin-wght-normal.woff2) format("woff2")}
:root{
  /* neutral scale */
  --n-0:#ffffff;--n-25:#fbfbfc;--n-50:#f6f7f9;--n-100:#eef0f3;--n-200:#e2e5ea;--n-300:#cdd2d9;--n-400:#9aa1ab;--n-500:#68707c;--n-600:#4a515c;--n-700:#353b44;--n-800:#22262d;--n-900:#14171b;
  /* single accent */
  --ac-50:#eff1fd;--ac-100:#e0e4fa;--ac-200:#c3caf3;--ac-500:#4a55d4;--ac-600:#3a45c6;--ac-700:#2f38a4;--ac-800:#262d82;
  /* severity only */
  --sev-c:#b42318;--sev-c-bg:#fef3f2;--sev-c-bd:#f6cdc9;--sev-c-solid:#d92d20;
  --sev-b:#8a4b06;--sev-b-bg:#fef6e7;--sev-b-bd:#f5dcae;--sev-b-solid:#dc8b0b;
  --sev-a:#4a515c;--sev-a-bg:#eef0f3;--sev-a-bd:#dde1e6;--sev-a-solid:#9aa1ab;
  /* type scale */
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-17:17px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-30:30px;--fs-36:36px;--fs-44:44px;
  --fs-display:clamp(34px,3.75vw,54px);--fs-h2:clamp(28px,2.8vw,40px);--fs-page:clamp(30px,3.2vw,44px);
  /* spacing (4px base) */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-14:56px;--s-16:64px;--s-20:80px;--s-24:96px;
  /* radius, borders, elevation */
  --r-sm:4px;--r:10px;--r-lg:12px;--r-xl:16px;--bd:1px solid var(--n-200);
  /* surfaces: a thin outline ring plus one soft shadow */
  --ring-c:rgba(20,23,27,.09);--bd-card:1px solid var(--ring-c);--shadow-card:0 4px 14px -8px rgba(20,23,27,.14);
  --shadow-1:0 1px 2px rgba(20,23,27,.05);--shadow-pop:0 8px 24px rgba(20,23,27,.12),0 1px 3px rgba(20,23,27,.08);
  --ring:0 0 0 3px rgba(58,69,198,.28);
  /* legacy aliases used by inline styles and older modules */
  --navy:var(--n-900);--navy2:var(--n-800);--teal:var(--ac-600);--teal2:var(--ac-200);--amber:var(--sev-b-solid);--red:var(--sev-c-solid);--orange:var(--sev-b-solid);--yellow:var(--n-500);
  --ink:var(--n-900);--ink2:var(--n-600);--mut:var(--n-500);--line:var(--n-200);--bg:var(--n-50);--card:var(--n-0)
}

/* ---------- 2. Base ---------- */
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:var(--fs-16);line-height:1.55;color:var(--n-900);background:var(--n-0);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{color:var(--n-900);font-weight:650;letter-spacing:-.011em;line-height:1.25}
h1{font-size:var(--fs-30);margin:0 0 var(--s-2)}
h2{font-size:var(--fs-24);margin:var(--s-1) 0 var(--s-3)}
h3{font-size:var(--fs-18);margin:0 0 var(--s-2)}
h4{font-size:var(--fs-14);margin:0 0 var(--s-2)}
p{margin:0 0 var(--s-3)}
a{color:var(--ac-600);text-decoration:underline;text-decoration-color:var(--ac-200);text-underline-offset:2px}
a:hover{color:var(--ac-700);text-decoration-color:currentColor}
img,svg{max-width:100%}
code{font-family:var(--mono);font-size:.9em}
hr{border:0;border-top:var(--bd);margin:var(--s-6) 0}
::selection{background:var(--ac-100)}
:focus-visible{outline:2px solid var(--ac-600);outline-offset:2px}
.skip{position:absolute;left:-999px;top:var(--s-2)}.skip:focus{left:var(--s-3);background:var(--n-0);padding:var(--s-2) var(--s-3);z-index:99;border-radius:var(--r);border:var(--bd)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.hide{display:none}

/* ---------- 3. Layout ---------- */
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--s-6)}
.wrap.wide{max-width:1360px}
section.blk{padding:var(--s-24) 0}
section.alt{background:transparent}
section.tint{background:var(--n-50)}
.grid{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:var(--s-6)}
.res{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1fr)}
.center{min-height:60vh;display:grid;place-items:center;padding:var(--s-10) var(--s-5)}
.center .card{max-width:520px;text-align:center}
@media(max-width:640px){.wrap{padding:0 var(--s-4)}section.blk{padding:var(--s-16) 0}}

/* ---------- 4. Header and footer ---------- */
.top{background:var(--n-0);border-bottom:1px solid var(--n-100);position:sticky;top:0;z-index:40}
.top .wrap{display:flex;align-items:center;gap:var(--s-6);min-height:64px;max-width:1360px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--n-900);text-decoration:none;font-weight:650;font-size:var(--fs-16);letter-spacing:-.01em;white-space:nowrap}
.brand:hover{color:var(--n-900)}
.brand img{width:28px;height:28px;display:block}
.brand em{font-style:normal;color:var(--n-500);font-weight:500}
.top nav{margin-left:auto;display:flex;gap:2px;align-items:center;flex-wrap:wrap}
.top nav a{color:var(--n-600);text-decoration:none;padding:7px 11px;border-radius:8px;font-weight:500;font-size:var(--fs-14)}
.top nav a:hover{color:var(--n-900);background:var(--n-100)}
.top nav a[aria-current=page]{color:var(--n-900);background:var(--n-100)}
.top nav a[data-acct]{margin-left:var(--s-2);border:1px solid var(--ring-c);box-shadow:0 1px 2px rgba(20,23,27,.05);border-radius:var(--r);color:var(--n-900);font-weight:550}
.top nav a[data-acct]:hover{border-color:var(--n-400);background:var(--n-0)}
.top nav a.btn.p{color:var(--n-0);background:var(--ac-600);border-color:var(--ac-600);margin-left:var(--s-2);padding:6px 14px;font-weight:550;border-radius:var(--r)}
.top nav a.btn.p:hover{background:var(--ac-700);color:var(--n-0)}
.menu{display:none;margin-left:auto;background:var(--n-0);border:1px solid var(--n-300);color:var(--n-800);border-radius:var(--r);padding:6px 12px;font:inherit;font-size:var(--fs-14);font-weight:550;cursor:pointer}
@media(max-width:900px){.menu{display:block}.top nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--n-0);border-bottom:var(--bd);flex-direction:column;align-items:stretch;padding:var(--s-2) var(--s-4) var(--s-4);box-shadow:var(--shadow-pop)}.top nav.open{display:flex}.top nav a{padding:10px 12px;font-size:var(--fs-16)}.top nav a[data-acct]{margin:var(--s-2) 0 0;text-align:center}}
footer.site{background:var(--n-50);border-top:1px solid var(--n-100);color:var(--n-600);padding:var(--s-16) 0 var(--s-10);font-size:var(--fs-14)}
footer.site .cols{display:grid;gap:var(--s-8);grid-template-columns:2fr 1fr 1fr}
@media(max-width:700px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{color:var(--n-900);margin:0 0 var(--s-3);font-size:var(--fs-13);font-weight:600}
footer.site ul{list-style:none;padding:0;margin:0}footer.site li{margin:6px 0}
footer.site a{color:var(--n-600);text-decoration:none}footer.site a:hover{color:var(--n-900);text-decoration:underline}
footer.site .brand{color:var(--n-900)}
footer.site .fine{border-top:1px solid var(--n-200);margin-top:var(--s-10);padding-top:var(--s-5);font-size:var(--fs-12);color:var(--n-500);line-height:1.6}

/* ---------- 5. Components ---------- */
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:38px;padding:8px 16px;border-radius:var(--r);border:1px solid transparent;font:inherit;font-size:var(--fs-14);font-weight:550;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s}
.btn.p{background:var(--ac-600);color:var(--n-0);border-color:var(--ac-600);box-shadow:0 1px 2px rgba(38,45,130,.22)}
.btn.p:hover{background:var(--ac-700);border-color:var(--ac-700);color:var(--n-0)}
.btn.s{background:var(--n-0);color:var(--n-800);border-color:rgba(20,23,27,.14);box-shadow:0 1px 2px rgba(20,23,27,.06)}
.btn.s:hover{background:var(--n-50);border-color:var(--n-400);color:var(--n-900)}
.btn.s.p{background:var(--ac-600);color:var(--n-0);border-color:var(--ac-600)}
.btn.ghost,.btn.light{background:transparent;color:var(--n-700);border-color:transparent}
.btn.ghost:hover,.btn.light:hover{background:var(--n-100);color:var(--n-900)}
.btn.danger{color:var(--sev-c)}.btn.danger:hover{border-color:var(--sev-c-bd);background:var(--sev-c-bg);color:var(--sev-c)}
.btn.sm{min-height:30px;padding:4px 10px;font-size:var(--fs-13)}
.btn.lg{min-height:46px;padding:11px 22px;font-size:var(--fs-16);border-radius:var(--r-lg)}
.btn:focus-visible{outline:none;box-shadow:var(--ring)}
.btn[disabled],.btn.soon{opacity:.55;cursor:not-allowed}
.linkb{background:none;border:0;padding:0;font:inherit;color:var(--ac-600);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.soon-tag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;background:var(--n-100);color:var(--n-600);border:1px solid var(--n-200);border-radius:var(--r-sm);padding:1px 6px;vertical-align:middle}
/* form controls */
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=search],input[type=url],textarea,select{font:inherit;font-size:var(--fs-14);color:var(--n-900);background:var(--n-0);border:1px solid var(--n-300);border-radius:var(--r);padding:8px 10px;min-height:36px;width:100%;transition:border-color .12s,box-shadow .12s}
textarea{min-height:80px;line-height:1.5}
select{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--n-500) 50%),linear-gradient(135deg,var(--n-500) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
input:hover,textarea:hover,select:hover{border-color:var(--n-400)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ac-500);box-shadow:var(--ring)}
input::placeholder,textarea::placeholder{color:var(--n-400)}
input:disabled,select:disabled,textarea:disabled{background:var(--n-50);color:var(--n-500)}
input[type=checkbox],input[type=radio]{accent-color:var(--ac-600);width:16px;height:16px}
input[type=file]{font:inherit;font-size:var(--fs-13)}
.fld{display:block;margin:0 0 var(--s-4)}.fld>span{display:block;font-weight:550;font-size:var(--fs-14);margin-bottom:6px;color:var(--n-800)}
label{color:var(--n-800)}
.chk{display:flex;gap:10px;align-items:flex-start;margin:var(--s-2) 0;cursor:pointer;font-size:var(--fs-14)}.chk input{margin-top:3px;flex:none}
.chk.sm{font-size:var(--fs-13);margin:6px 0}
/* cards and panels */
.card{background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);padding:var(--s-6);box-shadow:var(--shadow-card)}
.card h3{margin:0 0 var(--s-2);font-size:var(--fs-16);font-weight:600}
.card p{margin:0;color:var(--n-600)}
.card p+p{margin-top:var(--s-2)}
.panel{background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.panel-h{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between;padding:var(--s-4) var(--s-5);border-bottom:var(--bd)}
.panel-h h2{font-size:var(--fs-16);margin:0;font-weight:600}
.panel-b{padding:var(--s-5)}
.bhead{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between}
.bhead h2{font-size:var(--fs-18)!important}
.bhead h3{margin:0;font-size:var(--fs-18)}
.more{margin-top:var(--s-3)}
/* badges */
.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);font-weight:550;line-height:18px;border-radius:var(--r-sm);padding:1px 7px;background:var(--n-100);color:var(--n-700);border:1px solid var(--n-200);white-space:nowrap;vertical-align:1px}
.tag.em{background:var(--sev-c-bg);color:var(--sev-c);border-color:var(--sev-c-bd)}
.tag.warnt{background:var(--sev-b-bg);color:var(--sev-b);border-color:var(--sev-b-bd)}
.tag.open{background:var(--ac-50);color:var(--ac-700);border-color:var(--ac-100)}
.tag.ok{background:var(--n-0);color:var(--n-700);border-color:var(--n-300)}
.tag.ok:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ac-600)}
.cls{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;font-weight:650;font-size:var(--fs-12);border-radius:var(--r-sm);padding:0 6px;border:1px solid;font-variant-numeric:tabular-nums}
.cls.C{background:var(--sev-c-bg);color:var(--sev-c);border-color:var(--sev-c-bd)}
.cls.B{background:var(--sev-b-bg);color:var(--sev-b);border-color:var(--sev-b-bd)}
.cls.A,.cls.I,.cls.X{background:var(--sev-a-bg);color:var(--sev-a);border-color:var(--sev-a-bd)}
.ph{background:var(--sev-b-bg);border:1px dashed var(--sev-b-solid);color:var(--sev-b);padding:0 4px;border-radius:var(--r-sm);font-weight:600}
/* alerts */
.note,.warn,.err{border-radius:var(--r);padding:var(--s-3) var(--s-4);font-size:var(--fs-14);border:1px solid;border-left-width:3px}
.note{background:var(--ac-50);border-color:var(--ac-100);border-left-color:var(--ac-600);color:var(--n-800)}
.warn{background:var(--sev-b-bg);border-color:var(--sev-b-bd);border-left-color:var(--sev-b-solid);color:var(--n-800)}
.err{background:var(--sev-c-bg);border-color:var(--sev-c-bd);border-left-color:var(--sev-c-solid);color:var(--sev-c)}
p.warn,p.note{margin:0 0 var(--s-3)}
/* tables */
.tblw{overflow-x:auto;border:var(--bd-card);border-radius:var(--r-lg);background:var(--n-0)}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.tbl th{text-align:left;font-size:var(--fs-12);font-weight:600;color:var(--n-500);background:var(--n-50);border-bottom:var(--bd);padding:9px 12px;white-space:nowrap}
.tbl td{border-bottom:1px solid var(--n-100);padding:10px 12px;vertical-align:top;color:var(--n-800)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--n-25)}
.tbl td.num,.tbl th.num{text-align:right}
/* stats (summary tiles) */
.sum{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.stat{background:var(--n-0);border:var(--bd-card);box-shadow:var(--shadow-card);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);display:flex;flex-direction:column-reverse;gap:2px}
.stat b{display:block;font-size:var(--fs-20);line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums;color:var(--n-900)}
.stat span{color:var(--n-500);font-size:var(--fs-13);line-height:1.35}
.stat.c{border-left:3px solid var(--sev-c-solid)}.stat.c b{color:var(--sev-c)}
.stat.b{border-left:3px solid var(--sev-b-solid)}.stat.b b{color:var(--sev-b)}
.stat.a{border-left:3px solid var(--sev-a-solid)}
/* tabs (generic) */
.tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:var(--bd)}
.tabs [role=tab],.tabs .btn[role=tab]{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;color:var(--n-600);padding:10px 14px;margin-bottom:-1px;font-size:var(--fs-14);font-weight:550;min-height:40px}
.tabs [role=tab]:hover,.tabs .btn[role=tab]:hover{color:var(--n-900);background:transparent}
.tabs [role=tab][aria-selected=true],.tabs .btn[role=tab][aria-selected=true]{color:var(--n-900);border-bottom-color:var(--ac-600);background:transparent}
/* disclosure */
details{background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);margin-top:var(--s-2)}
details summary{font-weight:550;cursor:pointer;color:var(--n-900)}
details summary:focus-visible{outline:2px solid var(--ac-600);outline-offset:3px;border-radius:6px}
details summary::marker{color:var(--n-400)}
details p{color:var(--n-600);margin:var(--s-3) 0 0}
details[open]>summary{margin-bottom:var(--s-1)}
/* loading, skeleton, empty */
.loading{display:flex;align-items:center;gap:10px;color:var(--n-500);font-size:var(--fs-14);padding:var(--s-1) 0}
.spin{width:16px;height:16px;border:2px solid var(--n-200);border-top-color:var(--ac-600);border-radius:50%;animation:sp .8s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.skel{display:inline-block;height:1em;min-width:3ch;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--n-100),var(--n-50),var(--n-100));background-size:200% 100%;animation:sk 1.2s ease-in-out infinite;vertical-align:middle}
@keyframes sk{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.spin,.skel{animation:none}html{scroll-behavior:auto}}
.empty{text-align:center;padding:var(--s-10) var(--s-6);color:var(--n-600)}
.empty h3{font-size:var(--fs-16);margin:0 0 var(--s-1)}
.empty p{margin:0 auto var(--s-4);max-width:440px;font-size:var(--fs-14)}

/* ---------- 6. Marketing patterns ---------- */
.kicker,.eyebrow{display:inline-block;font-size:var(--fs-13);font-weight:600;color:var(--ac-600);letter-spacing:0;margin-bottom:var(--s-2)}
/* page hero (inner pages): white, no band, bigger calmer headline */
.hero{background:var(--n-0);padding:var(--s-16) 0 var(--s-8)}
.hero h1{font-size:var(--fs-page);line-height:1.1;font-weight:620;margin:0 0 var(--s-4);letter-spacing:-.025em;max-width:900px}
.hero p.lead{font-size:var(--fs-18);color:var(--n-600);max-width:720px;margin:0 0 var(--s-6);line-height:1.6}
.hero .kicker{color:var(--ac-600)}
.hero .ctas{display:flex;gap:var(--s-3);flex-wrap:wrap}
@media(max-width:640px){.hero{padding:var(--s-10) 0 var(--s-6)}.hero p.lead{font-size:var(--fs-17)}}
/* home */
.home{font-size:var(--fs-17)}
.hero.home{padding:var(--s-20) 0 var(--s-16);text-align:center}
.hhead{max-width:880px;margin:0 auto}
.hero.home h1{font-size:var(--fs-display);line-height:1.06;font-weight:620;letter-spacing:-.03em;max-width:860px;margin:var(--s-5) auto var(--s-5)}
.hero.home p.lead{max-width:640px;margin:0 auto var(--s-8);font-size:var(--fs-18)}
.hero.home .search{margin:0 auto var(--s-4);max-width:620px;text-align:left}
.hero.home .ctas{justify-content:center}
.pill{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-13);font-weight:550;color:var(--n-700);background:var(--n-0);border:var(--bd-card);border-radius:999px;padding:5px 14px 5px 12px;box-shadow:0 1px 2px rgba(20,23,27,.05)}
.pill i{width:6px;height:6px;border-radius:50%;background:var(--ac-600)}
.facts{list-style:none;margin:var(--s-8) auto 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2) var(--s-6);font-size:var(--fs-14);color:var(--n-600)}
.facts li{display:inline-flex;align-items:center;gap:6px}
.facts svg,.pchk svg,.mini-ok li:before{width:16px;height:16px;flex:none;fill:none;stroke:var(--ac-600);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px){.hero.home{padding:var(--s-12) 0 var(--s-10)}.hero.home h1{letter-spacing:-.025em}.hero.home p.lead{font-size:var(--fs-17);margin-bottom:var(--s-6)}.facts{flex-direction:column;align-items:center;gap:var(--s-2)}.hero.home .ctas .btn{flex:1 1 140px}}
/* hero product frame (illustration only, aria-hidden inside) */
.frame{margin:var(--s-16) auto 0;max-width:1120px;background:var(--n-0);border:var(--bd-card);border-radius:var(--r-xl);box-shadow:0 30px 60px -32px rgba(20,23,27,.28);overflow:hidden;text-align:left}
.fr-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:10px var(--s-4);border-bottom:1px solid var(--n-100);background:var(--n-0)}
.fr-brand{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-14);font-weight:600;color:var(--n-900)}
.fr-acts{display:flex;gap:6px}
.fr-btn{font-size:var(--fs-12);font-weight:550;color:var(--n-700);border:1px solid rgba(20,23,27,.12);border-radius:8px;padding:4px 10px;background:var(--n-0)}
.fr-btn.p{background:var(--ac-600);border-color:var(--ac-600);color:var(--n-0)}
.fr-body{display:grid;grid-template-columns:184px minmax(0,1fr)}
.fr-side{display:flex;flex-direction:column;gap:2px;padding:var(--s-4) var(--s-3);border-right:1px solid var(--n-100);font-size:var(--fs-13);color:var(--n-600)}
.fr-side span{padding:7px 10px;border-radius:8px;display:flex;justify-content:space-between}
.fr-side span.on{background:var(--n-50);color:var(--n-900);font-weight:550}
.fr-side em{font-style:normal;color:var(--n-500)}
.fr-main{background:var(--n-50);padding:var(--s-5);min-width:0}
.fr-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3)}
.fr-h b{font-size:var(--fs-16);color:var(--n-900)}.fr-h span{font-size:var(--fs-12);color:var(--n-500)}
.fr-k{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-2)}
.frame .kpi{min-height:0;cursor:default;padding:var(--s-3);box-shadow:none}
.frame .kpi:hover{border-color:var(--ring-c)}
.frame .kpi .kv{font-size:var(--fs-24)}
.frame .tblw{margin-top:var(--s-3)}
.frame .tbl td,.frame .tbl th{padding:9px 12px;font-size:var(--fs-13);vertical-align:middle}
.frame .tbl tbody tr:hover td{background:transparent}
.fr-sub{display:block;font-size:var(--fs-12);color:var(--n-500)}
.frcap{font-size:var(--fs-12);color:var(--n-500);margin:var(--s-3) 0 0;text-align:center}
@media(max-width:1000px){.fr-body{grid-template-columns:1fr}.fr-side{display:none}.fr-k{grid-template-columns:repeat(3,minmax(0,1fr))}.fr-k .kpi:nth-child(n+4){display:none}}
@media(max-width:640px){.frame{margin-top:var(--s-10);border-radius:var(--r-lg)}.fr-main{padding:var(--s-3)}.fr-k{grid-template-columns:repeat(2,minmax(0,1fr))}.fr-k .kpi:nth-child(4){display:flex}.frame .hm,.frame .hm2{display:none}.fr-acts .fr-btn:first-child{display:none}.frame .tbl td,.frame .tbl th{padding:8px 10px}}
.agencies{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-12);align-items:center;justify-content:center}
.agencies span{font-size:var(--fs-13);color:var(--n-600);border:var(--bd-card);border-radius:999px;padding:4px 12px;background:var(--n-0)}
.agencies b{font-size:var(--fs-13);font-weight:550;color:var(--n-500);margin-right:var(--s-2)}
/* section headers: small label, big heading, one subtitle line */
p.sub{color:var(--n-600);max-width:760px;font-size:var(--fs-16)}
.home p.sub{font-size:var(--fs-18);line-height:1.55}
.home section.blk:not(.tint)+section.blk:not(.tint){padding-top:0}
h1,h2,.sechead.c p.sub,.hero p.lead{text-wrap:balance}
.sechead{max-width:760px;margin-bottom:var(--s-2)}
.sechead.c{text-align:center;margin:0 auto var(--s-12);max-width:760px}
.sechead.c h2,.callout h2,.contact h2{font-size:var(--fs-h2);line-height:1.12;font-weight:620;letter-spacing:-.025em;margin:var(--s-1) 0 var(--s-4)}
.sechead.c p.sub{margin:0 auto;max-width:640px}
@media(max-width:640px){.sechead.c{margin-bottom:var(--s-8)}.home p.sub{font-size:var(--fs-17)}}
/* features */
.grid .card p,.grid .card li{font-size:var(--fs-14);line-height:1.6}
.grid.feat{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin-top:0}
@media(max-width:900px){.grid.feat{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.grid.feat{grid-template-columns:1fr}}
.feat .card{padding:var(--s-6) var(--s-6) var(--s-5);display:flex;flex-direction:column}
.feat h3{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-18);margin:0 0 var(--s-2)}
.feat .card p{font-size:var(--fs-15);line-height:1.6}
.feat .card p.fl{margin-top:auto;padding-top:var(--s-4);font-weight:550}
.feat .fk{font-size:var(--fs-12);font-weight:600;color:var(--n-500);display:block;margin-bottom:var(--s-1)}
.fi{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:var(--r);background:var(--ac-50);color:var(--ac-600);margin-bottom:var(--s-4)}
.fi svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* legacy numbered steps (kept for other pages) */
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:var(--s-6)}
.steps li{counter-increment:s;background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);padding:var(--s-5);position:relative;color:var(--n-600);font-size:var(--fs-14)}
.steps li b{color:var(--n-900);font-size:var(--fs-16)}
.steps li:before{content:"0" counter(s);display:block;font-size:var(--fs-13);font-weight:600;color:var(--ac-600);margin-bottom:var(--s-2);font-variant-numeric:tabular-nums}
/* how it works: clickable steps with a thin progress line + matching preview */
.howgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s-12);align-items:center}
.hsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}
.hsteps [role=tab]{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--s-3);width:100%;text-align:left;background:none;border:0;border-radius:var(--r);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-5);font:inherit;cursor:pointer;color:var(--n-600)}
.hsteps [role=tab]:hover{background:var(--n-25)}
.hsteps [role=tab]:focus-visible{outline:2px solid var(--ac-600);outline-offset:2px}
.hsteps .hn{font-size:var(--fs-13);font-weight:600;color:var(--n-400);font-variant-numeric:tabular-nums;padding-top:3px}
.hsteps .ht{font-size:var(--fs-15);line-height:1.55}
.hsteps .ht b{display:block;font-size:var(--fs-17);font-weight:600;color:var(--n-700);margin-bottom:2px}
.hsteps [aria-selected=true] .hn{color:var(--ac-600)}
.hsteps [aria-selected=true] .ht b{color:var(--n-900)}
.hsteps [aria-selected=true] .ht{color:var(--n-600)}
.hsteps [aria-selected=false] .ht>span{color:var(--n-500)}
.hbar{position:absolute;left:0;top:var(--s-4);bottom:var(--s-4);width:2px;border-radius:2px;background:var(--n-200);overflow:hidden}
.hbar i{display:block;width:100%;height:0;background:var(--ac-600)}
.hsteps [aria-selected=true] .hbar i{height:100%}
.howgrid.playing .hsteps [aria-selected=true] .hbar i{animation:hfill 6s linear both}
.howgrid.playing:hover .hbar i,.howgrid.playing:focus-within .hbar i{animation-play-state:paused}
@keyframes hfill{from{height:0}to{height:100%}}
@media(prefers-reduced-motion:reduce){.howgrid.playing .hsteps [aria-selected=true] .hbar i{animation:none;height:100%}}
.hpanels{background:var(--n-50);border:var(--bd-card);border-radius:var(--r-xl);padding:var(--s-10);min-height:380px;display:grid;place-items:center}
.hpanel{width:100%;max-width:420px}
.hpanel:focus-visible{outline:2px solid var(--ac-600);outline-offset:6px;border-radius:var(--r-lg)}
.mini{background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--s-5);font-size:var(--fs-14);color:var(--n-700);display:flex;flex-direction:column;gap:var(--s-2)}
.mini .mini-h{margin:0 0 var(--s-1);font-weight:600;color:var(--n-900);font-size:var(--fs-15)}
.mini-l{font-size:var(--fs-12);font-weight:550;color:var(--n-600);margin-top:var(--s-1)}
.mini-in{display:flex;align-items:center;border:1px solid rgba(20,23,27,.14);border-radius:8px;padding:8px 10px;color:var(--n-800)}
.mini-caret{display:inline-block;width:1px;height:16px;background:var(--n-800);margin-left:2px}
.mini-seg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(20,23,27,.14);border-radius:8px;overflow:hidden;font-size:var(--fs-13);text-align:center}
.mini-seg span{padding:7px 4px}.mini-seg span+span{border-left:1px solid rgba(20,23,27,.1)}
.mini-seg .on{background:var(--ac-50);color:var(--ac-700);font-weight:600}
.mini-btn{display:inline-block;text-align:center;background:var(--ac-600);color:var(--n-0);border-radius:8px;padding:8px 12px;font-weight:550;font-size:var(--fs-13);margin-top:var(--s-2)}
.mini-btn.s{background:var(--n-0);color:var(--n-800);border:1px solid rgba(20,23,27,.14);margin-top:0;padding:4px 10px;font-size:var(--fs-12)}
.mini-ac{display:flex;flex-direction:column;border:var(--bd-card);border-radius:8px;padding:4px;font-size:var(--fs-13)}
.mini-ac span{padding:6px 8px;border-radius:6px;color:var(--n-600)}.mini-ac span.on{background:var(--n-100);color:var(--n-900)}
.mini-ok{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.mini-ok li{display:flex;align-items:center;gap:8px}
.mini-ok li:before{content:"";background:var(--ac-600);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l3.5 3.5L16 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l3.5 3.5L16 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.mini-rows{list-style:none;margin:0;padding:0}
.mini-rows li{display:grid;grid-template-columns:10px 112px minmax(0,1fr);gap:var(--s-2);align-items:center;padding:8px 0;border-top:1px solid var(--n-100);font-size:var(--fs-13)}
.mini-rows li:first-child{border-top:0}.mini-rows b{color:var(--n-900);font-weight:600}
.dot{width:8px;height:8px;border-radius:50%;background:var(--n-300)}.dot.c{background:var(--sev-c-solid)}.dot.b{background:var(--sev-b-solid)}.dot.a{background:var(--sev-a-solid)}
.mini-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--n-100)}
.mini-item:nth-of-type(2){border-top:0;padding-top:0}
.mini-item b{display:block;color:var(--n-900);font-weight:600}
.mini-item span{display:block;font-size:var(--fs-12);color:var(--n-500)}
.mini-item .mini-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s-2)}
@media(max-width:900px){.howgrid{grid-template-columns:1fr;gap:var(--s-6)}.hpanels{min-height:0;padding:var(--s-6) var(--s-4)}}
/* callout + contact */
.callout{max-width:920px;margin:0 auto;text-align:center;background:var(--n-50);border-radius:var(--r-xl);padding:var(--s-14) var(--s-8)}
.callout p.sub{margin:0 auto}
.callout-a{margin:var(--s-8) 0 0}
.contact{max-width:720px;margin:0 auto;text-align:center;padding:var(--s-12) var(--s-8)}
.contact h2{margin-top:0}
.contact p{max-width:520px;margin:0 auto}
.contact .contact-a{margin-top:var(--s-6);display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap}
@media(max-width:640px){.callout{padding:var(--s-10) var(--s-5)}.contact{padding:var(--s-8) var(--s-5)}}
/* FAQ: two columns, +/- toggles */
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3) var(--s-4);align-items:start;max-width:1040px;margin:0 auto}
@media(max-width:760px){.faq{grid-template-columns:1fr}}
.faq.collapsed .more-q{display:none}
details.faqi{margin:0;padding:0;background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,23,27,.04)}
details.faqi>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5);font-size:var(--fs-16);border-radius:var(--r-lg)}
details.faqi>summary::-webkit-details-marker{display:none}
details.faqi>summary:after{content:"+";flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid rgba(20,23,27,.12);color:var(--n-700);font-size:18px;font-weight:450;line-height:1}
details.faqi[open]>summary:after{content:"\2212"}
details.faqi>summary:hover:after{border-color:var(--n-400);color:var(--n-900)}
details.faqi>summary:focus-visible{outline:2px solid var(--ac-600);outline-offset:2px}
details.faqi[open]>summary{margin:0}
details.faqi p{margin:0;padding:0 var(--s-5) var(--s-5);font-size:var(--fs-15);line-height:1.6}
.faqmore{text-align:center;margin:var(--s-8) 0 0}
/* search + autocomplete */
.search{position:relative;max-width:720px}
.search form{display:flex;gap:var(--s-2);background:var(--n-0);border:1px solid var(--n-300);border-radius:var(--r-lg);padding:5px;box-shadow:var(--shadow-1)}
.search form:focus-within{border-color:var(--ac-500);box-shadow:var(--ring)}
.search input,.search input[type=text]{flex:1;min-width:0;border:0;box-shadow:none;font-size:var(--fs-16);padding:8px 10px;background:transparent}
.search input:focus{box-shadow:none}
.ac{position:absolute;left:0;right:0;top:100%;margin:6px 0 0;padding:4px;list-style:none;background:var(--n-0);border:var(--bd);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);z-index:30;color:var(--n-900);font-size:var(--fs-14)}
.ac li{padding:8px 10px;border-radius:var(--r);cursor:pointer}
.ac li[aria-selected=true],.ac li:hover{background:var(--n-100)}
.ac small{color:var(--n-500)}
.examples{margin-top:var(--s-3);color:var(--n-500);font-size:var(--fs-14)}.examples a{margin-left:var(--s-2)}
/* pricing: tinted top panel + checklist, compare table */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);align-items:stretch}
@media(max-width:960px){.plans{grid-template-columns:1fr;max-width:520px;margin:0 auto}}
.card.plan{display:flex;flex-direction:column;padding:var(--s-2)}
.plan .ptop{background:var(--n-50);border-radius:var(--r);padding:var(--s-5) var(--s-5) var(--s-5)}
.plan.hl{border-color:var(--ac-200);box-shadow:0 0 0 1px var(--ac-200),var(--shadow-card)}
.plan.hl .ptop{background:var(--ac-50)}
.pname{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.plan h3{font-size:var(--fs-20);margin:0;font-weight:620;letter-spacing:-.01em}
.popular{font-size:var(--fs-12);font-weight:600;color:var(--ac-700);background:var(--n-0);border:1px solid var(--ac-100);border-radius:999px;padding:2px 10px;white-space:nowrap}
.plan .pfor{margin:2px 0 var(--s-4);font-size:var(--fs-14);color:var(--n-600)}
.plan .price{font-size:40px;font-weight:650;margin:0;line-height:1.1;letter-spacing:-.03em;color:var(--n-900);font-variant-numeric:tabular-nums}
.plan .price .small{display:block;margin-top:4px;font-size:var(--fs-14);font-weight:450;letter-spacing:0;line-height:1.4;color:var(--n-600)}
.plan .ptop .btn{width:100%;margin-top:var(--s-5)}
.plan .ptop .btn.s{background:var(--n-0)}
.pchk{list-style:none;margin:0;padding:var(--s-4) var(--s-4) var(--s-3)}
.pchk li{display:flex;gap:10px;align-items:flex-start;padding:6px 0;font-size:var(--fs-15);line-height:1.5;color:var(--n-700)}
.pchk svg{margin-top:3px}
details.compare{margin:var(--s-6) 0 0;padding:0;border:var(--bd-card);border-radius:var(--r-lg);background:var(--n-0)}
details.compare>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-4) var(--s-5);font-size:var(--fs-15);font-weight:600;border-radius:var(--r-lg)}
details.compare>summary::-webkit-details-marker{display:none}
details.compare>summary:after{content:"+";font-weight:500;color:var(--n-500);font-size:18px;line-height:1}
details.compare[open]>summary:after{content:"\2212"}
details.compare>summary:focus-visible{outline:2px solid var(--ac-600);outline-offset:2px}
details.compare[open]>summary{border-bottom:1px solid var(--n-100);border-radius:var(--r-lg) var(--r-lg) 0 0}
.cmpw{overflow-x:auto}
.cmp{min-width:680px}
.cmp th[scope=row]{color:var(--n-900);font-weight:600;font-size:var(--fs-13);background:var(--n-0);white-space:normal;width:18%}
.cmp td{font-size:var(--fs-14);width:27%;color:var(--n-700)}
.cmp thead th{font-size:var(--fs-13);color:var(--n-900)}
.ao ul{margin:var(--s-2) 0 var(--s-3);padding-left:18px;font-size:var(--fs-14);color:var(--n-700)}.ao li{margin:4px 0}
.pbox{margin:var(--s-3) 0;font-size:var(--fs-14);background:var(--n-50);border:var(--bd-card);border-radius:var(--r);padding:var(--s-3) var(--s-4)}.pbox ul{margin:4px 0 6px;padding-left:18px}
/* legal */
.legal{max-width:760px}
.legal h2{font-size:var(--fs-20);margin-top:var(--s-8)}
.legal p,.legal li{color:var(--n-700);font-size:var(--fs-16)}
.jump{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s-4);padding-top:var(--s-4);border-top:var(--bd);font-size:var(--fs-13)}
.jump a{border:var(--bd);border-radius:var(--r);padding:3px 9px;color:var(--n-700);text-decoration:none;background:var(--n-0)}
.jump a:hover{border-color:var(--n-400);color:var(--n-900)}
.res>.card{scroll-margin-top:72px}
/* pay / copy */
.pay{margin-top:6px;font-size:var(--fs-13);line-height:1.7;color:var(--n-600)}
.pay code,code.k{background:var(--n-50);border:var(--bd);border-radius:var(--r-sm);padding:1px 6px;font-size:12px;color:var(--n-900)}
.copyb{border:1px solid var(--n-300);background:var(--n-0);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-12);padding:0 7px;cursor:pointer;margin-left:4px;color:var(--n-700);line-height:20px}
.copyb:hover{border-color:var(--n-500);color:var(--n-900)}
.helpt{font-weight:600}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* ---------- 7. App: page header, dashboard shell, KPIs, data table, drawer, feed ---------- */
.apphead{background:var(--n-0);border-bottom:var(--bd);padding:var(--s-6) 0 var(--s-5)}
.apphead .wrap{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:flex-end;justify-content:space-between}
.apphead h1{font-size:var(--fs-24);margin:0}
.apphead p{margin:var(--s-1) 0 0;color:var(--n-500);font-size:var(--fs-14)}
.apphead .eyebrow{margin-bottom:var(--s-1)}
.appactions{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
.appbody{background:var(--n-50);min-height:70vh;padding:var(--s-6) 0 var(--s-12)}
.applayout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--s-6);align-items:start}
.sidenav{position:sticky;top:80px;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-14)}
.sidenav .lbl{font-size:var(--fs-12);font-weight:600;color:var(--n-500);padding:var(--s-2) 10px var(--s-1)}
.sidenav a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);padding:7px 10px;border-radius:var(--r);color:var(--n-700);text-decoration:none;font-weight:500}
.sidenav a:hover{background:var(--n-100);color:var(--n-900)}
.sidenav a[aria-current=true]{background:var(--n-0);color:var(--n-900);box-shadow:inset 2px 0 0 var(--ac-600),var(--shadow-1);border:1px solid var(--n-200)}
.sidenav a .ct{font-size:var(--fs-12);color:var(--n-500);font-variant-numeric:tabular-nums}
.appmain{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6);min-width:0}
.appmain>section{scroll-margin-top:80px}
.secthead{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:baseline;justify-content:space-between;margin:0 0 var(--s-3)}
.secthead h2{font-size:var(--fs-18);margin:0}
.secthead p{margin:0;color:var(--n-500);font-size:var(--fs-13)}
@media(max-width:1000px){.applayout{grid-template-columns:minmax(0,1fr)}.sidenav{position:sticky;top:64px;z-index:20;flex-direction:row;overflow-x:auto;background:var(--n-50);padding:var(--s-2) 0;margin:calc(var(--s-6) * -1) 0 0;border-bottom:var(--bd)}.sidenav .lbl{display:none}.sidenav a{white-space:nowrap}}
.apphead.admin{padding-bottom:0}.apphead.admin .wrap+.wrap{display:block}.apphead.admin .tabs{border-bottom:0;margin-top:var(--s-4)}
.tbl .btn{min-height:28px;padding:3px 9px;font-size:var(--fs-13);box-shadow:none}
.tbl td .btn+.btn{margin-left:4px}
/* KPI cards */
.kpis{display:grid;gap:var(--s-3);grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1280px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{position:relative;display:flex;flex-direction:column;gap:var(--s-1);text-align:left;background:var(--n-0);border:var(--bd-card);box-shadow:var(--shadow-card);border-radius:var(--r-lg);padding:var(--s-4);font:inherit;color:inherit;cursor:pointer;min-height:118px;transition:border-color .12s}
.kpi:hover{border-color:var(--n-300)}
.kpi[aria-pressed=true]{border-color:var(--ac-600);box-shadow:0 0 0 1px var(--ac-600)}
.kpi:focus-visible{outline:none;box-shadow:var(--ring)}
.kpi[aria-pressed=true]:focus-visible{box-shadow:0 0 0 1px var(--ac-600),var(--ring)}
.kpi .kl{font-size:var(--fs-13);color:var(--n-600);font-weight:550}
.kpi .kv{font-size:var(--fs-30);font-weight:650;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--n-900)}
.kpi .ks{font-size:var(--fs-12);color:var(--n-500);line-height:1.45;margin-top:auto}
.kpi.alert .kv{color:var(--sev-c)}
.kpi.caution .kv{color:var(--sev-b)}
.sevbar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--n-100);margin:var(--s-1) 0 2px}
.sevbar i{display:block;height:100%}
.sevbar .c{background:var(--sev-c-solid)}.sevbar .b{background:var(--sev-b-solid)}.sevbar .a{background:var(--sev-a-solid)}
.sevkey{display:flex;gap:var(--s-3);font-size:var(--fs-12);color:var(--n-600);font-variant-numeric:tabular-nums}
.sevkey span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:0}
.sevkey .c:before{background:var(--sev-c-solid)}.sevkey .b:before{background:var(--sev-b-solid)}.sevkey .a:before{background:var(--sev-a-solid)}
/* data table toolbar */
.toolbar{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;padding:var(--s-3) var(--s-4);border-bottom:var(--bd)}
.toolbar .grow{flex:1 1 220px;min-width:180px}
.toolbar select{width:auto;min-width:180px}
.toolbar .count{font-size:var(--fs-13);color:var(--n-500);margin-left:auto}
.dt{width:100%;border-collapse:collapse;font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.dt th{position:sticky;top:0;text-align:left;font-size:var(--fs-12);font-weight:600;color:var(--n-500);background:var(--n-50);border-bottom:var(--bd);padding:0;white-space:nowrap}
.dt th>span,.dt th>button{display:flex;align-items:center;gap:4px;width:100%;padding:9px 12px;background:none;border:0;font:inherit;color:inherit;cursor:default;text-align:inherit}
.dt th>button{cursor:pointer}
.dt th>button:hover{color:var(--n-900)}
.dt th.num>span,.dt th.num>button{justify-content:flex-end}
.dt th .si{width:8px;color:var(--n-400);font-size:10px}
.dt th[aria-sort=ascending] .si:after{content:"▲"}.dt th[aria-sort=descending] .si:after{content:"▼"}
.dt th[aria-sort=ascending],.dt th[aria-sort=descending]{color:var(--n-900)}
.dt td{border-bottom:1px solid var(--n-100);padding:10px 12px;vertical-align:middle;color:var(--n-800)}
.dt td.num{text-align:right}
.dt tbody tr{cursor:pointer}
.dt tbody tr:hover td{background:var(--n-25)}
.dt tbody tr:last-child td{border-bottom:0}
.dt .bname{font-weight:600;color:var(--n-900);text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left}
.dt .bname:hover{color:var(--ac-700);text-decoration:underline}
.dt .bmeta{font-size:var(--fs-12);color:var(--n-500);margin-top:2px}
.dt .z{color:var(--n-400)}
.dt .chev{color:var(--n-400);width:28px;text-align:center}
.cnt{display:inline-flex;min-width:28px;justify-content:center;padding:1px 6px;border-radius:var(--r-sm);font-weight:600;font-size:var(--fs-13)}
.cnt.C{background:var(--sev-c-bg);color:var(--sev-c)}.cnt.B{background:var(--sev-b-bg);color:var(--sev-b)}.cnt.A{background:var(--sev-a-bg);color:var(--sev-a)}
.cnt.zero{background:transparent;color:var(--n-400);font-weight:500}
.ago{font-size:var(--fs-12);color:var(--n-500);white-space:nowrap}
/* activity feed */
.feed{list-style:none;margin:0;padding:0}
.feed li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s-3);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--n-100);font-size:var(--fs-14)}
.feed li:last-child{border-bottom:0}
.feed time{font-size:var(--fs-12);color:var(--n-500);font-variant-numeric:tabular-nums;padding-top:2px}
.feed .ft{color:var(--n-800)}
.feed .fm{font-size:var(--fs-12);color:var(--n-500);margin-top:2px}
.feed .fm .linkb{font-size:inherit}
.split{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
#upcard .feed li{grid-template-columns:56px minmax(0,1fr)}
@media(max-width:1180px){.split{grid-template-columns:1fr}}
.cards3{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}
/* drawer */
.drawer{position:fixed;inset:0;z-index:60}
.drawer .scrim{position:absolute;inset:0;background:rgba(20,23,27,.32)}
.drawer .dpanel{position:absolute;top:0;right:0;bottom:0;width:min(920px,100%);background:var(--n-0);border-left:var(--bd);box-shadow:var(--shadow-pop);display:flex;flex-direction:column}
.drawer .dhead{padding:var(--s-5) var(--s-6) 0;border-bottom:var(--bd)}
.drawer .dtop{display:flex;gap:var(--s-3);align-items:flex-start;justify-content:space-between}
.drawer .dtop h2{font-size:var(--fs-20);margin:0}
.drawer .dmeta{font-size:var(--fs-13);color:var(--n-500);margin-top:2px}
.drawer .dsum{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-3) 0 var(--s-1)}
.drawer .tabs{border-bottom:0;margin-top:var(--s-3);flex-wrap:nowrap;overflow-x:auto}
.drawer .tabs [role=tab]{white-space:nowrap;padding:10px 12px}
.drawer .dbody{flex:1;overflow:auto;padding:var(--s-5) var(--s-6) var(--s-10);background:var(--n-25)}
.drawer .dbody h3{font-size:var(--fs-14);font-weight:600;margin:var(--s-6) 0 var(--s-2)}
.drawer .dbody h3:first-child{margin-top:0}
.drawer .dbody .src{font-size:var(--fs-12);color:var(--n-500);margin-top:var(--s-3)}
body.noscroll{overflow:hidden}
@media(max-width:700px){.drawer .dhead{padding:var(--s-4) var(--s-4) 0}.drawer .dbody{padding:var(--s-4)}}
#dash.must{grid-template-columns:minmax(0,560px)}
details.panel{margin-top:0}
details.panel>summary{list-style:none}details.panel>summary::-webkit-details-marker{display:none}
details.panel>summary:after{content:"Show";margin-left:auto;font-size:var(--fs-13);font-weight:550;color:var(--ac-600)}
details.panel[open]>summary:after{content:"Hide"}
details.panel[open]>summary{margin-bottom:0}
/* simple list rows (property settings, cases) */
.blist{list-style:none;margin:0;padding:0;font-size:var(--fs-14)}
.blist li{display:flex;justify-content:space-between;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) 0;border-bottom:1px solid var(--n-100)}
.blist li:last-child{border-bottom:0}
.blist li b{font-weight:600}
.blist details{border:0;padding:0;background:none;margin-top:4px}
.addf{display:flex;gap:var(--s-2);position:relative}.addf input{flex:1}.addf .ac{top:100%}
.kvs{display:grid;grid-template-columns:auto 1fr;gap:4px var(--s-4);font-size:var(--fs-14);margin:0}
.kvs dt{color:var(--n-500)}.kvs dd{margin:0;color:var(--n-900)}

/* ---------- 8. Feature modules (rentals, listing editor, services, cases, Section 8) ---------- */
.svcl{margin:var(--s-2) 0}.svcl summary,.sub summary{cursor:pointer;font-weight:550;color:var(--ac-600)}
.svcl ul{margin:var(--s-2) 0 0;padding-left:18px}.svcl li{margin:4px 0;font-size:var(--fs-14)}
details.sub,div.sub{margin:0 0 var(--s-2) 28px}
#svcf input[type=text],#svcf input[type=email],#svcf input[type=tel]{margin-top:4px}
.rfilt{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end}
.rfilt label span{display:block;font-weight:550;font-size:var(--fs-13);margin-bottom:4px;color:var(--n-700)}
.rgrid{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.rcard{padding:0;overflow:hidden;color:inherit;text-decoration:none;display:flex;flex-direction:column;transition:border-color .12s}
.rcard:hover{border-color:var(--n-400);color:inherit}
.rimg{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--n-100)}
.ph0{display:flex;align-items:center;justify-content:center;color:var(--n-500);font-size:var(--fs-14)}
.rbody{padding:var(--s-3) var(--s-4)}
.rrent{font-size:var(--fs-20);font-weight:650;font-variant-numeric:tabular-nums}
.rtitle{font-weight:600;margin:2px 0}
.rdet{display:grid;gap:var(--s-5);grid-template-columns:3fr 2fr}@media(max-width:900px){.rdet{grid-template-columns:1fr}}
.gal .gbig{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);background:var(--n-100);display:block}
.gthumbs{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-2)}
.gt{padding:0;border:2px solid transparent;border-radius:var(--r);background:none;cursor:pointer;width:84px}.gt.on{border-color:var(--ac-600)}
.gimg{width:80px;height:60px;object-fit:cover;border-radius:var(--r-sm);display:block}
.amen{columns:2;padding-left:18px;margin:0}@media(max-width:600px){.amen{columns:1}}
.le .row{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:var(--s-3)}
.le label>span{display:block;font-weight:550;font-size:var(--fs-13);margin-bottom:4px}
.le .am{display:flex;flex-wrap:wrap;gap:6px 14px}.le .am label{font-size:var(--fs-14);display:flex;gap:6px;align-items:center}
.le .phs{display:flex;gap:var(--s-2);flex-wrap:wrap}.le .phi{position:relative}
.le .phi img{width:110px;height:82px;object-fit:cover;border-radius:var(--r);display:block}
.le .phi .pbtns{display:flex;gap:4px;margin-top:4px}
.job{background:var(--n-0)}
.kc label{display:block;font-size:var(--fs-13);font-weight:550;margin:var(--s-2) 0 3px}
.kc input:disabled,.kc select:disabled,.kc textarea:disabled{background:var(--n-50);color:var(--n-600)}
.kc .f2{display:grid;gap:0 var(--s-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.kc .lock,.lock{background:var(--sev-c-bg);color:var(--sev-c);border:1px solid var(--sev-c-bd);border-left:4px solid var(--sev-c-solid);border-radius:var(--r);padding:var(--s-4);font-size:var(--fs-18);font-weight:650;margin:var(--s-3) 0;letter-spacing:.01em}
.kc .lock small,.lock small{display:block;font-size:var(--fs-14);font-weight:450;margin-top:4px;color:var(--n-800);letter-spacing:0}
.kc .flag{margin:var(--s-2) 0}.kc summary{cursor:pointer}.kc td{vertical-align:top}
.kc .shv{white-space:pre-wrap;background:var(--n-0);border:var(--bd);border-radius:var(--r);padding:6px 8px;margin-bottom:4px;max-height:220px;overflow:auto}
.ackw{font-size:var(--fs-14)}

/* ---------- 9. Utilities ---------- */
.muted{color:var(--n-500)}
.small{font-size:var(--fs-14)}
.xs{font-size:var(--fs-12)}
.warn.small,.note.small,.err.small{font-size:var(--fs-13)}
.num{font-variant-numeric:tabular-nums}
.stack>*+*{margin-top:var(--s-3)}
.mt0{margin-top:0}.mb0{margin-bottom:0}
@media print{.top,footer.site,.sidenav,.appactions,.drawer{display:none!important}body{background:#fff}}

/* logged-in hint (set in <head>) */
.li [data-guest]{display:none}
/* legacy inline styles in shared renderers */
.job[style]{border-radius:8px!important}
.tbl tr[style*="fff7ed"] td{background:var(--sev-b-bg)}
/* services hero CTAs (legacy .btn.light markup): primary + secondary */
.hero .ctas .btn.light{background:var(--n-0);color:var(--n-800);border-color:var(--n-300);box-shadow:var(--shadow-1)}
.hero .ctas .btn.light:hover{background:var(--n-50);border-color:var(--n-400);color:var(--n-900)}
.hero .ctas .btn.light:first-child{background:var(--ac-600);color:var(--n-0);border-color:var(--ac-600)}
.hero .ctas .btn.light:first-child:hover{background:var(--ac-700);border-color:var(--ac-700)}

/* Design system, part 2: pricing notes and add-ons (home #pricing / #addons). build.js appends this file to /assets/site.css,
   so pages still load one stylesheet and use the tokens defined in site.css. */
.disc{margin:var(--s-6) auto 0;max-width:760px;text-align:center;font-size:var(--fs-14);color:var(--n-700)}.disc a{margin-left:var(--s-1);white-space:nowrap}
.pnote{margin:var(--s-2) auto 0;max-width:760px;text-align:center}
.aogrid{display:grid;gap:var(--s-5);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}
@media(max-width:960px){.aogrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.aogrid{grid-template-columns:1fr;gap:var(--s-3)}}
.aocard{display:flex;flex-direction:column;background:var(--n-0);border:var(--bd-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--s-6);scroll-margin-top:80px}
.aocard .aoprice{margin:0 0 var(--s-3);font-size:28px;font-weight:650;letter-spacing:-.025em;line-height:1.15;color:var(--n-900);font-variant-numeric:tabular-nums}
.aocard .aoprice span{font-size:var(--fs-14);font-weight:450;letter-spacing:0;color:var(--n-600)}
.aocard h3{margin:0 0 var(--s-1);font-size:var(--fs-17);font-weight:600}
.aocard .aodesc{margin:0;font-size:var(--fs-15);line-height:1.6;color:var(--n-600)}
.aocard .aoact{margin:auto 0 0;padding-top:var(--s-5);display:flex;gap:var(--s-2);font-size:var(--fs-14);font-weight:550}
.aocard .aoact a{text-decoration:none;display:inline-flex;align-items:center;min-height:34px;padding:6px 14px;border-radius:var(--r);border:1px solid rgba(20,23,27,.14);color:var(--n-800);background:var(--n-0)}
.aocard .aoact a:first-child{background:var(--ac-50);border-color:var(--ac-100);color:var(--ac-700)}
.aocard .aoact a:hover{border-color:var(--n-400);color:var(--n-900)}
.aocard .aoact a:first-child:hover{border-color:var(--ac-200);color:var(--ac-800)}
.aocard .aoact a:focus-visible{outline:none;box-shadow:var(--ring)}
.memo{margin:var(--s-8) auto 0;max-width:880px;background:var(--n-50);border:var(--bd-card);border-radius:var(--r-lg);padding:var(--s-5) var(--s-6)}
.memo .memo-h{margin:0 0 var(--s-2);font-size:var(--fs-16);font-weight:650;color:var(--n-900)}
.memo ul{margin:0;padding-left:18px;font-size:var(--fs-14);color:var(--n-600)}.memo li{margin:3px 0}
@media(max-width:600px){.aocard{padding:var(--s-5)}.aocard .aoact{padding-top:var(--s-4)}.aocard .aoprice{font-size:var(--fs-24)}.memo{padding:var(--s-4)}}
