:root{--ink:#1c1a16;--paper:#f6f1e7;--sunken:#eae3d6;--border:#1c1a16;--muted:#6e675c;--accent:#b95c3c;--ok:#4f7a4a;--warn:#b8862b;--error:#a63d2a;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{background:var(--sunken);height:100%;color:var(--ink);font:13px/1.45 var(--font-sans);margin:0}#app{grid-template-rows:1fr 28px;grid-template-columns:300px 1fr 320px;height:100vh;display:grid}#left,#right{background:var(--paper);border-right:1.5px solid var(--border);flex-direction:column;gap:10px;padding:10px;display:flex;overflow-y:auto}#right{border-right:0;border-left:1.5px solid var(--border)}#brand{font:600 15px var(--font-sans);letter-spacing:-.02em;padding:2px 0 6px}#viewport{background:#d9d2c4;min-width:0;position:relative}#view{width:100%;height:100%;display:block}#status{background:var(--ink);height:26px;color:var(--paper);font:11.5px var(--font-mono);white-space:nowrap;align-items:center;gap:12px;padding:0 10px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}#messages{pointer-events:none;gap:6px;width:min(560px,90%);display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.msg{pointer-events:auto;border:1.5px solid var(--border);background:var(--paper);box-shadow:2px 2px 0 var(--ink);font:12px var(--font-sans);border-radius:6px;padding:8px 10px}.msg.error{border-color:var(--error);color:var(--error)}.msg.warn{border-color:var(--warn)}.msg code{font:11.5px var(--font-mono);background:var(--sunken);border-radius:3px;padding:1px 4px}.panel{gap:6px;display:grid}.panel h2{font:500 11px var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}.panel label{font:12px var(--font-sans);align-items:center;gap:6px;display:flex}.panel select,.panel input[type=range]{width:100%}.panel button{font:11.5px var(--font-mono);border:1px solid var(--border);background:var(--paper);cursor:pointer;border-radius:4px;padding:1px 8px}.row{font:11.5px var(--font-mono);align-items:center;gap:8px;display:flex}.row .k{color:var(--muted)}.row .v{margin-left:auto}.kv{font:11.5px var(--font-mono);grid-template-columns:auto 1fr;gap:3px 10px;display:grid}.kv .k{color:var(--muted)}.kv .v{text-align:right;word-break:break-all}.tile{font:11.5px var(--font-mono);gap:8px;display:flex}.tile .st{margin-left:auto}.tile.loaded .st{color:var(--ok)}.tile.loading .st,.tile.pending .st{color:var(--muted)}.tile.missing .st,.tile.altered .st,.tile.too-large .st,.tile.failed .st{color:var(--error)}.tile.empty .st{color:var(--muted)}.swatch{border:1px solid var(--ink);border-radius:2px;width:10px;height:10px;display:inline-block}.note{font:11px var(--font-sans);color:var(--muted)}pre{font:11px var(--font-mono);white-space:pre-wrap;word-break:break-all;margin:0}details summary{cursor:pointer;font:12px var(--font-sans)}.facts-scroll{overflow-x:auto}table.facts{border-collapse:collapse;font:11px var(--font-mono);width:100%}table.facts th,table.facts td{text-align:right;border-bottom:1px solid #d5cdbf;padding:2px 4px}table.facts th:first-child,table.facts td:first-child{text-align:left}#footer{border-top:1.5px solid var(--border);background:var(--paper);font:11px var(--font-mono);color:var(--muted);grid-column:1/-1;align-items:center;gap:8px;padding:0 12px;display:flex}.badge{font:600 10px var(--font-mono);border:1px solid var(--warn);color:var(--warn);border-radius:4px;padding:1px 6px}
