:root{color-scheme:light;--paper:#f7f6f1;--ink:#1b221e;--muted:#61685e;--line:#d5d8cf;--accent:#365d83;--wash:#eeefe8}
:root[data-theme="dark"]{color-scheme:dark;--paper:#080909;--ink:#eeeee8;--muted:#a5a8a1;--line:#2b2e2c;--accent:#a7bddf;--wash:#111411}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;height:100dvh;display:flex;flex-direction:column}
header{padding:12px 22px;border-bottom:1px solid var(--line);display:flex;gap:12px 24px;align-items:center;flex-wrap:wrap}a{color:var(--accent);text-underline-offset:4px}header>a,footer a{min-height:44px;display:inline-flex;align-items:center}header .label{color:var(--muted);font-size:13px}.controls{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}button{font:inherit;min-width:44px;min-height:44px;padding:8px 12px;background:transparent;border:1px solid var(--line);color:inherit;cursor:pointer}button:hover{background:var(--wash)}button:focus-visible,a:focus-visible,#canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}output{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}
.hint{margin:0;padding:8px 22px;font-size:13px;color:var(--muted)}#canvas{position:relative;flex:1;min-height:140px;overflow:auto;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior:contain}#canvas.is-dragging{cursor:grabbing;user-select:none}#diagram{display:block;max-width:none;height:auto;margin-inline:auto;user-select:none}footer{padding:8px 22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px 20px;flex-wrap:wrap}footer div{display:flex;gap:20px}footer a{font-size:13px}
@media(max-width:680px){header{padding:8px 12px;gap:0 16px}.controls{width:100%;margin:6px 0 0;gap:6px}button{padding:8px 10px}.hint{padding:8px 12px;font-size:12px}footer{padding:6px 12px}header .label{font-size:12px}}
