@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/material-icons.woff2)format("woff2")}.material-icons{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Icons;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}
:root{--bg:#0b1220;--card:#0f172a;--muted:#94a3b8;--text:#e5e7eb;--border:#94a3b833;--border-strong:#94a3b852;--chip-border:#3b82f659;--chip-bg:#1d4ed840;--chip-text:#bfdbfe;--sidebar-w:60px;--sidebar-w-open:280px}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;overflow-x:hidden}a{color:inherit}.app-shell{width:100%;min-height:100vh;padding:0 16px 60px var(--sidebar-w);background:radial-gradient(900px 700px at 15% 10%, #1d4ed840, transparent 70%), var(--bg);color:var(--text)}.app-shell.sidebar-open{--sidebar-w:var(--sidebar-w-open)}@keyframes skeleton-pulse{0%{opacity:.45}50%{opacity:.85}to{opacity:.45}}.app-shell-skeleton .app-sidebar{transition:none}.app-shell-skeleton-icon{background:#94a3b838;border-radius:10px;flex-shrink:0;width:38px;height:38px;animation:1.2s ease-in-out infinite skeleton-pulse}.app-shell-skeleton-line{background:#94a3b833;border-radius:7px;width:100%;height:14px;animation:1.2s ease-in-out infinite skeleton-pulse}.app-shell-skeleton-line-mid{width:72%}.app-shell-skeleton-line-short{width:52%}.app-sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);-webkit-backdrop-filter:blur(10px);z-index:40;background:#020617b8;flex-direction:column;transition:none;display:flex;position:fixed;inset:0 auto 0 0}.app-shell.sidebar-ready .app-sidebar{transition:width .16s}.app-sidebar-top{border-bottom:1px solid var(--border);box-sizing:border-box;align-items:center;gap:10px;height:64px;padding:8px 12px;display:flex}.app-sidebar-toggle{appearance:none;color:#e5e7eb;cursor:pointer;background:#0f172abf;border:1px solid #94a3b838;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.app-sidebar-toggle:hover{background:#020617bf;border-color:#94a3b86b}.app-sidebar-toggle:focus-visible{outline-offset:2px;outline:3px solid #6366f159}.app-sidebar-brand{color:#e5e7eb;letter-spacing:.2px;align-items:center;gap:10px;min-width:0;font-size:14px;text-decoration:none;display:flex}.app-sidebar-links{flex-direction:column;flex:1;gap:4px;padding:10px 8px;display:flex;overflow:auto}.app-sidebar-group-heading{min-height:38px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 10px 4px;font-size:11px;font-weight:700;display:flex}.app-sidebar-group-add,.app-sidebar-logout{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px;display:inline-flex}.app-sidebar-group-add:hover,.app-sidebar-logout:hover{color:var(--text);background:#94a3b81f}.app-sidebar-group-add .material-icons,.app-sidebar-logout .material-icons{width:17px;font-size:17px}.app-sidebar-group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.app-sidebar-count{text-align:center;min-width:22px;color:var(--muted);background:#94a3b81f;border-radius:999px;padding:1px 6px;font-size:11px}.app-sidebar-account{border-top:1px solid var(--border);align-items:center;gap:10px;min-height:58px;padding:10px 12px;display:flex}.app-sidebar-account img{border-radius:50%;width:30px;height:30px}.app-sidebar-account-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.app-sidebar-link{color:#e2e8f0e6;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:10px;text-decoration:none;display:flex}.app-sidebar-settings{appearance:none;width:100%;font:inherit;text-align:left;background:0 0}.app-sidebar-settings:disabled{opacity:.55;cursor:progress}.app-sidebar-link:hover{background:#0f172a8c;border-color:#94a3b82e}.app-sidebar-link:focus-visible{outline-offset:2px;outline:3px solid #6366f159}.app-sidebar-link.active{color:#fff;background:#1d4ed838;border-color:#3b82f647}.app-sidebar-section-heading{cursor:default}.app-sidebar-section-heading:hover{background:0 0;border-color:#0000}.app-sidebar-link.disabled{opacity:.45;cursor:not-allowed}.app-shell:not(.sidebar-open) .app-sidebar-label{display:none}.app-sidebar-sublist{border-left:1px solid #94a3b82e;flex-direction:column;gap:2px;margin:2px 6px 8px 20px;padding-left:10px;display:flex}.app-sidebar-subitem{appearance:none;color:#e2e8f0d1;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;padding:6px 10px;font-size:12px;line-height:1.25;text-decoration:none;overflow:hidden}.app-sidebar-subitem:hover{color:#e2e8f0f5;background:#0f172a80;border-color:#94a3b829}.app-sidebar-subitem:focus-visible{outline-offset:2px;outline:3px solid #6366f159}.app-sidebar-subitem.active{color:#fff;background:#1d4ed82e;border-color:#3b82f638}.app-sidebar-upload-btn{color:#bfdbfe;background:#3b82f61f;border-color:#60a5fa3d;align-items:center;gap:6px;width:100%;font-weight:500;display:flex}.app-sidebar-upload-btn:hover{color:#dbeafe;background:#3b82f633;border-color:#60a5fa61}.app-sidebar-upload-btn:disabled{opacity:.5;cursor:not-allowed}.app-sidebar-upload-btn .material-icons{width:16px;font-size:16px}.app-sidebar-upload-status,.app-sidebar-upload-error{padding:4px 10px;font-size:11px;line-height:1.3}.app-sidebar-upload-status{color:#94a3b8}.app-sidebar-upload-error{color:#fda4af}.app-sidebar .material-icons{width:20px;font-size:20px}.app-sidebar-subitem-wrapper{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:4px;padding:0;display:flex}.app-sidebar-subitem-wrapper.active{background:#1d4ed82e;border-color:#3b82f638}.app-sidebar-subitem-wrapper:hover{background:#0f172a80;border-color:#94a3b829}.app-sidebar-subitem-btn{appearance:none;color:#e2e8f0d1;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;padding:6px 10px;font-size:12px;line-height:1.25;text-decoration:none;display:flex;overflow:hidden}.app-sidebar-subitem-name{-webkit-line-clamp:2;text-overflow:ellipsis;white-space:normal;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.app-sidebar-part-count{color:#bfdbfe;letter-spacing:.06em;text-transform:uppercase;background:#3b82f62e;border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.4}.app-sidebar-subitem-wrapper.active .app-sidebar-subitem-btn{color:#fff}.app-sidebar-subitem-input{appearance:none;color:#fff;background:#0f172a99;border:1px solid #3b82f666;border-radius:6px;flex:1;min-width:0;padding:5px 9px;font-family:inherit;font-size:12px;line-height:1.25}.app-sidebar-subitem-input:focus{border-color:#3b82f6b3;outline:none}.app-sidebar-rename-btn{appearance:none;color:#e2e8f080;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;padding:4px;transition:all .12s;display:flex}.app-sidebar-rename-btn:hover{color:#bfdbfe;background:#3b82f62e}.app-sidebar-rename-btn .material-icons{width:16px;font-size:16px}.app-sidebar-delete-btn{appearance:none;color:#e2e8f080;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;padding:4px;transition:all .12s;display:flex}.app-sidebar-delete-btn .material-icons{width:16px;font-size:16px}.app-sidebar-delete-btn:hover{color:#fb7185;background:#dc262633}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border);background:#0f172afa;border-radius:12px;width:90%;max-width:440px;padding:24px;box-shadow:0 20px 40px #00000080}.modal-content h2{color:var(--text);margin:0 0 12px;font-size:18px;font-weight:600}.modal-content p{color:var(--muted);margin:0 0 24px;font-size:14px;line-height:1.5}.piece-settings-option{border:1px solid var(--border);cursor:pointer;background:#02061761;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding:14px;display:flex}.piece-settings-option span{flex-direction:column;gap:4px;display:flex}.piece-settings-option strong{color:var(--text);font-size:14px;font-weight:600}.piece-settings-option small{color:var(--muted);font-size:12px;line-height:1.4}.piece-settings-option input{accent-color:#22c55e;flex:none;width:20px;height:20px}.app-settings-select{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172acc;border-radius:6px;flex:none;padding:8px 10px;font-size:13px}.modal-actions{justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.modal-btn{appearance:none;border:1px solid var(--border-strong);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .12s}.modal-btn-cancel{color:var(--text);background:#0f172acc}.modal-btn-cancel:hover{background:#020617e6;border-color:#94a3b866}.modal-btn-delete{color:#fff;background:#dc2626;border-color:#dc2626}.modal-btn-delete:hover{background:#b91c1c;border-color:#b91c1c}.group-name-label,.new-piece-group-label{color:var(--text);flex-direction:column;gap:7px;margin:0 0 24px;font-size:13px;font-weight:600;display:flex}.group-name-input,.new-piece-group-select{border:1px solid var(--border-strong);width:100%;color:var(--text);font:inherit;background:#0206178c;border-radius:8px;padding:10px 12px}.group-name-input:focus,.new-piece-group-select:focus{border-color:#6366f1;outline:3px solid #6366f140}@media (prefers-reduced-motion:reduce){.app-sidebar{transition:none}}.app-main{width:100%;margin:0}.app-shell.document-shell{height:100vh;min-height:0;padding-bottom:0;overflow:hidden}.app-shell.document-shell .app-main{height:100%;min-height:0}#upload-container{margin:20px 0 30px}#upload{color:#fff;cursor:pointer;background-color:#22c55e;border:none;border-radius:10px;padding:14px 26px;font-size:16px;transition:transform 80ms,box-shadow 80ms,background-color .2s;box-shadow:0 10px 25px #22c55e40}#upload:hover{background-color:#16a34a;transform:translateY(-1px);box-shadow:0 12px 30px #22c55e4d}.piece-list{flex-direction:column;gap:12px;display:flex}.piece-row{border:1px solid var(--border);background:#0f172ad1;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid;box-shadow:0 10px 25px #00000040}.piece-actions{align-items:center;gap:8px;display:flex}.piece-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.pill{border:1px solid var(--border-strong);color:#e2e8f0f2;background:#0f172af2;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background-color .12s;display:inline-flex;box-shadow:0 2px 10px #00000040}.pill:hover{background:#020617eb;transform:translateY(-1px);box-shadow:0 10px 24px #00000059}.pill-disabled{color:#e2e8f099;box-shadow:none;cursor:not-allowed;background:#0f172a80;border:1px dashed #94a3b840}.spinner{border:8px solid #f3f3f3;border-top-color:#3498db;border-radius:50%;width:60px;height:60px;margin:20px auto;animation:2s linear infinite spin;display:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.document-layout{background:radial-gradient(900px 700px at 15% 10%, #1d4ed840, transparent 70%), var(--bg);flex-direction:column;height:100%;min-height:0;display:flex}.ribbon{z-index:50;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);box-sizing:border-box;background:#020617eb;grid-template-columns:auto 1fr auto;align-items:center;gap:4px;height:64px;padding:8px 0;display:grid;position:sticky;top:0}.ribbon-brand{color:#e5e7eb;align-items:center;gap:8px;padding:0 8px;font-size:14px;font-weight:500;display:flex}.ribbon-brand .material-icons{font-size:22px}.ribbon-brand-label{letter-spacing:.3px;font-weight:600}.ribbon-divider{display:none}.ribbon-tools{grid-column:1;justify-self:start;align-items:center;gap:2px;padding-left:8px;display:flex}.ribbon-button{appearance:none;color:#e2e8f0d9;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;text-decoration:none;transition:background .12s,border-color .12s;display:flex}.ribbon-button-panorama{z-index:60;-webkit-backdrop-filter:blur(10px);background:#0f172af0;border-color:#94a3b859;padding:8px;position:fixed;top:76px;left:12px;box-shadow:0 8px 24px #02061759}.ribbon-button-panorama .ribbon-label,.ribbon.outline-active .ribbon-button-panorama{display:none}.ribbon-button:hover:not(:disabled){color:#fff;background:#0f172a99;border-color:#94a3b833}.ribbon-button:focus-visible{outline-offset:2px;outline:3px solid #6366f159}.ribbon-button.active{color:#fff;background:#1d4ed840;border-color:#3b82f659 #3b82f659 #0000}.ribbon-button.disabled,.ribbon-button:disabled{opacity:.4;cursor:not-allowed}.ribbon-icon{font-size:20px}.ribbon-label{white-space:nowrap;font-size:11px;font-weight:500;text-decoration:none}.ribbon-piece{grid-column:3;justify-self:end;padding:0 16px}.ribbon-piece-label{color:var(--muted);font-size:13px;font-weight:500}.document-layout-skeleton .ribbon{position:sticky}.ribbon-skeleton-button{background:#94a3b833;border-radius:8px;width:86px;height:44px;animation:1.2s ease-in-out infinite skeleton-pulse}.document-content{flex:1;grid-template-rows:1fr;grid-template-columns:1fr;min-height:0;display:grid;position:relative;overflow:hidden}.document-content.has-top-panel{grid-template-rows:240px 1fr}.document-content.has-top-panel.slice-top-compact{grid-template-rows:auto 1fr}.document-content.has-top-panel.outline-top{grid-template-rows:auto minmax(0,1fr)}.document-content.has-side-panel{grid-template-columns:1fr 400px}.document-content.has-side-panel.rehearse-side{grid-template-columns:1fr 460px}.document-content.has-bottom-panel{grid-template-rows:1fr 240px}.document-content.has-bottom-panel.has-beatmap-panel{grid-template-rows:minmax(0,1fr) auto}.document-content.has-bottom-panel.rehearse-parts{grid-template-rows:1fr 460px}.document-content.has-side-panel.has-bottom-panel{grid-template-rows:1fr 240px;grid-template-columns:1fr 400px}.document-content.has-side-panel.has-bottom-panel.has-beatmap-panel{grid-template-rows:minmax(0,1fr) auto}.document-content.has-side-panel.has-bottom-panel .bottom-panel{z-index:1;grid-column:1/-1;position:relative}.document-content.has-side-panel.has-bottom-panel .side-panel{z-index:2;position:relative}.document-content.has-top-panel.has-bottom-panel{grid-template-rows:240px 1fr 240px}.document-content.has-side-panel.has-top-panel{grid-template-rows:240px 1fr;grid-template-columns:1fr 400px}.document-content.has-side-panel.has-top-panel.has-bottom-panel{grid-template-rows:240px 1fr 240px;grid-template-columns:1fr 400px}.document-content.has-full-panel{grid-template-rows:1fr;grid-template-columns:1fr}.document-content.has-full-panel.has-bottom-panel.has-beatmap-panel{grid-template-rows:minmax(0,1fr) auto}.document-content.has-bottom-panel .full-panel{grid-row:1/2}.document-content.has-top-panel.has-bottom-panel .full-panel{grid-row:2/3}.sheet-viewer{background:var(--card);padding:12px;position:relative;overflow:auto}.sheet-viewer.fit-height-mode{overflow:hidden}.sheet-add-section{z-index:80;appearance:none;color:#e0e7ff;cursor:pointer;font:inherit;white-space:nowrap;background:#1e1b4bb8;border:1px solid #6366f180;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600;transition:opacity .12s,background .12s;position:fixed;transform:translate(2px,2px)}.sheet-add-section:hover{background:#4338caeb;border-color:#a5b4fc}.sheet-repeat-menu{z-index:90;color:#e2e8f0;-webkit-user-select:none;user-select:none;background:#020617f5;border:1px solid #94a3b852;border-radius:10px;min-width:150px;padding:6px;position:fixed;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 16px 38px #0206177a}.sheet-repeat-menu-title{color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px 6px;font-size:10px;font-weight:700}.sheet-repeat-menu button{appearance:none;color:#cbd5e1;cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:8px;font-size:12px;display:flex}.sheet-repeat-menu button.selected{color:#fff;background:#2563ebb8}.sheet-repeat-menu button.current:not(.selected){background:#3b82f629}.sheet-repeat-menu small{color:#bfdbfe;letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-weight:700}.sheet-viewer-controls{z-index:5;pointer-events:none;justify-content:flex-end;align-items:flex-start;width:100%;height:0;display:flex;position:sticky;top:0;left:0}.sheet-viewer-control-bar{pointer-events:auto;isolation:isolate;background:#020617;border:1px solid #94a3b842;border-radius:9px;align-items:center;gap:4px;padding:3px;display:flex;transform:translate(-8px,8px);box-shadow:0 8px 22px #02061752}.sheet-viewer-mode-switch,.sheet-viewer-pager{align-items:center;display:flex}.sheet-viewer-mode-switch{gap:2px}.sheet-viewer-mode-switch button,.sheet-viewer-pager button{appearance:none;color:#cbd5e1;cursor:pointer;background:0 0;border:0;flex:none;line-height:1}.sheet-viewer-mode-switch button{height:28px;font:inherit;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:600;transition:color .1s,background-color .1s;display:inline-flex}.sheet-viewer-mode-switch .material-icons{font-size:16px}.sheet-viewer-mode-switch button:not(.active):hover,.sheet-viewer-pager button:hover:not(:disabled){color:#fff;background:#94a3b824}.sheet-viewer-mode-switch button.active{color:#fff;background:#2563ebb8}.sheet-viewer-mode-switch button:focus-visible,.sheet-viewer-pager button:focus-visible{outline-offset:1px;outline:2px solid #60a5fa}.sheet-viewer-pager{border-left:1px solid #94a3b838;gap:2px;padding-left:4px}.sheet-viewer-pager button{border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.sheet-viewer-pager button:disabled{opacity:.3;cursor:default}.sheet-viewer-pager .material-icons{font-size:20px;line-height:1}.sheet-viewer-pager output{color:#e2e8f0;font-variant-numeric:tabular-nums;text-align:center;justify-content:center;align-items:center;min-width:58px;height:28px;font-size:11px;line-height:1;display:inline-flex}.sheet-skeleton-page{aspect-ratio:8.5/11;background:linear-gradient(#94a3b81f 0%,#94a3b814 100%);border:1px solid #94a3b829;border-radius:8px;width:min(100%,1000px);animation:1.2s ease-in-out infinite skeleton-pulse}.sheet-viewer-canvas-stack{display:inline-block;position:relative}.sheet-viewer.fit-height-mode .sheet-viewer-canvas-stack{will-change:transform;transition-property:transform;transition-timing-function:cubic-bezier(.22,.75,.28,1);display:block}.sheet-viewer.slice-mode{padding-top:calc(var(--slice-overlay-height,0px) + 12px)}.sheet-viewer.slice-mode .sheet-viewer-canvas-stack{flex-wrap:wrap;place-content:flex-start;align-items:flex-start;gap:12px;display:flex}.sheet-viewer-page{display:block;position:relative}.sheet-viewer.fit-height-mode .sheet-viewer-page{position:absolute;top:0}.sheet-viewer.slice-mode .sheet-viewer-page{flex:none}.sheet-viewer-base{display:block}.sheet-viewer-overlay{cursor:pointer;position:absolute;top:0;left:0}.sheet-viewer.slice-mode .sheet-viewer-overlay{cursor:crosshair}.document-sheet{grid-area:1/1}.document-content.has-top-panel .document-sheet{grid-row:2}.tool-panel{border-left:1px solid var(--border);background:#0f172af2;overflow:auto}.top-panel{border-bottom:1px solid var(--border);border-left:none;grid-area:1/1/auto/-1}.side-panel{border-left:1px solid var(--border);grid-area:1/2/-1}.bottom-panel{border-top:1px solid var(--border);border-left:none;grid-area:2/1/auto/-1}.document-content.has-top-panel .bottom-panel{grid-row:3}.full-panel{grid-area:1/1/-1/-1}.document-content.has-top-panel .full-panel{grid-row:2/-1}.panel-header{border-bottom:1px solid var(--border);padding:16px}.panel-header h2{color:var(--text);margin:0 0 4px;font-size:16px;font-weight:600}.panel-hint{color:var(--muted);margin:0;font-size:13px}.document-loading{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px;display:flex}.document-progress{background:#94a3b840;border-radius:3px;width:240px;height:6px;overflow:hidden}.document-progress>div{background:#60a5fa;border-radius:3px;height:100%;transition:width .4s}.document-loading-hint{text-align:center;max-width:420px;color:var(--muted);opacity:.85;font-size:13px;line-height:1.5}.enhancing-open-piece{color:#60a5fa;border:1px solid #60a5fa80;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.enhancing-open-piece:hover{background:#60a5fa1f}.document-error{color:#fca5a5;background:#dc262626;border:1px solid #dc26264d;border-radius:8px;margin:16px;padding:16px 24px}.document-empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.document-empty-icon{opacity:.4;font-size:64px}.document-empty h2{color:var(--text);margin:0;font-size:20px;font-weight:600}.document-empty p{margin:0;font-size:14px}.document-empty-btn{appearance:none;color:#bfdbfe;cursor:pointer;background:#1d4ed840;border:1px solid #3b82f666;border-radius:8px;margin-top:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s}.document-empty-btn:hover{background:#1d4ed859;border-color:#3b82f68c}.piece-selector-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.piece-selector-dialog{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:100%;max-width:480px;max-height:80vh;display:flex;box-shadow:0 25px 50px -12px #00000080}.piece-selector-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.piece-selector-header h2{color:var(--text);margin:0;font-size:18px;font-weight:600}.piece-selector-close{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:flex}.piece-selector-close:hover{color:var(--text);background:#94a3b826}.piece-selector-upload{border-bottom:1px solid var(--border);padding:16px 20px}.piece-selector-upload-btn{appearance:none;color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:8px;width:100%;padding:10px 20px;font-size:14px;font-weight:500;transition:background .12s}.piece-selector-upload-btn:hover:not(:disabled){background:#16a34a}.piece-selector-upload-btn:disabled{opacity:.6;cursor:not-allowed}.piece-selector-list{flex:1;padding:8px;overflow:auto}.piece-selector-loading,.piece-selector-empty{text-align:center;color:var(--muted);padding:24px}.piece-selector-item{appearance:none;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:background .12s,border-color .12s;display:flex}.piece-selector-item:hover{background:#0f172a99;border-color:#94a3b833}.piece-selector-item .material-icons{color:var(--muted);font-size:20px}.piece-selector-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.piece-selector-item-row{align-items:center;gap:4px;display:flex}.piece-selector-item-row .piece-selector-item{flex:1;min-width:0}.piece-selector-rename-input{min-width:0;color:var(--text);font:inherit;background:#0f172a99;border:1px solid #3b82f6b3;border-radius:8px;outline:none;flex:1;padding:12px 14px}.app-sidebar-backdrop{display:none}@media (max-width:1024px){.app-shell.sidebar-open{--sidebar-w:60px}.app-shell.sidebar-open .app-sidebar{width:var(--sidebar-w-open);box-shadow:8px 0 40px #02061799}.app-shell.sidebar-open .app-sidebar-backdrop{z-index:39;background:#0206178c;display:block;position:fixed;inset:0}}@media (max-width:768px){.ribbon-label{display:none}.ribbon-button{padding:8px 10px}.ribbon-button-panorama{padding:8px}.ribbon-brand-label{display:none}.ribbon{grid-template-columns:1fr}.ribbon-piece{display:none}.ribbon-tools{grid-column:1;max-width:100%;overflow-x:auto}.app-shell{padding-right:8px}.slice-toolbar,.beatmap-panel.top-panel{right:8px}.document-content.has-side-panel{grid-template-rows:1fr auto;grid-template-columns:1fr}.side-panel{border-left:none;border-top:1px solid var(--border);grid-area:2/1;max-height:50vh}}.slice-panel{background:var(--card);--slice-toolbar-height:74px;height:100%;padding-top:var(--slice-toolbar-height);flex-direction:column;display:flex;overflow:hidden}.slice-toolbar{box-sizing:border-box;border-bottom:1px solid var(--border);top:64px;left:var(--sidebar-w);min-height:var(--slice-toolbar-height);z-index:45;background:#020617cc;flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex;position:fixed;right:16px;overflow:hidden}.slice-nav{flex:0 auto;align-items:center;gap:8px;min-width:0;display:flex}.slice-page-info{color:var(--muted);white-space:nowrap;font-size:13px}.slice-actions{flex-wrap:nowrap;flex:auto;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.slice-scale{border:1px solid var(--border-strong);background:#0f172ab3;border-radius:6px;flex:0 240px;align-items:center;gap:8px;min-width:150px;padding:6px 10px;display:inline-flex}.slice-scale-label{color:var(--muted);font-size:12px;font-weight:500}.slice-scale-input{accent-color:#60a5fa;width:100%;min-width:72px}.slice-scale-value{color:var(--muted);text-align:right;min-width:36px;font-size:12px}.slice-status{min-width:0;max-width:180px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.slice-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;white-space:nowrap;background:#0f172acc;border-radius:6px;flex:none;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.slice-btn:hover:not(:disabled){background:#020617e6;border-color:#94a3b866}.slice-btn:disabled{opacity:.4;cursor:not-allowed}.slice-btn.primary{color:#fff;background:#22c55e;border-color:#22c55e}.slice-btn.primary:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.slice-btn .material-icons{font-size:18px}.slice-btn.active{background:#22c55e4d;border-color:#22c55e}.slice-btn.active:hover:not(:disabled){background:#22c55e66;border-color:#16a34a}.slice-tool-section{flex:none;align-items:center;display:flex;position:relative}.slice-tool-section-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:700;line-height:1;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.slice-tool-section-actions{align-items:center;gap:6px;display:flex}.slice-divider{background:var(--border-strong);flex:0 0 1px;width:1px;height:24px;margin:0 2px}@media (max-width:1500px){.slice-toolbar{gap:6px;padding-inline:10px}.slice-actions{gap:6px}.slice-tool-section-actions{gap:4px}.slice-btn:not(.primary){gap:0;padding-inline:9px}.slice-btn:not(.primary) .slice-btn-label{display:none}.slice-scale{flex-basis:190px}.slice-divider{margin:0}}@media (max-width:900px){.slice-nav,.slice-scale-label{display:none}.slice-scale{flex-basis:140px;min-width:120px}}@media (max-width:768px){.slice-toolbar{align-content:center;padding:8px 10px}.slice-actions{flex-wrap:wrap;justify-content:center;gap:5px}.slice-scale{flex-basis:130px;min-width:116px}.slice-divider,.slice-status,.slice-tool-section-label{display:none}.slice-btn.primary{gap:0;padding-inline:9px}.slice-btn.primary .slice-btn-label{display:none}}@media (max-width:600px){.slice-panel{--slice-toolbar-height:108px}}@media (max-width:420px){.slice-panel{--slice-toolbar-height:100px}.slice-actions{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;width:100%;display:grid}.slice-scale{grid-column:span 2;gap:4px;width:100%;min-width:0;padding-inline:6px}.slice-scale-input{min-width:0}.slice-scale-value{min-width:30px}.slice-tool-section,.slice-tool-section-actions{display:contents}.slice-tool-section-label{display:none}.slice-btn,.slice-btn.primary,.slice-btn:not(.primary){justify-content:center;width:100%;padding-inline:5px}}.slice-hint{color:var(--muted);border-bottom:1px solid var(--border);background:#1d4ed81a;flex-shrink:0;padding:10px 16px;font-size:13px}.slice-panel.slice-panel-overlay{z-index:30;pointer-events:none;background:0 0;height:auto;padding-top:0;position:absolute;top:0;left:0;right:0;overflow:visible}.slice-panel.slice-panel-overlay .slice-toolbar{-webkit-backdrop-filter:blur(8px);pointer-events:auto;background:#020617d9;min-height:0;padding:22px 12px 10px;position:static}.slice-panel.slice-panel-overlay .slice-hint{-webkit-backdrop-filter:blur(8px);background:#020617bf}.repeat-editor-backdrop{z-index:80;pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020617ad;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.repeat-editor{border:1px solid var(--border-strong);width:min(820px,100%);max-height:min(720px,100vh - 48px);color:var(--text);background:#0f172a;border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000080}.repeat-editor-header,.repeat-editor-footer,.repeat-editor-rule-row,.repeat-editor-ending{align-items:center;display:flex}.repeat-editor-header{border-bottom:1px solid var(--border);justify-content:space-between;gap:18px;padding:18px 20px}.repeat-editor-header h2,.repeat-editor-header p{margin:0}.repeat-editor-header h2{font-size:18px}.repeat-editor-header p,.repeat-editor-footer,.repeat-editor-empty{color:var(--muted);font-size:12px}.repeat-editor-header p{margin-top:4px}.repeat-editor-close,.repeat-editor-remove,.repeat-editor-add-ending{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0}.repeat-editor-close,.repeat-editor-remove{border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.repeat-editor-close:hover,.repeat-editor-remove:hover{color:#fff;background:#94a3b824}.repeat-editor-body{flex:1;padding:16px 20px;overflow:auto}.repeat-editor-rule{border:1px solid var(--border);background:#0206175c;border-radius:10px;padding:14px}.repeat-editor-rule+.repeat-editor-rule{margin-top:12px}.repeat-editor-rule-row,.repeat-editor-ending{flex-wrap:wrap;gap:12px}.repeat-editor-rule-row strong{min-width:78px;font-size:13px}.repeat-editor-rule-row label,.repeat-editor-ending label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.repeat-editor input{border:1px solid var(--border-strong);width:70px;color:var(--text);font:inherit;background:#0f172af2;border-radius:6px;padding:6px 8px}.repeat-editor-ending{background:#1e40af1a;border-left:2px solid #60a5fa80;margin:12px 0 0 90px;padding:10px}.repeat-editor-ending>span{color:#bfdbfe;font-size:12px;font-weight:600}.repeat-editor-passes input{width:96px}.repeat-editor-add-ending{border-radius:6px;align-items:center;gap:4px;margin:10px 0 0 86px;padding:5px 8px;font-size:12px;display:inline-flex}.repeat-editor-add-ending:hover{color:#bfdbfe;background:#3b82f61f}.repeat-editor-add-ending .material-icons{font-size:16px}.repeat-editor-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 20px}.repeat-editor-footer>span{margin-right:auto}.page-picker-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;display:grid}.page-picker-page{border:1px solid var(--border);cursor:pointer;background:#0206175c;border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.page-picker-page:hover{border-color:var(--border-strong)}.page-picker-page img{background:#fff;border-radius:4px;width:100%;height:auto}.page-picker-page.is-hidden img{opacity:.35;filter:grayscale()}.page-picker-caption{color:var(--text);align-items:center;gap:8px;font-size:12px;display:inline-flex}.page-picker-page.is-hidden .page-picker-caption{color:var(--muted)}.page-picker-error{color:#fca5a5;margin:0 0 12px;font-size:12px}.slice-canvas-container{flex:1;justify-content:center;padding:16px;display:flex;overflow:auto}.slice-canvas-container canvas{cursor:crosshair;border:1px solid var(--border);border-radius:4px;display:block}.slice-coords{color:#fff;pointer-events:none;z-index:9999;background:#000c;border-radius:4px;padding:4px 8px;font-family:monospace;font-size:11px;position:fixed}.slice-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.panorama-panel{visibility:hidden;pointer-events:none;z-index:2;background:0 0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panorama-panel.is-open{visibility:visible}.panorama-panel.is-open.is-ready,.panorama-panel.is-open.is-error{pointer-events:auto}.panorama-panel.is-ready{background:#fff}.panorama-loading{z-index:1;border:1px solid var(--border);color:var(--text);background:#020617e0;border-radius:999px;padding:8px 12px;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #02061740}.panorama-refresh-btn,.panorama-debug-btn,.panorama-pen-btn,.panorama-clear-hints-btn{z-index:1;border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;background:#020617e0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:16px;left:16px;box-shadow:0 4px 16px #02061740}.panorama-refresh-btn:hover:not(:disabled),.panorama-debug-btn:hover:not(:disabled),.panorama-pen-btn:hover:not(:disabled),.panorama-clear-hints-btn:hover:not(:disabled){background:#020617f5}.panorama-refresh-btn:disabled,.panorama-debug-btn:disabled,.panorama-pen-btn:disabled,.panorama-clear-hints-btn:disabled{cursor:default;opacity:.7}.panorama-refresh-btn .material-icons,.panorama-debug-btn .material-icons,.panorama-pen-btn .material-icons,.panorama-clear-hints-btn .material-icons{font-size:20px}.panorama-debug-btn{left:60px}.panorama-debug-btn.is-active{color:#f87171;border-color:#f87171}.panorama-pen-btn{left:104px}.panorama-pen-btn.is-active{color:#f472b6;border-color:#f472b6}.panorama-pen-btn.is-busy .material-icons{animation:1s ease-in-out infinite panorama-pen-pulse}@keyframes panorama-pen-pulse{0%,to{opacity:1}50%{opacity:.35}}.panorama-clear-hints-btn{left:148px}.panorama-canvas.is-drawing{cursor:crosshair;touch-action:none}.panorama-pen-stroke{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.panorama-pen-stroke polyline{fill:none;stroke:#f472b6;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.panorama-refresh-btn.is-spinning .material-icons{animation:.8s linear infinite panorama-refresh-spin}@keyframes panorama-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.panorama-scroll{box-sizing:border-box;visibility:hidden;width:100%;min-width:0;height:100%;min-height:0;padding:12px 88px 88px 12px;overflow:auto}.panorama-panel.is-open.is-ready .panorama-scroll{visibility:visible}.panorama-panel.is-error .panorama-scroll{display:none}.panorama-scroll img{max-width:none;display:block}.panorama-canvas{position:relative}.panorama-playhead{pointer-events:none;background:#22c55e;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.panorama-toolbar{border-bottom:1px solid var(--border);background:#020617cc;flex-shrink:0;align-items:center;gap:16px;padding:12px 16px;display:flex}.panorama-toolbar h2{color:var(--text);margin:0;font-size:16px;font-weight:600}.panorama-status{color:var(--muted);font-size:13px}.panorama-error{color:#fca5a5;background:#dc262626;border-bottom:1px solid #dc26264d;padding:12px 16px;font-size:13px}.panorama-canvas-container{background:#f5f5f5;width:fit-content;max-width:100%;padding:16px;overflow:auto}.panorama-canvas-container canvas{display:block}.panorama-empty{min-height:0;color:var(--muted);background:var(--card);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.outline-panel{background:#0f172a;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.outline-header{box-sizing:border-box;color:#f8fafc;background:#020617e0;border-bottom:1px solid #94a3b838;justify-content:space-between;align-items:center;gap:20px;min-height:48px;padding:8px 16px;display:flex}.outline-header>div,.outline-legend,.outline-legend span{align-items:center;display:flex}.outline-header>div:first-child{gap:12px}.outline-header strong{font-size:14px}.outline-header>div:first-child span,.outline-legend{color:#94a3b8;font-size:12px}.outline-legend{flex-shrink:0;gap:14px}.outline-legend span{gap:6px}.outline-legend i{border-radius:3px;width:10px;height:10px}.outline-legend i.repeat{background:#58b9e8}.outline-scroll{background:#0f172a;flex:1;min-height:0;max-height:252px;padding:8px 24px 14px;overflow:hidden auto}.outline-chart{flex-direction:column;gap:6px;width:100%;max-width:100%;padding-top:22px;display:flex;position:relative}.outline-lane{position:relative}.outline-lane-sections{height:26px}.outline-lane-track{height:16px}.outline-section-tag{appearance:none;color:#dfe3f5;cursor:pointer;min-width:3px;font:inherit;text-align:left;white-space:nowrap;background:#1c2540;border:0;border-left:3px solid #6366f1;border-radius:4px;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:600;transition:background .1s,border-color .1s;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.outline-section-tag>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.outline-section-tag small{color:#8f97b8;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;font-weight:500}.outline-section-tag:hover{background:#232d4f}.outline-section-tag.active{color:#fff;background:#2b2f75;border-left-color:#a5b4fc}.outline-section-tag.active small{color:#c7cbff}.outline-section-tag:focus-visible,.outline-section-tag.editing{outline-offset:1px;outline:2px solid #818cf8}.outline-ruler{cursor:pointer;background-repeat:no-repeat;background-size:100% 5px;border-top:1px solid #334155;height:26px;position:relative}.outline-tick{pointer-events:none;background:#64748b;width:1px;height:9px;position:absolute;top:0}.outline-tick>span{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;position:absolute;top:9px;left:0;transform:translate(-50%)}.outline-tick.first>span{transform:none}.outline-tick.last>span{transform:translate(-100%)}.outline-segment{appearance:none;color:#7dd3fc;cursor:pointer;min-width:3px;height:8px;font:inherit;background:#263048;border:0;border-radius:999px;padding:0;position:absolute;top:4px;overflow:hidden}.outline-segment.repeat,.outline-segment.ending{font-variant-numeric:tabular-nums;white-space:nowrap;background:#38bdf824;border:1px solid #38bdf873;border-radius:3px;align-items:center;height:16px;padding:0 6px;font-size:10.5px;font-weight:600;display:flex;top:0}.outline-segment.repeat.active,.outline-segment.ending.active{color:#e0f2fe;border-color:#7dd3fc}.outline-segment:hover{filter:brightness(1.2)}.outline-segment:focus-visible{outline-offset:2px;outline:2px solid #818cf8}.outline-segment>span{z-index:1;position:relative}.outline-segment-fill{pointer-events:none;background:linear-gradient(90deg,#4338ca,#6366f1);position:absolute;top:0;bottom:0;left:0}.outline-segment.repeat .outline-segment-fill,.outline-segment.ending .outline-segment-fill{background:#38bdf847}.outline-playhead{z-index:3;pointer-events:none;background:#f43f5e;width:2px;position:absolute;top:20px;bottom:0;transform:translate(-1px)}.outline-playhead:before{content:attr(data-bar);color:#fff;font-variant-numeric:tabular-nums;background:#f43f5e;border-radius:3px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.outline-add-at-bar{z-index:4;appearance:none;color:#1e1b4b;cursor:pointer;font:inherit;white-space:nowrap;background:#e0e7ff;border:0;border-radius:4px;padding:0 8px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:0;transform:translate(-50%)}.outline-add-at-bar:hover{background:#c7d2fe}.outline-add-line{z-index:2;pointer-events:none;background:#c7d2fe;width:1px;position:absolute;top:18px;bottom:0}.outline-header-actions{flex-shrink:0;align-items:center;gap:14px;display:flex}.outline-add-section{color:#e2e8f0;font:inherit;white-space:nowrap;cursor:pointer;background:#020617b3;border:1px solid #94a3b859;border-radius:6px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.outline-add-section:hover{color:#dbeafe;background:#3b82f633;border-color:#93c5fd80}.outline-section-editor{color:#94a3b8;background:#020617b3;border-bottom:1px solid #94a3b838;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;font-size:12px;display:flex}.outline-section-editor label{align-items:center;gap:6px;font-weight:600;display:flex}.outline-section-editor input{color:#f8fafc;font:inherit;background:#0f172a;border:1px solid #94a3b859;border-radius:6px;padding:5px 8px;font-size:13px}.outline-section-editor input[type=text]{width:220px}.outline-section-editor input[type=number]{width:70px}.outline-section-editor button{color:#e2e8f0;font:inherit;cursor:pointer;background:#020617b3;border:1px solid #94a3b859;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.outline-section-editor button:disabled{opacity:.5;cursor:not-allowed}.outline-section-editor button.primary{color:#fff;background:#22c55e;border-color:#22c55e}.outline-section-editor button.primary:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.outline-section-editor button.danger{color:#fca5a5;border-color:#f8717166}.outline-section-editor button.danger:hover:not(:disabled){background:#dc262633;border-color:#f87171b3}.outline-editor-error{color:#fca5a5;font-weight:600}.outline-empty{color:#94a3b8;background:#0f172a;flex:1;justify-content:center;align-items:center;display:flex}@media (max-width:768px){.outline-header>div:first-child span,.outline-legend{display:none}.outline-scroll{padding-inline:16px}}.beatmap-panel{background:var(--card);flex-direction:column;height:100%;display:flex;overflow:hidden}.beatmap-panel.bottom-panel{height:auto}.beatmap-panel.top-panel{top:64px;left:var(--sidebar-w);z-index:45;height:240px;position:fixed;right:16px}.beatmap-toolbar{border-bottom:1px solid var(--border);background:#020617cc;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.beatmap-select{appearance:none;border:1px solid var(--border-strong);color:var(--text);background:#0f172acc;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500}.beatmap-select:disabled{opacity:.4}.beatmap-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172acc;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.beatmap-btn.beatmap-icon-btn{justify-content:center;width:32px;height:32px;padding:6px}.beatmap-btn:hover:not(:disabled){background:#020617e6;border-color:#94a3b866}.beatmap-btn.active{color:#dbeafe;background:#3b82f633;border-color:#93c5fd80}.beatmap-btn:disabled{opacity:.4;cursor:not-allowed}.beatmap-btn.primary{color:#fff;background:#22c55e;border-color:#22c55e}.beatmap-btn.primary:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.beatmap-btn.primary.saving:disabled{opacity:.85;cursor:wait}.beatmap-btn .material-icons{font-size:16px}.beatmap-toolbar-spacer{flex:1}.beatmap-context{align-items:baseline;gap:9px;min-width:0;max-width:min(34vw,440px);display:flex}.beatmap-recording-title{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.beatmap-marker-count{color:#94a3b8;flex-shrink:0;font-size:12px}.beatmap-map-warning{color:#fbbf24;white-space:nowrap;border:1px solid #fbbf2466;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.beatmap-map-warning .material-icons{font-size:15px}.beatmap-time{color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.beatmap-status{color:var(--muted);font-size:13px}.beatmap-error{color:#fb7185;font-size:13px}.beatmap-hint{color:var(--muted);border-bottom:1px solid var(--border);background:#1d4ed81a;flex-shrink:0;padding:8px 16px;font-size:13px}.beatmap-waveform{background:#1e293b;flex:1;padding:12px 16px;overflow:auto hidden}.beatmap-panel.bottom-panel .beatmap-waveform{flex:none}.beatmap-waveform canvas{display:block}.beatmap-loading{color:#cbd5e1;justify-content:center;align-items:center;gap:9px;height:120px;font-size:13px;display:flex}.beatmap-loading .material-icons{color:#9fb6c9;font-size:20px}.beatmap-opening-control{background:#94a3b81a;border:1px solid #94a3b833;border-radius:6px;width:32px;height:30px;animation:1.2s ease-in-out infinite skeleton-pulse}.beatmap-opening-control.wide{width:82px}.beatmap-spin{animation:1s linear infinite spin}.beatmap-btn.uploading{color:#93c5fd;border-color:#3b82f6}.beatmap-waveform-error{color:#fda4af;align-items:center;gap:12px;max-width:640px;height:120px;padding:0 16px;display:flex}.beatmap-waveform-error>.material-icons{color:#fb7185;flex-shrink:0;font-size:28px}.beatmap-waveform-error-text{flex-direction:column;gap:2px;min-width:0;font-size:13px;display:flex}.beatmap-waveform-error-text strong{color:#fecdd3;font-size:14px}.beatmap-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.beatmap-waveform-empty{color:#94a3b84d;letter-spacing:.02em;justify-content:center;align-items:center;height:120px;font-size:26px;font-weight:600;display:flex}.beatmap-parts{border-bottom:1px solid var(--border);background:#0206178c;flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex;overflow-x:auto}.beatmap-parts-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:12px;font-weight:600}.beatmap-parts-slots{flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.beatmap-part-slot{border:1px solid var(--border-strong);background:#0f172acc;border-radius:8px;flex:150px;align-items:center;gap:6px;min-width:150px;max-width:260px;padding:4px 6px 4px 8px;display:flex}.beatmap-part-slot.filled{border-color:#94a3b866}.beatmap-parts.drag-over{background:#1d4ed82e}.beatmap-parts.drag-over .beatmap-part-slot{border-color:var(--chip-border)}.beatmap-part-slot.drag-over{background:#1d4ed84d;border-color:#3b82f6e6}.beatmap-part-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.beatmap-part-main{appearance:none;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0;padding:2px 0;display:flex}.beatmap-part-main:disabled{opacity:.6;cursor:default}.beatmap-part-label{font-size:12px;font-weight:600}.beatmap-part-file{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:11px;overflow:hidden}.beatmap-part-clear{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px;display:inline-flex}.beatmap-part-clear:hover:not(:disabled){color:#fb7185;background:#fb71851f}.beatmap-part-clear .material-icons{font-size:16px}.beatmap-part-edit{appearance:none;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px;transition:opacity .12s;display:inline-flex}.beatmap-part-slot:hover .beatmap-part-edit,.beatmap-part-slot:focus-within .beatmap-part-edit{opacity:1}.beatmap-part-edit:hover:not(:disabled){color:var(--text);background:#94a3b826}.beatmap-part-edit .material-icons{font-size:16px}.beatmap-part-input{min-width:0;font:inherit;color:var(--text);background:#020617b3;border:1px solid #3b82f6cc;border-radius:4px;outline:none;flex:1;padding:3px 6px;font-size:12px;font-weight:600}.beatmap-part-add{appearance:none;border:1px dashed var(--border-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;align-self:stretch;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.beatmap-part-add:hover:not(:disabled){color:var(--text);background:#0f172a99;border-color:#94a3b899}.beatmap-part-add:disabled{opacity:.5;cursor:default}.beatmap-part-add .material-icons{font-size:16px}.rehearse-panel{background:var(--card);flex-direction:column;height:100%;display:flex;overflow:hidden}.rehearse-toolbar{border-bottom:1px solid var(--border);background:#020617cc;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.rehearse-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172acc;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.rehearse-btn:hover:not(:disabled){background:#020617e6;border-color:#94a3b866}.rehearse-btn:disabled{opacity:.4;cursor:not-allowed}a.rehearse-btn,a.beatmap-btn{text-decoration:none}.beatmap-microtune-link{flex:none}.rehearse-btn.active{border-color:var(--accent,#38bdf8);color:var(--accent,#38bdf8)}.rehearse-btn .material-icons{font-size:16px}.rehearse-scrub{flex:1;align-items:center;gap:8px;min-width:200px;max-width:400px;display:flex}.rehearse-scrub input[type=range]{accent-color:#22c55e;flex:1}.rehearse-time{color:#cbd5e1;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.rehearse-status{color:var(--muted);margin-left:auto;font-size:13px}.rehearse-error{color:#fb7185;font-size:13px}.rehearse-waveform{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;max-height:100px;padding:8px 16px;overflow:auto hidden}.rehearse-waveform canvas{display:block}.rehearse-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.rehearse-load-error{color:#fda4af;gap:12px;padding:0 16px}.rehearse-load-error>.material-icons{color:#fb7185;flex-shrink:0;font-size:26px}.rehearse-load-error-text{flex-direction:column;gap:2px;min-width:0;font-size:13px;display:flex}.rehearse-load-error-text strong{color:#fecdd3;font-size:14px}.spatial-mixer{flex-direction:column;flex:1;min-height:0;display:flex}.spatial-mixer-toolbar{border-bottom:1px solid var(--border);background:#020617cc;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex}.spatial-mixer-hint{color:var(--muted);font-size:12px}.spatial-mixer-status{color:#fbbf24;margin-left:auto;font-size:12px}.spatial-mixer-stage{background:#0f172a;flex:1;min-height:200px}.spatial-mixer-stage canvas{cursor:grab;display:block}.beatmap-panel .spatial-mixer{border-top:1px solid var(--border);flex:none}.beatmap-panel .spatial-mixer-stage{flex:none;height:220px;min-height:0}.spatial-mixer-stage canvas:active{cursor:grabbing}.assess-panel-side{background:var(--card);overscroll-behavior:contain;flex-direction:column;height:100%;display:flex;overflow:hidden auto}.assess-panel-header{border-bottom:1px solid var(--border);background:#020617cc;flex-shrink:0;padding:12px 16px}.assess-panel-header h2{color:var(--text);margin:0 0 4px;font-size:16px;font-weight:600}.assess-panel-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assess-panel-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172acc;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;transition:background .12s;display:inline-flex}.assess-panel-btn:hover:not(:disabled){background:#020617e6}.assess-panel-btn:disabled{opacity:.4;cursor:not-allowed}.assess-panel-btn .material-icons{font-size:14px}.assess-panel-time{color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.assess-panel-hint{color:var(--muted);border-bottom:1px solid var(--border);background:#1d4ed814;flex-shrink:0;padding:8px 12px;font-size:12px}.assess-panel-notes-section{border-bottom:1px solid var(--border);flex-shrink:0;padding:12px}.assess-panel-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-size:11px}.assess-panel-notes{resize:vertical;border:1px solid var(--border-strong);width:100%;color:var(--text);background:#02061759;border-radius:8px;min-height:60px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.4}.assess-panel-notes::placeholder{color:#94a3b8b3}.assess-panel-notes-meta{color:var(--muted);margin-top:4px;font-size:11px}.assess-panel-comments{flex:1;min-height:0;padding:12px;overflow-y:auto}.assess-panel-comment-list{flex-direction:column;gap:8px;display:flex}.assess-panel-comment{border:1px solid var(--border);cursor:pointer;background:#02061759;border-radius:8px;padding:8px 10px;transition:border-color .12s,background .12s}.assess-panel-comment:hover{border-color:#94a3b866}.assess-panel-comment.active{background:#22c55e1a;border-color:#22c55e99}.assess-panel-comment-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.assess-panel-comment-delete{border:1px solid var(--border);width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;margin-left:auto;font-size:14px;display:flex}.assess-panel-comment-delete:hover{color:#e2e8f0;border-color:#94a3b880}.assess-panel-comment-text{color:var(--text);white-space:pre-wrap;font-size:13px}.assess-panel-empty{color:var(--muted);text-align:center;padding:16px;font-size:13px}.assess-comment-modal{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.assess-comment-modal-content{border:1px solid var(--border);background:#0f172afa;border-radius:10px;width:min(600px,100%);padding:14px;box-shadow:0 16px 50px #0000004d}.assess-comment-modal-title{color:var(--text);margin-bottom:10px;font-size:14px}.assess-comment-input{border:1px solid var(--border-strong);width:100%;color:var(--text);background:#02061759;border-radius:8px;outline:none;padding:10px 12px;font-size:15px}.assess-comment-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.assess-comment-modal-hint{color:var(--muted);margin-top:8px;font-size:12px}.auth-page{background:radial-gradient(800px 600px at 50% 20%, #1d4ed847, transparent 70%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{text-align:center;border:1px solid var(--border);background:#0f172adb;border-radius:18px;width:min(420px,100%);padding:38px;box-shadow:0 24px 80px #00000047}.auth-logo{color:#bfdbfe;background:#2563eb3d;border-radius:14px;place-items:center;width:52px;height:52px;font-size:30px;display:inline-grid}.auth-card h1{margin:16px 0 6px}.auth-card p{color:var(--muted);margin:0 0 26px}.auth-google-button{color:#1f2937;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:12px;min-height:46px;padding:10px 16px;font-weight:600;text-decoration:none;display:flex}.auth-google-button:hover{background:#f8fafc}.auth-google-mark{color:#4285f4;font-size:20px;font-weight:800}.auth-card .auth-tagline{margin-bottom:18px}.auth-badge{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-waitlist{flex-direction:column;align-items:stretch;gap:12px;display:flex}.auth-waitlist .auth-badge{align-self:center}.auth-card .auth-waitlist-blurb{margin:4px 0 6px}.auth-field{text-align:left;flex-direction:column;gap:6px;display:flex}.auth-field>span{color:var(--muted);font-size:13px;font-weight:600}.auth-field>span em{font-style:normal;font-weight:400}.auth-field input{border:1px solid var(--border-strong);width:100%;min-height:44px;color:var(--text);font:inherit;background:#02061799;border-radius:9px;padding:10px 12px}.auth-field input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f640}.auth-field input:disabled{opacity:.6}.auth-primary-button{color:#fff;min-height:46px;font:inherit;cursor:pointer;background:#2563eb;border:none;border-radius:9px;padding:10px 16px;font-weight:600}.auth-primary-button:hover{background:#1d4ed8}.auth-primary-button:disabled{opacity:.7;cursor:default}.auth-waitlist-done{background:#22c55e1a;border:1px solid #22c55e59;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;display:flex}.auth-waitlist-done .material-icons{color:#4ade80;font-size:32px}.auth-card .auth-waitlist-done p{color:var(--text);margin:0}.auth-card .auth-message{text-align:left;color:var(--text);border-radius:9px;margin:0 0 16px;padding:10px 12px;font-size:14px}.auth-message-info{border:1px solid var(--chip-border);background:var(--chip-bg)}.auth-message-error{background:#f871711f;border:1px solid #f8717166}.auth-card .auth-message-inline{margin:0}.auth-divider{color:var(--muted);align-items:center;gap:12px;margin:22px 0 12px;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-google-button-secondary{color:var(--text);border:1px solid var(--border-strong);background:0 0}.auth-google-button-secondary:hover{background:#94a3b814}.auth-card .auth-legal{margin:18px 0 0}.pieces-page{background:radial-gradient(900px 700px at 15% 10%, #1d4ed840, transparent 70%), var(--bg);min-height:100vh;padding:24px}.pieces-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;max-width:800px;margin:0 auto 32px;display:flex}.pieces-header h1{color:var(--text);margin:0;font-size:28px;font-weight:700}.pieces-eyebrow{color:#93c5fd;letter-spacing:.09em;text-transform:uppercase;margin-bottom:2px;font-size:11px;font-weight:700}.pieces-upload-btn{appearance:none;color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s;display:inline-flex}.pieces-upload-btn:hover:not(:disabled){background:#16a34a}.pieces-upload-btn:disabled{opacity:.6;cursor:not-allowed}.pieces-upload-btn .material-icons{font-size:20px}.pieces-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pieces-header-actions .pieces-golive-btn,.pieces-header-actions .pieces-members-btn,.pieces-header-actions .pieces-upload-btn{white-space:nowrap}.pieces-members-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172ab3;border-radius:8px;align-items:center;gap:7px;padding:9px 14px;display:inline-flex}.pieces-members-btn:hover{background:#1e293be6}.pieces-members-btn .material-icons{font-size:18px}.group-member-list{flex-direction:column;gap:4px;max-height:210px;margin:0 0 20px;display:flex;overflow:auto}.group-member{background:#02061752;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:13px;display:flex}.group-member strong,.group-member span{display:block}.group-member div>span{color:var(--muted);font-size:11px}.group-member-role{color:#bfdbfe;text-transform:capitalize;font-size:11px}.group-role-label{margin-top:12px}.pieces-list{flex-direction:column;gap:8px;max-width:800px;margin:0 auto;display:flex}.pieces-sort{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.pieces-sort-select{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172ab3;border-radius:8px;padding:7px 12px;font-size:13px}.pieces-sort-select:hover{background:#1e293be6}.pieces-section-header{justify-content:space-between;align-items:center;gap:12px;max-width:800px;margin:0 auto 16px;display:flex}.pieces-section-header h2{color:var(--text);margin:0;font-size:20px;font-weight:700}.pieces-loading{color:var(--muted);flex-direction:column;align-items:center;gap:16px;padding:48px;display:flex}.pieces-loading .spinner{display:block}.pieces-empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.pieces-empty-icon{opacity:.4;font-size:64px}.pieces-empty h2{color:var(--text);margin:0;font-size:20px;font-weight:600}.pieces-empty p{margin:0;font-size:14px}.pieces-item-row{align-items:center;display:flex;position:relative}.pieces-item-row .pieces-item{flex:1;min-width:0}.pieces-row-action{appearance:none;color:var(--muted);cursor:pointer;z-index:1;opacity:0;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:opacity .12s,color .12s,background .12s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.pieces-rename-btn{right:44px}.pieces-move-btn{right:80px}.pieces-item-row:hover .pieces-row-action,.pieces-row-action:focus-visible{opacity:1}@media (hover:hover){.pieces-item-last-opened{transition:opacity .12s}.pieces-item-row:hover .pieces-item-last-opened,.pieces-item-row:focus-within .pieces-item-last-opened{opacity:0}}.pieces-delete-btn:hover{color:#dc2626;background:#dc26261a}.pieces-move-btn:hover,.pieces-rename-btn:hover{color:#93c5fd;background:#3b82f61f}.pieces-rename-input{min-width:0;color:var(--text);background:#0f172a99;border:1px solid #3b82f6b3;border-radius:10px;flex:1;padding:16px 20px;font-family:inherit;font-size:15px}.pieces-rename-input:focus{outline:none}.pieces-item{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;background:#0f172a99;border-radius:10px;align-items:center;gap:14px;width:100%;padding:16px 20px;font-size:15px;text-decoration:none;transition:background .12s,border-color .12s,transform 80ms;display:flex}.new-piece-page{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#000000b3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.new-piece-card{border:1px solid var(--border);background:#0f172ad1;border-radius:16px;width:min(680px,100%);padding:28px}.new-piece-heading{align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.new-piece-group-label{margin-bottom:20px}.new-piece-group-label>span{color:var(--muted);font-size:12px;font-weight:400}.new-piece-heading h1{margin:4px 0 8px;font-size:26px}.new-piece-heading p{color:var(--muted);margin:0}.new-piece-step{color:#93c5fd;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.new-piece-back{color:var(--muted);border-radius:8px;padding:8px;text-decoration:none;display:inline-flex}.new-piece-back:hover{color:var(--text);background:#94a3b81f}.new-piece-upload{width:100%;min-height:150px;color:var(--text);cursor:pointer;background:#1d4ed81f;border:1px dashed #93c5fd8c;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:16px;display:flex}.new-piece-upload .material-icons{font-size:34px}.new-piece-upload:disabled{opacity:.65;cursor:wait}.new-piece-progress{background:#94a3b840;border-radius:3px;width:60%;height:6px;overflow:hidden}.new-piece-progress>span{background:#60a5fa;border-radius:3px;height:100%;transition:width .2s;display:block}.new-piece-error{color:#fb7185;margin-top:14px}.setup-workflow{height:100vh}.setup-header{border-bottom:1px solid var(--border);background:#020617f0;flex:0 0 64px;align-items:center;gap:14px;height:64px;padding:0 18px;display:flex}.setup-piece-name{color:var(--muted);margin-left:auto;font-size:13px}.pieces-item:hover{background:#0f172acc;border-color:#94a3b84d;transform:translateY(-1px)}.pieces-item .material-icons{color:var(--muted);font-size:24px}.pieces-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.pieces-item-group{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.pieces-item-last-opened{color:var(--muted);flex-shrink:0;font-size:13px;font-weight:400}@media (max-width:768px){.pieces-page{padding-inline:12px}.pieces-item-row{display:block;position:relative}.pieces-item{grid-template-columns:24px minmax(0,1fr);gap:2px 14px;padding:14px 16px;display:grid}.pieces-item>.material-icons{grid-area:1/1/span 2;align-self:center}.pieces-item-name{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;grid-area:1/2;min-width:0;line-height:1.35;overflow:visible}.pieces-item-last-opened{grid-area:2/2;padding-right:108px;font-size:12px}.pieces-row-action{opacity:1;width:32px;height:32px;padding:5px;top:auto;bottom:7px;transform:none}.pieces-delete-btn{right:8px}.pieces-rename-btn{right:42px}.pieces-move-btn{right:76px}.beatmap-btn,.rehearse-btn{gap:0;padding:6px 8px;font-size:0}.beatmap-btn .material-icons,.rehearse-btn .material-icons{font-size:18px}.beatmap-toolbar,.rehearse-toolbar{gap:6px;padding:8px 10px}.beatmap-time,.beatmap-status,.beatmap-error,.rehearse-time,.rehearse-status,.rehearse-error{font-size:12px}.beatmap-panel.top-panel{left:var(--sidebar-w);right:0}.beatmap-hint{display:none}.beatmap-parts{flex-wrap:wrap}.beatmap-part-slot{min-width:calc(50% - 4px);max-width:none}.sheet-viewer{padding:6px}.sheet-viewer-control-bar{transform:translate(-2px,2px)}.sheet-viewer-mode-switch button{padding-inline:6px}}@media (prefers-reduced-motion:reduce){.sheet-viewer.fit-height-mode .sheet-viewer-canvas-stack{transition-duration:0s!important}}.mini-player{-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);z-index:40;background:#020617eb;flex:none;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.mini-player-toggle{border:1px solid var(--border-strong);width:32px;height:32px;color:var(--text);cursor:pointer;background:#3b82f62e;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s;display:flex}.mini-player-toggle:hover:not(:disabled){background:#3b82f652}.mini-player-toggle:disabled{opacity:.5;cursor:default}.mini-player-toggle .material-icons{font-size:22px}.mini-player-rate{border:1px solid var(--border-strong);height:24px;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:0 10px;font-size:12px;transition:background .15s,color .15s}.mini-player-rate:hover{color:var(--text);background:#3b82f62e}.mini-player-rate.active{color:var(--text);background:#3b82f62e;border-color:#3b82f6}.mini-player-time{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;min-width:34px;font-size:12px}.mini-player-duration{text-align:right}.mini-player-track{cursor:pointer;flex:auto;align-items:center;height:20px;display:flex;position:relative}.mini-player-track.has-wave{height:36px}.mini-player-track.has-wave:before{display:none}.mini-player-wave{pointer-events:none;position:absolute;inset:0}.mini-player-track:before{content:"";background:var(--border-strong);border-radius:999px;height:3px;position:absolute;left:0;right:0}.mini-player-track-fill{pointer-events:none;background:#3b82f6;border-radius:999px;height:3px;position:absolute;left:0}.mini-player-track-knob{pointer-events:none;background:#fff;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #02061799}.mini-player-bar{color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:12px}.mini-player-section{text-overflow:ellipsis;color:#c7d2fe;white-space:nowrap;background:#6366f12e;border:1px solid #818cf873;border-radius:999px;flex:0 auto;min-width:0;max-width:220px;padding:2px 8px;font-size:12px;font-weight:700;overflow:hidden}.rehearsals-section{max-width:800px;margin:48px auto 0}.rehearsals-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.rehearsals-header h2{color:var(--text);margin:0;font-size:20px;font-weight:700}.rehearsals-error{color:#fca5a5;border:1px solid #f8717166;border-radius:8px;margin:8px 0;padding:8px 12px;font-size:13px}.rehearsal-empty-note{color:var(--muted);font-size:14px}.rehearsals-list{flex-direction:column;gap:8px;display:flex}.rehearsal-item{border:1px solid var(--border);background:var(--card);border-radius:10px;overflow:hidden}.rehearsal-item-header{appearance:none;width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;font-size:14px;text-decoration:none;display:flex}.rehearsal-item-header:hover{background:#94a3b814}.rehearsal-item-header>.material-icons{color:#93c5fd;font-size:20px}.rehearsal-item-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-weight:600;overflow:hidden}.rehearsal-item-meta{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}.rehearsal-item-error{color:#fca5a5}.rehearsal-item-chevron{color:var(--muted);font-size:20px}.rehearsal-item-body{border-top:1px solid var(--border);padding:16px}.rehearsal-legend{color:var(--text);flex-wrap:wrap;gap:8px 16px;margin-bottom:12px;font-size:13px;display:flex}.rehearsal-legend-item{align-items:center;gap:6px;display:inline-flex}.rehearsal-legend-swatch{border-radius:3px;flex:none;width:10px;height:10px}.rehearsal-segbar{background:#94a3b81f;border-radius:8px;height:34px;margin-bottom:12px;position:relative;overflow:hidden}.rehearsal-segment{appearance:none;cursor:pointer;opacity:.9;border:none;min-width:3px;padding:0;position:absolute;top:0;bottom:0}.rehearsal-segment:hover{opacity:1}.rehearsal-segment-uncertain{opacity:.4;background-image:repeating-linear-gradient(135deg,#0000 0 4px,#02061780 4px 8px)}.rehearsal-segments-list{flex-direction:column;gap:2px;max-height:260px;margin-bottom:12px;display:flex;overflow-y:auto}.rehearsal-segment-row{appearance:none;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:6px 8px;font-size:13px;display:flex}.rehearsal-segment-row:hover{background:#94a3b81a}.rehearsal-segment-time{font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.rehearsal-segment-flag{border:1px solid var(--border-strong);color:var(--muted);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:11px}.rehearsal-audio{display:none}.rehearsal-player{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.rehearsal-player-track{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#94a3b814;border-radius:8px;height:72px;position:relative;overflow:hidden}.rehearsal-player-track:not(.has-wave):before{content:"";background:var(--border-strong);border-radius:999px;height:3px;margin-top:-1.5px;position:absolute;top:50%;left:0;right:0}.rehearsal-player-track-fill{pointer-events:none;background:#3b82f6;border-radius:999px;height:3px;margin-top:-1.5px;position:absolute;top:50%;left:0}.rehearsal-player-wave{pointer-events:none;position:absolute;inset:0}.rehearsal-player-labels{height:16px;position:relative;overflow:hidden}.rehearsal-player-label{box-sizing:border-box;color:#94a3b8a6;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;padding:0 4px;font-size:11px;line-height:16px;position:absolute;top:0;overflow:hidden}.rehearsal-player-band{background:var(--band-color);opacity:.22;border-left:1px solid var(--band-color);pointer-events:none;min-width:2px;position:absolute;top:0;bottom:0}.rehearsal-player-band-uncertain{opacity:.12;background-image:repeating-linear-gradient(135deg,#0000 0 4px,#02061799 4px 8px)}.rehearsal-player-playhead{pointer-events:none;background:#fff;width:2px;position:absolute;top:0;bottom:0;transform:translate(-50%);box-shadow:0 0 0 1px #02061799}.rehearsal-player-controls{align-items:center;gap:12px;display:flex}.rehearsal-player-clock{min-width:0}.rehearsal-player-clock-sep{opacity:.6}.rehearsal-player-hint{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}@media (max-width:640px){.rehearsal-player-hint{display:none}}.rehearsal-delete-btn{appearance:none;color:#f87171;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;margin-top:12px;padding:6px 10px;font-size:13px;display:inline-flex}.rehearsal-delete-btn:hover{background:#f871711f}.rehearsal-delete-btn .material-icons{font-size:16px}.rehearsal-page-actions{align-items:center;gap:8px;display:flex}.rehearsal-segment-rowline{align-items:center;display:flex}.rehearsal-segment-rowline .rehearsal-segment-row{flex:1}.rehearsal-narrative-toggle{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;display:inline-flex}.rehearsal-narrative-toggle:hover{background:#94a3b81f}.rehearsal-narrative-toggle .material-icons{font-size:18px}.rehearsal-narrative{border-left:2px solid #94a3b833;flex-direction:column;margin:2px 0 8px 26px;display:flex}.rehearsal-narrative-row{appearance:none;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:12px;padding:3px 10px;font-size:12.5px;display:flex}.rehearsal-narrative-row:hover{background:#94a3b81a}.rehearsal-narrative-passes{color:var(--muted)}.rehearsal-narrative-talk{color:var(--muted);font-style:italic}.rehearsal-strip{background:linear-gradient(#94a3b80d,#94a3b805),#02061759;border:1px solid #94a3b838;border-radius:12px;align-items:flex-end;gap:6px;margin:12px 0 4px;padding:16px 16px 18px;display:flex;overflow-x:auto;box-shadow:inset 0 1px #94a3b814}.rehearsal-strip-block{position:relative}.rehearsal-strip-playhead{pointer-events:none;z-index:2;background:#60a5fa;border-radius:1px;width:2px;transition:left .3s linear;position:absolute;top:0;bottom:16px;box-shadow:0 0 6px #60a5facc}@media (min-width:1100px){.rehearsal-strip{width:calc(100vw - var(--sidebar-w) - 48px);margin-left:calc((100% - (100vw - var(--sidebar-w) - 48px)) / 2)}}.rehearsal-strip-piece{white-space:nowrap;color:var(--muted);background:#94a3b814;border-radius:6px;flex:none;align-self:center;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.rehearsal-strip-block{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;flex:none;align-items:flex-start;gap:3px;padding:0;display:flex}.rehearsal-strip-caption{color:var(--muted);letter-spacing:.03em;font-size:10.5px}.rehearsal-strip-window{background:#f5f5f2;border:1px solid #94a3b859;border-radius:4px;display:block;overflow:hidden}.rehearsal-strip-window img{display:block}.rehearsal-strip-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.rehearsal-strip-fallback{min-height:275px;color:var(--muted);border:1px dashed #94a3b866;border-radius:6px;justify-content:flex-end;align-self:stretch;align-items:center;margin-bottom:18px;padding:10px;font-size:12px}.rehearsal-strip-talk-box{box-sizing:border-box;width:100%;color:var(--muted);border:1px dashed #94a3b866;border-radius:6px;flex-direction:column;justify-content:flex-end;align-items:center;padding:12px 14px 14px;font-size:12px;display:flex;position:relative;overflow:hidden}.rehearsal-strip-progress{pointer-events:none;background:#60a5fa;border-radius:0 2px 2px 0;height:3px;position:absolute;bottom:0;left:0;box-shadow:0 0 6px #60a5facc}.rehearsal-strip-utterance{color:var(--muted);margin:0 0 8px;transition:color .2s;display:block}.rehearsal-strip-utterance:last-child{margin-bottom:0}.rehearsal-strip-utterance--speaking{color:var(--text)}.rehearsal-strip-speaker{font-style:normal;font-weight:600}.rehearsal-strip-talk-label{font-style:italic}.rehearsal-strip-talk-text{text-align:justify;-webkit-hyphens:auto;hyphens:auto;text-wrap:pretty;width:100%;max-height:100%;font-size:12.5px;line-height:1.5;display:block;overflow:hidden}.rehearsal-strip-active .rehearsal-strip-window,.rehearsal-strip-active .rehearsal-strip-talk-box,.rehearsal-strip-fallback.rehearsal-strip-active{outline:2px solid #60a5fa}.rehearsal-rescan-btn{appearance:none;color:#60a5fa;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;margin-top:12px;padding:6px 10px;font-size:13px;display:inline-flex}.rehearsal-rescan-btn:hover:not(:disabled){background:#60a5fa1f}.rehearsal-rescan-btn:disabled{opacity:.5;cursor:default}.rehearsal-rescan-btn .material-icons{font-size:16px}.rehearsal-page{max-width:800px;margin:0 auto}.rehearsal-page-back{color:var(--muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;text-decoration:none;display:inline-flex}.rehearsal-page-back:hover{color:var(--text)}.rehearsal-page-back .material-icons{font-size:18px}.rehearsal-page-header{align-items:flex-start;margin-bottom:24px}.rehearsal-page-header .rehearsal-delete-btn,.rehearsal-page-header .rehearsal-rescan-btn{margin-top:0}.rehearsal-page-meta{color:var(--muted);margin-top:6px;font-size:13px}.rehearsal-page-section{margin-bottom:32px}.rehearsal-page-section h2{color:var(--text);margin:0 0 12px;font-size:20px;font-weight:700}.rehearsal-page-summary{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:16px 20px;font-size:14px;line-height:1.6}.rehearsal-page-summary p{margin:0 0 12px}.rehearsal-page-summary p:last-child{margin-bottom:0}.live-dot{background:#ef4444;border-radius:50%;flex:none;width:10px;height:10px;animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{box-shadow:0 0 #ef444473}50%{box-shadow:0 0 0 6px #ef444400}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.live-banner{color:var(--text);background:#ef44441f;border:1px solid #ef444466;border-radius:12px;align-items:center;gap:12px;margin:14px 4px 0;padding:10px 16px;font-size:14px;display:flex}.live-banner-conducting{background:#22c55e1a;border-color:#22c55e66}.live-banner-text{flex:auto;min-width:0}.live-banner-waiting{color:var(--muted);font-size:13px}.impersonation-banner{color:var(--text);background:#f59e0b29;border:1px solid #f59e0b8c;border-radius:12px;align-items:center;gap:12px;margin:14px 4px 0;padding:10px 16px;font-size:14px;display:flex}.impersonation-banner-text{flex:auto;min-width:0}.impersonation-banner-stop{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #f59e0bb3;border-radius:8px;flex:none;padding:6px 12px;font-size:13px}.impersonation-banner-stop:hover{background:#f59e0b40}.live-strip{color:var(--text);background:#ef44441a;border-bottom:1px solid #ef444459;align-items:center;gap:10px;padding:6px 14px;font-size:13px;display:flex}.live-strip-conducting{background:#22c55e14;border-bottom-color:#22c55e59}.live-strip-ended{border-bottom-color:var(--border);background:var(--card)}.live-strip-ended .live-dot{background:var(--muted);animation:none}.live-strip-text{flex:auto;min-width:0}.live-btn{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;flex:none;padding:4px 12px;font-size:13px;transition:background-color .15s,border-color .15s}.live-btn:hover:not(:disabled){background:#94a3b81f}.live-btn:disabled{opacity:.6;cursor:default}.live-btn-join{color:#fff;background:#ef4444;border-color:#ef444499;font-weight:600}.live-btn-join:hover:not(:disabled){background:#dc2626}.live-btn-end{color:#fca5a5;border-color:#ef444480}.live-btn-end:hover:not(:disabled){background:#ef444426}.pieces-golive-btn{color:var(--text);cursor:pointer;background:#ef44441f;border:1px solid #ef444480;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;transition:background-color .15s;display:inline-flex}.pieces-golive-btn:hover:not(:disabled){background:#ef444438}.pieces-golive-btn:disabled{opacity:.6;cursor:default}.live-strip-follow{border-bottom-color:var(--border);background:var(--card);padding:4px 10px}.live-sync-btn{border:1px solid var(--border-strong);cursor:pointer;filter:grayscale();opacity:.55;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:18px;line-height:1;transition:filter .2s,opacity .2s,background-color .2s,border-color .2s,box-shadow .2s;display:inline-flex}.live-sync-btn:hover{opacity:.85}.live-sync-btn.is-synced{filter:none;opacity:1;background:#ef44442e;border-color:#ef4444b3;animation:1.6s ease-in-out infinite live-sync-glow}@keyframes live-sync-glow{0%,to{box-shadow:0 0 #ef444480,0 0 6px #ef444480}50%{box-shadow:0 0 0 6px #ef444400,0 0 14px #ef4444e6}}@media (prefers-reduced-motion:reduce){.live-sync-btn.is-synced{animation:none;box-shadow:0 0 10px #ef4444b3}}.live-waiting{color:var(--muted);flex-direction:row;gap:10px}.rehearsal-speakers{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:flex}.rehearsal-speakers-label{color:var(--muted);margin-right:4px}.speaker-chip-wrap{display:inline-flex;position:relative}.speaker-chip{appearance:none;border:1px solid var(--border-strong);color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:#94a3b814;border-radius:999px;align-items:center;gap:5px;padding:1px 8px 1px 5px;font-size:12px;line-height:18px;display:inline-flex}.speaker-chip:disabled{cursor:default}.speaker-chip:not(:disabled):hover{background:#94a3b82e}.rehearsal-speakers-more{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:1px 6px;font-size:12px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.rehearsal-speakers-more:hover{color:var(--text)}.speaker-chip--unnamed{color:var(--muted);border-style:dashed}.speaker-chip-dot{background:var(--speaker-color);border-radius:50%;flex:none;width:8px;height:8px}.speaker-chip-guess{opacity:.7}.speaker-chip-detail{color:var(--muted);font-size:11px}.speaker-menu{z-index:30;border:1px solid var(--border-strong);background:var(--card);white-space:normal;text-align:left;border-radius:8px;flex-direction:column;gap:2px;min-width:200px;max-width:280px;padding:6px;font-size:12.5px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000073}.speaker-menu-title{padding:4px 8px 6px;font-weight:600}.speaker-menu-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 8px 2px;font-size:11px}.speaker-menu-item{appearance:none;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 8px}.speaker-menu-item:hover:not(:disabled){background:#94a3b81f}.speaker-menu-item--primary{background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--chip-text)}.speaker-menu-item--danger{color:#fca5a5;border-top:1px solid var(--border);border-radius:0 0 6px 6px;margin-top:4px}.speaker-menu-new{gap:4px;padding:6px 4px 2px;display:flex}.speaker-menu-new input{border:1px solid var(--border-strong);min-width:0;color:inherit;font:inherit;background:#0f172a99;border-radius:6px;flex:1;padding:4px 8px}.speaker-menu-new button{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px}.speaker-menu-new button:disabled{opacity:.5;cursor:default}.speaker-menu-error{color:#fca5a5;padding:4px 8px}.rehearsal-narrative-row--turns{cursor:default;align-items:flex-start}.rehearsal-narrative-seek{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0}.rehearsal-turns{flex-direction:column;gap:3px;min-width:0;display:flex}.rehearsal-turn{align-items:baseline;gap:8px;min-width:0;display:flex}.rehearsal-turn-text{appearance:none;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;min-width:0;padding:0}.rehearsal-turn-text:hover{color:var(--text)}.voices-section{margin-top:28px}.voices-hint{color:var(--muted);font-size:12.5px}.voices-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.voices-item{border:1px solid var(--border);border-radius:8px;padding:8px 12px}.voices-item-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.voices-item-name{align-items:center;gap:6px;font-weight:600;display:inline-flex}.voices-item-member{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--chip-border);color:var(--chip-text);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:500}.voices-item-count{color:var(--muted);font-size:12.5px}.voices-item-actions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.voices-item-actions button,.voices-play,.voices-sample-remove{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px;display:inline-flex}.voices-item-actions button:hover,.voices-play:hover:not(:disabled),.voices-sample-remove:hover{color:var(--text);background:#94a3b81f}.voices-play:disabled{opacity:.35;cursor:default}.voices-item-actions .material-icons,.voices-play .material-icons,.voices-sample-remove .material-icons{font-size:18px}.voices-item-actions select{font:inherit;color:inherit;background:var(--card);border:1px solid var(--border-strong);border-radius:6px;padding:2px 6px;font-size:12px}.voices-samples{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.voices-sample{align-items:center;gap:6px;font-size:12.5px;display:flex}.voices-sample-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.voices-sample-time{color:var(--muted)}.voices-unnamed h3{margin:18px 0 0;font-size:14px}.rehearsal-transcript{border:1px solid var(--border,#e5e7eb);background:var(--surface,#fff);border-radius:8px;margin:12px 0 4px}.rehearsal-transcript-toggle{width:100%;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.rehearsal-transcript-toggle .material-icons{opacity:.7;font-size:20px}.rehearsal-transcript-title{font-weight:600}.rehearsal-transcript-count{opacity:.65;font-size:12px}.rehearsal-transcript-body{max-height:60vh;padding:4px 10px 10px;overflow-y:auto}.rehearsal-transcript-heading{text-transform:uppercase;letter-spacing:.04em;opacity:.8;align-items:center;gap:6px;margin:10px 0 4px;font-size:12px;font-weight:600;display:flex}.rehearsal-transcript-heading-muted{text-transform:none;letter-spacing:0;opacity:.6;font-weight:500}.rehearsal-transcript-remark{border-radius:6px;align-items:flex-start;gap:8px;padding:3px 4px;display:flex}.rehearsal-transcript-remark--active{background:#facc152e}.rehearsal-transcript-remark>.rehearsal-turn-text{flex:1}
.auth-card .auth-legal{color:var(--muted);opacity:.7;text-wrap:balance;margin:22px 0 0;font-size:11px;line-height:1.5}.auth-card .auth-legal a{color:inherit;text-underline-offset:2px;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40}.auth-card .auth-legal a:hover{color:#bfdbfe;text-decoration-color:currentColor}.app-sidebar-account-btn{appearance:none;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;flex:1;align-items:center;gap:10px;min-width:0;margin:-4px;padding:4px;display:flex}.app-sidebar-account-btn:hover{background:#94a3b81f}.app-sidebar-account-btn img{border-radius:50%;flex:none;width:30px;height:30px}.account-modal{max-width:520px;max-height:90vh;overflow-y:auto}.account-modal h2{justify-content:space-between;align-items:center;display:flex}.account-close{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px;display:inline-flex}.account-close:hover{color:var(--text);background:#94a3b81f}.account-identity{align-items:center;gap:12px;margin-bottom:20px;display:flex}.account-identity img,.account-identity .material-icons.account-avatar{width:40px;height:40px;color:var(--muted);border-radius:50%;font-size:40px}.account-identity strong{font-size:14px;display:block}.account-identity span{color:var(--muted);word-break:break-all;font-size:12px;display:block}.account-section{border:1px solid var(--border);background:#02061761;border-radius:10px;margin-bottom:14px;padding:12px 14px}.account-section h3{color:var(--text);margin:0 0 6px;font-size:13px;font-weight:600}.account-section p,.account-section li{color:var(--muted);margin:0 0 8px;font-size:12px;line-height:1.5}.account-section ul{margin:0 0 8px;padding-left:18px}.account-section a{color:#bfdbfe}.account-devices{margin:0;padding:0;list-style:none}.account-device{border-top:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.account-device:first-child{border-top:0}.account-device-name{min-width:0;color:var(--text);flex:1;font-size:13px}.account-device-name small{color:var(--muted);font-size:11px;display:block}.account-btn{appearance:none;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#0f172acc;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.account-btn:hover:not(:disabled){background:#020617e6;border-color:#94a3b866}.account-btn:disabled{opacity:.5;cursor:not-allowed}.account-btn .material-icons{font-size:16px}.account-btn-danger{color:#fff;background:#dc2626;border-color:#dc2626}.account-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.account-danger{border-color:#dc262673}.account-danger h3{color:#fca5a5}.account-confirm-input{box-sizing:border-box;border:1px solid var(--border-strong);width:100%;color:var(--text);background:#0f172acc;border-radius:6px;margin:6px 0 10px;padding:8px 10px;font-size:13px}.account-error{color:#fb7185;margin:6px 0;font-size:12px}.account-links{gap:14px;margin-top:4px;font-size:12px;display:flex}.legal-page{max-width:760px;color:var(--text);margin:0 auto;padding:28px 20px 80px}.legal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding-bottom:18px;display:flex}.legal-brand{color:var(--text);align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.legal-brand .material-icons{color:#bfdbfe}.legal-nav{gap:16px;font-size:13px;display:flex}.legal-nav a,.legal-footer a,.legal-prose a{color:#bfdbfe}.legal-prose{font-size:15px;line-height:1.65}.legal-prose h1{margin:0 0 18px;font-size:28px;line-height:1.2}.legal-prose h2{margin:32px 0 10px;font-size:20px}.legal-prose h3{margin:24px 0 8px;font-size:16px}.legal-prose p,.legal-prose ul,.legal-prose ol{margin:0 0 14px}.legal-prose li{margin-bottom:4px}.legal-prose blockquote{border-left:3px solid var(--border-strong);color:var(--muted);margin:0 0 14px;padding:6px 14px}.legal-prose code{background:#94a3b824;border-radius:4px;padding:1px 5px;font-size:.92em}.legal-prose table{border-collapse:collapse;margin:0 0 18px;font-size:14px;display:block;overflow-x:auto}.legal-prose th,.legal-prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.legal-prose th{background:#94a3b81a}.legal-prose hr{border:0;border-top:1px solid var(--border);margin:28px 0}.legal-footer{border-top:1px solid var(--border);margin-top:40px;padding-top:18px;font-size:13px}.assess-share-controls{align-items:center;gap:6px;display:inline-flex}.assess-share-expiry{border:1px solid var(--border-strong);color:var(--text);background:#0f172acc;border-radius:6px;padding:4px 6px;font-size:12px}.shared-links{margin:8px 0 12px;font-size:12px}.shared-links-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.shared-links-empty{color:var(--muted)}.shared-links ul{margin:0;padding:0;list-style:none}.shared-link{border-top:1px solid var(--border);align-items:center;gap:8px;padding:5px 0;display:flex}.shared-link:first-child{border-top:0}.shared-link-main{flex:1;min-width:0}.shared-link-main a{color:#bfdbfe;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden}.shared-link-main small{color:var(--muted);font-size:11px;display:block}.shared-link--revoked .shared-link-main a{color:var(--muted);text-decoration:line-through}.speaker-consent{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#02061761;border-radius:8px;align-items:flex-start;gap:8px;margin:6px 0 8px;padding:8px;font-size:11px;line-height:1.4;display:flex}.speaker-consent input{accent-color:#22c55e;flex:none;margin:2px 0 0}
.corpus-page,.corpus-strip{--corpus-approved:#22c55e;--corpus-rejected:#94a3b8;--corpus-review:#3b82f6;--corpus-imported:#a855f7;--corpus-importing:#c084fc;--corpus-pending:#475569;--corpus-duplicate:#334155;--corpus-error:#ef4444}.corpus-progress-card{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;gap:12px;max-width:800px;margin:0 auto 20px;padding:16px 18px;display:flex}.corpus-progress-headline{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.corpus-progress-headline strong{color:var(--text);font-size:18px}.corpus-progress-sub{color:var(--muted);font-size:13px}.corpus-progress{background:#94a3b826;border-radius:999px;height:10px;display:flex;overflow:hidden}.corpus-progress-seg{min-width:2px;height:100%;transition:width .3s;display:block}.corpus-legend{flex-wrap:wrap;gap:8px;display:flex}.corpus-chip{border:1px solid var(--border);color:var(--text);white-space:nowrap;cursor:default;background:#0f172a99;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:12px;line-height:18px;display:inline-flex}button.corpus-chip{cursor:pointer}button.corpus-chip:hover,button.corpus-chip.active{border-color:var(--border-strong);background:#1e293be6}button.corpus-chip.active{box-shadow:0 0 0 1px var(--border-strong)}.corpus-chip-count{color:var(--muted)}.corpus-chip-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.corpus-status-approved .corpus-chip-dot,.corpus-progress-seg.corpus-status-approved{background:var(--corpus-approved)}.corpus-status-rejected .corpus-chip-dot,.corpus-progress-seg.corpus-status-rejected{background:var(--corpus-rejected)}.corpus-status-review .corpus-chip-dot,.corpus-progress-seg.corpus-status-review{background:var(--corpus-review)}.corpus-status-imported .corpus-chip-dot,.corpus-progress-seg.corpus-status-imported{background:var(--corpus-imported)}.corpus-status-importing .corpus-chip-dot,.corpus-progress-seg.corpus-status-importing{background:var(--corpus-importing)}.corpus-status-pending .corpus-chip-dot,.corpus-progress-seg.corpus-status-pending{background:var(--corpus-pending)}.corpus-status-duplicate .corpus-chip-dot,.corpus-progress-seg.corpus-status-duplicate{background:var(--corpus-duplicate)}.corpus-status-error .corpus-chip-dot,.corpus-progress-seg.corpus-status-error{background:var(--corpus-error)}.corpus-filters{max-width:800px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin:0 auto 12px;font-size:13px;display:flex}.corpus-filters label{align-items:center;gap:8px;display:inline-flex}.corpus-search{border:1px solid var(--border-strong);background:#0f172ab3;border-radius:8px;flex:220px;padding:0 10px}.corpus-search .material-icons{font-size:18px}.corpus-search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:7px 0;font-size:13px}.corpus-filter-count{margin-left:auto}.corpus-list{flex-direction:column;gap:4px;max-width:800px;margin:0 auto;display:flex}.corpus-row{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;grid-template-columns:40px minmax(0,1fr) 56px 150px 120px minmax(80px,160px);align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:grid}.corpus-row-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:0 0;border-color:#0000;padding-top:4px;padding-bottom:4px;font-size:12px}.corpus-row.is-openable{cursor:pointer;transition:background-color .15s,border-color .15s}.corpus-row.is-openable:hover,.corpus-row.is-openable:focus-visible{border-color:var(--border-strong);background:#1e293be6;outline:none}.corpus-row-index{color:var(--muted);font-variant-numeric:tabular-nums}.corpus-row-title{flex-direction:column;gap:2px;min-width:0;display:flex}.corpus-row-title strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.corpus-row-path,.corpus-row-error{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.corpus-row-error{color:#fca5a5}.corpus-row-pages{text-align:center;font-variant-numeric:tabular-nums}.corpus-row-stats,.corpus-row-notes{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.corpus-load-more{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;margin:12px auto 0;padding:8px 18px;font-size:13px}.corpus-load-more:hover:not(:disabled){background:#94a3b81f}.corpus-error{max-width:800px;margin:0 auto 12px}.corpus-code{border:1px solid var(--border);color:var(--text);text-align:left;background:#0f172ae6;border-radius:8px;margin:0;padding:12px 16px;font-size:13px}.corpus-empty-hint code{color:var(--text)}@media (max-width:720px){.corpus-row{grid-template-columns:32px minmax(0,1fr) 110px}.corpus-row-head,.corpus-row-pages,.corpus-row-stats,.corpus-row-notes{display:none}}.corpus-strip{color:var(--text);background:#3b82f614;border-bottom:1px solid #3b82f659;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 14px;font-size:13px;display:flex}.corpus-strip-label{align-items:center;gap:6px;font-weight:600;display:inline-flex}.corpus-strip-label .material-icons{font-size:18px}.corpus-strip-position{color:var(--muted);font-variant-numeric:tabular-nums}.corpus-strip-title{text-overflow:ellipsis;white-space:nowrap;flex:200px;min-width:0;overflow:hidden}.corpus-strip-notes{border:1px solid var(--border-strong);min-width:140px;color:var(--text);background:#0f172ab3;border-radius:8px;flex:220px;padding:4px 10px;font-size:13px}.corpus-strip-notes:focus{border-color:#3b82f6b3;outline:none}.corpus-strip-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.corpus-strip .live-btn{align-items:center;gap:4px;display:inline-flex}.corpus-strip .live-btn .material-icons{font-size:16px}.corpus-btn-approve{color:#fff;background:#16a34a;border-color:#22c55e99;font-weight:600}.corpus-btn-approve:hover:not(:disabled){background:#15803d}.corpus-btn-reject{border-color:#ef444480}.corpus-btn-reject:hover:not(:disabled){background:#ef444426}.corpus-strip-error{color:#fca5a5;flex-basis:100%;font-size:12px}
