:root{color-scheme:dark;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#d0dce3;background:#0c1620;font-size:13px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%}
.viewer{height:100%;display:grid;grid-template-rows:auto minmax(240px,1fr) auto auto;overflow:auto;border:1px solid #344b59;border-radius:14px;background:#0e1924}
header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;background:linear-gradient(110deg,#172c30,#162333);border-bottom:1px solid #344b59}
h1{margin:0;font-size:14px;font-weight:700;letter-spacing:.035em}h1 span{margin-left:7px;font-size:11px;font-weight:600;color:#8ca8ad}
.views{display:flex;gap:5px}
button{min-height:36px;min-width:38px;padding:6px 11px;border:1px solid #627b87;border-radius:8px;color:#c6d4dd;background:#1a2d3b;font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation;transition:background .15s,border-color .15s}
button:hover{background:#233c49;border-color:#73929c}button[aria-pressed=true]{background:#254839;color:#d0e2d7;border-color:#779585}button:focus-visible{outline:2px solid #91aeba;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}
#viewport{position:relative;min-height:240px;overflow:hidden;background:radial-gradient(ellipse at 48% 34%,#243849 0%,#142431 49%,#0b151f 100%)}
canvas{display:block;width:100%;height:100%;outline:none;touch-action:auto}canvas:focus-visible{box-shadow:inset 0 0 0 2px #91aeba}
.actions{display:flex;justify-content:flex-end;gap:6px;padding:9px 12px;border-top:1px solid #304452;background:#13212d}.actions [data-zoom]{font-size:18px;padding:2px 10px}
#status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;line-height:1.5;z-index:1;color:#a4bac7}#status[hidden]{display:none}
footer{padding:8px 14px 10px;border-top:1px solid #2e414d;background:#101c27}footer p{margin:0;font-size:11px;line-height:1.4;color:#a2b4c1}footer .hint{margin-bottom:4px;color:#b7cbd2}
@media(max-width:430px){header{padding:9px 10px;gap:7px}h1{font-size:12px}.views{gap:4px}.views button{padding:5px 7px;font-size:11px;min-width:31px;min-height:34px}footer{padding:7px 10px}footer p{font-size:11px}.actions{padding:8px 9px}.actions button{min-height:36px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none}}
