:root{
  --navy:#16304f;--accent:#2E6E8E;--accent2:#3d8bb0;--gold:#d99b2b;--goldd:#c2872018;
  --ink:#1c2733;--grey:#5c6b7a;--line:#e2e8f0;--light:#eef4f8;--bg:#f6f9fc;--card:#fff;
  --good:#16794d;--goodbg:#e7f4ee;--warn:#b0740f;--warnbg:#fdf3e2;--danger:#b03a3a;--dangerbg:#fceceb;
  --mark:#fff2c2;--mark2:#ffe58a;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
main{max-width:1080px;margin:0 auto;padding:0 22px}
/* topbar */
.topbar{display:flex;align-items:center;gap:14px;background:#fff;border-bottom:1px solid var(--line);
  padding:11px 22px;position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;color:var(--navy)}
.brand .logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#2E6E8E,#3d8bb0);
  display:grid;place-items:center;font-size:16px}
.brand small{font-weight:500;font-size:11.5px;color:var(--grey);margin-left:2px}
.sp{flex:1}
.jurform{display:flex;align-items:center;gap:6px;background:var(--light);padding:5px 10px;border-radius:9px}
.jurform .globe{font-size:13px}
.jurform select{border:none;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--navy);cursor:pointer;outline:none}
.navlink{font-weight:600;font-size:14px;color:var(--navy)}
.who{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.who.guest{background:#cbd5e1;color:#fff}
/* language toggle — the `langpill` shape from bidit-flower/templates/_base.html,
   restyled to Junior's tokens. The CURRENT language is a <span>, not a link:
   a toggle whose active side is clickable makes a reader wonder whether they
   are already in the language they are reading. */
.langpill{display:inline-flex;align-items:center;gap:2px;background:var(--light);
  border-radius:8px;padding:3px;font-size:12px;font-weight:700;letter-spacing:.3px}
.langpill a,.langpill span{padding:2px 7px;border-radius:6px;line-height:1.5}
.langpill a{color:var(--grey)}
.langpill a:hover{color:var(--navy);background:#fff}
.langpill .active{background:#fff;color:var(--navy);box-shadow:0 1px 2px #16304f14}
/* On a POST-rendered result the toggle is INERT — the long note in base.html
   says why. Greyed and unclickable rather than removed: a control that vanishes
   on some screens reads as a rendering fault, and the reader still has to be
   able to see which language they are in. */
.langpill .inert{display:inline-flex;align-items:center;gap:2px;padding:0;cursor:not-allowed}
.langpill .inert span{color:var(--grey);opacity:.7}
.langpill .inert .active{background:#fff;color:var(--navy);opacity:1;box-shadow:0 1px 2px #16304f14}
/* The line that says WHY a French page still carries English sentences. It is
   an explanation, not a warning — muted, never a banner. */
.lang-note{margin-bottom:8px;color:var(--grey);font-style:italic}
/* hero */
.hero{text-align:center;padding:60px 10px 30px}
.hero h1{font-size:38px;line-height:1.15;margin:0 0 16px;color:var(--navy);letter-spacing:-.6px;font-weight:800}
.hero .sub{max-width:640px;margin:0 auto 26px;color:var(--grey);font-size:16.5px}
.try{display:inline-block;background:var(--gold);color:#3a2a06;font-weight:800;padding:14px 24px;border-radius:12px;font-size:16px;box-shadow:0 4px 14px rgba(217,155,43,.28)}
.try:hover{filter:brightness(1.05)}
.trust{margin-top:16px;color:var(--grey);font-size:13px}
/* intents */
.intents{padding:30px 0 10px}
.intents h2{text-align:center;color:var(--navy);font-size:22px;margin:0 0 20px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:820px){.cards{grid-template-columns:1fr}}
.ic-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:block;color:var(--ink);transition:.15s}
.ic-card:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(20,48,79,.09);transform:translateY(-3px)}
.ic-card .ic{font-size:30px}
.ic-card h3{margin:12px 0 6px;color:var(--navy);font-size:18px}
.ic-card p{margin:0 0 14px;color:var(--grey);font-size:14px}
.ic-card .price{font-weight:800;color:var(--accent);font-size:15px}
/* why */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:34px 0 20px}
@media(max-width:820px){.why{grid-template-columns:1fr}}
.why .w{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:14px;color:var(--grey)}
.why .w b{color:var(--navy)}
/* workspace */
.work,.result{padding:28px 0 20px}
.back{font-size:13px;font-weight:600;color:var(--grey);display:inline-block;margin-bottom:14px}
.work h1{color:var(--navy);font-size:26px;margin:0 0 6px}
.sub{color:var(--grey);margin:0 0 18px}
textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:14px;font:inherit;font-size:14.5px;resize:vertical;background:#fff}
textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(46,110,142,.12)}
.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;align-items:center}
.go{background:var(--accent);color:#fff;border:none;font:inherit;font-weight:700;font-size:15px;padding:12px 22px;border-radius:11px;cursor:pointer}
.go:hover{background:var(--navy)}
.go.pay{background:var(--gold);color:#3a2a06}
.ghost{background:#fff;border:1.5px solid var(--line);color:var(--navy);font-weight:600;padding:11px 16px;border-radius:11px}
.note{color:var(--grey);font-size:13px;margin-top:12px}
.doctypes{display:grid;gap:10px;margin:6px 0}
.doctypes label{background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:13px 15px;font-size:14.5px;cursor:pointer;font-weight:600;color:var(--navy)}
.doctypes input{margin-right:8px}
/* result head */
.rhead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.rhead h1{color:var(--navy);font-size:24px;margin:0}
.chips{display:flex;gap:8px}
.chip{font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px}
.chip.d{background:var(--dangerbg);color:var(--danger)}.chip.n{background:var(--light);color:var(--grey)}.chip.g{background:var(--goodbg);color:var(--good)}
/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:18px 0 0}
.tab{padding:10px 16px;font-weight:600;font-size:14px;color:var(--grey);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.tab.on{color:var(--navy);border-bottom-color:var(--accent)}
.pane{display:none;padding-top:18px}.pane.on{display:block}
/* split doc/findings */
.split{display:grid;grid-template-columns:1fr 380px;gap:18px}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.doc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 26px;max-height:560px;overflow:auto}
.paper{font-family:Georgia,'Times New Roman',serif;font-size:14.5px;line-height:1.9;color:#22303d}
mark{background:var(--mark);padding:1px 2px;border-radius:3px;cursor:pointer;border-bottom:2px solid var(--mark2)}
mark.d{background:#fbdcda;border-bottom-color:var(--danger)}
mark.m{background:var(--mark);border-bottom-color:var(--gold)}
mark.active{box-shadow:0 0 0 3px rgba(217,155,43,.3)}
.findings{display:flex;flex-direction:column;gap:10px;max-height:560px;overflow:auto}
.fcard{background:#fff;border:1px solid var(--line);border-left-width:4px;border-radius:11px;padding:12px 14px;cursor:pointer}
.fcard.sev-high{border-left-color:var(--danger)}.fcard.sev-med{border-left-color:var(--warn)}.fcard.sev-low{border-left-color:var(--accent)}
.fcard.sel{box-shadow:0 4px 14px rgba(20,48,79,.12);border-color:var(--accent)}
.ftop{display:flex;align-items:center;gap:8px}
.sev{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px}
.sev.high{background:var(--dangerbg);color:var(--danger)}.sev.med{background:var(--warnbg);color:var(--warn)}.sev.low{background:var(--light);color:var(--accent)}
.fcard h4{margin:0;font-size:14px;color:var(--navy)}
.fbody{max-height:0;overflow:hidden;transition:.25s;font-size:13px}
.fcard.sel .fbody{max-height:360px;margin-top:8px}
.lr{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);margin:8px 0 2px}
.lr.good{color:var(--good)}
.fix{background:var(--goodbg);border-radius:7px;padding:8px 10px;color:#124e33;margin-top:4px}
/* gauges */
.gauges{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
@media(max-width:700px){.gauges{grid-template-columns:1fr}}
.gauge{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.gauge .k{font-size:13px;font-weight:700;color:var(--grey)}
.gauge .v{font-size:26px;font-weight:800;margin-top:4px}
.gauge .v.high{color:var(--danger)}.gauge .v.medium,.gauge .v.med{color:var(--warn)}.gauge .v.low{color:var(--good)}
.card2{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.card2 h3{margin:0 0 8px;color:var(--navy);font-size:15px}
.miss{padding:7px 0;border-top:1px solid var(--light);font-size:14px;color:#5a4a86}
.miss:first-of-type{border-top:none}
/* redline */
.rl{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 17px;margin-bottom:12px}
.rl .cl{font-weight:700;color:var(--navy);font-size:13px;margin-bottom:8px}
.rl .txt{font-family:Georgia,serif;font-size:14px;line-height:1.8}
.del{background:#fbe4e2;color:#a3352f;text-decoration:line-through;padding:0 2px;border-radius:3px}
.ins{background:#dff1e6;color:#12683f;padding:0 2px;border-radius:3px}
.why{font-size:12.5px;color:var(--grey);margin-top:8px}
/* memo */
.memo{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 28px;max-width:680px}
.memo h2{margin:0 0 2px;color:var(--navy);font-size:19px}
.memo .to{color:var(--grey);font-size:12.5px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.memo ol{padding-left:20px}.memo li{margin-bottom:6px}
/* draft + answer */
.draftout{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;max-width:720px}
.draftout .dl{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--good);font-weight:800;margin-bottom:10px}
.draftout .body{font-family:Georgia,serif;font-size:14.5px;line-height:1.9;color:#22303d}
.qtext{font-size:17px;color:var(--navy);font-weight:600;margin:6px 0 16px}
.answer{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;max-width:720px}
.answer .sources{margin-top:12px;font-size:13px;color:var(--grey)}
.answer .sources span{display:inline-block;background:var(--light);padding:2px 9px;border-radius:20px;margin:0 5px 5px 0}
/* paywall */
.paywall{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;text-align:center;max-width:520px;margin:20px auto}
.paywall .lock{font-size:34px}
.paywall h3{color:var(--navy);margin:8px 0 6px;font-size:20px}
.paywall p{color:var(--grey);margin:0 auto 16px;max-width:400px}
.paywall .tiny{font-size:12.5px;margin-top:12px}
/* pricing */
.pricing{padding:34px 0}
.pricing h1{color:var(--navy);font-size:30px;margin:0 0 8px;text-align:center}
.pricing .sub{text-align:center;max-width:600px;margin:0 auto 26px}
.pcards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:820px){.pcards{grid-template-columns:1fr 1fr}}
.pcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;text-align:center;position:relative}
.pcard.featured{border-color:var(--gold);box-shadow:0 6px 20px rgba(217,155,43,.18)}
.ribbon{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--gold);color:#3a2a06;font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px}
.pcard .pic{font-size:26px}
.pcard h3{color:var(--navy);font-size:16px;margin:8px 0 6px}
.pcard .amt{font-size:26px;font-weight:800;color:var(--navy)}
.pcard .amt span{font-size:13px;font-weight:600;color:var(--grey)}
.pcard p{font-size:12.5px;color:var(--grey);margin:8px 0 0}
.monthly{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--navy);color:#fff;border-radius:16px;padding:20px 26px;margin:20px 0}
.monthly h3{margin:0 0 4px;font-size:18px}
.monthly .sku{font-size:11px;background:rgba(255,255,255,.16);padding:2px 8px;border-radius:20px;margin-left:6px;font-weight:600}
.monthly p{margin:0;opacity:.9;font-size:14px}
.monthly .mprice{font-size:30px;font-weight:800;white-space:nowrap}
.monthly .mprice span{font-size:14px;font-weight:600;opacity:.85}
.fineprint{color:var(--grey);font-size:13px;text-align:center;max-width:640px;margin:16px auto}
.pricing .try{display:block;width:max-content;margin:6px auto 0}
/* hybrid plan: per-case vs monthly, shown in the customer's own numbers */
.pricing.narrow{max-width:680px;margin:0 auto}
.ptitle{color:var(--navy);font-size:17px;margin:26px 0 12px;text-align:center;
  text-transform:uppercase;letter-spacing:.8px;font-weight:700}
.pcard .incl{font-size:11.5px;color:var(--good);margin-top:10px;font-weight:600}
.monthly .incl{font-size:12.5px;opacity:.9;margin-top:8px;color:#cfe4ef}
.monthly .mbuy{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.monthly .onplan{font-size:12.5px;font-weight:700;background:rgba(255,255,255,.16);
  padding:5px 12px;border-radius:20px;white-space:nowrap}
.try.small{padding:9px 16px;font-size:14px;box-shadow:none}
.yourplan{border:1px solid var(--line);border-left:4px solid var(--good);
  background:var(--goodbg);border-radius:12px;padding:16px 20px;margin:0 auto 22px;max-width:680px}
.yourplan.warn{border-left-color:var(--warn);background:var(--warnbg)}
.yourplan h3{margin:0 0 6px;color:var(--navy);font-size:16px}
.yourplan .figures{margin:0 0 8px;font-size:14px;color:var(--ink)}
.yourplan .verdict{margin:0;font-size:13.5px;color:var(--grey);line-height:1.5}
.yourplan .try{margin:12px 0 0}
/* follow-up box — included questions on a case already paid for */
.followup{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:12px;padding:18px 20px;margin:22px 0 0}
.followup h3{margin:0 0 4px;color:var(--navy);font-size:16px}
.followup .tiny{font-size:12.5px;color:var(--grey);margin:0 0 10px}
.followup textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;resize:vertical}
.followup textarea:focus{outline:none;border-color:var(--accent)}
.followup form{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.followup.closed{border-left-color:var(--warn);background:var(--warnbg)}
/* internal: organisations already using Junior (land-and-expand signal) */
.orgtable{width:100%;border-collapse:collapse;margin:18px 0;background:#fff;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14px}
.orgtable th{text-align:left;background:var(--light);color:var(--navy);
  font-size:12px;text-transform:uppercase;letter-spacing:.6px;padding:10px 14px}
.orgtable td{padding:10px 14px;border-top:1px solid var(--line)}
.orgtable tr:hover td{background:var(--bg)}
.orgtable .tiny{color:var(--grey);font-size:12px}
/* footer */
.foot{max-width:1080px;margin:40px auto 0;padding:22px;border-top:1px solid var(--line);color:var(--grey);font-size:12.5px}
.foot .disc{margin-top:8px;color:#8a97a5}

/* Engine-failure banner (Jul 23 2026) — a failed analysis must be visibly
   distinct from a clean one, never a silent "0 findings". */
.engine-error{
  display:flex; flex-direction:column; gap:.35rem;
  margin:1rem 0; padding:.9rem 1.1rem;
  border:1px solid #d94a3d; border-left-width:4px; border-radius:8px;
  background:#fdf2f0; color:#7a2018; font-size:.95rem; line-height:1.45;
}
.engine-error b{ color:#a3271b; }
@media (prefers-color-scheme: dark){
  .engine-error{ background:#2a1512; color:#f3c6bf; border-color:#c0483a; }
  .engine-error b{ color:#ff9b8c; }
}

/* Truncated-but-real analysis: distinct from both success and failure. */
.engine-partial{
  margin:1rem 0; padding:.75rem 1.1rem;
  border:1px solid #d19a3c; border-left-width:4px; border-radius:8px;
  background:#fdf7ec; color:#6d4a12; font-size:.92rem; line-height:1.45;
}
.engine-partial b{ color:#8a5c10; }
@media (prefers-color-scheme: dark){
  .engine-partial{ background:#2a2113; color:#f0d7a8; border-color:#c08f38; }
  .engine-partial b{ color:#ffc971; }
}

/* Link into the professional workspace. Deliberately understated — it is a
   graduation path for entitled users, not a sales banner. */
.ws-link{
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.32rem .7rem; border-radius:8px;
  background:var(--light); color:var(--navy);
  border:1px solid var(--line);
}
.ws-link:hover{ background:#e3edf4; border-color:var(--accent); color:var(--accent); }

/* Sign-in unavailable — a stop, not a soft degrade. */
.autherr{ max-width:620px; margin:3rem auto; padding:0 1rem; }
.autherr h1{ font-size:1.6rem; margin-bottom:.4rem; color:var(--navy); }
.autherr .sub{ color:var(--danger); font-weight:600; margin-bottom:1rem; }
.autherr .tiny{ font-size:.88rem; color:var(--grey); }
.autherr .go{ display:inline-block; margin-top:1.2rem; padding:.55rem 1.1rem;
  border-radius:9px; background:var(--accent); color:#fff; font-weight:600; }

/* Coverage honesty — shown where the user acts on the output, not in marketing.
   Deliberately calm: this is a scope statement, not an error. */
.coverage-note{
  margin:1rem 0; padding:.7rem 1.05rem; border-radius:8px;
  border:1px solid var(--line); border-left-width:4px;
  background:var(--light); color:var(--ink);
  font-size:.9rem; line-height:1.5;
}
.coverage-note b{ color:var(--navy); }
.coverage-statutory_only{ border-left-color:var(--warn); background:var(--warnbg); color:#6d4a12; }
.coverage-statutory_only b{ color:var(--warn); }
.coverage-unverified{ border-left-color:var(--danger); background:var(--dangerbg); color:#7a2018; }
.coverage-unverified b{ color:var(--danger); }
@media (prefers-color-scheme: dark){
  .coverage-statutory_only{ background:#2a2113; color:#f0d7a8; }
  .coverage-unverified{ background:#2a1512; color:#f3c6bf; }
}

/* Practitioner attestation — a declaration, so it should read as a considered
   statement, not a cookie banner. */
.attest{ max-width:680px; margin:2.4rem auto; padding:0 1rem; }
.attest h1{ font-size:1.7rem; margin-bottom:.35rem; color:var(--navy); }
.attest .sub{ color:var(--grey); margin-bottom:1.4rem; }
.attest .statement{
  white-space:pre-wrap; font:inherit; font-size:.93rem; line-height:1.65;
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--accent);
  border-radius:9px; padding:1.1rem 1.25rem; margin:0 0 1.4rem;
}
.attest .row{ margin-bottom:1rem; }
.attest .row.two{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .attest .row.two{ grid-template-columns:1fr; } }
.attest label{ display:block; font-weight:600; font-size:.9rem; margin-bottom:.3rem; color:var(--navy); }
.attest .opt{ font-weight:400; color:var(--grey); }
.attest select, .attest input[type=text]{
  width:100%; padding:.55rem .7rem; border:1px solid var(--line);
  border-radius:8px; font:inherit; background:var(--card); color:var(--ink);
}
.attest .confirm{ display:flex; gap:.6rem; align-items:flex-start; margin:1.3rem 0;
  font-weight:600; color:var(--ink); }
.attest .confirm input{ margin-top:.25rem; width:auto; }
.attest .go{ display:inline-block; padding:.6rem 1.2rem; border:0; border-radius:9px;
  background:var(--accent); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
.attest .go:hover{ background:var(--accent2); }
.attest .tiny{ font-size:.85rem; color:var(--grey); margin-top:1rem; }
.attest-err{ margin-bottom:1rem; padding:.7rem 1rem; border-radius:8px;
  background:var(--dangerbg); color:#7a2018; border:1px solid var(--danger); font-weight:600; }

/* Upload control. The home page promised "paste or upload" long before an
   upload existed; this is that promise made real. */
.dropzone{
  display:flex; flex-direction:column; align-items:center; gap:.25rem;
  padding:1.5rem 1rem; margin-bottom:.9rem; cursor:pointer;
  border:2px dashed var(--line); border-radius:12px; background:var(--card);
  transition:border-color .15s, background .15s; text-align:center;
}
.dropzone:hover{ border-color:var(--accent); background:var(--light); }
.dropzone .dz-icon{ font-size:1.4rem; }
.dropzone .dz-main{ font-weight:700; color:var(--navy); }
.dropzone .dz-sub{ font-size:.83rem; color:var(--grey); }
.dropzone input[type=file]{ display:none; }
.dropzone .dz-chosen{ display:none; margin-top:.4rem; font-size:.86rem;
  font-weight:600; color:var(--good); }
.or{ text-align:center; font-size:.85rem; color:var(--grey); margin:.2rem 0 .5rem; }
.upload-err{
  display:flex; flex-direction:column; gap:.3rem;
  margin-bottom:1rem; padding:.85rem 1.05rem;
  border:1px solid var(--danger); border-left-width:4px; border-radius:9px;
  background:var(--dangerbg); color:#7a2018; font-size:.92rem; line-height:1.5;
}
.upload-err b{ color:var(--danger); }

/* Whose side are we on. A contract finding is only meaningful against a party. */
.party{ margin:.2rem 0 .9rem; }
.party label{ display:block; font-weight:700; font-size:.9rem; color:var(--navy); margin-bottom:.3rem; }
.party select{ width:100%; padding:.55rem .7rem; border:1px solid var(--line);
  border-radius:8px; font:inherit; background:var(--card); color:var(--ink); }
.party-note{ margin:.35rem 0 0; font-size:.83rem; color:var(--grey); line-height:1.45; }
.chip.p{ background:#eaf2f7; color:var(--navy); border:1px solid #cfe0ea; }
.affects{ margin-left:auto; padding:1px 8px; border-radius:9px; font-size:.74rem;
  font-weight:700; background:var(--light); color:var(--navy); border:1px solid var(--line);
  white-space:nowrap; }
.ftop{ display:flex; align-items:center; gap:.5rem; }

/* Closing bundle — grouped by party, then by document. */
.party-block, .doc-block{ margin-bottom:1.6rem; }
.party-block h3, .doc-block h3{
  display:flex; align-items:center; gap:.55rem;
  font-size:1.02rem; color:var(--navy); margin:0 0 .6rem;
  padding-bottom:.35rem; border-bottom:2px solid var(--line);
}
.pcount{ font-size:.78rem; font-weight:700; color:var(--grey);
  background:var(--light); border-radius:9px; padding:1px 8px; }


/* -- Matters, deadlines, and the morning brief --------------------------- */
.brief, .matters, .matter{ max-width:900px; margin:2rem auto; padding:0 1rem; }
.brief-head h1{ font-size:1.9rem; color:var(--navy); margin:0 0 .2rem; }
.brief .sub, .matters .sub, .matter .sub{ color:var(--grey); margin-bottom:1.6rem; }

.brief-block{ margin-bottom:1.8rem; padding:1.1rem 1.25rem;
  background:var(--card); border:1px solid var(--line); border-radius:12px; }
.brief-block h2{ font-size:1.02rem; margin:0 0 .8rem; color:var(--navy); }
.brief-block .blurb{ font-size:.87rem; color:var(--grey); margin:-.4rem 0 .9rem; line-height:1.5; }
.b-overdue{ border-left:4px solid var(--danger); background:var(--dangerbg); }
.b-overdue h2{ color:var(--danger); }
.b-due{ border-left:4px solid var(--accent); }
.b-anchor{ border-left:4px solid var(--warn); background:var(--warnbg); }
.b-anchor h2{ color:var(--warn); }
.b-law{ border-left:4px solid var(--good); }

.dl, .chg{ display:flex; align-items:flex-start; gap:1rem; padding:.7rem 0;
  border-bottom:1px solid var(--line); }
.dl:last-child, .chg:last-child{ border-bottom:0; }
.dl-main{ flex:1; display:flex; flex-direction:column; gap:.18rem; }
.dl-main b{ color:var(--ink); }
.dl-meta{ font-size:.82rem; color:var(--grey); }
.dl-meta.warn{ color:var(--warn); font-weight:600; }
.dl-snip{ font-size:.83rem; color:var(--grey); font-style:italic; }
.dl.sev-high{ border-left:3px solid var(--danger); padding-left:.6rem; }
.dl.sev-med{ border-left:3px solid var(--warn); padding-left:.6rem; }
.dl-date{ display:flex; gap:.35rem; align-items:center; }
.dl-date input[type=date]{ padding:.3rem .45rem; border:1px solid var(--line);
  border-radius:7px; font:inherit; font-size:.85rem; }
.mini{ padding:.32rem .72rem; border:1px solid var(--line); border-radius:7px;
  background:var(--card); font:inherit; font-size:.83rem; font-weight:600;
  color:var(--navy); cursor:pointer; white-space:nowrap; }
.mini:hover{ background:var(--accent); color:#fff; border-color:var(--accent); }
.chg{ flex-direction:column; gap:.2rem; }
.chg .src{ font-size:.82rem; }

.mrow{ display:flex; flex-direction:column; gap:.15rem; padding:.75rem .9rem;
  margin-bottom:.5rem; background:var(--card); border:1px solid var(--line);
  border-radius:9px; }
a.mrow:hover{ border-color:var(--accent); background:var(--light); }
.mrow.closed{ opacity:.6; }
.mrow.static{ cursor:default; }
.empty{ color:var(--grey); font-size:.9rem; }

.newmatter{ padding:1.1rem 1.25rem; margin-bottom:1.6rem; background:var(--card);
  border:1px solid var(--line); border-radius:12px; }
.nm-row{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:.9rem; margin-bottom:.9rem; }
@media (max-width:700px){ .nm-row{ grid-template-columns:1fr; } }
.newmatter label{ display:block; font-weight:600; font-size:.86rem;
  color:var(--navy); margin-bottom:.25rem; }
.newmatter input{ width:100%; padding:.5rem .65rem; border:1px solid var(--line);
  border-radius:8px; font:inherit; }
.newmatter .tiny{ font-size:.83rem; color:var(--grey); margin:.6rem 0 0; }

.m-actions{ display:flex; gap:.7rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.m-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
@media (max-width:760px){ .m-grid{ grid-template-columns:1fr; } }
.m-col h2{ font-size:1rem; color:var(--navy); margin:0 0 .7rem;
  padding-bottom:.3rem; border-bottom:2px solid var(--line); }
.m-col h2.mt{ margin-top:1.6rem; }
.act{ font-size:.87rem; color:var(--grey); padding:.35rem 0;
  border-bottom:1px solid var(--line); }
.closed-h{ font-size:1rem; color:var(--grey); margin-top:1.8rem; }

/* Matter picker on the intake form. */
.matterpick{ margin:.2rem 0 .9rem; }
.matterpick label{ display:block; font-weight:700; font-size:.9rem;
  color:var(--navy); margin-bottom:.3rem; }
.matterpick select{ width:100%; padding:.55rem .7rem; border:1px solid var(--line);
  border-radius:8px; font:inherit; background:var(--card); color:var(--ink); }
.matterpick .party-note{ margin:.35rem 0 0; }


/* The register is not a docket. Said plainly, wherever deadlines appear. */
.register-note{ margin:1rem 0 0; padding:.7rem .9rem; border-radius:8px;
  background:var(--light); border:1px solid var(--line);
  font-size:.82rem; line-height:1.5; color:var(--grey); }


/* A register that looks complete when it isn't is the failure mode to avoid. */
.register-gap{ display:flex; flex-direction:column; gap:.3rem;
  margin:1rem 0; padding:.8rem 1rem; border-radius:9px;
  background:var(--warnbg); border:1px solid var(--warn); border-left-width:4px;
  font-size:.87rem; line-height:1.5; color:#6d4a12; }
.register-gap b{ color:var(--warn); }


/* Citation watch — the authority you stopped thinking about. */
.b-cite{ border-left:4px solid var(--danger); background:var(--dangerbg); }
.b-cite h2{ color:var(--danger); }
.watchlist .wrow{ display:flex; flex-direction:column; gap:.2rem;
  padding:.7rem .9rem; margin-bottom:.5rem; background:var(--card);
  border:1px solid var(--line); border-radius:9px; }
.wstatus{ font-size:.78rem; font-weight:700; padding:1px 8px; border-radius:9px;
  align-self:flex-start; }
.wstatus.clear{ background:var(--goodbg); color:var(--good); }
.wstatus.negative{ background:var(--dangerbg); color:var(--danger); }
.wstatus.unchecked{ background:var(--warnbg); color:var(--warn); }


/* Precedent bank. */
.precedents, .prec-review{ max-width:900px; margin:2rem auto; padding:0 1rem; }
.prec-review .row{ margin-bottom:.9rem; }
.prec-review label{ display:block; font-weight:600; font-size:.88rem; color:var(--navy); margin-bottom:.25rem; }
.prec-review input[type=text]{ width:100%; padding:.5rem .65rem; border:1px solid var(--line); border-radius:8px; font:inherit; }
.prec-compare{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.2rem 0; }
@media (max-width:760px){ .prec-compare{ grid-template-columns:1fr; } }
.prec-compare h3{ font-size:.92rem; color:var(--navy); margin:0 0 .4rem; display:flex; gap:.5rem; align-items:center; }
.prec-compare .statement{ max-height:280px; overflow:auto; font-size:.85rem; }
.warnflag{ color:var(--warn); }
.bank{ display:flex; align-items:center; gap:.7rem; margin-top:1rem; flex-wrap:wrap; }
.bank .tiny{ font-size:.83rem; color:var(--grey); }


/* Brief delivery control. */
.brief-deliver{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  margin:0 0 1.4rem; padding:.6rem .9rem; background:var(--light);
  border:1px solid var(--line); border-radius:9px; }
.brief-deliver .tiny{ font-size:.82rem; color:var(--grey); flex:1; min-width:220px; }
.brief-deliver .sent-note{ font-weight:700; color:var(--good); font-size:.86rem; }


/* Closing memo download — the deliverable, not a secondary action. */
.memo-download{ display:flex; align-items:center; gap:.9rem; flex-wrap:wrap;
  margin:0 0 1.2rem; padding:.8rem 1rem; border-radius:10px;
  background:var(--light); border:1px solid var(--accent); }
.memo-download .tiny{ font-size:.83rem; color:var(--grey); flex:1; min-width:240px; }


/* Timesheet. Entries without a duration are visually unfinished on purpose —
   a blank is honest, a guess would not be. */
.timesheet{ max-width:900px; margin:2rem auto; padding:0 1rem; }
.tk-summary{ display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap;
  padding:.9rem 1.1rem; margin-bottom:1rem; background:var(--card);
  border:1px solid var(--line); border-radius:11px; }
.tk-summary > div{ display:flex; flex-direction:column; }
.tk-summary b{ font-size:1.25rem; color:var(--navy); line-height:1.1; }
.tk-summary span{ font-size:.78rem; color:var(--grey); }
.tk-summary .mini{ margin-left:auto; }
.tk-day{ margin-bottom:1.5rem; }
.tk-day h2{ display:flex; align-items:center; gap:.5rem; font-size:.98rem;
  color:var(--navy); margin:0 0 .5rem; padding-bottom:.3rem;
  border-bottom:2px solid var(--line); }
.tk-row{ display:flex; align-items:center; gap:.7rem; padding:.6rem 0;
  border-bottom:1px solid var(--line); }
.tk-row.confirmed{ opacity:.72; }
.tk-main{ flex:1; display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.tk-main b{ color:var(--ink); font-size:.93rem; }
.tk-mins{ font-weight:700; color:var(--navy); font-size:.88rem; white-space:nowrap; }
.tk-ok{ font-size:.8rem; font-weight:700; color:var(--good); }
.tk-set{ display:flex; gap:.3rem; align-items:center; }
.tk-set input{ width:74px; padding:.3rem .45rem; border:1px solid var(--warn);
  border-radius:7px; font:inherit; font-size:.85rem; background:var(--warnbg); }
.quiet-btn{ color:var(--grey); }

/* ===========================================================================
   Document integrity badge.
   Green must be visually distinct from red at a glance and without relying on
   colour alone - the glyph and the heading text carry the state too, because a
   colour-blind reader must not have to guess whether their document verified.
   =========================================================================== */
.integ{border-radius:10px;padding:14px 16px;margin:0 0 16px;font-size:14px;
  line-height:1.5;border:1px solid;}
.integ-ok{background:#f0fdf4;border-color:#86efac;color:#14532d;}
.integ-bad{background:#fef2f2;border-color:#fca5a5;color:#7f1d1d;}
.integ-unknown{background:#fffbeb;border-color:#fcd34d;color:#78350f;}
/* A pass whose CLAIMS are qualified: the text is intact, but the analysis read
   only part of it, or nothing was traced to it. It must not look like .integ-ok
   at a glance -- an unearned green is the defect this badge exists to remove. */
.integ-caution{background:#fffbeb;border-color:#f59e0b;color:#78350f;}
.integ-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  font-size:15px;}
.integ-dot{font-weight:700;font-size:16px;line-height:1;}
.integ-short{background:rgba(0,0,0,.06);border-radius:5px;padding:2px 7px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;letter-spacing:.04em;}
.integ p{margin:8px 0 0;}
.integ-proves{font-weight:500;}
.integ-limits{opacity:.85;}
.integ-note{opacity:.85;font-size:13px;}
.integ-quotes{margin-top:10px !important;}
/* Coverage and retention are the two facts that change what a lawyer DOES.
   They are stated at full weight, above the fold, never dimmed. */
.integ-coverage{font-weight:600;border-left:4px solid currentColor;
  padding:8px 0 8px 11px;margin-top:11px !important;}
.integ-retain{font-size:13px;opacity:.9;margin-top:11px !important;}
.integ-drop{display:block;margin-top:4px;font-weight:400;opacity:.9;}
.integ-check{margin-top:11px;}
.integ-check summary{cursor:pointer;font-weight:600;}
.integ-body{margin-top:10px;display:flex;flex-direction:column;gap:8px;}
.integ-row{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;}
.integ-k{min-width:190px;font-weight:600;opacity:.8;}
.integ code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;background:rgba(0,0,0,.05);border-radius:5px;padding:2px 6px;
  word-break:break-all;}
.integ-hash{letter-spacing:.03em;}
.integ-warn{font-size:13px;opacity:.9;}
.integ-tiny{font-size:12px;opacity:.7;}
.integ-dl{align-self:flex-start;}
.integ-selfcheck{font-size:13px;font-weight:600;}
.integ-selfcheck.good{color:#15803d;}
.integ-selfcheck.bad{color:#b91c1c;}
.integ-selfcheck.muted{color:inherit;opacity:.65;font-weight:400;}
.integ-diff{margin-top:10px;display:flex;flex-direction:column;gap:7px;}
.integ-ctx{display:block;white-space:pre-wrap;}
.integ-ctx.good{background:rgba(21,128,61,.10);}
.integ-ctx.bad{background:rgba(185,28,28,.12);}

/* The withheld-document placeholder. Deliberately plain: it must not read as a
   document, because the whole point is that no document is being shown. */
.paper-withheld{display:flex;flex-direction:column;gap:8px;padding:24px;
  color:#7f1d1d;background:#fef2f2;border:1px dashed #fca5a5;}
.paper-withheld span{font-weight:400;opacity:.9;line-height:1.55;}
/* Home page: the monthly plan, surfaced on the front door (2026-08-03).
   home.html mentioned it zero times, so the heaviest users could not find
   the plan built for them. A quiet note, not a second hero: the per-case
   cards stay the primary path. */
.monthly-note{max-width:760px;margin:26px auto 0;padding:18px 22px;background:#fff;
  border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:12px;text-align:left}
.monthly-note h3{margin:0 0 6px;color:var(--navy);font-size:16px}
.monthly-note p{margin:0 0 8px;font-size:13.5px;color:var(--grey);line-height:1.55}
.monthly-note .tiny{font-size:12.5px;color:var(--grey)}
.monthly-note .try.small{margin-right:10px}

/* ===========================================================================
   Making the paid features LEGIBLE (2026-08-03).

   The owner's note: "i see what each pay feature can do but visually that
   would be more helpful too. also the $9/question for me is still vague ...
   ONE LEADS TO ANOTHER and that's the part they will AVOID to use because of
   that."

   Two jobs here, and only two:
     .incl-loud / .deliv  — say what you GET, at a size you cannot skim past.
     .askcard / .samples  — show a real thread so the buyer can SEE that the
                            second and third question are inside the same $9.
   No new palette, no new type scale: everything below is built from the
   existing --accent / --good / --line tokens so these blocks look native to
   the page rather than bolted on.
   =========================================================================== */

/* The promise, at the weight of the price. Green because it is a credit to the
   buyer, not a warning — and prefixed with a tick in the markup so it still
   reads as "included" without colour. */
.incl-loud{
  display:block; margin:8px 0 2px;
  font-weight:800; font-size:14px; line-height:1.35; color:var(--good);
}
.incl-loud.strong{
  font-size:16px; background:var(--goodbg); border-radius:9px;
  padding:8px 12px; margin:10px 0 6px;
}

/* What you actually receive. Ticks, not bullets: this is a list of things
   delivered, and a disc reads as a feature grid. */
.deliv{ list-style:none; margin:10px 0 0; padding:0; }
.deliv li{
  position:relative; padding:0 0 0 20px; margin-bottom:6px;
  font-size:13px; line-height:1.5; color:var(--grey);
}
.deliv li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--good); font-weight:800; font-size:12px;
}
.deliv-note{
  margin:8px 0 0; font-size:12.5px; line-height:1.5;
  color:var(--grey); font-style:italic;
}
.pcard .deliv, .pcard .deliv-note{ text-align:left; }

/* The $9 card gets its own row and its own proof. A grid tile could not carry
   a three-question thread, and the thread is the entire argument. */
.askcard{
  display:grid; grid-template-columns:minmax(240px,1fr) 1.4fr; gap:20px;
  margin-top:16px; padding:22px;
  background:#fff; border:1px solid var(--line); border-radius:16px;
}
@media(max-width:820px){ .askcard{ grid-template-columns:1fr; } }
.askcard-buy{ display:block; color:var(--ink); }
.askcard-buy:hover h3{ color:var(--accent); }
.askcard-buy .ic{ font-size:30px; }
.askcard-buy h3{ margin:10px 0 6px; color:var(--navy); font-size:18px; }
.askcard-buy .try.small{ margin-top:12px; }
.price.big{ font-size:34px; font-weight:800; color:var(--navy); line-height:1.1; }

/* The thread itself. Indenting the follow-ups is the point: they are visibly
   downstream of the first question and visibly inside the same purchase. */
.samples{
  background:var(--light); border:1px solid var(--line);
  border-radius:12px; padding:16px 18px;
}
.samples.wide{ margin:18px 0 0; }
.samples h4{ margin:0 0 4px; color:var(--navy); font-size:15px; }
.samples .tiny{ font-size:12.5px; color:var(--grey); margin:0 0 10px; line-height:1.5; }
.sample-block{ margin-bottom:14px; }
.sample-block:last-of-type{ margin-bottom:6px; }
.sample-ctx{ font-weight:700; color:var(--navy); margin:0 0 4px !important; }
.thread{ list-style:none; margin:0 0 4px; padding:0; }
.sq{
  position:relative; margin:0 0 8px; padding:10px 12px;
  background:#fff; border:1px solid var(--line); border-radius:10px;
  font-size:13.5px; line-height:1.55; color:var(--ink);
}
.sq-then{
  margin-left:22px; border-left:3px solid var(--good);
}
.sq-tag{
  display:inline-block; margin-right:7px;
  font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  color:var(--grey); background:var(--light); border-radius:5px; padding:2px 6px;
  vertical-align:1px;
}
.sq-then .sq-tag{ color:var(--good); background:var(--goodbg); }
.sq-free{
  display:inline-block; margin-left:6px; padding:1px 7px; border-radius:20px;
  font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  color:var(--good); background:var(--goodbg);
}

/* The price, stated before the document is handed over. Deliberately above the
   upload control: nobody should meet the fee only after committing a client's
   contract to the box. */
.pricebar{
  display:flex; flex-direction:column; gap:4px;
  margin:0 0 14px; padding:12px 15px; border-radius:11px;
  background:var(--light); border:1px solid var(--line);
  border-left:4px solid var(--accent);
  font-size:13.5px; line-height:1.5;
}
.pricebar b{ color:var(--navy); font-size:15px; }
.pricebar span{ color:var(--grey); }
.pricebar .tiny{ font-size:12px; }

/* ── Citation honesty (2026-08-03) ────────────────────────────────────────
   Junior's answer path lifts citation strings out of the model's own text and
   checks nothing. The annotator used to autoseed those as verified_by='auto',
   treatment='good', so an invented citation was rendered as a verified source.
   The label is now part of the citation, not a footnote under the list: a
   reader who skims must not be able to skim past the word "unverified".
   Existing tokens only — no new colours. */
.citelist{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.4rem}
.citelist .cite{display:grid;grid-template-columns:auto auto;gap:.35rem .6rem;
  align-items:baseline;padding:.45rem .6rem;border:1px solid var(--line);
  border-radius:6px;background:var(--card)}
.citelist .cite-name{font-weight:600;color:var(--ink)}
.citelist .cite-badge{justify-self:start;font-size:11px;font-weight:700;
  letter-spacing:.03em;text-transform:uppercase;padding:.1rem .4rem;
  border-radius:4px;background:var(--light);color:var(--grey);
  border:1px solid var(--line)}
.citelist .cite-why{grid-column:1 / -1;font-size:12px;color:var(--grey)}
.citelist .cite-green .cite-badge{background:var(--goodbg);color:var(--good);
  border-color:var(--good)}
.citelist .cite-yellow .cite-badge{background:var(--warnbg);color:var(--warn);
  border-color:var(--warn)}
.citelist .cite-red .cite-badge{background:var(--dangerbg);color:var(--danger);
  border-color:var(--danger)}
.citelist .cite-gray .cite-badge{background:var(--light);color:var(--grey)}

/* The free first case is anonymous, and _open_case_thread() refuses to open a
   follow-up window with no signed-in user. The pricebar says so; this keeps it
   legible rather than letting it disappear into the surrounding fine print. */
.pricebar .signin-note{display:block;margin-top:.35rem;font-weight:600;
  color:var(--warn)}

/* ── /privacy and /privacy/data ────────────────────────────────────────────
   The tables carry the enumeration: one row per store, and the "Erasing it"
   column is the one a reader is looking for. `pv-kept` is deliberately NOT
   styled as an error — a payment ledger that survives an erasure is correct
   behaviour, and colouring it red would teach the reader to read it as a
   failure. It is tinted the same way a caveat is, and the reason is in the
   cell beside it. */
.privacy{max-width:1000px;margin:0 auto}
.privacy h2{margin:26px 0 8px;color:var(--navy);font-size:17px}
.pv-notice{border:1px solid var(--warn);border-left-width:4px;border-radius:9px;
  background:var(--warnbg);color:#6a4708;padding:.8rem 1rem;margin:14px 0}
.pv-notice p{margin:.35rem 0 0;font-size:.92rem;line-height:1.5}
.pv-warn{border:1px solid var(--danger);border-left-width:4px;border-radius:9px;
  background:var(--dangerbg);color:#7a2018;padding:.8rem 1rem;margin:14px 0}
.pv-ok{border:1px solid var(--good);border-left-width:4px;border-radius:9px;
  background:var(--goodbg);color:#0f5233;padding:.8rem 1rem;margin:14px 0}
.pv-list{margin:.4rem 0 0;padding-left:1.15rem;line-height:1.6}
.pv-list li{margin-bottom:.45rem}
.pv-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.pv-table{width:100%;border-collapse:collapse;font-size:.9rem}
.pv-table th{text-align:left;background:var(--light);color:var(--navy);
  padding:.6rem .8rem;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.03em;border-bottom:1px solid var(--line)}
.pv-table td{padding:.7rem .8rem;border-bottom:1px solid var(--line);
  vertical-align:top;line-height:1.5}
.pv-table tr:last-child td{border-bottom:none}
.pv-table tr.pv-erasable td:first-child{border-left:3px solid var(--good)}
.pv-table tr.pv-kept td:first-child{border-left:3px solid var(--warn)}
.pv-db{color:var(--grey);font-size:.82rem}
.pv-yes{color:var(--good);font-weight:700}
.pv-no{color:var(--warn);font-weight:700}
.pv-unread{color:var(--danger)}
.pv-count{white-space:nowrap}
.pv-real{background:var(--goodbg);border-left:3px solid var(--good);
  border-radius:8px;padding:.7rem .9rem;line-height:1.55}
.pv-matter{margin-bottom:.6rem}
.pv-matter form,.pv-nuke{display:flex;gap:.5rem;align-items:center;
  flex-wrap:wrap;margin-top:.45rem}
.pv-matter label,.pv-nuke label{font-size:.85rem;color:var(--grey);
  display:flex;gap:.4rem;align-items:center}
.pv-matter input[type=text],.pv-nuke input[type=text]{padding:.32rem .55rem;
  border:1px solid var(--line);border-radius:7px;font:inherit;font-size:.85rem}
.pv-danger{border-color:var(--danger);color:var(--danger)}
.pv-danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}
.pv-nuke{border:1px solid var(--danger);border-radius:10px;
  background:var(--dangerbg);padding:.7rem .9rem}
