:root{--bg:#0e0f11;--surface:#16181b;--surface-2:#1d2024;--line:#2a2e33;--ink:#eceef0;--ink-2:#a9b0b7;--ink-3:#737b83;--accent:#3987e5;--good:#2fae6a;--warn:#d89a2b;--bad:#e0524a;--radius:10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.side{background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:15px;margin:0 6px 4px}.cluster{margin:0 6px 20px;font-size:12px;color:var(--ink-3)}.nav a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink-2);margin-bottom:2px}.nav a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.main{padding:28px 32px 60px;max-width:1280px}h1{font-size:22px;margin:0 0 4px}h2{font-size:15px;margin:28px 0 10px;color:var(--ink-2);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.sub{color:var(--ink-3);margin:0 0 20px}.grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.stat .label{color:var(--ink-3);font-size:12px}.stat .value{font-size:22px;font-weight:650;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .hint{color:var(--ink-3);font-size:11.5px;margin-top:4px}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}td,th{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--ink-3);font-weight:500;font-size:12px;background:var(--surface-2)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11.5px;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-3)}.badge.good:before{background:var(--good)}.badge.warn:before{background:var(--warn)}.badge.bad:before{background:var(--bad)}.badge.info:before{background:var(--accent)}.btn{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 12px;font:inherit;cursor:pointer}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{background:#3a1715;border-color:var(--bad);color:#ffb4ae}.btn:disabled{opacity:.5;cursor:default}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.err{color:#ffb4ae}.err,.ok{font-size:12.5px}.ok{color:#8fe0b4}input,select,textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:inherit}input[type=checkbox]{width:16px;height:16px}label.field{display:grid;grid-gap:4px;gap:4px;align-content:start;font-size:12.5px;color:var(--ink-2)}.form-grid{display:grid;grid-gap:14px;gap:14px;align-items:start;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.logo{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--surface-2)}.logo.lg{width:128px;height:128px;border-radius:14px}.pkg{grid-template-columns:128px 1fr;grid-gap:18px;gap:18px}.kv,.pkg{display:grid}.kv{grid-template-columns:170px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.banner{padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);margin-bottom:16px}.banner.bad{border-color:var(--bad)}.banner.warn{border-color:var(--warn)}.muted{color:var(--ink-3)}.bars{display:flex;align-items:flex-end;gap:2px;height:140px;padding:8px 0 0;border-bottom:1px solid var(--line)}.bars .bar{flex:1 1;background:var(--accent);border-radius:4px 4px 0 0;min-height:1px;position:relative}.bars .bar:hover{filter:brightness(1.25)}.bars .bar .tip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface-2);border:1px solid var(--line);padding:4px 8px;border-radius:6px;font-size:11.5px;white-space:nowrap;color:var(--ink);z-index:2}.bars .bar:hover .tip{display:block}.axis{display:flex;justify-content:space-between;color:var(--ink-3);font-size:11px;margin-top:4px}.login{max-width:360px;margin:12vh auto}.pub{min-height:100vh}.pub-head{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;border-bottom:1px solid var(--line);background:var(--surface)}.pub-head .brand{margin:0}.pub-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:32px;gap:32px;padding:32px 28px;max-width:1200px;margin:0 auto}@media (max-width:900px){.pub-main{grid-template-columns:1fr;padding:20px 14px}.pkg{grid-template-columns:1fr!important}}.upload{display:grid;place-items:center;width:140px;height:140px;border:1px dashed var(--line);border-radius:14px;cursor:pointer;text-align:center;overflow:hidden;background:var(--bg)}.upload img{width:100%;height:100%;object-fit:cover}textarea{resize:vertical}.recent{display:grid;grid-gap:8px;gap:8px}.recent-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.recent-item:hover{text-decoration:none;border-color:var(--ink-3)}.wallet-adapter-button{height:38px!important;font-size:14px!important;border-radius:8px!important}label.field input,label.field select,label.field textarea{width:100%;min-width:0}label.field input[type=checkbox]{width:16px}.pub-head{gap:12px}.wallet-adapter-button{white-space:nowrap}.name-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) 160px}@media (max-width:600px){.pub-head{padding:12px 14px}.pub-head .brand .muted{display:none}.name-grid,.pub .form-grid{grid-template-columns:1fr}}.progress{height:6px;border-radius:999px;background:var(--surface-2);margin-top:8px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);border-radius:999px}