/* PrivMatrix — Living Matrix design system */
:root{
    --ground:#f3f6fb; --panel:#ffffff; --panel-2:#eef3f9;
    --ink:#0f2338; --navy:#1a4a72; --navy-deep:#12365a; --navy-soft:#e9f1f9;
    --green:#2f9160; --green-deep:#1f7a49; --green-soft:#e6f4ec;
    --line:#e2e8f1; --line-2:#d3ddea; --muted:#556579; --faint:#8091a6;
    --shadow:0 1px 2px rgba(15,35,56,.04), 0 14px 44px rgba(18,54,90,.09);
    --shadow-lg:0 2px 8px rgba(15,35,56,.06), 0 32px 80px rgba(18,54,90,.16);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--ground);color:var(--ink);
    font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px}
  .mono{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace}
  h1,h2,h3,h4{font-family:'Sora',sans-serif;color:var(--ink);margin:0;text-wrap:balance;letter-spacing:-.02em}
  :focus-visible{outline:3px solid rgba(47,145,96,.5);outline-offset:2px;border-radius:6px}

  /* ---------- header / menu ---------- */
  header.top{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.85);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
  .top-in{display:flex;align-items:center;gap:20px;height:72px}
  .logo img{height:40px;width:auto;display:block}
  nav.main{display:flex;align-items:center;gap:4px;margin-left:14px}
  .nav-link{display:inline-flex;align-items:center;gap:6px;font-size:14.5px;color:var(--ink);font-weight:500;
    padding:9px 14px;border-radius:10px;cursor:pointer;transition:background .15s,color .15s;background:none;border:0;font-family:inherit}
  .nav-link:hover{background:var(--navy-soft);color:var(--navy)}
  .nav-link svg{transition:transform .2s}
  .has-menu[aria-expanded="true"] .nav-link svg{transform:rotate(180deg)}
  .spacer{flex:1}
  .top-cta{display:flex;align-items:center;gap:10px}
  .btn{display:inline-flex;align-items:center;gap:8px;font-family:'Sora',sans-serif;font-weight:600;font-size:14.5px;
    padding:11px 20px;border-radius:11px;border:1.5px solid transparent;cursor:pointer;transition:transform .15s, box-shadow .15s, background .15s;white-space:nowrap}
  .btn:hover{transform:translateY(-1px)}
  .btn.primary{background:var(--navy);color:#fff;box-shadow:0 8px 22px rgba(26,74,114,.24)}
  .btn.primary:hover{background:var(--navy-deep)}
  .btn.green{background:var(--green);color:#fff;box-shadow:0 10px 26px rgba(47,145,96,.3)}
  .btn.green:hover{background:var(--green-deep)}
  .btn.ghost{background:rgba(255,255,255,.7);border-color:var(--line-2);color:var(--ink)}
  .btn.ghost:hover{border-color:var(--navy);color:var(--navy)}
  .btn.sm{padding:9px 15px;font-size:13.5px}
  .signin{font-size:14.5px;color:var(--navy);font-weight:600;padding:9px 6px}

  /* mega menu */
  .has-menu{position:relative}
  .mega{position:absolute;top:calc(100% + 10px);left:0;width:620px;background:#fff;border:1px solid var(--line);
    border-radius:18px;box-shadow:var(--shadow-lg);padding:14px;opacity:0;visibility:hidden;transform:translateY(8px);
    transition:opacity .18s, transform .18s, visibility .18s;z-index:70}
  .has-menu[aria-expanded="true"] .mega{opacity:1;visibility:visible;transform:none}
  .mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .mega a{display:flex;gap:12px;padding:12px;border-radius:12px;transition:background .15s}
  .mega a:hover{background:var(--panel-2)}
  .mega .mi{width:38px;height:38px;flex:0 0 auto;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--navy-soft);color:var(--navy)}
  .mega a:hover .mi{background:var(--green-soft);color:var(--green-deep)}
  .mega a>span:last-child{display:flex;flex-direction:column}
  .mega .mt{display:block;font-family:'Sora';font-weight:600;font-size:14px;color:var(--ink)}
  .mega .md{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.4}
  .mega-foot{margin-top:8px;border-top:1px solid var(--line);padding:12px 12px 4px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}
  .mega-foot a{color:var(--green-deep);font-weight:600}

  .burger{display:none;background:none;border:0;cursor:pointer;padding:8px;border-radius:9px}
  .burger:hover{background:var(--navy-soft)}
  .burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;margin:4px 0;transition:.2s}
  .drawer{position:fixed;inset:72px 0 0;background:rgba(255,255,255,.98);backdrop-filter:blur(8px);z-index:55;
    padding:24px;display:none;flex-direction:column;gap:6px;overflow:auto}
  .drawer.open{display:flex}
  .drawer a{font-family:'Sora';font-weight:600;font-size:18px;color:var(--ink);padding:14px 8px;border-bottom:1px solid var(--line)}
  .drawer .dcta{margin-top:14px;display:flex;flex-direction:column;gap:10px}
  @media(max-width:960px){nav.main,.top-cta .signin,.top-cta .btn.ghost{display:none}.burger{display:block}}

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;padding:64px 0 56px;text-align:center;border-bottom:1px solid var(--line)}
  .aurora{position:absolute;inset:-25% -12%;z-index:0;pointer-events:none;filter:blur(46px)}
  .aurora b{position:absolute;border-radius:50%;display:block}
  .aurora .b1{width:44vw;height:44vw;left:-6%;top:-14%;background:radial-gradient(circle,rgba(47,145,96,.55),transparent 60%);animation:drift1 20s ease-in-out infinite}
  .aurora .b2{width:50vw;height:50vw;right:-10%;top:-20%;background:radial-gradient(circle,rgba(26,74,114,.5),transparent 60%);animation:drift2 26s ease-in-out infinite}
  .aurora .b3{width:38vw;height:38vw;left:30%;bottom:-26%;background:radial-gradient(circle,rgba(47,145,96,.4),transparent 60%);animation:drift3 22s ease-in-out infinite}
  @keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,8%) scale(1.12)}}
  @keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7%,6%) scale(1.08)}}
  @keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4%,-6%) scale(1.15)}}
  .grid-dots{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(26,74,114,.16) 1px, transparent 1.4px);background-size:26px 26px;
    -webkit-mask:radial-gradient(75% 62% at 50% 30%, #000 30%, transparent 78%);mask:radial-gradient(75% 62% at 50% 30%, #000 30%, transparent 78%)}
  .hero-in{position:relative;z-index:2;max-width:920px;margin:0 auto}
  .pill{display:inline-flex;align-items:center;gap:9px;font-family:'IBM Plex Mono';font-size:12px;font-weight:600;letter-spacing:.04em;
    color:var(--navy);background:rgba(255,255,255,.75);border:1px solid #d8e5f2;padding:7px 14px;border-radius:999px;box-shadow:0 4px 16px rgba(18,54,90,.06)}
  .pill i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(47,145,96,.16)}
  h1.head{font-size:clamp(34px,5.4vw,60px);line-height:1.08;font-weight:800;margin:22px auto 0;max-width:20ch}
  .rotor .word{display:inline-block;background:linear-gradient(100deg,var(--green-deep),var(--green) 50%,var(--navy));-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;will-change:opacity,transform}
  h1.head .head-sub{color:var(--muted);font-weight:700}
  .lede{font-size:19px;color:var(--muted);max-width:42em;margin:22px auto 0}
  .cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
  .subnote{font-family:'IBM Plex Mono';font-size:12.5px;color:var(--faint);margin-top:18px}

  .scan-panel{position:relative;z-index:2;max-width:940px;margin:46px auto 0;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden}
  .sp-bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--panel-2)}
  .sp-bar .dots{display:flex;gap:6px}.sp-bar .dots i{width:10px;height:10px;border-radius:50%;background:#cdd8e6}
  .sp-bar .dots i:nth-child(1){background:#e6b8ab}.sp-bar .dots i:nth-child(2){background:#e6d5a8}.sp-bar .dots i:nth-child(3){background:#a8d8bd}
  .sp-title{font-family:'IBM Plex Mono';font-size:12px;color:var(--faint);letter-spacing:.03em}
  .sp-live{margin-left:auto;font-family:'IBM Plex Mono';font-size:11.5px;color:var(--green-deep);display:inline-flex;align-items:center;gap:7px}
  .sp-live i{width:7px;height:7px;border-radius:50%;background:var(--green);animation:blink 1.6s infinite}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
  .sp-body{position:relative;padding:16px}
  .mgrid{display:grid;grid-template-columns:118px repeat(6,1fr);gap:8px;position:relative}
  .mgrid .rh{display:flex;align-items:center;font-family:'Sora';font-weight:600;font-size:13px;color:var(--ink)}
  .mgrid .ch{font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.02em;text-transform:uppercase;color:var(--faint);text-align:center;padding-bottom:4px}
  .mgrid .cx{height:34px;border-radius:8px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;color:var(--green-deep);position:relative;overflow:hidden}
  .mgrid .cx svg{width:14px;height:14px;opacity:.25;transition:opacity .3s, transform .3s;transform:scale(.8)}
  .mgrid .cx.lit{background:var(--green-soft)}
  .mgrid .cx.lit svg{opacity:1;transform:scale(1)}
  .beam{position:absolute;top:0;bottom:0;width:120px;pointer-events:none;z-index:3;background:linear-gradient(90deg,transparent,rgba(47,145,96,.16),rgba(47,145,96,.04),transparent);animation:sweep 3.6s linear infinite}
  @keyframes sweep{0%{left:118px;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:100%;opacity:0}}
  .sp-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:'IBM Plex Mono';font-size:11.5px;color:var(--faint);padding:12px 18px;border-top:1px solid var(--line)}
  .sp-foot b{color:var(--green-deep)}
  @media(max-width:720px){.mgrid{grid-template-columns:84px repeat(6,1fr);gap:5px}.mgrid .ch{font-size:8.5px}.mgrid .cx{height:28px}}

  /* law marquee */
  .marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:16px 0;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .marq-track{display:flex;gap:14px;width:max-content;animation:marq 36s linear infinite}
  .marq:hover .marq-track{animation-play-state:paused}
  @keyframes marq{to{transform:translateX(-50%)}}
  .law{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--ground);font-size:14px;font-weight:500;color:var(--ink)}
  .law .c{font-family:'IBM Plex Mono';font-size:11px;font-weight:600;color:#fff;background:var(--navy);border-radius:6px;padding:2px 7px}
  .law .c.g{background:var(--green)}

  /* reveal */
  .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1)}
  .rv.in{opacity:1;transform:none}
  .rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}

  section{padding:86px 0;scroll-margin-top:84px}
  .kick{font-family:'IBM Plex Mono';font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--green-deep);text-transform:uppercase}
  h2.sec{font-size:clamp(27px,3.4vw,40px);font-weight:700;margin:12px 0 0;line-height:1.12}
  .sec-lede{font-size:17px;color:var(--muted);max-width:46em;margin:14px 0 0}
  .sec-head{max-width:800px}
  .center{text-align:center;margin-left:auto;margin-right:auto}

  /* wedge / comparison */
  .wedge{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:36px;margin-top:40px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
  @media(max-width:820px){.wedge{grid-template-columns:1fr;gap:26px;padding:28px}}
  .wedge h3{font-size:23px;font-weight:700}
  .wedge p{color:var(--muted);font-size:16px;margin:12px 0 0}
  .cmp{display:flex;flex-direction:column;gap:12px}
  .cmp .row{display:flex;align-items:flex-start;gap:12px;font-size:14.5px}
  .cmp .bad,.cmp .good{width:26px;height:26px;flex:0 0 auto;border-radius:8px;display:flex;align-items:center;justify-content:center}
  .cmp .bad{background:#fbece9;color:#c14b39}.cmp .good{background:var(--green-soft);color:var(--green-deep)}
  .cmp .lab{font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}

  /* bento */
  .bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:40px}
  .b-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;overflow:hidden;transition:transform .2s, box-shadow .2s, border-color .2s}
  .b-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-2)}
  .b-card:before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;opacity:0;transition:opacity .3s;pointer-events:none;background:linear-gradient(140deg,var(--green),rgba(26,74,114,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
  .b-card:hover:before{opacity:1}
  .b-3{grid-column:span 3}.b-2{grid-column:span 2}
  .ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--navy-soft);color:var(--navy);margin-bottom:14px}
  .b-card h3{font-size:18px;font-weight:700}
  .b-card p{font-size:14.5px;color:var(--muted);margin:9px 0 0;max-width:44ch}
  .b-card .tag{font-family:'IBM Plex Mono';font-size:11px;color:var(--faint);margin-top:14px;display:inline-block}
  .b-hero{background:linear-gradient(150deg,#12365a,#0f2f4d 60%,#14513a);border-color:#12365a;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
  .b-hero h3,.b-hero p{color:#fff}.b-hero p{color:#c6d6e6}
  .b-hero .ic{background:rgba(255,255,255,.12);color:#9fe6bf}
  .b-hero .big{font-family:'Sora';font-weight:800;font-size:clamp(24px,3vw,32px);line-height:1.12;margin-top:8px}
  .b-hero .tag{color:#8fb3d1}
  @media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}.b-3,.b-2{grid-column:span 1}.b-hero{grid-column:span 2}}
  @media(max-width:560px){.bento{grid-template-columns:1fr}.b-hero{grid-column:span 1}}

  /* steps */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
  @media(max-width:820px){.steps{grid-template-columns:1fr}}
  .step{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:26px 24px;position:relative}
  .step .no{font-family:'IBM Plex Mono';font-size:12px;font-weight:600;color:var(--green-deep);letter-spacing:.06em}
  .step .sic{width:46px;height:46px;border-radius:12px;background:var(--navy-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;margin:12px 0 14px}
  .step h3{font-size:18px;font-weight:700}
  .step p{color:var(--muted);font-size:14.5px;margin:8px 0 0}

  /* matrix */
  .matrix-wrap{margin-top:40px;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:8px;overflow-x:auto}
  table.mx{border-collapse:collapse;width:100%;min-width:720px}
  table.mx th,table.mx td{padding:14px 12px;text-align:center;border-bottom:1px solid var(--line)}
  table.mx thead th{font-family:'IBM Plex Mono';font-size:11.5px;font-weight:600;letter-spacing:.03em;color:var(--faint);text-transform:uppercase;background:var(--panel-2)}
  table.mx tbody th{text-align:left;font-family:'Sora';font-weight:600;font-size:14.5px;color:var(--ink);white-space:nowrap}
  table.mx tbody th small{display:block;font-family:'IBM Plex Mono';font-weight:500;font-size:10.5px;color:var(--faint);letter-spacing:.02em;margin-top:2px}
  table.mx tr:last-child td,table.mx tr:last-child th{border-bottom:0}
  .cell{width:24px;height:24px;border-radius:7px;margin:0 auto;display:flex;align-items:center;justify-content:center;background:var(--panel-2);color:#fff;transform:scale(.6);opacity:0;transition:all .5s cubic-bezier(.2,.7,.2,1);background:linear-gradient(135deg,var(--green),var(--green-deep))}
  .cell.on{opacity:1;transform:scale(1)}
  .cell svg{width:13px;height:13px}
  .mx-legend{margin-top:16px;font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
  .mx-legend .sw{width:16px;height:16px;border-radius:5px;background:linear-gradient(135deg,var(--green),var(--green-deep))}

  /* AI spotlight band */
  .ai-band{background:linear-gradient(150deg,#0f2f4d,#12365a 55%,#14513a);border-radius:24px;padding:48px 44px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;margin-top:12px}
  .ai-band .glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(40% 60% at 88% 15%,rgba(47,145,96,.4),transparent 60%)}
  .ai-band .kick{color:#8fe0b4}
  .ai-band h2{color:#fff;font-size:clamp(25px,3vw,34px)}
  .ai-band p{color:#c6d6e6;font-size:16px;margin:14px 0 0;max-width:40em}
  .ai-chips{display:flex;flex-wrap:wrap;gap:9px;position:relative}
  .ai-chip{font-size:13px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#dbe8f2;padding:8px 13px;border-radius:10px;font-family:'IBM Plex Mono'}
  @media(max-width:820px){.ai-band{grid-template-columns:1fr;padding:34px 28px;gap:24px}}

  /* pricing */
  .price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
  @media(max-width:820px){.price-grid{grid-template-columns:1fr}}
  .price{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 24px;position:relative;transition:transform .2s,box-shadow .2s}
  .price:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
  .price.feat{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft), var(--shadow)}
  .price .badge{position:absolute;top:-12px;left:24px;background:var(--green);color:#fff;font-family:'Sora';font-weight:600;font-size:12px;padding:5px 12px;border-radius:999px}
  .price h3{font-size:18px;font-weight:700}
  .price .amt{font-family:'Sora';font-weight:800;font-size:34px;color:var(--ink);margin:10px 0 0;letter-spacing:-.02em}
  .price .amt small{font-size:14px;color:var(--faint);font-weight:600}
  .price .alt{font-size:13px;color:var(--faint);margin-top:2px}
  .price ul{list-style:none;padding:0;margin:16px 0 20px;display:flex;flex-direction:column;gap:9px}
  .price li{display:flex;gap:9px;font-size:14px;color:var(--muted)}
  .price li svg{flex:0 0 auto;color:var(--green);margin-top:3px}
  .price .btn{width:100%;justify-content:center}
  .price-note{text-align:center;font-size:13px;color:var(--faint);margin-top:18px}
.plan-toggle{display:flex;width:-moz-fit-content;width:fit-content;gap:4px;margin:26px auto 0;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:999px;justify-content:center}
.pt-btn{font-family:'Sora';font-weight:600;font-size:14px;color:var(--muted);background:transparent;border:0;padding:9px 20px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s}
.pt-btn span{color:var(--faint);font-weight:500}
.pt-btn.on{background:var(--green);color:#fff}
.pt-btn.on span{color:rgba(255,255,255,.82)}
.price .cur{font-size:16px;color:var(--faint);font-weight:700;vertical-align:middle}
.price .year-only{display:flex}

  /* monitoring band */
  .mon{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:40px;margin-top:12px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
  @media(max-width:820px){.mon{grid-template-columns:1fr;padding:30px}}
  .mon h2{font-size:clamp(24px,3vw,32px)}
  .mon p{color:var(--muted);font-size:16px;margin:12px 0 0;max-width:46em}
  .mon-stamp{background:var(--navy-deep);color:#fff;border-radius:16px;padding:22px 26px;font-family:'IBM Plex Mono';min-width:220px}
  .mon-stamp .r{display:flex;justify-content:space-between;gap:18px;padding:6px 0;font-size:12.5px;color:#a9c0d6}
  .mon-stamp .r b{color:#fff}
  .mon-stamp .r .g{color:#8fe0b4}

  /* stats */
  .band{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:38px 34px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:12px}
  @media(max-width:760px){.band{grid-template-columns:repeat(2,1fr);gap:28px 20px}}
  .stat .n{font-family:'Sora';font-weight:800;font-size:clamp(28px,4vw,42px);color:var(--navy);line-height:1;letter-spacing:-.02em}
  .stat .n .u{color:var(--green);font-size:.55em;font-weight:700}
  .stat .l{font-size:13.5px;color:var(--muted);margin-top:8px}
  .stat+.stat{border-left:1px solid var(--line)}
  @media(max-width:760px){.stat+.stat{border-left:0}}

  /* partners strip */
  .partners{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px}
  @media(max-width:760px){.partners{grid-template-columns:1fr}}
  .pcard{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;transition:border-color .2s,transform .2s}
  .pcard:hover{transform:translateY(-3px);border-color:var(--line-2)}
  .pcard .k{font-family:'IBM Plex Mono';font-size:11.5px;color:var(--green-deep);letter-spacing:.05em;text-transform:uppercase}
  .pcard h3{font-size:20px;font-weight:700;margin-top:8px}
  .pcard p{color:var(--muted);font-size:14.5px;margin:10px 0 16px}
  .pcard ul{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:7px}
.pcard li{position:relative;padding-left:20px;font-size:14px;color:var(--muted)}
.pcard li:before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:2px;background:var(--green)}
.pcard a{color:var(--navy);font-weight:600;font-size:14.5px}

  /* faq */
  .faq{max-width:820px;margin:34px auto 0}
  .faq details{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}
  .faq summary{list-style:none;cursor:pointer;padding:18px 20px;font-family:'Sora';font-weight:600;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary .pm{color:var(--green);font-size:22px;transition:transform .2s;line-height:1}
  .faq details[open] summary .pm{transform:rotate(45deg)}
  .faq p{padding:0 20px 20px;margin:0;color:var(--muted);font-size:14.5px}

  /* cta */
  .cta-band{position:relative;overflow:hidden;background:linear-gradient(135deg,#12365a 0%,#0f2f4d 55%,#14513a 130%);border-radius:24px;padding:60px 44px;color:#fff;text-align:center;box-shadow:var(--shadow-lg)}
  .cta-band .kick{color:#8fe0b4}
  .cta-band h2{color:#fff;font-size:clamp(27px,3.6vw,40px);margin-top:12px}
  .cta-band p{color:#c6d6e6;font-size:16.5px;max-width:42em;margin:14px auto 26px}
  .cta-band .btn.ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
  .cta-band .btn.ghost:hover{border-color:#fff}
  .cta-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(40% 60% at 85% 20%,rgba(47,145,96,.4),transparent 60%),radial-gradient(40% 60% at 8% 90%,rgba(26,74,114,.5),transparent 60%)}

  /* footer */
  footer{border-top:1px solid var(--line);background:#fff;padding:56px 0 34px;margin-top:0}
  .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
  @media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px}}
  .foot-logo img{height:38px}
  .foot-blurb{color:var(--muted);font-size:14px;margin-top:14px;max-width:32ch}
  .foot-col b{font-family:'Sora';font-size:13px;color:var(--ink);display:block;margin-bottom:12px;letter-spacing:.02em}
  .foot-col a{display:block;color:var(--muted);font-size:14px;padding:5px 0;transition:color .15s}
  .foot-col a:hover{color:var(--navy)}
  .foot-bottom{border-top:1px solid var(--line);margin-top:34px;padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--faint);font-size:13px}

  .opt-badge{position:fixed;right:14px;bottom:14px;z-index:80;background:var(--ink);color:#fff;font-family:'IBM Plex Mono';font-size:11.5px;padding:8px 13px;border-radius:999px;box-shadow:var(--shadow)}
  @media (prefers-reduced-motion: reduce){*{animation:none!important;transition-duration:.001s!important}.rv{opacity:1;transform:none}.beam{display:none}}

  .ccyrow{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;color:var(--faint);font-size:13.5px}
  .ccyrow select{border:1.5px solid var(--line);border-radius:9px;padding:9px 12px;font-family:'IBM Plex Sans',sans-serif;font-size:14px;background:#fff;color:var(--ink);cursor:pointer}

/* ===== App shell (authenticated pages) ===== */
.appnav{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.appnav-in{max-width:1180px;margin:0 auto;padding:0 24px;min-height:60px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.appnav .logo{display:flex;align-items:center}
.appnav .logo img{height:30px;width:auto;display:block}
.appnav .modules{display:flex;align-items:center;gap:2px;margin-left:6px}
.appnav .modules a{font-family:'IBM Plex Sans',-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--muted);padding:8px 13px;border-radius:9px;white-space:nowrap;text-decoration:none;transition:background .15s,color .15s}
.appnav .modules a:hover{background:var(--navy-soft);color:var(--navy)}
.appnav .modules a.active{background:var(--navy-soft);color:var(--navy);font-weight:600}
.appnav .amid{flex:1}
.appnav .acct{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted);font-family:'IBM Plex Sans',sans-serif}
.appnav .acct .email{font-weight:500;color:var(--ink)}
.appnav .acct a,.appnav .acct button{color:var(--navy);font-weight:600;font-size:13px;background:none;border:0;cursor:pointer;font-family:inherit;text-decoration:none}
.appnav .acct a:hover,.appnav .acct button:hover{text-decoration:underline}
.appnav .surface{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:3px 9px;border:1px solid var(--line);border-radius:999px}
.appnav .mburger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:6px}
.appnav .mburger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;margin:4px 0}
@media(max-width:860px){.appnav .modules{order:3;flex-basis:100%;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.appnav .amid{display:none}}

/* App page shell wrapper */
.appmain{max-width:1180px;margin:0 auto;padding:34px 24px 60px}
.dash-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.dash-hd h1{font-family:'Sora',sans-serif;font-weight:700;font-size:28px;color:var(--ink);letter-spacing:-.01em;margin:0}
.dash-sub{color:var(--muted);font-size:15px;margin:6px 0 26px}
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}
.dstat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.dstat .k{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.dstat .v{font-family:'Sora',sans-serif;font-weight:700;font-size:30px;color:var(--navy);line-height:1.1;margin-top:6px}
.dstat .v.g{color:var(--green-deep)}
.dstat p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.modcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.modcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green)}
.modcard .mic{width:44px;height:44px;border-radius:12px;background:var(--green-soft);display:grid;place-items:center;color:var(--green-deep);margin-bottom:14px}
.modcard h3{font-family:'Sora',sans-serif;font-weight:600;font-size:17px;color:var(--ink);margin:0 0 6px}
.modcard p{margin:0;font-size:14px;color:var(--muted);flex:1}
.modcard .go{margin-top:14px;font-weight:600;font-size:14px;color:var(--navy)}
@media(max-width:900px){.dash-stats{grid-template-columns:1fr 1fr}.mod-grid{grid-template-columns:1fr}}

/* ===== Platform strip (marketing cross-link between modules) ===== */
.plat-strip{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.plat-mod{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 18px;font-family:'IBM Plex Sans',sans-serif;font-size:14.5px;color:var(--ink);font-weight:600;text-decoration:none;transition:transform .15s,border-color .15s,color .15s}
.plat-mod:hover{border-color:var(--green);color:var(--green-deep);transform:translateY(-2px)}
.plat-mod.on{background:var(--navy);color:#fff;border-color:var(--navy);cursor:default}
.plat-mod.on:hover{transform:none;color:#fff}
.plat-mod svg{color:var(--green);flex:0 0 auto}
.plat-mod.on svg{color:#8fd3ad}

/* Immunize the shared header/footer from page-level .wrap width overrides */
header.top > .wrap{max-width:1180px !important;padding-left:24px !important;padding-right:24px !important}
footer > .wrap{max-width:1180px !important}


/* ================= Page-scoped styles (consolidated) ================= */

/* ===== admin.html ===== */
body.p-admin {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --accent: #e0982a;
    --ink: #0f2338;
    --soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --good: #1f7a4d;
    --bad: #a3323b
    }
body.p-admin {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--bg);
    color: var(--ink)
    }
body.p-admin .appbar {
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: 14px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px
    }
body.p-admin .brand {
    font-weight: 800
    }
body.p-admin .brand small {
    color: var(--soft);
    font-weight: 500;
    display: block;
    font-size: 11px
    }
body.p-admin .who {
    font-size: 12.5px;
    color: var(--soft);
    display: flex;
    gap: 12px;
    align-items: center
    }
body.p-admin .appwrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 18px 20px
    }
body.p-admin input, body.p-admin button, body.p-admin select, body.p-admin textarea {
    font-family: inherit;
    font-size: 14px
    }
body.p-admin input, body.p-admin textarea, body.p-admin select {
    border: 1.5px solid var(--line);
    border-radius: 8px;
    padding: 9px 12px;
    background: #fff
    }
body.p-admin textarea {
    width: 100%;
    resize: vertical;
    min-height: 64px
    }
body.p-admin button {
    background: var(--brand);
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 9px 16px;
    font-weight: 650;
    cursor: pointer
    }
body.p-admin button.ghost {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line)
    }
body.p-admin button.danger {
    background: var(--bad)
    }
body.p-admin button:disabled {
    opacity: 0.5;
    cursor: not-allowed
    }
body.p-admin a.linkbtn {
    color: var(--brand-dark);
    font-size: 13px;
    cursor: pointer
    }
/* login */
body.p-admin .login {
    max-width: 380px;
    margin: 8vh auto;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 26px
    }
body.p-admin .login h2 {
    margin: 0 0 4px
    }
body.p-admin .login p {
    color: var(--soft);
    font-size: 13px;
    margin: 0 0 16px
    }
body.p-admin .login .field {
    margin-bottom: 12px
    }
body.p-admin .login label {
    font-size: 12px;
    font-weight: 650;
    color: var(--soft);
    display: block;
    margin-bottom: 4px
    }
body.p-admin .login input {
    width: 100%
    }
body.p-admin .adv {
    margin-top: 14px;
    font-size: 12px;
    color: var(--soft)
    }
body.p-admin .err {
    color: var(--bad);
    font-weight: 650;
    font-size: 13px;
    min-height: 18px
    }
body.p-admin .tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--line);
    flex-wrap: wrap
    }
body.p-admin .tab {
    padding: 10px 16px;
    cursor: pointer;
    font-weight: 650;
    color: var(--soft);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px
    }
body.p-admin .tab.on {
    color: var(--brand);
    border-bottom-color: var(--brand)
    }
body.p-admin .tab.hidden {
    display: none
    }
body.p-admin .bar {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 14px
    }
body.p-admin .stats {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px
    }
body.p-admin .stat {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 12px 16px;
    min-width: 120px
    }
body.p-admin .stat b {
    font-size: 22px;
    display: block
    }
body.p-admin .stat span {
    font-size: 12px;
    color: var(--soft)
    }
/* toolbar */
body.p-admin .tbar {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 12px
    }
body.p-admin .tbar input[type=search], body.p-admin .tbar input[type=text] {
    min-width: 200px
    }
body.p-admin .tbar input, body.p-admin .tbar select {
    padding: 7px 10px;
    font-size: 13px
    }
body.p-admin .tbar .lbl {
    font-size: 11.5px;
    color: var(--soft);
    font-weight: 650
    }
body.p-admin .tbar .sp {
    flex: 1
    }
body.p-admin .tbar .chk {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--soft)
    }
body.p-admin .selbar {
    display: none;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    background: #fff6e6;
    border: 1px solid #f2d9a8;
    border-radius: 10px;
    padding: 8px 12px;
    margin-bottom: 10px;
    font-size: 13px
    }
body.p-admin .selbar.show {
    display: flex
    }
body.p-admin table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 11px;
    overflow: hidden;
    font-size: 12.5px
    }
body.p-admin th, body.p-admin td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #eef0f6;
    white-space: nowrap;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis
    }
body.p-admin th {
    background: #eef0f6;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--soft)
    }
body.p-admin th.sortable {
    cursor: pointer;
    user-select: none
    }
body.p-admin th.sortable .ar {
    opacity: 0.5;
    font-size: 10px
    }
body.p-admin tr.exp-row td {
    background: #fbfcfe;
    white-space: normal;
    max-width: none
    }
body.p-admin tr.clickable {
    cursor: pointer
    }
body.p-admin tr.clickable:hover td {
    background: #f7fafc
    }
body.p-admin .pill {
    display: inline-block;
    font-family: inherit;
    border: 0;
    box-shadow: none;
    background: none;
    font-size: 10.5px;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 999px
    }
body.p-admin .complete, body.p-admin .paid {
    background: #e8f5ee;
    color: var(--good)
    }
body.p-admin .partial, body.p-admin .pending {
    background: #fbf3e2;
    color: #9a6b12
    }
body.p-admin .del-row td {
    opacity: 0.55
    }
body.p-admin .muted {
    color: #77808f
    }
body.p-admin .mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11.5px
    }
body.p-admin .actbtn {
    text-decoration: none;
    padding: 4px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 12px;
    cursor: pointer;
    font-weight: 600
    }
body.p-admin .grp {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 16px
    }
body.p-admin .grp h3 {
    margin: 0 0 4px;
    font-size: 15px
    }
body.p-admin .grp .gd {
    color: var(--soft);
    font-size: 12.5px;
    margin: 0 0 14px
    }
body.p-admin .row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    align-items: start;
    padding: 9px 0;
    border-top: 1px solid #f1f2f6
    }
body.p-admin .row:first-of-type {
    border-top: 0
    }
body.p-admin .row label {
    font-size: 13px;
    font-weight: 650;
    padding-top: 9px
    }
body.p-admin .row .hint {
    font-size: 11.5px;
    color: var(--soft);
    margin-top: 3px
    }
body.p-admin .row .f {
    display: flex;
    flex-direction: column
    }
body.p-admin .row input[type=text], body.p-admin .row input[type=email], body.p-admin .row input[type=number], body.p-admin .row input[type=password] {
    width: 100%;
    max-width: 460px
    }
body.p-admin .toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 6px
    }
body.p-admin .colorwrap {
    display: flex;
    align-items: center;
    gap: 10px
    }
body.p-admin .colorwrap input[type=color] {
    width: 44px;
    height: 36px;
    padding: 2px;
    border-radius: 8px
    }
body.p-admin .logoprev {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap
    }
body.p-admin .logobox {
    width: 64px;
    height: 64px;
    border: 1px solid var(--line);
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #fff;
    overflow: hidden
    }
body.p-admin .logobox img {
    max-width: 100%;
    max-height: 100%
    }
body.p-admin .savebar {
    position: sticky;
    bottom: 0;
    background: rgba(245, 246, 251, 0.94);
    backdrop-filter: blur(6px);
    padding: 14px 0;
    display: flex;
    gap: 12px;
    align-items: center;
    border-top: 1px solid var(--line);
    margin-top: 8px
    }
body.p-admin .ok {
    color: var(--good);
    font-weight: 650;
    font-size: 13px
    }
@media (max-width: 620px) {
    body.p-admin .row {
        grid-template-columns: 1fr
        }
    body.p-admin .row label {
        padding-top: 0
        }
    }
body.p-admin h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700
    }
body.p-admin .wm {
    font-family: "Sora", system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.01em
    }
body.p-admin .wm small {
    text-transform: none;
    letter-spacing: 0
    }

/* ===== ai-check.html ===== */
/* ---- AI check app (reskin over Living Matrix tokens) ---- */
body.p-ai-check .appwrap {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px
    }
body.p-ai-check .appwrap .hero {
    padding: 44px 0 6px;
    text-align: center;
    border-bottom: 0;
    overflow: visible
    }
body.p-ai-check .appwrap .hero h1 {
    font-family: "Sora";
    font-weight: 800;
    font-size: clamp(26px, 4vw, 34px);
    line-height: 1.12;
    margin: 0 auto 12px;
    letter-spacing: -0.02em;
    max-width: 600px
    }
body.p-ai-check .appwrap .hero h1 em {
    font-style: normal;
    background: linear-gradient(100deg, var(--green-deep), var(--green) 55%, var(--navy));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent
    }
body.p-ai-check .appwrap .hero p {
    font-size: 16.5px;
    color: var(--muted);
    margin: 0 auto 8px;
    max-width: 540px
    }
body.p-ai-check .startsteps {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 24px 0 4px;
    flex-wrap: wrap
    }
body.p-ai-check .step-pill {
    font-family: "IBM Plex Mono";
    font-size: 12px;
    color: var(--muted);
    border: 1px solid var(--line);
    background: var(--panel);
    border-radius: 999px;
    padding: 7px 13px;
    display: flex;
    align-items: center;
    gap: 7px
    }
body.p-ai-check .dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--green);
    display: inline-block;
    box-shadow: 0 0 0 4px rgba(47, 145, 96, 0.14)
    }
body.p-ai-check .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 26px;
    margin: 20px 0
    }
body.p-ai-check .center {
    text-align: center
    }
body.p-ai-check .btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1.5px solid transparent;
    border-radius: 11px;
    padding: 12px 22px;
    font-family: "Sora";
    font-size: 14.5px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.15s, background 0.15s, box-shadow 0.15s
    }
body.p-ai-check .btn:hover {
    transform: translatey(-1px)
    }
body.p-ai-check .btn.primary {
    background: var(--green);
    color: #fff;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3)
    }
body.p-ai-check .btn.primary:hover {
    background: var(--green-deep)
    }
body.p-ai-check .btn.ghost {
    background: var(--panel);
    color: var(--ink);
    border-color: var(--line-2)
    }
body.p-ai-check .btn.ghost:hover {
    border-color: var(--navy);
    color: var(--navy)
    }
body.p-ai-check .btn.block {
    width: 100%
    }
body.p-ai-check .btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none
    }
body.p-ai-check .btn.lg {
    padding: 15px 30px;
    font-size: 16px
    }
body.p-ai-check .btn.sm {
    padding: 9px 15px;
    font-size: 13.5px
    }
body.p-ai-check .lab {
    font-family: "IBM Plex Mono";
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 6px;
    display: block;
    letter-spacing: 0.02em
    }
body.p-ai-check .inp {
    width: 100%;
    border: 1.6px solid var(--line);
    border-radius: 11px;
    padding: 13px 15px;
    font-size: 16px;
    font-family: "IBM Plex Sans", sans-serif;
    color: var(--ink);
    background: #fff
    }
body.p-ai-check .inp:focus {
    outline: 0;
    border-color: var(--green)
    }
body.p-ai-check .row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
    }
@media (max-width: 560px) {
    body.p-ai-check .row2 {
        grid-template-columns: 1fr
        }
    }
body.p-ai-check .wizprog .bar {
    height: 8px;
    background: var(--panel-2);
    border-radius: 999px;
    overflow: hidden
    }
body.p-ai-check .wizprog .bar > i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--green), var(--green-deep));
    width: 0;
    transition: width 0.35s
    }
body.p-ai-check .wizprog .l {
    display: flex;
    justify-content: space-between;
    font-family: "IBM Plex Mono";
    font-size: 12px;
    color: var(--muted);
    margin-top: 8px;
    font-weight: 600
    }
body.p-ai-check .mkgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
    margin-top: 6px
    }
body.p-ai-check .mk {
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1.4px solid var(--line);
    border-radius: 11px;
    padding: 10px 12px;
    cursor: pointer;
    font-size: 14px;
    background: #fff;
    transition: border-color 0.15s, background 0.15s
    }
body.p-ai-check .mk.on {
    border-color: var(--green);
    background: var(--green-soft)
    }
body.p-ai-check .mk .fl {
    font-size: 17px
    }
body.p-ai-check .chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1.4px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 13.5px;
    margin: 0 6px 8px 0
    }
body.p-ai-check .chip .x {
    cursor: pointer;
    color: #c14b39;
    font-weight: 800;
    font-size: 15px;
    line-height: 1
    }
body.p-ai-check .uc {
    border: 1.4px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    margin: 8px 0;
    background: #fff
    }
body.p-ai-check .uc h4 {
    margin: 0 0 4px;
    font-size: 15px;
    font-family: "Sora";
    font-weight: 600
    }
body.p-ai-check .uc .ev {
    font-size: 12px;
    color: var(--muted)
    }
body.p-ai-check .flag {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 6px;
    padding: 3px 8px;
    margin: 4px 6px 0 0
    }
body.p-ai-check .f-high {
    background: #fbece9;
    color: #c14b39
    }
body.p-ai-check .f-adm {
    background: #fbf3e2;
    color: #8a6212
    }
body.p-ai-check .f-sens {
    background: #efe9f5;
    color: #6b3fa0
    }
body.p-ai-check .f-bio {
    background: var(--navy-soft);
    color: var(--navy)
    }
body.p-ai-check .f-syn {
    background: #fbf1de;
    color: #b9791a
    }
body.p-ai-check .q {
    border-top: 1px solid var(--line);
    padding: 14px 0
    }
body.p-ai-check .q:first-child {
    border-top: 0
    }
body.p-ai-check .qtext {
    font-family: "Sora";
    font-weight: 600;
    font-size: 15.5px;
    margin: 0 0 10px
    }
body.p-ai-check .opts {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
    }
body.p-ai-check .opt {
    border: 1.4px solid var(--line);
    border-radius: 10px;
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;
    background: #fff;
    transition: border-color 0.15s, background 0.15s
    }
body.p-ai-check .opt.on {
    border-color: var(--green);
    background: var(--green-soft);
    font-weight: 600
    }
body.p-ai-check .opt.on.no {
    border-color: #c14b39;
    background: #fbece9
    }
body.p-ai-check .opt.on.unsure {
    border-color: #8a6212;
    background: #fbf3e2
    }
body.p-ai-check .muted {
    color: var(--muted);
    font-size: 13px
    }
body.p-ai-check .scorewrap {
    text-align: center;
    padding: 10px 0
    }
body.p-ai-check .score {
    font-family: "Sora";
    font-size: 56px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1px
    }
body.p-ai-check .scband {
    font-family: "Sora";
    font-weight: 700;
    font-size: 16px;
    margin-top: 6px
    }
body.p-ai-check .gap {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 9px 0;
    border-top: 1px solid var(--line);
    font-size: 14px
    }
body.p-ai-check .gap .g {
    color: #c14b39;
    font-weight: 700;
    font-family: "IBM Plex Mono";
    font-size: 12px;
    white-space: nowrap;
    margin-top: 2px
    }
body.p-ai-check .hide {
    display: none
    }
body.p-ai-check .foot-disclaimer {
    max-width: 820px;
    margin: 0 auto;
    color: var(--faint);
    font-size: 12.5px;
    text-align: center;
    padding: 26px 20px 10px
    }
body.p-ai-check .spin {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2.5px solid var(--green-soft);
    border-top-color: var(--green);
    border-radius: 50%;
    animation: sp 0.7s linear infinite;
    vertical-align: -3px;
    margin-right: 8px
    }
@keyframes sp {
    to {
        transform: rotate(360deg)
        }
    }

/* ===== ai-pack.html ===== */
/* ---- AI pack intake app (reskin over Living Matrix tokens) ---- */
body.p-ai-pack .appwrap {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px
    }
body.p-ai-pack .appwrap .hero {
    padding: 40px 0 6px;
    text-align: center;
    border-bottom: 0;
    overflow: visible
    }
body.p-ai-pack .appwrap .hero h1 {
    font-family: "Sora";
    font-weight: 800;
    font-size: clamp(24px, 3.6vw, 31px);
    line-height: 1.14;
    margin: 0 auto 10px;
    max-width: 560px;
    letter-spacing: -0.02em
    }
body.p-ai-pack .appwrap .hero p {
    font-size: 15.5px;
    color: var(--muted);
    margin: 0 auto;
    max-width: 540px
    }
body.p-ai-pack .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 24px;
    margin: 18px 0
    }
body.p-ai-pack .center {
    text-align: center
    }
body.p-ai-pack .btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1.5px solid transparent;
    border-radius: 11px;
    padding: 12px 22px;
    font-family: "Sora";
    font-size: 14.5px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.15s, background 0.15s, box-shadow 0.15s
    }
body.p-ai-pack .btn:hover {
    transform: translatey(-1px)
    }
body.p-ai-pack .btn.primary {
    background: var(--green);
    color: #fff;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3)
    }
body.p-ai-pack .btn.primary:hover {
    background: var(--green-deep)
    }
body.p-ai-pack .btn.ghost {
    background: var(--panel);
    color: var(--ink);
    border-color: var(--line-2)
    }
body.p-ai-pack .btn.ghost:hover {
    border-color: var(--navy);
    color: var(--navy)
    }
body.p-ai-pack .btn.sm {
    padding: 9px 15px;
    font-size: 13.5px
    }
body.p-ai-pack .btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none
    }
body.p-ai-pack .lab {
    font-family: "IBM Plex Mono";
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 6px;
    display: block;
    letter-spacing: 0.02em
    }
body.p-ai-pack .inp, body.p-ai-pack textarea.inp {
    width: 100%;
    border: 1.6px solid var(--line);
    border-radius: 11px;
    padding: 12px 14px;
    font-size: 15px;
    font-family: "IBM Plex Sans", sans-serif;
    color: var(--ink);
    background: #fff
    }
body.p-ai-pack .inp:focus {
    outline: 0;
    border-color: var(--green)
    }
body.p-ai-pack .row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
    }
@media (max-width: 560px) {
    body.p-ai-pack .row2 {
        grid-template-columns: 1fr
        }
    }
body.p-ai-pack .doclist {
    columns: 2;
    font-size: 14px;
    color: var(--muted)
    }
@media (max-width: 560px) {
    body.p-ai-pack .doclist {
        columns: 1
        }
    }
body.p-ai-pack .doclist div {
    margin: 5px 0;
    break-inside: avoid
    }
body.p-ai-pack .price {
    font-family: "Sora";
    font-size: 30px;
    font-weight: 800;
    color: var(--green-deep);
    letter-spacing: -0.02em
    }
body.p-ai-pack .wizprog .bar {
    height: 8px;
    background: var(--panel-2);
    border-radius: 999px;
    overflow: hidden
    }
body.p-ai-pack .wizprog .bar > i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--green), var(--green-deep));
    width: 0;
    transition: width 0.35s
    }
body.p-ai-pack .wizprog .l {
    display: flex;
    justify-content: space-between;
    font-family: "IBM Plex Mono";
    font-size: 12px;
    color: var(--muted);
    margin-top: 8px;
    font-weight: 600
    }
body.p-ai-pack .chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1.4px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 13px;
    margin: 0 6px 8px 0
    }
body.p-ai-pack .chip .x {
    cursor: pointer;
    color: #c14b39;
    font-weight: 800
    }
body.p-ai-pack .mkgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px
    }
body.p-ai-pack .mk {
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1.4px solid var(--line);
    border-radius: 11px;
    padding: 9px 12px;
    cursor: pointer;
    font-size: 14px;
    background: #fff;
    transition: border-color 0.15s, background 0.15s
    }
body.p-ai-pack .mk.on {
    border-color: var(--green);
    background: var(--green-soft)
    }
body.p-ai-pack .uc {
    border: 1.4px solid var(--line);
    border-radius: 10px;
    padding: 10px 12px;
    margin: 7px 0;
    background: #fff
    }
body.p-ai-pack .flag {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    border-radius: 6px;
    padding: 3px 8px;
    margin: 4px 6px 0 0
    }
body.p-ai-pack .f-high {
    background: #fbece9;
    color: #c14b39
    }
body.p-ai-pack .f-adm {
    background: #fbf3e2;
    color: #8a6212
    }
body.p-ai-pack .f-sens {
    background: #efe9f5;
    color: #6b3fa0
    }
body.p-ai-pack .f-bio {
    background: var(--navy-soft);
    color: var(--navy)
    }
body.p-ai-pack .f-syn {
    background: #fbf1de;
    color: #b9791a
    }
body.p-ai-pack .q {
    border-top: 1px solid var(--line);
    padding: 14px 0
    }
body.p-ai-pack .q:first-child {
    border-top: 0
    }
body.p-ai-pack .qtext {
    font-family: "Sora";
    font-weight: 600;
    font-size: 15px;
    margin: 0 0 8px
    }
body.p-ai-pack .qtext .uc {
    display: inline;
    border: 0;
    padding: 0;
    color: var(--green-deep);
    font-size: 12px;
    background: none
    }
body.p-ai-pack .muted {
    color: var(--muted);
    font-size: 13px
    }
body.p-ai-pack .sys {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px;
    margin: 8px 0;
    background: #fff
    }
body.p-ai-pack .hide {
    display: none
    }
body.p-ai-pack .foot-disclaimer {
    max-width: 820px;
    margin: 0 auto;
    color: var(--faint);
    font-size: 12.5px;
    text-align: center;
    padding: 24px 20px 10px
    }
body.p-ai-pack .spin {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2.5px solid var(--green-soft);
    border-top-color: var(--green);
    border-radius: 50%;
    animation: sp 0.7s linear infinite;
    vertical-align: -3px;
    margin-right: 8px
    }
@keyframes sp {
    to {
        transform: rotate(360deg)
        }
    }

/* ===== ai-sample.html ===== */
/* ---- AI sample viewer (reskin over Living Matrix tokens) ---- */
body.p-ai-sample .sample-hero {
    background: linear-gradient(180deg, #fff, var(--ground));
    border-bottom: 1px solid var(--line)
    }
body.p-ai-sample .sample-hero .wrap {
    padding-top: 34px;
    padding-bottom: 28px
    }
body.p-ai-sample .crumb {
    font-family: "IBM Plex Mono";
    font-size: 12.5px;
    color: var(--muted);
    margin-bottom: 12px
    }
body.p-ai-sample .crumb a {
    color: var(--muted)
    }
body.p-ai-sample .eyebrow {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--green-deep);
    background: var(--green-soft);
    padding: 6px 12px;
    border-radius: 999px
    }
body.p-ai-sample .sample-hero h1 {
    font-family: "Sora";
    font-weight: 800;
    font-size: clamp(26px, 3.6vw, 34px);
    line-height: 1.12;
    margin: 14px 0 8px;
    letter-spacing: -0.02em
    }
body.p-ai-sample .sample-hero .lead {
    font-size: 16.5px;
    color: var(--muted);
    max-width: 720px;
    margin: 0 0 18px
    }
body.p-ai-sample .sbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: "Sora";
    font-weight: 600;
    font-size: 14.5px;
    padding: 12px 22px;
    border-radius: 11px;
    border: 1.5px solid transparent;
    background: var(--green);
    color: #fff;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3)
    }
body.p-ai-sample .sbtn:hover {
    background: var(--green-deep)
    }
body.p-ai-sample .sample-wrap {
    padding-top: 8px;
    padding-bottom: 60px
    }
body.p-ai-sample .grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 26px;
    align-items: start;
    margin-top: 22px
    }
@media (max-width: 820px) {
    body.p-ai-sample .grid {
        grid-template-columns: 1fr
        }
    body.p-ai-sample .paper {
        position: static !important
        }
    }
body.p-ai-sample .list {
    display: flex;
    flex-direction: column;
    gap: 10px
    }
body.p-ai-sample .doc {
    display: flex;
    gap: 13px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
    cursor: pointer;
    transition: 0.15s;
    align-items: flex-start
    }
body.p-ai-sample .doc:hover {
    border-color: var(--green)
    }
body.p-ai-sample .doc.on {
    border-color: var(--green);
    box-shadow: 0 8px 22px -14px rgba(47, 145, 96, 0.6)
    }
body.p-ai-sample .doc .n {
    font-family: "IBM Plex Mono";
    font-size: 14px;
    color: var(--green-deep);
    font-weight: 600;
    min-width: 24px
    }
body.p-ai-sample .doc h3 {
    font-family: "Sora";
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 2px
    }
body.p-ai-sample .doc p {
    margin: 0;
    font-size: 13px;
    color: var(--muted)
    }
body.p-ai-sample .paper {
    position: sticky;
    top: 88px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
    overflow: hidden
    }
body.p-ai-sample .paper .bar {
    background: var(--navy-deep);
    color: #fff;
    padding: 11px 16px;
    font-family: "IBM Plex Mono";
    font-size: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px
    }
body.p-ai-sample .paper .body {
    padding: 22px 24px
    }
body.p-ai-sample .paper h2 {
    font-family: "Sora";
    font-weight: 700;
    font-size: 20px;
    margin: 0 0 3px
    }
body.p-ai-sample .paper .meta {
    font-family: "IBM Plex Mono";
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 14px
    }
body.p-ai-sample .paper h4 {
    font-family: "IBM Plex Mono";
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--green-deep);
    margin: 16px 0 6px
    }
body.p-ai-sample .paper p {
    font-size: 14px;
    color: #2b3a4a;
    margin: 0 0 10px
    }
body.p-ai-sample .paper .mk {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 0 4px
    }
body.p-ai-sample .paper .mk span {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    background: var(--ground);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 4px 9px
    }
body.p-ai-sample .paper table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    margin: 8px 0
    }
body.p-ai-sample .paper th, body.p-ai-sample .paper td {
    border: 1px solid var(--line);
    padding: 7px 9px;
    text-align: left
    }
body.p-ai-sample .paper th {
    background: var(--panel-2);
    font-family: "IBM Plex Mono";
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--muted)
    }
body.p-ai-sample .g-req {
    color: var(--green-deep);
    font-weight: 700
    }
body.p-ai-sample .g-exp {
    color: var(--green);
    font-weight: 700
    }
body.p-ai-sample .g-pru {
    color: #8a6212;
    font-weight: 700
    }
body.p-ai-sample .ctaband {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #12365a 0%, #0f2f4d 55%, #14513a 130%);
    color: #fff;
    border-radius: 20px;
    padding: 34px 30px;
    margin: 38px 0 0;
    box-shadow: var(--shadow-lg)
    }
body.p-ai-sample .ctaband h2 {
    font-family: "Sora";
    font-weight: 700;
    font-size: clamp(22px, 3vw, 26px);
    margin: 0 0 8px;
    color: #fff
    }
body.p-ai-sample .ctaband p {
    margin: 0 0 18px;
    color: #c6d6e6;
    font-size: 15.5px;
    max-width: 640px
    }
body.p-ai-sample .ctaband .sbtn {
    background: #fff;
    color: var(--navy-deep);
    box-shadow: none
    }
body.p-ai-sample .ctaband .sbtn:hover {
    background: #eef3f9
    }
body.p-ai-sample .disc {
    font-size: 12.5px;
    color: var(--muted);
    margin-top: 16px
    }

/* ===== ai.html ===== */
body.p-ai .scorecard {
    position: relative;
    z-index: 2;
    max-width: 520px;
    margin: 46px auto 0;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow-lg);
    padding: 22px 24px;
    text-align: left
    }
body.p-ai .sc-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px
    }
body.p-ai .sc-top .who {
    font-family: "Sora";
    font-weight: 700;
    font-size: 18px;
    color: var(--ink)
    }
body.p-ai .sc-top .kick {
    margin-bottom: 2px
    }
body.p-ai .ring {
    --p: 0;
    width: 70px;
    height: 70px;
    flex: 0 0 auto;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(var(--green) calc(var(--p) * 1%), var(--panel-2) 0)
    }
body.p-ai .ring b {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-items: center;
    font-family: "Sora";
    font-weight: 800;
    font-size: 21px;
    color: var(--ink)
    }
body.p-ai .sc-rows {
    display: flex;
    flex-direction: column;
    gap: 8px
    }
body.p-ai .sc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    font-size: 13.5px;
    background: var(--ground);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 9px 12px
    }
body.p-ai .sc-chip {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px
    }
body.p-ai .sc-chip.req {
    background: #fbece9;
    color: #c14b39
    }
body.p-ai .sc-chip.exp {
    background: #fbf3e2;
    color: #8a6212
    }
body.p-ai .sc-chip.ok {
    background: var(--green-soft);
    color: var(--green-deep)
    }
body.p-ai .uses {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin-top: 40px
    }
body.p-ai .use {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 16px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    transition: transform 0.2s, border-color 0.2s
    }
body.p-ai .use:hover {
    transform: translatey(-3px);
    border-color: var(--line-2)
    }
body.p-ai .use .hi {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 10.5px;
    font-weight: 600;
    color: #c14b39;
    background: #fbece9;
    padding: 3px 8px;
    border-radius: 999px;
    margin-top: 8px
    }
body.p-ai .doclist {
    list-style: none;
    margin: 40px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
    }
@media (max-width: 720px) {
    body.p-ai .doclist {
        grid-template-columns: 1fr
        }
    }
body.p-ai .doclist li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px
    }
body.p-ai .doclist .n {
    font-family: "IBM Plex Mono";
    font-size: 13px;
    color: var(--green-deep);
    font-weight: 600;
    min-width: 22px
    }
body.p-ai .doclist b {
    font-family: "Sora";
    font-weight: 600;
    font-size: 14.5px;
    color: var(--ink)
    }
body.p-ai .doclist span.d {
    display: block;
    font-size: 13px;
    color: var(--muted);
    margin-top: 2px
    }
body.p-ai .lawrow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px
    }
body.p-ai .lawrow a {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 9px 16px;
    font-size: 14px;
    color: var(--ink);
    font-weight: 600;
    transition: border-color 0.2s, color 0.2s
    }
body.p-ai .lawrow a:hover {
    border-color: var(--navy);
    color: var(--navy)
    }

/* ===== api-docs.html ===== */
body.p-api-docs {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --accent: #e0982a;
    --ink: #0f2338;
    --soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --code: #0f2430
    }
body.p-api-docs {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.6
    }
body.p-api-docs a {
    color: var(--brand-dark)
    }
body.p-api-docs .docs {
    max-width: 860px;
    margin: 0 auto;
    padding: 34px 22px 60px
    }
body.p-api-docs h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700;
    font-size: 29px;
    margin: 2px 0 4px
    }
body.p-api-docs .meta {
    color: var(--soft);
    font-size: 13px;
    margin-bottom: 18px
    }
body.p-api-docs h2 {
    font-size: 17px;
    margin: 30px 0 6px;
    border-top: 1px solid var(--line);
    padding-top: 16px
    }
body.p-api-docs h2:first-of-type {
    border-top: 0
    }
body.p-api-docs h3 {
    font-size: 14px;
    margin: 18px 0 4px
    }
body.p-api-docs p {
    margin: 8px 0
    }
body.p-api-docs code {
    font-family: "SF Mono", Menlo, Consolas, monospace;
    font-size: 13px;
    background: #eef1f7;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    color: var(--code)
    }
body.p-api-docs pre {
    background: #0f2430;
    color: #e7edf3;
    border-radius: 11px;
    padding: 14px 16px;
    overflow: auto;
    font-family: "SF Mono", Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.5
    }
body.p-api-docs pre .k {
    color: #7fd1a6
    }
body.p-api-docs .pre .s {
    color: #e0982a
    }
body.p-api-docs table {
    border-collapse: collapse;
    width: 100%;
    margin: 10px 0;
    font-size: 13.5px
    }
body.p-api-docs th, body.p-api-docs td {
    border: 1px solid var(--line);
    padding: 7px 10px;
    text-align: left;
    vertical-align: top
    }
body.p-api-docs th {
    background: #eef1f7;
    font-weight: 650
    }
body.p-api-docs .tag {
    display: inline-block;
    background: #e7f2ec;
    color: var(--brand-dark);
    border-radius: 6px;
    padding: 1px 8px;
    font-size: 12px;
    font-weight: 650;
    font-family: "SF Mono", Menlo, monospace
    }
body.p-api-docs .note {
    background: #fff7e6;
    border: 1px solid #f3dca0;
    border-radius: 11px;
    padding: 13px 16px;
    margin: 14px 0;
    font-size: 13px;
    color: #6b4e12
    }

/* ===== assessment.html ===== */
body.p-assessment {
    --ink: #0f2338;
    --ink-soft: #556579;
    --line: #e2e8f1;
    --line-soft: #eef3f9;
    --bg: #f3f6fb;
    --card: #fff;
    --brand: #2f9160;
    --brand2: #43a273;
    --brand-dark: #1f7a49;
    --brand-soft: #e6f4ec;
    --accent: #e0982a;
    --accent-dark: #b9791a;
    --accent-soft: #fbf1de;
    --navy: #1a4a72;
    --navy-deep: #12365a;
    --navy-soft: #e9f1f9;
    --good: #1f7a4d;
    --good-bg: #e8f5ee;
    --warn: #9a6b12;
    --warn-bg: #fbf3e2;
    --bad: #a3323b;
    --bad-bg: #fbeced;
    --na: #6b7280;
    --na-bg: #f1f2f6;
    --lock: #1f7a49;
    --lock-bg: #e6f4ec;
    --radius: 16px;
    --shadow: 0 1px 2px rgba(15, 35, 56, 0.04), 0 14px 44px rgba(18, 54, 90, 0.07)
    }
body.p-assessment * {
    box-sizing: border-box
    }
body.p-assessment, body.p-assessment {
    margin: 0;
    padding: 0
    }
body.p-assessment {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    background: var(--bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased
    }
body.p-assessment a {
    color: var(--brand-dark)
    }
body.p-assessment section {
    padding: 0
    }
body.p-assessment .wrap {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px
    }
body.p-assessment .logo {
    display: flex;
    align-items: center;
    gap: 10px
    }
body.p-assessment .logo .mark {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center
    }
body.p-assessment .logo .wm {
    font-family: "Sora", sans-serif;
    font-weight: 800;
    font-size: 18px;
    letter-spacing: -0.4px;
    line-height: 1
    }
body.p-assessment .logo .wm .a {
    color: #1c466d;
    font-weight: 800
    }
body.p-assessment .logo .wm .b {
    color: var(--brand);
    font-weight: 600
    }
body.p-assessment .logo small {
    display: block;
    font-weight: 500;
    color: var(--ink-soft);
    font-size: 10.5px;
    letter-spacing: 0.02em;
    margin-top: 2px
    }
body.p-assessment .tag {
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 12px;
    color: var(--brand-dark);
    background: var(--brand-soft);
    border: 1px solid #cfe6da;
    padding: 5px 11px;
    border-radius: 999px;
    font-weight: 600
    }
@media (max-width: 560px) {
    body.p-assessment .tag {
        display: none
        }
    }
body.p-assessment .hero {
    padding: 40px 0 8px;
    text-align: center
    }
body.p-assessment .hero h1 {
    font-size: 30px;
    line-height: 1.15;
    margin: 0 auto 12px;
    letter-spacing: -0.5px;
    max-width: 560px
    }
body.p-assessment .hero p {
    font-size: 16px;
    color: var(--ink-soft);
    margin: 0 auto 8px;
    max-width: 520px
    }
body.p-assessment .startsteps {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 24px 0 4px;
    flex-wrap: wrap
    }
body.p-assessment .step-pill {
    font-size: 12px;
    color: var(--ink-soft);
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 999px;
    padding: 6px 12px;
    display: flex;
    align-items: center;
    gap: 7px
    }
body.p-assessment .dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--brand);
    display: inline-block
    }
body.p-assessment .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 26px;
    margin: 20px 0
    }
body.p-assessment .center {
    text-align: center
    }
body.p-assessment .btn {
    -webkit-appearance: none;
    appearance: none;
    border: 0;
    border-radius: 10px;
    padding: 13px 22px;
    font-size: 15px;
    font-weight: 650;
    cursor: pointer;
    transition: 0.15s;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation
    }
body.p-assessment .btn.primary {
    background: var(--brand);
    color: #fff
    }
body.p-assessment .btn.primary:hover {
    background: var(--brand-dark)
    }
body.p-assessment .btn.ghost {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line)
    }
body.p-assessment .btn.ghost:hover {
    border-color: #c9d9ec;
    background: #fafbff
    }
body.p-assessment .btn.block {
    width: 100%;
    text-align: center
    }
body.p-assessment .btn:disabled {
    opacity: 0.45;
    cursor: not-allowed
    }
body.p-assessment .btn.lg {
    padding: 15px 30px;
    font-size: 16px
    }
body.p-assessment .wizprog {
    margin: 26px 0 0
    }
body.p-assessment .wizprog .bar {
    height: 8px;
    background: var(--line-soft);
    border-radius: 999px;
    overflow: hidden
    }
body.p-assessment .wizprog .bar > i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--brand), var(--brand2));
    width: 0;
    transition: width 0.35s
    }
body.p-assessment .wizprog .lab {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--ink-soft);
    margin-top: 8px;
    font-weight: 600
    }
body.p-assessment .qcard {
    min-height: 58vh;
    display: flex;
    flex-direction: column
    }
body.p-assessment .qcat {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--brand);
    margin: 6px 0 12px;
    display: flex;
    align-items: center;
    gap: 8px
    }
body.p-assessment .qcat .flags {
    font-weight: 400;
    letter-spacing: normal
    }
body.p-assessment .qtext {
    font-weight: 700;
    font-size: 22px;
    letter-spacing: -0.3px;
    margin: 0 0 8px;
    line-height: 1.25
    }
body.p-assessment .qhint {
    color: var(--ink-soft);
    font-size: 14.5px;
    margin: 0 0 22px;
    max-width: 600px
    }
body.p-assessment .urlwrap {
    margin: 0 0 18px
    }
body.p-assessment .urllab {
    font-size: 12px;
    font-weight: 700;
    color: var(--ink-soft);
    margin-bottom: 5px;
    display: block
    }
body.p-assessment .urlnote {
    font-size: 11.5px;
    color: var(--ink-soft);
    margin-top: 7px;
    line-height: 1.5
    }
body.p-assessment .urlnote a {
    color: var(--brand-dark)
    }
body.p-assessment .inp {
    width: 100%;
    border: 1.6px solid var(--line);
    border-radius: 11px;
    padding: 13px 15px;
    font-size: 16px;
    font-family: inherit;
    -webkit-appearance: none;
    appearance: none
    }
body.p-assessment .inp:focus {
    outline: 0;
    border-color: var(--brand2)
    }
body.p-assessment .hp {
    position: absolute !important;
    left: -9999px !important;
    top: auto;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none
    }
body.p-assessment .optcol {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 560px
    }
body.p-assessment .optbig {
    border: 1.6px solid var(--line);
    background: #fff;
    border-radius: 12px;
    padding: 15px 18px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.13s;
    color: var(--ink);
    text-align: start;
    display: flex;
    align-items: center;
    gap: 12px
    }
body.p-assessment .optbig:hover {
    border-color: var(--brand2);
    background: #fafbff
    }
body.p-assessment .optbig .rb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--line);
    flex: none;
    transition: 0.13s
    }
body.p-assessment .optbig.sel {
    border-color: var(--brand);
    background: var(--brand-soft)
    }
body.p-assessment .optbig.sel .rb {
    border-color: var(--brand);
    background: var(--brand);
    box-shadow: inset 0 0 0 3px #fff
    }
body.p-assessment .optbig.dim {
    opacity: 0.5
    }
body.p-assessment .wgood.sel {
    border-color: #a9d7bd;
    background: var(--good-bg)
    }
body.p-assessment .wgood.sel .rb {
    border-color: var(--good);
    background: var(--good)
    }
body.p-assessment .wwarn.sel {
    border-color: #e6cf95;
    background: var(--warn-bg)
    }
body.p-assessment .wwarn.sel .rb {
    border-color: var(--warn);
    background: var(--warn)
    }
body.p-assessment .wbad.sel {
    border-color: #e6b2b6;
    background: var(--bad-bg)
    }
body.p-assessment .wbad.sel .rb {
    border-color: var(--bad);
    background: var(--bad)
    }
body.p-assessment .wizrow {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 26px;
    align-items: center
    }
body.p-assessment .region {
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ink-soft);
    margin: 16px 0 8px
    }
body.p-assessment .region:first-child {
    margin-top: 0
    }
body.p-assessment .jgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 9px
    }
@media (max-width: 620px) {
    body.p-assessment .jgrid {
        grid-template-columns: repeat(2, 1fr)
        }
    }
body.p-assessment .jcard {
    border: 1.5px solid var(--line);
    border-radius: 11px;
    padding: 11px 12px;
    cursor: pointer;
    transition: 0.13s;
    position: relative;
    background: #fff
    }
body.p-assessment .jcard:hover {
    border-color: #c9d9ec;
    background: #fcfdff
    }
body.p-assessment .jcard.on {
    border-color: var(--brand);
    background: var(--brand-soft)
    }
body.p-assessment .jcard .flag {
    font-size: 18px
    }
body.p-assessment .jcard .jname {
    font-weight: 700;
    margin: 5px 0 1px;
    font-size: 13.5px
    }
body.p-assessment .jcard .jlaw {
    font-size: 11px;
    color: var(--ink-soft);
    line-height: 1.35
    }
body.p-assessment .jcard .check {
    position: absolute;
    top: 9px;
    right: 9px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    border: 1.5px solid var(--line);
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 12px
    }
body.p-assessment .jcard.on .check {
    background: var(--brand);
    border-color: var(--brand)
    }
body.p-assessment .mnote {
    font-size: 12.5px;
    color: var(--lock);
    background: var(--lock-bg);
    border: 1px solid #e3d9f5;
    border-radius: 9px;
    padding: 9px 12px;
    margin-top: 14px
    }
body.p-assessment .score-hero {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 24px;
    align-items: center
    }
@media (max-width: 600px) {
    body.p-assessment .score-hero {
        grid-template-columns: 1fr;
        text-align: center
        }
    }
body.p-assessment .gauge {
    position: relative;
    width: 170px;
    height: 170px;
    margin: 0 auto
    }
body.p-assessment .gauge svg {
    transform: rotate(-90deg)
    }
body.p-assessment .gauge .val {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center
    }
body.p-assessment .gauge .val b {
    font-size: 38px;
    line-height: 1;
    letter-spacing: -1px
    }
body.p-assessment .gauge .val span {
    font-size: 11.5px;
    color: var(--ink-soft);
    display: block;
    margin-top: 3px
    }
body.p-assessment .band {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 9px
    }
body.p-assessment .risklead h2 {
    margin: 0 0 6px;
    font-size: 21px
    }
body.p-assessment .risklead p {
    margin: 0;
    color: var(--ink-soft);
    font-size: 14px
    }
body.p-assessment .kpis {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    margin: 18px 0 0
    }
body.p-assessment .kpi {
    flex: 1;
    min-width: 110px;
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 12px 14px;
    background: #fcfdff
    }
body.p-assessment .kpi b {
    font-size: 23px;
    display: block;
    letter-spacing: -0.5px
    }
body.p-assessment .kpi span {
    font-size: 11.5px;
    color: var(--ink-soft)
    }
body.p-assessment .card h2 {
    margin: 0 0 6px;
    font-size: 19px;
    letter-spacing: -0.3px
    }
body.p-assessment .card .sub {
    color: var(--ink-soft);
    font-size: 14px;
    margin: 0 0 16px
    }
body.p-assessment .jbar {
    display: grid;
    grid-template-columns: 150px 1fr 48px;
    gap: 11px;
    align-items: center;
    padding: 8px 0;
    border-top: 1px solid var(--line-soft)
    }
@media (max-width: 600px) {
    body.p-assessment .jbar {
        grid-template-columns: 104px 1fr 40px
        }
    }
body.p-assessment .jbar .jn {
    font-weight: 600;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px
    }
body.p-assessment .track {
    height: 9px;
    background: var(--line-soft);
    border-radius: 999px;
    overflow: hidden
    }
body.p-assessment .track > i {
    display: block;
    height: 100%;
    border-radius: 999px
    }
body.p-assessment .jbar .pct {
    text-align: right;
    font-weight: 700;
    font-size: 13px
    }
body.p-assessment .gaphdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 4px 0;
    flex-wrap: wrap;
    gap: 8px
    }
body.p-assessment .filterrow {
    display: flex;
    gap: 6px;
    flex-wrap: wrap
    }
body.p-assessment .chip {
    font-size: 12px;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 999px;
    padding: 5px 11px;
    cursor: pointer;
    color: var(--ink-soft);
    font-weight: 600
    }
body.p-assessment .chip.on {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink)
    }
body.p-assessment .gap {
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 14px 15px;
    margin: 10px 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 13px;
    align-items: start
    }
body.p-assessment .sev {
    width: 7px;
    border-radius: 6px;
    align-self: stretch;
    min-height: 34px
    }
body.p-assessment .sev.high {
    background: var(--bad)
    }
body.p-assessment .sev.med {
    background: var(--warn)
    }
body.p-assessment .sev.low {
    background: var(--good)
    }
body.p-assessment .gap .gtitle {
    font-weight: 650;
    font-size: 14px;
    margin: 0 0 3px
    }
body.p-assessment .gap .gwhat {
    font-size: 12.5px;
    color: var(--ink-soft);
    margin: 0
    }
body.p-assessment .gap .gjur {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-top: 8px
    }
body.p-assessment .gjur .jt {
    font-size: 10.5px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 6px;
    background: var(--brand-soft);
    color: var(--brand)
    }
body.p-assessment .sevlabel {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap
    }
body.p-assessment .sevlabel.high {
    color: var(--bad)
    }
body.p-assessment .sevlabel.med {
    color: var(--warn)
    }
body.p-assessment .sevlabel.low {
    color: var(--good)
    }
body.p-assessment .deliver {
    font-size: 11.5px;
    color: var(--brand);
    background: var(--brand-soft);
    border-radius: 7px;
    padding: 5px 9px;
    margin-top: 8px;
    display: inline-block
    }
/* market-specific locked teasers */
body.p-assessment .lockcard {
    border: 1px solid #e3d9f5;
    background: linear-gradient(180deg, #fbf9ff, #fff);
    border-radius: 14px;
    padding: 22px;
    margin: 20px 0
    }
body.p-assessment .lockcard h2 {
    margin: 0 0 4px;
    font-size: 19px
    }
body.p-assessment .lockhdr {
    display: flex;
    align-items: center;
    gap: 8px
    }
body.p-assessment .lockbadge {
    font-size: 11px;
    font-weight: 800;
    color: var(--lock);
    background: var(--lock-bg);
    border: 1px solid #e3d9f5;
    padding: 3px 9px;
    border-radius: 999px
    }
body.p-assessment .flagrow {
    border-top: 1px solid #efe9fb;
    padding: 12px 0;
    display: flex;
    gap: 11px;
    align-items: flex-start
    }
body.p-assessment .flagrow:first-of-type {
    border-top: 0
    }
body.p-assessment .flagmk {
    font-size: 12px;
    font-weight: 800;
    color: var(--lock);
    white-space: nowrap;
    min-width: 112px;
    display: flex;
    align-items: center;
    gap: 5px
    }
@media (max-width: 560px) {
    body.p-assessment .flagmk {
        min-width: 0
        }
    body.p-assessment .flagrow {
        flex-direction: column;
        gap: 4px
        }
    }
body.p-assessment .flagtx {
    font-size: 13px;
    color: var(--ink-soft)
    }
body.p-assessment .lockcta {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 16px;
    flex-wrap: wrap
    }
body.p-assessment .lockcta .note {
    font-size: 12px;
    color: var(--ink-soft)
    }
body.p-assessment .tiers {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 13px;
    margin-top: 4px
    }
@media (max-width: 720px) {
    body.p-assessment .tiers {
        grid-template-columns: 1fr
        }
    }
body.p-assessment .tier {
    border: 1.5px solid var(--line);
    border-radius: 14px;
    padding: 19px;
    display: flex;
    flex-direction: column;
    background: #fff;
    position: relative
    }
body.p-assessment .tier.feature {
    border-color: var(--brand);
    box-shadow: 0 10px 30px rgba(31, 78, 121, 0.13)
    }
body.p-assessment .tier .ribbon {
    position: absolute;
    top: -11px;
    left: 19px;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 999px
    }
body.p-assessment .tier h3 {
    margin: 0 0 2px;
    font-size: 16px
    }
body.p-assessment .tier .price {
    font-size: 12.5px;
    color: var(--ink-soft);
    margin: 0 0 12px;
    font-weight: 600
    }
body.p-assessment .tier ul {
    list-style: none;
    padding: 0;
    margin: 0 0 15px;
    flex: 1
    }
body.p-assessment .tier li {
    font-size: 12.5px;
    padding: 5px 0 5px 22px;
    position: relative;
    color: var(--ink-soft)
    }
body.p-assessment .tier li:before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--good);
    font-weight: 800
    }
body.p-assessment .tier li.off {
    color: #b9bdc9
    }
body.p-assessment .tier li.off:before {
    content: "-";
    color: #c9cdd8
    }
body.p-assessment footer {
    color: var(--ink-soft);
    font-size: 12px;
    text-align: center;
    padding: 26px 0 46px;
    line-height: 1.7
    }
body.p-assessment .disclaimer {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 13px 15px;
    font-size: 12px;
    color: var(--ink-soft);
    margin: 16px 0
    }
body.p-assessment .btnrow {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    align-items: center
    }
body.p-assessment .hidden {
    display: none !important
    }
body.p-assessment .overlay {
    position: fixed;
    inset: 0;
    background: rgba(16, 22, 38, 0.55);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 50;
    padding: 20px
    }
body.p-assessment .overlay.on {
    display: flex
    }
body.p-assessment .modal {
    background: #fff;
    border-radius: 16px;
    max-width: 440px;
    width: 100%;
    padding: 26px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3);
    position: relative
    }
body.p-assessment .modal h3 {
    margin: 0 0 4px;
    font-size: 19px
    }
body.p-assessment .modal p.msub {
    margin: 0 0 16px;
    color: var(--ink-soft);
    font-size: 13.5px
    }
body.p-assessment .modal label {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-soft);
    display: block;
    margin: 0 0 3px
    }
body.p-assessment .field {
    margin-bottom: 11px
    }
body.p-assessment .two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px
    }
@media (max-width: 520px) {
    body.p-assessment .two {
        grid-template-columns: 1fr
        }
    }
body.p-assessment .consent {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    font-size: 12px;
    color: var(--ink-soft);
    margin: 6px 0 16px
    }
body.p-assessment .consent input {
    margin-top: 2px
    }
body.p-assessment .mclose {
    position: absolute;
    top: 14px;
    right: 16px;
    cursor: pointer;
    color: var(--ink-soft);
    font-size: 20px;
    background: none;
    border: 0
    }
body.p-assessment .req {
    color: var(--bad)
    }
/* ---- mobile-first refinements ---- */
@media (max-width: 600px) {
    body.p-assessment .wrap {
        padding: 0 15px
        }
    body.p-assessment .top-inner {
        padding: 12px 15px
        }
    body.p-assessment .card {
        padding: 18px 15px;
        margin: 16px 0
        }
    body.p-assessment .hero {
        padding: 28px 0 4px
        }
    body.p-assessment .hero h1 {
        font-size: 24px
        }
    body.p-assessment .hero p {
        font-size: 15px
        }
    body.p-assessment .startsteps {
        gap: 6px
        }
    body.p-assessment .qcat {
        margin-bottom: 10px
        }
    body.p-assessment .qtext {
        font-size: 19px
        }
    body.p-assessment .qhint {
        font-size: 14px;
        margin-bottom: 18px
        }
    body.p-assessment .qcard {
        min-height: auto
        }
    body.p-assessment .wizrow {
        padding-top: 20px
        }
    body.p-assessment .optbig {
        padding: 14px 15px
        }
    body.p-assessment .score-hero {
        gap: 14px
        }
    body.p-assessment .gauge {
        width: 150px;
        height: 150px
        }
    body.p-assessment .kpis {
        gap: 7px
        }
    body.p-assessment .kpi {
        min-width: 92px;
        padding: 10px 12px
        }
    body.p-assessment .kpi b {
        font-size: 20px
        }
    body.p-assessment .lockcard, body.p-assessment .tier {
        padding: 16px
        }
    body.p-assessment .gap {
        grid-template-columns: auto 1fr;
        gap: 11px
        }
    body.p-assessment .gap .sevlabel {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px
        }
    body.p-assessment .btn.lg {
        padding: 14px 22px;
        font-size: 15px
        }
    body.p-assessment .modal {
        padding: 20px
        }
    body.p-assessment footer {
        padding: 22px 0 40px
        }
    }
@media (max-width: 380px) {
    body.p-assessment .hero h1 {
        font-size: 21px
        }
    body.p-assessment .qtext {
        font-size: 18px
        }
    }
@media print {
    body.p-assessment .btnrow, body.p-assessment .tiers, body.p-assessment .tag, body.p-assessment .overlay, body.p-assessment .dl-actions, body.p-assessment .wizrow, body.p-assessment .lockcta {
        display: none !important
        }
    body.p-assessment .card, body.p-assessment .lockcard {
        box-shadow: none;
        break-inside: avoid;
        border-color: #ccc
        }
    }
body.p-assessment h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em
    }
body.p-assessment h2, body.p-assessment h3 {
    font-family: "Sora", sans-serif
    }
body.p-assessment .wm {
    font-family: "Sora", sans-serif;
    letter-spacing: 0.01em
    }
body.p-assessment .wm small {
    text-transform: none;
    letter-spacing: 0
    }
body.p-assessment .mxscroll {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 10px
    }
body.p-assessment #mxTable {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
    min-width: 100%
    }
body.p-assessment #mxTable th, body.p-assessment #mxTable td {
    padding: 0;
    text-align: center
    }
body.p-assessment #mxTable thead th {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 6
    }
body.p-assessment #mxTable .ch {
    position: sticky;
    left: 0;
    z-index: 8;
    background: #fff;
    text-align: left;
    min-width: 200px;
    max-width: 200px;
    border-right: 1px solid var(--line);
    border-bottom: 2px solid var(--brand-soft, #e7f2ec);
    padding: 7px 9px
    }
body.p-assessment #mxTable .mh {
    min-width: 78px;
    max-width: 78px;
    padding: 6px 3px;
    vertical-align: bottom;
    border-bottom: 2px solid var(--brand-soft, #e7f2ec)
    }
body.p-assessment #mxTable .mh .f {
    font-size: 15px
    }
body.p-assessment #mxTable .mh .n {
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.1;
    margin-top: 2px
    }
body.p-assessment #mxTable .mh .s {
    font-size: 13px;
    font-weight: 800;
    margin-top: 2px
    }
body.p-assessment #mxTable td.cc {
    position: sticky;
    left: 0;
    z-index: 4;
    background: #fff;
    text-align: left;
    min-width: 200px;
    max-width: 200px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid #eef0f5;
    padding: 6px 9px
    }
body.p-assessment #mxTable td.cc .id {
    font-size: 9.5px;
    font-weight: 800;
    color: var(--brand)
    }
body.p-assessment #mxTable td.cc .nm {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.15
    }
body.p-assessment #mxTable td.cx {
    min-width: 78px;
    max-width: 78px;
    height: 38px;
    border-left: 1px solid #f1f3f7;
    border-bottom: 1px solid #eef0f5;
    position: relative
    }
body.p-assessment #mxTable td.cx .g {
    position: absolute;
    top: 1px;
    right: 3px;
    font-size: 8.5px;
    font-weight: 800;
    opacity: 0.5
    }
body.p-assessment #mxTable td.cx .i {
    font-size: 14px;
    font-weight: 800
    }
body.p-assessment .mx-ok {
    background: #e3f4ea;
    color: #1f7a4d
    }
body.p-assessment .mx-part {
    background: #fdf3dc;
    color: #c08a1e
    }
body.p-assessment .mx-crit {
    background: #f7dde0;
    color: #a3323b
    }
body.p-assessment .mx-high {
    background: #fbe6d8;
    color: #c85a26
    }
body.p-assessment .mx-med {
    background: #fdf6dd;
    color: #b8971f
    }
body.p-assessment .mx-low {
    background: #e9eff2;
    color: #5a7d8c
    }
body.p-assessment .mx-na {
    background: #f6f7fa;
    color: #c2c8d2
    }
body.p-assessment .mx-un {
    background: repeating-linear-gradient(45deg, #fafbfd, #fafbfd 5px, #f1f3f7 5px, #f1f3f7 10px);
    color: #9aa2b0
    }
body.p-assessment .mxlegend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 11px;
    font-size: 11.5px;
    color: var(--ink-soft, #5a6472)
    }
body.p-assessment .mxlegend .k {
    display: inline-flex;
    align-items: center;
    gap: 5px
    }
body.p-assessment .mxlegend .sw {
    width: 13px;
    height: 13px;
    border-radius: 3px;
    display: inline-block
    }

/* ===== cancel.html ===== */
body.p-cancel .confirm {
    min-height: 62vh;
    display: grid;
    place-items: center;
    padding: 56px 24px
    }
body.p-cancel .confirm-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow-lg);
    max-width: 500px;
    width: 100%;
    padding: 40px;
    text-align: center
    }
body.p-cancel .confirm-card img {
    height: 32px;
    width: auto;
    display: block;
    margin: 0 auto 18px
    }
body.p-cancel .confirm-card h1 {
    font-size: 25px;
    font-weight: 800;
    margin: 0 0 10px
    }
body.p-cancel .confirm-card p {
    color: var(--muted);
    font-size: 15px;
    margin: 8px 0 0
    }
body.p-cancel .confirm-card .btn {
    margin-top: 18px;
    justify-content: center
    }
body.p-cancel .ghost-link {
    display: inline-block;
    margin-top: 12px;
    color: var(--green-deep);
    font-weight: 600;
    font-size: 14px
    }

/* ===== client.html ===== */
body.p-client {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --brand-soft: #e6f4ec;
    --accent: #e0982a;
    --ink: #0f2338;
    --soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --good: #1f7a4d;
    --good-bg: #e3f4ea;
    --warn: #c08a1e;
    --warn-bg: #fdf3dc;
    --bad: #a3323b;
    --bad-bg: #f7dde0
    }
body.p-client {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.55
    }
body.p-client .wm {
    font-weight: 800;
    font-size: 19px
    }
body.p-client .wm .a {
    color: #1c466d;
    font-weight: 800
    }
body.p-client .wm .b {
    color: var(--brand);
    font-weight: 600
    }
body.p-client .wm small {
    display: block;
    font-weight: 500;
    color: var(--soft);
    font-size: 10.5px
    }
body.p-client .acct {
    max-width: 760px;
    margin: 0 auto;
    padding: 28px 20px 60px
    }
body.p-client h1 {
    font-size: 22px;
    margin: 0 0 4px
    }
body.p-client .lead {
    color: var(--soft);
    font-size: 14px;
    margin: 0 0 18px
    }
body.p-client .card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px;
    margin: 0 0 16px
    }
body.p-client .card h2 {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-dark);
    margin: 0 0 10px
    }
body.p-client .ordcard {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 0;
    margin: 0 0 18px;
    overflow: hidden
    }
body.p-client .ordhead {
    background: #f8fafc;
    border-bottom: 1px solid var(--line);
    padding: 14px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px
    }
body.p-client .ordref {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 700;
    color: var(--brand-dark)
    }
body.p-client .ordbody {
    padding: 16px 18px
    }
body.p-client .sec {
    padding: 12px 0;
    border-top: 1px solid #f1f3f7
    }
body.p-client .sec:first-child {
    border-top: 0;
    padding-top: 0
    }
body.p-client .sec h3 {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--soft);
    margin: 0 0 8px
    }
body.p-client label.fl {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--soft);
    margin: 0 0 4px
    }
body.p-client .inp {
    width: 100%;
    border: 1.5px solid var(--line);
    border-radius: 9px;
    padding: 11px 12px;
    font-size: 14px;
    font-family: inherit
    }
body.p-client .field {
    margin: 0 0 12px
    }
body.p-client .btn {
    border: 0;
    border-radius: 10px;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
    display: inline-block
    }
body.p-client .btn.primary {
    background: var(--brand);
    color: #fff
    }
body.p-client .btn.ghost {
    background: #fff;
    border: 1.5px solid var(--line);
    color: var(--ink)
    }
body.p-client .btn.sm {
    padding: 8px 14px;
    font-size: 13.5px
    }
body.p-client .btn.block {
    width: 100%;
    text-align: center
    }
body.p-client .hp {
    position: absolute;
    left: -9999px
    }
body.p-client .err {
    color: var(--bad);
    font-size: 13px;
    margin-top: 8px;
    display: none
    }
body.p-client .okmsg {
    color: var(--good);
    font-size: 14px;
    margin-top: 10px;
    display: none
    }
body.p-client .chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 6px
    }
body.p-client .chip {
    background: var(--brand-soft);
    color: var(--brand-dark);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 600
    }
body.p-client .kv {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    font-size: 14px;
    margin: 2px 0
    }
body.p-client .kv b {
    color: var(--soft);
    font-weight: 600
    }
body.p-client .badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 999px
    }
body.p-client .b-good {
    background: var(--good-bg);
    color: var(--good)
    }
body.p-client .b-warn {
    background: var(--warn-bg);
    color: var(--warn)
    }
body.p-client .b-bad {
    background: var(--bad-bg);
    color: var(--bad)
    }
body.p-client .b-mut {
    background: #eef0f4;
    color: var(--soft)
    }
body.p-client .note {
    font-size: 12.5px;
    color: var(--soft)
    }
body.p-client .muted {
    color: var(--soft)
    }
body.p-client details {
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 10px 12px;
    margin-top: 8px
    }
body.p-client details summary {
    cursor: pointer;
    font-weight: 650;
    font-size: 14px
    }
body.p-client table.rt {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    margin-top: 6px
    }
body.p-client table.rt th, body.p-client table.rt td {
    border-bottom: 1px solid #eef0f5;
    padding: 5px 7px;
    text-align: left
    }
body.p-client .link {
    color: var(--brand-dark);
    cursor: pointer
    }
body.p-client .grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
    }
@media (max-width: 560px) {
    body.p-client .grid2 {
        grid-template-columns: 1fr
        }
    }
body.p-client .ok {
    color: var(--good);
    font-size: 13px;
    font-weight: 600
    }
body.p-client table.tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    margin-top: 6px
    }
body.p-client table.tbl th, body.p-client table.tbl td {
    border-bottom: 1px solid #eef0f5;
    padding: 6px 8px;
    text-align: left;
    vertical-align: top
    }
body.p-client table.tbl th {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--soft)
    }
body.p-client h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700
    }
body.p-client .wm {
    font-family: "Sora", system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.01em
    }
body.p-client .wm small {
    text-transform: none;
    letter-spacing: 0
    }

/* ===== cmp-console.html ===== */
/* Cookie consent console - reskinned to Living Matrix, class names preserved for app JS */
body.p-cmp-console {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --brand-soft: #e6f4ec;
    --ink-soft: #556579;
    --bg: #f3f6fb;
    --warn: #b4530b;
    --code: #0f2338
    }
body.p-cmp-console {
    background: var(--ground)
    }
body.p-cmp-console .acct-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
    font-family: "IBM Plex Mono";
    font-size: 12.5px;
    color: var(--muted);
    padding: 14px 0 0
    }
body.p-cmp-console .acct-bar a {
    color: var(--navy);
    font-weight: 600;
    margin-left: 14px
    }
body.p-cmp-console .wrap-app {
    max-width: 1080px;
    margin: 0 auto;
    padding: 8px 24px 64px
    }
body.p-cmp-console .wrap-app h1 {
    font-family: "Sora";
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 14px 0 4px
    }
body.p-cmp-console .sub {
    color: var(--muted);
    font-size: 15px;
    margin: 0 0 18px
    }
body.p-cmp-console .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: "Sora";
    font-weight: 600;
    text-decoration: none;
    font-size: 14px;
    padding: 10px 18px;
    border-radius: 11px;
    border: 1.5px solid var(--line-2);
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s
    }
body.p-cmp-console .btn:hover {
    transform: translatey(-1px)
    }
body.p-cmp-console .btn.primary {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3)
    }
body.p-cmp-console .btn.primary:hover {
    background: var(--green-deep)
    }
body.p-cmp-console .btn.sm {
    padding: 7px 13px;
    font-size: 13px;
    border-radius: 9px
    }
body.p-cmp-console .btn.warn {
    color: var(--warn);
    border-color: #f0d6bf;
    background: #fff
    }
body.p-cmp-console .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 14px 0;
    box-shadow: var(--shadow)
    }
body.p-cmp-console .sites {
    display: grid;
    gap: 12px
    }
body.p-cmp-console .site {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 18px;
    box-shadow: var(--shadow)
    }
body.p-cmp-console .site h3 {
    font-family: "Sora";
    margin: 0 0 2px;
    font-size: 16px;
    font-weight: 700
    }
body.p-cmp-console .site .meta {
    font-size: 12.5px;
    color: var(--muted);
    font-family: "IBM Plex Mono"
    }
body.p-cmp-console .site .meta code {
    background: var(--panel-2);
    border-radius: 5px;
    padding: 1px 6px
    }
body.p-cmp-console .site .acts {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
    }
body.p-cmp-console .pill {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    background: var(--green-soft);
    color: var(--green-deep);
    border-radius: 999px;
    padding: 3px 10px;
    margin-left: 8px
    }
body.p-cmp-console label.f {
    display: block;
    font-size: 13px;
    font-weight: 600;
    font-family: "Sora";
    margin: 12px 0 4px
    }
body.p-cmp-console input[type=text], body.p-cmp-console input[type=url], body.p-cmp-console select {
    width: 100%;
    padding: 10px 12px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font: inherit;
    font-size: 14px;
    background: #fff;
    color: var(--ink)
    }
body.p-cmp-console input[type=text]:focus, body.p-cmp-console input[type=url]:focus, body.p-cmp-console select:focus {
    outline: none;
    border-color: var(--green)
    }
body.p-cmp-console .frow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
    }
body.p-cmp-console .toggles {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    margin-top: 8px
    }
body.p-cmp-console .toggles label {
    font-size: 13.5px;
    display: flex;
    gap: 7px;
    align-items: center
    }
body.p-cmp-console .grid2 {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 20px
    }
@media (max-width: 820px) {
    body.p-cmp-console .grid2 {
        grid-template-columns: 1fr
        }
    body.p-cmp-console .frow {
        grid-template-columns: 1fr
        }
    }
body.p-cmp-console pre {
    background: var(--code);
    color: #dbe7f5;
    border-radius: 12px;
    padding: 14px 16px;
    overflow: auto;
    font-size: 12.5px;
    line-height: 1.6;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
    white-space: pre-wrap;
    word-break: break-all
    }
body.p-cmp-console .prev {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--panel-2);
    min-height: 280px
    }
body.p-cmp-console .prev iframe {
    width: 100%;
    height: 340px;
    border: 0;
    display: block;
    background: #fff
    }
body.p-cmp-console table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin-top: 8px
    }
body.p-cmp-console th, body.p-cmp-console td {
    border: 1px solid var(--line);
    padding: 8px 10px;
    text-align: left
    }
body.p-cmp-console th {
    background: var(--panel-2);
    font-family: "IBM Plex Mono";
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--faint)
    }
body.p-cmp-console .muted {
    color: var(--muted);
    font-size: 13px
    }
body.p-cmp-console .err {
    background: #fbece9;
    border: 1px solid #f3c9c2;
    color: #8a1c10;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    margin: 10px 0
    }
body.p-cmp-console .ok {
    background: var(--green-soft);
    border: 1px solid #bfe0cd;
    color: var(--green-deep);
    padding: 9px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    margin: 10px 0
    }
body.p-cmp-console .hide {
    display: none
    }
body.p-cmp-console h2.sec {
    font-family: "Sora";
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0 0 6px
    }
body.p-cmp-console .summ {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 8px 0
    }
body.p-cmp-console .summ .b {
    background: var(--panel-2);
    border-radius: 12px;
    padding: 9px 14px;
    font-size: 13px;
    font-family: "IBM Plex Mono";
    color: var(--muted)
    }
body.p-cmp-console .summ .b b {
    font-family: "Sora";
    font-size: 17px;
    display: block;
    color: var(--ink)
    }
body.p-cmp-console {
    margin: 0;
    font-family: system-ui, Arial;
    background: #fff;
    color: #8794a6
    }
body.p-cmp-console .p {
    padding: 26px 22px
    }

/* ===== cmp.html ===== */
body.p-cmp .code-block {
    background: var(--ink);
    color: #dbe7f5;
    border: 1px solid var(--navy-deep);
    border-radius: 14px;
    padding: 18px 20px;
    overflow-x: auto;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
    font-size: 13px;
    line-height: 1.65;
    margin: 12px 0
    }
body.p-cmp .code-block .t {
    color: #8fe0b4
    }
body.p-cmp .code-block .a {
    color: #e5c07b
    }
body.p-cmp .code-block .cm {
    color: #7f93a8
    }
body.p-cmp .embed-wrap {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    padding: 28px;
    margin-top: 40px
    }
body.p-cmp .embed-wrap h3 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 4px
    }
body.p-cmp .embed-wrap .note {
    font-size: 13.5px;
    color: var(--muted);
    margin: 0
    }
body.p-cmp .mkt-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 40px
    }
@media (max-width: 900px) {
    body.p-cmp .mkt-grid {
        grid-template-columns: repeat(2, 1fr)
        }
    }
@media (max-width: 520px) {
    body.p-cmp .mkt-grid {
        grid-template-columns: 1fr
        }
    }
body.p-cmp .mk-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
    transition: transform 0.2s, border-color 0.2s
    }
body.p-cmp .mk-card:hover {
    transform: translatey(-3px);
    border-color: var(--line-2)
    }
body.p-cmp .mk-card .flag {
    font-family: "IBM Plex Mono";
    font-size: 11.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--green-deep)
    }
body.p-cmp .mk-card h4 {
    font-size: 16px;
    font-weight: 700;
    margin: 8px 0 6px
    }
body.p-cmp .mk-card p {
    font-size: 13.5px;
    color: var(--muted);
    margin: 0
    }

/* ===== compare.html ===== */
/* page-specific: comparison tables */
body.p-compare .tablewrap {
    margin-top: 40px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    overflow-x: auto
    }
body.p-compare table.cmpt {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    min-width: 720px
    }
body.p-compare table.cmpt th, body.p-compare table.cmpt td {
    padding: 14px 18px;
    text-align: left;
    border-bottom: 1px solid var(--line);
    vertical-align: top
    }
body.p-compare table.cmpt thead th {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--faint);
    background: var(--panel-2)
    }
body.p-compare table.cmpt thead th.pm {
    background: var(--green);
    color: #fff
    }
body.p-compare table.cmpt td.featc {
    font-family: "Sora";
    font-weight: 600;
    color: var(--ink);
    width: 34%
    }
body.p-compare table.cmpt td.pm {
    background: var(--green-soft)
    }
body.p-compare table.cmpt tr:last-child td {
    border-bottom: 0
    }
body.p-compare .yes {
    color: var(--green-deep);
    font-weight: 700
    }
body.p-compare .no {
    color: #c14b39;
    font-weight: 700
    }
body.p-compare .part {
    color: #8a6212;
    font-weight: 700
    }
body.p-compare .cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 40px
    }
@media (max-width: 820px) {
    body.p-compare .cols {
        grid-template-columns: 1fr
        }
    }
body.p-compare .ccard {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px;
    box-shadow: var(--shadow);
    transition: transform 0.2s, border-color 0.2s
    }
body.p-compare .ccard:hover {
    transform: translatey(-3px);
    border-color: var(--line-2)
    }
body.p-compare .ccard h3 {
    font-size: 18px;
    font-weight: 700
    }
body.p-compare .ccard p {
    color: var(--muted);
    font-size: 14.5px;
    margin: 12px 0 0
    }
body.p-compare .bench {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow);
    padding: 36px;
    margin-top: 12px
    }
@media (max-width: 640px) {
    body.p-compare .bench {
        padding: 26px
        }
    }
body.p-compare .bench h2 {
    font-size: clamp(23px, 3vw, 30px);
    font-weight: 700
    }
body.p-compare .bench .lede {
    font-size: 16px;
    color: var(--muted);
    max-width: 720px;
    margin: 12px 0 0
    }
body.p-compare .bench .tablewrap {
    margin-top: 26px;
    box-shadow: none;
    border-color: var(--line)
    }
body.p-compare .bench table.cmpt {
    min-width: 560px
    }
body.p-compare .bench td b {
    color: var(--ink)
    }
body.p-compare .note {
    font-size: 13px;
    color: var(--faint);
    margin-top: 16px;
    max-width: 64em
    }
body.p-compare .disc {
    font-size: 12.5px;
    color: var(--faint);
    margin-top: 22px;
    max-width: 64em
    }

/* ===== dpa.html ===== */
body.p-dpa .subhero {
    position: relative;
    padding: 54px 0 6px;
    border-bottom: 1px solid var(--line);
    background: var(--panel);
    overflow: hidden
    }
body.p-dpa .subhero .wrap {
    max-width: 900px
    }
body.p-dpa .subhero h1 {
    font-size: clamp(30px, 4.4vw, 46px);
    font-weight: 800;
    line-height: 1.1;
    margin-top: 12px
    }
body.p-dpa .subhero .meta {
    color: var(--muted);
    font-size: 13.5px;
    margin-top: 14px;
    font-family: "IBM Plex Mono", ui-monospace, monospace
    }
body.p-dpa .prose {
    max-width: 820px;
    margin: 0 auto;
    padding: 40px 24px 24px
    }
body.p-dpa .prose h2 {
    font-size: 19px;
    font-weight: 700;
    margin: 30px 0 6px;
    padding-top: 20px;
    border-top: 1px solid var(--line)
    }
body.p-dpa .prose h2:first-of-type {
    border-top: 0;
    padding-top: 4px
    }
body.p-dpa .prose h3 {
    font-size: 15px;
    font-weight: 600;
    margin: 16px 0 4px
    }
body.p-dpa .prose p {
    margin: 11px 0;
    color: var(--ink)
    }
body.p-dpa .prose ul, body.p-dpa .prose ol {
    margin: 11px 0;
    padding-left: 22px;
    color: var(--ink)
    }
body.p-dpa .prose li {
    margin: 5px 0
    }
body.p-dpa .prose a {
    color: var(--green-deep);
    font-weight: 600
    }
body.p-dpa .prose table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 14px 0;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden
    }
body.p-dpa .prose th, body.p-dpa .prose td {
    text-align: left;
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    vertical-align: top
    }
body.p-dpa .prose th {
    background: var(--panel-2);
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    font-weight: 600
    }
body.p-dpa .prose tr:last-child td {
    border-bottom: 0
    }
body.p-dpa .callout {
    background: var(--green-soft);
    border: 1px solid #cbe6d6;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
    font-size: 14.5px
    }
body.p-dpa .toc {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 20px;
    margin: 18px 0 6px;
    font-size: 14px
    }
body.p-dpa .toc a {
    color: var(--green-deep);
    text-decoration: none;
    font-weight: 600
    }
body.p-dpa .toc ol {
    columns: 2;
    column-gap: 26px;
    margin: 8px 0 0
    }
@media (max-width: 560px) {
    body.p-dpa .toc ol {
        columns: 1
        }
    }
body.p-dpa .back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 26px;
    font-family: "Sora", sans-serif;
    font-weight: 600;
    color: var(--green-deep)
    }

/* ===== dsar-console.html ===== */
/* Data request tracker - reskinned to Living Matrix, class names preserved for app JS */
body.p-dsar-console {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --brand-soft: #e6f4ec;
    --ink-soft: #556579;
    --bg: #f3f6fb;
    --red: #b3261e;
    --amber: #a86400;
    --redb: #fbe6e3;
    --amberb: #fbf0d8
    }
body.p-dsar-console {
    background: var(--ground)
    }
body.p-dsar-console .acct-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
    font-family: "IBM Plex Mono";
    font-size: 12.5px;
    color: var(--muted);
    padding: 14px 0 0
    }
body.p-dsar-console .acct-bar a {
    color: var(--navy);
    font-weight: 600;
    margin-left: 14px
    }
body.p-dsar-console .wrap-app {
    max-width: 1080px;
    margin: 0 auto;
    padding: 8px 24px 64px
    }
body.p-dsar-console .wrap-app h1 {
    font-family: "Sora";
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 14px 0 4px
    }
body.p-dsar-console .sub {
    color: var(--muted);
    font-size: 15px;
    margin: 0 0 18px
    }
body.p-dsar-console .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: "Sora";
    font-weight: 600;
    text-decoration: none;
    font-size: 14px;
    padding: 10px 16px;
    border-radius: 11px;
    border: 1.5px solid var(--line-2);
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s
    }
body.p-dsar-console .btn:hover {
    transform: translatey(-1px)
    }
body.p-dsar-console .btn.primary {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3)
    }
body.p-dsar-console .btn.primary:hover {
    background: var(--green-deep)
    }
body.p-dsar-console .btn.sm {
    padding: 6px 12px;
    font-size: 13px;
    border-radius: 9px
    }
body.p-dsar-console .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 14px 0;
    box-shadow: var(--shadow)
    }
body.p-dsar-console .link-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 6px
    }
body.p-dsar-console input[type=text], body.p-dsar-console input[type=email], body.p-dsar-console input[type=number], body.p-dsar-console select, body.p-dsar-console textarea {
    padding: 10px 12px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font: inherit;
    font-size: 14px;
    background: #fff;
    color: var(--ink)
    }
body.p-dsar-console input:focus, body.p-dsar-console select:focus, body.p-dsar-console textarea:focus {
    outline: none;
    border-color: var(--green)
    }
body.p-dsar-console .link-row input {
    flex: 1;
    min-width: 240px;
    font-size: 13px;
    font-family: "IBM Plex Mono"
    }
body.p-dsar-console .summ {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 6px 0 2px
    }
body.p-dsar-console .summ .b {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px 18px;
    font-family: "IBM Plex Mono";
    font-size: 12.5px;
    color: var(--muted);
    box-shadow: var(--shadow)
    }
body.p-dsar-console .summ .b b {
    font-family: "Sora";
    font-size: 24px;
    display: block;
    color: var(--ink);
    letter-spacing: -0.02em
    }
body.p-dsar-console .summ .b.red b {
    color: var(--red)
    }
body.p-dsar-console table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px
    }
body.p-dsar-console th, body.p-dsar-console td {
    border-bottom: 1px solid var(--line);
    padding: 10px;
    text-align: left;
    vertical-align: middle
    }
body.p-dsar-console th {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--faint)
    }
body.p-dsar-console tr.req {
    cursor: pointer
    }
body.p-dsar-console tr.req:hover {
    background: var(--panel-2)
    }
body.p-dsar-console .st {
    display: inline-block;
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    padding: 3px 10px;
    background: var(--panel-2);
    color: var(--muted)
    }
body.p-dsar-console .st.new {
    background: var(--green-soft);
    color: var(--green-deep)
    }
body.p-dsar-console .st.in_progress {
    background: #e3edf7;
    color: #1a4a72
    }
body.p-dsar-console .st.completed {
    background: #e9f6ee;
    color: #1f7a49
    }
body.p-dsar-console .st.rejected {
    background: #f1eef0;
    color: #6b5560
    }
body.p-dsar-console .st.on_hold {
    background: #f3ecff;
    color: #5a3ea8
    }
body.p-dsar-console .st.verifying {
    background: #fff6e6;
    color: #8a6100
    }
body.p-dsar-console .due {
    font-weight: 700;
    font-family: "Sora"
    }
body.p-dsar-console .due.over {
    color: var(--red)
    }
body.p-dsar-console .due.soon {
    color: var(--amber)
    }
body.p-dsar-console .vbadge {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    color: #1f7a49
    }
body.p-dsar-console .vbadge.no {
    color: var(--muted)
    }
body.p-dsar-console .muted {
    color: var(--muted);
    font-size: 13px
    }
body.p-dsar-console .err {
    background: var(--redb);
    border: 1px solid #f3c9c2;
    color: #8a1c10;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    margin: 10px 0
    }
body.p-dsar-console .ok {
    background: var(--green-soft);
    border: 1px solid #bfe0cd;
    color: var(--green-deep);
    padding: 9px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    margin: 10px 0
    }
body.p-dsar-console .hide {
    display: none
    }
body.p-dsar-console h2.sec {
    font-family: "Sora";
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0 0 8px
    }
body.p-dsar-console .log {
    margin-top: 10px;
    border-left: 2px solid var(--line);
    padding-left: 14px
    }
body.p-dsar-console .log .e {
    margin-bottom: 12px
    }
body.p-dsar-console .log .e .when {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    color: var(--muted)
    }
body.p-dsar-console .log .e .tx {
    font-size: 13.5px
    }
body.p-dsar-console .grid2 {
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 20px
    }
@media (max-width: 820px) {
    body.p-dsar-console .grid2 {
        grid-template-columns: 1fr
        }
    }
body.p-dsar-console .frow {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 8px
    }
body.p-dsar-console .set-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 6px
    }
body.p-dsar-console .set-grid label {
    font-size: 12.5px;
    font-weight: 600;
    display: block
    }
body.p-dsar-console .set-grid input {
    width: 100%
    }
body.p-dsar-console .rights-row {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 8px
    }
body.p-dsar-console .rights-row label {
    font-size: 13px;
    display: flex;
    gap: 6px;
    align-items: center
    }

/* ===== dsar.html ===== */
body.p-dsar .clock-panel {
    max-width: 940px;
    margin: 46px auto 0
    }
body.p-dsar .clock-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px
    }
@media (max-width: 640px) {
    body.p-dsar .clock-row {
        grid-template-columns: 1fr
        }
    }
body.p-dsar .clock-cell {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    text-align: left
    }
body.p-dsar .clock-cell .lbl {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--faint)
    }
body.p-dsar .clock-cell .dl {
    font-family: "Sora";
    font-weight: 800;
    font-size: 26px;
    letter-spacing: -0.02em;
    margin-top: 4px
    }
body.p-dsar .clock-cell.ok .dl {
    color: var(--green-deep)
    }
body.p-dsar .clock-cell.soon .dl {
    color: #a86400
    }
body.p-dsar .clock-cell.over .dl {
    color: #b3261e
    }
body.p-dsar .clock-cell .meta {
    font-size: 12.5px;
    color: var(--muted);
    margin-top: 4px
    }

/* ===== for-platforms.html ===== */
body.p-for-platforms .feat-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-top: 40px
    }
@media (max-width: 760px) {
    body.p-for-platforms .feat-grid {
        grid-template-columns: 1fr
        }
    }
body.p-for-platforms .feat-grid .b-card p {
    max-width: none
    }

/* ===== intake.html ===== */
body.p-intake {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --brand-soft: #e6f4ec;
    --accent: #e0982a;
    --ink: #0f2338;
    --soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --navy: #1a4a72;
    --navy-soft: #e9f1f9;
    --good: #1f7a4d;
    --good-bg: #e3f4ea;
    --warn: #c08a1e;
    --warn-bg: #fdf3dc;
    --bad: #a3323b;
    --bad-bg: #f7dde0
    }
body.p-intake * {
    box-sizing: border-box
    }
body.p-intake {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.5
    }
body.p-intake a {
    color: var(--brand-dark)
    }
/* progress sub-bar (below the shared header) */
body.p-intake .intakebar {
    background: #fff;
    border-bottom: 1px solid var(--line)
    }
body.p-intake .intakebar-in {
    padding: 11px 20px 13px
    }
body.p-intake .wm {
    font-family: "Sora", sans-serif;
    font-weight: 800;
    font-size: 18px
    }
body.p-intake .wm .a {
    color: #1c466d;
    font-weight: 800
    }
body.p-intake .wm .b {
    color: var(--brand);
    font-weight: 600
    }
body.p-intake .mkbar {
    font-size: 12.5px;
    color: var(--soft);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
    }
body.p-intake .mkbar .lk {
    font-size: 11px;
    font-weight: 700;
    color: var(--brand-dark);
    background: var(--brand-soft);
    border-radius: 999px;
    padding: 3px 9px
    }
body.p-intake .mkbar .fl {
    font-size: 15px
    }
body.p-intake .prog {
    height: 6px;
    background: #e9edf3;
    border-radius: 999px;
    margin-top: 10px;
    overflow: hidden
    }
body.p-intake .prog i {
    display: block;
    height: 100%;
    background: var(--brand);
    width: 0;
    transition: width 0.35s
    }
body.p-intake .steplab {
    font-size: 11.5px;
    color: var(--soft);
    margin-top: 6px;
    font-weight: 600
    }
/* body */
body.p-intake .wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 22px 20px 130px
    }
body.p-intake h1 {
    font-size: 23px;
    margin: 2px 0 4px;
    letter-spacing: -0.2px
    }
body.p-intake .sub {
    color: var(--soft);
    font-size: 14px;
    margin: 0 0 18px
    }
body.p-intake .card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 18px;
    margin: 0 0 14px;
    box-shadow: 0 1px 2px rgba(20, 30, 50, 0.03)
    }
body.p-intake .field {
    margin: 0 0 15px
    }
body.p-intake label.fl {
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin: 0 0 3px
    }
body.p-intake .req {
    color: var(--bad);
    font-weight: 800;
    margin-left: 2px
    }
body.p-intake .opt {
    font-size: 11px;
    font-weight: 600;
    color: var(--soft);
    margin-left: 6px
    }
body.p-intake .ex {
    font-size: 12px;
    color: var(--soft);
    margin: 0 0 6px
    }
body.p-intake .inp, body.p-intake select, body.p-intake textarea {
    width: 100%;
    border: 1.6px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 15px;
    font-family: inherit;
    color: var(--ink);
    background: #fff
    }
body.p-intake .inp:focus, body.p-intake textarea:focus, body.p-intake select:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-soft)
    }
body.p-intake .inp.bad {
    border-color: var(--bad)
    }
body.p-intake textarea {
    min-height: 46px;
    resize: vertical
    }
body.p-intake .two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
    }
@media (max-width: 560px) {
    body.p-intake .two {
        grid-template-columns: 1fr
        }
    }
/* toggles */
body.p-intake .seg {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px
    }
body.p-intake .seg button {
    border: 1.6px solid var(--line);
    background: #fff;
    border-radius: 10px;
    padding: 9px 16px;
    font-size: 14px;
    font-weight: 650;
    cursor: pointer;
    color: var(--ink);
    font-family: inherit
    }
body.p-intake .seg button.on {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff
    }
body.p-intake .seg.yn button.on[data-v=yes] {
    background: var(--good);
    border-color: var(--good)
    }
body.p-intake .seg.yn button.on[data-v=no] {
    background: var(--bad);
    border-color: var(--bad)
    }
body.p-intake .seg.ans button.on[data-v=yes] {
    background: var(--good);
    border-color: var(--good);
    color: #fff
    }
body.p-intake .seg.ans button.on[data-v=partial] {
    background: var(--warn);
    border-color: var(--warn);
    color: #fff
    }
body.p-intake .seg.ans button.on[data-v=no] {
    background: var(--bad);
    border-color: var(--bad);
    color: #fff
    }
body.p-intake .seg.ans button.on[data-v=na] {
    background: var(--soft);
    border-color: var(--soft);
    color: #fff
    }
body.p-intake .chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
    }
body.p-intake .chip {
    border: 1.6px solid var(--line);
    background: #fff;
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    user-select: none
    }
body.p-intake .chip.on {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff
    }
/* repeatable rows */
body.p-intake .rows .row {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px;
    margin: 0 0 12px;
    position: relative;
    background: #fcfdff
    }
body.p-intake .rows .row .rm {
    position: absolute;
    top: 10px;
    right: 11px;
    border: 0;
    background: #f3e2e4;
    color: var(--bad);
    border-radius: 7px;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 9px;
    cursor: pointer
    }
body.p-intake .addbtn {
    border: 1.6px dashed var(--brand);
    background: #fff;
    color: var(--brand-dark);
    border-radius: 11px;
    padding: 11px 16px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    width: 100%
    }
body.p-intake .rowtitle {
    font-size: 12px;
    font-weight: 800;
    color: var(--soft);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 10px
    }
/* detailed q */
body.p-intake .dq {
    border: 1px solid var(--line);
    border-left: 3px solid var(--brand);
    border-radius: 12px;
    padding: 14px;
    margin: 0 0 12px;
    background: #fff
    }
body.p-intake .dq.off {
    border-left-color: #d7dbe4;
    background: #fbfcfe
    }
body.p-intake .dq .qt {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35
    }
body.p-intake .dq .qr {
    font-size: 12.5px;
    color: var(--soft);
    margin: 4px 0 8px
    }
body.p-intake .dq .applies {
    font-size: 11.5px;
    color: var(--soft);
    margin: 0 0 9px
    }
body.p-intake .dq .applies b {
    color: var(--brand-dark)
    }
body.p-intake .newtag {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    color: #9a6a12;
    background: #fdefd8;
    border-radius: 5px;
    padding: 2px 7px;
    margin-left: 4px
    }
body.p-intake details.more {
    margin-top: 8px
    }
body.p-intake details.more summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--brand-dark);
    font-size: 13px
    }
/* review */
body.p-intake .revsec {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px;
    margin: 0 0 12px
    }
body.p-intake .revsec h3 {
    margin: 0 0 6px;
    font-size: 14px
    }
body.p-intake .revsec .k {
    font-size: 13px;
    color: var(--soft)
    }
body.p-intake .missing {
    background: var(--bad-bg);
    border: 1px solid #eec4c8;
    border-radius: 12px;
    padding: 14px;
    margin: 0 0 14px
    }
body.p-intake .missing h3 {
    margin: 0 0 6px;
    font-size: 14px;
    color: var(--bad)
    }
body.p-intake .missing li {
    margin: 3px 0;
    font-size: 13.5px
    }
body.p-intake .missing a {
    cursor: pointer;
    font-weight: 700
    }
body.p-intake .consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    color: var(--soft)
    }
/* footer nav */
body.p-intake .navbar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(6px);
    border-top: 1px solid var(--line);
    z-index: 30
    }
body.p-intake .nav-in {
    max-width: 720px;
    margin: 0 auto;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 10px
    }
body.p-intake .btn {
    border: 0;
    border-radius: 11px;
    padding: 13px 22px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit
    }
body.p-intake .btn.primary {
    background: var(--brand);
    color: #fff
    }
body.p-intake .btn.ghost {
    background: #fff;
    border: 1.6px solid var(--line);
    color: var(--ink)
    }
body.p-intake .btn:disabled {
    opacity: 0.5;
    cursor: default
    }
body.p-intake .savehint {
    font-size: 11.5px;
    color: var(--soft);
    margin-left: auto;
    text-align: right
    }
body.p-intake .center {
    text-align: center
    }
body.p-intake .big-ok {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--good-bg);
    display: grid;
    place-items: center;
    margin: 8px auto 12px
    }
body.p-intake .hp {
    position: absolute;
    left: -9999px
    }
body.p-intake h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em
    }
body.p-intake .wm {
    font-family: "Sora", sans-serif;
    letter-spacing: 0.01em
    }
body.p-intake .wm small {
    text-transform: none;
    letter-spacing: 0
    }

/* ===== methodology.html ===== */
/* page-specific: methodology */
body.p-methodology .prose p {
    font-size: 16.5px;
    color: var(--muted);
    margin: 16px 0 0;
    max-width: 60em
    }
body.p-methodology .prose p:first-child {
    margin-top: 0
    }
body.p-methodology .prose b {
    color: var(--ink)
    }
body.p-methodology .grades {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
    margin-top: 36px
    }
body.p-methodology .grade {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 20px 18px;
    box-shadow: var(--shadow)
    }
body.p-methodology .gb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 10px;
    border-radius: 10px;
    font-family: "IBM Plex Mono";
    font-weight: 600;
    font-size: 15px;
    margin-bottom: 12px
    }
body.p-methodology .gb.r {
    background: var(--green-soft);
    color: var(--green-deep)
    }
body.p-methodology .gb.e {
    background: #eaf5ef;
    color: #2f9160;
    border: 1px solid #cfe8da
    }
body.p-methodology .gb.p {
    background: #fbf1de;
    color: #8a6212
    }
body.p-methodology .gb.o {
    background: #eef0f4;
    color: #5a6474
    }
body.p-methodology .gb.na {
    background: #f0f4f9;
    color: var(--faint)
    }
body.p-methodology .grade b {
    display: block;
    font-family: "Sora";
    font-weight: 700;
    font-size: 15.5px;
    color: var(--ink)
    }
body.p-methodology .grade span.d {
    display: block;
    font-size: 13.5px;
    color: var(--muted);
    margin-top: 5px;
    line-height: 1.5
    }
body.p-methodology .dt-wrap {
    margin-top: 32px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    overflow-x: auto
    }
body.p-methodology table.dt {
    border-collapse: collapse;
    width: 100%;
    min-width: 640px;
    font-size: 14.5px
    }
body.p-methodology table.dt th, body.p-methodology table.dt td {
    padding: 15px 18px;
    text-align: left;
    border-bottom: 1px solid var(--line);
    vertical-align: top
    }
body.p-methodology table.dt thead th {
    font-family: "IBM Plex Mono";
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--panel-2)
    }
body.p-methodology table.dt tbody th {
    font-family: "Sora";
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap
    }
body.p-methodology table.dt tr:last-child td, body.p-methodology table.dt tr:last-child th {
    border-bottom: 0
    }
body.p-methodology .pgrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
    margin-top: 36px
    }
body.p-methodology .panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 22px 20px;
    box-shadow: var(--shadow)
    }
body.p-methodology .panel h3 {
    font-size: 16.5px;
    font-weight: 700
    }
body.p-methodology .panel p {
    color: var(--muted);
    font-size: 14.5px;
    margin: 9px 0 0
    }
body.p-methodology .callout {
    background: var(--navy-soft);
    border: 1px solid #d3e3f2;
    border-radius: 16px;
    padding: 20px 24px;
    font-size: 15.5px;
    color: var(--ink);
    margin-top: 22px;
    line-height: 1.62
    }
body.p-methodology .callout b {
    color: var(--navy-deep)
    }
body.p-methodology .note {
    font-size: 13.5px;
    color: var(--faint);
    margin-top: 18px;
    max-width: 60em
    }
body.p-methodology .note a {
    color: var(--navy);
    font-weight: 600
    }

/* ===== monitoring.html ===== */
body.p-monitoring .loop {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 40px
    }
@media (max-width: 820px) {
    body.p-monitoring .loop {
        grid-template-columns: 1fr 1fr
        }
    }
@media (max-width: 520px) {
    body.p-monitoring .loop {
        grid-template-columns: 1fr
        }
    }
body.p-monitoring .lc {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 22px;
    position: relative
    }
body.p-monitoring .lc .n {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--navy-soft);
    color: var(--navy);
    font-family: "Sora";
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    margin-bottom: 14px
    }
body.p-monitoring .lc h3 {
    font-family: "Sora";
    font-weight: 700;
    font-size: 17px;
    margin: 0 0 7px
    }
body.p-monitoring .lc p {
    margin: 0;
    font-size: 14px;
    color: var(--muted)
    }
body.p-monitoring .mk {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 40px
    }
@media (max-width: 820px) {
    body.p-monitoring .mk {
        grid-template-columns: 1fr 1fr
        }
    }
body.p-monitoring .mkc {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px
    }
body.p-monitoring .mkc .flag {
    font-family: "IBM Plex Mono";
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--green-deep)
    }
body.p-monitoring .mkc p {
    margin: 8px 0 0;
    font-size: 14px;
    color: var(--muted)
    }
body.p-monitoring .split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 40px
    }
@media (max-width: 760px) {
    body.p-monitoring .split {
        grid-template-columns: 1fr
        }
    }
body.p-monitoring .scard {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 28px
    }
body.p-monitoring .scard.feat {
    border-color: var(--green);
    box-shadow: 0 0 0 3px var(--green-soft), var(--shadow)
    }
body.p-monitoring .scard h3 {
    font-family: "Sora";
    font-weight: 700;
    font-size: 19px;
    margin: 0 0 14px
    }
body.p-monitoring .scard ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
    }
body.p-monitoring .scard li {
    display: flex;
    gap: 11px;
    font-size: 14.5px;
    color: var(--muted)
    }
body.p-monitoring .scard li svg {
    flex: 0 0 auto;
    color: var(--green);
    margin-top: 3px
    }
body.p-monitoring .note {
    font-size: 13.5px;
    color: var(--muted);
    margin-top: 20px
    }

/* ===== partner.html ===== */
body.p-partner .apply-grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 24px;
    margin-top: 40px;
    align-items: start
    }
@media (max-width: 860px) {
    body.p-partner .apply-grid {
        grid-template-columns: 1fr
        }
    }
body.p-partner .models3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px
    }
body.p-partner .models3 .m {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px
    }
body.p-partner .models3 .m h3 {
    font-size: 15px;
    font-weight: 700
    }
body.p-partner .models3 .m p {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--muted)
    }
body.p-partner .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    padding: 28px
    }
body.p-partner label {
    font-family: "IBM Plex Mono", monospace;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--faint);
    display: block;
    margin: 0 0 6px
    }
body.p-partner .field {
    margin-bottom: 15px
    }
body.p-partner .two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
    }
@media (max-width: 520px) {
    body.p-partner .two {
        grid-template-columns: 1fr
        }
    }
body.p-partner input, body.p-partner select {
    width: 100%;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    padding: 12px 14px;
    font-size: 15px;
    font-family: "IBM Plex Sans", sans-serif;
    background: #fff;
    color: var(--ink);
    transition: border-color 0.15s
    }
body.p-partner input:focus, body.p-partner select:focus {
    outline: none;
    border-color: var(--green)
    }
body.p-partner .hp {
    position: absolute;
    left: -9999px
    }
body.p-partner #p_submit {
    width: 100%;
    justify-content: center;
    margin-top: 4px
    }
body.p-partner .msg {
    margin-top: 14px;
    font-size: 14px;
    color: var(--muted)
    }
body.p-partner .ok {
    background: var(--green-soft);
    border: 1px solid #bfe3cd;
    border-radius: 14px;
    padding: 20px;
    color: var(--green-deep)
    }
body.p-partner .ok b {
    font-size: 18px;
    font-family: "Sora", sans-serif
    }
body.p-partner .ok a {
    color: var(--navy);
    font-weight: 600
    }
body.p-partner .foot-note {
    margin-top: 16px;
    font-size: 13px;
    color: var(--muted)
    }
body.p-partner .foot-note a {
    color: var(--navy);
    font-weight: 600
    }

/* ===== partners.html ===== */
body.p-partners .grid3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 40px
    }
@media (max-width: 820px) {
    body.p-partners .grid3 {
        grid-template-columns: 1fr
        }
    }
body.p-partners .grid3 .pcard .k {
    color: var(--green-deep)
    }
body.p-partners .calc {
    max-width: 660px;
    margin: 40px auto 0;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 28px;
    box-shadow: var(--shadow)
    }
body.p-partners .calc-head {
    font-family: "Sora", sans-serif;
    font-weight: 700;
    font-size: 20px;
    text-align: center;
    margin-bottom: 20px;
    color: var(--ink)
    }
body.p-partners .calc-row {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--muted);
    font-size: 14px;
    margin-bottom: 14px
    }
body.p-partners .calc-row label {
    flex: none;
    width: 180px
    }
body.p-partners .calc-row input[type=range] {
    flex: 1;
    accent-color: var(--green);
    height: 4px
    }
body.p-partners .calc-val {
    width: 34px;
    text-align: right;
    font-weight: 700;
    color: var(--ink);
    font-family: "IBM Plex Mono", monospace
    }
body.p-partners .calc-models {
    display: flex;
    gap: 8px;
    margin: 8px 0 18px
    }
body.p-partners .cmodel {
    flex: 1;
    border: 1.5px solid var(--line);
    background: #fff;
    color: var(--muted);
    border-radius: 11px;
    padding: 11px 6px;
    font-family: "Sora", sans-serif;
    font-weight: 600;
    font-size: 13.5px;
    cursor: pointer;
    transition: 0.15s
    }
body.p-partners .cmodel:hover {
    border-color: var(--green)
    }
body.p-partners .cmodel.on {
    background: var(--green);
    border-color: var(--green);
    color: #fff
    }
body.p-partners .calc-out {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: var(--green-soft);
    border: 1px solid #cfe6d9;
    border-radius: 12px
    }
body.p-partners .calc-out span {
    color: var(--muted);
    font-size: 14px
    }
body.p-partners .calc-out b {
    font-family: "Sora", sans-serif;
    font-weight: 800;
    font-size: 30px;
    color: var(--green-deep)
    }
body.p-partners .calc-note {
    color: var(--faint);
    font-size: 12px;
    margin-top: 14px;
    line-height: 1.55
    }
@media (max-width: 560px) {
    body.p-partners .calc-row {
        flex-wrap: wrap
        }
    body.p-partners .calc-row label {
        width: 100%
        }
    body.p-partners .calc-val {
        width: auto
        }
    }

/* ===== portal.html ===== */
body.p-portal {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --accent: #e0982a;
    --ink: #0f2338;
    --soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --good: #1f7a4d;
    --bad: #a3323b
    }
body.p-portal {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--bg);
    color: var(--ink)
    }
body.p-portal a {
    color: var(--brand-dark)
    }
body.p-portal .appbar {
    background: #fff;
    border-bottom: 1px solid var(--line);
    padding: 14px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center
    }
body.p-portal .wm {
    font-weight: 800;
    font-size: 19px
    }
body.p-portal .wm .a {
    color: #1c466d;
    font-weight: 800
    }
body.p-portal .wm .b {
    color: var(--brand);
    font-weight: 600
    }
body.p-portal .appwrap {
    max-width: 1000px;
    margin: 0 auto;
    padding: 22px
    }
body.p-portal input, body.p-portal select, body.p-portal button, body.p-portal textarea {
    font-family: inherit;
    font-size: 14px
    }
body.p-portal input, body.p-portal select, body.p-portal textarea {
    border: 1.5px solid var(--line);
    border-radius: 8px;
    padding: 9px 12px;
    background: #fff
    }
body.p-portal button {
    background: var(--brand);
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 9px 16px;
    font-weight: 650;
    cursor: pointer
    }
body.p-portal button.ghost {
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line)
    }
body.p-portal .login {
    max-width: 380px;
    margin: 8vh auto;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 26px
    }
body.p-portal .login h2 {
    margin: 0 0 4px
    }
body.p-portal .login p {
    color: var(--soft);
    font-size: 13px;
    margin: 0 0 16px
    }
body.p-portal .field {
    margin-bottom: 12px
    }
body.p-portal .field label {
    font-size: 12px;
    font-weight: 650;
    color: var(--soft);
    display: block;
    margin-bottom: 4px
    }
body.p-portal .field input {
    width: 100%
    }
body.p-portal .err {
    color: var(--bad);
    font-weight: 650;
    font-size: 13px;
    min-height: 18px
    }
body.p-portal .stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 14px 0
    }
body.p-portal .stat {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 18px;
    min-width: 150px
    }
body.p-portal .stat b {
    font-size: 24px;
    display: block
    }
body.p-portal .stat span {
    font-size: 12px;
    color: var(--soft)
    }
body.p-portal .grp {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 16px
    }
body.p-portal .grp h3 {
    margin: 0 0 10px;
    font-size: 15px
    }
body.p-portal .linkbox {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap
    }
body.p-portal .linkbox input {
    flex: 1;
    min-width: 220px
    }
body.p-portal table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    font-size: 12.5px
    }
body.p-portal th, body.p-portal td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #eef0f6;
    white-space: nowrap;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis
    }
body.p-portal th {
    background: #eef0f6;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--soft)
    }
body.p-portal .pill {
    display: inline-block;
    font-family: inherit;
    border: 0;
    box-shadow: none;
    background: none;
    font-size: 10.5px;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 999px
    }
body.p-portal .paid, body.p-portal .complete {
    background: #e8f5ee;
    color: var(--good)
    }
body.p-portal .pending, body.p-portal .partial {
    background: #fbf3e2;
    color: #9a6b12
    }
body.p-portal .muted {
    color: #77808f
    }
body.p-portal .row {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 12px;
    align-items: center;
    padding: 8px 0;
    border-top: 1px solid #f1f2f6
    }
body.p-portal .row:first-child {
    border-top: 0
    }
body.p-portal .row label {
    font-size: 13px;
    font-weight: 650
    }
body.p-portal .wl {
    display: none
    }
body.p-portal .ok {
    color: var(--good);
    font-weight: 650;
    font-size: 13px
    }
body.p-portal h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700
    }
body.p-portal .wm {
    font-family: "Sora", system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.01em
    }
body.p-portal .wm small {
    text-transform: none;
    letter-spacing: 0
    }

/* ===== privacy.html ===== */
body.p-privacy .subhero {
    position: relative;
    padding: 54px 0 6px;
    border-bottom: 1px solid var(--line);
    background: var(--panel);
    overflow: hidden
    }
body.p-privacy .subhero .wrap {
    max-width: 900px
    }
body.p-privacy .subhero h1 {
    font-size: clamp(30px, 4.4vw, 46px);
    font-weight: 800;
    line-height: 1.1;
    margin-top: 12px
    }
body.p-privacy .subhero .meta {
    color: var(--muted);
    font-size: 13.5px;
    margin-top: 14px;
    font-family: "IBM Plex Mono", ui-monospace, monospace
    }
body.p-privacy .prose {
    max-width: 820px;
    margin: 0 auto;
    padding: 44px 24px 24px
    }
body.p-privacy .prose h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 34px 0 8px;
    padding-top: 22px;
    border-top: 1px solid var(--line)
    }
body.p-privacy .prose h2:first-of-type {
    border-top: 0;
    padding-top: 4px
    }
body.p-privacy .prose h3 {
    font-size: 16px;
    font-weight: 600;
    margin: 18px 0 4px
    }
body.p-privacy .prose p {
    margin: 11px 0;
    color: var(--ink)
    }
body.p-privacy .prose ul, body.p-privacy .prose ol {
    margin: 11px 0;
    padding-left: 22px;
    color: var(--ink)
    }
body.p-privacy .prose li {
    margin: 5px 0
    }
body.p-privacy .prose a {
    color: var(--green-deep);
    font-weight: 600
    }
body.p-privacy .prose table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 14px 0;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden
    }
body.p-privacy .prose th, body.p-privacy .prose td {
    text-align: left;
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    vertical-align: top
    }
body.p-privacy .prose th {
    background: var(--panel-2);
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    font-weight: 600
    }
body.p-privacy .prose tr:last-child td {
    border-bottom: 0
    }
body.p-privacy .callout {
    background: var(--green-soft);
    border: 1px solid #cbe6d6;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
    font-size: 14.5px
    }
body.p-privacy .note {
    background: #fff7e6;
    border: 1px solid #f3dca0;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
    font-size: 13.5px;
    color: #6b4e12
    }
body.p-privacy .edit {
    background: #fbf1de;
    border-bottom: 1px dashed #b9791a;
    padding: 0 2px;
    border-radius: 3px;
    font-style: normal
    }
body.p-privacy .back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 26px;
    font-family: "Sora", sans-serif;
    font-weight: 600;
    color: var(--green-deep)
    }

/* ===== questionnaire.html ===== */
body.p-questionnaire {
    --brand: #2f9160;
    --brand-dark: #1f7a49;
    --ink: #0f2338;
    --ink-soft: #556579;
    --line: #e2e8f1;
    --bg: #f3f6fb;
    --soft: #e6f4ec;
    --good: #1f7a49;
    --warn: #8a6212;
    --navy: #1a4a72;
    --navy-soft: #e9f1f9
    }
body.p-questionnaire * {
    box-sizing: border-box
    }
body.p-questionnaire {
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.6
    }
body.p-questionnaire a {
    color: var(--brand-dark)
    }
body.p-questionnaire .hero {
    background: linear-gradient(180deg, #fff, var(--bg));
    border-bottom: 1px solid var(--line)
    }
body.p-questionnaire .hero-in {
    max-width: 1180px;
    margin: 0 auto;
    padding: 44px 24px 30px
    }
body.p-questionnaire .eyebrow {
    display: inline-block;
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--brand-dark);
    background: var(--soft);
    padding: 6px 13px;
    border-radius: 999px
    }
body.p-questionnaire h1 {
    font-family: "Sora", sans-serif;
    font-weight: 700;
    font-size: clamp(27px, 3.4vw, 38px);
    margin: 16px 0 10px;
    line-height: 1.12;
    letter-spacing: -0.02em
    }
body.p-questionnaire .lead {
    font-size: 17px;
    color: var(--ink-soft);
    max-width: 720px;
    margin: 0
    }
body.p-questionnaire .wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 10px 24px 72px
    }
body.p-questionnaire .card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 24px 22px;
    margin: 18px 0;
    box-shadow: 0 1px 2px rgba(15, 35, 56, 0.04), 0 14px 44px rgba(18, 54, 90, 0.06)
    }
body.p-questionnaire label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 6px
    }
body.p-questionnaire textarea {
    width: 100%;
    min-height: 150px;
    font-family: inherit;
    font-size: 14.5px;
    padding: 12px 13px;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    resize: vertical;
    color: var(--ink)
    }
body.p-questionnaire .row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 12px
    }
body.p-questionnaire .btn {
    display: inline-block;
    border: 1.5px solid transparent;
    font-family: "Sora", sans-serif;
    font-weight: 600;
    font-size: 14.5px;
    padding: 12px 22px;
    border-radius: 11px;
    background: var(--brand);
    color: #fff;
    cursor: pointer;
    text-decoration: none
    }
body.p-questionnaire .btn.ghost {
    background: #fff;
    border: 1.5px solid var(--line);
    color: var(--ink)
    }
body.p-questionnaire .btn:disabled {
    opacity: 0.5;
    cursor: default
    }
body.p-questionnaire .note {
    font-size: 13px;
    color: var(--ink-soft)
    }
body.p-questionnaire .pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--soft);
    color: var(--brand-dark)
    }
body.p-questionnaire .summary {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    margin: 6px 0 14px
    }
body.p-questionnaire .qa {
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 16px 16px 12px;
    margin-bottom: 12px;
    background: #fff
    }
body.p-questionnaire .qa .q {
    font-weight: 700;
    font-size: 14.5px;
    margin-bottom: 8px
    }
body.p-questionnaire .qa .meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 8px
    }
body.p-questionnaire .cat {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef0f4;
    color: var(--ink-soft)
    }
body.p-questionnaire .conf {
    font-size: 11px;
    font-weight: 800;
    padding: 3px 9px;
    border-radius: 999px
    }
body.p-questionnaire .conf.high {
    background: #e3f4ea;
    color: var(--good)
    }
body.p-questionnaire .conf.medium {
    background: #fbf1de;
    color: var(--warn)
    }
body.p-questionnaire .conf.low {
    background: #fdeee0;
    color: #a85b1a
    }
body.p-questionnaire .conf.none {
    background: #fbe9e9;
    color: #b23b3b
    }
body.p-questionnaire .qa textarea {
    min-height: 74px;
    font-size: 14px
    }
body.p-questionnaire .msg {
    font-size: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    display: none;
    margin-top: 12px
    }
body.p-questionnaire .msg.err {
    display: block;
    background: #fbe9e9;
    color: #b23b3b
    }
body.p-questionnaire .hidden {
    display: none
    }
@media (max-width: 640px) {
    body.p-questionnaire h1 {
        font-size: 26px
        }
    }

/* ===== refer.html ===== */
body.p-refer .hidden {
    display: none !important
    }
body.p-refer .refer-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 40px
    }
@media (max-width: 760px) {
    body.p-refer .refer-steps {
        grid-template-columns: 1fr
        }
    }
body.p-refer .panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    padding: 34px;
    margin-top: 24px;
    text-align: center;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto
    }
body.p-refer .panel h2 {
    font-size: 24px;
    font-weight: 700
    }
body.p-refer .panel .p-lede {
    color: var(--muted);
    font-size: 15.5px;
    max-width: 52ch;
    margin: 8px auto 0
    }
body.p-refer .linkbox {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin-top: 18px
    }
body.p-refer .linkbox input {
    flex: 1;
    min-width: 260px;
    max-width: 520px;
    font-size: 14px;
    font-family: "IBM Plex Mono", monospace;
    padding: 12px 14px;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    background: #fff;
    color: var(--ink)
    }
body.p-refer .rf-stats {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap
    }
body.p-refer .rf-stat {
    background: var(--ground);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 24px;
    min-width: 150px
    }
body.p-refer .rf-stat .n {
    font-family: "Sora", sans-serif;
    font-weight: 800;
    font-size: 26px;
    color: var(--navy);
    line-height: 1
    }
body.p-refer .rf-stat .l {
    font-size: 12.5px;
    color: var(--muted);
    margin-top: 6px
    }

/* ===== rights-request.html ===== */
/* Public rights-request intake form - reskinned to Living Matrix, form + IDs preserved */
body.p-rights-request .rr-wrap {
    max-width: 640px;
    margin: 0 auto;
    padding: 48px 20px 72px
    }
body.p-rights-request .rr-wrap .card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 30px 30px 34px;
    box-shadow: var(--shadow-lg)
    }
body.p-rights-request .rr-wrap h1 {
    font-family: "Sora";
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 0 6px
    }
body.p-rights-request .sub {
    color: var(--muted);
    font-size: 15px;
    margin: 0 0 20px
    }
body.p-rights-request label.f {
    display: block;
    font-family: "Sora";
    font-size: 13.5px;
    font-weight: 600;
    margin: 16px 0 5px
    }
body.p-rights-request input[type=text], body.p-rights-request input[type=email], body.p-rights-request select, body.p-rights-request textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    font: inherit;
    font-size: 14.5px;
    background: #fff;
    color: var(--ink)
    }
body.p-rights-request input:focus, body.p-rights-request select:focus, body.p-rights-request textarea:focus {
    outline: none;
    border-color: var(--green)
    }
body.p-rights-request textarea {
    min-height: 96px;
    resize: vertical
    }
body.p-rights-request .hp {
    position: absolute;
    left: -9999px;
    top: -9999px
    }
body.p-rights-request .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: "Sora";
    font-weight: 600;
    font-size: 15px;
    padding: 13px 24px;
    border-radius: 12px;
    border: 0;
    background: var(--green);
    color: #fff;
    cursor: pointer;
    margin-top: 22px;
    box-shadow: 0 10px 26px rgba(47, 145, 96, 0.3);
    transition: transform 0.15s, background 0.15s
    }
body.p-rights-request .btn:hover {
    transform: translatey(-1px);
    background: var(--green-deep)
    }
body.p-rights-request .btn[disabled] {
    opacity: 0.6;
    cursor: default;
    transform: none
    }
body.p-rights-request .muted {
    color: var(--muted);
    font-size: 12.5px
    }
body.p-rights-request .err {
    background: #fbece9;
    border: 1px solid #f3c9c2;
    color: #8a1c10;
    padding: 10px 12px;
    border-radius: 11px;
    font-size: 13.5px;
    margin-top: 14px
    }
body.p-rights-request .done {
    text-align: center;
    padding: 14px 4px
    }
body.p-rights-request .done .ref {
    font-family: "IBM Plex Mono";
    font-size: 22px;
    font-weight: 600;
    color: var(--green-deep);
    letter-spacing: 0.02em;
    margin: 8px 0
    }
body.p-rights-request .badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: "IBM Plex Mono";
    background: var(--green-soft);
    color: var(--green-deep);
    border-radius: 999px;
    padding: 5px 13px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 12px
    }
body.p-rights-request .hide {
    display: none
    }
body.p-rights-request .foot {
    margin-top: 18px;
    font-family: "IBM Plex Mono";
    font-size: 11.5px;
    color: var(--faint);
    text-align: center
    }

/* ===== success.html ===== */
body.p-success .confirm {
    min-height: 62vh;
    display: grid;
    place-items: center;
    padding: 56px 24px
    }
body.p-success .confirm-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow-lg);
    max-width: 520px;
    width: 100%;
    padding: 40px;
    text-align: center
    }
body.p-success .confirm-card .pmlogo {
    height: 32px;
    width: auto;
    display: block;
    margin: 0 auto 22px
    }
body.p-success .wm {
    font-family: "Sora", sans-serif;
    font-weight: 800;
    font-size: 22px;
    margin-bottom: 20px
    }
body.p-success .wm .a {
    color: var(--navy)
    }
body.p-success .wm .b {
    color: var(--green)
    }
body.p-success .tick {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    background: var(--green-soft);
    display: grid;
    place-items: center;
    margin: 0 auto 18px
    }
body.p-success .confirm-card h1 {
    font-size: 26px;
    font-weight: 800;
    margin: 0 0 10px
    }
body.p-success .confirm-card p {
    color: var(--muted);
    font-size: 15px;
    margin: 8px 0
    }
body.p-success #intakeBtn {
    margin-top: 18px;
    justify-content: center;
    background: var(--brand, var(--green));
    color: #fff
    }
body.p-success .muted {
    font-size: 12.5px;
    color: var(--faint);
    margin-top: 14px
    }
body.p-success .lnk {
    color: var(--green-deep);
    font-weight: 600
    }

/* ===== terms.html ===== */
body.p-terms .subhero {
    position: relative;
    padding: 54px 0 6px;
    border-bottom: 1px solid var(--line);
    background: var(--panel);
    overflow: hidden
    }
body.p-terms .subhero .wrap {
    max-width: 900px
    }
body.p-terms .subhero h1 {
    font-size: clamp(30px, 4.4vw, 46px);
    font-weight: 800;
    line-height: 1.1;
    margin-top: 12px
    }
body.p-terms .subhero .meta {
    color: var(--muted);
    font-size: 13.5px;
    margin-top: 14px
    }
body.p-terms .prose {
    max-width: 820px;
    margin: 0 auto;
    padding: 44px 24px 24px
    }
body.p-terms .prose h2 {
    font-size: 19px;
    font-weight: 700;
    margin: 30px 0 6px;
    padding-top: 20px;
    border-top: 1px solid var(--line)
    }
body.p-terms .prose h2:first-of-type {
    border-top: 0;
    padding-top: 4px
    }
body.p-terms .prose p {
    margin: 11px 0;
    color: var(--ink)
    }
body.p-terms .prose a {
    color: var(--green-deep);
    font-weight: 600
    }
body.p-terms .note {
    background: #fff7e6;
    border: 1px solid #f3dca0;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 16px 0;
    font-size: 13.5px;
    color: #6b4e12
    }
body.p-terms .edit {
    background: #fbf1de;
    border-bottom: 1px dashed #b9791a;
    padding: 0 2px;
    border-radius: 3px;
    font-style: normal
    }

/* ===== trust.html ===== */
/* page-specific: trust center */
body.p-trust .updated {
    font-family: "IBM Plex Mono";
    font-size: 12.5px;
    color: var(--faint);
    margin-top: 18px
    }
body.p-trust .tgrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
    margin-top: 36px
    }
body.p-trust .tcard {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 22px 20px;
    box-shadow: var(--shadow);
    transition: transform 0.2s, border-color 0.2s
    }
body.p-trust .tcard:hover {
    transform: translatey(-3px);
    border-color: var(--line-2)
    }
body.p-trust .tcard h3 {
    font-size: 16.5px;
    font-weight: 700;
    margin-top: 2px
    }
body.p-trust .tcard p {
    color: var(--muted);
    font-size: 14px;
    margin: 9px 0 0
    }
body.p-trust .tcard p a, body.p-trust .panel p a, body.p-trust .note a {
    color: var(--navy);
    font-weight: 600
    }
body.p-trust .fic {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--navy-soft);
    color: var(--navy);
    margin-bottom: 14px
    }
body.p-trust .fic svg {
    width: 22px;
    height: 22px
    }
body.p-trust .feat {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px 24px;
    margin-top: 36px
    }
body.p-trust .feat .f {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px;
    box-shadow: var(--shadow)
    }
body.p-trust .feat .sic {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--green-soft);
    color: var(--green-deep);
    display: flex;
    align-items: center;
    justify-content: center
    }
body.p-trust .feat .sic svg {
    width: 19px;
    height: 19px
    }
body.p-trust .feat h4 {
    margin: 0;
    font-size: 15.5px;
    font-weight: 700
    }
body.p-trust .feat p {
    margin: 5px 0 0;
    font-size: 13.8px;
    color: var(--muted)
    }
body.p-trust .feat p a {
    color: var(--navy);
    font-weight: 600
    }
body.p-trust .kvs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 16px;
    margin-top: 32px
    }
body.p-trust .kv {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: var(--shadow)
    }
body.p-trust .kv .l {
    font-family: "IBM Plex Mono";
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--faint);
    margin-bottom: 6px
    }
body.p-trust .kv .v {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink)
    }
body.p-trust .dt-wrap {
    margin-top: 32px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow);
    overflow-x: auto
    }
body.p-trust table.dt {
    border-collapse: collapse;
    width: 100%;
    min-width: 680px;
    font-size: 14px
    }
body.p-trust table.dt th, body.p-trust table.dt td {
    padding: 14px 16px;
    text-align: left;
    border-bottom: 1px solid var(--line);
    vertical-align: top
    }
body.p-trust table.dt thead th {
    font-family: "IBM Plex Mono";
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--panel-2)
    }
body.p-trust table.dt tbody td:first-child {
    font-family: "Sora";
    font-weight: 700;
    color: var(--ink)
    }
body.p-trust table.dt tr:last-child td {
    border-bottom: 0
    }
body.p-trust .note {
    font-size: 13.5px;
    color: var(--faint);
    margin-top: 16px;
    max-width: 62em
    }
body.p-trust .sec-lede a {
    color: var(--navy);
    font-weight: 600
    }
/* ===== Shared chrome — authoritative (beats page-scoped generic rules like `a{}` / text-align) ===== */
header.top, header.top *{text-align:start}
footer, footer *{text-align:start}
header.top .nav-link{color:var(--ink) !important}
header.top .signin{color:var(--navy) !important}
footer .foot-blurb{color:var(--muted) !important}
footer .foot-col b{color:var(--ink) !important}
footer .foot-col a{color:var(--muted) !important}
footer .foot-col a:hover{color:var(--navy) !important}
footer .foot-bottom a{color:var(--navy) !important}

/* ============================================================
   Jurisdiction pages (privacy laws + AI laws) — Living Matrix
   Scoped under body.p-law; law-body classes namespaced lw-*.
   Legacy tokens remapped so inline var() references resolve.
   ============================================================ */
body.p-law{
  --brand:var(--green); --brand2:#43a273; --brand-dark:var(--green-deep);
  --brand-soft:var(--green-soft); --accent:#b9791a; --accent-dark:#8a6212;
  --ink-soft:var(--muted); --bg:var(--ground);
  background:var(--ground); color:var(--ink);
}
/* Hero */
body.p-law .lw-hero{background:linear-gradient(180deg,#fff 0%,var(--ground) 100%);border-bottom:1px solid var(--line)}
body.p-law .lw-heroin{max-width:1080px;margin:0 auto;padding:38px 24px 32px}
body.p-law .lw-crumb{font-size:13px;color:var(--muted);margin-bottom:14px}
body.p-law .lw-crumb a{color:var(--muted);text-decoration:none}
body.p-law .lw-crumb a:hover{color:var(--navy)}
body.p-law .lw-eyebrow{display:inline-block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep);background:var(--green-soft);border:1px solid #cfe6d9;padding:5px 12px;border-radius:999px}
body.p-law .lw-hero h1{font-family:"Sora",system-ui,sans-serif;font-weight:700;font-size:36px;line-height:1.12;letter-spacing:-.01em;color:var(--ink);margin:16px 0 12px;text-wrap:balance}
body.p-law .lw-flag{font-family:"Sora",sans-serif}
body.p-law .lw-lead{font-family:"IBM Plex Sans",sans-serif;font-size:17px;color:var(--muted);max-width:780px;margin:0 0 20px;line-height:1.6}
body.p-law .lw-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
body.p-law .lw-conf{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--green-deep);font-weight:600;margin-top:14px}
body.p-law .lw-conf svg{width:15px;height:15px;stroke:var(--green-deep)}
/* Content wrap */
body.p-law .lw-wrap{max-width:1080px;margin:0 auto;padding:8px 24px 64px}
/* Stats */
body.p-law .lw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:26px 0}
body.p-law .lw-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;box-shadow:var(--shadow)}
body.p-law .lw-stat .lw-n{font-family:"Sora",sans-serif;font-size:25px;font-weight:700;color:var(--navy);line-height:1.15;letter-spacing:-.01em}
body.p-law .lw-stat .lw-l{font-size:12.5px;color:var(--muted);margin-top:3px}
body.p-law .lw-callout{background:var(--green-soft);border:1px solid #cfe6d9;border-radius:12px;padding:14px 18px;margin:18px 0;font-size:14.5px;color:var(--ink)}
/* Section head */
body.p-law .lw-sech{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:34px 0 4px}
body.p-law .lw-sech h2{font-family:"Sora",sans-serif;font-weight:700;font-size:23px;color:var(--ink);margin:0;letter-spacing:-.01em}
body.p-law .lw-secsub{color:var(--muted);font-size:14px;margin:0 0 14px}
/* Legend */
body.p-law .lw-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:4px 0 8px}
body.p-law .lw-legend span{display:inline-flex;align-items:center;gap:6px}
/* Control-card grid */
body.p-law .lw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
body.p-law .lw-cc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 18px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s,transform .15s}
body.p-law a.lw-cc:hover{border-color:#bcd7c8;box-shadow:var(--shadow-lg);transform:translateY(-2px)}
body.p-law .lw-cc .lw-fam{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
body.p-law .lw-cc h4{font-family:"Sora",sans-serif;font-size:15.5px;font-weight:600;color:var(--ink);margin:4px 0 6px}
body.p-law .lw-cc p{margin:0 0 10px;font-size:13.5px;color:var(--muted);line-height:1.55}
body.p-law .lw-cc .lw-doc{font-size:12.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:9px}
body.p-law .lw-cc .lw-doc b{color:var(--ink);font-weight:600}
/* Grade badges */
body.p-law .lw-badge{display:inline-block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:3px 10px;border-radius:999px;white-space:nowrap}
body.p-law .lw-req{background:var(--green-soft);color:var(--green-deep);border:1px solid #cfe6d9}
body.p-law .lw-exp{background:#eef7f1;color:var(--green);border:1px solid #d8ebe0}
body.p-law .lw-pru{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #ecdcb4}
body.p-law .lw-opt{background:#eef1f6;color:var(--muted);border:1px solid var(--line)}
body.p-law .lw-na{background:#f4f6fb;color:var(--faint);border:1px solid var(--line)}
/* Conversion band */
body.p-law .lw-band{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff;border-radius:20px;padding:30px 28px;margin:36px 0 12px;box-shadow:var(--shadow-lg)}
body.p-law .lw-band h2{font-family:"Sora",sans-serif;font-weight:700;font-size:23px;margin:0 0 8px;color:#fff;letter-spacing:-.01em}
body.p-law .lw-band p{margin:0 0 18px;color:#d3e0ee;font-size:15px;max-width:700px;line-height:1.6}
body.p-law .lw-band .btn.green,body.p-law .lw-band .btn.primary{background:#fff;color:var(--navy)}
body.p-law .lw-band .btn.green:hover{background:#eef4fb}
/* Related markets */
body.p-law .lw-others{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
body.p-law .lw-others a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;text-decoration:none;color:var(--ink);transition:border-color .15s,color .15s}
body.p-law .lw-others a:hover{border-color:#bcd7c8;color:var(--green-deep)}
@media(max-width:640px){body.p-law .lw-hero h1{font-size:28px}}
