.sortmenu{flex-shrink:0;position:relative}.sortmenu-trigger{border-radius:var(--radius-sm);background:var(--card-bg);border:1px solid var(--card-border);height:34px;color:var(--muted);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:5px;padding:0 9px;font-weight:600;display:inline-flex}@media (hover:hover){.sortmenu-trigger:hover{color:var(--text);border-color:var(--surface-border)}}.sortmenu-current{color:var(--text)}.sortmenu-pop{z-index:50;border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);min-width:180px;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--shadow-popover);animation:sortmenu-in var(--dur-fast) ease;padding:6px;position:absolute;top:calc(100% + 6px);right:0}@keyframes sortmenu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sortmenu-opt{border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text);font-size:var(--text-sm);text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;font-weight:600;display:flex}@media (hover:hover){.sortmenu-opt:hover{background:var(--card-bg-hover)}}.sortmenu-opt:active{background:var(--card-bg-hover)}.sortmenu-opt.is-active{color:var(--accent)}.add-overlay{z-index:1000;position:fixed;inset:0}.add-backdrop{animation:add-fade var(--dur-base,.2s) ease-out;background:#06041066;position:absolute;inset:0}.add-menu{z-index:1001;background:var(--glass-bg-strong,#141228db);border:1px solid var(--glass-border,#ffffff1a);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(24px)saturate(160%);min-width:230px;max-width:min(280px,100vw - 24px);box-shadow:var(--shadow-popover);transform-origin:100% 0;animation:add-menu-in var(--dur-base,.2s) var(--ease-out,ease-out);flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed;top:64px;right:12px}.add-item{align-items:center;gap:var(--space-3);padding:var(--space-3);color:var(--text);text-align:left;border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;background:0 0;border:none;min-width:0;font-size:.92rem;display:flex}@media (hover:hover){.add-item:hover:not(:disabled){background:#ffffff14}}.add-item:active:not(:disabled){transform:scale(var(--press-scale))}.add-item:disabled{opacity:.5;cursor:default}.ai-ic{width:var(--icon-lg);height:var(--icon-lg);color:var(--accent);flex:none;justify-content:center;align-items:center;display:flex}.soon{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--radius-xs);margin-left:auto;padding:1px 6px;font-size:.62rem}@keyframes add-fade{0%{opacity:0}to{opacity:1}}@keyframes add-menu-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.add-backdrop,.add-menu{animation:none}.add-item:active:not(:disabled){transform:none}}.setlists{flex-direction:column;height:100%;display:flex}.sl-listbar{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);display:flex}.sl-count{font-size:var(--text-sm);color:var(--muted);font-weight:600}.sl-list{gap:var(--list-gap);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex;overflow:hidden auto}.sl-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;background:var(--card-bg);border:1px solid var(--card-border);display:flex}@media (hover:hover){.sl-item:hover{background:var(--card-bg-hover)}}.sl-item.sl-pinned{box-shadow:inset 2px 0 0 var(--accent)}.sl-open{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex:1;margin:0;padding:0;display:flex}.sl-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sl-main{flex:1;min-width:0}.sl-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sl-meta{color:var(--muted);margin-top:2px;font-size:.78rem}.sl-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.sl-act{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:6px 8px;display:flex}.sl-pin.is-pinned{color:var(--accent)}@media (hover:hover){.sl-act:hover{background:var(--accent-soft);color:var(--accent)}.sl-del:hover{background:var(--danger-soft);color:var(--danger)}}.sl-rename-input{border:1px solid var(--accent-border);border-radius:var(--radius-sm);min-width:0;color:var(--text);background:#ffffff0f;outline:none;flex:1;padding:8px 11px;font-size:.95rem;font-weight:600}.sl-empty{color:var(--muted);padding:var(--space-8) var(--space-5);text-align:center;font-size:var(--text-md)}.sl-new-row{padding:var(--space-3) var(--space-4);align-items:center;gap:8px;display:flex}.sl-new-input{border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text);background:#ffffff0f;flex:1;font-size:.9rem}.sl-new-input::placeholder{color:var(--muted)}.sl-new-confirm{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:6px;padding:9px 14px;font-weight:600;display:inline-flex}.sl-new-confirm:disabled{opacity:.4;cursor:default}.sl-new-cancel{border:1px solid var(--surface-border);color:var(--muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:9px 12px}@media (pointer:coarse){.sl-act{min-width:40px;min-height:40px}}@container library (width<=360px){.sl-item{gap:8px;padding:11px 12px}.sl-new-row{flex-wrap:wrap;row-gap:8px}.sl-new-input{flex-basis:100%}}@container library (width<=248px){.sl-item{flex-wrap:wrap;justify-content:flex-end;row-gap:8px}.sl-open,.sl-main{flex:100%}}.sync-chip{border-radius:var(--radius-pill);background:var(--card-bg);border:1px solid var(--card-border);color:var(--muted);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-weight:600;line-height:1;display:inline-flex}.sync-chip:disabled{cursor:default}@media (hover:hover){.sync-chip:not(:disabled):hover{background:var(--card-bg-hover);color:var(--text)}}.sync-icon{color:var(--muted);flex-shrink:0}.sync-synced .sync-icon{color:#5fd6a0}.sync-pending .sync-icon{color:#ffce6b}.sync-offline .sync-icon{color:var(--muted)}.sync-error .sync-icon{color:var(--danger)}.sync-syncing .sync-icon{color:var(--accent);animation:.9s linear infinite sync-spin}.sync-error{color:var(--danger)}@keyframes sync-spin{to{transform:rotate(-360deg)}}@media (prefers-reduced-motion:reduce){.sync-syncing .sync-icon{animation:none}}@container library (width<=400px){.sync-chip .sync-label{display:none}.sync-chip{padding:5px}}.library{height:100dvh;padding:16px;padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px));flex-direction:column;display:flex;overflow-x:clip;container:library/inline-size}.lib-body{min-width:0;min-height:0;animation:libTabIn var(--dur-base,.2s) var(--ease-out,ease-out) both;flex-direction:column;flex:auto;display:flex;overflow-x:clip}@keyframes libTabIn{0%{opacity:0;transform:translateX(var(--lib-enter-dx,0px))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){@keyframes libTabIn{0%{opacity:0;transform:none}to{opacity:1;transform:none}}}.lib-head{margin-bottom:var(--space-3);flex-wrap:wrap}.lib-search{border:1px solid var(--surface-border);border-radius:var(--radius-md);min-width:200px;max-width:360px;padding:var(--space-2) var(--space-3);color:var(--text);background:#ffffff0f;flex:1;margin-left:auto;font-size:.9rem}.lib-search::placeholder{color:var(--muted)}.lib-listbar{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);display:flex}.lib-count{font-size:var(--text-sm);color:var(--muted);font-weight:600}.song-list{gap:var(--list-gap);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex;overflow:hidden auto}.song-list::-webkit-scrollbar{width:8px}.sl-list::-webkit-scrollbar{width:8px}.song-list::-webkit-scrollbar-track{background:0 0}.sl-list::-webkit-scrollbar-track{background:0 0}.song-list::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:var(--radius-pill);background-clip:padding-box;border:2px solid #0000}.sl-list::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:var(--radius-pill);background-clip:padding-box;border:2px solid #0000}@media (hover:hover){.song-list:hover::-webkit-scrollbar-thumb{background:var(--muted)}.sl-list:hover::-webkit-scrollbar-thumb{background:var(--muted)}}.song-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;background:var(--card-bg);border:1px solid var(--card-border);display:flex}@media (hover:hover){.song-item:hover{background:var(--card-bg-hover)}}.si-open{align-items:center;gap:var(--space-3);min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex:1;margin:0;padding:0;display:flex}.si-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.si-main{flex:1;min-width:0}.si-title{font-weight:600}.si-sub{color:var(--muted);margin-top:2px;font-size:.78rem}.si-usage{color:var(--muted);opacity:.8;margin-top:3px;font-size:.72rem}.si-key{color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:.75rem}.si-usecount{color:var(--text);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);white-space:nowrap;background:#ffffff0f;flex-shrink:0;font-size:.72rem;font-weight:600}.si-del,.si-edit{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px 8px;display:flex}@media (hover:hover){.si-del:hover{background:var(--danger-soft);color:var(--danger)}.si-edit:hover{background:var(--accent-soft);color:var(--accent)}}.song-empty{color:var(--muted);padding:var(--space-8) var(--space-5);text-align:center;font-size:var(--text-md)}.song-empty--first{align-items:center;gap:var(--space-2);padding:var(--space-9) var(--space-5);color:var(--muted);flex-direction:column;display:flex}.song-empty--first>svg{color:var(--accent);opacity:.85;margin-bottom:var(--space-1)}.song-empty--first .se-title{color:var(--text);font-size:var(--text-lg);margin:0;font-weight:600}.song-empty--first .se-sub{max-width:30ch;margin:0;line-height:1.45}.song-empty--first .se-cta{margin-top:var(--space-3);background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;align-items:center;gap:6px;padding:10px 16px;font-weight:600;display:inline-flex}@media (hover:hover){.song-empty--first .se-cta:hover{background:var(--accent-soft-hover)}}.add-wrap{position:relative}.add-btn{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:6px;padding:9px 11px;font-weight:600;display:inline-flex}@media (hover:hover){.add-btn:hover{background:var(--accent-soft-hover)}}.lib-tags{gap:var(--space-2);margin:0 0 var(--space-3);flex-wrap:wrap;padding:0;display:flex}.lib-tag{background:var(--card-bg);border:1px solid var(--card-border);color:var(--muted);border-radius:var(--radius-pill);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);padding:5px 12px;font-weight:600}@media (hover:hover){.lib-tag:hover{color:var(--text);border-color:var(--surface-border)}}.lib-tag-active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.lib-recent{margin:0 0 var(--space-3)}.lib-recent-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.66rem;font-weight:700}.lib-recent-row{gap:var(--space-2);scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 2px 6px;display:flex;overflow-x:auto}.lib-recent-row::-webkit-scrollbar{display:none}.lib-recent-card{scroll-snap-align:start;text-align:left;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);cursor:pointer;min-width:132px;max-width:184px;transition:background var(--dur-fast), border-color var(--dur-fast);flex-direction:column;flex:none;gap:3px;padding:10px 13px;display:flex}@media (hover:hover){.lib-recent-card:hover{background:var(--card-bg-hover);border-color:var(--accent-border)}}.lib-recent-card:active{background:var(--card-bg-hover)}.lrc-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.lrc-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}@container library (width<=480px){.app-header.lib-head{padding:10px 12px}.app-header.lib-head h1{font-size:1.1rem}.lib-head{gap:10px 8px}.add-label{display:none}.add-wrap{margin-left:auto}.lib-search{flex-basis:100%;order:4;min-width:0;max-width:none;margin-left:0}}@container library (width<=360px){.song-item{gap:8px;padding:11px 12px}.si-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.si-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.si-usage,.si-key,.lib-listbar .sortmenu-current{display:none}.lib-listbar{gap:var(--space-1)}.lib-tag{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}@container library (width<=248px){.song-item{flex-wrap:wrap;justify-content:flex-end;row-gap:8px}.si-open{flex:100%}}@container library (width<=320px){.lib-toggle-btn{padding:6px 10px}.add-btn{padding:9px 11px}.app-header.lib-head h1{font-size:1.05rem}}@media (pointer:coarse){.add-btn,.lib-toggle-btn,.lib-search{min-height:40px}}.lib-toggle{border-radius:var(--radius-md);background:#ffffff0f;gap:2px;padding:3px;display:flex}.lib-toggle-btn{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 10px;font-size:.875rem;font-weight:600;transition:all .15s}@media (hover:hover){.lib-toggle-btn:hover{color:var(--text)}}.lib-toggle-active{background:var(--accent-soft);box-shadow:var(--glow);border:1px solid var(--accent-border)!important;color:var(--accent)!important}@media (pointer:coarse){.si-del,.si-edit{min-width:40px;min-height:40px}}.lib-settings-fab{left:calc(var(--space-4) + env(safe-area-inset-left,0px));bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));z-index:40;border-radius:var(--radius-pill);width:46px;height:46px;color:var(--muted);background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));touch-action:manipulation;justify-content:center;align-items:center;display:inline-flex;position:fixed;box-shadow:0 8px 24px #0006}@media (hover:hover){.lib-settings-fab:hover{color:var(--text)}}.lib-settings-fab:active{transform:scale(.94)}@media (pointer:coarse){.lib-settings-fab{width:48px;height:48px}}.lib-version{right:calc(var(--space-4) + env(safe-area-inset-right,0px));bottom:calc(var(--space-4) + 14px + env(safe-area-inset-bottom,0px));z-index:30;letter-spacing:.04em;color:var(--muted);opacity:.65;pointer-events:none;font-variant-numeric:tabular-nums;font-size:.7rem;position:fixed}.songsheet{color:var(--text)}.sheet-copyright{border-top:1px solid var(--border,#ffffff14);color:var(--muted);text-align:center;opacity:.85;margin-top:2rem;padding-top:.75rem;font-size:.72rem;line-height:1.5}.sheet-empty{color:var(--muted);text-align:center;padding:2rem 1.5rem;font-size:.9rem;font-style:italic;line-height:1.5}.section{padding-left:var(--sec-pl,0px);margin-bottom:1.4rem;scroll-margin-top:10px}.section[data-section-type=verse]{--sec-accent:var(--sec-verse,var(--accent));--sec-wt:var(--sec-verse-wt,400);--sec-it:var(--sec-verse-it,normal);--sec-pl:var(--sec-verse-pl,0px);--sec-col:var(--sec-verse-col,var(--text));--sec-sh:var(--sec-verse-sh,none)}.section[data-section-type=chorus]{--sec-accent:var(--sec-chorus,#ffd479);--sec-wt:var(--sec-chorus-wt,700);--sec-it:var(--sec-chorus-it,normal);--sec-pl:var(--sec-chorus-pl,0px);--sec-col:var(--sec-chorus-col,var(--sec-accent));--sec-sh:var(--sec-chorus-sh,0 0 12px color-mix(in srgb, var(--sec-accent) 45%, transparent))}.section[data-section-type=bridge]{--sec-accent:var(--sec-bridge,#c4a6ff);--sec-wt:var(--sec-bridge-wt,400);--sec-it:var(--sec-bridge-it,normal);--sec-pl:var(--sec-bridge-pl,0px);--sec-col:var(--sec-bridge-col,var(--text));--sec-sh:var(--sec-bridge-sh,none)}.section[data-section-type=tag]{--sec-accent:var(--sec-tag,#7fe0b0);--sec-wt:var(--sec-tag-wt,400);--sec-it:var(--sec-tag-it,normal);--sec-pl:var(--sec-tag-pl,0px);--sec-col:var(--sec-tag-col,var(--text));--sec-sh:var(--sec-tag-sh,none)}.section[data-section-type=intro]{--sec-accent:var(--sec-intro,#9fbbe6);--sec-wt:var(--sec-intro-wt,400);--sec-it:var(--sec-intro-it,normal);--sec-pl:var(--sec-intro-pl,0px);--sec-col:var(--sec-intro-col,var(--text));--sec-sh:var(--sec-intro-sh,none)}.section[data-section-type=outro]{--sec-accent:var(--sec-outro,#e0a890);--sec-wt:var(--sec-outro-wt,400);--sec-it:var(--sec-outro-it,normal);--sec-pl:var(--sec-outro-pl,0px);--sec-col:var(--sec-outro-col,var(--text));--sec-sh:var(--sec-outro-sh,none)}.seclabel{letter-spacing:.12em;text-transform:uppercase;color:var(--sec-accent,var(--accent));background:color-mix(in srgb, var(--sec-accent,var(--accent)) 15%, transparent);border:1px solid color-mix(in srgb, var(--sec-accent,var(--accent)) 40%, transparent);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-2);font-size:.66rem;font-weight:700;display:inline-block}.line{break-inside:avoid;flex-wrap:wrap;align-items:flex-start;row-gap:.15rem;margin-bottom:.35rem;display:flex}.word{align-items:flex-start;min-width:0;display:inline-flex}.line.chord-row .segment{margin-right:1.1ch}.segment{flex-direction:column;min-width:0;display:inline-flex}.chord{font-size:calc(var(--sheet-font) * var(--chord-scale,.9));height:calc(var(--sheet-font) * var(--chord-scale,.9) * 1.28);line-height:calc(var(--sheet-font) * var(--chord-scale,.9) * 1.28);font-family:var(--chord-font,var(--mono));font-weight:var(--chord-wt,700);font-style:var(--chord-it,normal);color:var(--chord-col,var(--chord));white-space:pre;text-shadow:var(--chord-sh,var(--glow));display:block}.lyric{font-family:var(--lyric-font,var(--mono));font-size:var(--sheet-font);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.3;font-weight:var(--sec-wt,400);font-style:var(--sec-it,normal);color:var(--sec-col,var(--text));text-shadow:var(--sec-sh,none)}.keymenu{display:inline-flex}.keymenu-trigger{align-items:center;gap:4px;display:inline-flex}.keymenu-key{color:var(--accent);text-shadow:0 0 12px color-mix(in srgb, var(--accent) 45%, transparent);text-align:center;min-width:1.3em;font-size:.95rem;font-weight:800}.keymenu-capo{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:var(--radius-xs);padding:2px 4px;font-size:.6rem;font-weight:800;line-height:1}.keymenu-trigger .icon{color:var(--muted)}.keymenu-panel{z-index:60;gap:var(--space-3);padding:var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--shadow-popover);animation:keymenuIn .2s var(--ease-out,ease-out) both;transform-origin:bottom;flex-direction:column;display:flex;transform:translateZ(0)}@keyframes keymenuIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateZ(0)}}@media (prefers-reduced-motion:reduce){@keyframes keymenuIn{0%{opacity:0}to{opacity:1}}}.keymenu-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.keymenu-rlabel{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.keymenu-step{align-items:center;gap:4px;display:flex}.keymenu-step button{border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--card-bg);width:36px;height:36px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}@media (hover:hover){.keymenu-step button:hover:not([aria-disabled=true]){background:var(--accent-soft);color:var(--accent)}}.keymenu-step button:not([aria-disabled=true]):active{background:var(--accent-soft);color:var(--accent)}.keymenu-step button[aria-disabled=true]{opacity:.3;cursor:default}.keymenu-step button[aria-disabled=true]:active{transform:none}.keymenu-rval{text-align:center;min-width:3em;color:var(--accent);font-size:.92rem;font-weight:800}.keymenu-reset{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--surface-border);color:var(--muted);cursor:pointer;background:0 0;margin-top:0;font-size:.8rem;font-weight:600;transition:background .15s,color .15s}@media (hover:hover){.keymenu-reset:hover{color:var(--text);background:var(--card-bg)}}.keymenu-reset:active{background:var(--card-bg)}.metmenu{display:inline-flex}.metmenu-trigger{justify-content:center;align-items:center;display:inline-flex}.metmenu-trigger.running .icon{animation:metPulse 1.1s var(--ease-out,ease-out) infinite}@keyframes metPulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.metmenu-trigger.running .icon{animation:none}}.metmenu-panel{z-index:60;gap:var(--space-3);padding:var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--shadow-popover);animation:keymenuIn .2s var(--ease-out,ease-out) both;transform-origin:bottom;flex-direction:column;display:flex;transform:translateZ(0)}.met-beats{justify-content:center;align-items:center;gap:9px;min-height:16px;display:flex}.met-dot{background:var(--surface-border);width:9px;height:9px;transition:transform 80ms var(--ease-out,ease-out), background .12s, box-shadow .12s;border-radius:50%}.met-dot.accent{background:color-mix(in srgb, var(--accent) 38%, var(--surface-border))}.met-dot.on{background:var(--accent);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 65%, transparent);transform:scale(1.5)}@media (prefers-reduced-motion:reduce){.met-dot.on{transform:none}}.met-row{align-items:center;gap:12px;display:flex}.met-play{border:1px solid var(--accent-border);background:var(--accent-soft);width:46px;height:46px;color:var(--accent);cursor:pointer;transition:transform .12s var(--ease-out,ease-out), background .15s, box-shadow .15s;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.met-play .icon{margin-left:1px}.met-play.is-on .icon{margin-left:0}.met-play.is-on{box-shadow:0 0 18px color-mix(in srgb, var(--accent) 45%, transparent)}@media (hover:hover){.met-play:hover{background:color-mix(in srgb, var(--accent) 22%, transparent)}}.met-play:active{transform:scale(.93)}.met-bpm{border-radius:var(--radius-pill);border:1px solid var(--surface-border);background:var(--card-bg);flex:1;justify-content:space-between;align-items:center;gap:6px;padding:3px;display:flex}.met-bpm button{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .1s;display:flex}@media (hover:hover){.met-bpm button:hover{background:var(--accent-soft);color:var(--accent)}}.met-bpm button:active{background:var(--accent-soft);color:var(--accent);transform:scale(.9)}.met-bpm-val{flex-direction:column;align-items:center;min-width:3.4em;line-height:1;display:flex}.met-bpm-val b{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.met-bpm-val span{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px;font-size:.56rem;font-weight:700}.met-sig{justify-content:space-between;align-items:center;gap:10px;display:flex}.met-sig-label{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.met-sig-opts{gap:5px;display:flex}.met-sig-btn{border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--card-bg);width:36px;height:36px;color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:800;transition:background .14s,color .14s,border-color .14s,transform .1s}@media (hover:hover){.met-sig-btn:hover{color:var(--text);background:var(--card-bg-hover)}}.met-sig-btn:active{transform:scale(.92)}.met-sig-btn.on{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border)}.met-tap{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--surface-border);color:var(--muted);letter-spacing:.02em;cursor:pointer;background:0 0;margin-top:0;font-size:.8rem;font-weight:700;transition:background .15s,color .15s,transform 80ms}@media (hover:hover){.met-tap:hover{color:var(--text);background:var(--card-bg)}}.met-tap:active{color:var(--accent);background:var(--accent-soft);transform:scale(.97)}.padmenu{display:inline-flex}.padmenu-panel{border-radius:var(--radius-lg);background:var(--glass-bg);border:1px solid var(--glass-border);z-index:30;flex-direction:column;gap:10px;padding:12px;display:flex;box-shadow:0 12px 40px #00000080}.pad-row{align-items:center;gap:12px;display:flex}.pad-play{border:1px solid var(--accent-border);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);cursor:pointer;border-radius:50%;place-items:center;display:grid}.pad-play.is-on{background:var(--accent);color:#0c0c0c}.pad-key{color:var(--muted);font-size:.85rem}.pad-key b{color:var(--text)}.pad-volume{border-bottom:1px solid #ffffff14;padding-bottom:10px}.pad-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:-2px;font-size:.68rem;font-weight:600}.pad-presets,.pad-degrees,.pad-motion{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pad-preset,.pad-deg,.pad-mot{border-radius:var(--radius-sm);border:1px solid var(--card-border);color:var(--muted);cursor:pointer;background:#ffffff0d;padding:5px 10px;font-size:.76rem}.pad-preset.on,.pad-deg.on,.pad-mot.on{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}.pad-preset.is-custom{color:var(--accent);opacity:.75;cursor:default;background:0 0;border:none;font-style:italic}.pad-anchor{color:var(--text);border-radius:var(--radius-sm);background:#ffffff14;padding:5px 8px;font-size:.72rem}.pad-slider{color:var(--muted);grid-template-columns:64px 1fr;align-items:center;gap:10px;font-size:.78rem;display:grid}.pad-slider input[type=range]{width:100%;accent-color:var(--accent)}.pad-acc{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:4px 0;font-size:.82rem;font-weight:600;display:flex}.pad-acc-body{flex-direction:column;gap:9px;padding:2px 0 4px;display:flex}.pad-reset{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;font-size:.76rem}.songview{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.sv-header{margin:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-3) 0}.sv-title-block{text-align:center;flex:1;min-width:0}.sv-edit{width:var(--tap);height:var(--tap);border-radius:var(--radius-sm);color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.sv-edit:hover{background:var(--accent-soft)}}.sv-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:inline-flex}@media (width<=480px){.sv-back-label{display:none}}.sv-toast{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + var(--pill-clearance) - var(--space-2));z-index:40;pointer-events:none;background:var(--glass-bg);border:1px solid var(--surface-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));color:var(--text);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-weight:600;animation:.18s sv-toast-in;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000073}@keyframes sv-toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.sv-body{flex:1;min-height:0;display:flex;position:relative}.sv-rail{right:var(--space-3);top:var(--space-3);bottom:var(--pill-clearance);z-index:15;justify-content:safe center;gap:var(--space-2);scrollbar-width:none;padding:var(--space-1) var(--space-2);flex-direction:column;display:flex;position:absolute;overflow-y:auto}.sv-body.in-set .sv-rail{bottom:calc(var(--pill-clearance) + var(--tap) + var(--space-3))}.sv-rail::-webkit-scrollbar{display:none}.sv-rail-btn{min-width:2.6rem;font-size:var(--text-sm);letter-spacing:.02em;color:var(--text);background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-pill);text-align:center;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);flex-shrink:0;padding:11px 12px;font-weight:700;box-shadow:0 6px 18px #0006,inset 0 1px #ffffff0f}@media (hover:hover){.sv-rail-btn:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}}.sv-rail-btn:active{background:var(--accent-soft);color:var(--accent)}@media (pointer:coarse){.sv-rail-btn{min-height:var(--tap);justify-content:center;align-items:center;padding:0 12px;display:flex}}.sv-eyebrow{justify-content:center;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.sv-eyebrow-name{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:700;overflow:hidden}.sv-eyebrow-sep{font-size:var(--text-xs);color:var(--muted);opacity:.5}.sv-eyebrow-pos{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;flex-shrink:0;font-weight:600}.sv-title{font-size:var(--text-lg);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}.meta{font-size:var(--text-xs);letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:var(--space-1);white-space:nowrap;text-overflow:ellipsis;font-weight:400;overflow:hidden}.meta-key{color:var(--accent);text-shadow:var(--glow)}.meta-capo{color:var(--accent)}.meta-capo-shapes{color:var(--muted)}.sheet-wrap{touch-action:pan-y;min-width:0;min-height:0;padding-bottom:var(--pill-clearance);flex:1;overflow:hidden auto}.sheet-card{min-height:100%;padding:var(--space-4) 0 var(--space-4);background:0 0;border-radius:0}.sheet-page{padding-left:var(--space-6);padding-right:var(--space-6)}.sv-body.has-rail .sheet-page{padding-right:calc(2.6rem + 2 * var(--space-3))}.sheet-wrap.fit{touch-action:pan-y;overflow:hidden auto}.sheet-wrap.fit .songsheet{column-count:var(--fit-cols,1);column-width:auto;column-rule:1px solid #ffffff0f;column-fill:balance;column-gap:1.75rem}.group{align-items:center;gap:var(--space-1);display:flex}.stepper button{border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;color:var(--text);background:#ffffff0f;border:none;justify-content:center;align-items:center;font-size:1rem;transition:background .15s;display:inline-flex}@media (hover:hover){.stepper button:hover{background:#ffffff24}}.pill-ctrl{border-radius:var(--radius-sm);cursor:pointer;height:30px;color:var(--text);background:0 0;border:1px solid #0000;padding:0 12px;font-size:.85rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}@media (hover:hover){.pill-ctrl:hover{color:var(--text);background:#ffffff12}}.pill-val{font-variant-numeric:tabular-nums;margin-left:5px;font-weight:700}.pill-ctrl.active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);box-shadow:0 0 16px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent)}.metro-onscreen{top:calc(env(safe-area-inset-top,0px) + 84px);z-index:25;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));pointer-events:none;animation:mos-in var(--dur-base) var(--ease-out) both;align-items:center;gap:10px;padding:8px 14px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}@keyframes mos-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.mos-dot{background:var(--surface-border);width:10px;height:10px;transition:transform 80ms var(--ease-out), background .12s, box-shadow .12s;border-radius:50%}.mos-dot.accent{background:color-mix(in srgb, var(--accent) 38%, var(--surface-border))}.mos-dot.on{background:var(--accent);box-shadow:0 0 14px color-mix(in srgb, var(--accent) 70%, transparent);transform:scale(1.55)}@media (prefers-reduced-motion:reduce){.mos-dot.on{transform:none}.metro-onscreen{animation:none}}.float-pill{left:calc(50% + var(--shell-left,0px) / 2);bottom:var(--pill-bottom);z-index:20;max-width:calc(100vw - 2 * var(--space-3));box-sizing:border-box;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:9px var(--space-3);border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--surface-border);box-shadow:0 18px 50px #000000a6, 0 0 30px color-mix(in srgb, var(--accent) 7%, transparent), inset 0 1px 0 #ffffff0f;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;align-items:center;gap:4px;transition:box-shadow .25s,transform .25s;display:flex;position:fixed;overflow:auto visible;transform:translate(-50%)}.float-pill::-webkit-scrollbar{display:none}@media (hover:hover){.float-pill:hover{box-shadow:0 26px 60px #000000b3, 0 0 40px color-mix(in srgb, var(--accent) 12%, transparent), inset 0 1px 0 #ffffff14}}.float-pill[style*=left]{transform:none}.float-pill.dragging{box-shadow:0 30px 70px #000000bf, 0 0 48px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 1px 0 #ffffff1a;cursor:grabbing;transform:scale(1.04)}.float-pill[style*=left].dragging{transform:scale(1.04)}@media (prefers-reduced-motion:reduce){.float-pill.dragging{transform:none}}.drag-handle{opacity:.45;min-height:44px;color:var(--text);transition:opacity var(--dur-base);pointer-events:none;justify-content:center;align-items:center;padding:10px 7px;display:flex}@media (hover:hover){.float-pill:hover .drag-handle{opacity:.85}}.float-pill.dragging .drag-handle{opacity:1}.pill-sep{background:#ffffff17;flex-shrink:0;width:1px;height:22px}.set-nav{bottom:calc(var(--pill-clearance) + env(safe-area-inset-bottom,0px));left:var(--shell-left,0px);z-index:19;padding:0 max(var(--space-5), env(safe-area-inset-right,0px)) 0 max(var(--space-5), env(safe-area-inset-left,0px));pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;right:0}.set-nav-btn{pointer-events:all;border:1px solid var(--surface-border,#ffffff1a);background:var(--surface,#121622b8);-webkit-backdrop-filter:blur(16px);width:44px;height:44px;color:var(--accent,#8fe9ff);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;transition:background .15s,opacity .15s;display:flex}@media (hover:hover){.set-nav-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent)}}.set-nav-btn:disabled{opacity:.2;cursor:default}.float-pill .group,.float-pill .pill-ctrl,.float-pill .drag-handle,.float-pill .pill-sep{flex-shrink:0}@media (pointer:coarse){.stepper button{width:40px;height:40px}.pill-ctrl{height:40px;padding:0 14px}.set-nav-btn{width:48px;height:48px}}@media (width<=460px){.float-pill{padding:var(--space-2);gap:3px}.float-pill .nv-label{display:none}.float-pill .drag-handle{opacity:.6;min-height:40px;padding:9px 4px}.float-pill .pill-sep{display:none}.stepper button{width:var(--tap-sm);height:var(--tap-sm)}.pill-ctrl{padding:0 11px}}@media (width<=340px){.float-pill{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000)}}.sheet-enter{animation:sheetIn var(--dur-base) var(--ease-out) both}.sheet-drag{will-change:transform;position:relative}.sheet-peek{pointer-events:none;width:100%;position:absolute;top:0}.sheet-peek.next{left:100%}.sheet-peek.prev{left:-100%}@keyframes sheetIn{0%{opacity:0;transform:translateX(var(--enter-dx,12px))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){@keyframes sheetIn{0%{opacity:0;transform:none}to{opacity:1;transform:none}}}.editor{height:100dvh;padding:var(--space-4);padding-inline:max(var(--space-4), env(safe-area-inset-left,0px)) max(var(--space-4), env(safe-area-inset-right,0px));flex-direction:column;display:flex}.ed-bar{margin-bottom:var(--space-4)}.ed-bar strong{margin:0 auto}.ed-cancel,.ed-save{border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);min-height:var(--tap-sm);cursor:pointer;color:var(--text);background:#ffffff0f;font-weight:600}.ed-save{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.ed-meta{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.ed-field{flex-direction:column;gap:4px;min-width:0;display:flex}.ed-field--grow{flex:1;min-width:140px}.ed-field--sm{flex:none;width:84px}.ed-field-label{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-left:2px;font-weight:600}.ed-field-input{font:inherit;font-size:var(--text-md);background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text);min-height:var(--tap);outline:none;padding:9px 12px}.ed-field-input:focus-visible{border-color:var(--accent-border)}.ed-field-input::placeholder{color:var(--muted);opacity:.7}.ed-tags{margin-bottom:var(--space-4);flex-direction:column;gap:4px;display:flex}.ed-tag-chips{gap:var(--space-2);background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);min-height:var(--tap);flex-wrap:wrap;align-items:center;padding:7px 10px;display:flex}.ed-tag{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-pill);font-size:var(--text-sm);align-items:center;gap:2px;padding:3px 4px 3px 11px;font-weight:600;display:inline-flex}.ed-tag-x{color:inherit;opacity:.65;border-radius:50%;align-items:center;padding:3px;display:inline-flex}@media (hover:hover){.ed-tag-x:hover{opacity:1;background:#ffffff1f}}.ed-tag-input{min-width:110px;color:var(--text);font-size:var(--text-md);background:0 0;border:none;outline:none;flex:1;padding:4px 2px}.ed-tag-input::placeholder{color:var(--muted);opacity:.7}.ed-tag-suggest-row{gap:var(--space-2);flex-wrap:wrap;margin-top:6px;display:flex}.ed-tag-suggest{border:1px dashed var(--surface-border);color:var(--muted);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast);background:0 0;padding:3px 10px;font-weight:600}@media (hover:hover){.ed-tag-suggest:hover{color:var(--accent);border-color:var(--accent-border)}}.ed-body{gap:var(--space-4);flex:1;min-height:0;display:flex}.ed-text{resize:none;font-family:var(--mono);background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-4);color:var(--text);flex:1;font-size:.9rem;line-height:1.4}.ed-preview{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-4);flex:1;overflow:auto}@media (width<=720px){.ed-body{flex-direction:column}}.so-screen{height:100dvh;padding:var(--space-4);gap:var(--space-4);padding-inline:max(var(--space-4), env(safe-area-inset-left,0px)) max(var(--space-4), env(safe-area-inset-right,0px));flex-direction:column;display:flex}.so-head h1{flex:1}.so-cancel{color:var(--muted);cursor:pointer;padding:var(--space-2) var(--space-3);min-height:var(--tap-sm);border-radius:var(--radius-sm);background:0 0;border:none;font-size:.9rem}@media (hover:hover){.so-cancel:hover{color:var(--text);background:#ffffff14}}.so-body{gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow:auto}.so-search-row{gap:var(--space-2);display:flex}.so-input-wrap{flex:1;display:flex;position:relative}.so-input{border:1px solid var(--surface-border);border-radius:var(--radius-md);width:100%;padding:var(--space-3) 13px;min-height:var(--tap);color:var(--text);background:#ffffff0f;flex:1;font-size:.92rem}.so-input::placeholder{color:var(--muted)}.so-input-wrap:has(.so-clear) .so-input{padding-right:40px}.so-clear{width:30px;height:30px;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;place-items:center;transition:color .12s,background .12s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.so-clear:active{transform:translateY(-50%)scale(.9)}@media (hover:hover){.so-clear:hover{color:var(--text);background:#ffffff14}}.so-btn{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-height:var(--tap);cursor:pointer;white-space:nowrap;font-weight:600}@media (hover:hover){.so-btn:hover:not(:disabled){background:var(--accent-soft-hover)}}.so-btn:disabled{opacity:.5;cursor:default}.so-status{color:var(--muted);padding:var(--space-1) 0;font-size:.85rem}.so-error{color:var(--danger);padding:var(--space-1) 0;font-size:.85rem}.so-results{gap:var(--list-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.so-result-item{box-sizing:border-box;width:100%;min-height:56px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text);align-items:center;gap:10px;display:flex}@media (hover:hover){.so-result-item:hover:not(:disabled){background:var(--card-bg-hover)}}.so-result-item:disabled{opacity:.5;cursor:default}.so-ri-num{text-align:right;min-width:1.5em;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.82rem;font-weight:600}.so-ri-main{flex:1;min-width:0}.so-ri-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.so-ri-sub{min-height:1.15em;color:var(--muted);align-items:center;gap:8px;margin-top:2px;font-size:.78rem;display:flex}.so-ri-artist{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.so-ri-stat{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.so-ri-stat svg{color:var(--accent)}.so-ri-badge{color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0;padding:2px 7px;font-size:.7rem}.so-ri-loading{color:var(--muted);flex-shrink:0;font-size:.78rem}.so-empty{color:var(--muted);padding:var(--space-3) 0;font-size:.85rem;line-height:1.5}.so-divider{color:var(--muted);align-items:center;gap:12px;font-size:.8rem;display:flex}.so-divider:before,.so-divider:after{content:"";background:var(--surface-border);flex:1;height:1px}.so-link-row{gap:var(--space-2);row-gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.so-link-input{flex:1;min-width:220px}.so-link-error{color:var(--danger);padding:var(--space-1) 0;width:100%;font-size:.85rem}.so-disclaimer{font-size:var(--text-xs);color:var(--muted);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);line-height:1.5}.sd-root{height:100dvh;color:var(--text);padding:var(--space-4);padding-inline:max(var(--space-4), env(safe-area-inset-left,0px)) max(var(--space-4), env(safe-area-inset-right,0px));gap:var(--space-3);background:0 0;flex-direction:column;display:flex;overflow:hidden}.sd-icon-btn{width:var(--tap-sm);height:var(--tap-sm);border-radius:var(--radius-md);color:var(--accent);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.sd-icon-btn:hover{background:var(--accent-soft)}}.sd-icon-btn:disabled{color:var(--muted);opacity:.5;cursor:default}.sd-name-input{color:var(--text);border-radius:var(--radius-md);background:0 0;border:1px solid #0000;flex:1;min-width:0;padding:6px 10px;font-size:1.25rem;font-weight:700;transition:border-color .15s}.sd-name-input:hover{border-color:var(--surface-border)}.sd-name-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);background:#ffffff0a}.sd-add-btn{background:var(--accent-soft);border:1px solid var(--accent-border,var(--surface-border));color:var(--accent);border-radius:var(--radius-md);min-height:var(--tap-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;display:inline-flex}@media (hover:hover){.sd-add-btn:hover{background:var(--accent-soft-hover)}}.sd-list{gap:var(--list-gap);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sd-empty{color:var(--muted);padding:var(--space-8) var(--space-5);text-align:center;font-size:var(--text-md)}.sd-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;transition:background var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-base,.2s) var(--ease-out,ease);will-change:transform;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;margin:0;display:flex}@media (hover:hover){.sd-row:hover{background:var(--card-bg-hover)}}.sd-row--dragging{opacity:.92;background:var(--accent-soft);box-shadow:0 8px 32px #00000073, 0 0 0 1px var(--accent-border,#8fe9ff40);cursor:grabbing;z-index:10;touch-action:none;transition:background var(--dur-fast), box-shadow var(--dur-fast)}.sd-row--ghost{opacity:.6}.sd-info--ghost{cursor:default}.sd-title--ghost{color:var(--muted);font-style:italic;font-weight:400}.sd-index{min-width:22px;color:var(--muted);font-size:var(--text-xs);text-align:right;flex-shrink:0}.sd-info{flex:1;min-width:0}.sd-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;font-size:var(--text-md);overflow:hidden}.sd-artist{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.sd-key-select{border:1px solid var(--surface-border);color:var(--text);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);cursor:pointer;touch-action:manipulation;background:#ffffff0f;flex-shrink:0;max-width:62px;font-weight:600}.sd-key-select:focus{outline:1px solid var(--accent)}.sd-key-select--override{color:var(--accent);border-color:var(--accent-border)}.sd-remove-btn{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);touch-action:manipulation;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px 8px;display:flex}@media (hover:hover){.sd-remove-btn:hover{background:var(--danger-soft);color:var(--danger)}}@media (pointer:coarse){.sd-row{padding:var(--space-4) var(--space-4);min-height:56px}.sd-remove-btn{min-width:44px;min-height:44px}.sd-key-select{min-height:var(--tap)}}.sd-picker-overlay{z-index:1000;padding:var(--space-4);padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));padding-bottom:max(var(--space-4), env(safe-area-inset-bottom,0px));background:#0000008c;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.sd-picker{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--glass-shadow);flex-direction:column;width:100%;max-width:560px;max-height:min(76dvh,640px);display:flex;overflow:hidden}.sd-picker-header{padding:var(--space-4) var(--space-5) var(--space-3);border-bottom:1px solid var(--glass-border);flex-shrink:0;justify-content:space-between;align-items:center;font-size:1.05rem;font-weight:700;display:flex}.sd-picker-close{color:var(--muted);cursor:pointer;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);min-width:var(--tap);min-height:var(--tap);background:0 0;border:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.sd-picker-close:hover{color:var(--text);background:#ffffff14}}.sd-picker-search{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--glass-border);flex-shrink:0;display:flex}.sd-picker-search-icon{color:var(--muted);flex-shrink:0}.sd-picker-search-input{color:var(--text);font-size:var(--text-md);caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1}.sd-picker-search-input::placeholder{color:var(--muted);opacity:.7}.sd-picker-empty{color:var(--muted);padding:var(--space-8) var(--space-5);text-align:center;flex:1;font-size:.9rem}.sd-picker-list{padding:var(--space-2) 0;gap:var(--list-gap);flex-direction:column;flex:1;margin:0;list-style:none;display:flex;overflow-y:auto}.sd-picker-item{align-items:center;gap:var(--space-3);width:100%;color:var(--text);cursor:pointer;padding:var(--space-3) var(--space-5);text-align:left;background:0 0;border:none;border-radius:0;transition:background .1s;display:flex}@media (hover:hover){.sd-picker-item:hover{background:var(--card-bg-hover)}}.sd-picker-item:active{background:var(--accent-soft)}.sd-picker-info{flex:1;min-width:0}.sd-picker-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;font-size:var(--text-md);display:block;overflow:hidden}.sd-picker-artist{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;display:block;overflow:hidden}.sd-picker-key{font-size:var(--text-xs);color:var(--muted);text-align:right;flex-shrink:0;min-width:24px;font-weight:700}.sd-picker-inset{font-size:var(--text-xs);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-weight:600;display:inline-flex}.sd-picker-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--glass-border);flex-shrink:0;justify-content:flex-end;display:flex}.sd-picker-done{padding:var(--space-2) var(--space-6);font-size:var(--text-sm)}@media (pointer:coarse){.sd-picker-item{padding:var(--space-4) var(--space-5);min-height:52px}}.colorpick{flex-shrink:0;position:relative}.colorpick-trigger{border-radius:var(--radius-pill);background:var(--card-bg);border:1px solid var(--card-border);color:var(--muted);cursor:pointer;align-items:center;gap:5px;padding:5px 8px 5px 6px;display:inline-flex}@media (hover:hover){.colorpick-trigger:hover{border-color:var(--surface-border)}}.colorpick-dot{border-radius:50%;width:20px;height:20px;box-shadow:inset 0 0 0 1px #0000004d}.colorpick-pop{z-index:260;padding:var(--space-3);border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--shadow-popover);animation:colorpick-in var(--dur-fast) ease;grid-template-columns:repeat(5,auto);gap:8px;display:grid}@keyframes colorpick-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.colorpick-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;padding:0;transition:transform .1s,border-color .1s;box-shadow:inset 0 0 0 1px #0000004d}.colorpick-swatch.is-active{border-color:var(--text);transform:scale(1.1)}.colorpick-swatch:active{transform:scale(.92)}@media (hover:hover){.colorpick-swatch:hover{transform:scale(1.1)}}.sync-status{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--accent);font-size:var(--text-md);font-weight:600;display:flex}.sync-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--surface-border);border-radius:var(--radius-sm);background:#ffffff12;margin-left:auto;padding:2px 7px;font-weight:700}.sync-viewcode{padding-top:2px}.sync-viewcode-label{padding:var(--space-3) var(--space-4) 0;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700;display:block}.sync-intro,.sync-hint{padding:var(--space-3) var(--space-4);color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.45}.sync-hint{padding-top:var(--space-1)}.sync-code-row{padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:10px;display:flex}.sync-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-md);letter-spacing:.04em;color:var(--text);white-space:nowrap;scrollbar-width:none;font-weight:600;overflow-x:auto}.sync-code::-webkit-scrollbar{display:none}.sync-code-actions{gap:var(--space-2);flex-shrink:0;display:flex}.sync-mini{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:4px;padding:5px 9px;font-weight:600;display:inline-flex}@media (hover:hover){.sync-mini:hover{background:var(--accent-soft-hover)}}.sync-msg{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin:0;font-weight:600}.sync-msg.ok{color:var(--accent)}.sync-msg.err{color:var(--danger)}.sync-restore{padding:12px var(--space-4);flex-direction:column;gap:8px;display:flex}.sync-input{border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-3) 12px;min-height:var(--tap);color:var(--text);letter-spacing:.04em;background:#ffffff0f;outline:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;font-weight:600}.sync-input:focus{border-color:var(--accent-border)}.sync-input::placeholder{color:var(--muted);letter-spacing:normal;font-family:inherit;font-weight:400}.sync-restore-actions{gap:var(--space-2);display:flex}.sync-confirm{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);padding:var(--space-3) 14px;min-height:var(--tap);cursor:pointer;flex:1;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.sync-confirm:disabled{opacity:.5;cursor:default}.sync-cancel{border:1px solid var(--surface-border);color:var(--muted);border-radius:var(--radius-md);padding:var(--space-3) 14px;min-height:var(--tap);cursor:pointer;background:0 0}.sync-history{flex-direction:column;display:flex}.sync-history-label{padding:var(--space-3) var(--space-4) 0;font-size:var(--text-sm);color:var(--text);font-weight:600}.sync-history-list{flex-direction:column;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sync-history-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--card-border);display:flex}.sync-history-row:first-child{border-top:none}.shr-info{flex-direction:column;gap:2px;min-width:0;display:flex}.shr-time{font-size:var(--text-sm);color:var(--text);font-weight:600}.shr-change{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shr-delta{color:var(--accent);font-weight:600}.sync-history-row .sync-mini{flex-shrink:0}.help{gap:var(--space-5);flex-direction:column;display:flex}.help-search-wrap{align-items:center;display:flex;position:relative}.help-search-icon{left:var(--space-3);color:var(--muted);pointer-events:none;position:absolute}.help-search{border:1px solid var(--surface-border);border-radius:var(--radius-md);width:100%;padding:var(--space-3) var(--space-3) var(--space-3) calc(var(--space-3) + 24px);color:var(--text);background:#ffffff0f;outline:none;flex:1;font-size:.95rem}.help-search:focus{border-color:var(--accent-border)}.help-search::placeholder{color:var(--muted)}.help-search::-webkit-search-cancel-button{-webkit-appearance:none}.help-empty{color:var(--muted);font-size:var(--text-sm);text-align:center;padding:var(--space-4) 0;margin:0}.help-area{gap:var(--space-1);flex-direction:column;display:flex}.help-area-title{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:0 var(--space-1);margin:0;font-size:.72rem;font-weight:700}.help-area-intro{margin:0 0 var(--space-2);padding:0 var(--space-1);color:var(--muted);font-size:var(--text-sm);line-height:1.45}.help-topics{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.help-topic{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);overflow:hidden}.help-topic.is-open{border-color:var(--accent-border)}.help-topic-head{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;text-align:left;width:100%;padding:var(--space-3) var(--space-4);color:var(--text);font-size:var(--text-md);min-height:var(--tap);background:0 0;border:none;font-weight:600;display:flex}@media (hover:hover){.help-topic-head:hover{color:var(--accent)}}.help-topic-title{flex:1}.help-topic-chevron{color:var(--muted);transition:transform var(--dur-fast);flex-shrink:0}.help-topic.is-open .help-topic-chevron{color:var(--accent);transform:rotate(180deg)}.help-topic-body{padding:0 var(--space-4) var(--space-3)}.help-topic-body p{color:var(--text);font-size:var(--text-sm);opacity:.92;margin:0;line-height:1.55}.help-topic-tip{padding-top:var(--space-2);border-top:1px solid var(--card-border);margin-top:var(--space-2)!important;color:var(--muted)!important}.help-tip-label{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-right:6px;font-size:.68rem;font-weight:700;display:inline-block}.rb{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.rb-kind{border-radius:var(--radius-md);background:#ffffff0f;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.rb-kind-btn{color:var(--muted);cursor:pointer;font-size:var(--text-sm);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 16px;font-weight:600;transition:all .15s}.rb-kind-btn.is-on{background:var(--accent-soft);box-shadow:var(--glow);border:1px solid var(--accent-border)!important;color:var(--accent)!important}.rb-text{box-sizing:border-box;resize:vertical;border:1px solid var(--surface-border);border-radius:var(--radius-md);width:100%;min-height:90px;padding:var(--space-3);color:var(--text);font:inherit;background:#ffffff0f;outline:none;font-size:.95rem;line-height:1.5}.rb-text:focus{border-color:var(--accent-border)}.rb-text::placeholder{color:var(--muted)}.rb-note{color:var(--muted);font-size:var(--text-xs);margin:0;line-height:1.4}.rb-err{color:var(--danger);font-size:var(--text-sm);margin:0;font-weight:600}.rb-actions{gap:var(--space-2);display:flex}.rb-send{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);padding:var(--space-3) 14px;min-height:var(--tap);cursor:pointer;flex:1;font-weight:600}.rb-send:disabled{opacity:.5;cursor:default}.rb-cancel{border:1px solid var(--surface-border);color:var(--muted);border-radius:var(--radius-md);padding:var(--space-3) 14px;min-height:var(--tap);cursor:pointer;background:0 0}.rb-done{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--accent);font-weight:600;font-size:var(--text-sm);display:flex}.rb-link{color:var(--muted);cursor:pointer;font-weight:600;font-size:var(--text-sm);background:0 0;border:none;margin-left:auto}.settings-root{height:100dvh;padding:var(--space-3);padding-inline:max(var(--space-3), env(safe-area-inset-left,0px)) max(var(--space-3), env(safe-area-inset-right,0px));gap:var(--space-3);flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;display:flex;overflow:hidden}.settings-header{flex-shrink:0}.settings-ov{z-index:200;animation:settings-ov-fade var(--dur-fast) var(--ease-out) both;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes settings-ov-fade{0%{opacity:0}to{opacity:1}}.settings-ov-panel{background:var(--glass-bg-strong);border:1px solid var(--surface-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overscroll-behavior:contain;width:100%;max-width:640px;height:88dvh;animation:settings-ov-slide var(--dur-base) var(--ease-out) both;border-bottom:none;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 -12px 48px #0000008c}@keyframes settings-ov-slide{0%{transform:translateY(28px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.settings-ov,.settings-ov-panel{animation:none}}.settings-root--overlay{height:100%}.settings-root--overlay .app-header{margin-top:0}.settings-close{border-radius:var(--radius-pill);border:1px solid var(--surface-border);background:var(--surface);width:38px;height:38px;color:var(--muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}@media (hover:hover){.settings-close:hover{color:var(--text);background:var(--card-bg-hover)}}.settings-close:active{transform:scale(.94)}@media (pointer:coarse){.settings-close{width:44px;height:44px}}.settings-body{-webkit-overflow-scrolling:touch;gap:var(--space-5);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex;overflow-y:auto}.settings-section{gap:var(--space-2);flex-direction:column;display:flex}.settings-section-head{justify-content:space-between;align-items:baseline;display:flex}.settings-section-title{padding:0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0;font-weight:600}.settings-reset-btn{cursor:pointer;color:var(--accent);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding:0 var(--space-2);background:0 0;border:none;font-weight:700}.settings-seccolors{flex-direction:column;display:flex}.settings-seccolor-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.settings-seccolor-row+.settings-seccolor-row{border-top:1px solid var(--surface-border)}.settings-seccolor-label{font-size:var(--text-md);letter-spacing:.02em;font-weight:700}.settings-sections-preview{padding:var(--space-4);background:radial-gradient(120% 140% at 30% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%), #00000047;border-bottom:1px solid var(--card-border);--sheet-font:15px}.settings-sections-preview .section{margin-bottom:var(--space-3)}.settings-sections-preview .section:last-child{margin-bottom:0}.settings-sections-preview .seclabel{margin-bottom:var(--space-1)}.settings-sections-preview .line{margin-bottom:0}.settings-secstyles{flex-direction:column;display:flex}.settings-secstyle-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);min-height:var(--tap);display:flex}.settings-secstyle-row+.settings-secstyle-row{border-top:1px solid var(--surface-border)}.settings-secstyle-label{letter-spacing:.02em;flex-shrink:0;font-size:.92rem;font-weight:700}.settings-secstyle-controls{align-items:center;gap:var(--space-1);display:flex}.secfmt-btn{border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface);width:34px;height:34px;color:var(--muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;font-size:.95rem;font-weight:800;display:inline-flex}.secfmt-btn.secfmt-i{font-family:Iowan Old Style,Georgia,serif;font-style:italic}.secfmt-lvl{align-self:flex-start;margin:1px 0 0 1px;font-size:.62em;font-weight:800;line-height:1}.secfmt-btn.on{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}@media (hover:hover){.secfmt-btn:not(.on):hover{color:var(--text);background:var(--card-bg-hover)}}.secfmt-btn:active{transform:scale(.92)}@media (pointer:coarse){.secfmt-btn{width:40px;height:40px}}.settings-card.row-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.row-card-divider{background:var(--card-border);height:1px;margin:0}.settings-toggle-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);cursor:pointer;min-height:var(--tap);display:flex}.settings-toggle-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-toggle-label{font-size:var(--text-md);color:var(--text);font-weight:500}.settings-toggle-desc{font-size:var(--text-xs);color:var(--muted)}.settings-switch{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--surface-border);width:48px;height:28px;transition:background var(--dur-base) var(--ease-out);cursor:pointer;flex-shrink:0;position:relative}.settings-switch--on{background:var(--accent);border-color:var(--accent)}.settings-switch-thumb{width:20px;height:20px;transition:transform var(--dur-base) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000004d}.settings-switch--on .settings-switch-thumb{transform:translate(20px)}.settings-segmented-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);min-height:var(--tap);display:flex}.settings-segmented-label{font-size:var(--text-md);color:var(--text);flex:1;font-weight:500}.settings-segmented{border-radius:var(--radius-sm);border:1px solid var(--surface-border);display:flex;overflow:hidden}.settings-seg-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--muted);cursor:pointer;min-height:32px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none}.settings-seg-btn+.settings-seg-btn{border-left:1px solid var(--surface-border)}.settings-seg-btn--active{background:var(--accent-soft);color:var(--accent);font-weight:600}@media (hover:hover){.settings-seg-btn:not(.settings-seg-btn--active):hover{background:var(--card-bg-hover);color:var(--text)}}.settings-stepper-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);min-height:var(--tap);display:flex}.settings-stepper-label{font-size:var(--text-md);color:var(--text);flex:1;font-weight:500}.settings-stepper{align-items:center;gap:var(--space-2);display:flex}.settings-step-btn{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--surface-border);width:32px;height:32px;color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.settings-step-btn:disabled{opacity:.35;cursor:default}@media (hover:hover){.settings-step-btn:not(:disabled):hover{background:var(--card-bg-hover)}}.settings-step-val{text-align:center;min-width:42px;font-size:var(--text-sm);color:var(--text);font-variant-numeric:tabular-nums}.settings-font-row{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.settings-font-label{font-size:var(--text-md);color:var(--text);font-weight:500}.settings-font-opts{gap:var(--space-2);flex-wrap:wrap;display:flex}.settings-font-chip{min-height:38px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface);color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);align-items:center;font-size:1rem;display:inline-flex}.settings-font-chip.is-on{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent);font-weight:600}@media (hover:hover){.settings-font-chip:not(.is-on):hover{background:var(--card-bg-hover)}}.settings-font-chip:active{transform:scale(.95)}.settings-sheet-preview{padding:var(--space-4);background:radial-gradient(120% 140% at 30% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%), #00000047;border-bottom:1px solid var(--card-border);--ssp-base:1.1rem}.ssp-line{flex-wrap:wrap;align-items:flex-start;display:flex}.ssp-seg{flex-direction:column;min-width:0;display:inline-flex}.ssp-chord{font-family:var(--chord-font,var(--mono));font-weight:var(--chord-wt,700);font-style:var(--chord-it,normal);color:var(--chord-col,var(--chord));font-size:calc(var(--ssp-base) * var(--chord-scale,.9));white-space:pre;text-shadow:var(--chord-sh,var(--glow));line-height:1.2}.ssp-lyric{font-family:var(--lyric-font,var(--mono));font-size:var(--ssp-base);color:var(--text);white-space:pre;line-height:1.3}.settings-action-row{padding:var(--space-3) var(--space-4);font-size:var(--text-md);color:var(--accent);min-height:var(--tap);text-align:left;cursor:pointer;width:100%;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:space-between;align-items:center;font-weight:500;display:flex}.settings-action-row--danger{color:var(--danger)}.settings-action-row:disabled{opacity:.5;cursor:default}@media (hover:hover){.settings-action-row:not(:disabled):hover{background:var(--card-bg-hover)}.settings-action-row--danger:not(:disabled):hover{background:var(--danger-soft)}}.settings-about-row{padding:var(--space-3) var(--space-4);min-height:var(--tap);justify-content:space-between;align-items:center;display:flex}.settings-about-label{font-size:var(--text-md);color:var(--text);font-weight:500}.settings-about-val{font-size:var(--text-sm);color:var(--muted)}.settings-founder .settings-about-label{color:var(--accent);font-weight:700}.settings-founder .settings-about-val{color:var(--accent);font-weight:600}.settings-dev .settings-about-label{color:var(--muted)}.settings-dev-off{border:1px solid var(--surface-border,#ffffff1f);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:.8rem}.settings-dev-off:hover{color:var(--text);border-color:var(--accent-border)}.settings-disclaimer{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--muted);margin:0;line-height:1.5}.settings-install-steps{padding:0 var(--space-4) var(--space-3);font-size:var(--text-sm,.85rem);color:var(--muted);margin:0;line-height:1.55}.settings-install-steps strong{color:var(--text)}.settings-ccli{padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.settings-ccli-label{font-size:var(--text-md);color:var(--text);font-weight:500}.settings-ccli-input{border:1px solid var(--surface-border,#ffffff1f);border-radius:var(--radius-md);color:var(--text);font-size:var(--text-md);background:#ffffff0f;outline:none;max-width:220px;padding:10px 12px}.settings-ccli-input:focus{border-color:var(--accent-border)}.settings-ccli-hint{font-size:var(--text-xs);color:var(--muted);margin:0;line-height:1.5}.settings-cats{gap:var(--list-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-cat{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;text-align:left;display:flex}@media (hover:hover){.settings-cat:hover{background:var(--card-bg-hover)}}.settings-cat-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:36px;height:36px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.settings-cat-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.settings-cat-label{color:var(--text);font-weight:600}.settings-cat-hint{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.settings-cat-chevron{color:var(--muted);flex-shrink:0}.install-banner{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 78px);width:calc(100% - var(--space-4) * 2);z-index:120;background:var(--glass-bg-strong,#14121eeb);-webkit-backdrop-filter:blur(14px);border:1px solid var(--accent-border);border-radius:var(--radius-lg,18px);max-width:440px;animation:.32s ib-rise;position:fixed;transform:translate(-50%);box-shadow:0 12px 40px #00000080}@keyframes ib-rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.ib-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);display:flex}.ib-mark{width:40px;height:40px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);box-shadow:var(--glow);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.ib-title{min-width:0;font-size:var(--text-md);color:var(--text);white-space:nowrap;flex:1;font-weight:700}.ib-btn{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:var(--radius-md);font-weight:700;font-size:var(--text-sm);cursor:pointer;flex-shrink:0;padding:9px 18px}@media (hover:hover){.ib-btn:hover{background:var(--accent-soft-hover)}}.ib-x{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;place-items:center;padding:6px;display:grid}@media (hover:hover){.ib-x:hover{color:var(--text)}}.ib-steps{padding:0 var(--space-3) var(--space-3);color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.5}.ib-steps strong{color:var(--text);font-weight:600}.fab-report{right:max(var(--space-4,16px), env(safe-area-inset-right));bottom:calc(max(var(--space-4,16px), env(safe-area-inset-bottom)) + 48px);z-index:900;background:var(--card-bg,#14141ce6);width:42px;height:42px;color:var(--muted,#9a96a8);border:1px solid var(--card-border,#ffffff1a);cursor:pointer;opacity:.7;border-radius:50%;place-items:center;transition:opacity .15s,color .15s,border-color .15s,transform .15s;display:grid;position:fixed;box-shadow:0 4px 16px #0006}.fab-report:hover{opacity:1;color:var(--accent,#8fe9ff);border-color:var(--accent-border,#8fe9ff80);transform:translateY(-1px)}.fab-report:active{transform:translateY(0)}.fab-report-overlay{z-index:1100;padding:var(--space-4,16px);padding-bottom:calc(var(--space-4,16px) + env(safe-area-inset-bottom));animation:fab-fade var(--dur-base,.2s) var(--ease-out,ease);background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes fab-fade{0%{opacity:0}to{opacity:1}}.fab-report-sheet{background:var(--bg,#0b0b10);border:1px solid var(--card-border,#ffffff1a);border-radius:var(--radius-lg,18px);width:min(440px,100%);padding:var(--space-4,16px);box-shadow:0 16px 48px #0000008c}.fab-report-head{margin-bottom:var(--space-3,12px);justify-content:space-between;align-items:center;display:flex}.fab-report-head strong{font-size:1rem}.fab-report-x{color:var(--muted,#9a96a8);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px}.fab-report-x:hover{color:var(--text,#ece9f0)}@media (width>=640px){.fab-report-overlay{align-items:center}}.tour{z-index:2000;padding:max(env(safe-area-inset-top,0px), var(--space-5)) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:radial-gradient(135% 90% at 50% -5%, color-mix(in srgb, var(--aurora) 42%, #000) 0%, color-mix(in srgb, var(--aurora) 20%, #000) 34%, #050507 72%);color:var(--text);animation:tour-in var(--dur-base) var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0}@keyframes tour-in{0%{opacity:0}to{opacity:1}}.tour-skip{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);align-self:flex-end;font-weight:600}.tour-viewport{flex:1;align-self:stretch;overflow:hidden}.tour-track{height:100%;transition:transform .34s var(--ease-out);will-change:transform;display:flex}.tour-page{padding:var(--space-3);flex:0 0 100%;justify-content:center;align-items:safe center;display:flex;overflow-y:auto}.tour-slide{text-align:center;align-items:center;gap:var(--space-4);flex-direction:column;width:100%;max-width:460px;display:flex}.tour-icon{width:76px;height:76px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);box-shadow:var(--glow);border-radius:50%;place-items:center;display:grid}.tour-title{letter-spacing:-.01em;margin:0;font-size:1.7rem;font-weight:700}.tour-text{font-size:var(--text-lg);color:var(--muted);max-width:30rem;margin:0;line-height:1.5}.tour-palette{gap:var(--space-2);width:100%;margin-top:var(--space-2);flex-direction:column;display:flex}.tour-swatch-label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:var(--space-2);font-weight:600}.tour-swatch-row{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;padding:3px 2px;display:flex}.tour-swatch{cursor:pointer;width:30px;height:30px;transition:transform var(--dur-fast);border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px #00000059}.tour-swatch.on{box-shadow:0 0 0 2px var(--text), inset 0 0 0 1px #00000059;transform:scale(1.08)}@media (hover:hover){.tour-swatch:hover{transform:scale(1.12)}}.tour-footer{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.tour-dots{align-items:center;gap:7px;display:flex}.tour-dot{background:var(--surface-border);cursor:pointer;width:7px;height:7px;transition:background var(--dur-base), width var(--dur-base);border-radius:50%;padding:0}.tour-dot.on{background:var(--accent);border-radius:var(--radius-pill);width:18px}.tour-next{padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--accent);color:#0c0c0c;font-weight:700;font-size:var(--text-md);min-height:var(--tap);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.tour-finish{gap:var(--space-3);width:100%;margin-top:var(--space-2);flex-direction:column;display:flex}.tour-finish-btn{text-align:left;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);flex-direction:column;gap:2px;display:flex}.tour-finish-btn:hover{border-color:var(--surface-border)}.tour-finish-title{font-size:var(--text-md);color:var(--text);font-weight:700}.tour-finish-sub{font-size:var(--text-sm);color:var(--muted)}.tour-finish-primary{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:var(--glow)}.tour-finish-primary .tour-finish-title{color:var(--accent)}.tour-finish-primary:hover{border-color:var(--accent)}.tour-finish-steps{font-size:var(--text-sm);color:var(--muted);text-align:left;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:#ffffff0a;margin:2px 0 0;line-height:1.5}.tour-finish-steps strong{color:var(--text)}@media (prefers-reduced-motion:reduce){.tour,.tour-slide{animation:none}}.app-shell{height:100dvh;display:flex;overflow:hidden}.app-sidebar{border-right:1px solid var(--surface-border);min-width:0;height:100%;transition:flex-basis var(--dur-base) var(--ease-out);background:#0000002e;flex:none;position:relative}.app-sidebar.resizing{transition:none}.app-sidebar.collapsed{border-right-color:#0000}.sidebar-body{height:100%;position:relative;overflow:hidden}.app-sidebar .library,.app-sidebar .sd-root,.app-mainarea .songview,.app-mainarea .editor,.app-mainarea .so-screen,.app-mainarea .settings-root{height:100%}.app-sidebar .lib-settings-fab,.app-sidebar .lib-version{position:absolute}.app-mainarea{flex:1;min-width:0;position:relative;overflow:hidden}.sidebar-resizer{cursor:col-resize;z-index:10;touch-action:none;justify-content:center;align-items:center;width:14px;display:flex;position:absolute;top:0;bottom:0;right:-6px}.sidebar-grip{border-radius:var(--radius-pill);background:var(--surface-border);width:4px;height:40px;transition:background var(--dur-fast), height var(--dur-fast)}@media (hover:hover){.sidebar-resizer:hover .sidebar-grip{background:var(--accent);height:60px}}.app-sidebar.resizing .sidebar-grip{background:var(--accent);height:72px}.sidebar-resizer:focus-visible{outline:none}.sidebar-resizer:focus-visible .sidebar-grip{background:var(--accent);height:72px;box-shadow:0 0 0 3px var(--accent-soft)}.sidebar-edge{background:var(--glass-bg);border:1px solid var(--surface-border);width:24px;height:46px;color:var(--muted);cursor:pointer;z-index:11;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));transition:color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 18px #00000059}.sidebar-collapse{border-radius:var(--radius-pill);right:-12px}.sidebar-reveal{left:env(safe-area-inset-left,0px);z-index:30;border-radius:0 var(--radius-md) var(--radius-md) 0;width:26px;height:54px;animation:sidebar-reveal-in var(--dur-base) var(--ease-out) both;border-left:none;position:fixed}@keyframes sidebar-reveal-in{0%{opacity:0;transform:translate(-100%,-50%)}to{opacity:1;transform:translateY(-50%)}}@media (hover:hover){.sidebar-collapse:hover,.sidebar-reveal:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft);transform:translate(2px,-50%)}}.sidebar-edge:active{transform:translateY(-50%)scale(.94)}@media (pointer:coarse){.sidebar-resizer{width:28px;right:-14px}.sidebar-grip{width:5px;height:52px}.sidebar-collapse{width:34px;right:-17px}.sidebar-reveal{width:34px}}@media (prefers-reduced-motion:reduce){.app-sidebar,.sidebar-edge,.sidebar-grip{transition:none}.sidebar-reveal{animation:none}}.app-empty{justify-content:center;align-items:center;gap:var(--space-3);height:100%;color:var(--muted);opacity:.7;flex-direction:column;display:flex}.app-empty p{font-size:var(--text-md);margin:0}.adm,.adm-login{box-sizing:border-box;background:var(--bg,#0b0b10);min-height:100dvh;color:var(--text,#ece9f0);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.adm{padding:var(--space-5,24px) max(var(--space-5,24px), env(safe-area-inset-left)) 80px;max-width:1200px;margin:0 auto}.adm-top{gap:var(--space-4,16px);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.adm-top-main{min-width:0}.adm-top-side{top:var(--space-4,16px);height:calc(100dvh - var(--space-4,16px) * 2);margin-bottom:var(--space-4,16px);position:sticky}.adm-top-side .adm-card{height:100%;padding-bottom:var(--space-3,12px);border-color:var(--accent-border,#8fe9ff73);background:radial-gradient(135% 90% at 100% 0%, color-mix(in srgb, var(--accent,#8fe9ff) 14%, transparent), transparent 55%), var(--card-bg,#ffffff0a);box-shadow:0 14px 46px color-mix(in srgb, var(--accent,#8fe9ff) 12%, transparent);flex-direction:column;margin-bottom:0;display:flex}.adm-top-side .adm-card h2{color:var(--accent,#8fe9ff)}.adm-grid+.adm-grid{margin-top:var(--space-4,16px)}@media (width<=880px){.adm-top{grid-template-columns:1fr}.adm-top-side{height:auto;position:static}.adm-top-side .adm-card{height:auto}.adm-chat-log{flex:0 auto;max-height:50vh}}.adm-login{padding:var(--space-5,24px);place-items:center;display:grid}.adm-login-card{gap:var(--space-3,12px);background:var(--card-bg,#ffffff0a);border:1px solid var(--card-border,#ffffff14);border-radius:var(--radius-lg,18px);width:min(360px,100%);padding:var(--space-5,24px);flex-direction:column;display:flex}.adm-login-card h1{margin:0;font-size:1.3rem}.adm-login-card p{color:var(--muted,#9a96a8);margin:0;font-size:.9rem}.adm-input{border:1px solid var(--surface-border,#ffffff1f);border-radius:var(--radius-md,12px);color:var(--text,#ece9f0);background:#ffffff0f;outline:none;padding:12px 14px;font-size:1rem}.adm-input:focus{border-color:var(--accent-border,#b48cff80)}.adm-err{color:var(--danger,#ff7a7a);margin:0;font-size:.85rem;font-weight:600}.adm-btn{background:var(--accent-soft,#b48cff29);border:1px solid var(--accent-border,#b48cff80);color:var(--accent,#c9a6ff);border-radius:var(--radius-md,12px);cursor:pointer;padding:12px;font-size:1rem;font-weight:700}.adm-btn:disabled{opacity:.5;cursor:default}.adm-head{justify-content:space-between;align-items:center;gap:var(--space-3,12px);display:flex}.adm-head h1{margin:0;font-size:1.5rem}.adm-head-actions{gap:var(--space-2,8px);display:flex}.adm-ghost{background:var(--card-bg,#ffffff0a);border:1px solid var(--card-border,#ffffff14);color:var(--text,#ece9f0);border-radius:var(--radius-md,12px);cursor:pointer;padding:8px 14px;font-size:.85rem;font-weight:600}.adm-stamp{margin:4px 0 var(--space-5,24px);color:var(--muted,#9a96a8);font-size:.8rem}.adm-stats{gap:var(--space-3,12px);margin-bottom:var(--space-4,16px);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.adm-stat{background:var(--card-bg,#ffffff0a);border:1px solid var(--card-border,#ffffff14);border-radius:var(--radius-lg,18px);padding:var(--space-4,16px);flex-direction:column;gap:2px;display:flex}.adm-stat-value{color:var(--accent,#c9a6ff);font-size:1.9rem;font-weight:800;line-height:1.1}.adm-stat-label{font-size:.9rem;font-weight:600}.adm-stat-sub{color:var(--muted,#9a96a8);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.adm-card{background:var(--card-bg,#ffffff0a);border:1px solid var(--card-border,#ffffff14);border-radius:var(--radius-lg,18px);padding:var(--space-4,16px);margin-bottom:var(--space-4,16px)}.adm-card h2{margin:0 0 var(--space-3,12px);align-items:center;gap:8px;font-size:1rem;display:flex}.adm-count{color:var(--accent,#c9a6ff);background:var(--accent-soft,#b48cff29);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.adm-empty{color:var(--muted,#9a96a8);margin:0;font-size:.85rem}.adm-grid{gap:var(--space-4,16px);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.adm-grid .adm-card{margin-bottom:0}.adm-grid+.adm-card{margin-top:var(--space-4,16px)}.adm-spark{align-items:flex-end;gap:4px;height:100px;display:flex}.adm-spark-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.adm-spark-bar{background:linear-gradient(var(--accent,#c9a6ff), var(--accent-border,#b48cff80));border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:height .3s}.adm-spark-label{color:var(--muted,#9a96a8);white-space:nowrap;font-size:.6rem}.adm-feat{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.adm-feat-row{grid-template-columns:minmax(90px,38%) 1fr auto;align-items:center;gap:10px;font-size:.85rem;display:grid}.adm-feat-name{color:var(--text,#ece9f0);text-transform:capitalize;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.adm-feat-track{background:#ffffff0f;border-radius:999px;height:8px;overflow:hidden}.adm-feat-fill{background:var(--accent,#c9a6ff);border-radius:999px;min-width:2px;height:100%;display:block}.adm-feat-count{color:var(--muted,#9a96a8);font-variant-numeric:tabular-nums;font-weight:700}.adm-spark--short{height:70px}.adm-spark--dense{gap:2px}.adm-spark--dense .adm-spark-label{font-size:.55rem}.adm-reports{gap:var(--space-3,12px);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.adm-report{border:1px solid var(--card-border,#ffffff14);border-radius:var(--radius-md,12px);padding:var(--space-3,12px)}.adm-report--idea{border-left:3px solid var(--accent,#c9a6ff)}.adm-report--bug{border-left:3px solid var(--danger,#ff7a7a)}.adm-report--err{border-left:3px solid #d8a23a}.adm-report-meta{color:var(--muted,#9a96a8);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:6px;font-size:.72rem;display:flex}.adm-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:1px 7px;font-size:.65rem;font-weight:700}.adm-tag--bug{color:var(--danger,#ff7a7a);background:#ff7a7a1f}.adm-tag--idea{color:var(--accent,#c9a6ff);background:var(--accent-soft,#b48cff29)}.adm-tag--err{color:#e0b056;background:#d8a23a24}.adm-report-ctx{font-variant-numeric:tabular-nums;margin-left:auto}.adm-report-msg{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.9rem;line-height:1.5}.adm-del{color:var(--muted,#9a96a8);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:.9rem;line-height:1}.adm-del:hover{color:var(--danger,#ff7a7a);background:#ff7a7a1a}.adm-act{color:var(--muted,#9a96a8);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:2px 8px;font-size:.72rem;font-weight:600;line-height:1.5}.adm-act:hover{color:var(--text,#ece9f0);background:#ffffff12}.adm-act--done{color:#6fd79a}.adm-act--done:hover{color:#6fd79a;background:#50c87824}.adm-act--del:hover{color:var(--danger,#ff7a7a);background:#ff7a7a1f}.adm-report--filed{opacity:.68}.adm-report--filed:hover{opacity:1}.adm-ai-btn{background:var(--accent-soft,#b48cff29);border:1px solid var(--accent-border,#b48cff80);color:var(--accent,#c9a6ff);border-radius:var(--radius-md,12px);cursor:pointer;margin-top:8px;padding:6px 14px;font-size:.8rem;font-weight:700}.adm-ai-btn:hover{filter:brightness(1.12)}.adm-ai-approve{color:#6fd79a;background:#50c87824;border-color:#50c87880}.adm-ai-status{color:var(--muted,#9a96a8);margin-top:8px;font-size:.82rem;font-style:italic}.adm-ai{border-radius:var(--radius-md,12px);border:1px solid var(--border,#ffffff14);background:#ffffff08;flex-direction:column;gap:8px;margin-top:10px;padding:12px;display:flex}.adm-ai-head{align-items:center;gap:10px;display:flex}.adm-sev--low{color:#9a96a8;background:#ffffff14}.adm-sev--medium{color:#e0b056;background:#d8a23a24}.adm-sev--high,.adm-sev--critical{color:var(--danger,#ff7a7a);background:#ff7a7a24}.adm-ai-conf{color:var(--muted,#9a96a8);font-size:.72rem}.adm-ai-summary{margin:0;font-size:.9rem;font-weight:600}.adm-ai-cause{color:var(--text,#ece9f0);opacity:.9;margin:0;font-size:.82rem;line-height:1.5}.adm-ai-cause strong{color:var(--accent,#c9a6ff)}.adm-ai-err{color:var(--danger,#ff7a7a);margin:0;font-size:.82rem}.adm-ai-ok{color:#6fd79a;margin:0;font-size:.85rem;font-weight:600}.adm-ai-ok a,.adm-ai a{color:var(--accent,#c9a6ff)}.adm-ai-files{flex-direction:column;gap:6px;display:flex}.adm-ai-file>summary{cursor:pointer;color:var(--accent,#c9a6ff);font-family:ui-monospace,monospace;font-size:.8rem}.adm-ai-file pre{background:#00000059;border-radius:8px;max-height:320px;margin:6px 0 0;padding:10px;font-size:.72rem;line-height:1.45;overflow-x:auto}.adm-ai-fix{margin:0;font-size:.82rem;line-height:1.5}.adm-ai-fix strong{color:#6fd79a}.adm-ai-actions{flex-wrap:wrap;gap:8px;display:flex}.adm-chat-log{flex-direction:column;flex:auto;gap:8px;min-height:0;margin-bottom:10px;display:flex;overflow-y:auto}.adm-chat-hint{margin:auto 0}.adm-chat-msg{white-space:pre-wrap;border-radius:12px;max-width:88%;padding:8px 12px;font-size:.86rem;line-height:1.5}.adm-chat-user{background:var(--accent-soft,#b48cff29);border:1px solid var(--accent-border,#b48cff66);color:var(--text,#ece9f0);align-self:flex-end}.adm-chat-assistant{border:1px solid var(--card-border,#ffffff14);background:#ffffff0d;align-self:flex-start}.adm-chat-thinking{color:var(--muted,#9a96a8);font-style:italic}.adm-chat-examples{flex-direction:column;gap:7px;display:flex}.adm-chat-intro{color:var(--muted,#9a96a8);margin:0 0 4px;font-size:.8rem}.adm-chat-ex{text-align:left;border:1px solid var(--card-border,#ffffff14);color:var(--text,#ece9f0);cursor:pointer;background:#ffffff0a;border-radius:10px;padding:9px 12px;font-size:.84rem;line-height:1.35;transition:background .12s,border-color .12s}.adm-chat-ex:hover{background:var(--accent-soft,#8fe9ff24);border-color:var(--accent-border,#8fe9ff66)}.adm-chat-ex:disabled{opacity:.5;cursor:default}.adm-chat-group{flex-direction:column;gap:6px;display:flex}.adm-chat-group+.adm-chat-group{margin-top:12px}.adm-chat-topic{text-transform:uppercase;letter-spacing:.06em;color:var(--accent,#8fe9ff);opacity:.85;margin:2px 0 1px;font-size:.68rem;font-weight:700}.adm-chat-input{gap:8px;display:flex}.adm-chat-input input{border:1px solid var(--surface-border,#ffffff1f);border-radius:var(--radius-md,12px);color:var(--text,#ece9f0);background:#ffffff0f;outline:none;flex:1;padding:9px 12px;font-size:.9rem}.adm-chat-input input:focus{border-color:var(--accent-border,#b48cff80)}.adm-chat-input button{background:var(--accent-soft,#b48cff29);border:1px solid var(--accent-border,#b48cff80);color:var(--accent,#c9a6ff);border-radius:var(--radius-md,12px);cursor:pointer;padding:0 18px;font-size:.85rem;font-weight:700}.adm-chat-input button:disabled{opacity:.5;cursor:default}.adm-arch-summary{cursor:pointer;color:var(--text,#ece9f0);font-size:1rem;font-weight:500}.adm-ghost--danger{color:var(--danger,#ff7a7a);border-color:#ff7a7a4d}.adm-ghost--danger:hover{background:#ff7a7a24;border-color:#ff7a7a80}.adm-stat{cursor:help;position:relative}.adm-stat-info{color:var(--muted,#9a96a8);opacity:.65;font-size:.72rem;position:absolute;top:10px;right:12px}.adm-kv{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;padding:0;list-style:none;display:grid}.adm-kv li{border-bottom:1px solid var(--card-border,#ffffff0f);justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;font-size:.86rem;display:flex}.adm-kv li:nth-last-child(-n+2){border-bottom:none}.adm-kv li span{color:var(--muted,#9a96a8)}.adm-kv li b{color:var(--text,#ece9f0);font-variant-numeric:tabular-nums;white-space:nowrap}.adm-colours{flex-direction:column;gap:8px;margin-top:14px;display:flex}.adm-colours-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#9a96a8);font-size:.68rem;font-weight:700}.adm-swatches{flex-wrap:wrap;gap:7px;display:flex}.adm-swatch-dot{border:1px solid #ffffff2e;border-radius:6px;width:22px;height:22px}.pp{box-sizing:border-box;background:var(--bg,#0b0b10);min-height:100dvh;color:var(--text,#ece9f0);padding:var(--space-5,24px) max(var(--space-4,16px), env(safe-area-inset-left)) 80px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.pp-inner{max-width:680px;margin:0 auto}.pp-back{color:var(--accent,#c9a6ff);cursor:pointer;margin-bottom:var(--space-4,16px);background:0 0;border:none;padding:0;font-size:.95rem;font-weight:600}.pp h1{margin:0 0 var(--space-3,12px);font-size:1.7rem}.pp-lead{color:var(--text,#ece9f0);opacity:.9;margin:0 0 var(--space-5,24px);font-size:1.02rem;line-height:1.6}.pp h2{margin:var(--space-5,24px) 0 var(--space-2,8px);color:var(--accent,#c9a6ff);font-size:1.1rem}.pp p{margin:0 0 var(--space-3,12px);opacity:.92;line-height:1.6}.pp ul{margin:0 0 var(--space-3,12px);flex-direction:column;gap:8px;padding-left:1.2em;display:flex}.pp li{opacity:.92;line-height:1.55}.pp strong{color:var(--text,#ece9f0)}.pp a{color:var(--accent,#c9a6ff)}.pp-foot{margin-top:var(--space-5,24px);color:var(--muted,#9a96a8);font-size:.82rem}:root{--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sheet-font:18px;--sab:env(safe-area-inset-bottom,0px);--surface:color-mix(in srgb, var(--aurora) 9%, #14141475);--surface-border:#ffffff1a;--text:#e8eaf2;--muted:#e8eaf29e;--accent:#8fe9ff;--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--accent-soft-hover:color-mix(in srgb, var(--accent) 20%, transparent);--accent-border:color-mix(in srgb, var(--accent) 22%, transparent);--chord:var(--accent);--glow:0 0 9px color-mix(in srgb, var(--accent) 38%, transparent), 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);--aurora:#5f2aaa;--chorus-accent:#ffd479;--chorus-accent-soft:#ffd4791f;--chorus-accent-border:#ffd4794d;--chorus-glow:0 0 10px #ffd4794d;--danger:#ff8e8e;--danger-soft:#ff50502e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--list-gap:var(--space-2);--text-xs:.72rem;--text-sm:.82rem;--text-md:.92rem;--text-lg:1.15rem;--text-xl:1.4rem;--radius-xs:6px;--radius-sm:9px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--tap:44px;--tap-sm:38px;--press-scale:.96;--pill-bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));--pill-clearance:104px;--icon-sm:16px;--icon-md:18px;--icon-lg:22px;--glass-bg:color-mix(in srgb, var(--aurora) 9%, #121212eb);--glass-bg-strong:color-mix(in srgb, var(--aurora) 8%, #0f0f0ff2);--glass-border:#ffffff1f;--glass-blur:26px;--glass-sat:150%;--glass-shadow:0 18px 50px #0000008c, inset 0 1px 0 #ffffff0f;--shadow-popover:0 14px 44px #0000008c, inset 0 1px 0 #ffffff0f;--card-bg:#ffffff0a;--card-bg-hover:#ffffff14;--card-border:#ffffff12;--danger-strong:#ff6b6b;--danger-soft-hover:#ff505047;--danger-border:#ff6e6e66}.icon{vertical-align:middle;flex:none;justify-content:center;align-items:center;display:inline-flex}.app-main{display:contents}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-tap-highlight-color:transparent}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}html,body{overscroll-behavior:none}#root{overscroll-behavior-y:contain;transition:filter var(--dur-base) ease}body.modal-blur #root{filter:blur(8px)}@media (prefers-reduced-motion:reduce){#root{transition:none}}*{scrollbar-width:thin;scrollbar-color:var(--surface-border) transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:inherit}.float-pill button:focus-visible,.set-nav-btn:focus-visible{box-shadow:0 0 0 2px var(--accent)}.app-loading{height:100dvh;color:var(--muted);letter-spacing:.04em;justify-content:center;align-items:center;font-family:-apple-system,system-ui,sans-serif;font-size:.9rem;display:flex}body{color:var(--text);background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}body:before{content:"";z-index:-1;background:radial-gradient(120% 90% at 50% -10%, color-mix(in srgb, var(--aurora) 38%, #000) 0%, color-mix(in srgb, var(--aurora) 28%, #000) 28%, color-mix(in srgb, var(--aurora) 14%, #000) 58%, #000 82%);will-change:transform, opacity;animation:13s ease-in-out infinite breathe;position:fixed;inset:-10%;transform:scale(1)}@keyframes breathe{0%,to{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.16)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}}[data-breathe=off] body:before{animation:none}[data-breathe=lively] body:before{animation:8s ease-in-out infinite breathe}body:before{transition:filter 1.6s}[data-audio=playing] body:before{filter:brightness(1.16)saturate(1.08);transition:filter 1.2s;animation-duration:9s}@media (prefers-reduced-motion:reduce){[data-audio=playing] body:before{filter:brightness(1.1);animation:none}}button{appearance:none;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}@media (pointer:coarse){input,textarea,select{font-size:16px!important}}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:var(--glass-shadow)}.btn-primary{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);font-weight:600;display:inline-flex}.btn-ghost{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--muted);display:inline-flex}.btn-danger{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-strong);font-weight:600;display:inline-flex}@media (hover:hover){.btn-primary:hover{background:var(--accent-soft-hover)}.btn-ghost:hover{background:var(--card-bg-hover);color:var(--text)}.btn-danger:hover{background:var(--danger-soft-hover)}}.app-header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-top:env(safe-area-inset-top,0px);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));flex-shrink:0;display:flex}body.is-offline .app-header{margin-top:calc(env(safe-area-inset-top,0px) + 40px)}.app-header h1{font-size:var(--text-xl);color:var(--text);margin:0;font-weight:600}.app-back{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--text-sm);white-space:nowrap;flex-shrink:0;font-weight:600;display:inline-flex}@media (hover:hover){.app-back:hover{background:var(--accent-soft)}}button:active,.pill-ctrl:active,.stepper button:active,.set-nav-btn:active,.lib-toggle-btn:active,.app-back:active{transform:scale(var(--press-scale));transition:transform var(--dur-fast) var(--ease-out)}@media (prefers-reduced-motion:reduce){:active{transform:none!important}}.pill-ctrl,.stepper button,.set-nav-btn,.app-back,.lib-toggle-btn,.add-btn,.si-del,.sl-del,.sd-remove-btn,.so-result-item,.song-item,.sl-item{touch-action:manipulation}::view-transition-old(root){animation-duration:var(--dur-base)}::view-transition-new(root){animation-duration:var(--dur-base)}
