:root{--pm-ink:#06080C;--pm-surface:#0E1218;--pm-surface-2:#161C26;--pm-border:#232B3A;--pm-text:#E8EDF4;--pm-muted:#8A94A8;--pm-cue:#34E2B4;--pm-peak:#F5AF3C;--pm-harm:#9B5CFF;--pm-clip:#FF6B5C;--pm-font-display:"Space Grotesk",Bahnschrift,system-ui,sans-serif;--pm-font-ui:Inter,ui-sans-serif,system-ui,"Segoe UI",sans-serif;--pm-font-mono:"JetBrains Mono",Consolas,ui-monospace,monospace;--pm-radius-panel:10px;--pm-radius-control:6px}.pm-num{font-family:var(--pm-font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}:root{--bg:var(--pm-ink);--panel:var(--pm-surface);--panel-2:var(--pm-surface-2);--border:var(--pm-border);--text:var(--pm-text);--muted:var(--pm-muted);--accent:var(--pm-cue);--accent-2:var(--pm-harm);--danger:var(--pm-clip)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}a{color:var(--accent-2);text-decoration:none}.nav{display:flex;gap:4px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav .brand{font-weight:700;margin-right:20px;letter-spacing:.5px}.nav .brand span{color:var(--accent)}.nav a{padding:6px 12px;border-radius:8px;color:var(--muted)}.nav a:hover{background:var(--panel-2);color:var(--text)}.container{max-width:1100px;margin:0 auto;padding:24px 20px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:18px}h1{font-size:20px;margin:0 0 16px}h2{font-size:15px;margin:0 0 12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}.badge,tr:hover td{background:var(--panel-2)}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid var(--border)}.badge.key{color:#0b0d12;background:var(--accent);border:none}.badge.bpm{color:var(--accent-2)}.badge.ok{color:var(--accent)}.badge.off{color:var(--danger)}button{background:var(--accent);color:#0b0d12;border:none;padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger);color:#fff}button:hover{opacity:.9}input,select,textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;font-size:13px;width:100%}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.stat{display:flex;gap:24px}.stat .num{font-size:26px;font-weight:700}.stat .lbl{color:var(--muted);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.dot.on{background:var(--accent)}.dot.offd{background:var(--danger)}code{background:var(--panel-2);padding:2px 6px;border-radius:4px;font-size:12px}.publisher-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px}.field,.publisher-grid{display:grid;margin-bottom:14px}.field{grid-gap:8px;gap:8px}.field span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.check{display:flex;gap:10px;align-items:center;margin-bottom:16px}.check input{width:auto}.publisher-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px}.publisher-previews{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.publisher-image,.publisher-video{width:100%;border-radius:12px;border:1px solid var(--border);background:var(--panel-2);display:block}.asset-links{display:flex;gap:10px;flex-wrap:wrap}.asset-links a{display:inline-block;padding:8px 10px;border-radius:8px;background:var(--panel-2);border:1px solid var(--border)}.publisher-progress{display:grid;grid-gap:10px;gap:10px}.publisher-progress-bar{width:100%;height:12px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);overflow:hidden}.publisher-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .4s ease}.nav .brand{font-family:var(--pm-font-display);font-weight:500}.nav .brand span{font-weight:700}.gate{min-height:100vh;display:grid;place-items:center;background:radial-gradient(900px 500px at 50% -10%,rgba(52,226,180,.06),transparent 70%),var(--pm-ink);padding:24px}.gate-card{width:100%;max-width:360px;background:var(--pm-surface);border:1px solid var(--pm-border);border-radius:var(--pm-radius-panel);padding:32px 28px}.gate-brand{display:flex;align-items:center;gap:12px}.gate-word{font-family:var(--pm-font-display);font-weight:500;font-size:34px;letter-spacing:.3px}.gate-word b{font-weight:700;color:var(--pm-cue)}.gate-tag{color:var(--pm-muted);margin:10px 0 24px;font-size:14px}.gate-form{gap:14px}.gate-form,.gate-form label{display:flex;flex-direction:column}.gate-form label{gap:6px;font-size:12px;color:var(--pm-muted);text-transform:uppercase;letter-spacing:.5px}.gate-form input{background:var(--pm-ink);border:1px solid var(--pm-border);border-radius:var(--pm-radius-control);padding:10px 12px;color:var(--pm-text);font-size:15px}.gate-form input:focus{outline:none;border-color:var(--pm-cue)}.gate-form button{margin-top:6px;background:var(--pm-cue);color:#06241b;border:none;border-radius:var(--pm-radius-control);padding:11px;font-weight:700;font-size:15px;cursor:pointer}.gate-form button:disabled{opacity:.6;cursor:default}.gate-err{color:var(--pm-clip);font-size:13px;margin:0}.nav-spacer{flex:1 1}.nav-user{display:flex;align-items:center;gap:10px}.nav-owner{background:rgba(155,92,255,.16);color:var(--pm-harm);font-size:10px}.nav-logout{background:transparent;border:1px solid var(--pm-border);color:var(--pm-muted);border-radius:var(--pm-radius-control);padding:5px 12px;cursor:pointer;font-size:13px}.nav-logout:hover{color:var(--pm-text);border-color:var(--pm-cue)}.app-main{padding-bottom:92px}.play-cell{width:30px;height:30px;border-radius:50%;border:1px solid var(--pm-border);background:var(--pm-surface-2);color:var(--pm-cue);cursor:pointer;font-size:11px;display:grid;place-items:center}.play-cell:hover:not(:disabled){border-color:var(--pm-cue)}.play-cell:disabled{opacity:.3;cursor:default}.row-playing{background:rgba(52,226,180,.06)}.player{position:fixed;left:0;right:0;bottom:0;height:72px;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(220px,2fr) auto;align-items:center;grid-gap:20px;gap:20px;padding:0 20px;background:rgba(14,18,24,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--pm-border);z-index:50}.player-meta{min-width:0}.player-title{font-weight:600}.player-artist,.player-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist{color:var(--pm-muted);font-size:13px}.player-controls{display:flex;align-items:center;gap:8px}.pl-btn{background:transparent;border:none;color:var(--pm-text);cursor:pointer;font-size:15px;padding:6px}.pl-play{width:40px;height:40px;border-radius:50%;background:var(--pm-cue);color:#06241b;display:grid;place-items:center;font-size:15px}.player-seek{display:flex;align-items:center;gap:10px}.player-time{color:var(--pm-muted);font-size:12px;min-width:38px}.player-time:last-child{text-align:right}.player-seek input[type=range]{flex:1 1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:linear-gradient(to right,var(--pm-cue) var(--pct,0),var(--pm-border) var(--pct,0));cursor:pointer}.player-seek input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--pm-cue)}.player-tags{display:flex;gap:6px;align-items:center}@media (max-width:680px){.player{grid-template-columns:1fr auto;grid-auto-rows:auto;height:auto;padding:10px 14px;gap:8px}.player-seek{grid-column:1/-1}.player-tags{display:none}}.off-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--pm-border);background:var(--pm-surface-2);color:var(--pm-muted);cursor:pointer;font-size:13px;display:grid;place-items:center}.off-btn:hover:not(:disabled){border-color:var(--pm-cue);color:var(--pm-text)}.off-btn:disabled{opacity:.6;cursor:default}.off-done{color:var(--pm-cue);border-color:var(--pm-cue)}.off-err{color:var(--pm-clip);border-color:var(--pm-clip)}.off-na{font-size:12px}.mastering-progress{display:grid;grid-gap:10px;gap:10px}.mastering-progress-bar{width:100%;height:12px;border-radius:999px;background:var(--pm-surface-2);border:1px solid var(--pm-border);overflow:hidden}.mastering-progress-fill{height:100%;background:linear-gradient(90deg,var(--pm-cue),var(--pm-harm));transition:width .4s ease}.mastering-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.ua-file{flex:1 1;min-width:0;color:var(--pm-muted);font-size:13px}.ua-hint{margin:10px 0 0;font-size:12px}.ua-progress{margin-top:12px;height:4px;border-radius:2px;background:var(--pm-border);overflow:hidden}.ua-progress span{display:block;height:100%;width:40%;border-radius:2px;background:var(--pm-cue);animation:ua-indeterminate 1.1s ease-in-out infinite}@keyframes ua-indeterminate{0%{margin-left:-40%}to{margin-left:100%}}.ua-result{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ua-error,.ua-result{margin-top:12px}.uaudio{margin:4px 0 2px}.uaudio-file{flex:1 1;min-width:0;color:var(--pm-muted);font-size:13px}.uaudio-hint{margin:10px 0 0;font-size:12px}.uaudio-cancel{background:transparent;border:1px solid var(--pm-border);color:var(--pm-muted)}.uaudio-cancel:hover{border-color:var(--pm-clip);color:var(--pm-clip)}.uaudio-progress{margin-top:12px;display:flex;align-items:center;gap:10px}.uaudio-progress-track{flex:1 1;height:6px;border-radius:3px;background:var(--pm-border);overflow:hidden}.uaudio-progress-fill{height:100%;border-radius:3px;background:var(--pm-cue);transition:width .15s linear}.uaudio-pct{font-size:12px;min-width:38px;text-align:right}.uaudio-result{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.uaudio-path{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uaudio-error{margin-top:12px}