:root{--bg:#fff6f9;--surface:#fff;--surface-2:#fdeef4;--text:#3b1a2c;--text-2:#5c3449;--muted:#7d5a6c;--accent:#c2185b;--accent-ink:#fff;--accent-soft:#fbe0eb;--accent-2:#f06292;--border:#f0d2de;--warn-bg:#fff4d6;--warn-ink:#6b4a00;--err-bg:#fde8e8;--err-ink:#8a1c1c;--ok-bg:#e2f4e7;--ok-ink:#1d5a2c;--demo-bg:#efe6ff;--demo-ink:#4b2a87;--focus:#7b1fa2;--radius:16px;--shadow:0 1px 2px #781e460f, 0 4px 14px #c2185b12;--tooth:#fffaf2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c1117;--surface:#261820;--surface-2:#33202b;--text:#fbe9f1;--text-2:#e9cbd8;--muted:#c09aac;--accent:#f48fb1;--accent-ink:#3a0a1e;--accent-soft:#4a2235;--accent-2:#f8bbd0;--border:#4b2d3c;--warn-bg:#3b3011;--warn-ink:#f5d98a;--err-bg:#3d1a1a;--err-ink:#ffb4b4;--ok-bg:#173323;--ok-ink:#a7e3b8;--demo-bg:#2c2147;--demo-ink:#d9c8ff;--focus:#e1a3ff;--tooth:#f1e7da;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1c1117;--surface:#261820;--surface-2:#33202b;--text:#fbe9f1;--text-2:#e9cbd8;--muted:#c09aac;--accent:#f48fb1;--accent-ink:#3a0a1e;--accent-soft:#4a2235;--accent-2:#f8bbd0;--border:#4b2d3c;--warn-bg:#3b3011;--warn-ink:#f5d98a;--err-bg:#3d1a1a;--err-ink:#ffb4b4;--ok-bg:#173323;--ok-ink:#a7e3b8;--demo-bg:#2c2147;--demo-ink:#d9c8ff;--focus:#e1a3ff;--tooth:#f1e7da;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}h1{color:var(--accent);letter-spacing:-.01em;margin:0 0 .75rem;font-size:1.6rem;line-height:1.25}h2{margin:1.25rem 0 .5rem;font-size:1.2rem}h3{margin:1rem 0 .4rem;font-size:1.05rem}p{margin:.4rem 0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);min-width:44px;min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;text-decoration:none;display:inline-flex}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn-ghost{background:0 0;border-color:#0000}.btn-danger{color:var(--err-ink);border-color:var(--err-ink)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;min-height:44px;padding:.55rem .7rem}textarea{resize:vertical;min-height:120px}label{margin:.6rem 0 .25rem;font-weight:600;display:block}.field-hint{color:var(--muted);font-size:.9rem;font-weight:400}.app{grid-template-columns:1fr;min-height:100dvh;display:grid}.topbar{z-index:20;padding:calc(env(safe-area-inset-top) + .4rem) 1rem .4rem;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.topbar .brand{color:var(--accent);margin-right:auto;font-weight:800;text-decoration:none}.main{padding:1rem 1rem calc(88px + env(safe-area-inset-bottom));width:100%;max-width:1100px;margin:0 auto}.bottomnav{z-index:30;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{min-height:60px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.78rem;text-decoration:none;display:flex}.bottomnav a.active{color:var(--accent);font-weight:700}.bottomnav svg{width:24px;height:24px}.sidenav{display:none}@media (min-width:900px){.app{grid-template-columns:230px 1fr}.bottomnav{display:none}.sidenav{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:4px;height:100dvh;padding:1rem .75rem;display:flex;position:sticky;top:0}.sidenav a{color:var(--text-2);border-radius:10px;align-items:center;gap:.6rem;min-height:44px;padding:.6rem .75rem;text-decoration:none;display:flex}.sidenav a.active{background:var(--accent-soft);color:var(--text);font-weight:700}.sidenav .brand{color:var(--accent);padding:.4rem .75rem 1rem;font-size:1.25rem;font-weight:800}.main{padding-bottom:2rem}.topbar .brand{visibility:hidden}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:.75rem 0;padding:1rem}.card h2:first-child,.card h3:first-child{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stack>*+*{margin-top:.5rem}.muted{color:var(--muted)}.small{font-size:.9rem}.badge{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:#0000}.badge.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:#0000}.badge.err{background:var(--err-bg);color:var(--err-ink);border-color:#0000}.badge.demo{background:var(--demo-bg);color:var(--demo-ink);border-color:#0000}.notice{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;margin:.6rem 0;padding:.7rem .9rem}.notice.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:#0000}.notice.err{background:var(--err-bg);color:var(--err-ink);border-color:#0000}.notice.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:#0000}.notice.demo{background:var(--demo-bg);color:var(--demo-ink);border-color:#0000;font-weight:600}.list{margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--border);padding:.6rem 0}.list>li:last-child{border-bottom:0}.listlink{color:var(--text);justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;text-decoration:none;display:flex}.chip{border:1px solid var(--border);background:var(--surface-2);min-height:32px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;margin:2px;padding:0 10px;font-size:.85rem;display:inline-flex}button.chip{min-width:0;min-height:32px;padding:0 10px}.chip[aria-pressed=true],.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seg{flex-wrap:wrap;gap:6px;display:inline-flex}.cite{vertical-align:super;background:var(--accent-soft);min-width:24px;min-height:24px;color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;margin-left:2px;padding:0 6px;font-size:.75rem}.split{gap:1rem;display:grid}@media (min-width:900px){.split{grid-template-columns:1fr 1fr}}.viewer{background:radial-gradient(circle at 50% 40%, var(--surface) 0%, var(--surface-2) 100%);border-radius:var(--radius);border:1px solid var(--border);touch-action:none;width:100%;height:min(62vh,560px);position:relative;overflow:hidden}.viewer-overlay{pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:8px;left:8px}.viewer-overlay>*{pointer-events:auto}.orient{background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:8px;padding:4px 8px;font-size:.78rem;position:absolute;bottom:8px;left:8px}.toolbar{flex-wrap:wrap;gap:6px;margin:.5rem 0;display:flex}.toolbar button{padding:.4rem .7rem}.arch{width:100%;max-width:720px;margin:0 auto;display:block}.arch-wrap{padding:.25rem}.arch .tooth-btn{cursor:pointer}.arch .tooth-btn rect,.arch .tooth-btn path{fill:var(--surface);stroke:var(--accent-2);stroke-width:2.5px}.arch .tooth-btn:hover rect,.arch .tooth-btn:focus rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.5px}.arch text{fill:var(--text);pointer-events:none;font-size:23px;font-weight:800}.arch .label{fill:var(--muted);font-size:16px;font-weight:600}.pairs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;display:grid}.pairs>div{min-width:0}.option{overflow-wrap:anywhere}.pairs button{text-align:left;white-space:normal;justify-content:flex-start;height:auto}.pairs button.sel{outline:3px solid var(--accent)}.pairs button.done{background:var(--ok-bg);color:var(--ok-ink)}.pairs button.wrong{background:var(--err-bg);color:var(--err-ink)}.option{text-align:left;white-space:normal;justify-content:flex-start;width:100%;height:auto;margin:6px 0;padding:.7rem .9rem;display:flex}.option[aria-pressed=true]{border-color:var(--accent);outline:2px solid var(--accent);background:var(--accent-soft)}.option.correct{background:var(--ok-bg);color:var(--ok-ink)}.option.incorrect{background:var(--err-bg);color:var(--err-ink)}.block{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin:.5rem 0;padding:.6rem}.block.uncertain{border-color:var(--warn-ink);background:var(--warn-bg)}.block.highlight{outline:3px solid var(--accent)}mark{color:#3a2a00;background:#ffe28a;border-radius:3px;padding:0 2px}.img-frame{max-width:100%;display:inline-block;position:relative}.img-frame img{border:1px solid var(--border);border-radius:8px;max-width:100%;height:auto;display:block}.img-frame .region{border:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:4px;position:absolute}dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;max-width:min(720px,100vw - 32px);max-height:calc(100dvh - 40px);padding:1rem}dialog::backdrop{background:#00000073}.progress{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.progress>span{background:var(--accent);height:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.kbd{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:.85rem}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 8px}.table-wrap{overflow-x:auto}.statusline{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.dot{background:var(--muted);border-radius:50%;width:9px;height:9px;display:inline-block}.dot.on{background:#2e9e57}.dot.off{background:#c0392b}@media print{.bottomnav,.sidenav,.topbar,.no-print{display:none!important}.main{padding:0}.card{box-shadow:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}figcaption{overflow-wrap:anywhere}.tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin:.5rem 0 1rem;display:grid}.tile{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);flex-direction:column;gap:4px;min-height:100px;padding:1rem;text-decoration:none;display:flex}.tile:hover,.tile:focus-visible{border-color:var(--accent-2);background:var(--accent-soft)}.tile-icon{margin-bottom:4px;font-size:1.8rem;line-height:1}.tile.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tile.primary .muted{color:inherit;opacity:.9}.item-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin:.5rem 0 1rem;display:grid}.item-card .clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.item-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.item-card:hover,.item-card:focus-visible{border-color:var(--accent-2)}.item-card .item-body{flex-direction:column;gap:2px;padding:.6rem .75rem .8rem;display:flex}.thumb{aspect-ratio:4/3;object-fit:cover;background:var(--surface-2);width:100%;display:block}.thumb-empty{opacity:.5;justify-content:center;align-items:center;font-size:2.2rem;display:flex}details>summary{cursor:pointer;align-items:center;gap:.4rem;min-height:44px;display:flex}.focus-box{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);margin:.75rem 0;padding:.9rem 1rem}.arch .tooth-btn.selected rect{fill:var(--accent);stroke:var(--accent);stroke-width:3px}.arch .tooth-btn.selected text{fill:var(--accent-ink)}.tooth-pop{z-index:5;background:var(--surface);border:2px solid var(--accent);box-shadow:var(--shadow);text-align:center;border-radius:12px;width:220px;max-width:calc(100vw - 40px);padding:.5rem .7rem;position:absolute;transform:translate(-50%,-100%)}.tooth-pop .fdi{color:var(--accent);font-size:1.4rem;font-weight:800;line-height:1.1}.tooth-pop .latin{font-style:italic}.arch-wrap{position:relative}.legend-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:.5rem;display:grid}.legend-item{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:.6rem;padding:.5rem;display:flex}.legend-item svg{flex:none}.canals{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.canals .big{color:var(--accent);font-size:2.4rem;font-weight:800;line-height:1}
