/* Volta Orbit for Law: solo practice · /law/ · the "Courthouse Stone" look (the founder's reference law-reference-courthouse-stone.html,
   chosen Oct 11): its tokens light and dark in its own names, its fonts (Public Sans, Source Serif 4, self-hosted under /fonts/), its
   header band, hero, pleading paper, desk, matters list and action row, carried rule for rule; hovers by colour (never a filter); the
   public part below the sample day (the four parts, the five law tools, the free tools, the one trial door, the site footer) in the same
   vocabulary. Generated by tools/conductor/lawsolo/build-law.mjs from site/src/law.css; never edit the deployed copy by hand. */
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light;
  --bg:#D9D4CA; --surface:#F3F0EA; --ink:#23201C; --muted:#4D473F; --rule:#C3BCAF;
  --action:#6E1F2B; --action-hover:#7B2A37; --action-ink:#FFFFFF; --margin:#6E1F2B; --money:#1D6640; --due:#863C0D; --focus:#6E1F2B;
  --band-bg:#6E1F2B; --band-ink:#FFF7F2; --band-muted:#F0D5D0; --band-rule:#6E1F2B;
  --pad:#F3E3A0; --padline:#9FB4D6; --binding:#6E1F2B; --pen:#2B2622; --brass:#9C8150;
  --serif:"Source Serif 4","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#1B1815; --surface:#25211D; --ink:#EDE6DB; --muted:#B5AC9E; --rule:#3A342D;
    --action:#D9929C; --action-hover:#DFA0A9; --action-ink:#2A0A10; --margin:#C7707C; --money:#5CBF8B; --due:#E7AA6A; --focus:#D9929C;
    --band-bg:#5A1A24; --band-ink:#FFF1EC; --band-muted:#EBC9C3; --band-rule:#5A1A24;
    --pad:#D9C98A; --padline:#7F93B5; --binding:#7A2E38; --pen:#D9D2C7; --brass:#BFA470;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#1B1815; --surface:#25211D; --ink:#EDE6DB; --muted:#B5AC9E; --rule:#3A342D;
  --action:#D9929C; --action-hover:#DFA0A9; --action-ink:#2A0A10; --margin:#C7707C; --money:#5CBF8B; --due:#E7AA6A; --focus:#D9929C;
  --band-bg:#5A1A24; --band-ink:#FFF1EC; --band-muted:#EBC9C3; --band-rule:#5A1A24;
  --pad:#D9C98A; --padline:#7F93B5; --binding:#7A2E38; --pen:#D9D2C7; --brass:#BFA470;
}

/* ---------- Base ---------- */
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}
::selection{background:var(--action);color:var(--action-ink)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
a{color:var(--action);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--ink)}
button{font:inherit;color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px 64px}
.skip{position:absolute;left:16px;top:-80px;z-index:20;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--ink);color:var(--bg);border-radius:6px;text-decoration:none;font-weight:600}
.skip:focus{top:12px}
[id]{scroll-margin-top:16px}

/* ---------- App header band (changes with the look) ---------- */
.apphead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px;margin:16px 0 0;padding:14px 16px;border-radius:6px;background:var(--band-bg);color:var(--band-ink);border-bottom:2px solid var(--band-rule)}
.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.brand a{color:var(--band-ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;margin:-12px 0}
.brand a:hover{color:var(--band-muted)}
.brand a:focus-visible{outline-color:var(--band-ink)}
.brand b{font:600 18px/1 var(--sans);letter-spacing:.005em}
.brand span{font:500 17px/1 var(--serif);color:var(--band-muted)}
.office{font-size:14px;color:var(--band-muted)}

/* ---------- Hero: the day, as a sentence ---------- */
.hero{display:grid;grid-template-columns:1fr;gap:18px;align-items:center;padding:18px 0 28px}
.hello{font:400 19px/1.3 var(--serif);color:var(--muted);margin:0 0 8px}
.day{font:500 clamp(30px,4.6vw,46px)/1.12 var(--serif);letter-spacing:-.005em;margin:0;max-width:20ch;font-variation-settings:"opsz" 60;text-wrap:balance}
.daysub{margin:14px 0 0;color:var(--muted);font-size:17px;max-width:52ch}
.art{width:100%;max-width:420px;justify-self:center}
.art svg{display:block;width:100%;height:auto}
.art text{font-family:var(--sans)}

/* ---------- Layout ---------- */
.main{display:grid;grid-template-columns:1fr;gap:28px}
h2{font:600 22px/1.2 var(--serif);margin:0 0 12px;font-variation-settings:"opsz" 30;text-wrap:balance}
h3{font:600 17px/1.3 var(--serif);margin:0 0 6px;text-wrap:balance}
.h2row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.h2row small{color:var(--muted);font-size:14px}

/* ---------- Pleading paper: the one memorable element ---------- */
.pleading{position:relative;background:var(--surface);border:1px solid var(--rule);padding:4px 18px 4px 64px;counter-reset:line}
.pleading::before{content:"";position:absolute;top:0;bottom:0;left:50px;width:4px;border-left:1px solid var(--margin);border-right:1px solid var(--margin);opacity:.6}
.pleading::after{content:"";position:absolute;top:0;bottom:0;right:8px;border-left:1px solid var(--margin);opacity:.35}
.pl{position:relative;counter-increment:line;border-bottom:1px solid var(--rule);min-height:52px;padding:12px 0;display:grid;grid-template-columns:1fr;gap:2px}
.pl:last-child{border-bottom:0}
.pl::before{content:counter(line);position:absolute;left:-52px;top:13px;width:28px;text-align:right;color:var(--muted);font:400 13px/1.4 var(--sans);font-variant-numeric:tabular-nums}
.pl .t{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.pl .w{font-weight:600}
.pl .m{color:var(--muted);font-size:15px}
.pl .s{font-size:14px;font-weight:600;color:var(--ink)}
.pl .s.due{color:var(--due)}
.pl.blank{min-height:44px}

/* ---------- Your desk: one panel, four quarters ---------- */
.desk{background:var(--surface);border:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr}
.q{padding:16px 16px 18px;border-bottom:1px solid var(--rule)}
.q:nth-child(odd){border-right:1px solid var(--rule)}
.q:nth-child(n+3){border-bottom:0}
.q .lbl{font-size:14px;color:var(--muted);margin:0 0 6px}
.q .val{font:600 28px/1.1 var(--serif);margin:0;font-variant-numeric:tabular-nums lining-nums}
.q .val.money{color:var(--money)}
.q .det{font-size:14px;color:var(--muted);margin:6px 0 0}
.q .det.money{color:var(--money);font-weight:600}

/* ---------- Matters ---------- */
.matters{background:var(--surface);border:1px solid var(--rule);margin:0;padding:0;list-style:none}
.mrow{display:grid;grid-template-columns:1fr;gap:2px;padding:13px 16px;border-bottom:1px solid var(--rule)}
.mrow:last-child{border-bottom:0}
.mrow .n{font-weight:600}
.mrow .a,.mrow .d{color:var(--muted);font-size:15px}
.mrow .st{font-size:14px;font-weight:600}
.mrow .st.due{color:var(--due)}
.mhead{display:none}

/* ---------- Actions ---------- */
.actions{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:6px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:600;font-size:15px;text-decoration:none;touch-action:manipulation}
.btn:hover{border-color:var(--ink);color:var(--ink)}
.btn.primary{background:var(--action);color:var(--action-ink);border-color:var(--action)}
.btn.primary:hover{background:var(--action-hover);border-color:var(--action-hover);color:var(--action-ink)}
.hint{margin:10px 0 0;color:var(--muted);font-size:14px}

.foot{margin-top:40px;padding-top:18px;border-top:1px solid var(--rule);color:var(--muted);font-size:14px;display:grid;gap:6px;max-width:72ch}

/* ---------- The public part: what the sample day is made of ---------- */
.public{margin-top:56px;padding-top:28px;border-top:2px solid var(--band-rule)}
.public section{margin-top:40px}
.public section:first-of-type{margin-top:0}
.kicker{font:400 14px/1.4 var(--sans);color:var(--muted);margin:0 0 6px}
.public h2.big{font:500 clamp(26px,3.4vw,36px)/1.15 var(--serif);letter-spacing:-.005em;font-variation-settings:"opsz" 60;margin:0 0 12px;max-width:26ch}
.lead{font:400 19px/1.4 var(--serif);color:var(--muted);margin:0 0 18px;max-width:62ch}
.sub{color:var(--muted);font-size:16px;margin:0 0 16px;max-width:66ch}
.parts{background:var(--surface);border:1px solid var(--rule);display:grid;grid-template-columns:1fr}
.parts .q{border-right:0;border-bottom:1px solid var(--rule)}
.parts .q:last-child{border-bottom:0}
.parts p{margin:0;color:var(--muted);font-size:15px}
.tools{background:var(--surface);border:1px solid var(--rule);margin:0;padding:0;list-style:none}
.tools li{padding:14px 16px;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr;gap:2px 16px}
.tools li:last-child{border-bottom:0}
.tools p{margin:0;color:var(--muted);font-size:15px}
.tools h3 a{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0}
.facts{margin:16px 0 0;padding:0 0 0 20px;color:var(--muted);font-size:15px;max-width:72ch;display:grid;gap:6px}
.facts li::marker{color:var(--brass)}
.door{margin-top:40px;background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--action);padding:20px 18px 22px;max-width:640px}
.door p{margin:0 0 8px}
.door #door-h{font:600 20px/1.3 var(--serif);color:var(--ink)}
.door .sub{margin-bottom:14px}
footer.site{margin-top:48px;padding-top:18px;border-top:1px solid var(--rule);color:var(--muted);font-size:14px;display:grid;gap:6px;max-width:72ch}
footer.site nav{display:flex;flex-wrap:wrap;gap:0 22px}
footer.site a{color:var(--muted);display:inline-flex;align-items:center;min-height:44px}
footer.site p{margin:0}

/* ---------- Wider screens ---------- */
@media (min-width:720px){
  .pl{grid-template-columns:96px 1fr auto;align-items:baseline;gap:4px 16px}
  .pl .t{grid-column:1;grid-row:1 / span 2}
  .pl .w{grid-column:2;grid-row:1}
  .pl .m{grid-column:2;grid-row:2}
  .pl .s{grid-column:3;grid-row:1}
  .mhead{display:grid;grid-template-columns:2.2fr 1.3fr 1.6fr 1fr;gap:12px;padding:10px 16px;font-size:14px;color:var(--muted);border-bottom:1px solid var(--rule)}
  .mrow{grid-template-columns:2.2fr 1.3fr 1.6fr 1fr;gap:12px;align-items:baseline}
  .parts{grid-template-columns:1fr 1fr}
  .parts .q:nth-child(odd){border-right:1px solid var(--rule)}
  .parts .q:nth-child(n+3){border-bottom:0}
  .tools li{grid-template-columns:220px 1fr;align-items:baseline}
}
@media (min-width:980px){
  .hero{grid-template-columns:7fr 5fr;padding:28px 0 36px}
  .main{grid-template-columns:7fr 5fr;align-items:start}
  .full{grid-column:1 / -1}
}
@media (max-width:420px){
  .pleading{padding-left:52px}
  .pleading::before{left:40px}
  .pl::before{left:-46px}
  .q .val{font-size:24px}
}
@media (prefers-reduced-motion:no-preference){
  .btn,.brand a,footer.site a,.tools h3 a{transition:background-color .15s ease,border-color .15s ease,color .15s ease}
}
@media print{
  :root,:root[data-theme="dark"]{--bg:#FFFFFF;--surface:#FFFFFF;--ink:#000000;--muted:#333333;--rule:#BBBBBB;--band-bg:#FFFFFF;--band-ink:#000000;--band-muted:#333333;--band-rule:#000000}
  body{background:#FFFFFF}
  .skip,.art,.door{display:none}
}
