:root{
  --bg:#f4f7fb; --panel:#fff; --ink:#122033; --muted:#5a6b80; --line:#dbe3ee; --accent:#2F5FE5; --accent-ink:#fff;
  --t-bg:#e3ecff; --t-ink:#1d3f9e; --o-bg:#dff5ef; --o-ink:#0b6b5c; --s-bg:#f1e7ff; --s-ink:#5b2b9e;
  --m-bg:#fff1d6; --m-ink:#7a4a00; --c-bg:#eceff3; --c-ink:#3b4656; --tooth:#fff; --tooth-on:#2F5FE5;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0a111d; --panel:#111b2c; --ink:#e8eefb; --muted:#9fb0cc; --line:#1f2e46; --accent:#5b84ff;
    --t-bg:#1c2c55; --t-ink:#b9ccff; --o-bg:#123a35; --o-ink:#9fe8d9; --s-bg:#2c1f47; --s-ink:#d9c2ff;
    --m-bg:#3a2c10; --m-ink:#ffd98c; --c-bg:#222b38; --c-ink:#c9d3e0; --tooth:#16233a; --tooth-on:#5b84ff;
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px clamp(16px,4vw,40px);background:var(--panel);border-bottom:1px solid var(--line);font-size:14px}
.back{text-decoration:none;font-weight:600}
.edu{color:var(--muted)}

.wrap{max-width:880px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 56px}
h1{font-size:clamp(28px,4.4vw,40px);line-height:1.1;margin:0 0 10px;letter-spacing:-.01em}
h2{font-size:22px;margin:36px 0 10px}
h2:focus{outline:none}
h3{font-size:17px;margin:0 0 4px}
.lead{color:var(--muted);font-size:18px;margin:0 0 22px;max-width:40em}
.note{color:var(--muted);font-size:14px}

.input{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}
label{display:block;font-weight:600;margin-bottom:8px}
textarea{width:100%;font:15px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;resize:vertical;min-height:180px}
textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.btn{font:inherit;font-weight:600;padding:10px 18px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}
.btn:hover{border-color:var(--accent)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.quiet{border-color:transparent;background:transparent;color:var(--muted)}

.legend{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;margin:0 0 10px}
.marked{white-space:pre-wrap;word-break:break-word;font:15px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin:0;overflow-x:auto}
.k{border-radius:5px;padding:1px 4px;color:inherit}
.k.treatment{background:var(--t-bg);color:var(--t-ink)}
.k.tooth,.k.quadrant{background:var(--o-bg);color:var(--o-ink)}
.k.surface{background:var(--s-bg);color:var(--s-ink)}
.k.money{background:var(--m-bg);color:var(--m-ink)}
.k.code{background:var(--c-bg);color:var(--c-ink)}
mark.k{font-weight:600}

.cards{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.card p{margin:0}
.card .said{margin-top:8px;font-size:13px;color:var(--muted)}

.chart{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;margin:0 0 14px;overflow-x:auto}
.chart svg{display:block;width:100%;min-width:480px;height:auto}
.tooth{fill:var(--tooth);stroke:var(--line);stroke-width:1.5}
.tooth.on{fill:var(--tooth-on);stroke:var(--tooth-on)}
.num{font:600 12px system-ui,sans-serif;fill:var(--muted)}
.num.on{fill:#fff}

ol{padding-left:22px}
ol li{margin-bottom:8px}
.next{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:4px 18px 10px;margin-top:36px}
.foot{margin-top:40px;font-size:13px;color:var(--muted)}

@media print{
  .bar,.input,.row,.next,.legend{display:none!important}
  body{background:#fff;color:#000}
  .wrap{padding:0}
  .card,.marked,.chart{border-color:#999;break-inside:avoid}
}
