:root{--am-seed:#ee3d11;--am-tint:1;--paper:oklch(from var(--am-seed) .973 calc(.004 * var(--am-tint)) h);--paper-2:oklch(from var(--am-seed) .958 calc(.003 * var(--am-tint)) h);--surface:#fff;--ink:oklch(from var(--am-seed) .329 calc(.011 * var(--am-tint)) h);--ink-soft:oklch(from var(--am-seed) .405 calc(.009 * var(--am-tint)) h);--muted:oklch(from var(--am-seed) .482 calc(.005 * var(--am-tint)) h);--faint:oklch(from var(--am-seed) .524 calc(.005 * var(--am-tint)) h);--line:color-mix(in srgb, var(--ink) 13%, transparent);--line-2:color-mix(in srgb, var(--ink) 16%, transparent);--hover:color-mix(in srgb, var(--ink) 6%, transparent);--hover-2:color-mix(in srgb, var(--ink) 11%, transparent);--shadow-sm:0 1px 2px #1e16060d, 0 2px 10px #1e16060d;--shadow-md:0 10px 34px #1e16061c, 0 2px 8px #1e16060d;--shadow-lg:0 28px 80px #1e160633, 0 8px 24px #1e160614;--glass:color-mix(in srgb, var(--surface) 72%, transparent);--accent:#cf9016;--accent-soft:#cf901629;--accent-ink:#8a5512;--on-accent:#241a06;--chord-ink:#14110e;--sans:"Inter", system-ui, -apple-system, sans-serif;--serif:"Fraunces", Georgia, "Times New Roman", serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-sm:8px;--r-md:12px;--r-lg:18px;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}:root[data-theme=dark]{--paper:#14120d;--paper-2:#1a1712;--surface:#211e17;--ink:#f2efe5;--ink-soft:#cfcabb;--muted:#97917f;--faint:#675f4e;--line:#f5f0e41a;--line-2:#f5f0e42e;--hover:#f5f0e40f;--hover-2:#f5f0e41c;--shadow-sm:0 1px 2px #00000059, 0 2px 8px #00000047;--shadow-md:0 10px 34px #00000080, 0 2px 10px #00000052;--shadow-lg:0 28px 80px #000000a6, 0 8px 24px #0000006b;--glass:#211e17a8;--accent:#e6ac44;--accent-soft:#e6ac4429;--accent-ink:#f0c063;--chord-ink:#f2efe5;color:var(--ink)}:root[data-theme=dark] ::selection{background:#f5f0e42e}:root[data-theme=night]{--paper:#080706;--paper-2:#0d0b08;--surface:#13110d;--ink:#f7f4ea;--ink-soft:#dbd6c5;--muted:#837c6c;--faint:#4c473c;--line:#f7f4ea1c;--line-2:#f7f4ea38;--hover:#f7f4ea12;--hover-2:#f7f4ea21;--shadow-sm:0 1px 2px #0000008c, 0 2px 8px #00000073;--shadow-md:0 10px 34px #000000b3, 0 2px 10px #00000080;--shadow-lg:0 28px 80px #000000d9, 0 8px 24px #0009;--glass:#13110d99;--accent:#e9b449;--accent-soft:#e9b44924;--accent-ink:#f3c869;--chord-ink:#f7f4ea;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink)}:root[data-theme=night] ::selection{background:#f6f3ea33}*{box-sizing:border-box}html{background:var(--paper);transition:background .3s var(--ease)}html,body,#root{height:100%}body{background:var(--paper);margin:0}button{cursor:pointer;font-family:inherit}input,textarea{color:inherit;font-family:inherit}::selection{background:#1b1a161f}:root{--mac-titlebar-h:0px}:root[data-shell=macos]{--mac-titlebar-h:28px}:root[data-shell=macos] .lp{padding-top:var(--mac-titlebar-h)}:root[data-shell=macos] .lp-nav{top:var(--mac-titlebar-h)}:root[data-shell=macos] .live-banner{top:calc(14px + var(--mac-titlebar-h))}:root[data-shell=macos] .sidebar .brand,:root[data-shell=macos] .sidebar-reveal{display:none}:root[data-shell=macos] .sidebar{padding-top:14px}.app{height:100dvh;padding-top:var(--mac-titlebar-h);background:var(--paper-2);display:flex;overflow:hidden}.main-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.main-area>:not(.tab-bar){flex:1;min-height:0}.tab-bar{align-items:center;gap:4px;min-height:0;padding:6px 8px 0 0;display:flex}.tab-strip{scrollbar-width:none;flex:1;align-items:flex-end;gap:2px;min-width:0;display:flex;overflow-x:auto}.tab-strip::-webkit-scrollbar{display:none}.tab{border-radius:var(--r-sm) var(--r-sm) 0 0;min-width:0;max-width:220px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-bottom:none;align-items:center;gap:6px;padding:7px 10px 8px;font-size:13px;font-weight:500;line-height:1;transition:background .12s,color .12s;display:flex}.tab:hover{color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 5%, transparent)}.tab.is-active{color:var(--ink);background:var(--paper);border-color:var(--line);margin-bottom:-1px;padding-bottom:9px;box-shadow:0 -1px 2px #1e16060a}.tab.is-drop{box-shadow:inset 2px 0 0 var(--accent)}.tab-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tab-close{appearance:none;width:16px;height:16px;color:var(--muted);opacity:.55;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;transition:opacity .12s,background .12s,color .12s;display:inline-flex}.tab:hover .tab-close,.tab.is-active .tab-close{opacity:1}.tab-close:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 12%, transparent)}.tab-new{appearance:none;border-radius:var(--r-sm);width:26px;height:26px;color:var(--muted);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.tab-new:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 8%, transparent)}:root[data-shell=macos] .main-area>.tab-bar{display:none}.ctx-menu{z-index:1000;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);box-shadow:var(--shadow-md,0 8px 28px #1e160629);padding:4px;animation:90ms ease-out ctx-in;position:fixed}@keyframes ctx-in{0%{opacity:0;transform:translateY(-3px)scale(.98)}}.ctx-item{appearance:none;border-radius:var(--r-sm);width:100%;color:var(--ink);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.ctx-item:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.ctx-item.is-danger{color:#b4493f}.ctx-item.is-danger:hover{background:#b4493f1a}.mobile-bar,.nav-scrim,.nav-close{display:none}.sidebar{width:var(--sidebar-w,264px);height:100%;transition:width .3s var(--ease), padding .3s var(--ease), opacity .24s var(--ease);background:0 0;flex-direction:column;flex-shrink:0;padding:22px 14px 16px;display:flex;position:relative;overflow:hidden}.sidebar.is-resizing{transition:padding .3s var(--ease), opacity .24s var(--ease)}.brand{align-items:center;gap:10px;padding:0 8px 24px;display:flex}.brand-mark{background:url(/favicon.svg) 50%/contain no-repeat;border-radius:5px;width:18px;height:18px}.brand-name{font-family:var(--serif);letter-spacing:-.01em;font-size:20px;font-weight:500}.lib-label{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 8px 10px;font-size:11px;font-weight:600}.song-list{flex-direction:column;flex:1;gap:2px;margin:0 -4px;padding:0 4px;display:flex;overflow-y:auto}.empty-lib{color:var(--faint);padding:8px;font-size:13px;line-height:1.5}.song-item{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-soft);transition:background .18s var(--ease), color .18s var(--ease);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.song-item:hover{background:var(--hover)}.song-item.is-active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink)}.song-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.song-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.song-item-meta{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.song-del{color:var(--faint);opacity:0;border-radius:6px;flex-shrink:0;place-items:center;padding:4px;transition:opacity .15s,color .15s,background .15s;display:grid}.song-item:hover .song-del{opacity:1}.song-del:hover{color:#b4493f;background:#b4493f1a}.btn{border-radius:var(--r-sm);white-space:nowrap;transition:transform .15s var(--ease), background .18s, box-shadow .18s, border-color .18s, opacity .18s;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:8px 13px;font-size:13.5px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn.primary{background:var(--ink);color:var(--paper);flex:1}.btn.primary:hover{filter:brightness(.9);box-shadow:var(--shadow-md)}.btn.ghost{border-color:var(--line-2);color:var(--ink-soft);background:0 0;flex:1}.btn.ghost:hover{background:var(--surface);border-color:var(--line-2);box-shadow:var(--shadow-sm)}.btn.danger{color:#b4493f;border-color:#b4493f59}.btn.danger:hover{color:#b4493f;background:#b4493f1a;border-color:#b4493f}.btn.lg{flex:none;padding:12px 20px;font-size:15px}.btn.full{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn{width:28px;height:28px;color:var(--muted);transition:background .15s, color .15s, transform .15s var(--ease);background:0 0;border:none;border-radius:7px;place-items:center;display:grid}.icon-btn:hover{background:var(--hover-2);color:var(--ink)}.icon-btn:active{transform:scale(.9)}.icon-btn.danger:hover{color:#b4493f;background:#b4493f1a}.editor{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper);min-width:0;box-shadow:var(--shadow-sm);flex:1;margin:8px 8px 8px 0;overflow:hidden}.editor-scroll{height:100%;padding:48px clamp(24px,6vw,96px) 160px;overflow-y:auto}.song-header{max-width:var(--col-width,760px);margin:0 auto 36px;position:relative}.song-title{width:100%;font-family:var(--serif);font-size:calc(clamp(32px, 5vw, 46px) * var(--title-scale,1));letter-spacing:-.025em;color:var(--ink);background:0 0;border:none;outline:none;margin-bottom:4px;padding:0;font-weight:500;transition:font-size .15s;display:block}.song-title::placeholder{color:var(--faint)}.song-title-measure{visibility:hidden;pointer-events:none;white-space:pre;font-family:var(--serif);letter-spacing:-.025em;font-size:clamp(32px,5vw,46px);font-weight:500;position:absolute;top:0;left:0}.song-artist{width:100%;color:var(--muted);background:0 0;border:none;outline:none;padding:2px 0;font-size:16px;display:block}.song-artist::placeholder{color:var(--faint)}.export-menu{position:absolute;top:6px;right:0}.song-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.meta-field{background:var(--surface);border:1px solid var(--line);height:32px;color:var(--muted);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:7px;padding:0 10px;transition:border-color .18s,box-shadow .18s;display:inline-flex}.meta-field:focus-within{border-color:var(--line-2);box-shadow:var(--shadow-md)}.meta-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:10.5px;font-weight:600}.meta-input{color:var(--ink);background:0 0;border:none;outline:none;min-width:0;padding:0;font-size:13.5px}.meta-input::placeholder{color:var(--faint)}.tempo-field{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none}.tempo-grip{color:var(--muted);cursor:ns-resize;place-items:center;display:grid}.tempo-field:hover .tempo-grip{color:var(--ink)}.tempo-input{cursor:text;appearance:textfield;width:3.4em}.tempo-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tempo-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.meta-select{appearance:none;cursor:pointer;padding-right:2px;font-weight:600}.url-field{flex:180px;min-width:150px;max-width:280px}.url-input{flex:1;width:100%}.url-field:has(.url-set){flex:none;min-width:0;max-width:220px}.url-set{align-items:center;gap:2px;min-width:0;display:inline-flex}.url-open{min-width:0;color:var(--ink-soft);border-radius:6px;align-items:center;gap:5px;padding:2px 6px;font-size:13px;transition:color .15s,background .15s;display:inline-flex}.url-open:hover{color:var(--ink);background:var(--hover)}.url-open-label{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.url-open svg{color:var(--muted);flex:none}.url-open:hover svg{color:var(--ink)}.url-edit{width:22px;height:22px;color:var(--faint);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;place-items:center;transition:color .15s,background .15s;display:grid}.url-edit:hover{color:var(--ink);background:var(--hover)}.meta-arrow{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;min-width:3.2em;font-size:12.5px;font-weight:600}.meta-arrow:empty{display:none}.transpose{border-left:1px solid var(--line);align-items:center;gap:2px;margin-left:2px;padding-left:8px;display:inline-flex}.tp-btn{width:22px;height:22px;color:var(--muted);transition:background .15s, color .15s, transform .12s var(--ease);background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.tp-btn:hover{background:var(--hover-2);color:var(--ink)}.tp-btn:active{transform:scale(.88)}.tp-badge{box-sizing:border-box;width:72px;height:22px;font-family:var(--mono);letter-spacing:.02em;color:var(--faint);text-align:center;background:0 0;border:none;border-radius:6px;padding:0 6px;font-size:11.5px;font-weight:600;transition:background .15s,color .15s}.tp-badge.is-shifted{color:var(--paper);background:var(--ink)}.tp-badge.is-shifted:hover{background:#2e2c25}.accidental{border-left:1px solid var(--line);align-items:center;gap:2px;margin-left:2px;padding-left:8px;display:inline-flex}.acc-btn{width:24px;height:22px;font-family:var(--serif);color:var(--muted);cursor:pointer;transition:background .15s, color .15s, transform .12s var(--ease);background:0 0;border:none;border-radius:6px;place-items:center;padding:0;font-size:15px;line-height:1;display:grid}.acc-btn:hover{background:var(--hover-2);color:var(--ink)}.acc-btn:active{transform:scale(.88)}.acc-btn.is-active{background:var(--ink);color:var(--paper)}.acc-btn.is-active:hover{color:var(--paper);background:#2e2c25}.tp-commit{border:1px solid var(--line);letter-spacing:.01em;height:24px;color:var(--ink-soft);white-space:nowrap;background:0 0;border-radius:7px;align-items:center;gap:5px;margin-left:4px;padding:0 9px;font-size:11.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.tp-commit:hover{background:var(--hover-2);border-color:var(--ink-soft);color:var(--ink)}.tp-commit:active{transform:scale(.97)}.key-wrap{position:relative}.key-trigger{color:var(--ink);background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;margin:0 -2px;padding:3px 6px;transition:background .15s;display:inline-flex}.key-trigger:hover{background:var(--hover)}.key-trigger .icon,.key-trigger svg{color:var(--faint)}.key-value{min-width:1.4em;font-size:13.5px;font-weight:600}.key-auto-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--hover-2);border-radius:5px;padding:1px 5px;font-size:9.5px;font-weight:700}.key-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:40;padding:10px;position:absolute;top:calc(100% + 10px);left:-8px}.key-pop-inner{align-items:flex-start;gap:6px;display:flex}.key-section{flex-shrink:0}.key-section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 2px 7px;font-size:10px;font-weight:600}.key-grid{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.key-chip{border:1px solid var(--line);background:var(--paper);min-width:40px;height:30px;font-family:var(--mono);color:var(--ink-soft);transition:transform .12s var(--ease), background .15s, border-color .15s, color .15s;border-radius:7px;padding:0 8px;font-size:12.5px;font-weight:600}.key-chip:hover{background:var(--hover-2);border-color:var(--line-2);color:var(--ink);transform:translateY(-1px)}.key-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.key-expand{border:1px solid var(--line);background:var(--paper);width:26px;color:var(--muted);border-radius:7px;align-self:stretch;place-items:center;margin-top:17px;transition:background .15s,color .15s;display:grid}.key-expand:hover{background:var(--hover-2);color:var(--ink)}.key-expand svg{transition:transform .3s var(--ease);transform:rotate(-90deg)}.key-expand.is-open svg{transform:rotate(90deg)}.key-minor-wrap{opacity:0;width:0;overflow:hidden}.key-minor-wrap .key-section{padding-left:4px}.key-pop-foot{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}.key-auto{border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:7px;padding:7px 8px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.key-auto:hover{background:var(--hover);color:var(--ink)}.key-auto svg{color:var(--muted)}.key-auto.is-active{color:var(--ink)}.key-auto.is-active svg{color:var(--spine,var(--ink))}.disp-menu{position:relative}.disp-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:260px;box-shadow:var(--shadow-lg);z-index:40;flex-direction:column;gap:12px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.disp-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.disp-block{flex-direction:column;gap:8px;display:flex}.disp-label{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:11px;font-weight:600}.disp-stepper{align-items:center;gap:2px;display:inline-flex}.disp-step{border:1px solid var(--line);background:var(--paper);width:26px;height:26px;color:var(--ink-soft);border-radius:7px;place-items:center;transition:background .15s,color .15s,opacity .15s;display:grid}.disp-step:hover:not(:disabled){background:var(--hover-2);color:var(--ink)}.disp-step:disabled{opacity:.3;cursor:not-allowed}.disp-size{text-align:center;min-width:42px;font-family:var(--mono);color:var(--ink);font-size:12.5px;font-weight:600}.disp-fonts{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.disp-font{border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:background .15s, border-color .15s, transform .12s var(--ease);border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;font-size:16px;display:flex}.disp-font:hover{background:var(--hover-2);transform:translateY(-1px)}.disp-font.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.disp-font-name{font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.disp-seg{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.disp-seg-btn{border:1px solid var(--line);background:var(--paper);font-family:var(--sans);color:var(--ink-soft);cursor:pointer;transition:background .15s, border-color .15s, color .15s, transform .12s var(--ease);border-radius:8px;padding:7px 4px;font-size:12.5px;font-weight:600}.disp-seg-btn:hover{background:var(--hover);color:var(--ink)}.disp-seg-btn:active{transform:scale(.97)}.disp-seg-btn.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}.disp-divider{background:var(--line);height:1px;margin:0 -2px}.disp-toggle{border-radius:var(--r-sm);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:6px 4px;transition:background .15s;display:flex}.disp-toggle:hover{background:var(--hover)}.disp-toggle-text{flex-direction:column;gap:2px;min-width:0;display:flex}.disp-toggle-title{color:var(--ink);font-size:13.5px;font-weight:500}.disp-toggle-sub{color:var(--muted);font-size:11.5px}.legend-pop{width:280px}.legend-reset{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;align-items:center;gap:9px;padding:9px 11px;font-size:13.5px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.legend-reset:hover{background:var(--surface);border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow-sm)}.legend-heading{margin-bottom:-4px}.legend-list{flex-direction:column;gap:4px;display:flex}.legend-row{align-items:center;gap:9px;display:flex}.legend-chip{border:1.5px solid;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:grid}.legend-dot{border-radius:50%;width:9px;height:9px}.legend-input{min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;flex:1;padding:6px 8px;font-size:13px;transition:background .15s,border-color .15s}.legend-input::placeholder{color:var(--faint)}.legend-input:hover{background:var(--hover)}.legend-input:focus{background:var(--surface);border-color:var(--accent);outline:none}.legend-count{color:var(--faint);background:var(--hover-2);border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-weight:600}.versions-menu{position:relative}.versions-menu .btn{flex:none}.ver-count{color:var(--paper);background:var(--ink);text-align:center;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;font-weight:600}.versions-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:248px;box-shadow:var(--shadow-lg);z-index:40;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.versions-head{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:6px 8px 4px;font-size:10.5px;font-weight:600}.version-item{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:9px;padding:8px 9px;transition:background .15s,color .15s;display:flex}.version-item:hover{background:var(--hover);color:var(--ink)}.version-item.is-active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink)}.version-item svg{color:var(--muted);flex-shrink:0}.version-item.is-active>svg:last-child{color:var(--ink);margin-left:auto}.version-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.version-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.version-sub{color:var(--muted);font-size:11.5px}.version-empty{color:var(--muted);padding:6px 9px 8px;font-size:12.5px;line-height:1.5}.version-banner{max-width:var(--col-width,760px);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-soft);align-items:center;gap:10px;margin:0 auto 20px;padding:10px 14px;font-size:13px;display:flex}.version-banner svg{color:var(--muted);flex-shrink:0}.version-banner strong{color:var(--ink);font-weight:600}.version-banner-link{color:var(--ink);text-underline-offset:2px;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:2px 4px;font-size:13px;font-weight:600;text-decoration:underline}.version-banner-link:hover{color:var(--muted)}.menu-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:30;min-width:200px;animation:pop .2s var(--ease);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu-pop button{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;transition:background .15s;display:flex}.menu-pop button:hover{background:var(--hover);color:var(--ink)}@keyframes pop{0%{opacity:0;transform:translateY(-6px)scale(.97)}}.blocks{max-width:var(--col-width,760px);flex-direction:column;gap:14px;margin:0 auto;display:flex}.block-card{--tint:var(--tint-light);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease), border-color .2s, transform .12s;padding:14px 18px 18px 22px;position:relative}.block-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-2)}.block-card.is-dragging{box-shadow:var(--shadow-lg);z-index:20;cursor:grabbing;opacity:.96}.block-card.is-menu-open{z-index:40}[data-colormode=fill] .block-card{background:var(--tint)}[data-theme=dark] .block-card,[data-theme=night] .block-card{--tint:var(--tint-dark)}.block-spine{background:var(--spine,var(--faint));border-radius:4px;width:4px;position:absolute;top:14px;bottom:14px;left:0}.block-head{align-items:center;gap:6px;margin-bottom:8px;margin-left:-8px;display:flex}.drag-handle{width:24px;height:24px;color:var(--faint);cursor:grab;opacity:0;touch-action:none;background:0 0;border:none;border-radius:6px;place-items:center;transition:opacity .15s,background .15s,color .15s;display:grid}.block-card:hover .drag-handle,.drag-handle:focus-visible{opacity:1}.drag-handle:hover{background:var(--hover-2);color:var(--ink)}.block-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);background:0 0;border:none;border-radius:6px;outline:none;flex:1;min-width:0;padding:4px 6px;font-size:12px;font-weight:600;transition:background .15s}.block-label:hover,.block-label:focus{background:var(--hover)}.block-label::placeholder{color:var(--faint);font-weight:500}.block-actions{opacity:0;transition:opacity .18s var(--ease), transform .18s var(--ease);align-items:center;gap:2px;display:flex;position:relative;transform:translate(4px)}.block-card:hover .block-actions,.block-actions.is-open{opacity:1;transform:none}.color-wrap{position:relative}.color-chip{border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0000001f}.block-menu{min-width:184px}.block-menu-colors{flex-wrap:wrap;gap:5px;padding:4px 4px 6px;display:flex}.block-menu-colors .swatch{border-radius:7px;width:26px;height:26px}.block-menu button svg{color:var(--muted);flex:none}.block-menu button:hover svg{color:var(--ink)}.block-menu button:disabled{opacity:.4;cursor:not-allowed}.block-menu button:disabled:hover{color:var(--ink-soft);background:0 0}.block-menu-count{color:var(--muted);background:var(--hover-2);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.block-menu button.is-danger,.block-menu button.is-danger svg{color:#b4493f}.block-menu button.is-danger:hover{color:#b4493f;background:#b4493f1a}.block-body{resize:none;white-space:pre;width:100%;font-family:var(--chart-font,var(--mono));font-size:var(--chart-size,13.5px);color:var(--ink);scrollbar-width:none;-ms-overflow-style:none;background:0 0;border:none;outline:none;min-height:1.6em;padding:0;line-height:1.6;display:block;overflow:auto hidden}.block-body::placeholder{color:var(--faint)}.block-body::-webkit-scrollbar{display:none}.chord{color:var(--chord-ink);font-weight:700}.block-body-wrap{position:relative}.block-backdrop{z-index:0;pointer-events:none;white-space:pre;font-family:var(--chart-font,var(--mono));font-size:var(--chart-size,13.5px);color:var(--ink);margin:0;padding:0;line-height:1.6;position:absolute;inset:0;overflow:hidden}.block-input{z-index:1;color:#0000;caret-color:var(--ink);position:relative}.block-static{margin:0}.block-label-spacer{flex:1;min-width:0}.chord-chart{scrollbar-width:thin;padding:4px 0 2px 22px;position:relative;overflow-x:auto}.chord-chart::-webkit-scrollbar{height:6px}.chord-chart::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.cc-line{width:max-content;min-width:100%;padding:1px 0;position:relative}.cc-line-remove{width:18px;height:18px;color:var(--faint);opacity:0;background:0 0;border:none;border-radius:5px;place-items:center;transition:opacity .15s,background .15s,color .15s;display:grid;position:absolute;top:50%;left:-20px;transform:translateY(-50%)}.cc-line:hover .cc-line-remove,.cc-line-remove:focus-visible{opacity:1}.cc-line-remove:hover{color:#b4493f;background:#b4493f1f}.cc-track{height:calc(var(--chart-size,13.5px) * 1.5);font-family:var(--chart-font,var(--mono));font-size:var(--chart-size,13.5px);position:relative}.cc-chip{height:calc(var(--chart-size,13.5px) * 1.35);font-family:inherit;font-size:inherit;color:var(--chord-ink);background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-sm);white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:5px;align-items:center;padding:0 5px;font-weight:700;line-height:1;transition:box-shadow .15s,transform .1s,border-color .15s;display:inline-flex;position:absolute;top:0}.cc-chip:hover{border-color:var(--spine,var(--faint))}.cc-chip:active{cursor:grabbing}.cc-chip.is-dragging{cursor:grabbing;border-color:var(--spine,var(--ink));box-shadow:var(--shadow-md);z-index:6;transition:none;transform:translateY(-1px)scale(1.04)}.cc-chip-edit{z-index:7;align-items:center;gap:3px;display:inline-flex;position:absolute;top:0}.cc-chip-input{height:calc(var(--chart-size,13.5px) * 1.35);min-width:2.5ch;font-family:var(--chart-font,var(--mono));font-size:var(--chart-size,13.5px);color:var(--chord-ink);background:var(--surface);border:1px solid var(--spine,var(--ink));box-shadow:0 0 0 3px var(--hover);border-radius:5px;outline:none;padding:0 4px;font-weight:700;line-height:1;position:static}.cc-chip-del{height:calc(var(--chart-size,13.5px) * 1.35);width:calc(var(--chart-size,13.5px) * 1.35);border:1px solid var(--line-2);background:var(--surface);color:#b4493f;box-shadow:var(--shadow-sm);border-radius:5px;flex:none;place-items:center;transition:background .15s,border-color .15s;display:grid}.cc-chip-del:hover{background:#b4493f1a;border-color:#b4493f}.cc-lyric-wrap{font-family:var(--chart-font,var(--mono));font-size:var(--chart-size,13.5px);line-height:1.6;position:relative}.cc-lyric-mirror{white-space:pre;color:var(--ink);pointer-events:none;min-height:1.6em;display:block;position:relative}.cc-lyric-input{width:100%;font:inherit;color:#0000;caret-color:var(--ink);white-space:pre;background:0 0;border:none;outline:none;padding:0;line-height:1.6;position:absolute;inset:0}.cc-lyric-input::placeholder{color:var(--faint)}.cc-add-line{border:1px dashed var(--line-2);color:var(--muted);background:0 0;border-radius:8px;align-items:center;gap:6px;margin-top:8px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.cc-add-line:hover{border-color:var(--faint);color:var(--ink);background:var(--hover)}.struct-grid{flex-wrap:wrap;gap:8px;display:flex}.struct-bar{border:1px solid var(--line-2);border-radius:var(--r-sm);background:color-mix(in srgb, var(--tint,var(--surface)) 60%, var(--surface));flex-direction:column;flex:none;gap:4px;padding:8px 8px 6px;display:flex;position:relative}.struct-beats{grid-template-columns:repeat(var(--beats,4), 2.6em);gap:4px;display:grid}.struct-cell{text-align:center;border:1px solid var(--line);background:var(--surface);width:100%;height:30px;font-family:var(--chart-font,var(--mono));color:var(--chord-ink);border-radius:6px;outline:none;padding:0 2px;font-size:13px;font-weight:700;transition:border-color .15s,box-shadow .15s}.struct-cell::placeholder{color:var(--faint);font-weight:400}.struct-cell:focus{border-color:var(--spine,var(--faint));box-shadow:0 0 0 2px color-mix(in srgb, var(--spine,var(--faint)) 30%, transparent)}.struct-cell.has-chord{border-color:var(--line-2)}.struct-lyric{border:none;border-top:1px dashed var(--line-2);width:100%;color:var(--ink-soft);background:0 0;outline:none;padding:4px 2px 0;font-size:12.5px}.struct-lyric::placeholder{color:var(--faint)}.struct-bar-num{color:var(--faint);pointer-events:none;font-size:9px;font-weight:700;position:absolute;top:2px;right:6px}.struct-bar-del{border:1px solid var(--line-2);background:var(--surface);width:18px;height:18px;color:var(--muted);opacity:0;box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;transition:opacity .15s,color .15s,background .15s;display:grid;position:absolute;top:-7px;left:-7px}.struct-bar:hover .struct-bar-del{opacity:1}.struct-bar-del:hover{color:#b4493f;background:#b4493f1a}.struct-add{border:1px dashed var(--line-2);border-radius:var(--r-sm);min-height:30px;color:var(--muted);background:0 0;align-self:stretch;place-items:center;padding:0 14px;transition:border-color .18s,color .18s,background .18s;display:grid}.struct-add:hover{border-color:var(--faint);color:var(--ink);background:var(--hover)}.block-notes-layer{z-index:4;pointer-events:none;position:absolute;inset:0}.note-sticky{pointer-events:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm,8px);width:176px;box-shadow:var(--shadow-sm);position:absolute}.note-sticky.is-dragging{box-shadow:var(--shadow-md,0 8px 24px #00000024);opacity:.92;z-index:2}.note-sticky.has-color{background:var(--note-tint);border-color:var(--note-accent)}[data-theme=dark] .note-sticky.has-color,[data-theme=night] .note-sticky.has-color{background:var(--note-tint-dark)}.note-sticky-bar{border-bottom:1px solid var(--line);color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:3px 5px 3px 7px;display:flex}.note-sticky.is-dragging .note-sticky-bar{cursor:grabbing}.note-sticky-tools{align-items:center;gap:3px;display:flex}.note-sticky-color{border:1.5px dashed var(--line-2);cursor:pointer;opacity:0;background:0 0;border-radius:50%;width:14px;height:14px;padding:0;transition:opacity .15s,border-color .15s}.note-sticky-color.is-set{opacity:1;border:1px solid #00000026}.note-sticky-color:hover{border-color:var(--faint)}.note-sticky-del{width:20px;height:20px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:5px;place-items:center;transition:color .15s,background .15s,opacity .15s;display:grid}.note-sticky:hover .note-sticky-del,.note-sticky:focus-within .note-sticky-del,.note-sticky:hover .note-sticky-color,.note-sticky:focus-within .note-sticky-color{opacity:1}.note-sticky-del:hover{color:var(--danger,#d3654a);background:var(--hover)}.note-sticky-input{width:100%;color:var(--ink);resize:none;background:0 0;border:0;padding:7px 9px;font-family:inherit;font-size:13px;line-height:1.45;display:block;overflow:hidden}.note-sticky-input:focus{outline:none}.note-sticky-input::placeholder{color:var(--muted)}.block-note-add{border:1px dashed var(--line-2);border-radius:var(--r-sm,8px);color:var(--muted);cursor:pointer;background:0 0;align-items:center;gap:5px;margin-top:12px;padding:5px 9px;font-size:12.5px;font-weight:500;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.block-note-add:hover{border-color:var(--faint);color:var(--ink);background:var(--hover)}.add-between{border:1px solid var(--line-2);background:var(--surface);width:26px;height:26px;color:var(--muted);opacity:0;z-index:5;box-shadow:var(--shadow-sm);transition:opacity .16s, transform .16s var(--ease), color .16s, background .16s;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)scale(.8)}.block-card:hover .add-between{opacity:1;transform:translate(-50%)scale(1)}.add-between:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.add-block{border:1px dashed var(--line-2);border-radius:var(--r-md);color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:13px;font-size:13.5px;font-weight:500;transition:border-color .18s,color .18s,background .18s;display:flex}.add-block:hover{border-color:var(--faint);color:var(--ink);background:var(--hover)}.color-pop-anchor{display:none}.color-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:40;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px;display:grid;position:fixed}.swatch{width:30px;height:30px;transition:transform .14s var(--ease);border:1px solid;border-radius:8px;place-items:center;display:grid}.swatch:hover{transform:scale(1.12)}.swatch.is-active{box-shadow:0 0 0 2px var(--ink)}.swatch-dot{border-radius:50%;width:12px;height:12px}.empty-state{place-items:center;padding:24px;display:grid}.empty-inner{text-align:center;max-width:540px}.empty-title{font-family:var(--serif);letter-spacing:-.03em;color:var(--ink);margin:0 0 18px;font-size:clamp(34px,5vw,52px);font-weight:500;line-height:1.05}.empty-sub{color:var(--muted);max-width:440px;margin:0 auto 32px;font-size:17px;line-height:1.6}.empty-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.scrim{-webkit-backdrop-filter:blur(6px);z-index:100;background:#1a160e52;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.import-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:24px}.import-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.import-head h2{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:500}.import-fields{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.import-fields-row{gap:10px;display:flex}.import-input{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);width:100%;min-width:0;height:44px;color:var(--ink);outline:none;padding:0 14px;font-size:14.5px;transition:border-color .18s,box-shadow .18s,background .18s}.import-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.import-input::placeholder{color:var(--faint)}.import-input[type=number]{appearance:textfield}.import-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.import-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dropzone{text-align:center;border:1.5px dashed var(--line-2);border-radius:var(--r-md);background:var(--surface);cursor:pointer;transition:border-color .2s, background .2s, transform .2s var(--ease);flex-direction:column;align-items:center;gap:4px;padding:34px 20px;display:flex}.dropzone:hover{border-color:var(--faint)}.dropzone.is-over{border-color:var(--ink);background:var(--surface);transform:scale(1.01)}.dropzone.is-busy{pointer-events:none;opacity:.8}.dz-icon{background:var(--paper-2);width:52px;height:52px;color:var(--ink-soft);border-radius:50%;place-items:center;margin-bottom:8px;display:grid}.dz-title{color:var(--ink);font-size:15px;font-weight:500}.dz-sub{color:var(--muted);font-size:13px}.import-error{color:#b4493f;border-radius:var(--r-sm);background:#b4493f14;margin-top:12px;padding:9px 12px;font-size:13px}.import-or{color:var(--faint);align-items:center;gap:12px;margin:20px 0 14px;font-size:12px;display:flex}.import-or:before,.import-or:after{content:"";background:var(--line);flex:1;height:1px}.paste-area{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface);resize:vertical;white-space:pre;width:100%;min-height:120px;font-family:var(--mono);outline:none;margin-bottom:14px;padding:12px 14px;font-size:13px;line-height:1.55;transition:border-color .18s;overflow-x:auto}.paste-area:focus{border-color:var(--faint)}.paste-area::placeholder{color:var(--faint)}.overview{max-width:var(--col-width,760px);flex-direction:column;align-items:stretch;gap:10px;margin:-8px auto 30px;display:flex}.overview-label{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);flex-shrink:0;font-size:11px;font-weight:600}.overview-row{flex-wrap:wrap;flex:1;gap:7px;display:flex}.ov-chip{--tint:var(--tint-light);border:1px solid var(--line-2);background:var(--tint);max-width:190px;color:var(--ink-soft);cursor:grab;touch-action:none;transition:transform .14s var(--ease), box-shadow .16s, border-color .16s;border-radius:8px;align-items:center;gap:7px;padding:6px 12px 6px 9px;font-size:12.5px;font-weight:500;display:inline-flex}[data-theme=dark] .ov-chip,[data-theme=night] .ov-chip{--tint:var(--tint-dark)}.ov-chip:hover{box-shadow:var(--shadow-sm);border-color:var(--spine);transform:translateY(-1px)}.ov-chip.is-dragging{cursor:grabbing;box-shadow:var(--shadow-md);border-color:var(--spine)}.ov-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:inset 0 0 0 1px #0000001f}.ov-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.overview-legend{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.overview-legend-items{flex-wrap:wrap;gap:6px 16px;display:flex}.ov-legend-item{color:var(--ink-soft);align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.settings-btn{border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;font-size:13.5px;font-weight:500;transition:background .18s,color .18s;display:flex}.settings-btn:hover{background:var(--hover);color:var(--ink)}.settings-btn.is-active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink)}.settings-head{justify-content:space-between;align-items:flex-start;gap:16px;max-width:720px;margin:0 auto 28px;display:flex}.settings-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 4px;font-size:clamp(30px,4vw,40px);font-weight:500}.settings-sub{color:var(--muted);margin:0;font-size:15px}.set-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);max-width:720px;box-shadow:var(--shadow-sm);margin:0 auto 16px;padding:22px 24px}.set-card-head{margin-bottom:16px}.set-card-head h2{font-family:var(--sans);color:var(--ink);margin:0 0 4px;font-size:16px;font-weight:600}.set-card-head p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.5}.segmented{background:var(--paper-2);border-radius:var(--r-md);border:1px solid var(--line);gap:4px;padding:4px;display:inline-flex}.seg{color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:500;transition:background .18s,color .18s,box-shadow .18s;display:inline-flex}.seg:hover{color:var(--ink)}.seg.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.choice-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice{border:1px solid var(--line-2);background:var(--paper);border-radius:var(--r-md);text-align:left;transition:border-color .18s, box-shadow .18s, transform .14s var(--ease);padding:14px}.choice:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.choice.is-active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.choice-preview{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;place-items:center;height:78px;margin-bottom:10px;display:grid}.cp-block{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;width:78%;height:50px;padding-left:18px;display:flex;position:relative}.cm-fill .cp-block{background:#fbf2e2}[data-theme=dark] .cm-fill .cp-block{background:#2d2718}[data-theme=night] .cm-fill .cp-block{background:#1a150d}.cp-bar{background:#d9a86b;border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:6px}.cp-lines{flex-direction:column;gap:5px;display:flex}.cp-lines i{background:var(--line-2);border-radius:2px;height:4px;display:block}.cp-lines i:first-child{width:56px}.cp-lines i:nth-child(2){width:88px}.cp-lines i:nth-child(3){width:40px}.choice-label{color:var(--ink);justify-content:space-between;align-items:center;font-size:13.5px;font-weight:500;display:flex}.switch-row{color:var(--ink-soft);justify-content:space-between;align-items:center;font-size:14px;display:flex}.switch{background:var(--line-2);width:44px;height:26px;transition:background .2s var(--ease);border:none;border-radius:999px;flex-shrink:0;padding:3px}.switch.is-on{background:var(--ink)}.switch-knob{background:var(--surface);width:20px;height:20px;transition:transform .2s var(--ease);border-radius:50%;display:block;box-shadow:0 1px 3px #00000040}.switch.is-on .switch-knob{transform:translate(18px)}.toaster{z-index:200;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.toast{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:280px;max-width:380px;box-shadow:var(--shadow-lg);pointer-events:auto;align-items:center;gap:14px;padding:13px 14px 13px 16px;display:flex;position:relative;overflow:hidden}.toast-msg{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;overflow:hidden}.toast-undo{background:var(--ink);color:var(--paper);border-radius:var(--r-sm);transition:transform .14s var(--ease), background .16s;border:none;flex-shrink:0;padding:6px 13px;font-size:12.5px;font-weight:600}.toast-undo:hover{background:#2e2c25}:root[data-theme=dark] .toast-undo:hover,:root[data-theme=night] .toast-undo:hover{background:#fff}.toast-undo:active{transform:scale(.95)}.toast-x{width:24px;height:24px;color:var(--faint);background:0 0;border:none;border-radius:6px;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:grid}.toast-x:hover{background:var(--hover-2);color:var(--ink)}.toast-bar{background:var(--spine,var(--faint));transform-origin:0;width:100%;height:2px;animation:5s linear forwards toast-life;position:absolute;bottom:0;left:0}@keyframes toast-life{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.header-actions{z-index:6;align-items:center;gap:8px;display:flex;position:absolute;top:4px;right:0}.header-actions .export-menu{position:relative;top:auto;right:auto}.play-btn{flex:none}.play{background:var(--paper);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.play-bar{background:var(--paper-2);align-items:center;gap:18px;padding:12px 18px;display:flex}.play-bar-id{flex-direction:column;flex-shrink:0;min-width:0;max-width:220px;display:flex}.play-songhead{margin:2px 0 6px;padding:0 4px}.play-songhead-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(24px,3vw,34px);font-weight:500;line-height:1.15}.play-songhead-artist{color:var(--muted);margin:5px 0 0;font-size:14px}.play-nav{scrollbar-width:none;flex:1 1 0;gap:8px;min-width:0;padding:4px 2px;display:flex;overflow-x:auto}.play-bar-exit{flex-shrink:0;align-items:center;gap:8px;display:flex}.play-nav::-webkit-scrollbar{display:none}.play-pill{border:1px solid var(--line-2);background:var(--surface);color:var(--ink-soft);white-space:nowrap;transition:transform .14s var(--ease), box-shadow .16s, border-color .16s, background .16s, color .16s;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:8px 15px;font-size:13px;font-weight:500;display:inline-flex}.play-pill:hover{box-shadow:var(--shadow-sm);border-color:var(--spine);transform:translateY(-1px)}.play-pill.is-active{border-color:var(--spine);box-shadow:0 0 0 1.5px var(--spine);color:var(--ink)}.play-pill.is-pending{border-color:var(--spine);color:var(--ink);animation:.42s ease-in-out 3 play-pill-pulse}@keyframes play-pill-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--spine) 55%, transparent);transform:translateY(-1px)scale(1)}50%{transform:translateY(-1px)scale(1.06)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--spine) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--spine) 0%, transparent);transform:translateY(-1px)scale(1)}}@media (prefers-reduced-motion:reduce){.play-pill.is-pending{box-shadow:0 0 0 2px var(--spine);animation:none}}.play-pill-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:inset 0 0 0 1px #0000001f}.play-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.play-back{width:34px;height:34px;color:var(--ink-soft)}.play-back svg{transform:rotate(90deg)}.autoscroll{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.as-toggle{width:28px;height:28px;color:var(--ink-soft);transition:background .15s, color .15s, transform .12s var(--ease);background:0 0;border:none;border-radius:50%;place-items:center;display:grid}.as-toggle:hover{background:var(--hover-2);color:var(--ink)}.as-toggle:active{transform:scale(.9)}.as-toggle.is-on{background:var(--ink);color:var(--paper)}.as-spd{width:22px;height:22px;color:var(--muted);background:0 0;border:none;border-radius:6px;place-items:center;transition:background .15s,color .15s,opacity .15s;display:grid}.as-spd:hover:not(:disabled){background:var(--hover-2);color:var(--ink)}.as-spd:disabled{opacity:.3;cursor:not-allowed}.as-level{text-align:center;min-width:16px;font-family:var(--mono);color:var(--ink-soft);font-size:12.5px;font-weight:600}.play-ctl{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.as-level-btn{background:0 0;border:none;border-radius:999px;min-width:34px;height:22px;padding:0 8px;transition:background .15s,color .15s}.as-level-btn:hover{background:var(--hover-2);color:var(--ink)}.as-level-btn.is-on{background:var(--ink);color:var(--paper)}.autoscroll.is-primary{background:color-mix(in srgb, var(--accent) 15%, var(--surface));border-color:color-mix(in srgb, var(--accent) 50%, transparent);gap:3px;padding:3px 6px 3px 3px}.autoscroll.is-primary .as-toggle{background:var(--accent);width:auto;height:34px;color:var(--on-accent);letter-spacing:-.01em;border-radius:999px;align-items:center;gap:7px;padding:0 15px 0 13px;font-size:13.5px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #1e160629}.autoscroll.is-primary .as-toggle:hover{background:color-mix(in srgb, var(--accent) 88%, var(--ink));color:var(--on-accent)}.autoscroll.is-primary .as-toggle.is-on{background:var(--accent-ink);color:var(--paper)}.autoscroll.is-primary .as-spd,.autoscroll.is-primary .as-level{color:var(--ink-soft)}.autoscroll.is-primary .as-spd:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--ink)}.play-scroll{flex:1;padding:28px clamp(20px,6vw,80px) 18vh;overflow-y:auto}.play-doc{flex-direction:column;gap:12px;max-width:880px;margin:0 auto;display:flex}.play-block{--tint:var(--tint-light);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 26px 16px 30px;scroll-margin-top:18px;position:relative}.play-note{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm,8px);max-width:min(220px,40%);box-shadow:var(--shadow-sm);font-size:calc(clamp(12.5px, 1.3vw, 14px) * var(--play-zoom,1));color:var(--ink);white-space:pre-wrap;overflow-wrap:break-word;pointer-events:none;z-index:2;padding:7px 11px;line-height:1.45;position:absolute}.play-note.has-color{background:var(--note-tint);border-color:var(--note-accent)}[data-theme=dark] .play-note.has-color,[data-theme=night] .play-note.has-color{background:var(--note-tint-dark)}[data-colormode=fill] .play-block{background:var(--tint)}[data-theme=dark] .play-block,[data-theme=night] .play-block{--tint:var(--tint-dark)}.play-spine{background:var(--spine,var(--faint));border-radius:5px;width:5px;position:absolute;top:12px;bottom:12px;left:0}.play-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;font-size:12px;font-weight:600}.play-body{font-family:var(--mono);font-size:calc(clamp(14px, 1.7vw, 18px) * var(--play-zoom,1));white-space:pre;scrollbar-width:none;color:var(--ink);margin:0;line-height:1.7;overflow-x:auto}.play-body::-webkit-scrollbar{display:none}.play-body .chord{font-weight:700}@media (width<=640px){.play-bar{flex-wrap:wrap;gap:10px;padding:10px 14px}.play-bar-id{flex:auto;min-width:0;max-width:none}.play-nav{flex:1 0 100%;order:3;width:100%}.play-scroll{padding:28px 18px 40vh}.block-body,.block-backdrop,.block-static,.play-body{white-space:pre-wrap;overflow-wrap:break-word;overflow-x:hidden}}@media (width<=430px){.autoscroll.is-primary .as-toggle{justify-content:center;width:34px;padding:0}.as-toggle-label{display:none}}.bar-edit{color:var(--muted);border-radius:7px;flex:none;align-items:baseline;gap:3px;margin-right:2px;padding:3px 7px;transition:background .15s,color .15s;display:inline-flex}.bar-edit:hover{background:var(--hover)}.bar-edit.is-manual{color:var(--ink-soft);background:var(--hover)}.bar-input{text-align:right;width:3ch;color:inherit;font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:none;outline:none;font-size:12px;font-weight:600}.bar-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bar-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bar-input::placeholder{color:var(--faint);font-weight:500}.bar-unit{color:var(--faint);font-size:11px}.beta-tag{vertical-align:middle;letter-spacing:.06em;text-transform:uppercase;color:#936231;background:#d9a86b2e;border:1px solid #d9a86b73;border-radius:999px;align-items:center;margin-left:7px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}:root[data-theme=dark] .beta-tag,:root[data-theme=night] .beta-tag{color:#e3bd86}.play-label{align-items:baseline;gap:10px;display:flex}.play-label-bars{letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:600}.play-pill-name{white-space:nowrap}.play-pill-bars{color:var(--muted);font-weight:600}.play-pill-bars:before{content:"·";opacity:.55;margin:0 5px 0 1px}.ov-name{min-width:0}.ov-bars{color:var(--muted);flex-shrink:0;font-weight:600}.ov-bars:before{content:"·";opacity:.55;margin:0 4px 0 1px}.editor-scroll::-webkit-scrollbar{width:10px}.song-list::-webkit-scrollbar{width:10px}.editor-scroll::-webkit-scrollbar-thumb{background:padding-box padding-box;border:3px solid #0000;border-radius:10px}.song-list::-webkit-scrollbar-thumb{background:padding-box padding-box;border:3px solid #0000;border-radius:10px}.editor-scroll:hover::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:padding-box}.song-list:hover::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:padding-box}@media (hover:none),(pointer:coarse){.drag-handle,.block-actions,.song-del,.shelf-card-del,.add-between{opacity:1;transform:none}.block-card:hover .block-actions{transform:none}.icon-btn{width:34px;height:34px}.drag-handle{width:30px;height:30px}.add-between{width:30px;height:30px;transform:translate(-50%)scale(1)}}@media (width<=720px){.app{flex-direction:column}.mobile-bar{background:var(--glass);-webkit-backdrop-filter:blur(16px);flex-shrink:0;align-items:center;gap:10px;padding:10px 12px;display:flex}.mobile-bar .brand-name{font-size:18px}.mobile-menu{width:38px;height:38px;color:var(--ink)}.nav-scrim{z-index:90;-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .25s var(--ease);background:#1a160e52;display:block;position:fixed;inset:0}.nav-scrim.is-open{opacity:1;pointer-events:auto}.sidebar{z-index:95;background:var(--paper);width:min(85vw,320px);height:100%;box-shadow:var(--shadow-lg);transition:transform .3s var(--ease);will-change:transform;padding:18px 16px;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-open{transform:none}.editor{box-shadow:none;background:0 0;border:none;border-radius:0;margin:0}.brand{padding:0 4px 22px}.brand-name{flex:1}.nav-close{display:grid}.editor-scroll{padding:28px 18px 140px}.song-header{flex-direction:column;display:flex}.header-actions{order:-1;align-self:flex-end;margin-bottom:16px;position:static}.header-actions .btn{padding:9px 14px}.song-meta{gap:8px}.meta-field.key-field{flex-wrap:wrap;width:100%}.url-field{flex:100%;max-width:none}.overview,.blocks,.song-header{max-width:none}}@media (width<=420px){.editor-scroll{padding:22px 14px 140px}.block-card{padding:12px 14px 16px 18px}.choice-grid{grid-template-columns:1fr}.set-card{padding:18px 16px}.header-actions .btn.ghost{flex:none}}.auth-screen{background:radial-gradient(120% 80% at 50% -10%, var(--paper-2), transparent 60%), var(--paper);place-items:center;min-height:100dvh;padding:28px;display:grid}.auth-splash{flex-direction:column;align-items:center;gap:22px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:408px;box-shadow:var(--shadow-lg);padding:34px 32px 28px}.auth-brand{justify-content:center;align-items:center;gap:10px;margin-bottom:26px;display:flex}.auth-title{font-family:var(--serif);letter-spacing:-.02em;text-align:center;color:var(--ink);margin:0 0 6px;font-size:30px;font-weight:500}.auth-sub{text-align:center;color:var(--muted);margin:0 0 24px;font-size:14.5px;line-height:1.5}.auth-oauth{flex-direction:column;gap:8px;display:flex}.oauth-btn{gap:10px}.oauth-badge{background:var(--ink);width:20px;height:20px;color:var(--paper);border-radius:6px;place-items:center;font-size:12px;font-weight:700;display:grid}.auth-or{color:var(--faint);align-items:center;gap:12px;margin:18px 0;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--line);flex:1;height:1px}.auth-fields{flex-direction:column;gap:10px;display:flex}.field{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);height:46px;color:var(--muted);align-items:center;gap:10px;padding:0 12px;transition:border-color .18s,box-shadow .18s,background .18s;display:flex}.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.field input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:14.5px}.field input::placeholder{color:var(--faint)}.field-toggle{width:28px;height:28px;color:var(--faint);background:0 0;border:none;border-radius:7px;place-items:center;transition:color .15s,background .15s;display:grid}.field-toggle:hover{color:var(--ink);background:var(--hover)}.auth-forgot{margin:10px 2px 0 auto;font-size:12.5px;display:block}.auth-submit{margin-top:18px}.auth-error{color:#b4493f;border-radius:var(--r-sm);background:#b4493f17;align-items:center;gap:8px;margin-top:14px;padding:9px 12px;font-size:13px;line-height:1.4;display:flex}.auth-error svg{flex-shrink:0}.auth-foot{text-align:center;color:var(--muted);margin-top:22px;font-size:13.5px}.auth-link{font-size:inherit;color:var(--ink);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);background:0 0;border:none;padding:0;font-weight:600;transition:text-decoration-color .16s}.auth-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.auth-legal{color:var(--faint);text-align:center;margin-top:22px;font-size:12px}.auth-back{z-index:10;border:1px solid var(--line-2);background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:blur(8px);color:var(--ink-soft);transition:background .16s, border-color .16s, color .16s, transform .16s var(--ease);border-radius:999px;align-items:center;gap:7px;padding:8px 14px 8px 11px;font-size:13px;font-weight:600;display:inline-flex;position:fixed;top:22px;left:22px}.auth-back svg{transform:rotate(180deg)}.auth-back:hover{background:var(--surface);border-color:var(--ink-soft);color:var(--ink);transform:translate(-2px)}.auth-success{text-align:center;color:var(--ink-soft);font-size:14px;line-height:1.55}.auth-success p{margin:0 0 20px}.auth-success-icon{color:#4f8a63;background:#568a6324;border-radius:50%;place-items:center;width:52px;height:52px;margin:0 auto 16px;display:grid}.spinner{opacity:.9;border:2px solid;border-top-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.spinner-ink{color:var(--ink)}@keyframes spin{to{transform:rotate(360deg)}}.account-bar{margin-top:10px;padding-top:12px}.account-id{align-items:center;gap:10px;padding:4px 4px 4px 6px;display:flex}.account-avatar{background:var(--ink);width:30px;height:30px;color:var(--paper);border-radius:9px;flex-shrink:0;place-items:center;font-size:14px;font-weight:600;display:grid}.account-meta{flex-direction:column;flex:1;min-width:0;display:flex}.account-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.account-email{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.account-settings.is-active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink)}.account-row{align-items:center;gap:14px;display:flex}.account-avatar.lg{border-radius:12px;width:42px;height:42px;font-size:18px}img.account-avatar{object-fit:cover;background:var(--surface)}.avatar-edit{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-shrink:0;padding:0;line-height:0;position:relative}.avatar-edit:disabled{cursor:progress;opacity:.7}.avatar-edit .account-avatar{transition:filter .18s}.avatar-edit:hover:not(:disabled) .account-avatar{filter:brightness(.85)}.avatar-edit-badge{background:var(--ink);width:20px;height:20px;color:var(--paper);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}.avatar-actions{gap:12px;margin-top:4px;display:flex}.link-btn{font:inherit;color:var(--accent,var(--ink));cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn:disabled{color:var(--faint);cursor:progress}.link-btn.subtle{color:var(--muted);font-weight:500}.avatar-hint{color:var(--faint);margin:14px 0 0;font-size:11.5px}.logout-btn{flex:none}.logout-btn:hover{color:#b4493f;background:#b4493f0f;border-color:#b4493f66}.settings-close{flex-shrink:0}.sync-chip{color:var(--muted);align-items:center;gap:7px;margin:8px 2px 2px;font-size:11.5px;font-weight:500;display:flex}.sync-ico{color:var(--faint);place-items:center;display:grid}.sync-ico.spin{animation:1.2s linear infinite spin}.sync-chip.is-synced .sync-ico{color:#4f8a63}.sync-chip.is-offline{color:var(--ink-soft)}.sync-chip.is-offline .sync-ico{color:#b88a3a}.sync-chip.is-error,.sync-chip.is-error .sync-ico{color:#b4493f}.page-tabs{margin-bottom:24px}.nav-block{margin-bottom:12px}.nav-link{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-link:hover{background:var(--hover);color:var(--ink)}.nav-link.is-active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.nav-link-label{flex:1}.peek-item{text-align:left;width:100%;color:var(--muted);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:5px 10px 5px 28px;font-size:12.5px;transition:background .15s,color .15s;display:flex;position:relative}.peek-item:before{content:"";background:var(--faint);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.peek-item:hover{background:var(--hover);color:var(--ink)}.peek-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.peek-meta{color:var(--faint);flex-shrink:0;font-size:11px}.peek-more{text-align:left;width:100%;color:var(--faint);background:0 0;border:none;padding:4px 10px 4px 28px;font-size:11.5px;font-weight:500;transition:color .15s}.peek-more:hover{color:var(--ink)}.shelf-head{justify-content:space-between;align-items:flex-start;gap:16px;max-width:860px;margin:0 auto 28px;display:flex}.shelf-head .btn.primary{flex:none}.shelf-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 4px;font-size:clamp(28px,4vw,40px);font-weight:500}.shelf-sub{color:var(--muted);margin:0;font-size:15px}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;max-width:860px;margin:0 auto;display:grid}.lib-head-actions{flex-shrink:0;gap:8px;display:flex}.lib-head-actions .btn{flex:none}.lib-toolbar{flex-wrap:wrap;align-items:center;gap:10px;max-width:860px;margin:0 auto 14px;display:flex}.lib-toolbar .explore-search{flex:220px;max-width:none;margin:0}.lib-toolbar .explore-search .icon-btn{flex-shrink:0;margin-right:-4px}.lib-sort{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-md);flex-shrink:0;gap:2px;padding:4px;display:inline-flex}.lib-sort button{color:var(--muted);background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .16s,color .16s,box-shadow .16s}.lib-sort button:hover{color:var(--ink)}.lib-sort button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.lib-count{letter-spacing:.12em;text-transform:uppercase;max-width:860px;color:var(--faint);margin:0 auto 12px;font-size:11px;font-weight:600}.shelf-card.is-active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.lib-view button{place-items:center;padding:7px 10px;display:grid}.lib-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);max-width:860px;box-shadow:var(--shadow-sm);flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.lib-row{align-items:center;display:flex;position:relative}.lib-row+.lib-row{border-top:1px solid var(--line)}.lib-row.is-active{box-shadow:inset 3px 0 0 var(--ink)}.lib-row-open{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:11px 14px;transition:background .14s;display:flex}.lib-row-open:hover{background:var(--hover)}.lib-row-icon{border-radius:var(--r-sm);background:var(--paper-2);width:28px;height:28px;color:var(--ink-soft);flex-shrink:0;place-items:center;display:grid}.lib-row-title{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.lib-row-artist{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.lib-row-side{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;padding-right:26px;display:flex}.lib-row-key{border:1px solid var(--line-2);color:var(--ink-soft);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.lib-row-meta,.lib-row-date{color:var(--faint);white-space:nowrap;font-size:12px}.lib-row-date{text-align:right;min-width:44px}.lib-row-del{top:50%;transform:translateY(-50%)}.lib-row:hover .lib-row-del,.lib-row-del:focus-visible{opacity:1}@media (width<=640px){.lib-row-artist,.lib-row-meta{display:none}}.sidebar-spacer{flex:auto;min-height:8px}@media (width<=560px){.lib-head{flex-direction:column;align-items:flex-start;gap:12px}.lib-head .lib-head-actions{width:100%}.lib-head .lib-head-actions .btn{flex:1}.lib-toolbar .explore-search{flex-basis:100%}}.shelf-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease), border-color .18s, transform .12s;position:relative}.shelf-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-2);transform:translateY(-1px)}.shelf-card-open{text-align:left;cursor:pointer;width:100%;min-width:0;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:14px;display:flex}.shelf-card-icon{border-radius:var(--r-sm);background:var(--paper-2);width:38px;height:38px;color:var(--ink-soft);flex-shrink:0;place-items:center;display:grid}.shelf-card-main{flex-direction:column;gap:2px;min-width:0;display:flex}.shelf-card-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.shelf-card-meta{color:var(--muted);font-size:12px}.shelf-card-del{color:var(--faint);opacity:0;background:0 0;border:none;border-radius:6px;place-items:center;padding:4px;transition:opacity .15s,color .15s,background .15s;display:grid;position:absolute;top:8px;right:8px}.shelf-card:hover .shelf-card-del,.shelf-card-del:focus-visible{opacity:1}.shelf-card-del:hover{color:#b4493f;background:#b4493f1a}.shelf-empty{text-align:center;max-width:860px;color:var(--muted);flex-direction:column;align-items:center;gap:12px;margin:40px auto;font-size:14.5px;display:flex}.shelf-empty.small{margin:14px auto;font-size:13px}.set-head{justify-content:space-between;align-items:center;max-width:760px;margin:0 auto 12px;display:flex}.back-btn{flex:none;gap:2px}.back-btn svg{transform:rotate(90deg)}.shelf-name-input{width:100%;max-width:760px;font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);background:0 0;border:none;outline:none;margin:0 auto;padding:0;font-size:clamp(26px,4vw,38px);font-weight:500;display:block}.shelf-date{align-items:center;max-width:760px;margin:6px auto 0;display:flex}.shelf-date-static{color:var(--ink-soft);font-size:13px}.datepicker{position:relative}.datepicker-trigger{border-radius:var(--r-sm);color:var(--ink-soft);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease);background:0 0;border:none;align-items:center;gap:8px;margin-left:-10px;padding:5px 10px;font-family:inherit;font-size:13.5px;display:inline-flex}.datepicker-trigger:hover{background:var(--hover)}.datepicker-trigger.empty{color:var(--muted)}.datepicker-pop{z-index:40;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);width:268px;box-shadow:var(--shadow-md);animation:dp-in .16s var(--ease);padding:14px;position:absolute;top:calc(100% + 8px);left:0}@keyframes dp-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.datepicker-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.datepicker-month{font-family:var(--serif);color:var(--ink);font-size:16px;font-weight:500}.datepicker-nav{gap:2px;display:flex}.datepicker-nav button{border-radius:var(--r-sm);width:26px;height:26px;color:var(--ink-soft);cursor:pointer;transition:background .18s var(--ease);background:0 0;border:none;place-items:center;display:grid}.datepicker-nav button:hover{background:var(--hover)}.dp-prev{display:inline-flex;transform:rotate(90deg)}.dp-next{display:inline-flex;transform:rotate(-90deg)}.datepicker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.datepicker-weekdays span{text-align:center;letter-spacing:.08em;color:var(--faint);font-size:10.5px;font-weight:600}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepicker-day{aspect-ratio:1;border-radius:var(--r-sm);color:var(--ink-soft);cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:none;place-items:center;font-family:inherit;font-size:13px;display:grid}.datepicker-day:hover{background:var(--hover)}.datepicker-day.out{color:var(--faint);opacity:.6}.datepicker-day.today{color:var(--ink);font-weight:700}.datepicker-day.selected{background:var(--ink);color:var(--paper);font-weight:600}.datepicker-day.selected:hover{background:var(--ink)}.datepicker-foot{border-top:1px solid var(--line);justify-content:space-between;margin-top:12px;padding-top:10px;display:flex}.dp-link{color:var(--muted);cursor:pointer;transition:color .18s var(--ease);background:0 0;border:none;border-radius:6px;padding:2px 4px;font-family:inherit;font-size:12.5px;font-weight:500}.dp-link:hover{color:var(--ink)}.shelf-category{width:100%}.shelf-section-label{letter-spacing:.12em;text-transform:uppercase;max-width:760px;color:var(--faint);margin:26px auto 10px;font-size:11px;font-weight:600}.shelf-readonly-note{border:1px solid var(--line);background:var(--surface);max-width:760px;color:var(--ink-soft);border-radius:12px;align-items:center;gap:8px;margin:12px auto 0;padding:9px 13px;font-size:12.5px;display:flex}.shelf-readonly-note svg{color:var(--faint);flex:none}.shelf-list{flex-direction:column;gap:6px;max-width:760px;margin:0 auto;display:flex}.shelf-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;gap:8px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.shelf-row:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.shelf-row.is-drop{box-shadow:inset 0 2px 0 var(--accent)}.shelf-row-num{text-align:center;width:1.6em;font-family:var(--mono);color:var(--faint);flex-shrink:0;font-size:12px}.shelf-drag-handle{width:20px;height:28px;color:var(--faint);cursor:grab;border-radius:4px;flex-shrink:0;place-items:center;transition:color .15s,background .15s;display:grid}.shelf-drag-handle:hover{color:var(--ink);background:var(--hover-2)}.shelf-drag-handle:active{cursor:grabbing}.shelf-row-key{font-family:var(--mono);color:var(--ink-soft);background:var(--hover-2);border-radius:5px;flex-shrink:0;padding:2px 7px;font-size:12px;font-weight:500}.shelf-row-main{text-align:left;background:0 0;border:none;border-radius:6px;flex-direction:column;flex:1;gap:1px;min-width:0;padding:2px 4px;transition:background .15s;display:flex}.shelf-row-main:hover:not(:disabled){background:var(--hover)}.shelf-row-main:disabled{cursor:default;opacity:.6}.shelf-row-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.shelf-row-meta{color:var(--muted);font-size:12px}.shelf-add{max-width:760px;margin:12px auto 0}.shelf-picker{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;max-height:320px;margin-top:8px;padding:6px;display:flex;overflow-y:auto}.shelf-picker-search{z-index:1;background:var(--surface);margin:0 0 4px;position:sticky;top:0}.shelf-pick{text-align:left;width:100%;color:var(--ink-soft);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;transition:background .15s,color .15s;display:flex}.shelf-pick:hover{background:var(--hover);color:var(--ink)}.shelf-pick svg{color:var(--faint);flex-shrink:0}.shelf-pick-title{font-size:13.5px;font-weight:500}.shelf-pick-meta{color:var(--faint);white-space:nowrap;margin-left:auto;font-size:12px}.settings-menu{position:relative}.settings-pop{min-width:224px}.settings-menu .icon-btn{position:relative;overflow:visible}.settings-menu .icon-btn .ver-count{pointer-events:none;position:absolute;top:-4px;right:-4px}.settings-pop .ver-count{margin-left:auto}.menu-sep{background:var(--line);height:1px;margin:4px 6px}.menu-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint,var(--ink-soft));padding:4px 10px 2px;font-size:11px;font-weight:600}.menu-pop button.is-on{color:var(--ink);background:var(--hover);font-weight:600}.menu-pop button:disabled{opacity:.4;cursor:not-allowed}.explore-head{max-width:860px;margin:0 auto 22px}.explore-title{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 4px;font-size:clamp(28px,4vw,38px);font-weight:500}.explore-sub{color:var(--muted);margin:0;font-size:14px}.explore-search{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);max-width:860px;height:46px;color:var(--muted);align-items:center;gap:10px;margin:0 auto 18px;padding:0 14px;transition:border-color .18s,box-shadow .18s,background .18s;display:flex}.explore-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.explore-search input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:14.5px}.explore-search input::placeholder{color:var(--faint)}.explore-list{flex-direction:column;gap:8px;max-width:860px;margin:0 auto;display:flex}.explore-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:100%;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease), box-shadow .18s, border-color .18s;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.explore-card:hover{border-color:var(--line-2);box-shadow:var(--shadow-md);transform:translateY(-1px)}.explore-card-open{text-align:left;cursor:pointer;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex:auto;align-items:center;gap:12px;padding:0;display:flex}.explore-card-main{flex-direction:column;gap:3px;min-width:0;display:flex}.explore-card-title{color:var(--ink);font-size:15px;font-weight:500}.explore-card-meta{color:var(--muted);font-size:12.5px}.explore-add{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--paper);color:var(--ink-soft);white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.explore-add:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.explore-empty{text-align:center;max-width:860px;color:var(--faint);margin:24px auto 0;font-size:14px}.peek-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:620px;max-height:84vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.peek-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 16px;display:flex}.peek-head-main{min-width:0}.peek-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 4px;font-size:26px;font-weight:500}.peek-meta{color:var(--muted);font-size:13px}.peek-body{flex-direction:column;flex:1;gap:12px;padding:18px 24px;display:flex;overflow-y:auto}.peek-block{border-left:3px solid var(--line-2);padding:4px 0 4px 14px}.peek-block-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:600}.peek-block-content{font-family:var(--mono);color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.55}.peek-block-content .chord{color:var(--chord-ink);font-weight:700}.peek-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex}.peek-foot-hint{color:var(--faint);font-size:12px}.peek-foot-actions{gap:8px;display:flex}.peek-foot-actions .btn{flex:none}.org-list{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.org-row{text-align:left;border:1px solid var(--line-2);background:var(--paper);border-radius:var(--r-md);width:100%;color:var(--ink);transition:border-color .16s, box-shadow .16s, background .16s, transform .12s var(--ease);align-items:center;gap:12px;padding:10px 12px;display:flex}.org-row:hover{border-color:var(--faint);box-shadow:var(--shadow-sm)}.org-row:active{transform:scale(.995)}.org-row.is-active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.org-avatar{background:var(--ink);width:34px;height:34px;color:var(--paper);border-radius:10px;flex-shrink:0;place-items:center;font-size:15px;font-weight:600;display:grid}.org-avatar.personal{background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line-2)}.org-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.org-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.org-row-sub{color:var(--muted);font-size:12px}.org-role{letter-spacing:.04em;text-transform:uppercase;background:var(--hover-2);color:var(--ink-soft);border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.org-role.leader{color:#4f8a63;background:#568a6329}.org-role-select{letter-spacing:.03em;border:1px solid var(--line-2);background:var(--paper);color:var(--ink-soft);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238a8a86' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 7px center;background-repeat:no-repeat;border-radius:999px;outline:none;flex:none;padding:3px 22px 3px 9px;font-size:11px;font-weight:600;transition:border-color .16s,box-shadow .16s}.org-role-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.org-role-select.leader{color:#4f8a63;background-color:#568a6329;border-color:#568a6347}.org-empty{color:var(--muted);margin:0;padding:6px 2px;font-size:13px;line-height:1.5}.org-create{gap:8px;display:flex}.org-create-input{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--paper);height:40px;color:var(--ink);outline:none;flex:1;padding:0 13px;font-size:14px;transition:border-color .16s,box-shadow .16s}.org-create-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.org-create-input::placeholder{color:var(--faint)}.org-create .btn.primary{flex:none;padding-inline:20px}.org-hint{color:var(--faint);margin:12px 0 0;font-size:12px}.org-join{gap:8px;margin-bottom:10px;display:flex}.org-join .btn.ghost{flex:none;padding-inline:20px}.link-btn.danger{color:#b4493f}.org-detail{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--paper-2);margin-bottom:16px;padding:14px 14px 6px}.org-detail-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.org-detail-name{color:var(--ink);font-size:15px;font-weight:600}.org-detail-section{border-top:1px solid var(--line-2);padding:12px 0}.org-detail-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.org-count{background:var(--hover-2);min-width:18px;height:18px;color:var(--ink-soft);letter-spacing:0;border-radius:999px;place-items:center;padding:0 5px;font-size:11px;display:inline-grid}.org-new-invite{letter-spacing:0;text-transform:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.org-detail-loading{place-items:center;padding:14px 0;display:grid}.org-members{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.org-member{align-items:center;gap:10px;display:flex}.org-member-avatar{background:var(--ink);width:28px;height:28px;color:var(--paper);border-radius:8px;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.org-member-name{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex;overflow:hidden}.org-member-you{letter-spacing:.04em;text-transform:uppercase;background:var(--hover-2);color:var(--ink-soft);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.org-invites{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.org-invite{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--paper);align-items:center;gap:10px;padding:7px 8px 7px 12px;display:flex}.org-invite-code{letter-spacing:.02em;min-width:0;color:var(--ink-soft);text-overflow:ellipsis;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;overflow:hidden}.org-invite-actions{align-items:center;gap:2px;display:flex}.org-detail-actions{border-top:1px solid var(--line-2);padding:10px 0 6px}.onb-card{text-align:center}.onb-choices{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.onb-choice{text-align:left;border:1px solid var(--line-2);background:var(--paper);border-radius:var(--r-md);width:100%;color:var(--ink);transition:border-color .16s, box-shadow .16s, transform .12s var(--ease);align-items:center;gap:13px;padding:14px 15px;display:flex}.onb-choice:hover{border-color:var(--ink);box-shadow:var(--shadow-sm)}.onb-choice:active{transform:scale(.99)}.onb-choice-ico{background:var(--ink);width:36px;height:36px;color:var(--paper);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.onb-choice-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.onb-choice-name{font-size:14.5px;font-weight:600}.onb-choice-sub{color:var(--muted);font-size:12.5px}.onb-form{flex-direction:column;gap:14px;margin-bottom:4px;display:flex}.onb-skip{color:var(--muted);margin-top:16px;font-size:13px;display:inline-block}.onb-loading{place-items:center;padding:20px 0 6px;display:grid}:root{--live:#e0483d}[data-theme=dark]{--live:#ff6a5e}.live-dot{background:var(--live);width:8px;height:8px;animation:live-pulse 1.8s var(--ease) infinite;border-radius:50%;flex:none;display:inline-block;box-shadow:0 0 #e0483d80}@keyframes live-pulse{0%{box-shadow:0 0 #e0483d73}70%{box-shadow:0 0 0 7px #e0483d00}to{box-shadow:0 0 #e0483d00}}.set-head-actions{align-items:center;gap:10px;display:flex}.set-head-actions .btn.primary{flex:none;align-items:center;gap:8px;display:inline-flex}.live-chip{z-index:60;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-md);cursor:pointer;border-radius:999px;align-items:center;gap:9px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.live-chip:hover{box-shadow:var(--shadow-lg)}.live-banner{z-index:60;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--shadow-md);border-radius:999px;align-items:center;gap:14px;padding:10px 12px 10px 18px;font-size:13px;display:inline-flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.live-banner .btn.primary{flex:none;padding-inline:18px}.live-now-row{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--hover);cursor:pointer;width:100%;color:var(--ink);text-align:left;align-items:center;gap:9px;margin-bottom:6px;padding:9px 12px;font-size:13px;display:flex}.live-now-row:hover{background:var(--hover-2)}.live-now-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.live-now-join{color:var(--live);font-weight:700}.live-song-nav{align-items:center;gap:4px;margin-right:8px;display:inline-flex}.live-song-nav .as-spd:first-child{transform:rotate(180deg)}.live-song-count{color:var(--muted);text-align:center;min-width:30px;font-size:12px;font-weight:700}.live-conn{color:var(--live);margin-left:8px;font-size:11px;font-weight:700}.live-conn.reconnecting,.live-conn.offline{color:var(--muted)}.live-callbar{border-bottom:1px solid var(--line);background:var(--paper-2);flex-wrap:wrap;gap:8px;padding:8px 16px;display:flex}.live-callbar-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-self:center;margin-right:4px;font-size:11px;font-weight:700}.live-call-btn{border:1px solid var(--line-2);background:var(--hover-2);color:var(--ink);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:12px;font-weight:600;display:inline-flex}.live-call-btn:hover{background:var(--line-2)}.live-call-btn.is-on{background:var(--live);color:#fff;border-color:#0000;box-shadow:0 2px 10px #e0483d59}.live-call-btn.clear{color:var(--muted);background:0 0;margin-left:auto}.live-call-btn.clear:disabled{opacity:.4;cursor:default}.live-resync{z-index:55;background:var(--live);color:#fff;box-shadow:var(--shadow-md);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:700;display:inline-flex;position:fixed;bottom:60px;left:50%;transform:translate(-50%)}.live-call-overlay{z-index:58;border-radius:var(--r-lg);background:var(--live);color:#fff;letter-spacing:.5px;text-transform:uppercase;box-shadow:var(--shadow-lg);pointer-events:none;animation:live-call-in .25s var(--ease);padding:16px 40px;font-size:28px;font-weight:800;position:fixed;top:90px;left:50%;transform:translate(-50%)}@keyframes live-call-in{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.live-ended-scrim{z-index:80;justify-content:center;align-items:center;display:flex}.live-ended-card{background:var(--surface);border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-lg);max-width:320px;padding:28px 32px}.live-ended-card h3{margin:0 0 6px;font-size:18px}.live-ended-card p{color:var(--muted);margin:0 0 18px;font-size:14px}.live-ended-card .btn.primary{flex:none}.cal-scroll button{font-family:inherit}.cal-head{max-width:1080px}.cal-head-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.cal-head-actions .btn{flex:none}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1080px;margin:0 auto 16px;display:flex}.cal-modes .seg{padding:7px 14px}.cal-monthnav{align-items:center;gap:4px;display:flex}.cal-month-label{text-align:center;min-width:150px;color:var(--ink);font-size:15px;font-weight:600}.cal-today-btn{margin-left:8px}.cal-count{color:var(--muted);font-size:13px}.cal-board{max-width:1080px;margin:0 auto}.cal-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px;display:grid}.cal-weekday{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding-left:3px;font-size:11px;font-weight:600}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;gap:6px;display:grid}.cal-cell{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:5px;min-width:0;min-height:106px;padding:7px;transition:border-color .15s,background .15s;display:flex}.cal-cell.out{background:0 0;border-color:#0000}.cal-cell.out .cal-daynum{color:var(--faint)}.cal-cell.today{border-color:var(--line-2);box-shadow:inset 0 0 0 1px var(--line-2)}.cal-cell.away{background:#b4493f0d}.cal-cell-top{justify-content:space-between;align-items:center;gap:4px;display:flex}.cal-cell-actions{align-items:center;gap:4px;display:inline-flex}.cal-add{width:20px;height:20px;color:var(--faint);cursor:pointer;opacity:.5;transition:opacity .15s var(--ease), background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.cal-cell:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-add:hover{background:var(--hover);color:var(--ink)}@media (hover:none){.cal-add{opacity:.7}}.cal-daynum{color:var(--ink-soft);padding-left:2px;font-size:12.5px;font-weight:600}.cal-cell.today .cal-daynum{background:var(--ink);width:22px;height:22px;color:var(--paper);border-radius:999px;place-items:center;padding:0;display:grid}.cal-away-tag{letter-spacing:.04em;text-transform:uppercase;color:#b4493f;background:#b4493f21;border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700}.cal-cell-events{flex-direction:column;gap:3px;min-height:0;display:flex}.cal-chip{width:100%;min-width:0;max-width:100%;color:var(--ink);text-align:left;transition:transform .12s var(--ease), box-shadow .15s;border:1px solid;border-radius:6px;align-items:center;gap:5px;padding:3px 6px;font-size:11.5px;font-weight:500;display:flex;overflow:hidden}.cal-chip:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cal-chip.status-out{opacity:.5}.cal-chip.status-maybe{opacity:.78}.cal-chip-dot{border-radius:999px;flex:none;width:6px;height:6px}.cal-chip-time{font-variant-numeric:tabular-nums;color:var(--ink-soft);flex:none;font-weight:600}.cal-chip-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.cal-more{color:var(--muted);text-align:left;padding:1px 6px;font-size:11px;font-weight:600}.cal-more:hover{color:var(--ink)}.cal-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;max-width:1080px;margin:18px auto 0;display:flex}.cal-foot-actions{align-items:center;gap:18px;display:flex}.cal-legend{flex-wrap:wrap;gap:14px;display:flex}.cal-legend-item{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.cal-dot{border-radius:999px;flex:none;width:9px;height:9px}.cal-agenda{max-width:760px;margin:0 auto}.cal-agenda-past{opacity:.6}.cal-agenda-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease), border-color .18s, transform .12s;align-items:center;gap:16px;margin-bottom:10px;padding:12px 16px 12px 12px;display:flex}.cal-agenda-row:hover{box-shadow:var(--shadow-md);border-color:var(--line-2);transform:translateY(-1px)}.cal-agenda-date{border:none;border-right:1px solid var(--line);background:0 0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:1px;width:54px;padding:2px 14px 2px 4px;display:flex}.cal-agenda-dow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:600}.cal-agenda-day{font-family:var(--serif);color:var(--ink);font-size:23px;font-weight:500;line-height:1.1}.cal-agenda-mon{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px}.cal-agenda-main{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;gap:4px;min-width:0;padding:0;display:flex}.cal-agenda-titlerow{align-items:center;gap:8px;min-width:0;display:flex}.cal-type-badge{letter-spacing:.04em;text-transform:uppercase;color:#fff;border-radius:999px;flex:none;padding:2px 7px;font-size:10px;font-weight:700}.cal-type-badge.lg{padding:4px 11px;font-size:11px}.cal-agenda-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.cal-agenda-meta{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.cal-agenda-meta svg{color:var(--faint);flex:none}.cal-agenda-att{gap:10px;font-size:12px;display:inline-flex}.att{align-items:center;gap:4px;font-weight:600;display:inline-flex}.att.going{color:#4f8a63}.att.maybe{color:#c08a3e}.att.out{color:#b4493f}.cal-agenda-rsvp{flex-direction:column;flex:none;justify-content:center;align-items:flex-end;gap:5px;display:flex}.cal-rsvp-label{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-size:10px;font-weight:700}.cal-rsvp{background:var(--paper-2);border:1px solid var(--line);border-radius:999px;gap:3px;padding:3px;display:inline-flex}.cal-rsvp-btn{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:5px 13px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.cal-rsvp.compact .cal-rsvp-btn{padding:3px 9px;font-size:11.5px}.cal-rsvp-btn:hover{color:var(--ink)}.cal-rsvp-btn.going.is-active{color:#4f8a63;background:#568a6329}.cal-rsvp-btn.maybe.is-active{color:#c08a3e;background:#c88a3e29}.cal-rsvp-btn.out.is-active{color:#b4493f;background:#b4493f24}.cal-modal{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:540px;max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);padding:22px 24px;overflow-y:auto}.cal-modal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-modal-head-actions{gap:3px;display:flex}.cal-modal-title{font-family:var(--serif);letter-spacing:-.01em;color:var(--ink);margin:0 0 14px;font-size:25px;font-weight:500}.cal-modal-meta{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.cal-meta-line{color:var(--ink-soft);align-items:center;gap:10px;font-size:13.5px;display:flex}.cal-meta-line svg{color:var(--faint);flex:none}.cal-modal-notes{color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 0 16px;padding:11px 13px;font-size:13.5px;line-height:1.55}.cal-yours{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:13px 0;display:flex}.cal-yours-label{color:var(--ink);flex-direction:column;gap:2px;font-size:13.5px;font-weight:600;display:flex}.cal-yours-hint{color:var(--muted);font-size:11.5px;font-weight:500}.cal-roster-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.cal-roster-title{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.cal-roster-sum{gap:9px;font-size:12px;display:inline-flex}.cal-roster-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cal-roster-row{align-items:center;gap:10px;padding:6px 0;display:flex}.cal-avatar{border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:11.5px;font-weight:700;display:grid}.cal-avatar.sm{border-radius:7px;width:22px;height:22px;font-size:9.5px}img.cal-avatar{object-fit:cover}.cal-roster-name{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex;overflow:hidden}.cal-roster-instr{color:var(--muted);text-overflow:ellipsis;font-size:11.5px;font-weight:400;overflow:hidden}.cal-guest-tag{letter-spacing:.04em;text-transform:uppercase;color:#9a7b3e;background:#8b7b5a2e;border-radius:999px;flex:none;padding:1px 6px;font-size:9.5px;font-weight:700}.cal-guest-tag.sm{font-size:8.5px}.cal-avatar.lg{border-radius:12px;width:44px;height:44px;font-size:15px}.avail-members{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:4px 0 22px;display:grid}.avail-member{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:10px;padding:9px 11px;transition:border-color .15s,background .15s,transform .15s;display:flex}.avail-member:hover{background:var(--hover)}.avail-member.is-active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.avail-member-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.avail-member-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:flex;overflow:hidden}.avail-member-instr{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.avail-away-dot{background:#b4493f;border-radius:999px;flex:none;width:8px;height:8px}.avail-detail{border-top:1px solid var(--line);padding-top:20px}.avail-detail-head{align-items:center;gap:12px;margin-bottom:22px;display:flex}.avail-detail-id{flex-direction:column;gap:2px;min-width:0;display:flex}.avail-detail-name{color:var(--ink);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.avail-detail-sub{color:var(--muted);font-size:12.5px}.avail-detail-summary{align-items:center;gap:10px;margin-left:auto;display:flex}.avail-stat{color:var(--muted);font-size:12px}.avail-stat b{color:var(--ink);font-weight:700}.avail-stat.status{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:700}.avail-stat.status-going{color:#4f8a63;background:#568a6324}.avail-stat.status-maybe{color:#c08a3e;background:#c88a3e24}.avail-stat.status-out{color:#b4493f;background:#b4493f1f}.avail-section{margin-bottom:24px}.avail-section-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.avail-section-head .shelf-section-label{margin:0}.avail-earlier{margin-top:18px}.avail-events{flex-direction:column;gap:6px;display:flex}.avail-past{opacity:.62}.avail-event-row{border:1px solid var(--line);background:var(--surface);border-radius:11px;align-items:center;gap:12px;padding:8px 10px;display:flex}.avail-event-date{flex-direction:column;flex:none;align-items:center;width:40px;line-height:1.05;display:flex}.avail-event-dow{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:9.5px;font-weight:700}.avail-event-daynum{color:var(--ink);font-size:18px;font-weight:700}.avail-event-mon{text-transform:uppercase;color:var(--muted);font-size:9.5px;font-weight:600}.avail-event-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.avail-event-titlerow{align-items:center;gap:7px;min-width:0;display:flex}.avail-event-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.avail-event-meta{color:var(--muted);align-items:center;gap:5px;font-size:11.5px;display:flex}.cal-status{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.cal-status.going{color:#4f8a63;background:#568a6324}.cal-status.maybe{color:#c08a3e;background:#c88a3e24}.cal-status.out{color:#b4493f;background:#b4493f1f}.cal-status-auto{opacity:.7;font-size:8.5px;font-weight:600}.cal-status-select{letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--ink-soft);cursor:pointer;appearance:none;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238a8a86' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:999px;outline:none;flex:none;padding:4px 24px 4px 10px;font-size:11px;font-weight:700;transition:border-color .16s,box-shadow .16s}.cal-status-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cal-status-select.going{color:#4f8a63;background-color:#568a6324;border-color:#568a6347}.cal-status-select.maybe{color:#c08a3e;background-color:#c88a3e24;border-color:#c88a3e4d}.cal-status-select.out{color:#b4493f;background-color:#b4493f1f;border-color:#b4493f47}.cal-addperson{border-top:1px dashed var(--line-2);gap:8px;margin-top:12px;padding-top:12px;display:flex}.cal-addperson-input{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-sm);min-width:0;height:38px;color:var(--ink);outline:none;flex:1;padding:0 12px;font-size:13px;transition:border-color .16s,box-shadow .16s}.cal-addperson-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cal-addperson .btn{flex:none}.cal-modal-foot{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex}.cal-modal-foot .btn{flex:none}.cal-form{max-width:500px}.cal-typepick{flex-wrap:wrap;gap:6px;display:flex}.cal-typebtn{border:1px solid var(--line-2);background:var(--paper);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.cal-typebtn:hover{background:var(--surface);color:var(--ink)}.cal-typebtn.is-active{background:var(--surface);color:var(--ink);border-width:1.5px;font-weight:600}.cal-form-date{display:flex}.cal-repeat{flex-direction:column;gap:8px;display:flex}.cal-repeat-label,.cal-repeat-untillabel{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:600}.cal-repeat-opt{text-transform:none;letter-spacing:0;opacity:.8;font-weight:500}.cal-repeatpick{flex-wrap:wrap;gap:6px;display:flex}.cal-repeatbtn{border:1px solid var(--line-2);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.cal-repeatbtn:hover{background:var(--surface);color:var(--ink)}.cal-repeatbtn.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}.cal-repeat-until{border:1px dashed var(--line-2);border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.cal-repeat-count{color:var(--muted);font-size:11.5px;font-weight:500}.cal-meta-repeat{font-weight:500}.cal-time-field{flex-direction:column;flex:1;gap:5px;display:flex}.cal-time-field>span{color:var(--muted);font-size:11.5px;font-weight:600}.cal-notes-input{resize:vertical;height:auto;min-height:54px;padding:11px 14px;line-height:1.5}.cal-invite-block{flex-direction:column;gap:10px;display:flex}.cal-invite-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.cal-invite-head>span{color:var(--muted);font-size:12px;font-weight:600}.cal-invite-modes .seg{padding:6px 12px;font-size:12.5px}.cal-invite-list{flex-wrap:wrap;gap:6px;display:flex}.cal-invite-chip{border:1px solid var(--line-2);background:var(--paper);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:5px 11px 5px 5px;font-size:12.5px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.cal-invite-chip.is-on{border-color:var(--ink);background:var(--surface);color:var(--ink)}.cal-invite-chip svg{color:#4f8a63}.cal-form-actions{gap:10px;margin-top:18px;display:flex}.cal-away{max-width:460px}.cal-away-intro{color:var(--muted);margin:0 0 16px;font-size:13.5px;line-height:1.55}.cal-away-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.cal-away-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:9px 12px;display:flex}.cal-away-dates{color:var(--ink);flex:none;align-items:center;gap:7px;font-size:13px;font-weight:600;display:inline-flex}.cal-away-dates svg{color:var(--faint)}.cal-away-reason{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.cal-away-add{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:14px;display:flex}.cal-away-add-dates{gap:12px;display:flex}.cal-away-field{flex-direction:column;flex:1;gap:5px;display:flex}.cal-away-field>span{color:var(--muted);font-size:11.5px;font-weight:600}.cal-away .btn.primary.full{flex:none}.cal-link{max-width:460px}.cal-link-list{flex-direction:column;gap:8px;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cal-link-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:11px;padding:9px 12px;display:flex}.cal-link-row .cal-avatar{object-fit:cover}.cal-link-id{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cal-link-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex;overflow:hidden}.cal-link-sub{color:var(--muted);align-items:center;gap:8px;font-size:11.5px;display:flex}.cal-link-row .btn{flex:none;justify-content:center;min-width:68px}.avail-link-hint{border:1px solid var(--line);font:inherit;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.avail-link-hint:hover{color:var(--ink);border-color:var(--ink);background:var(--surface)}.cal-day{max-width:440px}.cal-day-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.cal-day-event{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:11px 13px;transition:border-color .15s,box-shadow .15s;display:flex}.cal-day-event:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.cal-day-event-main{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-day-event-title{color:var(--ink);font-size:14px;font-weight:600}.cal-day-event-meta{color:var(--muted);font-size:12px}@media (width<=720px){.cal-cell{min-height:76px;padding:5px}.cal-grid,.cal-weekdays{gap:4px}.cal-chip-time{display:none}.cal-chip{padding:2px 5px;font-size:10.5px}.cal-head-actions{width:100%}.cal-head-actions .btn{flex:1}.cal-agenda-row{flex-wrap:wrap}.cal-agenda-main{flex:auto;min-width:160px}.cal-agenda-rsvp{border-top:1px dashed var(--line);flex-direction:row;flex:100%;justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px}.cal-agenda-rsvp .cal-rsvp-label{display:block}.cal-away-add-dates{flex-direction:column;gap:10px}.cal-away-tag{background:#b4493f;width:7px;height:7px;padding:0;font-size:0}.avail-event-row{flex-wrap:wrap}.avail-event-main{flex:auto;min-width:160px}.avail-event-row .cal-rsvp{border-top:1px dashed var(--line);flex:100%;justify-content:flex-end;margin-top:4px;padding-top:10px}.avail-detail-head{flex-wrap:wrap}.avail-detail-id{flex:auto;min-width:140px}.avail-detail-summary{flex:100%;margin-top:2px;margin-left:0}}.sidebar-resize{cursor:col-resize;z-index:5;touch-action:none;width:10px;position:absolute;top:0;bottom:0;right:-3px}.sidebar-resize:after{content:"";width:2px;transition:background .15s var(--ease);background:0 0;border-radius:2px;position:absolute;top:12px;bottom:12px;left:50%;transform:translate(-50%)}.sidebar-resize:hover:after{background:var(--line)}.sidebar.is-resizing .sidebar-resize:after{background:var(--ink)}@media (width<=720px){.sidebar-resize{display:none}}.sidebar-collapse{width:26px;height:26px;color:var(--muted);background:0 0;border:none;border-radius:7px;place-items:center;margin-left:auto;transition:background .15s,color .15s;display:grid}.sidebar-collapse:hover{background:var(--hover-2);color:var(--ink)}.sidebar-collapse svg{transition:transform .2s var(--ease)}@media (width<=720px){.sidebar-collapse{display:none}}@media (width>=721px){.sidebar.is-collapsed{opacity:0;pointer-events:none;width:0;padding-left:0;padding-right:0}}.sidebar-reveal{z-index:40;border:1px solid var(--line);background:var(--surface);width:32px;height:32px;box-shadow:var(--shadow-sm);color:var(--muted);transition:color .15s, background .15s, transform .15s var(--ease);border-radius:9px;place-items:center;display:grid;position:fixed;top:15px;left:14px}.sidebar-reveal:hover{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-md);transform:translateY(-1px)}:root[data-shell=macos] .sidebar-reveal{top:calc(15px + var(--mac-titlebar-h))}.sidebar-reveal svg{color:var(--ink-soft)}@media (width<=720px){.sidebar-reveal{display:none}}.home-head{max-width:760px}.home-section-label{letter-spacing:.12em;text-transform:uppercase;max-width:760px;color:var(--faint);margin:22px auto 10px;font-size:11px;font-weight:600}.home-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);max-width:760px;box-shadow:var(--shadow-sm);margin:0 auto;padding:22px 24px}.home-event-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.home-event-when{color:var(--muted);font-size:12.5px;font-weight:600}.home-event-title{font-family:var(--serif);letter-spacing:-.01em;color:var(--ink);margin:0 0 14px;font-size:clamp(24px,3.4vw,30px);font-weight:500}.home-event-meta{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.home-meta-line{color:var(--ink-soft);align-items:center;gap:9px;font-size:13.5px;display:flex}.home-meta-line svg{color:var(--faint);flex:none}.home-meta-line .att{align-items:center;gap:4px;margin-right:10px;font-weight:600;display:inline-flex}.home-event-notes{color:var(--ink-soft);background:var(--paper-2);border-radius:12px;margin:0 0 16px;padding:11px 13px;font-size:13.5px;line-height:1.55}.home-setlist{border-top:1px solid var(--line);padding-top:14px}.home-setlist-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.home-setlist-title{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.home-setlist-title svg{color:var(--faint)}.home-setlist-songs{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.home-song-row{text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:8px;transition:background .15s;display:flex}.home-song-row:hover{background:var(--hover)}.home-song-num{font-variant-numeric:tabular-nums;width:16px;color:var(--faint);font-size:11px}.home-song-title{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:600;overflow:hidden}.home-song-artist{color:var(--muted);white-space:nowrap;font-size:12px}.home-empty-line{color:var(--muted);margin:0;padding:4px 2px;font-size:13px}.home-card-foot{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex}.home-card-foot .btn{flex:none}.home-empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:34px 24px;display:flex}.home-empty svg{color:var(--faint)}.home-empty .btn{flex:none}.home-recent{flex-direction:column;gap:6px;max-width:760px;margin:0 auto;display:flex}.home-recent-row{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:100%;box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease), border-color .18s, transform .12s;align-items:center;gap:12px;padding:11px 14px;display:flex}.home-recent-row:hover{box-shadow:var(--shadow-md);border-color:var(--line-2);transform:translateY(-1px)}.home-recent-icon{background:var(--paper-2);width:34px;height:34px;color:var(--ink-soft);border-radius:9px;flex:none;place-items:center;display:grid}.home-recent-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.home-recent-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.home-recent-sub{color:var(--muted);font-size:12px}.home-recent-row>svg{color:var(--faint);flex:none}.home-recent-empty{max-width:760px;margin:0 auto}.skel{background:var(--hover);border-radius:var(--r-sm);display:block;position:relative;overflow:hidden}.skel:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 7%, transparent), transparent);animation:skel-sweep 1.5s var(--ease) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes skel-sweep{to{transform:translate(100%)}}@keyframes skel-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.skel:after{animation:none}.skel{animation:1.8s ease-in-out infinite skel-pulse}}.skel-head-text{flex-direction:column;gap:12px;display:flex}.skel-title{border-radius:9px;width:min(240px,46%);height:30px}.skel-sub{width:min(360px,66%);height:14px}.skel-tabs{pointer-events:none}.skel-tab{border-radius:8px;width:130px;height:34px}.skel-toolbar{justify-content:flex-start;gap:10px}.skel-search{border-radius:var(--r-md);flex:220px;width:100%;max-width:860px;height:46px;margin:0 auto 18px}.skel-toolbar .skel-search{margin:0}.skel-line{height:12px}.skel-line.lg{width:72%}.skel-line.sm{width:46%;height:10px}.skel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-height:70px;box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:14px 16px;display:flex}.skel-card-icon{border-radius:9px;flex:none;width:34px;height:34px}.skel-card-icon.round{border-radius:50%}.skel-card-lines{flex-direction:column;flex:1;gap:9px;min-width:0;display:flex}.skel-erow{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;display:flex}.skel-erow-add{border-radius:8px;flex:none;width:120px;height:30px}.skel-weekday{width:26px;height:11px;margin:0 auto}.skel-daynum{border-radius:5px;width:20px;height:15px}.skel-label{width:96px;height:11px}.skel-bigcard{border-radius:var(--r-lg);max-width:760px;height:280px;margin:0 auto 8px}.skel-recent{border-radius:var(--r-md);height:58px}.skel-member{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:9px 11px;display:flex}.skel-availdetail{flex-direction:column;gap:14px;display:flex}.skel-block{border-radius:var(--r-md);height:120px}.skel-setcard{flex-direction:column;gap:16px;display:flex}.ai-fab{z-index:60;border:1px solid var(--line-2);background:var(--ink);width:52px;height:52px;color:var(--paper);cursor:pointer;box-shadow:var(--shadow-md);transition:transform .18s var(--ease,ease), background .18s;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:22px;right:22px}.ai-fab:hover{transform:translateY(-2px)}.ai-fab-mark{background:url(/favicon.svg) 50%/contain no-repeat;border-radius:9px;width:30px;height:30px}.ai-fab.is-open{right:calc(min(400px,40vw) + 26px)}@media (width<=560px){.ai-fab.is-open{bottom:calc(min(78vh,640px) + 14px);right:22px}}.ai-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(400px,40vw);box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transition:margin-right .32s var(--ease,cubic-bezier(.22, 1, .36, 1)), opacity .24s var(--ease,ease);flex-direction:column;flex:none;margin:8px calc(-1*min(400px,40vw)) 8px 0;display:flex;overflow:hidden}.ai-panel.is-open{opacity:1;pointer-events:auto;margin-right:8px}@media (width<=560px){.ai-panel{z-index:59;border:none;border-top:1px solid var(--line);width:100vw;height:min(78vh,640px);box-shadow:var(--shadow-lg);opacity:1;pointer-events:auto;transition:transform .28s var(--ease,cubic-bezier(.22, 1, .36, 1));border-radius:18px 18px 0 0;margin:0;position:fixed;inset:auto 0 0;transform:translateY(100%)}.ai-panel.is-open{margin:0;transform:none}}.ai-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;padding:14px 14px 12px 18px;display:flex}.ai-title{font-family:var(--serif);color:var(--ink);align-items:center;gap:8px;font-size:17px;font-weight:600;display:inline-flex}.ai-head-actions{gap:4px;display:flex}.ai-icon{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;transition:background .15s,color .15s;display:grid}.ai-icon:hover{background:var(--hover,#7d7d7d1f);color:var(--ink)}.ai-icon.is-warn{color:var(--accent-ink)}.ai-keybox{border-bottom:1px solid var(--line);background:var(--surface-2);flex-direction:column;flex:none;gap:8px;padding:14px 18px;display:flex}.ai-label{color:var(--ink-soft);font-size:12px;font-weight:600}.ai-muted{color:var(--muted);font-weight:400}.ai-field{border:1px solid var(--line-2);background:var(--surface);width:100%;color:var(--ink);font-family:var(--mono);border-radius:10px;padding:9px 11px;font-size:13px}.ai-field:focus{outline:2px solid var(--accent);outline-offset:1px}.ai-check{color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.ai-keyrow{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.ai-link{font-size:12px;text-decoration:none}.ai-link:hover{text-decoration:underline}.ai-save{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;padding:7px 16px;font-size:13px;font-weight:600}.ai-msgs{flex-direction:column;flex:1;gap:10px;padding:16px 16px 8px;display:flex;overflow-y:auto}.ai-row{white-space:pre-wrap;word-wrap:break-word;max-width:100%;font-size:14px;line-height:1.5}.ai-user{background:var(--accent);color:#fff;border-radius:15px 15px 4px;align-self:flex-end;max-width:85%;padding:9px 13px}.ai-assistant{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:15px 15px 15px 4px;align-self:flex-start;max-width:92%;padding:9px 13px}.ai-md{white-space:normal}.ai-md>:first-child{margin-top:0}.ai-md>:last-child{margin-bottom:0}.ai-md p,.ai-md ul,.ai-md ol,.ai-md pre,.ai-md blockquote,.ai-md table{margin:0 0 8px}.ai-md h1,.ai-md h2,.ai-md h3,.ai-md h4{margin:12px 0 6px;font-size:14px;font-weight:700;line-height:1.35}.ai-md ul,.ai-md ol{padding-left:20px}.ai-md li{margin:2px 0}.ai-md li>p{margin:0}.ai-md a{color:var(--accent-ink,var(--accent));text-underline-offset:2px;text-decoration:underline}.ai-md code{font-family:var(--mono);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12.5px}.ai-md pre{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow-x:auto}.ai-md pre code{white-space:pre;background:0 0;border:none;padding:0;font-size:12.5px;line-height:1.55}.ai-md blockquote{border-left:3px solid var(--line-2);color:var(--muted);padding-left:10px}.ai-md hr{border:none;border-top:1px solid var(--line);margin:10px 0}.ai-md table{border-collapse:collapse;font-size:13px;display:block;overflow-x:auto}.ai-md th,.ai-md td{border:1px solid var(--line);text-align:left;padding:4px 8px}.ai-md th{background:var(--surface);font-weight:600}.ai-md strong{font-weight:650}.ai-tool{color:var(--muted);font-size:12.5px;font-family:var(--mono);align-self:flex-start;align-items:center;gap:8px;display:inline-flex}.ai-tool-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.ai-error{color:#b4553e;background:#c050381f;border:1px solid #c0503847;border-radius:12px;align-self:flex-start;max-width:92%;padding:9px 13px;font-size:13px}.ai-empty{color:var(--muted);padding:8px 2px;font-size:14px}.ai-suggest{flex-direction:column;gap:8px;margin-top:12px;display:flex}.ai-suggest button{text-align:left;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);cursor:pointer;border-radius:11px;padding:10px 13px;font-size:13.5px;transition:border-color .15s,color .15s}.ai-suggest button:hover{border-color:var(--accent);color:var(--ink)}.ai-typing-row{align-self:flex-start}.ai-typing{background:var(--surface-2);border:1px solid var(--line);border-radius:15px;gap:4px;padding:10px 13px;display:inline-flex}.ai-typing i{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite ai-bounce}.ai-typing i:nth-child(2){animation-delay:.16s}.ai-typing i:nth-child(3){animation-delay:.32s}@keyframes ai-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.ai-typing i{animation:none}.ai-panel,.ai-fab{transition:none}}.ai-input{border-top:1px solid var(--line);flex:none;align-items:flex-end;gap:8px;padding:12px 14px 14px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line-2);background:var(--surface-2);max-height:140px;color:var(--ink);font-family:var(--sans);border-radius:13px;flex:1;padding:11px 13px;font-size:14px;line-height:1.4}.ai-input textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.ai-send{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;transition:opacity .15s,transform .15s;display:grid}.ai-send:disabled{opacity:.4;cursor:default}.ai-send:not(:disabled):hover{transform:scale(1.06)}
