:root{--ink-900:#14110f;--ink-700:#2a2521;--ink-500:#57514b;--paper:#faf7f0;--paper-50:#fffdf8;--paper-100:#f2ede1;--signal:#c2410c;--signal-700:#9a330a;--signal-100:#f7e7dd;--graphite:#6b7280;--graphite-300:#9a958c;--color-bg:var(--paper);--color-surface:#fff;--color-surface-sunken:var(--paper-100);--color-bg-light:var(--paper-50);--color-bg-dark:var(--paper-100);--color-bg-overlay:#14110f8c;--color-text:var(--ink-900);--color-text-light:var(--graphite);--color-text-subtle:#766f64;--color-text-inverse:var(--paper);--color-primary:var(--signal);--color-primary-dark:var(--signal-700);--color-primary-light:#d4602f;--color-accent-soft:var(--signal-100);--color-secondary:var(--ink-900);--color-secondary-light:var(--ink-700);--color-rule:#e3dccb;--color-rule-strong:#cfc6b3;--color-border:var(--color-rule);--color-border-dark:var(--color-rule-strong);--color-border-light:#efe9dc;--color-success:#3f7a56;--color-warning:#b7791f;--color-error:#b4332a;--color-danger:var(--color-error);--color-danger-dark:#932a22;--color-info:var(--graphite);--font-display:"Cormorant", "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Monaco", "Courier New", monospace;--font-family:var(--font-body);--font-family-heading:var(--font-display);--font-family-mono:var(--font-mono);--font-size-base:16px;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.75rem;--font-size-5xl:3.75rem;--font-size-6xl:5rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-display:1.04;--line-height-tight:1.2;--line-height-normal:1.6;--line-height-relaxed:1.75;--line-height-loose:2;--tracking-tighter:-.02em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.08em;--tracking-wider:.18em;--staff-line-color:var(--color-rule);--staff-line-width:1px;--staff-gap:7px;--staff-height:calc(var(--staff-gap) * 4 + var(--staff-line-width));--note-size:.5em;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--spacing-4xl:6rem;--radius-none:0;--radius-sm:2px;--radius-md:3px;--radius-lg:4px;--radius-xl:6px;--radius-2xl:8px;--radius-full:9999px;--shadow-xs:none;--shadow-sm:0 1px 2px #14110f0a;--shadow-md:0 2px 8px #14110f0f;--shadow-lg:0 10px 30px #14110f1a;--shadow-xl:0 18px 48px #14110f24;--shadow-2xl:0 28px 64px #14110f33;--shadow-inner:inset 0 1px 2px #14110f0d;--shadow-overlay:0 12px 40px #14110f29;--transition-fast:.14s ease-out;--transition-base:.24s var(--ease-ritard);--transition-slow:.36s var(--ease-ritard);--transition-slowest:.52s var(--ease-ritard);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-ritard:cubic-bezier(.16, 1, .3, 1);--z-base:0;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-max:1200px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--color-bg:#14110f;--color-surface:#1e1a16;--color-surface-sunken:#100d0b;--color-bg-light:#1e1a16;--color-bg-dark:#100d0b;--color-bg-overlay:#0009;--color-text:#f4efe6;--color-text-light:#a8a195;--color-text-subtle:#8a8377;--color-text-inverse:#14110f;--color-primary:#e2552b;--color-primary-dark:#c2410c;--color-primary-light:#f2773f;--color-accent-soft:#2e1a12;--color-secondary:#f4efe6;--color-secondary-light:#d8d1c5;--color-rule:#2f2a24;--color-rule-strong:#423b32;--color-border:var(--color-rule);--color-border-dark:var(--color-rule-strong);--color-border-light:#241f1a;--color-success:#5f9d76;--color-warning:#d9a441;--color-error:#e06256;--color-danger:var(--color-error);--color-danger-dark:#c24a3f;--color-info:#a8a195;--staff-line-color:var(--color-rule-strong);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.container{width:100%;max-width:var(--container-max);padding:0 var(--spacing-lg);margin:0 auto}.container--sm{max-width:var(--container-sm)}.container--md{max-width:var(--container-md)}.container--lg{max-width:var(--container-lg)}.container--xl{max-width:var(--container-xl)}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:inherit;line-height:var(--line-height-tight);text-align:center;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:2px solid #0000;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn--secondary{background-color:var(--color-secondary);color:var(--color-text-inverse);border-color:var(--color-secondary)}.btn--secondary:hover:not(:disabled){background-color:var(--color-secondary-light);border-color:var(--color-secondary-light)}.btn--outline{color:var(--color-primary);border-color:var(--color-primary);background-color:#0000}.btn--outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-inverse)}.btn--ghost{color:var(--color-text-light);background-color:#0000;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--color-primary)}.btn--success{background-color:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn--warning{background-color:var(--color-warning);color:var(--color-text-inverse);border-color:var(--color-warning)}.btn--error{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn--danger{background-color:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-dark);border-color:var(--color-danger-dark)}.btn--small{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn--large{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn--full{width:100%}.link{color:var(--color-text);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);text-decoration:none}.link:hover,.link--primary{color:var(--color-primary)}.link--primary:hover{color:var(--color-primary-dark)}.link--underline{text-decoration:underline}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-5xl{font-size:var(--font-size-5xl)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-muted{color:var(--color-text-light)}.text-inverse{color:var(--color-text-inverse)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.m-0{margin:0}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.m-auto{margin:auto}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mt-3xl{margin-top:var(--spacing-3xl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.mb-3xl{margin-bottom:var(--spacing-3xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.py-0{padding-top:0;padding-bottom:0}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.px-0{padding-left:0;padding-right:0}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.border{border:1px solid var(--color-border)}.border-t{border-top:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.border-l{border-left:1px solid var(--color-border)}.border-r{border-right:1px solid var(--color-border)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow,.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}*{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}h1,h2,h3,h4,h5,h6{font-family:var(--font-body);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);color:var(--color-text)}h1,h2{font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-display);letter-spacing:var(--tracking-tighter)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.language-picker{position:relative}.language-picker__trigger{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;font-family:inherit;display:flex}.language-picker__trigger:hover{border-color:var(--color-primary);background-color:var(--color-bg-light)}.language-picker__trigger-arrow{font-size:var(--font-size-xs);transition:transform var(--transition-fast)}.language-picker--open .language-picker__trigger-arrow{transform:rotate(180deg)}.language-picker--open .language-picker__trigger{border-color:var(--color-primary)}.language-picker__menu{top:calc(100% + var(--spacing-xs));border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);background:#fff;position:absolute;right:0;overflow:hidden}.language-picker__option{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;font-family:inherit;display:flex}.language-picker__option:hover{background-color:var(--color-bg-light)}.language-picker__option--active{color:var(--color-primary);font-weight:var(--font-weight-semibold);background-color:var(--color-bg-light)}.language-picker__option-label{align-items:center;gap:var(--spacing-sm);display:flex}.language-picker__option-check{color:var(--color-primary);font-size:var(--font-size-base)}.user-menu{position:relative}.user-menu__trigger{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;font-family:inherit;display:flex}.user-menu__trigger:hover{border-color:var(--color-primary);background-color:var(--color-bg-light)}.user-menu--open .user-menu__trigger{border-color:var(--color-primary)}.user-menu__avatar{background-color:var(--color-primary);color:#fff;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:var(--font-weight-bold);text-transform:uppercase;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.user-menu__name{text-overflow:ellipsis;max-width:9rem;overflow:hidden}.user-menu__arrow{font-size:var(--font-size-xs);transition:transform var(--transition-fast)}.user-menu--open .user-menu__arrow{transform:rotate(180deg)}.user-menu__panel{top:calc(100% + var(--spacing-xs));border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:240px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);padding:var(--spacing-xs) 0;background:#fff;position:absolute;right:0;overflow:hidden}.user-menu__header{padding:var(--spacing-sm) var(--spacing-md);flex-direction:column;gap:2px;display:flex}.user-menu__greeting{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.user-menu__email{font-size:var(--font-size-xs);color:var(--color-text-secondary,#777);word-break:break-all}.user-menu__divider{background-color:var(--color-border);height:1px;margin:var(--spacing-xs) 0}.user-menu__item{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;font-family:inherit;text-decoration:none;display:block}.user-menu__item:hover{background-color:var(--color-bg-light)}.user-menu__item--admin{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.user-menu__item--danger{color:#c0392b}.user-menu__item--danger:hover{background-color:#fdecea}@media (width<=768px){.user-menu__name{display:none}.user-menu__panel{min-width:220px;right:0}}.logo{align-items:center;gap:var(--spacing-sm);color:var(--color-text);line-height:1;display:inline-flex}.logo__mark{flex-shrink:0;width:auto;height:2.2rem;display:block}.logo__staff line{stroke:currentColor;stroke-width:2px;stroke-linecap:round;opacity:.3}.logo__stroke line{stroke:currentColor;stroke-width:5px;stroke-linecap:round}.logo__note{fill:currentColor}.logo__accent{fill:var(--color-primary)}.logo__word{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);transition:color var(--transition-fast)}.logo__word-dot{color:var(--color-primary)}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-md);z-index:var(--z-fixed);background-color:#fffffff2;position:fixed;top:0;left:0;right:0}.navbar__container{height:4rem;padding-top:var(--spacing-md);padding-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.navbar__brand{flex-shrink:0}.navbar__logo-link{color:inherit;text-decoration:none}.navbar__logo-link:hover .logo__word{color:var(--color-primary)}.navbar__menu{align-items:center;gap:var(--spacing-lg);display:flex}.navbar__link{color:var(--color-text);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);text-decoration:none}.navbar__link:hover{color:var(--color-primary)}.navbar__user{color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:150px;overflow:hidden}@media (width<=768px){.navbar__menu{gap:var(--spacing-sm)}.navbar__link,.navbar__user{display:none}}.email-verification-banner{color:#5d4a00;background:#fff8e1;border-bottom:1px solid #ffe082;margin-top:4rem;font-size:.92rem}.email-verification-banner__content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.email-verification-banner__message{flex:1}.email-verification-banner__action{color:#b67700;cursor:pointer;background:0 0;border:1px solid #b67700;border-radius:4px;padding:4px 12px;font-size:.85rem;font-weight:500}.email-verification-banner__action:hover:not(:disabled){color:#fff;background:#b67700}.email-verification-banner__action:disabled{opacity:.6;cursor:not-allowed}.email-verification-banner__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.email-verification-banner__confirmation{color:#2e7d32;font-weight:500}.email-verification-banner__error{color:#b3261e;font-weight:500}.hero{min-height:100vh;color:var(--color-text-inverse);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);align-items:center;padding-top:4rem;display:flex}.hero__container{width:100%}.hero__content{text-align:center;max-width:800px;padding:var(--spacing-2xl) 0;margin:0 auto}.hero__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-lg);color:var(--color-text-inverse)}.hero__subtitle{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-2xl);color:#ffffffe6}.hero__actions{gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=768px){.hero__title{font-size:var(--font-size-3xl)}.hero__subtitle{font-size:var(--font-size-lg)}.hero__actions{flex-direction:column;align-items:center}.hero__actions .btn{width:100%;max-width:300px}}@media (width<=480px){.hero__title{font-size:var(--font-size-2xl)}.hero__subtitle{font-size:var(--font-size-base)}}.google-signin-btn{color:#1f1f1f;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;justify-content:center;align-items:center;gap:12px;width:100%;padding:10px 16px;font:500 14px/1 Roboto,system-ui,sans-serif;text-decoration:none;transition:box-shadow .12s,background-color .12s;display:inline-flex}.google-signin-btn:hover{background:#f8f9fa;box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.google-signin-btn:active{background:#f1f3f4}.google-signin-btn__icon{flex-shrink:0;width:18px;height:18px}.auth-form__divider{align-items:center;gap:var(--spacing-md);color:var(--color-text-secondary,#777);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.04em;display:flex}.auth-form__divider:before,.auth-form__divider:after{content:"";border-top:1px solid var(--color-border,#e0e0e0);flex:1}.auth-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.auth-form__error{padding:var(--spacing-md);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);background-color:#fee}.auth-form__success{padding:var(--spacing-md);border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-success);font-size:var(--font-size-sm);background-color:#efe}.auth-form__banner{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);background-color:#fff8e1;border:1px solid #ffe082}.auth-form__banner p{margin:0 0 var(--spacing-xs) 0}.auth-form__banner-success{color:var(--color-success);font-weight:500}.auth-form--verification-pending{text-align:center}.auth-form__success-heading{font-size:var(--font-size-lg);margin:0 0 var(--spacing-sm)}.auth-form__success-body{color:var(--color-text-secondary,#555);margin-bottom:var(--spacing-lg)}.auth-form__group{gap:var(--spacing-xs);flex-direction:column;display:flex}.auth-form__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.auth-form__input{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.auth-form__input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.auth-form__input:disabled{background-color:var(--color-bg-light);cursor:not-allowed;opacity:.6}.auth-form__input::placeholder{color:var(--color-text-light)}.auth-form__textarea{resize:vertical;min-height:100px;font-family:var(--font-family)}.auth-form__footer{margin-top:var(--spacing-sm);text-align:center}.auth-form__switch{font-size:var(--font-size-sm);color:var(--color-text-light)}.auth-form__footer-text{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-light);text-align:center}.auth-form__link{color:var(--color-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0;text-decoration:underline}.auth-form__link:hover:not(:disabled){color:var(--color-primary-dark)}.auth-form__link:disabled{opacity:.6;cursor:not-allowed}.page{min-height:100vh;padding-top:5rem;padding-bottom:var(--spacing-3xl);background-color:var(--color-bg-light)}.auth-page{padding:0 var(--spacing-lg) var(--spacing-3xl);background:linear-gradient(135deg, var(--color-bg-light) 0%, var(--color-bg) 100%);justify-content:center;align-items:center;display:flex}.auth-page__container{width:100%;max-width:480px}.auth-page__card{background-color:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-3xl) var(--spacing-2xl)}.auth-page__header{text-align:center;margin-bottom:var(--spacing-2xl)}.auth-page__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.auth-page__subtitle{font-size:var(--font-size-base);color:var(--color-text-light);margin:0}.auth-page__footer{margin-top:var(--spacing-xl);text-align:center;padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}@media (width<=768px){.auth-page{padding:0 var(--spacing-md) var(--spacing-xl)}.auth-page__card{padding:var(--spacing-2xl) var(--spacing-lg)}.auth-page__title{font-size:var(--font-size-2xl)}}.verify-email-page{align-items:center;padding-left:1rem;padding-right:1rem;display:flex}.verify-email-page__container{width:100%}.verify-email-page__card{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e0e0e0);text-align:center;border-radius:8px;max-width:480px;margin:0 auto;padding:2rem}.verify-email-page__title{margin:0 0 .75rem;font-size:1.5rem}.verify-email-page__title--success{color:var(--color-success,#2e7d32)}.verify-email-page__title--failed{color:var(--color-danger,#c62828)}.verify-email-page__body{color:var(--color-text-secondary,#555);margin-bottom:1.5rem}.oauth-complete-page{justify-content:center;align-items:center;display:flex}.oauth-complete-page__container{text-align:center;color:var(--color-text-secondary,#555)}.account-invitations-page{padding-bottom:2rem}.account-invitations-page__header h1{margin:0 0 .5rem}.account-invitations-page__subtitle{color:var(--color-text-secondary,#555);margin-bottom:1.5rem}.account-invitations-page__quota{border-left:4px solid var(--color-primary,#4a5d7e);color:var(--color-text-secondary,#555);background:#f5f5f5;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.9rem}.account-invitations-page__send{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.account-invitations-page__send h2{margin:0 0 1rem;font-size:1.15rem}.account-invitations-page__form{grid-template-columns:1fr auto;align-items:end;gap:.75rem;display:grid}.account-invitations-page__form>label{grid-column:1/-1}.account-invitations-page__list h2{margin:0 0 1rem;font-size:1.15rem}.account-invitations-page__empty{color:var(--color-text-secondary,#777);font-style:italic}.account-invitations-page__table{border-collapse:collapse;background:var(--color-surface,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:6px;width:100%;overflow:hidden}.account-invitations-page__table th,.account-invitations-page__table td{text-align:left;border-bottom:1px solid var(--color-border,#e0e0e0);padding:.6rem .9rem;font-size:.95rem}.account-invitations-page__table th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary,#555);background:#f5f5f5;font-size:.85rem;font-weight:600}.account-invitations-page__table tr:last-child td{border-bottom:none}.account-invitations-page__badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:500;display:inline-block}.account-invitations-page__badge--pending{color:#b67700;background:#fff8e1}.account-invitations-page__badge--accepted{color:#2e7d32;background:#e8f5e9}.account-invitations-page__badge--expired,.account-invitations-page__badge--revoked{color:#757575;background:#eee}.account-connected-page{padding-bottom:2rem}.account-connected-page__subtitle{color:var(--color-text-secondary,#555);margin-bottom:2rem}.account-connected-page__provider{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.account-connected-page__provider-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.account-connected-page__provider h2{margin:0;font-size:1.1rem}.account-connected-page__hint{color:var(--color-text-secondary,#777);margin:.25rem 0 0;font-size:.9rem}.account-connected-page__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.account-connected-page__actions .google-signin-btn{width:auto;padding:8px 14px;font-size:13px}.choir-card{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-base);flex-direction:column;height:100%;display:flex;position:relative}.choir-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary);transform:translateY(-2px)}.choir-card__badge{top:var(--spacing-md);right:var(--spacing-md);background-color:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;position:absolute}.choir-card__header{margin-bottom:var(--spacing-md);padding-right:var(--spacing-3xl)}.choir-card__name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.choir-card__location{font-size:var(--font-size-sm);color:var(--color-text-light);align-items:center;gap:var(--spacing-xs);display:flex}.choir-card__location:before{content:"📍"}.choir-card__body{gap:var(--spacing-md);flex-direction:column;flex:1;display:flex}.choir-card__description{color:var(--color-text);line-height:var(--line-height-relaxed);flex:1}.choir-card__meta{gap:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);display:flex}.choir-card__meta-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.choir-card__meta-label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;font-weight:var(--font-weight-semibold)}.choir-card__meta-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium)}.choir-card__footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}@media (width<=768px){.choir-card__meta{gap:var(--spacing-sm);flex-direction:column}}.choirs-page{padding-bottom:var(--spacing-3xl)}.choirs-page__container{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.choirs-section{margin-bottom:var(--spacing-3xl)}.choirs-section:last-child{margin-bottom:0}.choirs-section__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex}.choirs-section__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.choirs-section__description{font-size:var(--font-size-lg);color:var(--color-text-light);max-width:800px;margin-bottom:0}.choirs-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.choirs-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);flex-wrap:wrap;display:flex}.choirs-filters__search{min-width:250px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);flex:1}.choirs-filters__search:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.choirs-filters__search::placeholder{color:var(--color-text-light)}.choirs-filters__select{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.choirs-filters__select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}@media (width<=768px){.choirs-page{padding-top:4rem}.choirs-section__header{flex-direction:column;align-items:stretch}.choirs-section__title{font-size:var(--font-size-2xl)}.choirs-section__description{font-size:var(--font-size-base);margin-bottom:var(--spacing-md)}.choirs-grid{grid-template-columns:1fr}.choirs-filters{flex-direction:column}.choirs-filters__search{min-width:100%}}.choir-registration-page{padding-bottom:var(--spacing-3xl)}.choir-registration-page__container{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl);max-width:800px}.choir-registration-page__header{margin-bottom:var(--spacing-2xl)}.choir-registration-page__back-button{color:var(--color-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);transition:color var(--transition-fast);align-items:center;gap:var(--spacing-xs);background:0 0;border:none;display:inline-flex}.choir-registration-page__back-button:hover{color:var(--color-primary-dark)}.choir-registration-page__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.choir-registration-page__description{font-size:var(--font-size-lg);color:var(--color-text-light);margin-bottom:0}.choir-registration-page__form-container{background-color:var(--color-bg);padding:var(--spacing-2xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}@media (width<=768px){.choir-registration-page__title{font-size:var(--font-size-2xl)}.choir-registration-page__description{font-size:var(--font-size-base)}.choir-registration-page__form-container{padding:var(--spacing-lg)}}.toast-container{z-index:2000;flex-direction:column;gap:.5rem;max-width:360px;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{border-radius:var(--radius-md,6px);color:#fff;font-size:var(--font-size-sm,.875rem);padding:.75rem 1rem;animation:.25s toast-slide-in;box-shadow:0 4px 12px #00000026}.toast--error{background-color:var(--color-danger,#dc3545)}.toast--success{background-color:var(--color-success,#28a745)}.toast--info{background-color:var(--color-primary,#007bff)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.modal-overlay{background-color:var(--color-bg-overlay);z-index:var(--z-modal-backdrop);animation:fadeIn var(--transition-fast);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background-color:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl);width:90%;max-width:500px;max-height:90vh;z-index:var(--z-modal);animation:slideUp var(--transition-base);overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal__header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.modal__close{font-size:var(--font-size-3xl);color:var(--color-text-light);cursor:pointer;border-radius:var(--radius-md);width:32px;height:32px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.modal__close:hover{background-color:var(--color-bg-light);color:var(--color-text)}.modal__content{padding:var(--spacing-lg)}@media (width<=768px){.modal{max-width:95%}.modal__header,.modal__content{padding:var(--spacing-md)}}.apply-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.apply-form__description{font-size:var(--font-size-base);color:var(--color-text-light);margin:0 0 var(--spacing-md) 0;line-height:1.6}.apply-form__field{gap:var(--spacing-xs);flex-direction:column;display:flex}.apply-form__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.apply-form__optional{font-weight:var(--font-weight-normal);color:var(--color-text-light);font-style:italic}.apply-form__select{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.apply-form__select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.apply-form__textarea{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;min-height:100px;transition:all var(--transition-fast)}.apply-form__textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3498db1a}.apply-form__textarea::placeholder{color:var(--color-text-light)}.apply-form__actions{gap:var(--spacing-md);margin-top:var(--spacing-md);justify-content:flex-end;display:flex}@media (width<=768px){.apply-form__actions{flex-direction:column-reverse}.apply-form__actions .btn{width:100%}}.audio-section{border-top:1px solid var(--color-border,#e0e0e0);margin-top:.75rem;padding:1rem 0}.audio-section__header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.audio-section__header h3{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1.125rem}.audio-section__error{color:#c00;border-radius:var(--radius-md,6px);background-color:#fee;border:1px solid #fcc;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.8125rem}.audio-section__error p{margin:0}.audio-section__empty{text-align:center;color:var(--color-text-secondary,#666);background-color:var(--color-bg-secondary,#f5f5f5);border-radius:var(--radius-md,6px);padding:1rem;font-size:.875rem;font-style:italic}.audio-section__list{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.audio-section__group-title{color:var(--color-text-secondary,#666);text-transform:uppercase;letter-spacing:.025em;margin:0 0 .5rem;font-size:.875rem;font-weight:600}.audio-section__item{background-color:var(--color-bg-secondary,#f5f5f5);border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,6px);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .75rem;display:flex}.audio-section__item-info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.audio-section__item-name{color:var(--color-text-primary,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.audio-section__item-uploader{color:var(--color-text-tertiary,#999);font-size:.6875rem}.audio-section__type-badge{text-transform:uppercase;letter-spacing:.025em;border-radius:10px;width:fit-content;padding:.0625rem .375rem;font-size:.625rem;font-weight:600;display:inline-block}.audio-section__type-badge--learning-track{color:#1565c0;background-color:#e3f2fd}.audio-section__type-badge--rehearsal-recording{color:#7b1fa2;background-color:#f3e5f5}.audio-section__type-badge--performance-recording{color:#2e7d32;background-color:#e8f5e9}.audio-section__player{flex-shrink:0}.audio-section__player audio{max-width:250px;height:32px}.audio-section__upload{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:var(--radius-md,6px);border:1px dashed var(--color-border,#ddd);padding:1rem}.audio-section__upload-title{color:var(--color-text-primary,#1a1a1a);margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.audio-section__upload-form{flex-direction:column;gap:.75rem;display:flex}.audio-section__upload-form .form-group{margin:0}.audio-section__upload-form label{color:var(--color-text-primary,#1a1a1a);margin-bottom:.25rem;font-size:.8125rem;font-weight:500;display:block}.audio-section__type-select{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);background:#fff;width:100%;padding:.375rem .5rem;font-family:inherit;font-size:.875rem}.audio-section__upload-form input[type=file]{font-size:.8125rem}.audio-section__tooltip{color:var(--color-text-secondary,#999);margin-top:.25rem;font-size:.6875rem;font-style:italic;line-height:1.4;display:block}.audio-section__status{color:var(--color-primary,#007bff);font-size:.8125rem;font-weight:500}.audio-section__item .icon{width:16px;height:16px}@media (width<=600px){.audio-section__item{flex-direction:column;align-items:stretch}.audio-section__player audio{width:100%;max-width:100%}.audio-section__item .btn{align-self:flex-end}}.dup-modal__bulk{border-bottom:1px solid var(--color-border,#e0e0e0);margin-bottom:.5em;padding:.5em 0}.dup-modal__list{margin:0;padding:0;list-style:none}.dup-modal__item{border-bottom:1px solid var(--color-border-light,#f5f5f5);grid-template-columns:1fr 1fr 8em;align-items:center;gap:.5em;padding:.4em 0;display:grid}.dup-modal__filename{font-weight:600}.dup-modal__match{color:var(--color-text-light,#7f8c8d);font-style:italic}.dup-modal__buttons{justify-content:flex-end;gap:.5em;margin-top:1em;display:flex}.dup-modal__primary{background:var(--color-primary,#007bff);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5em 1em}.sheet-music-library{padding:0}.sheet-music-library__header{margin-bottom:var(--spacing-md,1rem);justify-content:space-between;align-items:center;display:flex}.sheet-music-library__header h2{font-size:var(--font-size-lg,1.125rem);color:var(--color-text,#1a1a1a);margin:0}.sheet-music-library__error{color:#c00;background-color:#fee;border:1px solid #fcc;border-radius:4px;margin-bottom:1rem;padding:.75rem}.sheet-music-library__upload-form{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.sheet-music-library__upload-form .form-group{margin-bottom:1rem}.sheet-music-library__upload-form label{color:var(--color-text-primary,#1a1a1a);margin-bottom:.5rem;font-weight:500;display:block}.sheet-music-library__upload-form input{border:1px solid #ddd;border-radius:4px;width:100%;padding:.5rem;font-size:1rem}.sheet-music-library__upload-form small{color:var(--color-text-secondary,#666);margin-top:.25rem;font-size:.875rem;display:block}.sheet-music-library__search{margin-bottom:var(--spacing-sm,.5rem)}.sheet-music-library__search-input{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);width:100%;font-size:var(--font-size-sm,.875rem);background-color:var(--color-bg,#fff);transition:border-color var(--transition-fast,.15s);padding:.375rem .75rem}.sheet-music-library__search-input:focus{border-color:var(--color-primary,#007bff);outline:none}.sheet-music-library__empty{text-align:center;color:var(--color-text-secondary,#666);padding:2rem;font-style:italic}.sheet-music-library__list{gap:4px;display:grid}.sheet-music-library__item{padding:var(--spacing-xs,.375rem) var(--spacing-sm,.5rem);background-color:var(--color-bg,#fff);border-radius:var(--radius-md,6px);border:1px solid #0000;flex-direction:column;transition:background-color .15s,border-color .15s;display:flex}.sheet-music-library__item:hover{background-color:var(--color-bg-light,#f8f9fa);border-color:var(--color-border,#e0e0e0)}.sheet-music-library__item--expanded{border-color:var(--color-primary,#007bff)}.sheet-music-library__item-row{align-items:center;gap:.5rem;display:flex}.sheet-music-library__item-toggle{cursor:pointer;width:22px;height:22px;color:var(--color-text-light,#666);border-radius:var(--radius-sm,4px);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .15s;display:flex}.sheet-music-library__item-toggle:hover{color:var(--color-primary,#007bff)}.sheet-music-library__toggle-icon{width:14px;height:14px;transition:transform .15s}.sheet-music-library__toggle-icon--open{transform:rotate(90deg)}.sheet-music-library__item-info{flex-wrap:wrap;flex:1;align-items:baseline;gap:.5rem;min-width:0;display:flex}.sheet-music-library__item-title{font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-semibold,600);color:var(--color-text,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.sheet-music-library__item-meta{font-size:var(--font-size-xs,.75rem);color:var(--color-text-light,#666);white-space:nowrap;margin:0}.sheet-music-library__item-uploaded{display:none}.sheet-music-library__item-actions{opacity:0;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.sheet-music-library__item:hover .sheet-music-library__item-actions{opacity:1}.sheet-music-library__add-to-setlist-btn{background-color:var(--color-primary,#007bff);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:background-color .15s,transform .15s;display:flex}.sheet-music-library__add-to-setlist-btn:hover{background-color:var(--color-primary-dark,#0056b3);transform:scale(1.1)}.sheet-music-library__add-to-setlist-btn .icon{width:14px;height:14px}.sheet-music-library__item-actions .btn{justify-content:center;align-items:center;padding:4px;display:flex}.sheet-music-library__item-actions .icon{width:16px;height:16px}.sheet-music-library__audio-section{border-top:1px solid var(--color-border,#e0e0e0);margin-top:.375rem;padding-top:.375rem}@media (hover:none) and (pointer:coarse){.sheet-music-library__item{min-height:44px;padding:.5rem}.sheet-music-library__item-actions{opacity:1}.sheet-music-library__add-to-setlist-btn,.sheet-music-library__item-toggle{width:36px;height:36px}.sheet-music-library__item-actions .btn{min-width:36px;min-height:36px}}.sheet-music__open-in-drive,.sheet-music__open-folder{color:var(--color-primary,#007bff);font-size:.85em;text-decoration:none}.sheet-music__open-in-drive:hover,.sheet-music__open-folder:hover{text-decoration:underline}.sheet-music__orphaned{color:var(--color-text-light,#7f8c8d);font-size:.8em}.sheet-music__pending{color:var(--color-warning,#f39c12);margin-left:.25em}.sheet-music__ingesting{color:var(--color-text-light,#7f8c8d);font-size:.85em;font-style:italic}.setlist-manager{padding:0}.setlist-manager__header{margin-bottom:var(--spacing-sm,.5rem);justify-content:space-between;align-items:center;display:flex}.setlist-manager__header h2{font-size:var(--font-size-lg,1.125rem);color:var(--color-text,#1a1a1a);margin:0}.setlist-manager__create-form{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;margin-bottom:.75rem;padding:1rem}.setlist-manager__create-form .form-group{margin-bottom:.75rem}.setlist-manager__create-form label{font-weight:500;font-size:var(--font-size-sm,.875rem);color:var(--color-text-primary,#1a1a1a);margin-bottom:.25rem;display:block}.setlist-manager__create-form input,.setlist-manager__create-form textarea{border:1px solid var(--color-border,#ddd);width:100%;font-size:var(--font-size-sm,.875rem);border-radius:4px;padding:.375rem .5rem;font-family:inherit}.setlist-manager__content{grid-template-columns:1fr 0fr;gap:0;transition:grid-template-columns .25s,gap .25s;display:grid}.setlist-manager__content--detail-open{gap:var(--spacing-sm,.5rem);grid-template-columns:180px 1fr}.setlist-manager__sidebar{min-width:0}.setlist-manager__list{flex-direction:column;gap:4px;display:flex}.setlist-manager__list-item{background-color:var(--color-bg,#fff);border-radius:var(--radius-md,6px);cursor:pointer;border:1px solid #0000;padding:.5rem .75rem;transition:all .15s;position:relative}.setlist-manager__list-item:hover{border-color:var(--color-primary,#007bff);background-color:var(--color-bg-light,#f8f9fa)}.setlist-manager__list-item--active{border-color:var(--color-primary,#007bff);background-color:var(--color-primary-light,#e7f3ff)}.setlist-manager__list-item h3{font-size:var(--font-size-sm,.875rem);color:var(--color-text-primary,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.setlist-manager__list-item p{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,#666);margin:0}.setlist-manager__delete-btn{opacity:0;transition:opacity .15s;position:absolute;top:.25rem;right:.25rem;padding:2px!important}.setlist-manager__list-item:hover .setlist-manager__delete-btn{opacity:1}.setlist-manager__main{min-width:0;min-height:100px;overflow:hidden}.setlist-manager__placeholder{text-align:center;color:var(--color-text-secondary,#666);font-style:italic;font-size:var(--font-size-sm,.875rem);padding:2rem .5rem}.setlist-manager__empty{text-align:center;color:var(--color-text-secondary,#666);font-style:italic;font-size:var(--font-size-sm,.875rem);padding:1rem}.setlist-manager__details-header{border-bottom:1px solid var(--color-border,#ddd);margin-bottom:.75rem;padding-bottom:.5rem}.setlist-manager__details-title-row{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.setlist-manager__details-title-row h3{font-size:var(--font-size-base,1rem);color:var(--color-text-primary,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;overflow:hidden}.setlist-manager__details-desc{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,#666);margin:0 0 .5rem}.setlist-manager__back-btn{cursor:pointer;width:28px;height:28px;color:var(--color-text-light,#666);border-radius:var(--radius-sm,4px);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:flex}.setlist-manager__back-btn:hover{color:var(--color-primary,#007bff);background-color:var(--color-bg-light,#f8f9fa)}.setlist-manager__items{flex-direction:column;gap:4px;display:flex}.setlist-manager__item{background-color:var(--color-bg,#fff);border-radius:var(--radius-md,6px);border:1px solid var(--color-border,#e0e0e0);align-items:center;gap:.5rem;padding:.375rem .5rem;transition:box-shadow .15s;display:flex}.setlist-manager__item:hover{box-shadow:0 1px 4px #00000014}.setlist-manager__item-position{background-color:var(--color-primary,#007bff);color:#fff;width:24px;height:24px;font-weight:700;font-size:var(--font-size-xs,.75rem);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.setlist-manager__item-info{flex:1;min-width:0}.setlist-manager__item-info h4{font-size:var(--font-size-sm,.875rem);color:var(--color-text-primary,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.setlist-manager__item-info p{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,#666);margin:0}.setlist-manager__item-notes{color:var(--color-text-tertiary,#999);font-style:italic;margin-top:2px!important}.setlist-manager__drag-handle{width:20px;height:20px;color:var(--color-text-light,#999);cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.setlist-manager__drag-handle:active{cursor:grabbing}.setlist-manager__item--editable{cursor:default}.setlist-manager__item-controls{flex-shrink:0;align-items:center;gap:2px;display:flex}.setlist-manager__move-btn{cursor:pointer;width:26px;height:26px;color:var(--color-text-light,#666);border-radius:var(--radius-sm,4px);background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:flex}.setlist-manager__move-btn:hover:not(:disabled){color:var(--color-primary,#007bff);background-color:var(--color-bg-light,#f8f9fa)}.setlist-manager__move-btn:disabled{opacity:.3;cursor:default}.setlist-manager__remove-btn{cursor:pointer;width:26px;height:26px;color:var(--color-danger,#dc3545);border-radius:var(--radius-sm,4px);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;transition:background-color .15s;display:flex}.setlist-manager__remove-btn:hover{background-color:#dc35451a}.modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--color-bg,#fff);border-radius:8px;flex-direction:column;width:90%;max-width:600px;max-height:80vh;display:flex}.modal-header{border-bottom:1px solid var(--color-border,#e0e0e0);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.modal-header h3{margin:0;font-size:1.125rem}.modal-close{cursor:pointer;color:var(--color-text-secondary,#666);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;transition:background-color .2s;display:flex}.modal-close:hover{background-color:var(--color-bg-secondary,#f5f5f5)}.modal-body{padding:1rem 1.5rem;overflow-y:auto}.setlist-manager__available-music{flex-direction:column;gap:.5rem;display:flex}.setlist-manager__available-item{background-color:var(--color-bg-secondary,#f5f5f5);cursor:pointer;border:2px solid #0000;border-radius:8px;padding:.75rem;transition:all .2s}.setlist-manager__available-item:hover{border-color:var(--color-primary,#007bff);background-color:var(--color-bg,#fff);box-shadow:0 2px 8px #0000001a}.setlist-manager__available-item h4{font-size:var(--font-size-sm,.875rem);color:var(--color-text-primary,#1a1a1a);margin:0 0 .25rem}.setlist-manager__available-item p{font-size:var(--font-size-xs,.75rem);color:var(--color-text-secondary,#666);margin:0}@media (width<=1024px){.setlist-manager__content,.setlist-manager__content--detail-open{grid-template-columns:1fr}}@media (hover:none) and (pointer:coarse){.setlist-manager__list-item{min-height:44px;padding:.625rem .75rem}.setlist-manager__delete-btn{opacity:1}.setlist-manager__move-btn,.setlist-manager__remove-btn{width:44px;height:44px}.setlist-manager__drag-handle{width:28px;height:28px}.setlist-manager__back-btn{width:44px;height:44px}}.setlist__open-in-drive{color:var(--color-primary,#007bff);margin-left:.5em;font-size:.85em;font-weight:400;text-decoration:none}.setlist__open-in-drive:hover{text-decoration:underline}.event-calendar{padding:1rem}.event-calendar__header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.event-calendar__header h2{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1.5rem}.event-calendar__actions{gap:.5rem;display:flex}.event-calendar__create-form,.event-calendar__edit-form{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.event-calendar__create-form h3,.event-calendar__edit-form h3{color:var(--color-text-primary,#1a1a1a);margin:0 0 1rem;font-size:1.125rem}.event-form .form-group{margin-bottom:1rem}.event-form .form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.event-form .form-group--flex{flex:1}@media (width<=600px){.event-form .form-row{grid-template-columns:1fr}}.event-form label{color:var(--color-text-primary,#1a1a1a);margin-bottom:.5rem;font-weight:500;display:block}.event-form input[type=text],.event-form input[type=date],.event-form input[type=datetime-local],.event-form input[type=number],.event-form textarea,.event-form select{border:1px solid #ddd;border-radius:4px;width:100%;padding:.5rem;font-family:inherit;font-size:1rem}.duration-input-group{align-items:center;gap:.5rem;display:flex}.duration-input-group input[type=number]{flex:1}.duration-input-group__suffix{color:var(--color-text-secondary,#666);white-space:nowrap;font-size:.875rem}.event-form textarea{resize:vertical}.event-form .form-group--checkbox{margin-top:.5rem}.event-form .form-group--checkbox label{cursor:pointer;align-items:center;gap:.5rem;font-weight:400;display:flex}.event-form .form-group--checkbox input[type=checkbox]{width:auto}.event-form .form-hint{color:var(--color-text-secondary,#666);margin:.5rem 0 0;font-size:.875rem}.event-form .form-actions{gap:.75rem;margin-top:1.5rem;display:flex}.event-calendar__content{margin-top:1rem}.event-calendar__empty{text-align:center;color:var(--color-text-secondary,#666);background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;padding:2rem 1rem;font-style:italic}.event-calendar__list{flex-direction:column;gap:1rem;display:flex}.event-card{border:1px solid #e0e0e0;border-left:4px solid var(--color-primary,#007bff);background-color:#fff;border-radius:8px;gap:1rem;padding:1rem;transition:box-shadow .2s;display:flex}.event-card:hover{box-shadow:0 2px 8px #0000001a}.event-card--rehearsal{border-left-color:#4caf50}.event-card--concert{border-left-color:#9c27b0}.event-card--meeting{border-left-color:#2196f3}.event-card--social{border-left-color:#ff9800}.event-card--other{border-left-color:#607d8b}.event-card__date{background-color:var(--color-bg-secondary,#f5f5f5);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-width:60px;padding:.5rem;display:flex}.event-card__day{color:var(--color-text-primary,#1a1a1a);font-size:1.5rem;font-weight:700;line-height:1}.event-card__month{text-transform:uppercase;color:var(--color-text-secondary,#666);margin-top:.25rem;font-size:.75rem}.event-card__details{flex:1;min-width:0}.event-card__header{flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.event-card__title{color:var(--color-text-primary,#1a1a1a);flex:1;margin:0;font-size:1.125rem}.event-card__badges{flex-wrap:wrap;gap:.5rem;display:flex}.event-card__type,.event-card__visibility{border-radius:12px;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.event-card__type--rehearsal{color:#2e7d32;background-color:#e8f5e9}.event-card__type--concert{color:#7b1fa2;background-color:#f3e5f5}.event-card__type--meeting{color:#1565c0;background-color:#e3f2fd}.event-card__type--social{color:#ef6c00;background-color:#fff3e0}.event-card__type--other{color:#455a64;background-color:#eceff1}.event-card__visibility--public{color:#2e7d32;background-color:#e8f5e9}.event-card__visibility--internal{color:#f57c00;background-color:#fff8e1}.event-card__meta{color:var(--color-text-secondary,#666);flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;font-size:.875rem;display:flex}.event-card__time:before,.event-card__location:before{content:""}.event-card__description{color:var(--color-text-secondary,#666);margin:0;font-size:.875rem;line-height:1.4}.event-card__actions{opacity:0;flex-direction:column;gap:.5rem;transition:opacity .2s;display:flex}.event-card:hover .event-card__actions{opacity:1}@media (width<=600px){.event-card{flex-direction:column}.event-card__date{flex-direction:row;gap:.5rem;width:fit-content}.event-card__month{margin-top:0}.event-card__actions{opacity:1;flex-direction:row;justify-content:flex-end}}.icon{width:16px;height:16px}.event-card__recurring{color:#1565c0;cursor:help;background-color:#e3f2fd;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.875rem;display:inline-flex}.form-group--recurrence{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;margin-bottom:1rem;padding:1rem}.recurrence-options{margin-top:1rem}.scope-dialog-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.scope-dialog{background:#fff;border-radius:8px;width:90%;max-width:400px;padding:1.5rem;box-shadow:0 4px 20px #00000026}.scope-dialog h3{color:var(--color-text-primary,#1a1a1a);margin:0 0 .5rem;font-size:1.125rem}.scope-dialog__event-title{color:var(--color-text-secondary,#666);margin:0 0 1.5rem;font-size:.875rem}.scope-dialog__actions{flex-direction:column;gap:.75rem;display:flex}.scope-dialog__actions .btn{justify-content:center;width:100%}.event-card__attendance{align-items:center;gap:var(--spacing-md,1rem);margin-top:var(--spacing-sm,.5rem);flex-wrap:wrap;display:flex}.attendance-buttons{gap:var(--spacing-xs,.25rem);display:flex}.attendance-btn{font-size:var(--font-size-xs,.75rem);border:1px solid var(--color-border,#ddd);border-radius:var(--radius-sm,4px);color:var(--color-text-light,#666);cursor:pointer;transition:all var(--transition-fast,.15s);background:0 0;padding:.2rem .6rem;font-family:inherit}.attendance-btn:hover{border-color:var(--color-primary,#3498db);color:var(--color-primary,#3498db)}.attendance-btn--active.attendance-btn--attending{background-color:var(--color-success,#27ae60);color:#fff;border-color:var(--color-success,#27ae60)}.attendance-btn--active.attendance-btn--maybe{background-color:var(--color-warning,#f39c12);color:#fff;border-color:var(--color-warning,#f39c12)}.attendance-btn--active.attendance-btn--not_attending{background-color:var(--color-text-light,#999);color:#fff;border-color:var(--color-text-light,#999)}.attendance-summary{font-size:var(--font-size-xs,.75rem);color:var(--color-text-light,#666)}.export-calendar-btn{text-decoration:none}.export-event-btn{color:var(--color-text-secondary,#666);text-decoration:none}.export-event-btn:hover{color:var(--color-primary,#007bff)}.image-upload{flex-direction:column;align-items:center;gap:.5rem;display:flex}.image-upload__dropzone{cursor:pointer;border:2px dashed var(--color-border,#ddd);border-radius:var(--radius-md,6px);background-color:var(--color-bg-secondary,#f5f5f5);justify-content:center;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.image-upload__dropzone:hover,.image-upload__dropzone--drag-over{border-color:var(--color-primary,#007bff);box-shadow:0 0 0 2px #007bff1a}.image-upload__dropzone--drag-over{background-color:#007bff0d}.image-upload__preview{object-fit:cover;width:100%;height:100%}.image-upload__placeholder{color:var(--color-text-secondary,#666);flex-direction:column;align-items:center;gap:.375rem;padding:1rem;display:flex}.image-upload__icon{opacity:.6;width:2rem;height:2rem}.image-upload__placeholder-text{text-align:center;font-size:.75rem}.image-upload__input{display:none}.image-upload__status{color:var(--color-primary,#007bff);text-align:center;font-size:.8125rem;font-weight:500}.image-upload__error{color:#dc3545;text-align:center;font-size:.8125rem}.image-upload__tooltip{color:var(--color-text-secondary,#999);text-align:center;margin:0;font-size:.6875rem;font-style:italic}.image-upload__actions{justify-content:center;gap:.5rem;display:flex}.image-upload--avatar .image-upload__dropzone{border-radius:50%;width:80px;height:80px}.image-upload--avatar .image-upload__icon{width:1.5rem;height:1.5rem}.image-upload--avatar .image-upload__placeholder-text{display:none}.image-upload--cover .image-upload__dropzone{border-radius:var(--radius-lg,8px);width:100%;height:200px}.image-upload--cover .image-upload__icon{width:2.5rem;height:2.5rem}.image-upload--inline{flex-direction:row;align-items:flex-start;gap:.75rem}.image-upload--inline .image-upload__dropzone{flex-shrink:0;width:60px;height:60px}.image-upload--inline .image-upload__icon{width:1.25rem;height:1.25rem}.image-upload--inline .image-upload__placeholder-text,.image-upload--inline .image-upload__tooltip{display:none}@media (width<=600px){.image-upload--cover .image-upload__dropzone{height:150px}}.member-directory{padding:1rem}.member-directory__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.member-directory__header h2{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1.5rem}.member-directory__controls{align-items:center;gap:.5rem;display:flex}.member-directory__search{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);font-size:var(--font-size-sm,.875rem);min-width:180px;padding:.4rem .75rem;font-family:inherit}.member-directory__search:focus{border-color:var(--color-primary,#007bff);outline:none;box-shadow:0 0 0 2px #007bff26}.member-directory__empty{text-align:center;color:var(--color-text-secondary,#666);background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;padding:2rem 1rem;font-style:italic}.member-directory__list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.member-card{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,6px);background:#fff;align-items:center;gap:.75rem;padding:.75rem;transition:box-shadow .2s;display:flex}.member-card:hover{box-shadow:0 2px 8px #00000014}.member-card__avatar{background-color:var(--color-bg-secondary,#e0e0e0);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:600;display:flex;position:relative;overflow:hidden}.member-card__avatar-overlay{cursor:pointer;opacity:0;background-color:#00000073;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .2s;display:flex;position:absolute;inset:0}.member-card__avatar:hover .member-card__avatar-overlay{opacity:1}.member-card__avatar-camera{color:#fff;width:18px;height:18px}.member-card__avatar-upload{margin-top:.5rem}.member-card__avatar--soprano{background-color:#e91e63}.member-card__avatar--alto{background-color:#9c27b0}.member-card__avatar--tenor{background-color:#2196f3}.member-card__avatar--bass{background-color:#4caf50}.member-card__avatar--default{background-color:#607d8b}.member-card__avatar-img{object-fit:cover;width:100%;height:100%}.member-card__avatar-initials{line-height:1}.member-card__info{flex:1;min-width:0}.member-card__name{color:var(--color-text-primary,#1a1a1a);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:500;display:block;overflow:hidden}.member-card__badges{flex-wrap:wrap;gap:.375rem;margin-top:.25rem;display:flex}.member-card__voice-part{text-transform:uppercase;letter-spacing:.025em;border-radius:10px;padding:.0625rem .375rem;font-size:.6875rem;font-weight:500;display:inline-block}.member-card__voice-part--soprano{color:#c2185b;background-color:#fce4ec}.member-card__voice-part--alto{color:#7b1fa2;background-color:#f3e5f5}.member-card__voice-part--tenor{color:#1565c0;background-color:#e3f2fd}.member-card__voice-part--bass{color:#2e7d32;background-color:#e8f5e9}.member-card__role{border-radius:10px;padding:.0625rem .375rem;font-size:.6875rem;font-weight:600;display:inline-block}.member-card__role--admin{color:#ef6c00;background-color:#fff3e0}.member-card__role--moderator{color:#3949ab;background-color:#e8eaf6}.member-directory__grouped{flex-direction:column;gap:1.5rem;display:flex}.member-directory__group-title{border-bottom:2px solid var(--color-border,#e0e0e0);margin:0 0 .75rem;padding-bottom:.5rem;font-size:1.0625rem;font-weight:600}.member-directory__group-title--soprano{border-bottom-color:#e91e63}.member-directory__group-title--alto{border-bottom-color:#9c27b0}.member-directory__group-title--tenor{border-bottom-color:#2196f3}.member-directory__group-title--bass{border-bottom-color:#4caf50}.member-directory__group-count{color:var(--color-text-secondary,#666);margin-left:.5rem;font-size:.875rem;font-weight:400}@media (width<=600px){.member-directory__header{flex-direction:column;align-items:flex-start}.member-directory__controls{width:100%}.member-directory__search{flex:1}.member-directory__list{grid-template-columns:1fr}}.announcement-feed{margin-bottom:var(--spacing-lg)}.announcement-feed__loading{color:var(--color-text-secondary);padding:var(--spacing-md)}.announcement-feed__header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.announcement-feed__title{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0;font-weight:600}.announcement-feed__new-btn{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);border:none}.announcement-feed__new-btn:hover{background:var(--color-primary-dark)}.announcement-feed__form{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;display:flex}.announcement-feed__input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-md);background:var(--color-bg-primary);color:var(--color-text-primary)}.announcement-feed__textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-md);resize:vertical;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit}.announcement-feed__form-actions{gap:var(--spacing-sm);display:flex}.announcement-feed__submit-btn{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);border:none}.announcement-feed__submit-btn:hover{background:var(--color-primary-dark)}.announcement-feed__cancel-btn{color:var(--color-text-secondary);border:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);background:0 0}.announcement-feed__cancel-btn:hover{background:var(--color-bg-secondary)}.announcement-feed__empty{color:var(--color-text-secondary);padding:var(--spacing-md) 0;font-style:italic}.announcement-feed__list{gap:var(--spacing-sm);flex-direction:column;display:flex}.announcement-feed__item{padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.announcement-feed__item--pinned{border-left:3px solid var(--color-primary)}.announcement-feed__item-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);display:flex}.announcement-feed__item-title{font-size:var(--font-size-md);color:var(--color-text-primary);align-items:center;gap:var(--spacing-xs);margin:0;font-weight:600;display:flex}.announcement-feed__pin-badge{background:var(--color-primary);color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-sm);padding:2px 6px;font-weight:500}.announcement-feed__item-actions{gap:var(--spacing-xs);flex-shrink:0;display:flex}.announcement-feed__action-btn{color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;padding:2px var(--spacing-xs);border-radius:var(--radius-sm);background:0 0;border:none}.announcement-feed__action-btn:hover{background:var(--color-bg-tertiary,var(--color-bg-primary));color:var(--color-text-primary)}.announcement-feed__action-btn--danger:hover{color:var(--color-error,#e53e3e)}.announcement-feed__item-content{color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;white-space:pre-wrap;line-height:1.5}.announcement-feed__item-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);justify-content:space-between;display:flex}.forum-view{padding:1rem}.forum-view__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.forum-view__header h2{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1.5rem}.forum-view__header-left{align-items:center;gap:.75rem;display:flex}.forum-view__empty{text-align:center;color:var(--color-text-secondary,#666);background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;padding:2rem 1rem;font-style:italic}.forum-view__form{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:8px;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1rem;display:flex}.forum-view__form .form-group{margin:0}.forum-view__form input,.forum-view__form textarea{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);width:100%;font-size:var(--font-size-sm,.875rem);padding:.5rem .75rem;font-family:inherit}.forum-view__form textarea{resize:vertical}.forum-view__form .form-actions{gap:.5rem;display:flex}.forum-list{flex-direction:column;gap:.5rem;display:flex}.forum-list__item{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,6px);cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;width:100%;padding:1rem;font-family:inherit;transition:box-shadow .2s,border-color .2s;display:flex}.forum-list__item:hover{border-color:var(--color-primary,#007bff);box-shadow:0 2px 8px #00000014}.forum-list__item-info{flex:1;min-width:0}.forum-list__item-name{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1.0625rem;font-weight:600}.forum-list__item-desc{color:var(--color-text-secondary,#666);margin:.25rem 0 0;font-size:.8125rem}.forum-list__item-count{color:var(--color-text-secondary,#666);white-space:nowrap;margin-left:1rem;font-size:.8125rem}.post-list{flex-direction:column;gap:.5rem;display:flex}.post-list__item{border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-md,6px);background:#fff;align-items:center;transition:box-shadow .2s;display:flex;overflow:hidden}.post-list__item:hover{box-shadow:0 2px 8px #00000014}.post-list__item-main{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:.875rem 1rem;font-family:inherit}.post-list__item-title{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:1rem;font-weight:500}.post-list__item-meta{color:var(--color-text-secondary,#666);gap:.75rem;margin-top:.25rem;font-size:.75rem;display:flex}.post-list__item-actions{opacity:0;gap:.25rem;padding-right:.5rem;transition:opacity .2s;display:flex}.post-list__item:hover .post-list__item-actions{opacity:1}.post-detail{margin-top:.5rem}.post-detail__header{margin-bottom:1rem}.post-detail__title{color:var(--color-text-primary,#1a1a1a);margin:0 0 .5rem;font-size:1.375rem}.post-detail__meta{color:var(--color-text-secondary,#666);gap:.75rem;font-size:.8125rem;display:flex}.post-detail__author{font-weight:500}.post-detail__actions{gap:.25rem;margin-top:.5rem;display:flex}.post-detail__content{color:var(--color-text-primary,#1a1a1a);border-bottom:1px solid var(--color-border,#e0e0e0);padding-bottom:1.5rem;font-size:.9375rem;line-height:1.6}.post-detail__content p{margin:0 0 .5rem}.comment-thread{margin-top:1.5rem}.comment-thread__title{color:var(--color-text-primary,#1a1a1a);margin:0 0 1rem;font-size:1.0625rem}.comment-card{background-color:var(--color-bg-secondary,#f5f5f5);border-radius:var(--radius-md,6px);margin-bottom:.5rem;padding:.75rem}.comment-card__header{gap:.75rem;margin-bottom:.375rem;font-size:.8125rem;display:flex}.comment-card__author{color:var(--color-text-primary,#1a1a1a);font-weight:600}.comment-card__date{color:var(--color-text-secondary,#666)}.comment-card__content{color:var(--color-text-primary,#1a1a1a);margin:0;font-size:.875rem;line-height:1.5}.comment-card__actions{gap:.25rem;margin-top:.375rem;display:flex}.comment-card__edit-form{flex-direction:column;gap:.5rem;display:flex}.comment-card__edit-form textarea{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);resize:vertical;width:100%;padding:.5rem;font-family:inherit;font-size:.875rem}.comment-thread__add-form{align-items:flex-start;gap:.5rem;margin-top:1rem;display:flex}.comment-thread__add-form textarea{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);resize:vertical;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.post-detail__image,.comment-card__image{border-radius:var(--radius-md,6px);width:auto;max-width:100%;height:auto;max-height:480px;margin-top:.5rem;display:block}.post-list__item-has-image{color:var(--color-primary,#007bff);font-style:italic}.forum-view__attachment{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.forum-view__attachment--comment{margin-top:.375rem}.forum-view__attach-btn{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);color:var(--color-text-secondary,#666);cursor:pointer;background:#fff;align-items:center;gap:.375rem;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;transition:border-color .2s,color .2s;display:inline-flex}.forum-view__attach-btn:hover{border-color:var(--color-primary,#007bff);color:var(--color-primary,#007bff)}.forum-view__attach-btn--small{padding:.1875rem .375rem;font-size:0}.forum-view__attach-icon{width:1rem;height:1rem}.forum-view__file-input{display:none}.forum-view__image-preview{border-radius:var(--radius-md,6px);border:1px solid var(--color-border,#ddd);flex-shrink:0;width:80px;height:80px;position:relative;overflow:hidden}.forum-view__image-preview--small{width:48px;height:48px}.forum-view__preview-img{object-fit:cover;width:100%;height:100%}.forum-view__preview-remove{color:#fff;cursor:pointer;background-color:#0000008c;border:none;border-radius:0 0 0 4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:.875rem;line-height:1;display:flex;position:absolute;top:0;right:0}.forum-view__preview-remove:hover{background-color:#dc3545d9}.forum-view__compress-status{color:var(--color-primary,#007bff);font-size:.75rem;font-weight:500}.comment-thread__add-form-body{flex-direction:column;flex:1;gap:.375rem;display:flex}.comment-thread__add-form-body textarea{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);resize:vertical;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.btn--text-danger{color:#dc3545}.btn--text-danger:hover{background-color:#fff5f5}@media (width<=600px){.post-list__item-actions{opacity:1}.post-list__item-meta{flex-wrap:wrap;gap:.375rem}.comment-thread__add-form{flex-direction:column}.comment-thread__add-form .btn{align-self:flex-end}}.picker__tree{border:1px solid var(--color-border);max-height:50vh;padding:var(--spacing-sm);border-radius:var(--radius-sm);overflow-y:auto}.picker__node{padding:var(--spacing-xs) 0;cursor:pointer;-webkit-user-select:none;user-select:none}.picker__node.is-selected{background:var(--color-bg-dark,#ecf0f1);border-radius:var(--radius-sm)}.picker__buttons{gap:var(--spacing-sm);margin-top:var(--spacing-md);justify-content:flex-end;display:flex}.issues__tabs{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.issues__tabs button{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-bg);border-radius:var(--radius-sm);cursor:pointer}.issues__tabs button.is-active{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.issues__bulk{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.issues__list{margin:0 0 var(--spacing-md) 0;padding:0;list-style:none}.issues__list li{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-light);display:flex}.drive-panel{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:var(--spacing-md) 0}.drive-panel__notice{color:var(--color-text-light);font-size:var(--font-size-sm)}.drive-panel__todo{font-style:italic}.drive-panel__row{gap:var(--spacing-md);padding:var(--spacing-xs) 0;align-items:center;display:flex}.drive-panel__issues{color:var(--color-warning);font-weight:var(--font-weight-semibold);cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;padding:0}.drive-panel__buttons{margin-top:var(--spacing-sm)}.drive-panel__confirm{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-warning-bg,#fff7e0);border-radius:var(--radius-sm);gap:var(--spacing-sm);flex-direction:column;display:flex}.drive-panel__confirm button{align-self:flex-start}.choir-dashboard{padding-bottom:var(--spacing-2xl)}.choir-dashboard__container{padding-top:var(--spacing-lg)}.choir-dashboard__loading{text-align:center;font-size:var(--font-size-lg);color:var(--color-text-light);padding:var(--spacing-3xl) 0}.choir-dashboard__error{text-align:center;padding:var(--spacing-3xl);background-color:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.choir-dashboard__error h2{color:var(--color-danger);margin-bottom:var(--spacing-md)}.choir-dashboard__error p{color:var(--color-text-light);margin-bottom:var(--spacing-xl)}.choir-dashboard__breadcrumb{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);display:flex}.choir-dashboard__breadcrumb-link{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}.choir-dashboard__breadcrumb-link:hover{color:var(--color-primary-dark);text-decoration:underline}.choir-dashboard__breadcrumb-separator{color:var(--color-text-light)}.choir-dashboard__breadcrumb-current{color:var(--color-text);font-weight:var(--font-weight-medium)}.choir-dashboard__cover-hero{border-radius:var(--radius-lg);height:200px;margin-bottom:0;position:relative;overflow:hidden}.choir-dashboard__cover-gradient{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);width:100%;height:100%}.choir-dashboard__cover-img{object-fit:cover;width:100%;height:100%;display:block}.choir-dashboard__cover-overlay{padding:var(--spacing-lg);color:#fff;background:linear-gradient(#0000,#000000a6);position:absolute;bottom:0;left:0;right:0}.choir-dashboard__cover-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-xs) 0;color:#fff;text-shadow:0 1px 3px #0000004d}.choir-dashboard__cover-meta{gap:var(--spacing-md);font-size:var(--font-size-sm);color:#ffffffe6;display:flex}.choir-dashboard__cover-edit-btn{top:var(--spacing-sm);right:var(--spacing-sm);border-radius:var(--radius-full);color:#fff;cursor:pointer;width:36px;height:36px;transition:background var(--transition-fast);background:#00000080;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.choir-dashboard__cover-edit-btn:hover{background:#000000bf}.choir-dashboard__meta-bar{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-bg);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);margin-bottom:var(--spacing-md);display:flex}.choir-dashboard__meta-info{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-light);flex-wrap:wrap;display:flex}.choir-dashboard__meta-detail--link{color:var(--color-primary);text-decoration:none}.choir-dashboard__meta-detail--link:hover{text-decoration:underline}.choir-dashboard__member-strip{align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);transition:background var(--transition-fast);background:0 0;border:none;display:flex}.choir-dashboard__member-strip:hover{background-color:var(--color-bg-light)}.choir-dashboard__member-avatars{display:flex}.choir-dashboard__member-avatar{border-radius:var(--radius-full);border:2px solid var(--color-bg);background-color:var(--color-primary);width:28px;height:28px;font-size:11px;font-weight:var(--font-weight-semibold);color:#fff;justify-content:center;align-items:center;margin-left:-8px;display:flex;overflow:hidden}.choir-dashboard__member-avatar:first-child{margin-left:0}.choir-dashboard__member-avatar img{object-fit:cover;width:100%;height:100%}.choir-dashboard__member-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap}.choir-dashboard__pinned{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-bg);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.choir-dashboard__pinned-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs);display:inline-block}.choir-dashboard__pinned-content{font-size:var(--font-size-sm);color:var(--color-text);line-height:1.5}.choir-dashboard__pinned-content strong{margin-bottom:2px;display:block}.choir-dashboard__pinned-content p{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.choir-dashboard__pinned-meta{font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:var(--spacing-xs)}.choir-dashboard__tabs{gap:var(--spacing-xs);background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-xs);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.choir-dashboard__tab{padding:var(--spacing-xs) var(--spacing-md);color:var(--color-text-light);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none}.choir-dashboard__tab:hover{color:var(--color-text);background-color:var(--color-bg-light)}.choir-dashboard__tab--active{color:var(--color-primary);background-color:var(--color-bg-light);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}.choir-dashboard__tab-content{background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);min-height:300px}.choir-dashboard__tab-divider{background-color:var(--color-border);height:1px;margin:var(--spacing-lg) 0}.choir-dashboard__repertoire-layout{gap:var(--spacing-lg);grid-template-columns:.35fr .65fr;align-items:start;transition:grid-template-columns .25s;display:grid}.choir-dashboard__repertoire-layout--detail-open{grid-template-columns:1.2fr .8fr}.choir-dashboard__about{gap:var(--spacing-lg);flex-direction:column;display:flex}.choir-dashboard__description{font-size:var(--font-size-base);color:var(--color-text);margin:0;line-height:1.7}.choir-dashboard__info-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.choir-dashboard__info-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.choir-dashboard__info-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px}.choir-dashboard__info-value{font-size:var(--font-size-sm);color:var(--color-text)}.choir-dashboard__info-link{color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:none}.choir-dashboard__info-link:hover{text-decoration:underline}.choir-dashboard__admin{padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.choir-dashboard__admin-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-md)}.choir-dashboard__admin-actions{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.choir-dashboard__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-md);display:flex}.choir-dashboard__header-main{flex:1}.choir-dashboard__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md);color:#fff}.choir-dashboard__meta{gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.choir-dashboard__meta-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-base);color:#fffffff2;display:flex}.choir-dashboard__icon{opacity:.9;width:1.25rem;height:1.25rem}.choir-dashboard__section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.choir-dashboard__grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.choir-dashboard__card{background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.choir-dashboard__card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.choir-dashboard__card-content{color:var(--color-text)}.choir-dashboard__placeholder{color:var(--color-text-light);padding:var(--spacing-lg) 0;text-align:center;font-style:italic}@media (width<=1024px){.choir-dashboard__repertoire-layout,.choir-dashboard__repertoire-layout--detail-open{grid-template-columns:1fr}}@media (width<=768px){.choir-dashboard__cover-hero{border-radius:var(--radius-md);height:150px}.choir-dashboard__cover-title{font-size:var(--font-size-xl)}.choir-dashboard__meta-bar{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);flex-direction:column}.choir-dashboard__tabs{gap:2px;padding:2px}.choir-dashboard__tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.choir-dashboard__tab-content{padding:var(--spacing-md)}.choir-dashboard__repertoire-layout{grid-template-columns:1fr}.choir-dashboard__header{padding:var(--spacing-lg);flex-direction:column;align-items:stretch}.choir-dashboard__title{font-size:var(--font-size-2xl)}.choir-dashboard__meta{gap:var(--spacing-sm);flex-direction:column}.choir-dashboard__grid{grid-template-columns:1fr}.choir-dashboard__admin-actions{flex-direction:column}.choir-dashboard__admin-actions .btn{width:100%}}.events-page{padding-bottom:var(--spacing-3xl)}.events-page__container{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.events-section{margin-bottom:var(--spacing-3xl)}.events-section__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex}.events-section__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.events-section__description{font-size:var(--font-size-lg);color:var(--color-text-light);max-width:800px;margin-bottom:0}.events-filters{gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);flex-wrap:wrap;display:flex}.events-filter-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);color:var(--color-text-light);background-color:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.events-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.events-filter-btn--active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.events-filter-btn--active:hover{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.events-empty{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);background-color:var(--color-bg);border-radius:var(--radius-lg);color:var(--color-text-light)}.events-empty p{font-size:var(--font-size-lg);margin:0}.events-empty__cta{margin-top:var(--spacing-md)!important;font-size:var(--font-size-base)!important}.events-empty__cta a{color:var(--color-primary);font-weight:var(--font-weight-medium);text-decoration:none}.events-empty__cta a:hover{text-decoration:underline}.events-timeline{gap:var(--spacing-2xl);flex-direction:column;display:flex}.events-month{background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.events-month__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.events-list{gap:var(--spacing-md);flex-direction:column;display:flex}.events-page .event-card{border:1px solid #e0e0e0;border-left:4px solid var(--color-primary,#007bff);background-color:#fff;border-radius:8px;gap:1rem;padding:1rem;transition:box-shadow .2s;display:flex}.events-page .event-card:hover{box-shadow:0 2px 8px #0000001a}.events-page .event-card--rehearsal{border-left-color:#4caf50}.events-page .event-card--concert{border-left-color:#9c27b0}.events-page .event-card--meeting{border-left-color:#2196f3}.events-page .event-card--social{border-left-color:#ff9800}.events-page .event-card--other{border-left-color:#607d8b}.events-page .event-card__date{background-color:var(--color-bg-secondary,#f5f5f5);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-width:60px;padding:.5rem;display:flex}.events-page .event-card__day{color:var(--color-text-primary,#1a1a1a);font-size:1.5rem;font-weight:700;line-height:1}.events-page .event-card__month{text-transform:uppercase;color:var(--color-text-secondary,#666);margin-top:.25rem;font-size:.75rem}.events-page .event-card__details{flex:1;min-width:0}.events-page .event-card__header{flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:.25rem;display:flex}.events-page .event-card__title{color:var(--color-text-primary,#1a1a1a);flex:1;margin:0;font-size:1.125rem}.events-page .event-card__badges{flex-wrap:wrap;gap:.5rem;display:flex}.events-page .event-card__type,.events-page .event-card__visibility{border-radius:12px;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.events-page .event-card__type--rehearsal{color:#2e7d32;background-color:#e8f5e9}.events-page .event-card__type--concert{color:#7b1fa2;background-color:#f3e5f5}.events-page .event-card__type--meeting{color:#1565c0;background-color:#e3f2fd}.events-page .event-card__type--social{color:#ef6c00;background-color:#fff3e0}.events-page .event-card__type--other{color:#455a64;background-color:#eceff1}.events-page .event-card__visibility--public{color:#2e7d32;background-color:#e8f5e9}.events-page .event-card__visibility--internal{color:#f57c00;background-color:#fff8e1}.events-page .event-card__choir{margin-bottom:.5rem}.events-page .event-card__choir-link{color:var(--color-primary,#007bff);font-size:.875rem;font-weight:500;text-decoration:none}.events-page .event-card__choir-link:hover{text-decoration:underline}.events-page .event-card__meta{color:var(--color-text-secondary,#666);flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;font-size:.875rem;display:flex}.events-page .event-card__description{color:var(--color-text-secondary,#666);margin:0;font-size:.875rem;line-height:1.4}@media (width<=768px){.events-page{padding-top:4rem}.events-section__header{flex-direction:column;align-items:stretch}.events-section__title{font-size:var(--font-size-2xl)}.events-section__description{font-size:var(--font-size-base)}.events-filters{flex-direction:column}.events-filter-btn{text-align:center}.events-page .event-card{flex-direction:column}.events-page .event-card__date{flex-direction:row;gap:.5rem;width:fit-content}.events-page .event-card__month{margin-top:0}}.forums-page{padding:0 1rem 2rem}.forums-page__container{max-width:800px;margin:0 auto}.forums-page__header{text-align:center;margin-bottom:2rem}.forums-page__title{color:var(--color-text-primary,#1a1a1a);margin:0 0 .5rem;font-size:2rem}.forums-page__subtitle{color:var(--color-text-secondary,#666);margin:0;font-size:1rem}.forums-page__login-prompt{text-align:center;color:var(--color-text-secondary,#666);background-color:var(--color-bg-secondary,#f5f5f5);border-radius:var(--radius-md,6px);margin-bottom:1rem;padding:.75rem;font-style:italic}.forums-page__search{gap:.5rem;margin-bottom:1.5rem;display:flex}.forums-page__search input{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-md,6px);font-size:var(--font-size-sm,.875rem);flex:1;padding:.5rem .75rem;font-family:inherit}.forums-page__pagination{justify-content:center;gap:.25rem;margin-top:1.5rem;display:flex}@media (width<=600px){.forums-page{padding:1rem .75rem}.forums-page__title{font-size:1.5rem}.forums-page__search{flex-direction:column}}.admin-dashboard{padding-bottom:var(--spacing-3xl)}.admin-dashboard__container{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.admin-dashboard__loading{text-align:center;font-size:var(--font-size-lg);color:var(--color-text-light);padding:var(--spacing-3xl) 0}.admin-dashboard__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background:linear-gradient(135deg, var(--color-primary-dark) 0%, #1a1a2e 100%);border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-md);display:flex}.admin-dashboard__header-main{flex:1}.admin-dashboard__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm);color:#fff}.admin-dashboard__subtitle{font-size:var(--font-size-base);color:#fffc}.admin-dashboard__tabs{gap:var(--spacing-xs);margin-bottom:var(--spacing-xl);background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-xs);box-shadow:var(--shadow-sm);display:flex}.admin-dashboard__tab{padding:var(--spacing-sm) var(--spacing-lg);color:var(--color-text-light);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;flex:1}.admin-dashboard__tab:hover{color:var(--color-text);background-color:var(--color-bg-light)}.admin-dashboard__tab--active{color:var(--color-primary);background-color:var(--color-bg-light);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}.admin-dashboard__content{background-color:var(--color-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.admin-dashboard__stats-grid{gap:var(--spacing-lg);grid-template-columns:repeat(4,1fr);display:grid}.admin-dashboard__stat-card{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);background-color:var(--color-bg-light);border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:box-shadow var(--transition-fast);flex-direction:column;display:flex}.admin-dashboard__stat-card:hover{box-shadow:var(--shadow-md)}.admin-dashboard__stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.admin-dashboard__stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px}.admin-dashboard__error-text{color:var(--color-danger);text-align:center;padding:var(--spacing-xl)}.admin-dashboard__placeholder-content{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light);font-style:italic}.admin-dashboard__search{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);display:flex}.admin-dashboard__search-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast);flex:1}.admin-dashboard__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,59, 130, 246), .1);outline:none}.admin-dashboard__table-wrapper{overflow-x:auto}.admin-dashboard__table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.admin-dashboard__table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);border-bottom:2px solid var(--color-border);color:var(--color-text-light);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;font-size:var(--font-size-xs);white-space:nowrap}.admin-dashboard__table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.admin-dashboard__table tr:hover td{background-color:var(--color-bg-light)}.admin-dashboard__toggle{background-color:var(--color-border);cursor:pointer;width:44px;height:24px;transition:background-color var(--transition-fast);border:none;border-radius:12px;padding:0;position:relative}.admin-dashboard__toggle--active{background-color:var(--color-primary)}.admin-dashboard__toggle:after{content:"";width:20px;height:20px;transition:transform var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.admin-dashboard__toggle--active:after{transform:translate(20px)}.admin-dashboard__badge{padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-block}.admin-dashboard__badge--admin{color:#92400e;background-color:#fef3c7}.admin-dashboard__badge--active{color:#065f46;background-color:#d1fae5}.admin-dashboard__badge--inactive{color:#991b1b;background-color:#fee2e2}.admin-dashboard__pagination{justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}.admin-dashboard__pagination-btn{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.admin-dashboard__pagination-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.admin-dashboard__pagination-btn:disabled{opacity:.5;cursor:not-allowed}.admin-dashboard__pagination-info{font-size:var(--font-size-sm);color:var(--color-text-light)}.admin-dashboard__actions{gap:var(--spacing-xs);display:flex}.admin-dashboard__action-btn{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast)}.admin-dashboard__action-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.admin-dashboard__action-btn--danger{color:var(--color-danger);border-color:var(--color-danger)}.admin-dashboard__action-btn--danger:hover{background-color:var(--color-danger);color:#fff}@media (width<=768px){.admin-dashboard__header{padding:var(--spacing-lg);flex-direction:column}.admin-dashboard__title{font-size:var(--font-size-3xl)}.admin-dashboard__stats-grid{grid-template-columns:repeat(2,1fr)}.admin-dashboard__tabs{flex-direction:column}.admin-dashboard__content{padding:var(--spacing-md)}.admin-dashboard__table{font-size:var(--font-size-xs)}.admin-dashboard__table th,.admin-dashboard__table td{padding:var(--spacing-xs) var(--spacing-sm)}}@media (width<=480px){.admin-dashboard__stats-grid{grid-template-columns:1fr}}.styleguide{background-color:var(--color-bg);min-height:100vh;color:var(--color-text);padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-4xl);transition:background-color var(--transition-base), color var(--transition-base)}.styleguide__inner{max-width:960px;margin:0 auto}.styleguide__eyebrow{font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-primary)}.staff-divider{height:var(--staff-height);background-image:repeating-linear-gradient(to bottom, var(--staff-line-color) 0, var(--staff-line-color) var(--staff-line-width), transparent var(--staff-line-width), transparent var(--staff-gap));background-size:100% var(--staff-height);background-repeat:no-repeat;width:100%}.styleguide__masthead{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);display:flex}.styleguide__mark .logo__mark{height:3.5rem;margin-bottom:var(--spacing-sm)}.styleguide__wordmark{font-family:var(--font-display);font-size:var(--font-size-6xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-display);letter-spacing:var(--tracking-tighter);margin:var(--spacing-xs) 0 0}.styleguide__wordmark-dot{color:var(--color-primary)}.styleguide__tagline{font-size:var(--font-size-lg);color:var(--color-text-light);max-width:38ch;margin-top:var(--spacing-sm)}.styleguide__masthead-staff{margin:var(--spacing-lg) 0 var(--spacing-2xl)}.styleguide__toggle{font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);border:1px solid var(--color-rule-strong);border-radius:var(--radius-full);padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0}.styleguide__toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.styleguide__section{margin-top:var(--spacing-3xl)}.styleguide__section-head{align-items:baseline;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex}.styleguide__section-title{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight)}.styleguide__section-num{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-subtle)}.styleguide__principles{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.styleguide__principle{border-top:2px solid var(--color-text);padding-top:var(--spacing-md)}.styleguide__principle-mark{font-family:var(--font-display);font-size:var(--font-size-3xl);color:var(--color-primary);line-height:1}.styleguide__principle h3{margin:var(--spacing-sm) 0 var(--spacing-xs);font-size:var(--font-size-lg)}.styleguide__principle p{color:var(--color-text-light);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.styleguide__swatches{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.styleguide__swatch{border:1px solid var(--color-rule);border-radius:var(--radius-lg);overflow:hidden}.styleguide__swatch-chip{height:84px}.styleguide__swatch-meta{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border-top:1px solid var(--color-rule)}.styleguide__swatch-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:block}.styleguide__swatch-token{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:2px;display:block}.styleguide__specimen>*+*{margin-top:var(--spacing-md)}.styleguide__type-row{align-items:baseline;gap:var(--spacing-lg);border-bottom:1px solid var(--color-rule);padding-bottom:var(--spacing-md);display:flex}.styleguide__type-label{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:var(--tracking-wide);flex:0 0 110px}.styleguide__type-display-xl{font-family:var(--font-display);font-size:var(--font-size-5xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-display);letter-spacing:var(--tracking-tighter)}.styleguide__type-display{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-display)}.styleguide__type-display em{font-style:italic}.styleguide__type-body{font-family:var(--font-body);font-size:var(--font-size-md);line-height:var(--line-height-normal);max-width:60ch;color:var(--color-text)}.styleguide__type-small{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-text-light)}.styleguide__motifs{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.styleguide__motif{border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--spacing-lg)}.styleguide__motif h3{font-size:var(--font-size-md);margin-bottom:var(--spacing-md)}.styleguide__notelist{gap:var(--spacing-sm);flex-direction:column;display:flex}.styleguide__notelist li{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);display:flex}.styleguide__notehead{background:var(--color-primary);border-radius:var(--radius-full);flex:none;width:10px;height:7px;transform:rotate(-20deg)}.styleguide__emptystate{text-align:center;color:var(--color-text-light)}.styleguide__clef{font-family:var(--font-display);color:var(--color-text-subtle);font-size:3.5rem;line-height:1}.styleguide__components{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.styleguide__btn-row{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.sg-btn{font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;padding:.7em 1.4em}.sg-btn--signal{background:var(--color-primary);color:var(--color-text-inverse)}.sg-btn--signal:hover{background:var(--color-primary-dark)}.sg-btn--outline{color:var(--color-text);border-color:var(--color-text);background:0 0}.sg-btn--outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.sg-btn--ghost{color:var(--color-text-light);background:0 0}.sg-btn--ghost:hover{color:var(--color-primary)}.sg-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.sg-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-light)}.sg-input{font-family:var(--font-body);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.6em .8em}.sg-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.sg-tags{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.sg-tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-full);border:1px solid var(--color-rule-strong);color:var(--color-text-light);padding:.25em .7em}.sg-tag--signal{background:var(--color-accent-soft);color:var(--color-primary-dark);border-color:#0000}.styleguide__programme{border:1px solid var(--color-rule);border-top:3px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--spacing-xl);max-width:460px}.styleguide__programme-eyebrow{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.styleguide__programme-title{font-family:var(--font-display);font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-display);letter-spacing:var(--tracking-tight);margin:var(--spacing-xs) 0 var(--spacing-sm)}.styleguide__programme-title em{font-style:italic}.styleguide__programme-meta{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--spacing-md)}.styleguide__programme .staff-divider{margin:var(--spacing-md) 0}.styleguide__programme-list{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.styleguide__programme-list li{justify-content:space-between;align-items:baseline;gap:var(--spacing-md);font-size:var(--font-size-sm);display:flex}.styleguide__programme-list .piece{color:var(--color-text)}.styleguide__programme-list .composer{font-family:var(--font-display);font-style:italic;font-size:var(--font-size-md);color:var(--color-text-light)}.styleguide__footer{margin-top:var(--spacing-4xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-rule);font-size:var(--font-size-sm);color:var(--color-text-subtle)}@media (width<=640px){.styleguide__wordmark{font-size:var(--font-size-5xl)}.styleguide__type-row{gap:var(--spacing-xs);flex-direction:column}.styleguide__type-label{flex-basis:auto}}.app{min-height:100vh}
