:root{--bg:#0f1216;--card:#171b21;--line:#262c34;--text:#e6e9ee;--muted:#95a0ad;--accent:#4f8cff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.shell{max-width:1100px;margin:0 auto;padding:32px 20px 64px}.shell__header h1{font-size:1.6rem;margin:0 0 4px}.shell__sub{color:var(--muted);margin:0 0 24px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(max-width:720px){.grid{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 8px}.card__title{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right}.tasks{list-style:none;padding:0;margin:0}.tasks__item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.tasks__dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.empty,.placeholder{color:var(--muted)}.placeholder{margin-top:12px;font-size:.85rem;border-top:1px dashed var(--line);padding-top:10px}.state{padding:24px;color:var(--muted)}.state--error{color:#ff6b6b}.asset__headline{font-weight:600;margin:0 0 4px}.asset__meta{color:var(--muted);margin:0}.viewnav{display:flex;gap:8px;margin-top:12px}.viewnav button{background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}.viewnav .viewnav__on,.viewnav button.viewnav__on{color:var(--text);border-color:var(--accent)}.public{max-width:800px;margin:0 auto;padding:32px 20px}.public h1{font-size:1.5rem}.ops__json{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;font-size:12px}.twin{display:grid;grid-template-columns:220px 1fr;gap:16px}@media(max-width:720px){.twin{grid-template-columns:1fr}}.twin__nav{display:flex;flex-direction:column;gap:4px}.twin__tab{text-align:left;background:transparent;color:var(--muted);border:none;border-radius:8px;padding:8px 10px;cursor:pointer}.twin__tab--active{background:var(--card);color:var(--text);border:1px solid var(--line)}
