:root{
  --ink:#1b1b1b; --soft:#5d5d5d; --faint:#8a8a8a;
  --line:#ddd9d2; --bg:#fbfaf8; --card:#fff;
  --accent:#4a3f8f; --accent-ink:#fff; --warn:#8a3b2a; --ok:#2f6b4a;
  --radius:10px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:17px/1.65 "Noto Serif SC","Songti SC","Source Han Serif SC",Georgia,"Times New Roman",serif;
}
.wrap{max-width:46rem;margin:0 auto;padding:1.25rem 1.1rem 5rem}
header.bar{
  background:var(--card); border-bottom:1px solid var(--line);
  padding:.85rem 1.1rem; position:sticky; top:0; z-index:5;
}
header.bar .inner{max-width:46rem;margin:0 auto;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
header.bar .firm{font-weight:700;font-size:.95rem;letter-spacing:.02em}
header.bar .spacer{flex:1}
.langs{display:flex;gap:.3rem}
.langs button{
  font:inherit;font-size:.8rem;padding:.25rem .6rem;border:1px solid var(--line);
  background:#fff;border-radius:999px;cursor:pointer;color:var(--soft)
}
.langs button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem 1.3rem;margin:0 0 1.1rem
}
h1{font-size:1.45rem;line-height:1.35;margin:.2rem 0 .9rem}
h1.qtext{font-size:1.2rem;font-weight:600;line-height:1.5;margin:.4rem 0 .8rem}
h2{font-size:1.12rem;line-height:1.4;margin:1.5rem 0 .6rem}
p{margin:0 0 .85rem}
ul{margin:0 0 .9rem;padding-left:1.25rem}
li{margin:0 0 .5rem}
.zh{display:block}
.en{display:block;color:var(--soft);font-size:.94em}
body[data-lang="zh"] .en{display:none}
body[data-lang="en"] .zh{display:none}
.kicker{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0 0 .35rem}
.note{
  border-left:3px solid var(--line);padding:.1rem 0 .1rem .85rem;margin:0 0 1rem;
  color:var(--soft);font-size:.96em
}
.urgent{background:#fdf6ec;border:1px solid #efdfc4;border-radius:var(--radius);padding:.9rem 1rem;margin:0 0 1.1rem}
label.check{display:flex;gap:.6rem;align-items:flex-start;margin:1rem 0;cursor:pointer}
label.check input{margin-top:.45rem;width:1.1rem;height:1.1rem;flex:none}
textarea,input[type=text],input[type=password]{
  font:inherit;width:100%;padding:.75rem .8rem;border:1px solid #c9c4bc;border-radius:8px;
  background:#fffdfa;color:var(--ink)
}
textarea{min-height:9rem;resize:vertical;line-height:1.6}
textarea:focus,input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin-top:1.2rem}
button.primary,button.ghost,a.primary{
  font:inherit;font-size:1rem;padding:.7rem 1.3rem;border-radius:8px;cursor:pointer;
  border:1px solid var(--accent);text-decoration:none;display:inline-block
}
button.primary,a.primary{background:var(--accent);color:var(--accent-ink)}
button.ghost{background:#fff;color:var(--accent)}
button:disabled{opacity:.45;cursor:default}
button.link{background:none;border:none;color:var(--accent);font:inherit;cursor:pointer;padding:.3rem 0;text-decoration:underline}
.meter{height:5px;background:#eae6df;border-radius:999px;overflow:hidden;margin:.1rem 0 1rem}
.meter i{display:block;height:100%;background:var(--accent);transition:width .25s}
.status{font-size:.85rem;color:var(--faint);min-height:1.3em;margin:.5rem 0 0}
.status.saved{color:var(--ok)}
.status.err{color:var(--warn)}
.followup{background:#f3f1fb;border:1px solid #ddd8f3;border-radius:var(--radius);padding:1rem 1.05rem;margin:1.1rem 0 0}
.followup .kicker{color:var(--accent)}
.skip{font-size:.9rem}
.row .skip{margin-left:auto}
.review{margin:0}
.review dt{margin:1.4rem 0 .35rem;border-top:1px solid var(--line);padding-top:1rem}
.review dt button.link{display:block;width:100%;text-align:left;text-decoration:none;color:var(--ink);font-size:.97em}
.review dt button.link:hover,.review dt button.link:focus{text-decoration:underline}
.review dt button.link .en{color:var(--soft)}
.review dd{margin:0 0 .3rem;white-space:pre-wrap;padding-left:.9rem;border-left:3px solid #e6e2da}
.review dd.empty{color:var(--warn);font-style:italic}
.done{text-align:center;padding:2.5rem 1rem}
.done .tick{font-size:2.4rem;color:var(--ok);line-height:1}
footer.fine{color:var(--faint);font-size:.82rem;text-align:center;margin:2rem 0 0}

/* ------------------------------------------------- attorney dashboard only */
body.admin{font-family:-apple-system,"Segoe UI",system-ui,sans-serif;font-size:15px}
body.admin .wrap{max-width:62rem}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:600}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{display:inline-block;font-size:.72rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--soft)}
.pill.ok{border-color:#bcd9c7;background:#eef7f1;color:var(--ok)}
.pill.wait{border-color:#e4dcc3;background:#fbf7ea;color:#7a6520}
.pill.dead{border-color:#e3cfcb;background:#fbf0ee;color:var(--warn)}
code.url{font-size:.78rem;word-break:break-all;color:var(--soft);font-family:ui-monospace,Menlo,Consolas,monospace}
select{font:inherit;padding:.5rem;border:1px solid #c9c4bc;border-radius:8px;background:#fff}
.grid{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end}
.field label{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:.25rem}
.detail{white-space:pre-wrap;font-size:.92rem}
.detail h3{font-size:.95rem;margin:1.3rem 0 .3rem}
.detail .q{color:var(--soft);font-size:.86rem;margin:0 0 .4rem}
.hide{display:none}
