._banner_19rpf_1{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-banner);background:var(--card);border-top:1px solid var(--border);box-shadow:0 -4px 18px rgba(24,22,20,.12);padding:var(--space-3) calc(var(--space-4) + var(--safe-right)) calc(var(--space-3) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));animation:_slide-up_19rpf_1 .25s ease-out}@keyframes _slide-up_19rpf_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}._inner_19rpf_24{display:flex;align-items:center;gap:var(--space-3);max-width:480px;margin:0 auto}._iconChip_19rpf_36{flex-shrink:0;width:40px;height:40px;--app-logo-radius: var(--radius-md)}._text_19rpf_43{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}._title_19rpf_51{font-size:var(--text-sm);font-weight:700;color:var(--foreground)}._body_19rpf_57{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.35}._banner_vrsr0_4{position:fixed;bottom:0;left:0;right:0;z-index:calc(var(--z-banner) + 1);background:var(--card);border-top:1px solid var(--border);box-shadow:0 -4px 18px rgba(24,22,20,.12);padding:var(--space-3) calc(var(--space-4) + var(--safe-right)) calc(var(--space-3) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));animation:_slide-up_vrsr0_1 .25s ease-out}@keyframes _slide-up_vrsr0_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}._inner_vrsr0_27{display:flex;align-items:center;gap:var(--space-3);max-width:480px;margin:0 auto}._iconChip_vrsr0_35{flex-shrink:0;width:40px;height:40px;--app-logo-radius: var(--radius-md)}._text_vrsr0_42{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}._title_vrsr0_50{font-size:var(--text-sm);font-weight:700;color:var(--foreground)}._body_vrsr0_56{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.35}:root{--background: #F6F2F7;--foreground: #170020;--card: #FFFFFF;--card-foreground: #170020;--muted: #EDE6F0;--muted-foreground: #665A6E;--border: #E4DAE8;--border-strong: #D0C2D6;--input: #C4B4CC;--primary: #800080;--primary-hover: #560072;--primary-foreground: #FFFFFF;--primary-soft: #F4E6F4;--primary-soft-foreground: #800080;--secondary: #FFFFFF;--secondary-hover: #F2EBF4;--secondary-foreground: #170020;--destructive: #D50048;--destructive-hover: #AB003A;--destructive-foreground: #FFFFFF;--destructive-soft: #FCE7EC;--success: #1B7A55;--success-soft: #E2F1EA;--ring: rgba(128, 0, 128, .4);--overlay: rgba(10, 0, 16, .6);--background-rgb: 246, 242, 247;--primary-rgb: 128, 0, 128;--destructive-rgb: 213, 0, 72;--success-rgb: 27, 122, 85;--overlay-rgb: 10, 0, 16;--overlay-alpha: .6;--tone-tonic-rgb: 27, 122, 85;--tone-subdominant-rgb: 176, 106, 11;--tone-dominant-rgb: 213, 0, 72;--sidebar-bg: #2A0048;--sidebar-foreground: #C9B8D6;--sidebar-muted: #8F7BA0;--sidebar-hover: rgba(255, 255, 255, .09);--sidebar-active-bg: rgba(255, 255, 255, .14);--sidebar-active-fg: #FFFFFF;--sidebar-border: rgba(255, 255, 255, .11);--sidebar-accent: #FF0000;--sidebar-surface: rgba(255, 255, 255, .07);--sidebar-surface-hover: rgba(255, 255, 255, .13);--sidebar-surface-border: rgba(255, 255, 255, .14);--tone-tonic: #1B7A55;--tone-tonic-soft: #E2F1EA;--tone-subdominant: #B06A0B;--tone-subdominant-soft: #F9EEDC;--tone-dominant: #D50048;--tone-dominant-soft: #FCE7EC;--font-sans: "Barlow", system-ui, sans-serif;--font-display: "Plus Jakarta Sans", var(--font-sans);--font-band-display: "Bebas Neue", var(--font-display);--text-xs: .75rem;--text-sm: .8438rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 7px;--radius-md: 10px;--radius-lg: 14px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(10, 0, 16, .07);--shadow-sm: 0 1px 2px rgba(10, 0, 16, .08), 0 2px 6px rgba(10, 0, 16, .06);--shadow-md: 0 2px 4px rgba(10, 0, 16, .07), 0 6px 18px -4px rgba(10, 0, 16, .15);--shadow-lg: 0 4px 10px rgba(10, 0, 16, .08), 0 18px 48px -12px rgba(10, 0, 16, .26);--dur-1: .12s;--dur-2: .18s;--dur-3: .26s;--dur-4: .4s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--transition: .15s var(--ease-standard);--z-topbar: 30;--z-sidebar: 40;--z-dropdown: 50;--z-banner: 60;--z-modal: 100;--logo-plate-light: #FFFFFF;--logo-plate-dark: #150320;--sidebar-width: 240px;--sidebar-width-rail: 76px;--topbar-height: 56px;--safe-top: 0px;--safe-right: 0px;--safe-bottom: 0px;--safe-left: 0px;color-scheme:light}@supports (padding: env(safe-area-inset-top)){:root{--safe-top: env(safe-area-inset-top);--safe-right: env(safe-area-inset-right);--safe-bottom: env(safe-area-inset-bottom);--safe-left: env(safe-area-inset-left)}}:root[data-palette=ember]{--background: #F7F1F1;--foreground: #1A0708;--card: #FFFFFF;--card-foreground: #1A0708;--muted: #EFE4E4;--muted-foreground: #6C5757;--border: #E6DAD9;--border-strong: #D3C3C2;--input: #C7B5B4;--primary: #8B0000;--primary-hover: #5E0000;--primary-foreground: #FFFFFF;--primary-soft: #F8E7E7;--primary-soft-foreground: #8B0000;--secondary: #FFFFFF;--secondary-hover: #F3ECEC;--secondary-foreground: #1A0708;--ring: rgba(139, 0, 0, .4);--overlay: rgba(16, 0, 0, .6);--background-rgb: 247, 241, 241;--primary-rgb: 139, 0, 0;--overlay-rgb: 16, 0, 0;--overlay-alpha: .6;--sidebar-bg: #40000C;--sidebar-foreground: #D9C3C3;--sidebar-muted: #A88A8A;--sidebar-hover: rgba(255, 255, 255, .09);--sidebar-active-bg: rgba(255, 255, 255, .14);--sidebar-active-fg: #FFFFFF;--sidebar-border: rgba(255, 255, 255, .11);--sidebar-accent: #FF3B30;--sidebar-surface: rgba(255, 255, 255, .07);--sidebar-surface-hover: rgba(255, 255, 255, .13);--sidebar-surface-border: rgba(255, 255, 255, .14);--logo-plate-dark: #1A0505;--shadow-xs: 0 1px 2px rgba(16, 0, 0, .07);--shadow-sm: 0 1px 2px rgba(16, 0, 0, .08), 0 2px 6px rgba(16, 0, 0, .06);--shadow-md: 0 2px 4px rgba(16, 0, 0, .07), 0 6px 18px -4px rgba(16, 0, 0, .15);--shadow-lg: 0 4px 10px rgba(16, 0, 0, .08), 0 18px 48px -12px rgba(16, 0, 0, .26)}:root[data-palette=branco]{--background: #FAFAFA;--foreground: #18181B;--card: #FFFFFF;--card-foreground: #18181B;--muted: #F4F4F5;--muted-foreground: #71717A;--border: #E4E4E7;--border-strong: #D4D4D8;--input: #D4D4D8;--primary: #18181B;--primary-hover: #000000;--primary-foreground: #FFFFFF;--primary-soft: #F4F4F5;--primary-soft-foreground: #18181B;--secondary: #FFFFFF;--secondary-hover: #F4F4F5;--secondary-foreground: #18181B;--ring: rgba(24, 24, 27, .35);--overlay: rgba(9, 9, 11, .55);--background-rgb: 250, 250, 250;--primary-rgb: 24, 24, 27;--overlay-rgb: 9, 9, 11;--overlay-alpha: .55;--sidebar-bg: #F4F4F5;--sidebar-foreground: #52525B;--sidebar-muted: #8E8E97;--sidebar-hover: rgba(24, 24, 27, .05);--sidebar-active-bg: rgba(24, 24, 27, .07);--sidebar-active-fg: #18181B;--sidebar-border: #E4E4E7;--sidebar-accent: #18181B;--sidebar-surface: rgba(24, 24, 27, .04);--sidebar-surface-hover: rgba(24, 24, 27, .08);--sidebar-surface-border: rgba(24, 24, 27, .1);--logo-plate-dark: #17171A;--shadow-xs: 0 1px 2px rgba(9, 9, 11, .06);--shadow-sm: 0 1px 2px rgba(9, 9, 11, .07), 0 2px 6px rgba(9, 9, 11, .05);--shadow-md: 0 2px 4px rgba(9, 9, 11, .06), 0 6px 18px -4px rgba(9, 9, 11, .13);--shadow-lg: 0 4px 10px rgba(9, 9, 11, .07), 0 18px 48px -12px rgba(9, 9, 11, .22)}:root[data-theme=dark]{--background: #0B0012;--foreground: #EFE7F2;--card: #16031F;--card-foreground: #EFE7F2;--muted: #22032E;--muted-foreground: #A794AF;--border: #2C0A3A;--border-strong: #3E1050;--input: #4A1A5C;--primary: #A93BA9;--primary-hover: #C155C1;--primary-foreground: #FFFFFF;--primary-soft: #360A48;--primary-soft-foreground: #E9A6E9;--secondary: #1D0A28;--secondary-hover: #291036;--secondary-foreground: #EFE7F2;--destructive: #D92E58;--destructive-hover: #E8476E;--destructive-foreground: #FFFFFF;--destructive-soft: #3A0A1E;--success: #3FB57B;--success-soft: #0F2E1F;--ring: rgba(169, 59, 169, .55);--overlay: rgba(5, 0, 8, .72);--background-rgb: 11, 0, 18;--primary-rgb: 169, 59, 169;--destructive-rgb: 217, 46, 88;--success-rgb: 63, 181, 123;--overlay-rgb: 5, 0, 8;--overlay-alpha: .72;--tone-tonic-rgb: 63, 181, 123;--tone-subdominant-rgb: 224, 160, 60;--tone-dominant-rgb: 217, 46, 88;--sidebar-bg: #1C0030;--sidebar-foreground: #BFAECC;--sidebar-muted: #8B77A0;--sidebar-hover: rgba(255, 255, 255, .08);--sidebar-active-bg: rgba(255, 255, 255, .13);--sidebar-active-fg: #FFFFFF;--sidebar-border: rgba(255, 255, 255, .09);--sidebar-accent: #FF3B3B;--sidebar-surface: rgba(255, 255, 255, .06);--sidebar-surface-hover: rgba(255, 255, 255, .11);--sidebar-surface-border: rgba(255, 255, 255, .12);--tone-tonic: #3FB57B;--tone-tonic-soft: #0F2E1F;--tone-subdominant: #E0A03C;--tone-subdominant-soft: #33210A;--tone-dominant: #D92E58;--tone-dominant-soft: #3A0A1E;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .25);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 6px 18px -4px rgba(0, 0, 0, .45);--shadow-lg: 0 4px 10px rgba(0, 0, 0, .35), 0 18px 48px -12px rgba(0, 0, 0, .6);color-scheme:dark}:root[data-palette=ember][data-theme=dark]{--background: #0C0202;--foreground: #F2E9E9;--card: #180505;--card-foreground: #F2E9E9;--muted: #240707;--muted-foreground: #AC9797;--border: #2E0C0C;--border-strong: #401212;--input: #4C1A1A;--primary: #C62F2F;--primary-hover: #DB4A4A;--primary-foreground: #FFFFFF;--primary-soft: #3A0C0C;--primary-soft-foreground: #F0A5A5;--secondary: #1F0808;--secondary-hover: #2B0E0E;--secondary-foreground: #F2E9E9;--ring: rgba(198, 47, 47, .55);--overlay: rgba(6, 0, 0, .72);--background-rgb: 12, 2, 2;--primary-rgb: 198, 47, 47;--overlay-rgb: 6, 0, 0;--overlay-alpha: .72;--sidebar-bg: #2A0006;--sidebar-foreground: #CDB4B4;--sidebar-muted: #9C8080;--sidebar-hover: rgba(255, 255, 255, .08);--sidebar-active-bg: rgba(255, 255, 255, .13);--sidebar-active-fg: #FFFFFF;--sidebar-border: rgba(255, 255, 255, .09);--sidebar-accent: #FF5C4D;--sidebar-surface: rgba(255, 255, 255, .06);--sidebar-surface-hover: rgba(255, 255, 255, .11);--sidebar-surface-border: rgba(255, 255, 255, .12)}:root[data-palette=branco][data-theme=dark]{--background: #09090B;--foreground: #FAFAFA;--card: #18181B;--card-foreground: #FAFAFA;--muted: #27272A;--muted-foreground: #A1A1AA;--border: #2E2E33;--border-strong: #3F3F46;--input: #3F3F46;--primary: #FAFAFA;--primary-hover: #FFFFFF;--primary-foreground: #18181B;--primary-soft: #27272A;--primary-soft-foreground: #FAFAFA;--secondary: #1F1F23;--secondary-hover: #2A2A2F;--secondary-foreground: #FAFAFA;--ring: rgba(250, 250, 250, .45);--overlay: rgba(0, 0, 0, .7);--background-rgb: 9, 9, 11;--primary-rgb: 250, 250, 250;--overlay-rgb: 0, 0, 0;--overlay-alpha: .7;--sidebar-bg: #111113;--sidebar-foreground: #C4C4CB;--sidebar-muted: #8B8B94;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(255, 255, 255, .1);--sidebar-active-fg: #FFFFFF;--sidebar-border: rgba(255, 255, 255, .08);--sidebar-accent: #FAFAFA;--sidebar-surface: rgba(255, 255, 255, .05);--sidebar-surface-hover: rgba(255, 255, 255, .1);--sidebar-surface-border: rgba(255, 255, 255, .11)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;color:var(--foreground);background:var(--background);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;margin:0;letter-spacing:-.015em;line-height:1.25}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}small{font-size:var(--text-xs)}svg{flex-shrink:0}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;padding:0;cursor:pointer}button:disabled{opacity:.45;cursor:default}input,select,textarea{width:100%;border:1px solid var(--input);padding:.5rem .7rem;background:var(--card);color:var(--foreground);border-radius:var(--radius-sm);transition:border-color var(--transition),box-shadow var(--transition);outline:none}input[type=checkbox],input[type=radio]{width:auto;border:0;padding:0;background:none;border-radius:0}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}}input::placeholder,textarea::placeholder{color:var(--muted-foreground)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}textarea{resize:vertical}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}::selection{background:var(--primary-soft);color:var(--primary-soft-foreground)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.fullscreen-center{min-height:100vh;min-height:100dvh;display:grid;place-items:center}.error-box{color:var(--destructive);font-size:var(--text-sm);font-weight:600;background:var(--destructive-soft);border:1px solid rgba(var(--destructive-rgb),.35);border:1px solid color-mix(in srgb,var(--destructive) 35%,transparent);border-radius:var(--radius-sm);padding:.5rem .75rem}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-weight:600;font-size:var(--text-sm);line-height:1;padding:.55rem .95rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--dur-1) var(--ease-standard);user-select:none}.btn--primary:hover:not(:disabled),.btn--secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none;transition-duration:60ms}.btn--primary{background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-xs)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--secondary);color:var(--secondary-foreground);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn--secondary:hover:not(:disabled){background:var(--secondary-hover);border-color:var(--input)}.btn--ghost{background:transparent;color:var(--muted-foreground)}.btn--ghost:hover:not(:disabled){background:var(--muted);color:var(--foreground)}.btn--danger{background:var(--destructive);color:var(--destructive-foreground)}.btn--danger:hover:not(:disabled){background:var(--destructive-hover)}.btn--danger-ghost{background:transparent;color:var(--destructive)}.btn--danger-ghost:hover:not(:disabled){background:var(--destructive-soft)}.btn--sm{padding:.35rem .65rem;font-size:var(--text-xs)}.btn--block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--muted-foreground);background:transparent;border:0;cursor:pointer;transition:background var(--transition),color var(--transition),transform var(--dur-1) var(--ease-standard);flex-shrink:0}.icon-btn:hover:not(:disabled){background:var(--muted);color:var(--foreground)}.icon-btn:active:not(:disabled){transform:scale(.9);transition-duration:60ms}@media (pointer: coarse){.icon-btn{width:44px;height:44px}}.icon-btn--danger:hover:not(:disabled){background:var(--destructive-soft);color:var(--destructive)}.song-links{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0}.song-link--spotify:hover:not(:disabled){background:rgba(29,185,84,.18);background:color-mix(in srgb,#1db954 18%,transparent);color:#1db954}.song-link--youtube:hover:not(:disabled){background:rgba(255,0,0,.14);background:color-mix(in srgb,#ff0000 14%,transparent);color:red}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card--soft{background:var(--muted);box-shadow:none}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.card-body{padding:var(--space-5)}.field{display:grid;gap:.35rem}.field-collapse{display:grid;gap:.35rem;min-height:0}.field-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--foreground)}.field-label--collapsible{display:flex;align-items:center;gap:.35rem;width:100%;background:none;border:none;padding:0;margin:0;font:inherit;cursor:pointer}.field-label--collapsible:hover{color:var(--primary)}.field-label-chevron{display:inline-block;width:.9em;color:var(--muted-foreground)}.field-hint{font-size:var(--text-xs);color:var(--muted-foreground)}.field-error{font-size:var(--text-xs);font-weight:600;color:var(--destructive)}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);font-weight:600;line-height:1;padding:.28rem .55rem;border-radius:var(--radius-full);background:var(--muted);color:var(--muted-foreground);border:1px solid transparent;white-space:nowrap}.badge--primary{background:var(--primary-soft);color:var(--primary-soft-foreground)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--outline{background:transparent;border-color:var(--border-strong)}button.badge{cursor:pointer;transition:border-color var(--transition),color var(--transition),transform var(--dur-1) var(--ease-standard)}button.badge:hover{border-color:var(--primary);color:var(--primary)}button.badge:active{transform:scale(.94);transition-duration:60ms}.empty-state{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted-foreground);font-size:var(--text-sm);display:grid;gap:.4rem;justify-items:center}.empty-state svg{color:var(--border-strong)}img[data-tone=dark],img[data-tone=light]{object-fit:contain;padding:3px}img[data-tone=dark]{background:var(--logo-plate-light);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}img[data-tone=light]{background:var(--logo-plate-dark);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}.dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:.3rem;z-index:var(--z-dropdown);display:grid;gap:1px;animation:dropdown-in var(--dur-2) var(--ease-out);transform-origin:top center}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown-item{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;padding:.45rem .6rem;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--foreground);background:transparent;border:0;cursor:pointer;transition:background var(--transition)}.dropdown-item:hover{background:var(--muted)}.dropdown-item svg{color:var(--muted-foreground)}.dropdown-separator{height:1px;background:var(--border);margin:.25rem .35rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:var(--z-modal);display:grid;place-items:center;padding:calc(var(--space-4) + var(--safe-top)) calc(var(--space-4) + var(--safe-right)) calc(var(--space-4) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));animation:overlay-in var(--dur-2) var(--ease-standard);overflow-y:auto}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(440px,100%);max-height:calc(100vh - 2 * var(--space-4));max-height:calc(100dvh - 2 * var(--space-4) - var(--safe-top) - var(--safe-bottom));display:flex;flex-direction:column;animation:modal-in var(--dur-3) var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal--md{width:min(560px,100%)}.modal--lg{width:min(760px,100%)}.modal--reader{width:min(920px,100%);height:min(880px,calc(100vh - 2 * var(--space-4)));height:min(880px,calc(100dvh - 2 * var(--space-4) - var(--safe-top) - var(--safe-bottom)))}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-size:var(--text-lg);font-family:var(--font-display);font-weight:700}.modal-body{padding:var(--space-5);overflow-y:auto;flex:1;min-height:0}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);flex-shrink:0}.app-update-content{display:grid;gap:.5rem}.app-update-heading{font-size:var(--text-sm);font-weight:700;color:var(--muted-foreground);margin-top:var(--space-2)}.app-update-heading:first-child{margin-top:0}.app-update-list{display:grid;gap:.4rem;padding-left:1.1rem;list-style:disc}.app-update-list li{font-size:var(--text-sm)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}.page-header h2{font-size:var(--text-xl)}.page-description{margin-top:.25rem;color:var(--muted-foreground);font-size:var(--text-sm);max-width:60ch}.page-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-2);padding:var(--space-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);margin-bottom:var(--space-5)}.inline-form .btn{min-height:38px}.stack-form{display:grid;gap:var(--space-3)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.status-line{display:block;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground);margin-top:var(--space-2)}@media (max-width: 560px){.modal-header,.modal-footer{padding:var(--space-3) var(--space-4)}.modal-body{padding:var(--space-4)}.modal-footer,.modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-footer .btn,.modal-actions .btn{width:100%}.card-header{flex-direction:column;align-items:flex-start;padding:var(--space-4)}.card-body{padding:var(--space-4)}.page-header{margin-bottom:var(--space-5)}}.spinner{display:inline-grid;place-items:center;flex:none;line-height:0}.spinner-ring{display:block;width:100%;height:100%;border-radius:var(--radius-full);border:var(--spinner-weight, 2px) solid var(--border-strong);border-top-color:var(--primary);animation:spinner-turn .7s linear infinite}.spinner--sm{width:14px;height:14px;--spinner-weight: 2px}.spinner--md{width:20px;height:20px;--spinner-weight: 2px}.spinner--lg{width:34px;height:34px;--spinner-weight: 3px}@keyframes spinner-turn{to{transform:rotate(360deg)}}.loading-text{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--muted-foreground);font-size:var(--text-sm)}.skeleton{display:block;width:100%;height:14px;border-radius:var(--radius-sm);background:var(--muted);position:relative;overflow:hidden}.skeleton--circle{border-radius:var(--radius-full)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--foreground) 7%,transparent),transparent);animation:skeleton-sheen 1.4s var(--ease-in-out) infinite}@keyframes skeleton-sheen{to{transform:translate(100%)}}.skeleton-text,.skeleton-list{display:grid;gap:var(--space-2);width:100%}.btn.is-loading{cursor:progress;opacity:.85}.btn.is-loading .spinner-ring{border-color:color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor}.dev-notice-body{display:grid;gap:var(--space-3);line-height:1.6}.dev-notice-body p{margin:0}.dev-notice-detail{padding:var(--space-3);border-radius:var(--radius-md);background:var(--muted);color:var(--muted-foreground);font-size:var(--text-sm)}.dev-notice-feedback{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-soft-foreground);font-size:var(--text-sm)}.dev-notice-feedback svg{flex:none;margin-top:.15rem}.dev-notice-feedback a{font-weight:700;color:inherit}.appearance{display:grid;gap:var(--space-5)}.appearance-section{display:grid;gap:var(--space-2)}.appearance-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground)}.appearance-modes{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;background:var(--muted);border-radius:var(--radius-md)}.appearance-mode{padding:.45rem .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-foreground);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition),color var(--transition)}.appearance-mode:hover{color:var(--foreground)}.appearance-mode.active{background:var(--card);color:var(--foreground);box-shadow:var(--shadow-xs)}.appearance-themes{display:grid;gap:var(--space-2)}.appearance-theme{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);cursor:pointer;transition:border-color var(--transition),background var(--transition),transform var(--dur-1) var(--ease-standard)}.appearance-theme:hover{border-color:var(--border-strong)}.appearance-theme:active{transform:translateY(1px)}.appearance-theme.active{border-color:var(--primary);background:var(--primary-soft)}.appearance-swatches{display:flex;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden;box-shadow:inset 0 0 0 1px var(--border)}.appearance-swatch{width:18px;height:34px}.appearance-theme-copy{display:grid;gap:.1rem;min-width:0;flex:1}.appearance-theme-copy strong{font-size:var(--text-sm)}.appearance-theme-copy small{color:var(--muted-foreground)}.appearance-theme.active .appearance-theme-copy small{color:var(--primary-soft-foreground)}.appearance-check{flex-shrink:0;color:var(--primary)}.appearance-theme.active .appearance-check{color:var(--primary-soft-foreground)}.appearance-hint{color:var(--muted-foreground);font-size:var(--text-xs)}@media (max-width: 480px){.appearance-theme-copy small{display:none}}.app-shell{min-height:100vh;min-height:100dvh;--sidebar-current: var(--sidebar-width)}.sidebar{position:fixed;inset-block:0;left:0;width:var(--sidebar-current);width:calc(var(--sidebar-current) + var(--safe-left));padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);display:flex;flex-direction:column;background:var(--sidebar-bg);color:var(--sidebar-foreground);border-right:1px solid var(--sidebar-border);z-index:var(--z-sidebar);transition:transform .2s ease}[data-motion=on] .sidebar{transition:transform .2s ease,width var(--dur-3) var(--ease-standard)}.sidebar-brand{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:var(--space-4) var(--space-4) var(--space-3)}.sidebar-brand--compact{flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;padding:var(--space-3) var(--space-4)}.sidebar-brand-logo{width:64px;height:64px;--app-logo-radius: var(--radius-lg)}.sidebar-brand--compact .sidebar-brand-logo{width:30px;height:30px;--app-logo-radius: var(--radius-sm)}.sidebar-brand-name{min-width:0;overflow:hidden;white-space:nowrap;font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);line-height:1;letter-spacing:-.01em;color:var(--sidebar-active-fg)}.sidebar-rail-toggle{margin-left:auto}.sidebar-brand:not(.sidebar-brand--compact) .sidebar-rail-toggle{margin-left:0}.sidebar .icon-btn{color:var(--sidebar-muted)}.sidebar .icon-btn:hover:not(:disabled){background:var(--sidebar-hover);color:var(--sidebar-active-fg)}.sidebar-brand--compact .sidebar-brand-name{font-size:var(--text-md)}.app-logo{display:block;flex-shrink:0;border-radius:var(--app-logo-radius, var(--radius-sm));user-select:none}.band-switcher{position:relative;border-top:1px solid var(--sidebar-border);border-bottom:1px solid var(--sidebar-border);background:var(--card)}.band-identity{display:flex;align-items:center;gap:.7rem;padding:var(--space-3) var(--space-4);animation:band-identity-in var(--dur-3) var(--ease-out)}@keyframes band-identity-in{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}.band-identity-logo{display:block;width:68px;height:68px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.band-identity-logo--placeholder{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-soft-foreground);font-family:var(--font-band-display);font-size:2.5rem;line-height:1;letter-spacing:.04em}.band-name{min-width:0;font-family:var(--font-band-display);font-size:1.375rem;line-height:.98;letter-spacing:.02em;color:var(--foreground);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.band-switcher-trigger{position:relative;display:flex;align-items:center;gap:var(--space-2);width:100%;padding:.5rem var(--space-4);border:0;border-top:1px solid var(--sidebar-border);border-radius:0;background:rgba(var(--primary-rgb),.1);font-family:inherit;font-size:var(--text-xs);font-weight:700;letter-spacing:.01em;color:var(--primary-soft-foreground);text-align:left;cursor:pointer;overflow:hidden;transition:background var(--transition)}.band-switcher-trigger:hover,.band-switcher-trigger[aria-expanded=true]{background:rgba(var(--primary-rgb),.2)}.band-switcher-trigger:active{background:rgba(var(--primary-rgb),.28)}.band-switcher-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.band-switch-label{transition:transform var(--dur-2) var(--ease-out)}.band-switcher-trigger:hover .band-switch-label{transform:translate(2px)}.band-switcher-trigger svg{margin-left:auto;flex-shrink:0;transition:transform var(--dur-2) var(--ease-spring)}.band-switcher-trigger:hover svg{transform:scale(1.18)}.band-switcher-trigger[aria-expanded=true] svg{transform:scale(1.18)}.band-switcher-trigger:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:left center;transition:transform var(--dur-2) var(--ease-out)}.band-switcher-trigger[aria-expanded=true]:after{transform:scaleX(1)}.band-switcher .dropdown-menu{left:var(--space-3);right:var(--space-3)}.band-menu .dropdown-item{position:relative;gap:.65rem;padding:.4rem .5rem .4rem .6rem}.band-menu .band-avatar{width:34px;height:34px;border-radius:var(--radius-sm)}.band-menu .dropdown-item-label{font-family:var(--font-band-display);font-size:1.05rem;line-height:1;letter-spacing:.02em;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.band-menu .dropdown-item.active:before{content:"";position:absolute;left:3px;top:.4rem;bottom:.4rem;width:3px;border-radius:2px;background:var(--primary)}.band-menu-action{font-size:var(--text-sm);font-weight:500;color:var(--muted-foreground)}.band-menu-action:hover{color:var(--foreground)}.band-avatar{width:26px;height:26px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.band-avatar--placeholder{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-soft-foreground);font-size:var(--text-xs);font-weight:700}.band-switcher .dropdown-item.active{background:var(--primary-soft);color:var(--primary-soft-foreground)}.band-switcher .dropdown-item.active svg{color:var(--primary-soft-foreground)}.dropdown-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-3) var(--space-4)}.nav-group-label{display:block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--sidebar-muted);margin:var(--space-4) .55rem var(--space-1)}.nav-group-label:first-child{margin-top:var(--space-2)}.nav-link{position:relative;display:flex;align-items:center;gap:.6rem;padding:.45rem .55rem;margin-bottom:1px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--sidebar-foreground);text-decoration:none;transition:background var(--transition),color var(--transition)}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-active-fg);text-decoration:none}.nav-link-icon{display:inline-flex;flex-shrink:0;transition:transform var(--dur-2) var(--ease-spring)}.nav-link:hover .nav-link-icon{transform:scale(1.12)}.nav-link:active .nav-link-icon{transform:scale(.94)}.nav-link svg{color:var(--sidebar-muted);transition:color var(--transition)}.nav-link:hover svg{color:var(--sidebar-foreground)}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-fg);font-weight:600}.nav-link.active svg{color:var(--sidebar-accent)}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;width:3px;height:18px;margin-top:-9px;border-radius:0 var(--radius-full) var(--radius-full) 0;background:var(--sidebar-accent)}.nav-link-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar-footer{display:flex;align-items:center;gap:.4rem;padding:var(--space-3);border-top:1px solid var(--sidebar-border)}.sidebar-user{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.sidebar-user-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--sidebar-surface);border:1px solid var(--sidebar-surface-border);color:var(--sidebar-foreground);font-size:var(--text-xs);font-weight:700;flex-shrink:0}.sidebar-user-name{font-size:var(--text-sm);font-weight:600;color:var(--sidebar-active-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar{position:sticky;top:0;height:calc(var(--topbar-height) + var(--safe-top));padding-top:var(--safe-top);padding-left:calc(var(--space-5) + var(--safe-left));padding-right:calc(var(--space-5) + var(--safe-right));display:flex;align-items:center;gap:var(--space-3);background:rgba(var(--background-rgb),.88);background:color-mix(in srgb,var(--background) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:var(--z-topbar)}.topbar-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-hamburger{display:none}.app-main{margin-left:var(--sidebar-current);margin-left:calc(var(--sidebar-current) + var(--safe-left));display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;min-width:0}[data-motion=on] .app-main{transition:margin-left var(--dur-3) var(--ease-standard)}.app-content{width:100%;max-width:1160px;margin:0 auto;padding:var(--space-6) calc(var(--space-5) + var(--safe-right)) calc(var(--space-10) + var(--safe-bottom)) var(--space-5);flex:1}.sidebar-overlay{display:none}@media (max-width: 900px){.sidebar{transform:translate(-100%);width:min(calc(var(--sidebar-width) + var(--safe-left)),84vw)}.sidebar-rail-toggle{display:none}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-lg)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:calc(var(--z-sidebar) - 1);animation:overlay-in .14s ease;border:0;padding:0}.app-main{margin-left:0}.app-content{padding-left:calc(var(--space-5) + var(--safe-left))}.topbar-hamburger{display:inline-flex}}@media (max-width: 560px){.topbar{padding-left:calc(var(--space-4) + var(--safe-left));padding-right:calc(var(--space-4) + var(--safe-right))}.app-content{padding-top:var(--space-5);padding-left:calc(var(--space-4) + var(--safe-left));padding-right:calc(var(--space-4) + var(--safe-right))}}@media (min-width: 901px){.app-shell--rail{--sidebar-current: var(--sidebar-width-rail)}.sidebar--rail .sidebar-brand,.sidebar--rail .sidebar-brand--compact{flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2) var(--space-3)}.sidebar--rail .sidebar-brand-name{display:none}.sidebar--rail .sidebar-rail-toggle{margin-left:0}.sidebar--rail .sidebar-brand-logo{width:40px;height:40px}.sidebar--rail .sidebar-brand--compact .sidebar-brand-logo{width:30px;height:30px}.sidebar--rail .band-identity{justify-content:center;padding:var(--space-3) var(--space-2)}.sidebar--rail .band-identity-logo{width:44px;height:44px}.sidebar--rail .band-identity-logo--placeholder{font-size:1.5rem}.sidebar--rail .band-name{display:none}.sidebar--rail .band-switcher-trigger{justify-content:center;padding:.5rem}.sidebar--rail .band-switch-label{display:none}.sidebar--rail .band-switcher-trigger svg{margin-left:0}.sidebar--rail .band-switcher .dropdown-menu{left:calc(100% - var(--space-2));right:auto;width:240px}.sidebar--rail .sidebar-nav{padding-inline:var(--space-2)}.sidebar--rail .nav-group-label{height:1px;margin:var(--space-3) .5rem var(--space-2);padding:0;overflow:hidden;text-indent:-999px;background:var(--sidebar-border)}.sidebar--rail .nav-link{justify-content:center;padding:.6rem;margin-bottom:var(--space-1)}.sidebar--rail .nav-link-label{display:none}@media (pointer: coarse){.sidebar--rail .nav-link{min-height:44px}}.sidebar--rail .nav-link.active:before{height:22px;margin-top:-11px}.sidebar--rail .sidebar-footer{flex-direction:column;gap:var(--space-1);padding:var(--space-2)}.sidebar--rail .sidebar-user{flex:none}.sidebar--rail .sidebar-user-name{display:none}}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:calc(var(--space-4) + var(--safe-top)) calc(var(--space-4) + var(--safe-right)) calc(var(--space-4) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));background:radial-gradient(ellipse 70% 50% at 50% -10%,rgba(var(--primary-rgb),.09),transparent),var(--background);background:radial-gradient(ellipse 70% 50% at 50% -10%,color-mix(in srgb,var(--primary) 9%,transparent),transparent),var(--background)}.login-card{width:min(400px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:grid;gap:var(--space-4);padding:var(--space-8) var(--space-6);animation:login-card-in var(--dur-4) var(--ease-out)}@keyframes login-card-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-brand{display:flex;align-items:center;gap:.6rem;justify-content:center}.login-brand h1{font-size:var(--text-xl)}.login-subtitle{text-align:center;color:var(--muted-foreground);font-size:var(--text-sm);margin-top:calc(-1 * var(--space-2))}.login-hint{text-align:center;color:var(--muted-foreground)}.login-legal-link{text-align:center;font-size:var(--text-xs);color:var(--muted-foreground)}.login-legal-link:hover{color:var(--primary)}.legal-page{min-height:100vh;min-height:100dvh;display:grid;place-items:start center;padding:calc(var(--space-8) + var(--safe-top)) calc(var(--space-4) + var(--safe-right)) calc(var(--space-8) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));background:var(--background)}.legal-card{width:min(760px,100%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-10) var(--space-8)}@media (max-width: 560px){.legal-card{padding:var(--space-6) var(--space-4)}}.legal-header{margin-bottom:var(--space-6);border-bottom:1px solid var(--border);padding-bottom:var(--space-4)}.legal-header h1{font-size:var(--text-xl);margin:0 0 .3rem}.legal-header p{font-size:var(--text-xs);color:var(--muted-foreground);margin:0}.legal-card section{margin-bottom:var(--space-6)}.legal-card h2{font-size:var(--text-lg);margin:0 0 .5rem}.legal-card h3{font-size:var(--text-md);margin:.8rem 0 .35rem}.legal-card p{font-size:var(--text-sm);line-height:1.7;margin:0 0 .5rem;color:var(--foreground)}.legal-card ul{margin:.3rem 0 .7rem 1.2rem;padding:0}.legal-card li{font-size:var(--text-sm);line-height:1.7;margin-bottom:.3rem}.legal-card code{font-size:var(--text-xs);background:var(--muted);padding:.1rem .35rem;border-radius:var(--radius-sm)}.legal-footer{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border);text-align:center}.legal-footer a{font-size:var(--text-sm)}.modal.setlist-kanban-modal{width:min(1080px,100%)}.kanban-progress{display:grid;gap:.35rem;margin-bottom:var(--space-3)}.kanban-progress-bar{height:6px;border-radius:var(--radius-full);background:var(--muted);border:1px solid var(--border);overflow:hidden}.kanban-progress-bar span{display:block;height:100%;background:var(--tone-tonic);transition:width var(--dur-3) var(--ease-out)}.kanban-progress small{font-size:var(--text-xs);color:var(--muted-foreground)}.kanban-hint{font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:var(--space-3)}.kanban-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-items:start}.kanban-column{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);min-height:220px}.kanban-column-header{display:flex;align-items:center;gap:.45rem;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin-bottom:var(--space-3);padding:0 .15rem}.kanban-column-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0;background:var(--muted-foreground)}.kanban-column[data-progress=in_progress] .kanban-column-dot{background:var(--tone-subdominant)}.kanban-column[data-progress=ready] .kanban-column-dot{background:var(--tone-tonic)}.kanban-column-count{margin-left:auto;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);padding:.05rem .5rem}.kanban-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);margin-bottom:var(--space-2);padding:.6rem .85rem .7rem;touch-action:none;user-select:none;cursor:grab;transition:box-shadow var(--transition),border-color var(--transition),transform var(--dur-1) var(--ease-standard)}.kanban-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card--charging{animation:kanban-card-charge 1s linear forwards}@keyframes kanban-card-charge{0%{box-shadow:0 0 rgba(var(--primary-rgb),0);box-shadow:0 0 color-mix(in srgb,var(--primary) 0%,transparent)}to{box-shadow:0 0 16px 5px rgba(var(--primary-rgb),.8);box-shadow:0 0 16px 5px color-mix(in srgb,var(--primary) 80%,transparent)}}.kanban-card:active{cursor:grabbing}.kanban-card--dragging{z-index:var(--z-dropdown, 40);cursor:grabbing;box-shadow:var(--shadow-lg);border-color:var(--primary);opacity:.9;pointer-events:none;transition:none}.kanban-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);margin-bottom:.1rem}.kanban-card-handle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-.2rem 0 0 -.3rem;border-radius:var(--radius-sm);color:var(--muted-foreground);cursor:grab;flex-shrink:0;touch-action:none}.kanban-card-handle:hover{background:var(--muted);color:var(--foreground)}.kanban-card-handle:active{cursor:grabbing}.kanban-card-open{cursor:pointer;margin:0 -.35rem;padding:.15rem .35rem .25rem;border-radius:var(--radius-sm);transition:background var(--transition),box-shadow var(--transition)}.kanban-card-open:hover,.kanban-card-open:focus-visible{background:var(--primary-soft);box-shadow:inset 2px 0 0 var(--primary);outline:none}.kanban-card-open:hover h4,.kanban-card-open:focus-visible h4{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.kanban-card h4{font-size:var(--text-sm);font-weight:600;font-family:var(--font-sans)}.kanban-card p{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:.2rem}.kanban-card-meta{font-variant-numeric:tabular-nums}.kanban-card-note{margin-top:.5rem;padding:.35rem .55rem;border-left:2px solid var(--tone-subdominant);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--muted);color:var(--foreground);white-space:pre-wrap}.kanban-card-note-editor{display:grid;gap:.4rem;margin-top:.5rem;touch-action:auto;user-select:text}.kanban-card-note-editor textarea{resize:vertical;min-height:64px;font-family:inherit;font-size:var(--text-xs);line-height:1.5}.kanban-card-note-actions{display:flex;justify-content:flex-end;gap:.35rem}.kanban-card-actions{display:flex;gap:.15rem;flex-shrink:0;opacity:0;transition:opacity var(--transition)}.kanban-card:hover .kanban-card-actions,.kanban-card:focus-within .kanban-card-actions{opacity:1}.kanban-card-actions .icon-btn{width:24px;height:24px}.kanban-card-actions .icon-btn--active{opacity:1;color:var(--primary)}.kanban-card-status{display:block;margin-top:.5rem;font-size:var(--text-xs);padding:.3rem .4rem}@media not (pointer: coarse){.kanban-card-status:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0;padding:0;border:0}}@media (pointer: coarse){.kanban-card-actions{opacity:1}.kanban-card-actions .icon-btn,.kanban-card-handle{width:44px;height:44px}}.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:.55rem}.kanban-card-author{font-size:var(--text-xs);color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media (max-width: 900px){.kanban-grid{grid-template-columns:1fr}.kanban-column{min-height:auto}}@media (max-width: 560px){.kanban-column{padding:var(--space-2)}}.catalog-sections{display:grid;gap:var(--space-4);margin-bottom:var(--space-4)}.catalog-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5);display:grid;gap:var(--space-3)}.catalog-panel-header h3{font-size:var(--text-lg)}.catalog-panel-header p{margin:.2rem 0 0;color:var(--muted-foreground);font-size:var(--text-sm)}.catalog-success-banner{display:flex;align-items:center;gap:.5rem;background:var(--success-soft);color:var(--success);border:1px solid var(--border-strong);border:1px solid color-mix(in srgb,var(--success) 35%,var(--border));border-radius:var(--radius-md);padding:.55rem .8rem;font-size:var(--text-sm);font-weight:600}.song-search-box{position:relative;--search-icon-size: 15px;--search-icon-inset: .7rem;--search-icon-gap: .6rem}.song-search-box .song-search-icon{position:absolute;left:var(--search-icon-inset);top:calc(1px + .5rem + .75em);transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}.song-search-box input{padding-left:calc(var(--search-icon-inset) + var(--search-icon-size) + var(--search-icon-gap))}.song-search-box small{display:block;margin-top:.35rem;color:var(--muted-foreground);font-size:var(--text-xs)}.modal--catalog{width:min(880px,100%)}.catalog-modal-heading{display:flex;align-items:center;gap:.7rem;min-width:0}.catalog-modal-heading-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-sm)}.catalog-modal-heading-copy{display:grid;gap:.1rem;min-width:0}.catalog-modal-heading-copy small{color:var(--muted-foreground);font-size:var(--text-xs)}.catalog-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}.catalog-modal-footer-hint{color:var(--muted-foreground);font-size:var(--text-xs);min-width:0}.catalog-search-hero{position:relative;display:flex;align-items:center;gap:.6rem;padding:0 .9rem;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--muted);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}.catalog-search-hero:focus-within{background:var(--card);border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.18);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.catalog-search-hero-icon{flex-shrink:0;color:var(--muted-foreground)}.catalog-search-hero:focus-within .catalog-search-hero-icon{color:var(--primary)}.catalog-search-hero-input{flex:1;min-width:0;border:0;background:transparent;padding:.85rem 0;font-size:var(--text-lg);font-family:var(--font-display);font-weight:600}.catalog-search-hero-input:focus,.catalog-search-hero-input:focus-visible{outline:none;border:0;box-shadow:none}.catalog-search-hero-trailing{display:inline-flex;flex-shrink:0;color:var(--muted-foreground)}.catalog-search-hero-clear{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;border:0;border-radius:var(--radius-full);background:var(--secondary);color:var(--muted-foreground);cursor:pointer;transition:background var(--transition),color var(--transition)}.catalog-search-hero-clear:hover{background:var(--border-strong);color:var(--foreground)}@media (pointer: coarse){.catalog-search-hero-clear{width:44px;height:44px}}.catalog-search-idle{display:grid;justify-items:center;gap:.25rem;text-align:center;margin-top:var(--space-5);padding:var(--space-5) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--muted-foreground);font-size:var(--text-sm)}.catalog-search-idle strong{font-family:var(--font-display);color:var(--foreground)}.catalog-search-idle span:last-child{max-width:42ch}.catalog-search-idle-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:.35rem;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary-soft-foreground)}.catalog-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-2);margin-top:var(--space-4)}.catalog-result-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);padding:.8rem .9rem;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition),transform var(--dur-1) var(--ease-standard)}.catalog-result-card:hover,.catalog-result-card:focus-visible{transform:translateY(-2px);border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--shadow-md)}.catalog-result-card:active{transform:translateY(1px);transition-duration:60ms}.catalog-result-card--busy{pointer-events:none;opacity:.5}.catalog-result-art{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border-radius:var(--radius-md);background:var(--muted);color:var(--muted-foreground);font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);transition:background var(--transition),color var(--transition)}.catalog-result-card:hover .catalog-result-art,.catalog-result-card:focus-visible .catalog-result-art{background:var(--primary);color:var(--primary-foreground)}.catalog-result-copy{display:grid;gap:.1rem;min-width:0}.catalog-result-copy strong{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-result-artist{color:var(--muted-foreground);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.4rem}.catalog-result-action{grid-column:2;display:inline-flex;align-items:center;gap:.35rem;margin-top:.5rem;color:var(--muted-foreground);font-size:var(--text-xs);font-weight:700}.catalog-result-card:hover .catalog-result-action,.catalog-result-card:focus-visible .catalog-result-action{color:var(--primary-soft-foreground)}.song-source-pill{display:inline-flex;align-items:center;padding:.2rem .5rem;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;border-radius:var(--radius-full)}.song-source-pill--local{background:var(--foreground);color:var(--background)}.song-source-pill--external{background:var(--primary-soft);color:var(--primary-soft-foreground)}.song-modal-nav{display:flex;align-items:center;gap:.4rem}.song-modal-counter{font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em;font-weight:700;min-width:56px;text-align:center}.song-modal-header{border-bottom:1px solid var(--border);padding-bottom:var(--space-4);margin-bottom:var(--space-5)}.song-modal-title{font-size:var(--text-2xl);letter-spacing:-.02em;margin:0}.song-modal-artist{margin:.2rem 0 0;color:var(--muted-foreground);font-size:var(--text-md)}.song-modal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:var(--space-3)}.song-transpose{display:flex;align-items:center;gap:.5rem;margin-top:var(--space-3);font-size:var(--text-sm);color:var(--muted-foreground)}.song-transpose strong{color:var(--foreground);min-width:2.2rem;text-align:center;font-size:var(--text-md)}.song-transpose .icon-btn{border:1px solid var(--border-strong)}.song-meta-edit{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border)}.song-meta-edit label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.song-meta-edit input{width:110px}.song-meta-edit-title{flex:1 1 100%}.song-meta-edit-title input{width:100%}.song-meta-save-status{font-size:var(--text-xs);color:var(--muted-foreground);align-self:center}.song-duplicate{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border)}.song-duplicate strong{font-size:var(--text-sm)}.song-duplicate p{margin-top:.2rem;font-size:var(--text-xs);color:var(--muted-foreground);max-width:46ch}.song-duplicate-status{flex-basis:100%;font-size:var(--text-xs);color:var(--muted-foreground)}.song-modal-comments{border-top:1px solid var(--border);padding-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.song-modal-comments h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground)}.song-modal-no-comments{color:var(--muted-foreground);font-style:italic}.comment-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem .95rem;display:flex;flex-direction:column;gap:.35rem;background:var(--card)}.comment-item--important{border-left:3px solid var(--destructive);background:var(--destructive-soft)}.comment-meta{display:flex;align-items:center;gap:.55rem}.comment-badge{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.18rem .5rem;border-radius:var(--radius-full)}.comment-badge--normal{background:var(--muted);color:var(--muted-foreground)}.comment-badge--important{background:var(--destructive);color:var(--destructive-foreground)}.comment-author{font-size:var(--text-xs);color:var(--muted-foreground)}.comment-body{font-size:var(--text-sm);line-height:1.55}.comment-delete{align-self:flex-end}.comment-delete-confirm{display:inline-flex;gap:var(--space-2)}.comment-status{color:var(--destructive);font-size:var(--text-xs);font-weight:600}.comment-form{display:grid;gap:var(--space-2);margin-top:var(--space-1)}.comment-level-toggle{display:flex;gap:var(--space-5);font-size:var(--text-sm)}.comment-level-toggle label{display:flex;align-items:center;gap:.35rem;cursor:pointer}.comment-level-toggle input[type=radio]{width:auto;accent-color:var(--primary)}.comment-form .btn{justify-self:start}.song-modal-danger-zone{border-top:1px solid var(--border);padding-top:var(--space-4)}.song-modal-danger-confirm{display:grid;gap:var(--space-2);border:1px solid var(--border-strong);border:1px solid color-mix(in srgb,var(--destructive) 35%,var(--border));background:var(--destructive-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.song-modal-danger-confirm p{font-size:var(--text-sm);color:var(--foreground);line-height:1.5}.song-modal-danger-status{display:block;margin-top:var(--space-2);color:var(--muted-foreground);font-size:var(--text-xs)}.modal--lyrics .modal-body{display:flex;flex-direction:column;gap:var(--space-3)}.modal--lyrics-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right)}.lyrics-reader-header-block{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0}.lyrics-reader-header-body{display:flex;flex-direction:column}.lyrics-reader-header-body--fullscreen{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.lyrics-reader-header-body--fullscreen .lyrics-reader-header-info{flex-shrink:0}.lyrics-reader-header-body--fullscreen .lyrics-reader-controls{margin:0}.lyrics-reader-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.4rem}.lyrics-reader-artist{color:var(--muted-foreground);font-size:var(--text-sm)}.lyrics-reader-controls{--reader-control-h: 32px;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:flex-end}.lyrics-reader-controls .btn{min-height:var(--reader-control-h)}.lyrics-reader-controls label{display:flex;flex-direction:column;justify-content:flex-end;gap:.25rem;min-width:210px;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.lyrics-reader-controls input[type=range]{width:210px;height:var(--reader-control-h);padding:0;border:0;accent-color:var(--primary)}.lyrics-speed-control{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:.25rem .4rem}.lyrics-speed-label{grid-column:1 / -1;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.lyrics-speed-input{width:4.25rem;height:var(--reader-control-h);font-size:16px;padding:.2rem .35rem;text-align:center}.lyrics-speed-unit{font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.lyrics-reader-line{display:inline-flex;align-items:center;height:var(--reader-control-h, auto);color:var(--muted-foreground);font-size:var(--text-xs);font-weight:600}.lyrics-reader-single{min-height:0;flex:1;display:flex}.lyrics-reader-details{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-2) 0;width:100%;overflow-y:auto}.lyrics-reader-details .song-meta-edit,.lyrics-reader-details .song-transpose{margin-top:0;padding-top:0;border-top:0}.lyrics-reader-details .song-modal-comments{border-top:1px solid var(--border);padding-top:var(--space-4)}.lyrics-reader-view,.lyrics-reader-edit{display:flex;flex-direction:column;min-height:40vh;width:100%}.lyrics-scroll-container{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);padding:var(--space-5);overflow-y:auto;min-height:0;flex:1}.lyrics-line{margin:0 0 .2rem;white-space:pre-wrap;line-height:1.6;max-width:68ch;font-size:calc(1rem * var(--lyrics-font-scale, 1))}.lyrics-font-size-control{display:flex;align-items:center;justify-content:center;gap:.35rem;height:var(--reader-control-h)}.lyrics-font-size-control .icon-btn{font-size:var(--text-sm);font-weight:700}.lyrics-font-size-value{min-width:3ch;text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.lyrics-reader-edit textarea{resize:vertical;min-height:220px;flex:1}.lyrics-reader-edit-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-2)}.lyrics-reader-edit-footer small{color:var(--muted-foreground)}.lyrics-line mark,.lyrics-format-btn mark{background:rgba(250,204,21,.35);color:inherit;border-radius:3px;padding:0 .15em}.lyrics-editor{position:relative;flex:1;min-height:220px;max-height:55vh;overflow-y:auto;border:1px solid var(--input);border-radius:var(--radius-sm);background:var(--card);color:var(--foreground);padding:.5rem .7rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:break-word;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.lyrics-editor:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.lyrics-editor.is-empty:before{content:attr(data-placeholder);position:absolute;top:.5rem;left:.7rem;color:var(--muted-foreground);pointer-events:none}@media (pointer: coarse){.lyrics-editor{font-size:16px}}.lyrics-format-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-bottom:var(--space-2)}.lyrics-format-btn{font-size:var(--text-sm);color:var(--foreground)}.lyrics-format-btn.is-active{background:var(--primary-soft);color:var(--primary-soft-foreground)}.lyrics-format-sep{width:1px;align-self:stretch;min-height:20px;background:var(--border);margin:0 var(--space-1)}.lyrics-format-colors{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.lyrics-format-swatch{width:24px;height:24px;padding:0;border-radius:50%;border:1px solid var(--border-strong);cursor:pointer;flex-shrink:0;transition:transform var(--dur-1) var(--ease-standard)}.lyrics-format-swatch:hover{transform:scale(1.12)}.lyrics-format-swatch:active{transform:scale(.9)}.lyrics-format-swatch--none{background:var(--card);position:relative;overflow:hidden}.lyrics-format-swatch--none:after{content:"";position:absolute;top:50%;left:-20%;width:140%;height:1px;background:var(--destructive);transform:rotate(-45deg)}@media (pointer: coarse){.lyrics-format-swatch{width:32px;height:32px}}.song-history-list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.song-history-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:var(--text-sm)}.song-history-list li strong{font-weight:700}.song-history-list li small{flex-shrink:0;color:var(--muted-foreground);font-size:var(--text-xs)}@media (max-width: 640px){.catalog-results{grid-template-columns:1fr}.catalog-search-hero-input{font-size:var(--text-md)}.catalog-modal-footer-hint{display:none}}.setlist-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--space-4);align-items:start}.setlist-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-2);display:grid;gap:2px;align-content:start}.setlist-list button{text-align:left;background:transparent;color:var(--muted-foreground);border:0;border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--transition),color var(--transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setlist-list button:hover{background:var(--muted);color:var(--foreground)}.setlist-list button.active{background:var(--primary-soft);color:var(--primary-soft-foreground);font-weight:600}.setlist-add-bar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5);display:grid;gap:var(--space-3);margin-bottom:var(--space-4)}.setlist-add-status{color:var(--muted-foreground);font-size:var(--text-xs)}.song-autocomplete{position:relative}.song-autocomplete-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-dropdown);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:320px;overflow-y:auto;padding:.3rem;display:grid;gap:2px}.song-autocomplete-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;text-align:left;background:transparent;border:0;border-radius:var(--radius-sm);padding:.5rem .6rem;cursor:pointer;transition:background var(--transition)}.song-autocomplete-item:hover,.song-autocomplete-item--active{background:var(--muted)}.song-autocomplete-item-copy{display:grid;gap:.1rem;min-width:0}.song-autocomplete-item-copy strong{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-autocomplete-item-copy span{color:var(--muted-foreground);font-size:var(--text-xs)}.song-autocomplete-item-meta{display:flex;gap:.35rem;flex-shrink:0}.song-autocomplete-empty{padding:.6rem .7rem;color:var(--muted-foreground);font-size:var(--text-sm)}.setlist-actions-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-4) 0 var(--space-2);flex-wrap:wrap}.setlist-actions-title{font-weight:700;font-family:var(--font-display);display:inline-flex;align-items:center;gap:.3rem;min-width:0}.setlist-add-status--error{color:var(--destructive)}.setlist-action-trigger,.spotify-export-trigger{display:inline-flex;align-items:center;gap:.45rem;border-radius:var(--radius-full);padding:.5rem 1.1rem;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.setlist-action-trigger{background:var(--card);color:var(--foreground);border:1px solid var(--border)}.setlist-action-trigger:hover{background:var(--muted);border-color:var(--border-strong)}.setlist-action-trigger:active{transform:translateY(1px)}.spotify-export-trigger{background:#1db954;color:#fff;border:1px solid transparent}.spotify-export-trigger:hover{background:#1ed760}.spotify-export-trigger:active{transform:translateY(1px)}.setlist-action-trigger--primary{position:relative;flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;width:116px;height:116px;padding:var(--space-3);background:var(--primary);color:var(--primary-foreground);border-color:transparent;border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:1.2;text-align:center;box-shadow:var(--shadow-md);transition:background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.setlist-action-trigger--primary:hover{background:var(--primary-hover);border-color:transparent;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.setlist-action-trigger--primary:active{transform:translateY(1px);box-shadow:var(--shadow-sm)}.setlist-action-trigger--primary:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;border:2px solid var(--primary);opacity:0;pointer-events:none;animation:setlist-add-attention 1.7s var(--ease-out) 3}@keyframes setlist-add-attention{0%{opacity:.5;transform:scale(1)}70%,to{opacity:0;transform:scale(1.09)}}.song-table{margin-top:var(--space-2);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.song-table:empty{display:none}.song-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);padding:.65rem .9rem;cursor:pointer;transition:background var(--transition)}.song-row:last-child{border-bottom:0}.song-row:hover{background:var(--muted)}.song-row--important{border-left:3px solid var(--destructive);padding-left:calc(.9rem - 3px)}.song-row-label{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.song-row-copy{display:grid;gap:.1rem;min-width:0}.song-row-copy strong{font-size:var(--text-sm);font-weight:600}.song-row-meta{color:var(--muted-foreground);font-size:var(--text-xs)}.song-important-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);background:var(--destructive);flex-shrink:0}.song-row-actions{display:flex;gap:.2rem}.spotify-modal-sub{color:var(--muted-foreground);font-weight:600;margin-bottom:var(--space-4)}.spotify-modal-status{color:var(--muted-foreground);margin-bottom:var(--space-3)}.spotify-waiting{color:#1db954;font-weight:600}.spotify-connect,.spotify-connected{display:flex;flex-direction:column;gap:var(--space-2)}.spotify-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-full);padding:.6rem 1.1rem;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition),opacity var(--transition)}.spotify-btn:hover{text-decoration:none}.spotify-btn--primary{background:#1db954;color:#fff}.spotify-btn--primary:hover{background:#1ed760}.spotify-btn--secondary{background:var(--secondary);color:var(--secondary-foreground);border-color:var(--border-strong)}.spotify-btn--secondary:hover{background:var(--secondary-hover)}.spotify-btn--ghost{background:none;color:var(--muted-foreground);border-color:var(--border)}.spotify-btn--ghost:hover{background:var(--muted)}.spotify-btn:disabled{opacity:.55;cursor:default}.spotify-connected-line{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}.spotify-dot{width:.6rem;height:.6rem;border-radius:var(--radius-full);background:#1db954;display:inline-block}.spotify-qr{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.spotify-qr-frame{background:#fff;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border)}.spotify-qr-help{text-align:center;color:var(--muted-foreground);font-size:var(--text-sm)}.spotify-result{display:flex;flex-direction:column;gap:var(--space-2)}.spotify-result-line{color:var(--muted-foreground);font-size:var(--text-sm)}.spotify-skipped{margin:0;padding-left:1.1rem;color:var(--muted-foreground);font-size:var(--text-xs);max-height:140px;overflow-y:auto}.spotify-error{margin-top:var(--space-3);color:var(--destructive);font-size:var(--text-sm)}.spotify-import-paste{display:flex;flex-direction:column;gap:.4rem;padding:var(--space-3) 0;border-top:1px dashed var(--border)}.spotify-import-label{font-size:var(--text-xs);font-weight:700;color:var(--muted-foreground)}.spotify-import-paste input{width:100%;font-size:16px}.spotify-import-hint{color:var(--muted-foreground);font-size:var(--text-xs)}.spotify-import-subhead{margin-top:var(--space-2);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground)}.spotify-playlist-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;max-height:260px;overflow-y:auto}.spotify-playlist-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);padding:.55rem .75rem;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.spotify-playlist-item:hover:not(:disabled),.spotify-playlist-item:focus-visible:not(:disabled){border-color:#1db954;background:var(--muted)}.spotify-playlist-item:disabled{opacity:.6;cursor:default}.spotify-playlist-name{font-weight:600;font-size:var(--text-sm);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-playlist-meta{flex-shrink:0;font-size:var(--text-xs);color:var(--muted-foreground)}.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}@media (max-width: 900px){.setlist-layout{grid-template-columns:1fr}}.archived-setlist-list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.archived-setlist-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .8rem}.archived-setlist-info{display:grid;gap:.1rem;min-width:0}.archived-setlist-info small{color:var(--muted-foreground);font-size:var(--text-xs)}.setlist-list-catalog{display:flex;align-items:center;gap:.45rem;padding-bottom:.55rem!important;margin-bottom:.35rem;border-bottom:1px solid var(--border)!important;border-radius:var(--radius-sm) var(--radius-sm) 0 0!important}.setlist-list-catalog svg{flex-shrink:0}.setlist-list-count{margin-left:auto;flex-shrink:0;font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted-foreground);background:var(--muted);border-radius:var(--radius-full);padding:.05rem .45rem}.setlist-list button.active .setlist-list-count{background:var(--card);color:var(--primary-soft-foreground)}.setlist-list button{display:flex;align-items:center;gap:.45rem}.setlist-actions-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.song-progress-pill{flex-shrink:0;align-self:center;font-size:var(--text-xs);font-weight:600;white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius-full);padding:.1rem .5rem;color:var(--muted-foreground);background:var(--muted)}.song-progress-pill--in_progress{color:var(--tone-subdominant);border-color:color-mix(in srgb,var(--tone-subdominant) 45%,transparent);background:color-mix(in srgb,var(--tone-subdominant) 12%,transparent)}.song-progress-pill--ready{color:var(--tone-tonic);border-color:color-mix(in srgb,var(--tone-tonic) 45%,transparent);background:color-mix(in srgb,var(--tone-tonic) 12%,transparent)}.song-row-actions{align-items:center}.song-autocomplete-empty{display:grid;gap:.5rem;justify-items:start}.song-autocomplete-add{display:inline-flex;align-items:center;gap:.4rem;max-width:100%;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--card);color:var(--foreground);font-size:var(--text-xs);font-weight:600;padding:.35rem .75rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;transition:background var(--transition),border-color var(--transition)}.song-autocomplete-add:hover{background:var(--muted);border-color:var(--border-strong)}.song-autocomplete-add svg{flex-shrink:0}.add-song-status{display:block;margin-top:.35rem;color:var(--muted-foreground);font-size:var(--text-xs)}@media (max-width: 640px){.setlist-actions-buttons{width:100%}.setlist-actions-buttons button{flex:1 1 auto;justify-content:center}.setlist-actions-buttons .setlist-action-trigger--primary{flex:0 0 auto}}@media (max-width: 720px){.song-row .song-link--cifraclub,.song-row .song-link--ultimateguitar{display:none}}.setlist-layout-modal{width:min(1000px,96vw)}.setlist-layout-form{display:grid;gap:var(--space-4);margin-bottom:var(--space-4)}.setlist-layout-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.setlist-layout-template-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-2)}.setlist-layout-template-card{display:grid;gap:.25rem;text-align:left;padding:var(--space-3);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:var(--card);cursor:pointer}.setlist-layout-template-card strong{font-size:var(--text-sm)}.setlist-layout-template-card span{font-size:var(--text-xs);color:var(--muted-foreground)}.setlist-layout-template-card--active{border-color:var(--primary);background:var(--primary-soft)}.setlist-layout-chip-group{display:flex;flex-wrap:wrap;gap:.4rem}.setlist-layout-chip{padding:.35rem .75rem;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--card);font-size:var(--text-xs);font-weight:600;cursor:pointer}.setlist-layout-chip--active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-soft-foreground)}.setlist-layout-checkbox{display:flex;align-items:center;gap:.4rem;font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.setlist-layout-toggle-row{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:flex-start;padding-top:.35rem}.setlist-layout-watermark-group{flex-basis:100%}.setlist-layout-text-toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);align-items:start}.setlist-layout-subgroup-label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground);margin-bottom:.35rem}.setlist-layout-letter-spacing{display:flex;align-items:center;gap:.6rem}.setlist-layout-letter-spacing input[type=range]{flex:1;min-width:90px}.setlist-layout-letter-spacing input[type=number]{width:4.2rem;padding:.3rem .4rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--foreground);font-size:var(--text-sm)}.setlist-layout-letter-spacing-unit{font-size:var(--text-xs);color:var(--muted-foreground)}.setlist-layout-segue-list{list-style:none;margin:0;padding:var(--space-2) var(--space-3);display:grid;gap:.2rem;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.setlist-layout-segue-row{display:grid;grid-template-columns:minmax(90px,1.4fr) auto minmax(120px,1.1fr);align-items:center;gap:var(--space-3);padding:.3rem 0;border-bottom:1px solid var(--border)}.setlist-layout-segue-row:last-child{border-bottom:0}.setlist-layout-segue-title{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setlist-layout-segue-link{justify-self:center}.setlist-layout-segue-note{width:100%;padding:.3rem .55rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);background:var(--card);color:var(--foreground)}.setlist-layout-preview-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.4rem;font-size:var(--text-sm)}.setlist-layout-preview-header span{color:var(--muted-foreground);font-size:var(--text-xs)}.setlist-print-preview-frame{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);padding:var(--space-4);display:flex;justify-content:center}.setlist-print-preview-frame .setlist-sheet{width:794px;min-height:1123px;padding:57px;font-size:16px;zoom:.6;box-shadow:var(--shadow-lg)}.setlist-sheet{--ink: #1a1a1a;--ink-soft: #4d4d4d;--ink-muted: #7a7a7a;--ink-faint: #b3b3b3;position:relative;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;background:#fff;color:var(--ink);font-family:var(--font-sans);-webkit-print-color-adjust:exact;print-color-adjust:exact}.setlist-sheet-header{position:relative;z-index:1;display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--ink)}.setlist-sheet-logo{max-height:56px;max-width:140px;object-fit:contain}.setlist-sheet-band-name{font-family:var(--font-band-display);font-size:28px;letter-spacing:.02em;white-space:nowrap}.setlist-sheet-heading{width:100%}.setlist-sheet-heading h2{margin:0;font-family:var(--font-display);font-size:calc(16px * var(--sheet-font-scale, 1))}.setlist-sheet-date{position:absolute;z-index:2;right:28px;font-size:calc(11px * var(--sheet-font-scale, 1));font-weight:600;color:var(--ink-muted)}.setlist-sheet-date--header{top:24px}.setlist-sheet-date--footer{bottom:24px}.setlist-sheet-date--italic{font-style:italic}.setlist-sheet-watermark{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;z-index:0;width:fit-content;height:fit-content;opacity:.14;object-fit:contain;pointer-events:none}.setlist-sheet-watermark--small{max-width:65%;max-height:65%}.setlist-sheet-watermark--medium{max-width:90%;max-height:90%}.setlist-sheet-watermark--large{max-width:130%;max-height:130%}.setlist-sheet-watermark--text{font-family:var(--font-band-display);font-size:90px;line-height:1;color:var(--ink);white-space:normal;text-align:center}.setlist-sheet-watermark--text.setlist-sheet-watermark--medium{font-size:130px}.setlist-sheet-watermark--text.setlist-sheet-watermark--large{font-size:180px}.setlist-sheet-list-wrap{position:relative;z-index:1;flex:1;min-height:0;display:flex;flex-direction:column}.setlist-sheet--vertical-center .setlist-sheet-list-wrap{justify-content:center}.setlist-sheet-list{list-style:none;margin:0;padding:0;column-gap:24px}.setlist-sheet-row{position:relative;display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:calc(13px * var(--sheet-font-scale, 1));border-bottom:1px dotted var(--ink-faint);break-inside:avoid}.setlist-sheet-row-index{font-weight:700;min-width:1.6em}.setlist-sheet-row-title em{font-style:normal;color:var(--ink-soft);font-size:.85em}.setlist-sheet-row-tag{flex-shrink:0;display:inline-flex;align-items:center;padding:.1em .5em;border-radius:999px;background:var(--ink-muted);color:#fff;font-size:.44em;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.setlist-sheet-row-badge{flex-shrink:0;min-width:1.5em;height:1.5em;padding:0 .3em;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--ink);color:#fff;font-size:.7em;font-weight:700;font-style:normal;line-height:1;text-align:center}.setlist-sheet-row--segue{border-bottom-style:solid;border-bottom-color:var(--ink)}.setlist-sheet-row-segue-mark{position:absolute;left:50%;bottom:-7px;transform:translate(-50%);z-index:2;width:22px;height:7px;border:1.5px solid var(--ink);border-top:none;pointer-events:none}.setlist-sheet--classico .setlist-sheet-header{flex-direction:column;text-align:center;border-bottom-width:1.5px}.setlist-sheet--classico .setlist-sheet-band-name{font-size:34px}.setlist-sheet--selo .setlist-sheet-header{flex-direction:column;justify-content:center;border-bottom:none}.setlist-sheet--selo .setlist-sheet-band-name{font-size:32px}.setlist-sheet--selo .setlist-sheet-heading{text-align:center;width:100%}.setlist-sheet--compacto .setlist-sheet-header{gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom-width:1px}.setlist-sheet--compacto .setlist-sheet-logo{max-height:28px;max-width:80px}.setlist-sheet--compacto .setlist-sheet-band-name{font-size:16px}.setlist-sheet--compacto .setlist-sheet-heading h2{font-size:calc(12px * var(--sheet-font-scale, 1))}.setlist-sheet--compacto .setlist-sheet-row{padding:2px 0;font-size:calc(11px * var(--sheet-font-scale, 1))}.setlist-sheet--frame-simple{border:2px solid var(--ink)}.setlist-sheet--frame-double{border:6px double var(--ink)}.setlist-sheet--frame-ornate{border:3px solid var(--ink)}.setlist-sheet--frame-ornate:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid var(--ink);z-index:3;pointer-events:none}.setlist-sheet--frame-rounded{border:10px solid var(--ink);border-radius:28px}.setlist-print-output{display:none}@media print{body *{visibility:hidden}.setlist-print-output,.setlist-print-output *{visibility:visible}.setlist-print-output{display:block;position:absolute;top:0;left:0;width:100%}.setlist-print-output .setlist-sheet{width:210mm;min-height:297mm;padding:15mm;font-size:12pt;box-shadow:none}@page{size:A4;margin:0}}.bp-status{background:var(--success-soft);color:var(--success);border:1px solid rgba(var(--success-rgb),.3);border:1px solid color-mix(in srgb,var(--success) 30%,transparent);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-4)}.bp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.bp-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color var(--transition),box-shadow var(--transition)}.bp-card--selectable{cursor:pointer}.bp-card--selectable:hover,.bp-card--selectable:focus-visible{border-color:var(--border-strong);box-shadow:var(--shadow-md, var(--shadow-xs));transition:border-color var(--transition),box-shadow var(--transition)}.bp-card:hover{box-shadow:var(--shadow-sm)}.bp-card--active{border-color:var(--primary);border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.bp-card-top{display:flex;align-items:flex-start;gap:var(--space-3)}.bp-card-avatar{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.bp-card-avatar--placeholder{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-soft-foreground);font-family:var(--font-display);font-size:var(--text-lg);font-weight:800}.bp-card-info{min-width:0;flex:1;display:grid;gap:.25rem;justify-items:start}.bp-card-name{font-size:var(--text-lg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.bp-role-badge{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.18rem .5rem;border-radius:var(--radius-full)}.bp-role-badge--owner{background:var(--primary-soft);color:var(--primary-soft-foreground)}.bp-role-badge--member{background:var(--muted);color:var(--muted-foreground)}.bp-card-owner{font-size:var(--text-xs);color:var(--muted-foreground)}.bp-active-badge{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:.2rem .55rem;border-radius:var(--radius-full);background:var(--success-soft);color:var(--success);flex-shrink:0}.bp-card-desc{color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.5}.bp-website-row,.bp-invite-row{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);min-width:0}.bp-website-label,.bp-invite-label{color:var(--muted-foreground);font-size:var(--text-xs);font-weight:600;flex-shrink:0}.bp-website-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-copy-error{display:block;font-size:var(--text-xs);color:var(--destructive)}.bp-invite-code{font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;background:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:.2rem .55rem}.bp-members-toggle{display:flex;align-items:center;gap:.4rem;width:100%;background:none;border:none;padding:0;color:var(--muted-foreground);font-size:var(--text-xs);font-weight:600;cursor:pointer}.bp-members-toggle:hover{color:var(--foreground)}.bp-members-toggle span{flex:1}.bp-members-list{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.bp-members-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);background:var(--muted);border-radius:var(--radius-sm);padding:.4rem .6rem}.bp-members-item-info{min-width:0;display:grid;gap:.1rem}.bp-members-name{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-members-email{font-size:var(--text-xs);color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-invite-panel{border-top:1px solid var(--border);padding-top:var(--space-2)}.bp-invite-body{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.bp-invite-search{position:relative}.bp-invite-hint{color:var(--muted-foreground);font-size:var(--text-xs)}.bp-invite-section-label{color:var(--muted-foreground);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:var(--space-1)}.bp-invite-item-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.bp-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.bp-confirm-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--destructive)}.band-image-field{display:flex;align-items:center;gap:var(--space-3)}.band-image-preview{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;border:1px solid var(--border)}.band-image-preview--placeholder{display:grid;place-items:center;background:var(--muted);color:var(--muted-foreground)}.band-image-field-controls{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.band-image-field-controls input[type=file]{font-size:var(--text-xs);min-width:0}.ws-page{display:grid;gap:var(--space-4)}.ws-dev-banner{background:var(--primary-soft);color:var(--primary-soft-foreground);border:1px solid var(--border-strong);border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:var(--radius-md);padding:.6rem .9rem;font-size:var(--text-sm);font-weight:600}.ws-api-badges{display:grid;gap:var(--space-2);min-width:0;max-width:100%}.ws-api-badge{display:grid;gap:.15rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.5rem .75rem;min-width:0}.ws-api-label{font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.ws-api-url{font-size:var(--text-xs);word-break:break-all}.ws-loading,.ws-empty{color:var(--muted-foreground);font-size:var(--text-sm)}.ws-locked{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-8) var(--space-4);text-align:center;color:var(--muted-foreground);display:grid;gap:.4rem;justify-items:center}.ws-locked-icon{font-size:1.6rem}.ws-locked-sub{font-size:var(--text-xs);max-width:46ch}.ws-sections{display:grid;gap:var(--space-4)}.accordion-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.accordion-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:transparent;border:none;cursor:pointer;font:inherit;color:inherit;text-align:left}.accordion-title{font-size:var(--text-lg);font-weight:600}.accordion-body{padding:0 var(--space-5) var(--space-5);border-top:1px solid var(--border);padding-top:var(--space-4)}.ws-form{display:grid;gap:var(--space-3)}.ws-form-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2)}.ws-status{font-size:var(--text-xs);font-weight:600;color:var(--muted-foreground)}.albums-manager{display:grid;gap:var(--space-4)}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.album-card{display:grid;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--card);cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition)}.album-card:hover,.album-card:focus-visible{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.album-card-thumb{aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden;background:var(--muted, var(--border))}.album-card-thumb img,.album-card-thumb video{width:100%;height:100%;object-fit:cover}.album-card-thumb .album-media-item-video{height:100%}.album-card-body{display:grid;gap:.2rem}.album-card-body small{color:var(--muted-foreground);font-size:var(--text-xs)}.album-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.album-card-confirm-text{flex-basis:100%;color:var(--muted-foreground);font-size:var(--text-xs)}.album-form{display:grid;gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-4)}.album-media-item-video{position:relative;width:100%;height:100%}.album-media-item-video video{width:100%;height:100%;object-fit:cover;display:block}.album-media-item-video-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;background:radial-gradient(circle,rgba(0,0,0,.35),rgba(0,0,0,0) 70%);pointer-events:none}.album-media-item-video-badge svg{filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}.media-dropzone{display:grid;gap:var(--space-3)}.media-dropzone-area{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-6) var(--space-4);text-align:center;cursor:pointer;color:var(--muted-foreground);transition:border-color var(--transition),background var(--transition)}.media-dropzone-area p{color:var(--foreground);font-weight:600;font-size:var(--text-sm);margin-bottom:.2rem}.media-dropzone-area small{font-size:var(--text-xs)}.media-dropzone-area:hover,.media-dropzone-area:focus-visible{border-color:var(--primary, var(--border-strong))}.media-dropzone-area--active{border-color:var(--primary, var(--border-strong));background:var(--destructive-soft, var(--card))}.media-dropzone-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:var(--space-2)}.media-dropzone-preview{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--muted, var(--border))}.media-dropzone-preview img,.media-dropzone-preview video{width:100%;height:100%;object-fit:cover}.media-dropzone-remove{position:absolute;top:.25rem;right:.25rem;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}.album-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-2)}.album-media-item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;cursor:grab;background:var(--muted, var(--border))}.album-media-item:active{cursor:grabbing}.album-media-item--over{border-color:var(--primary, var(--border-strong))}.album-media-item-thumb{width:100%;height:100%}.album-media-item-thumb img{width:100%;height:100%;object-fit:cover;display:block}.album-media-item-grip{position:absolute;top:.2rem;left:.2rem;z-index:1;display:flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:var(--radius-sm);background:rgba(0,0,0,.5);color:#fff;pointer-events:none}.album-media-item-remove{position:absolute;bottom:.25rem;right:.25rem;background:rgba(0,0,0,.6)!important;color:#fff!important}.album-detail-section{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}.album-detail-section h4{font-size:var(--text-md, var(--text-sm));margin-bottom:.2rem}.album-detail-hint{color:var(--muted-foreground);font-size:var(--text-xs);margin-bottom:var(--space-2)}.fretboard-controls{display:grid;gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-4)}.fretboard-controls label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);font-weight:700}.fretboard-summary{margin-top:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);padding:var(--space-4);display:grid;gap:var(--space-2)}.fretboard-note-pills{display:flex;flex-wrap:wrap;gap:.38rem}.fret-pill{border:1px solid var(--border);border-radius:var(--radius-full);padding:.2rem .55rem;background:var(--card);font-weight:700;font-size:var(--text-xs);letter-spacing:.03em;cursor:pointer;transition:transform .1s ease}.fret-pill:hover{transform:scale(1.06)}.fret-pill:active{transform:scale(.96)}.fret-pill--root{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-soft-foreground)}.fret-pill--tone-tonic{border-color:var(--tone-tonic);background:var(--tone-tonic-soft);color:var(--tone-tonic)}.fret-pill--tone-subdominant{border-color:var(--tone-subdominant);background:var(--tone-subdominant-soft);color:var(--tone-subdominant)}.fret-pill--tone-dominant{border-color:var(--tone-dominant);background:var(--tone-dominant-soft);color:var(--tone-dominant)}.scales-legend{display:grid;gap:var(--space-2);margin:var(--space-4) 0;padding:var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}.legend-item{display:flex;align-items:center;gap:.7rem;font-size:var(--text-sm);line-height:1.4}.legend-box{display:inline-block;min-width:20px;width:20px;height:20px;border-radius:6px;border:1.5px solid;flex-shrink:0}.fretboard-wrapper{margin-top:var(--space-4);overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);box-shadow:var(--shadow-xs)}.fretboard-grid{min-width:860px;display:grid}.fret-cell{min-height:44px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;place-items:center;padding:.2rem;background:var(--muted)}.fret-cell--head{background:var(--card);font-weight:700;color:var(--muted-foreground);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.fret-cell--string-label{font-weight:800;background:var(--card);color:var(--primary);font-size:var(--text-sm)}.fret-note{width:30px;height:30px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);background:var(--card);font-weight:700;font-size:var(--text-xs);letter-spacing:.02em;cursor:pointer;transition:transform .1s ease}.fret-note:hover{transform:scale(1.12)}.fret-note:active{transform:scale(.92)}.fret-note--root{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.22);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.fret-note--off{border:0;width:100%;background:transparent;color:var(--muted-foreground);font-size:.9rem;box-shadow:none}.fret-note--tone-tonic{background:var(--tone-tonic-soft);border-color:var(--tone-tonic);color:var(--tone-tonic);box-shadow:0 0 0 2px rgba(var(--tone-tonic-rgb),.26);box-shadow:0 0 0 2px color-mix(in srgb,var(--tone-tonic) 26%,transparent)}.fret-note--tone-subdominant{background:var(--tone-subdominant-soft);border-color:var(--tone-subdominant);color:var(--tone-subdominant);box-shadow:0 0 0 2px rgba(var(--tone-subdominant-rgb),.26);box-shadow:0 0 0 2px color-mix(in srgb,var(--tone-subdominant) 26%,transparent)}.fret-note--tone-dominant{background:var(--tone-dominant-soft);border-color:var(--tone-dominant);color:var(--tone-dominant);box-shadow:0 0 0 2px rgba(var(--tone-dominant-rgb),.26);box-shadow:0 0 0 2px color-mix(in srgb,var(--tone-dominant) 26%,transparent)}.fretboard-insight{margin-top:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);padding:var(--space-4);display:grid;gap:var(--space-2)}.fretboard-insight h3{font-size:var(--text-md)}.fretboard-insight p{line-height:1.55;font-size:var(--text-sm)}.circle-wheel-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-xs);padding:var(--space-5)}.circle-wheel{position:relative;width:min(640px,100%);aspect-ratio:1;margin:0 auto;border-radius:50%;border:2px solid var(--border);background:radial-gradient(circle at center,var(--card) 0 25%,transparent 25%),radial-gradient(circle at center,transparent 0 57%,var(--border) 57% 58%,transparent 58%),var(--muted)}.circle-wheel-hint{margin:var(--space-4) auto 0;max-width:60ch;text-align:center;font-size:var(--text-xs);line-height:1.6;color:var(--muted-foreground)}.circle-note{position:absolute;transform:translate(-50%,-50%);z-index:1;min-width:76px;border:1.5px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:var(--radius-full);padding:.38rem .55rem;font-weight:700;font-size:.76rem;letter-spacing:.03em;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;text-align:center;cursor:pointer}.circle-note:hover{transform:translate(-50%,-50%) scale(1.08);box-shadow:var(--shadow-md)}.circle-note small{font-weight:600;opacity:.7}.circle-note--tonic{background:var(--tone-tonic-soft);border-color:var(--tone-tonic);color:var(--tone-tonic)}.circle-note--subdominant{background:var(--tone-subdominant-soft);border-color:var(--tone-subdominant);color:var(--tone-subdominant)}.circle-note--dominant{background:var(--tone-dominant-soft);border-color:var(--tone-dominant);color:var(--tone-dominant)}.circle-note--selected{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.22);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.circle-note--minor{min-width:54px;font-size:.7rem;font-style:italic}.circle-note-sig{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 3px;border-radius:var(--radius-full);background:var(--card);border:1px solid var(--border-strong);color:var(--muted-foreground);font-size:.55rem;font-weight:800;display:grid;place-items:center;line-height:1}.circle-note--selected .circle-note-sig{background:var(--card);border-color:var(--primary);color:var(--primary)}.circle-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(240px,60%);border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:.8rem;display:grid;gap:.3rem;text-align:center}.circle-center strong{font-size:var(--text-md);line-height:1.3}.circle-center small{color:var(--muted-foreground)}.circle-panel{margin-top:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-xs);padding:var(--space-4)}.circle-panel h3{font-size:var(--text-md)}.circle-panel-lead{margin-top:.3rem;font-size:var(--text-sm);line-height:1.55;color:var(--muted-foreground)}.circle-panel-tip{margin-top:var(--space-3);padding:.5rem .7rem;border-left:2px solid var(--tone-dominant);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--muted);font-size:var(--text-sm);line-height:1.5}.circle-chord-grid{margin-top:var(--space-3);display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.circle-chord-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--muted);padding:.6rem .7rem;display:grid;gap:.22rem;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition),transform var(--dur-1) var(--ease-standard)}.circle-chord-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.circle-chord-card:active{transform:translateY(0)}.circle-chord-card--tonic{border-color:var(--tone-tonic);background:var(--tone-tonic-soft)}.circle-chord-card--subdominant{border-color:var(--tone-subdominant);background:var(--tone-subdominant-soft)}.circle-chord-card--dominant{border-color:var(--tone-dominant);background:var(--tone-dominant-soft)}.circle-chord-card span{font-size:.7rem;color:var(--muted-foreground);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.circle-chord-card strong{font-size:var(--text-md)}.circle-chord-card small{color:var(--muted-foreground);font-size:var(--text-xs)}.circle-progression-list{margin-top:var(--space-3);display:grid;gap:var(--space-2)}.circle-progression{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--muted);padding:.6rem .7rem;display:grid;gap:.35rem}.circle-progression-name{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.circle-progression-chords{display:flex;flex-wrap:wrap;gap:.35rem}.circle-progression-chord{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--foreground);padding:.25rem .6rem;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.circle-progression-chord:hover{background:var(--primary-soft);border-color:var(--primary)}.circle-progression-roman{color:var(--muted-foreground);font-size:var(--text-xs);letter-spacing:.04em}.circle-neighbour-grid{margin-top:var(--space-3);display:grid;gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.circle-neighbour{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--muted);padding:.7rem .8rem;display:grid;gap:.25rem;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition),transform var(--dur-1) var(--ease-standard)}.circle-neighbour:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.circle-neighbour span{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.circle-neighbour strong{font-size:var(--text-lg)}.circle-neighbour small{color:var(--muted-foreground);font-size:var(--text-xs);line-height:1.45}.circle-howto{margin-top:var(--space-3);display:grid;gap:var(--space-2);padding-left:1.1rem}.circle-howto li{font-size:var(--text-sm);line-height:1.55;color:var(--muted-foreground)}.circle-howto strong{color:var(--foreground)}@media (max-width: 900px){.fretboard-controls{grid-template-columns:1fr 1fr}.circle-note{min-width:64px;font-size:.68rem}.circle-note--minor{min-width:46px;font-size:.63rem}.circle-neighbour-grid{grid-template-columns:1fr}}@media (max-width: 560px){.fretboard-controls{grid-template-columns:1fr}.circle-wheel-wrap{padding:var(--space-3)}.circle-note{min-width:46px;font-size:.6rem;padding:.28rem .32rem;letter-spacing:0}.circle-note--minor{min-width:38px;font-size:.56rem}.circle-note-sig{display:none}.circle-chord-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.tuner-page{display:grid;gap:var(--space-3)}.tuner-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.tuner-calibration{display:flex;align-items:center;gap:.4rem;font-size:var(--text-sm);color:var(--muted-foreground)}.tuner-calibration input{width:4.5rem}.tuner-status{color:var(--muted-foreground)}.tuner-screen{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);background:linear-gradient(165deg,color-mix(in srgb,var(--card) 88%,var(--primary) 12%),var(--card));box-shadow:var(--shadow-md);padding:var(--space-5);max-width:560px;position:relative;overflow:hidden;display:grid;gap:var(--space-3)}.tuner-screen:after{content:"";position:absolute;bottom:0;right:0;width:120px;height:120px;background:radial-gradient(circle,rgba(var(--primary-rgb),.16) 0%,transparent 70%);background:radial-gradient(circle,color-mix(in srgb,var(--primary) 16%,transparent) 0%,transparent 70%);pointer-events:none}.tuner-screen h3{font-size:4rem;letter-spacing:-.03em;animation:tuner-note-pop var(--dur-3) var(--ease-spring)}@keyframes tuner-note-pop{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}.tuner-main-readout p{color:var(--muted-foreground)}.tuner-meter-wrap{display:grid;gap:.35rem}.tuner-meter-scale{display:grid;grid-template-columns:repeat(5,1fr);font-size:.72rem;color:var(--muted-foreground)}.tuner-meter-scale span:nth-child(3){text-align:center}.tuner-meter-scale span:last-child{text-align:right}.tuner-meter{height:16px;border-radius:var(--radius-full);border:1px solid var(--border);background:linear-gradient(90deg,rgba(var(--destructive-rgb),.45),rgba(var(--destructive-rgb),.25) 40%,rgba(var(--tone-tonic-rgb),.4),rgba(var(--destructive-rgb),.25) 60%,rgba(var(--destructive-rgb),.45));background:linear-gradient(90deg,color-mix(in srgb,var(--destructive) 45%,transparent),color-mix(in srgb,var(--destructive) 25%,transparent) 40%,color-mix(in srgb,var(--tone-tonic) 40%,transparent),color-mix(in srgb,var(--destructive) 25%,transparent) 60%,color-mix(in srgb,var(--destructive) 45%,transparent));position:relative;overflow:hidden}.tuner-meter-center{position:absolute;left:50%;top:0;width:2px;height:100%;background:var(--foreground);opacity:.65;transform:translate(-1px)}.tuner-meter-needle-carriage{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(calc(var(--needle-pos, 0) * 1%));transition:transform var(--dur-2) var(--ease-spring);will-change:transform}.tuner-meter-needle{position:absolute;left:50%;top:-2px;width:10px;height:20px;border-radius:var(--radius-full);background:var(--foreground);box-shadow:0 0 0 2px var(--card);transform:translate(-50%);transition:background var(--transition),box-shadow var(--transition),opacity var(--dur-3) var(--ease-standard)}.tuner-screen[data-locked] .tuner-meter-needle{background:var(--tone-tonic);box-shadow:0 0 0 2px var(--card),0 0 0 6px rgba(var(--tone-tonic-rgb),.25);box-shadow:0 0 0 2px var(--card),0 0 0 6px color-mix(in srgb,var(--tone-tonic) 25%,transparent)}.tuner-screen[data-locked]{border-color:var(--tone-tonic)}.tuner-screen[data-hold] .tuner-main-readout,.tuner-screen[data-hold] .tuner-meter-needle{opacity:.45}.tuner-main-readout{transition:opacity var(--dur-3) var(--ease-standard)}.tuner-screen{transition:border-color var(--dur-3) var(--ease-standard)}.in-tune{color:var(--tone-tonic);font-weight:800}.off-tune{color:var(--destructive);font-weight:800}.off-tune.sharp:after{content:" - abaixe um pouco";color:var(--muted-foreground);font-weight:600}.off-tune.flat:after{content:" - suba um pouco";color:var(--muted-foreground);font-weight:600}.tuner-direction{color:var(--muted-foreground);font-size:var(--text-sm)}.tuner-signal{display:grid;gap:.25rem}.tuner-signal span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted-foreground)}.tuner-signal-bar{height:8px;border:1px solid var(--border);border-radius:var(--radius-full);overflow:hidden;background:var(--muted)}.tuner-signal-level{height:100%;width:100%;transform-origin:left center;transform:scaleX(var(--level, 0));background:linear-gradient(90deg,var(--destructive),var(--tone-subdominant),var(--tone-tonic));transition:transform var(--dur-1) var(--ease-standard);will-change:transform}.tuner-targets{display:flex;gap:.45rem;margin-top:var(--space-2);flex-wrap:wrap}.tuner-targets button{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .65rem;background:var(--card);font-weight:700;font-size:var(--text-sm);letter-spacing:.04em;cursor:pointer;transition:transform var(--dur-1) var(--ease-standard),border-color var(--transition),background var(--transition),color var(--transition)}.tuner-targets button:hover{transform:scale(1.06)}.tuner-targets button:active{transform:scale(.94);transition-duration:60ms}.tuner-targets button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-soft-foreground)}.tuner-dial{display:block;width:100%;max-width:380px;margin:0 auto;overflow:visible}.tuner-dial-track{fill:none;stroke:var(--border-strong);stroke-width:3;stroke-linecap:round}.tuner-dial-zone{fill:none;stroke:var(--border-strong);stroke-width:6;stroke-linecap:round;transition:stroke var(--dur-2) var(--ease-standard),stroke-width var(--dur-2) var(--ease-standard)}.tuner-dial[data-locked] .tuner-dial-zone{stroke:var(--tone-tonic);stroke-width:9}.tuner-tick{stroke:var(--border-strong);stroke-width:1.5;stroke-linecap:round}.tuner-tick--major{stroke:var(--muted-foreground);stroke-width:2.5}.tuner-tick-label{fill:var(--muted-foreground);font-size:13px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.tuner-dial-needle{transform:rotate(calc(var(--needle-angle, 0) * 1deg));transition:transform var(--dur-2) var(--ease-spring)}.tuner-needle-line{stroke:var(--foreground);stroke-width:3.5;stroke-linecap:round;transition:stroke var(--dur-2) var(--ease-standard)}.tuner-needle-tip{fill:var(--foreground);transition:fill var(--dur-2) var(--ease-standard)}.tuner-dial-pivot{fill:var(--card);stroke:var(--border-strong);stroke-width:2.5}.tuner-dial[data-locked] .tuner-needle-line,.tuner-dial[data-locked] .tuner-needle-tip{stroke:var(--tone-tonic);fill:var(--tone-tonic)}.tuner-dial[data-locked] .tuner-needle-tip{filter:drop-shadow(0 0 6px var(--tone-tonic))}.tuner-strobe-segment{fill:var(--border-strong);opacity:.35;transition:fill var(--dur-3) var(--ease-standard),opacity var(--dur-3) var(--ease-standard)}.tuner-dial[data-locked] .tuner-strobe-segment{fill:var(--tone-tonic);opacity:.7}.tuner-screen[data-hold] .tuner-dial{opacity:.55;transition:opacity var(--dur-3) var(--ease-standard)}@media (max-width: 640px){.tuner-dial{max-width:300px}}.tuner-screen .tuner-main-readout{text-align:center}.tuner-screen .tuner-main-readout h3{font-size:clamp(2.6rem,12vw,4rem);line-height:1;letter-spacing:-.02em}.tuner-screen>p.in-tune,.tuner-screen>p.off-tune,.tuner-direction{text-align:center}.tuner-signal{justify-content:center}.metronome-page{display:grid;gap:var(--space-3)}.metronome-stage{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);background:linear-gradient(165deg,color-mix(in srgb,var(--card) 88%,var(--primary) 12%),var(--card));box-shadow:var(--shadow-md);padding:var(--space-6) var(--space-5) var(--space-5);max-width:480px;text-align:center;position:relative;overflow:hidden}.metronome-stage:after{content:"";position:absolute;top:0;left:0;width:140px;height:140px;background:radial-gradient(circle,rgba(var(--primary-rgb),.14) 0%,transparent 70%);background:radial-gradient(circle,color-mix(in srgb,var(--primary) 14%,transparent) 0%,transparent 70%);pointer-events:none}.metronome-pendulum-frame{position:relative;height:190px;margin:0 auto var(--space-5);display:flex;align-items:flex-end;justify-content:center}.metronome-pendulum-arm{position:relative;width:4px;height:160px;background:linear-gradient(180deg,var(--primary),var(--border-strong));border-radius:var(--radius-full);transform-origin:bottom center;transition-property:transform;transition-timing-function:ease-in-out;will-change:transform}.metronome-pendulum-weight{position:absolute;top:24px;left:50%;transform:translate(-50%);width:22px;height:22px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.18),var(--shadow-sm);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-sm)}.metronome-pendulum-base{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:64px;height:12px;border-radius:var(--radius-full);background:var(--muted-foreground);opacity:.25}.metronome-beat-dots{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.metronome-beat-dot{width:12px;height:12px;border-radius:50%;background:var(--muted);border:1px solid var(--border-strong);transition:transform var(--dur-3) var(--ease-out),background var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.metronome-beat-dot.accent{width:14px;height:14px}.metronome-beat-dot.active{background:var(--primary);border-color:var(--primary);transform:scale(1.45);box-shadow:0 0 0 5px rgba(var(--primary-rgb),.2);box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 20%,transparent);transition-duration:0ms}.metronome-beat-dot.accent.active{transform:scale(1.5);box-shadow:0 0 0 6px rgba(var(--primary-rgb),.24);box-shadow:0 0 0 6px color-mix(in srgb,var(--primary) 24%,transparent)}.metronome-bpm-display{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-2)}.metronome-step-btn{width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);font-size:1.4rem;font-weight:700;line-height:1;cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--dur-1) var(--ease-standard);display:inline-flex;align-items:center;justify-content:center}.metronome-step-btn:hover{background:var(--muted);border-color:var(--primary)}.metronome-step-btn:active{transform:scale(.9);transition-duration:60ms}.metronome-bpm-value{display:flex;align-items:baseline;gap:.4rem}.metronome-bpm-value input{width:120px;border:0;background:transparent;font-family:var(--font-display);font-size:3.2rem;font-weight:800;text-align:center;color:var(--foreground);padding:0;-moz-appearance:textfield}.metronome-bpm-value input::-webkit-outer-spin-button,.metronome-bpm-value input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.metronome-bpm-value input:focus{outline:none}.metronome-bpm-value span{font-size:var(--text-sm);font-weight:700;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}.metronome-bpm-slider{width:100%;max-width:360px;margin:0 auto var(--space-5);display:block;accent-color:var(--primary)}.metronome-actions{display:flex;gap:var(--space-3);max-width:360px;margin:0 auto}.metronome-start-btn{font-size:var(--text-lg);padding-top:.85rem;padding-bottom:.85rem}.metronome-panel{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-4);max-width:480px}.metronome-time-sig{display:flex;align-items:center;gap:var(--space-2)}.metronome-time-sig span{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.metronome-time-sig-options{display:flex;gap:2px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px}.metronome-time-sig-options button{border:0;background:transparent;padding:.3rem .6rem;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:700;color:var(--muted-foreground);cursor:pointer;transition:background var(--transition),color var(--transition),box-shadow var(--transition)}.metronome-time-sig-options button.active{background:var(--card);color:var(--foreground);box-shadow:var(--shadow-xs)}.metronome-volume{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:160px}.metronome-volume span{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);flex-shrink:0}.metronome-volume input{flex:1;accent-color:var(--primary)}.metronome-presets{max-width:480px}.metronome-presets-label{display:block;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);margin-bottom:var(--space-2)}.metronome-presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.metronome-presets-grid button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);padding:.55rem .4rem;cursor:pointer;display:grid;gap:.15rem;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition),transform var(--dur-1) var(--ease-standard)}.metronome-presets-grid button:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.metronome-presets-grid button:active{transform:translateY(1px);box-shadow:none;transition-duration:60ms}.metronome-presets-grid button.active{border-color:var(--primary);background:var(--primary-soft)}.metronome-presets-grid strong{font-size:var(--text-sm)}.metronome-presets-grid small{color:var(--muted-foreground);font-size:var(--text-xs)}.metronome-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.metronome-toggle:hover{border-color:var(--primary);color:var(--foreground)}.metronome-toggle--active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.metronome-toggle-pulse{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid var(--primary);animation:metronome-pulse-out var(--dur-3) var(--ease-out);pointer-events:none}@keyframes metronome-pulse-out{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.3)}}@media (max-width: 560px){.metronome-presets-grid{grid-template-columns:repeat(2,1fr)}.metronome-panel{flex-direction:column;align-items:stretch}}.metronome-pendulum{display:block;width:100%;max-width:240px;margin:0 auto;overflow:visible}.metronome-case{fill:var(--muted);stroke:var(--border-strong);stroke-width:2;stroke-linejoin:round}.metronome-slot{stroke:var(--border-strong);stroke-width:3;stroke-linecap:round;opacity:.6}.metronome-arm{transform:rotate(calc(var(--swing-angle, 0) * 1deg));transition:transform var(--dur-3) var(--ease-in-out)}.metronome-arm-rod{stroke:var(--foreground);stroke-width:4;stroke-linecap:round}.metronome-arm-weight{fill:var(--primary);stroke:var(--primary-hover);stroke-width:1.5;transition:fill var(--dur-1) var(--ease-standard)}.metronome-pivot{fill:var(--card);stroke:var(--foreground);stroke-width:3}.metronome-base{fill:var(--border-strong)}.metronome-pendulum[data-accent] .metronome-arm-weight{fill:var(--tone-tonic);transition-duration:0ms}@media (max-width: 640px){.metronome-pendulum{max-width:190px}}.trainer-page{display:grid;gap:var(--space-5)}.trainer-header{align-items:flex-start}.trainer-back{display:inline-flex;align-items:center;gap:.2rem;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);text-decoration:none;margin-bottom:var(--space-1)}.trainer-back:hover{color:var(--foreground)}.trainer-hud{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-hud strong{font-size:var(--text-lg);color:var(--foreground);display:block;line-height:1.1}.trainer-intro{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-5)}.trainer-intro h3{margin:0 0 var(--space-3);font-size:var(--text-md)}.trainer-intro ol{margin:0;padding-left:1.2rem;display:grid;gap:var(--space-2);color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.55}.trainer-intro strong{color:var(--foreground)}.trainer-section-title{margin:0;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground)}.trainer-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.trainer-card{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);text-decoration:none;color:inherit;transition:transform var(--dur-1) var(--ease-standard),box-shadow var(--dur-1) var(--ease-standard),border-color var(--dur-1) var(--ease-standard)}.trainer-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.trainer-card:active{transform:translateY(0)}.trainer-card-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-soft-foreground)}.trainer-card-body{display:grid;gap:.2rem;min-width:0}.trainer-card-title{font-weight:700}.trainer-card-tagline{font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.4}.trainer-card-stats{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-card-new{font-style:italic}.trainer-explainer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:hidden}.trainer-explainer-toggle{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:none;border:0;color:var(--foreground);font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;min-height:44px}.trainer-explainer-toggle span{flex:1;text-align:left}.trainer-explainer-toggle:hover{background:var(--muted)}.trainer-explainer-body{padding:0 var(--space-4) var(--space-4);color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.6}.trainer-explainer-body h4{margin:var(--space-4) 0 var(--space-1);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--foreground)}.trainer-explainer-body p{margin:0}.trainer-explainer-what{font-weight:700;color:var(--foreground)}.trainer-explainer-body ul{margin:0;padding-left:1.1rem;display:grid;gap:var(--space-1)}.trainer-settings{display:flex;flex-wrap:wrap;gap:var(--space-3)}.trainer-setting{display:grid;gap:.25rem;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}.trainer-setting select{min-height:40px}.trainer-levels{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.trainer-level{display:flex;align-items:flex-start;gap:var(--space-3);text-align:left;padding:var(--space-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;font:inherit;cursor:pointer;min-height:44px;transition:border-color var(--dur-1) var(--ease-standard),background var(--dur-1) var(--ease-standard)}.trainer-level:hover:not(:disabled){border-color:var(--border-strong)}.trainer-level.is-active{border-color:var(--primary);background:var(--primary-soft)}.trainer-level.is-locked{opacity:.55;cursor:not-allowed}.trainer-level-number{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:var(--radius-full);background:var(--muted);font-size:var(--text-xs);font-weight:700}.trainer-level.is-active .trainer-level-number{background:var(--primary);color:var(--primary-foreground)}.trainer-level-text{display:grid;gap:.15rem;min-width:0}.trainer-level-name{font-weight:700;font-size:var(--text-sm)}.trainer-level-desc{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.4}.trainer-start{display:grid;gap:var(--space-3);justify-items:start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-5)}.trainer-start p{margin:0;color:var(--muted-foreground)}.trainer-progressbar{height:5px;border-radius:var(--radius-full);background:var(--muted);overflow:hidden}.trainer-progressbar span{display:block;height:100%;width:100%;background:var(--primary);transform-origin:left center;transition:transform var(--dur-3) var(--ease-standard)}.trainer-meta{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);margin-top:calc(var(--space-3) * -1)}.trainer-quiz{display:grid;gap:var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-5)}.trainer-prompt{margin:0;font-size:var(--text-lg);font-weight:700;text-align:center}.trainer-stage{display:grid;gap:var(--space-2);justify-items:center;padding:var(--space-4) 0}.trainer-controls{display:flex;justify-content:center;gap:var(--space-2)}.staff{color:var(--foreground);overflow:visible}.staff-note--correct{color:var(--success)}.staff-note--wrong{color:var(--destructive)}.trainer-answers{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}.trainer-answers--staff{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.trainer-answer{display:grid;gap:.1rem;place-items:center;min-height:52px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:inherit;font:inherit;cursor:pointer;transition:transform var(--dur-1) var(--ease-standard),border-color var(--dur-1) var(--ease-standard),background var(--dur-1) var(--ease-standard)}.trainer-answer:hover:not(:disabled){border-color:var(--primary);transform:translateY(-1px)}.trainer-answer:active:not(:disabled){transform:translateY(0)}.trainer-answer:disabled{cursor:default}.trainer-answer-label{font-weight:700;font-size:var(--text-md)}.trainer-answer-hint{font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-answer.is-correct{border-color:var(--success);background:var(--success-soft)}.trainer-answer.is-wrong{border-color:var(--destructive);background:var(--destructive-soft)}.trainer-piano{display:flex;justify-content:center}.piano-key rect{cursor:pointer;transition:fill var(--dur-1) var(--ease-standard)}.piano-key--white rect{fill:var(--card);stroke:var(--border-strong);stroke-width:1}.piano-key--white text{fill:var(--muted-foreground);font-size:11px;pointer-events:none}.piano-key--black rect{fill:var(--foreground);stroke:var(--background);stroke-width:1}.piano-key--white:hover rect{fill:var(--muted)}.piano-key--black:hover rect{fill:var(--muted-foreground)}.piano-key.is-correct rect{fill:var(--success);stroke:var(--success)}.piano-key.is-wrong rect{fill:var(--destructive);stroke:var(--destructive)}.piano-key.is-correct text,.piano-key.is-wrong text{fill:var(--primary-foreground)}.trainer-fretboard{overflow-x:auto}.trainer-fretboard-grid{display:grid;min-width:460px;gap:2px}.trainer-fret-head,.trainer-fret-string{display:grid;place-items:center;font-size:var(--text-xs);font-weight:700;color:var(--muted-foreground);min-height:30px}.trainer-fret-cell{min-height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--muted-foreground);font:inherit;font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:background var(--dur-1) var(--ease-standard),border-color var(--dur-1) var(--ease-standard)}.trainer-fret-cell:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.trainer-fret-cell.is-correct{background:var(--success-soft);border-color:var(--success);color:var(--foreground)}.trainer-fret-cell.is-wrong{background:var(--destructive-soft);border-color:var(--destructive);color:var(--foreground)}.trainer-sequence{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2)}.trainer-slot{display:grid;place-items:center;min-width:52px;min-height:40px;padding:0 var(--space-2);border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-weight:700;color:var(--muted-foreground)}.trainer-slot.is-filled{border-style:solid;border-color:var(--primary);background:var(--primary-soft);color:var(--primary-soft-foreground)}.trainer-slot.is-next{border-color:var(--primary);animation:trainer-pulse 1.1s var(--ease-in-out) infinite}@keyframes trainer-pulse{0%,to{opacity:1}50%{opacity:.45}}.trainer-undo{border:0;background:none;color:var(--muted-foreground);font:inherit;font-size:var(--text-xs);text-decoration:underline;cursor:pointer;min-height:44px;padding:0 var(--space-2)}.trainer-beat-strip{display:flex;gap:var(--space-2)}.trainer-beat{width:10px;height:10px;border-radius:var(--radius-full);background:var(--muted);transition:transform var(--dur-3) var(--ease-out),background var(--dur-3) var(--ease-out)}.trainer-beat.is-active{background:var(--primary);transform:scale(1.5);transition-duration:0ms}.trainer-feedback{display:grid;gap:var(--space-3);justify-items:center;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);text-align:center;animation:trainer-rise var(--dur-2) var(--ease-out)}@keyframes trainer-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.trainer-feedback.is-correct{border-color:var(--success);background:var(--success-soft)}.trainer-feedback.is-wrong{border-color:var(--destructive);background:var(--destructive-soft)}.trainer-feedback-head{display:flex;align-items:center;gap:var(--space-2)}.trainer-feedback p{margin:0;line-height:1.55}.trainer-feedback-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.trainer-summary{display:grid;gap:var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-5)}.trainer-summary h3{margin:0}.trainer-summary-stats{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}.trainer-stat{display:grid;gap:.1rem;justify-items:center;padding:var(--space-3);border-radius:var(--radius-md);background:var(--muted)}.trainer-stat-value{font-size:var(--text-xl);font-weight:700}.trainer-stat-label{font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-unlocked{margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--success-soft);border:1px solid var(--success);font-weight:700;text-align:center}.trainer-weakest h4{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.trainer-weakest ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-1)}.trainer-weakest li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--muted);font-size:var(--text-sm)}.trainer-weakest li span{color:var(--muted-foreground);font-size:var(--text-xs)}.trainer-hint{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-summary-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media (max-width: 640px){.trainer-quiz,.trainer-summary,.trainer-start{padding:var(--space-4)}.trainer-answers{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}.trainer-prompt{font-size:var(--text-md)}}.trainer-lesson{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:hidden}.trainer-lesson-toggle{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:none;border:0;color:var(--foreground);font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;min-height:44px}.trainer-lesson-toggle>span{flex:1;text-align:left}.trainer-lesson-toggle em{font-style:normal;font-weight:400;color:var(--muted-foreground);margin-left:.4rem}.trainer-lesson-toggle:hover{background:var(--muted)}.trainer-lesson-body{padding:0 var(--space-4) var(--space-4)}.trainer-lesson-intro{margin:0 0 var(--space-4);color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.6}.trainer-lesson-body h4{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.trainer-terms{margin:0;display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.trainer-term{padding:var(--space-3);border-radius:var(--radius-md);background:var(--muted)}.trainer-term dt{font-weight:700;font-size:var(--text-sm);margin-bottom:.15rem}.trainer-term dd{margin:0;font-size:var(--text-xs);line-height:1.55;color:var(--muted-foreground)}.trainer-term-example{display:block;margin-top:var(--space-2);padding-left:var(--space-2);border-left:2px solid var(--border-strong);font-style:italic}.trainer-lesson-items{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.trainer-lesson-item{display:grid;gap:var(--space-2);justify-items:start;text-align:left;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:inherit;font:inherit;cursor:pointer;min-height:44px;transition:border-color var(--dur-1) var(--ease-standard),transform var(--dur-1) var(--ease-standard)}.trainer-lesson-item:hover{border-color:var(--primary);transform:translateY(-1px)}.trainer-lesson-item:active{transform:translateY(0)}.trainer-lesson-item.is-playing{border-color:var(--primary);background:var(--primary-soft)}.trainer-lesson-item-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.trainer-lesson-item-head strong{font-size:var(--text-md)}.trainer-lesson-item-head em{font-style:normal;font-size:var(--text-xs);color:var(--muted-foreground)}.trainer-lesson-item-detail{font-size:var(--text-xs);line-height:1.5;color:var(--muted-foreground)}.trainer-lesson-item-note{font-size:var(--text-xs);color:var(--muted-foreground);font-style:italic}.trainer-key{margin:0;text-align:center;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}.trainer-key strong{color:var(--foreground);text-transform:none;letter-spacing:0;font-size:var(--text-sm)}.trainer-prelude{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--primary-soft);border:1px solid var(--primary);animation:trainer-rise var(--dur-2) var(--ease-out)}.trainer-prelude strong{display:block;font-size:var(--text-sm)}.trainer-prelude em{display:block;margin-top:.15rem;font-style:normal;font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.5}.trainer-prelude-bars{display:flex;align-items:flex-end;gap:3px;height:22px;flex:none}.trainer-prelude-bars i{width:4px;height:100%;border-radius:var(--radius-full);background:var(--primary);transform-origin:bottom;animation:trainer-bars .9s var(--ease-in-out) infinite}.trainer-prelude-bars i:nth-child(2){animation-delay:.12s}.trainer-prelude-bars i:nth-child(3){animation-delay:.24s}.trainer-prelude-bars i:nth-child(4){animation-delay:.36s}@keyframes trainer-bars{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.trainer-audiocheck{display:grid;gap:var(--space-2);justify-items:start;padding-top:var(--space-2);border-top:1px solid var(--border);width:100%}.trainer-audiocheck-btn{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--muted-foreground);font:inherit;font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:border-color var(--dur-1) var(--ease-standard),color var(--dur-1) var(--ease-standard)}.trainer-audiocheck-btn:hover:not(:disabled){border-color:var(--primary);color:var(--foreground)}.trainer-audiocheck-state{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);animation:trainer-rise var(--dur-2) var(--ease-out)}.trainer-audiocheck-state.is-ok{color:var(--success)}.trainer-audiocheck-state.is-bad{color:var(--destructive)}.trainer-audiocheck-hint{margin:0;font-size:var(--text-xs);line-height:1.55;color:var(--muted-foreground);max-width:62ch}.trainer-audiocheck-hint strong{color:var(--foreground)}.trainer-quiz{animation:trainer-question-in var(--dur-3) var(--ease-out)}@keyframes trainer-question-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.trainer-answer.is-correct{animation:trainer-pop var(--dur-3) var(--ease-spring)}.trainer-answer.is-wrong{animation:trainer-shake var(--dur-3) var(--ease-in-out)}@keyframes trainer-pop{0%{transform:scale(.9)}to{transform:scale(1)}}@keyframes trainer-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.staff-note--correct,.staff-note--wrong{animation:trainer-pop var(--dur-3) var(--ease-spring);transform-origin:center}.trainer-count{display:inline-block;animation:trainer-count-in var(--dur-2) var(--ease-spring)}@keyframes trainer-count-in{0%{transform:translateY(-4px) scale(.85);opacity:.4}to{transform:translateY(0) scale(1);opacity:1}}.trainer-unlocked{animation:trainer-unlock var(--dur-4) var(--ease-spring)}@keyframes trainer-unlock{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.trainer-lesson-item.is-playing{animation:trainer-pulse 1.1s var(--ease-in-out) infinite}.trainer-summary-stats .trainer-stat{animation:trainer-rise var(--dur-3) var(--ease-out) both}.trainer-summary-stats .trainer-stat:nth-child(2){animation-delay:60ms}.trainer-summary-stats .trainer-stat:nth-child(3){animation-delay:.12s}.trainer-summary-stats .trainer-stat:nth-child(4){animation-delay:.18s}.trainer-lesson-body,.trainer-explainer-body{animation:trainer-rise var(--dur-3) var(--ease-out)}.up-list{display:flex;flex-direction:column;gap:var(--space-2);max-width:720px}.up-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.up-row-avatar{flex-shrink:0}.up-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.up-row-name{font-weight:600;font-size:var(--text-sm);color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-row-self{font-weight:400;color:var(--muted-foreground)}.up-row-email{font-size:var(--text-xs);color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-row-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.up-row-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}@media (max-width: 560px){.up-row-meta{display:none}}.feedback-form-card,.feedback-admin-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5);margin-bottom:var(--space-4)}.feedback-form-card h3,.feedback-admin-section h3{font-size:var(--text-lg);margin-bottom:.2rem}.feedback-preview-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.feedback-preview-thumb{position:relative;width:72px;height:72px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);padding:0;background:var(--muted)}.feedback-preview-thumb img{width:100%;height:100%;object-fit:cover;display:block}.feedback-preview-thumb--button{cursor:pointer;transition:box-shadow var(--transition)}.feedback-preview-thumb--button:hover{box-shadow:var(--shadow-sm)}.feedback-preview-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;background:rgba(var(--overlay-rgb),calc(var(--overlay-alpha) * .7));background:color-mix(in srgb,var(--overlay) 70%,transparent);color:#fff}.feedback-preview-remove:hover{background:rgba(var(--overlay-rgb),calc(var(--overlay-alpha) * .9));background:color-mix(in srgb,var(--overlay) 90%,transparent)}.feedback-admin-list{display:flex;flex-direction:column;gap:var(--space-3)}.feedback-admin-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.feedback-admin-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.feedback-admin-item-header strong{display:block;font-size:var(--text-md)}.feedback-admin-item-meta{display:block;font-size:var(--text-xs);color:var(--muted-foreground);margin-top:.15rem}.feedback-admin-item-confirm{display:flex;gap:var(--space-2);flex-shrink:0}.feedback-admin-item-desc{font-size:var(--text-sm);color:var(--foreground);white-space:pre-wrap}.notification-bell{position:relative;margin-left:auto}.notification-bell .icon-btn{position:relative;overflow:visible}.notification-badge{position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--primary);color:var(--primary-foreground);font-size:.625rem;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--background);animation:notification-badge-pop var(--dur-3) var(--ease-spring)}@keyframes notification-badge-pop{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:scale(1)}}.notification-panel{position:absolute;top:calc(100% + 6px);right:0;width:min(360px,calc(100vw - 2 * var(--space-4)));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden;animation:dropdown-in var(--dur-2) var(--ease-out);transform-origin:top right}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--text-sm)}.notification-push-cta{display:grid;gap:.4rem;padding:var(--space-3) var(--space-4);background:var(--muted);border-bottom:1px solid var(--border)}.notification-push-hint{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.4}.notification-list{max-height:60vh;overflow-y:auto}.notification-empty{padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--muted-foreground)}.notification-item{display:grid;gap:.15rem;width:100%;text-align:left;padding:var(--space-3) var(--space-4);background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition)}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:var(--muted)}.notification-item--unread{box-shadow:inset 3px 0 0 var(--primary)}.notification-item-title{font-size:var(--text-sm);font-weight:600;color:var(--foreground)}.notification-item--unread .notification-item-title{color:var(--primary)}.notification-item-body{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.4}.notification-item-time{font-size:var(--text-xs);color:var(--muted-foreground);opacity:.8}.pending-invites-list{display:grid;gap:var(--space-3)}.pending-invite-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--muted);border-radius:var(--radius-md)}.pending-invite-info{flex:1;min-width:0;display:grid;gap:.15rem}.pending-invite-info strong{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-invite-info span{font-size:var(--text-xs);color:var(--muted-foreground)}.pending-invite-actions{display:flex;gap:var(--space-2);flex-shrink:0}[data-motion=on] .modal-overlay,[data-motion=on] .modal,[data-motion=on] .dropdown-menu,[data-motion=on] .notification-panel,[data-motion=on] .band-identity,[data-motion=on] [data-motion-banner],[data-motion=on] .trainer-lesson-body,[data-motion=on] .trainer-explainer-body{animation:none}[data-motion-ghost]{pointer-events:none!important;user-select:none!important}[data-motion-ghost],[data-motion-ghost] *{animation:none!important;transition:none!important;caret-color:transparent!important}
