:root{--panel-bg: rgba(18, 22, 28, .78);--panel-border: rgba(255, 255, 255, .08);--text: #e8ecef;--muted: #9aa6b1;--accent: #e9b65a;--ok: #7cc78a;--warn: #e9b65a;--bad: #e2725b;--admin: #c48de0;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;color:var(--text)}*{box-sizing:border-box}html,body,#root,.app{margin:0;height:100%;overflow:hidden;background:#0d1014}.scene{position:absolute!important;top:0;right:0;bottom:0;left:0}.overlay{position:absolute;top:12px;display:flex;flex-direction:column;gap:10px;max-height:calc(100% - 24px);pointer-events:none}.overlay>*{pointer-events:auto}.overlay-left{left:12px;width:min(320px,calc(100vw - 24px))}.overlay-right{right:12px;width:300px}@media (max-width: 720px){.overlay-right{display:none}}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:12px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-title{font-weight:600;letter-spacing:.02em;margin-bottom:8px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:8px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.small{font-size:12px}.muted{color:var(--muted)}.error{color:var(--bad);margin-top:6px}.status{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}.status-open .dot{background:var(--ok)}.status-closed .dot,.status-incompatible .dot{background:var(--bad)}.row{display:flex;gap:6px;margin:6px 0}.row.wrap{flex-wrap:wrap}input{flex:1;min-width:0;background:#ffffff0f;border:1px solid var(--panel-border);border-radius:6px;color:var(--text);padding:6px 8px}button{background:#ffffff14;border:1px solid var(--panel-border);border-radius:6px;color:var(--text);padding:5px 10px;cursor:pointer}button:hover{background:#ffffff24}button.active{border-color:var(--accent);color:var(--accent)}button.link{background:none;border:none;padding:0;color:var(--muted);text-decoration:underline}.timeline{overflow-y:auto;max-height:calc(100vh - 24px)}.timeline ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.event{border-left:3px solid var(--muted);padding-left:8px}.event.source-1{border-color:var(--ok)}.event.source-2{border-color:var(--admin)}.event-head{display:flex;justify-content:space-between;align-items:baseline}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.event.source-2 .badge{color:var(--admin)}.section-label{margin-top:10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}select{background:#ffffff0f;border:1px solid var(--panel-border);border-radius:6px;color:var(--text);padding:4px 6px}input[type=range]{flex:1}input[type=checkbox]{flex:none}input.seed{max-width:150px}button.danger{border-color:var(--bad);color:var(--bad)}.overlay-left{overflow-y:auto}.row-between{display:flex;justify-content:space-between;align-items:center}button.link{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:0 4px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:right;padding:1px 4px}.table th:first-child,.table td:first-child{text-align:left}.table th{color:var(--muted);font-weight:400}.bar{display:inline-block;width:60px;height:6px;background:#ffffff1f;border-radius:3px;vertical-align:middle;margin-right:4px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--ok)}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}.retina{width:160px;height:60px;image-rendering:pixelated;border:1px solid var(--panel-border);margin-right:8px}.inspector{overflow-y:auto;max-height:70vh}.recent{margin:4px 0;padding-left:18px}button.active{outline:1px solid var(--ok)}.overlay-right{overflow-y:auto;width:340px}.overlay-right>.panel{flex-shrink:0}.overlay-right>.timeline{flex-shrink:1;min-height:120px}.inspector{max-height:none}.curve{display:flex;align-items:center;gap:8px;margin:2px 0;color:var(--accent, #6cf)}.curve span{color:inherit;opacity:.85;font-size:11px}
