:root{--rv-navy: #003366;--rv-navy-dark: #002244;--rv-navy-light: #0d4b8a;--rv-red: #8b0000;--rv-red-light: #a31515;--rv-gold: #c59b27;--rv-bg: #edf2f7;--rv-surface: #ffffff;--rv-surface-subtle: #f8fafc;--rv-text: #0f172a;--rv-text-muted: #64748b;--rv-border: #cbd5e1;--rv-border-subtle: #e2e8f0;--rv-success: #16a34a;--rv-success-bg: #dcfce7;--rv-danger: #dc2626;--rv-danger-bg: #fee2e2;--rv-warning: #d97706;--rv-warning-bg: #fef3c7;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 26px;--shadow-btn: 0 2px 6px rgba(0, 0, 0, .05);--shadow-card: 0 10px 32px -4px rgba(0, 51, 102, .06), 0 4px 16px -2px rgba(15, 23, 42, .03);--shadow-card-hover: 0 16px 42px -4px rgba(0, 51, 102, .1), 0 6px 20px -2px rgba(15, 23, 42, .04)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;margin:0;padding:0;overflow:hidden;background-color:var(--rv-bg);color:var(--rv-text);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{height:100%;width:100%;overflow:hidden}.app-wrapper{margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--rv-bg);box-shadow:0 0 35px #0000000f;overflow:hidden;position:relative;transition:max-width .25s ease}.app-wrapper.mode-mobile{max-width:520px}.app-wrapper.mode-desktop{max-width:1280px;box-shadow:0 0 50px #00000014}.rv-header{flex-shrink:0;z-index:1000;background:#fff;color:var(--rv-text);padding:.75rem 1.25rem;border-bottom:1.5px solid var(--rv-border-subtle);display:flex;align-items:center;justify-content:space-between;box-shadow:0 3px 12px #0000000f}.rv-brand{display:flex;align-items:center;cursor:pointer;text-decoration:none}.rv-logo-large{height:52px;width:auto;object-fit:contain;display:block}.header-user-btn{display:flex;align-items:center;gap:.55rem;background:var(--rv-surface-subtle);padding:.45rem .85rem;border-radius:999px;border:1.5px solid var(--rv-border);color:var(--rv-navy);cursor:pointer;transition:all .15s ease;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-btn)}.header-action-btn{background:var(--rv-surface-subtle);border:1.5px solid var(--rv-border);border-radius:999px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-btn)}.header-action-btn:hover{background:#fef3c7;border-color:#f59e0b;transform:translateY(-1px)}.pinnwand-badge{position:absolute;top:-3px;right:-3px;background:#dc2626;color:#fff;font-size:.65rem;font-weight:800;min-width:18px;height:18px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid #ffffff;box-shadow:0 2px 5px #dc262666}.pinnwand-teaser-pill{display:flex;align-items:center;gap:.65rem;background:#fffdf5;border:1.5px solid rgba(245,158,11,.35);border-radius:12px;padding:.75rem 1rem;box-shadow:0 2px 8px #d977060f;cursor:pointer;transition:all .15s ease;margin-top:.25rem}.pinnwand-teaser-pill:hover{background:#fef3c7;border-color:#f59e0b;transform:translateY(-1px)}.header-user-btn:hover{background:#e2e8f0;border-color:var(--rv-navy-light)}.user-avatar-img{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#fff;border:1.5px solid var(--rv-navy)}.rv-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.25rem 1.25rem 2.5rem;display:flex;flex-direction:column;gap:1.25rem}.mobile-stack{display:flex;flex-direction:column;gap:1rem}.mode-desktop .desktop-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}.rv-card{background:#fff;border:1px solid rgba(226,232,240,.85);border-radius:var(--radius-lg);padding:1.6rem 1.75rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:1.15rem;position:relative;transition:box-shadow .2s ease,transform .15s ease}.rv-card:hover{box-shadow:var(--shadow-card-hover)}.rv-card.card-hero{border:1.5px solid rgba(0,51,102,.22);box-shadow:0 12px 36px -4px #00336617,0 4px 16px -2px #0f172a08;gap:.65rem;padding:1.35rem 1.45rem}.card-tag{display:inline-flex;align-items:center;gap:.35rem;background:var(--rv-navy);color:#fff;font-size:.725rem;font-weight:700;text-transform:uppercase;padding:.25rem .65rem;border-radius:999px;width:fit-content}.card-title-lg{font-size:1.25rem;font-weight:800;color:var(--rv-navy);line-height:1.2}.hero-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;background:var(--rv-surface-subtle);border-radius:var(--radius-md);padding:.75rem .9rem;margin-top:.15rem}.meta-block{display:flex;flex-direction:column;justify-content:space-between;gap:.85rem}.meta-label{font-size:.7rem;text-transform:uppercase;font-weight:700;color:var(--rv-text-muted)}.meta-val{font-size:.95rem;font-weight:700;color:var(--rv-text)}.rv-card.card-pinnwand{border:1px solid rgba(245,158,11,.25);background:#fffdf5;box-shadow:0 8px 26px -4px #d977060f,0 2px 8px #00000005}.pinnwand-header{display:flex;align-items:center;gap:.45rem;color:#92400e;font-size:.95rem;font-weight:800}.pinnwand-text{font-size:.875rem;color:#78350f;line-height:1.45}.btn-action-tile{display:flex;align-items:center;gap:.85rem;padding:1.15rem 1.35rem;border-radius:var(--radius-md);border:1px solid rgba(226,232,240,.9);background:#fff;color:var(--rv-navy);cursor:pointer;box-shadow:0 4px 16px -2px #0033660d,0 2px 6px -1px #00000005;transition:all .15s ease;text-align:left}.btn-action-tile:hover{border-color:#00336640;box-shadow:var(--shadow-card);transform:translateY(-1px)}.btn-action-tile:active{transform:translateY(0)}.tile-icon{font-size:1.5rem;line-height:1}.tile-content h4{font-size:.95rem;font-weight:800}.tile-content p{font-size:.775rem;color:var(--rv-text-muted)}.rsvp-container{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;padding-top:.4rem}.rsvp-btn{display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem .85rem;font-size:.875rem;font-weight:700;border-radius:var(--radius-md);border:1.5px solid var(--rv-border);background:#fff!important;color:var(--rv-navy)!important;box-shadow:var(--shadow-btn);cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.rsvp-btn:focus:not(.active){background:#fff!important;border-color:var(--rv-border)!important;color:var(--rv-navy)!important;outline:none}@media (hover: hover) and (pointer: fine){.rsvp-btn:hover:not(.active){background:#f8fafc!important;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 10px #00000014}}.rsvp-btn:active{transform:translateY(0)}.rsvp-btn.attending.active{background:var(--rv-success)!important;color:#fff!important;border-color:var(--rv-success)!important;box-shadow:0 3px 10px #16a34a59}.rsvp-btn.declining.active{background:var(--rv-danger)!important;color:#fff!important;border-color:var(--rv-danger)!important;box-shadow:0 3px 10px #dc262659}.rsvp-status-badge{font-size:.725rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;line-height:1}.rsvp-status-badge.badge-pending{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.rsvp-status-badge.badge-attending{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.rsvp-status-badge.badge-declining{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.voice-bar{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.35rem;scrollbar-width:none}.voice-bar::-webkit-scrollbar{display:none}.voice-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;border-radius:999px;font-size:.85rem;font-weight:600;border:1.5px solid var(--rv-border);background:var(--rv-surface);color:var(--rv-text);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-btn);transition:all .15s ease;box-sizing:border-box;position:relative}.voice-pill:hover{border-color:var(--rv-navy-light);transform:translateY(-1px);box-shadow:0 3px 8px #00336626}.voice-pill.active{background:var(--rv-navy);color:#fff;border-color:var(--rv-navy);box-shadow:0 3px 10px #0033664d}.voice-pill-icon{width:20px;height:20px;border-radius:50%;object-fit:contain}.event-item-card{background:#fff;border:1px solid rgba(226,232,240,.85);border-radius:var(--radius-lg);padding:1.55rem 1.65rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:1.05rem;transition:transform .15s ease,box-shadow .15s ease}.event-item-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.event-item-card.type-konzert{border-left:4px solid var(--rv-red)}.event-item-card.type-probe{border-left:4px solid rgba(0,51,102,.6)}.event-top{display:flex;align-items:flex-start;gap:.85rem}.event-date-box{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--rv-surface-subtle);border-radius:var(--radius-md);padding:.45rem .65rem;min-width:56px;text-align:center;border:1px solid var(--rv-border)}.event-date-dow{font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--rv-navy)}.event-date-day{font-size:1.35rem;font-weight:800;line-height:1;color:var(--rv-text)}.event-date-month{font-size:.65rem;color:var(--rv-text-muted);text-transform:uppercase}.event-date-year{font-size:.65rem;font-weight:700;color:var(--rv-navy);line-height:1;margin-top:2px}.event-info{flex:1}.event-type-badge{display:inline-block;font-size:.65rem;font-weight:800;text-transform:uppercase;padding:.15rem .5rem;border-radius:4px;margin-bottom:.25rem}.badge-probe{background:#e0f2fe;color:#0369a1}.badge-konzert{background:#ffe4e6;color:#be123c}.event-title{font-size:1.05rem;font-weight:800;color:var(--rv-text);line-height:1.25}.event-details{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--rv-text-muted)}.event-detail-item{display:flex;align-items:center;gap:.45rem}.event-detail-item strong{color:var(--rv-text)}.events-controls-panel{background:#fff;border:1px solid var(--rv-border);border-radius:var(--radius-lg);padding:1.15rem 1.25rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.95rem;position:relative;z-index:5;margin-bottom:.75rem}.events-filter-row{display:flex;flex-direction:column;gap:.4rem;overflow:visible}.events-filter-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--rv-text-muted);display:flex;align-items:center;justify-content:space-between}.filter-chips-scroll{display:flex;flex-wrap:wrap!important;gap:.4rem .5rem;overflow:visible!important;padding:2px 0;margin:0;align-items:center}@media (min-width: 768px){.filter-chips-scroll{gap:.45rem .55rem;padding:3px 0}}.filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1.5px solid var(--rv-border);background:var(--rv-surface);color:var(--rv-text);cursor:pointer;white-space:nowrap;transition:all .15s ease;box-sizing:border-box;max-width:100%}.filter-chip:hover{border-color:var(--rv-navy-light);transform:translateY(-1px);box-shadow:0 2px 6px #0033661f}.filter-chip.active{background:var(--rv-navy);color:#fff;border-color:var(--rv-navy);box-shadow:0 2px 8px #00336640}.filter-chip.chip-prio.active{background:#d97706;border-color:#b45309;color:#fff;box-shadow:0 2px 8px #d9770659}.events-status-bar{display:flex;align-items:center;justify-content:space-between;padding:.35rem .15rem 0;border-top:1px dashed var(--rv-border-subtle);font-size:.8rem;color:var(--rv-text-muted)}.reset-filters-btn{background:none;border:none;color:var(--rv-navy);font-size:.78rem;font-weight:700;cursor:pointer;padding:.2rem .5rem;border-radius:4px;text-decoration:underline;transition:opacity .15s}.reset-filters-btn:hover{opacity:.75}.event-item-card.is-pinned{border:2px solid #f59e0b;background:linear-gradient(180deg,#fffdf5,#fff 60px);box-shadow:0 4px 18px #f59e0b2e;position:relative}.pinned-banner{display:flex;align-items:center;justify-content:space-between;background:#fef3c7;border:1px solid #fde68a;color:#92400e;padding:.45rem .75rem;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700;margin-bottom:.5rem}.pin-toggle-btn{background:#fff;border:1px solid var(--rv-border);border-radius:999px;padding:.3rem .65rem;font-size:.74rem;font-weight:600;color:var(--rv-navy);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease}.pin-toggle-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.pin-toggle-btn.pinned{background:#fef3c7;border-color:#f59e0b;color:#92400e}.rv-bottom-nav{flex-shrink:0;width:100%;background:#fff;border-top:1.5px solid var(--rv-border);box-shadow:0 -4px 18px #0000000f;display:grid;grid-template-columns:repeat(5,1fr);z-index:1000;padding-bottom:max(16px,env(safe-area-inset-bottom,16px))}@media (max-width: 640px){.rv-bottom-nav{padding-top:.15rem;padding-bottom:max(10px,env(safe-area-inset-bottom,10px))}.nav-item{padding:.35rem .1rem .15rem;font-size:.68rem;gap:.1rem}.nav-item-icon{font-size:1.15rem;line-height:1.1}.rv-main{padding:.85rem .85rem 1.25rem}}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.65rem .2rem;color:var(--rv-text-muted);font-size:.725rem;font-weight:600;cursor:pointer;border:none;background:transparent;transition:all .15s ease}.nav-item:hover{color:var(--rv-navy)}.nav-item.active{color:var(--rv-navy);font-weight:800;border-top:3px solid var(--rv-red)}.nav-item-icon{font-size:1.25rem;line-height:1}.settings-section{background:var(--rv-surface);border:1px solid rgba(226,232,240,.85);border-radius:var(--radius-lg);padding:1.6rem 1.75rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-card)}.settings-section-title{font-size:1.05rem;font-weight:800;color:var(--rv-navy);border-bottom:1.5px solid var(--rv-surface-subtle);padding-bottom:.5rem}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;gap:1rem}.settings-label h4{font-size:.95rem;font-weight:700;color:var(--rv-text)}.settings-label p{font-size:.775rem;color:var(--rv-text-muted)}.text-input-clean{padding:.55rem .85rem;border-radius:var(--radius-sm);border:1.5px solid var(--rv-border);font-size:.9rem;font-weight:500;color:var(--rv-text);text-align:left;width:220px;background:#fff;box-shadow:var(--shadow-btn)}.text-input-clean:focus{outline:none;border-color:var(--rv-navy)}.toggle-group{display:inline-flex;background:var(--rv-surface-subtle);padding:3px;border-radius:var(--radius-md);border:1.5px solid var(--rv-border);box-shadow:var(--shadow-btn)}.toggle-btn{padding:.4rem .85rem;font-size:.8rem;font-weight:700;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--rv-text-muted);cursor:pointer;transition:all .15s ease}.toggle-btn.active{background:#fff;color:var(--rv-navy);box-shadow:var(--shadow-btn)}.avatar-picker-wrap{display:flex;flex-direction:column;gap:.75rem}.avatar-scroll-row{display:flex;gap:.75rem;overflow-x:auto;padding:.35rem .1rem}.avatar-item{width:50px;height:50px;border-radius:50%;border:2px solid var(--rv-border);padding:3px;background:#fff;cursor:pointer;object-fit:cover;box-shadow:var(--shadow-btn);transition:all .15s ease;flex-shrink:0}.avatar-item:hover{transform:scale(1.08)}.avatar-item.active{border-color:var(--rv-red);box-shadow:0 0 0 3px #8b000040}.btn-upload-avatar{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;border-radius:var(--radius-sm);border:1.5px solid var(--rv-border);background:var(--rv-surface-subtle);font-size:.8rem;font-weight:700;color:var(--rv-text);cursor:pointer;box-shadow:var(--shadow-btn);width:fit-content}.btn-upload-avatar:hover{background:#e2e8f0}.badge-countdown{display:inline-flex;align-items:center;gap:.35rem;background:#e0f2fe;color:#0369a1;font-size:.75rem;font-weight:800;padding:.25rem .65rem;border-radius:999px;border:1px solid #bae6fd}.badge-countdown.today{background:#fef2f2;color:#b91c1c;border-color:#fecaca;animation:pulse-badge 2s infinite ease-in-out}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.meta-location-btn{background:transparent;border:none;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column}.meta-val-link{color:var(--rv-navy);display:inline-flex;align-items:center;gap:.3rem;text-decoration:underline;text-decoration-color:#0366;text-underline-offset:3px;transition:color .15s ease}.meta-location-btn:hover .meta-val-link{color:var(--rv-navy-light);text-decoration-color:var(--rv-navy-light)}.meta-subtext{font-size:.75rem;color:var(--rv-text-muted);margin-top:.15rem}.meta-sub-action{margin-top:auto;display:inline-flex;align-items:center;gap:.35rem;background:#fff;border:1px solid rgba(0,51,102,.2);border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:700;color:var(--rv-navy);cursor:pointer;box-shadow:0 1px 3px #0000000a;transition:all .15s ease;width:fit-content}.meta-sub-action:hover{background:#f0f7ff;border-color:var(--rv-navy);transform:translateY(-1px)}.voice-attendance-wrap{position:relative;margin-top:auto;display:inline-block;cursor:pointer}.attendance-indicator{display:inline-flex;align-items:center;gap:.4rem;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:.775rem;padding:.25rem .6rem;border-radius:999px;transition:background .15s ease}.attendance-indicator:hover{background:#dcfce7}.attendance-dot{width:7px;height:7px;border-radius:50%;background:var(--rv-success)}.attendance-info-icon{font-size:.75rem;opacity:.7}.voice-attendance-tooltip{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:240px;max-width:320px;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:var(--radius-md);box-shadow:0 10px 28px -4px #0033662e,0 4px 10px #0000000d;padding:.75rem .9rem;font-size:.8rem;line-height:1.4;animation:fadeInTooltip .15s ease-out}@keyframes fadeInTooltip{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tooltip-title{font-weight:800;color:var(--rv-navy);margin-bottom:.25rem}.tooltip-names{color:var(--rv-text);font-weight:600}.tooltip-absent{margin-top:.45rem;padding-top:.45rem;border-top:1px solid #f1f5f9;font-size:.75rem;color:var(--rv-text-muted)}.rv-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;padding-bottom:max(1.5rem,calc(env(safe-area-inset-bottom,0px) + 1.5rem));overflow-y:auto;animation:fadeInBackdrop .15s ease-out}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.rv-modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 50px -10px #00000040;width:100%;max-width:620px;max-height:calc(100vh - 3.5rem);max-height:calc(100dvh - 3.5rem);max-height:calc(100svh - 3.5rem);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(226,232,240,.9);animation:scaleUpModal .2s cubic-bezier(.16,1,.3,1);margin:auto}@keyframes scaleUpModal{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.rv-modal-header{padding:1.15rem 1.4rem;border-bottom:1px solid var(--rv-border-subtle);display:flex;align-items:center;justify-content:space-between;background:#f8fafc;flex-shrink:0}.rv-modal-header h3{font-size:1.15rem;font-weight:800;color:var(--rv-navy);margin:0}.rv-modal-close{background:transparent;border:none;font-size:1.25rem;color:var(--rv-text-muted);cursor:pointer;padding:.2rem .5rem;border-radius:6px;line-height:1}.rv-modal-close:hover{background:#e2e8f0;color:var(--rv-text)}.rv-modal-body{padding:1.35rem 1.4rem;display:flex;flex-direction:column;gap:1.15rem;overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}.rv-modal-body::-webkit-scrollbar{width:6px}.rv-modal-body::-webkit-scrollbar-track{background:transparent}.rv-modal-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.rv-modal-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.rv-modal-footer{padding:.9rem 1.4rem;padding-bottom:max(.9rem,env(safe-area-inset-bottom,.9rem));border-top:1px solid var(--rv-border-subtle);background:#f8fafc;display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-shrink:0}.btn-modal-cancel{background:#fff;border:1px solid var(--rv-border);color:var(--rv-text);padding:.55rem 1.15rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-modal-cancel:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-modal-save{background:var(--rv-navy);border:1px solid var(--rv-navy);color:#fff;padding:.55rem 1.35rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:700;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 4px #00336626}.btn-modal-save:hover:not(:disabled){background:#024;transform:translateY(-1px);box-shadow:0 4px 8px #00336640}.btn-modal-save:disabled{opacity:.6;cursor:not-allowed}.modal-form-grid-2{display:grid;grid-template-columns:1fr;gap:.85rem}@media (min-width: 580px){.modal-form-grid-2{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.rv-modal-backdrop{padding:.5rem;padding-bottom:max(2.5rem,calc(env(safe-area-inset-bottom,0px) + 2.5rem))}.rv-modal-content{max-height:calc(100vh - 5.5rem);max-height:calc(100dvh - 5.5rem);max-height:calc(100svh - 5.5rem)}.rv-modal-footer{padding:.75rem 1rem;padding-bottom:max(.85rem,env(safe-area-inset-bottom,.85rem));gap:.5rem}.btn-modal-cancel,.btn-modal-save{flex:1;text-align:center;padding:.7rem .75rem;font-size:.9rem}}.btn-primary-maps{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--rv-navy);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-md);text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:var(--shadow-btn);transition:all .15s ease;width:100%}.btn-primary-maps:hover{background:var(--rv-navy-light);transform:translateY(-1px)}.practice-piece-item{background:var(--rv-surface-subtle);border:1px solid rgba(226,232,240,.9);border-radius:var(--radius-md);padding:.95rem 1.1rem;display:flex;flex-direction:column;gap:.6rem}.piece-header{display:flex;justify-content:space-between;align-items:baseline}.piece-title{font-weight:800;color:var(--rv-text);font-size:.95rem}.piece-composer{font-size:.75rem;color:var(--rv-text-muted)}.piece-focus{font-size:.8rem;color:#475569;background:#fff;padding:.35rem .65rem;border-radius:var(--radius-sm);border-left:3px solid var(--rv-navy)}.practice-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-practice-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:999px;border:1px solid var(--rv-border);background:#fff;font-size:.775rem;font-weight:700;color:var(--rv-navy);cursor:pointer;text-decoration:none;transition:all .15s ease}.btn-practice-chip:hover{border-color:var(--rv-navy);background:#f0f7ff}.btn-link-archive{background:transparent;border:none;color:var(--rv-navy);font-weight:700;font-size:.85rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;align-self:flex-start;padding:.25rem 0}.login-wrapper{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--rv-bg);padding:1.25rem}.login-card{background:#fff;border-radius:var(--radius-lg);border:1px solid rgba(226,232,240,.85);box-shadow:0 16px 40px -8px #0033661f,0 4px 16px -2px #0f172a0a;padding:2.25rem 2rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:1.5rem;text-align:center}.login-logo{height:60px;width:auto;object-fit:contain;margin:0 auto}.login-header h2{font-size:1.35rem;font-weight:800;color:var(--rv-navy);margin-top:.5rem}.login-header p{font-size:.85rem;color:var(--rv-text-muted);margin-top:.25rem}.login-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.8rem;font-weight:700;color:var(--rv-navy)}.login-input{width:100%;padding:.75rem .95rem;border:1.5px solid var(--rv-border);border-radius:var(--radius-md);font-size:.95rem;background:#fff;transition:border-color .15s ease;font-family:inherit}.login-input:focus{outline:none;border-color:var(--rv-navy)}.btn-login-submit{margin-top:.5rem;width:100%;padding:.85rem;background:var(--rv-navy);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 12px #00336640;transition:all .15s ease}.btn-login-submit:hover{background:var(--rv-navy-light);transform:translateY(-1px)}.login-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:.825rem;font-weight:600;padding:.55rem .85rem;border-radius:var(--radius-sm);text-align:center}.admin-module-selector-card{background:#fff;border:1.5px solid var(--rv-border);border-radius:var(--radius-lg);padding:1.15rem 1.25rem;box-shadow:0 4px 16px #0000000a;display:flex;flex-direction:column;gap:.75rem}@media (min-width: 640px){.admin-module-selector-card{flex-direction:row;align-items:center;justify-content:space-between}}.admin-module-selector-info{display:flex;align-items:center;gap:.75rem}.admin-module-selector-icon{width:44px;height:44px;border-radius:var(--radius-md);background:#00336614;color:var(--rv-navy);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.admin-module-selector-titles{display:flex;flex-direction:column}.admin-module-badge{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--rv-navy)}.admin-module-current-name{font-size:1.1rem;font-weight:800;color:var(--rv-text);margin:0}.admin-dropdown-wrapper{position:relative;min-width:280px}.admin-module-select{width:100%;padding:.85rem 2.5rem .85rem 1.15rem;font-size:.95rem;font-weight:700;color:var(--rv-navy);background-color:var(--rv-surface-subtle);border:2px solid var(--rv-navy);border-radius:var(--radius-md);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;transition:all .2s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23003366' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.1rem}.admin-module-select:hover{background-color:#fff;box-shadow:0 4px 14px #0033661f}.admin-module-select:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c733}.admin-tiles-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 640px){.admin-tiles-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.admin-tiles-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}.admin-hub-tile{background:#fff;border:1.5px solid var(--rv-border);border-radius:var(--radius-lg);padding:1.35rem 1.4rem;display:flex;flex-direction:column;justify-content:space-between;text-align:left;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 16px #0033660a;position:relative;overflow:hidden}.admin-hub-tile:hover{border-color:var(--rv-navy);transform:translateY(-2px);box-shadow:0 8px 24px #0033661f}.admin-hub-tile:active{transform:translateY(0)}.admin-hub-tile-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.admin-hub-tile-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:var(--rv-surface-subtle);border:1px solid rgba(0,51,102,.08)}.admin-hub-tile-badge{font-size:.75rem;font-weight:800;padding:.3rem .65rem;border-radius:20px;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.admin-hub-tile-title{font-size:1.15rem;font-weight:800;color:var(--rv-navy);margin:0 0 .35rem}.admin-hub-tile-desc{font-size:.85rem;color:var(--rv-text-muted);line-height:1.45;margin:0 0 1rem}.admin-hub-tile-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f1f5f9;padding-top:.85rem;font-size:.85rem;font-weight:700;color:#0284c7}.btn-back-overview{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1.5px solid var(--rv-border);padding:.45rem .85rem;border-radius:var(--radius-md);font-size:.825rem;font-weight:700;color:var(--rv-navy);cursor:pointer;transition:all .15s ease}.btn-back-overview:hover{background:#fff;border-color:var(--rv-navy);box-shadow:0 2px 8px #00336614}.btn-excel-export{display:inline-flex;align-items:center;gap:.4rem;background:#f0fdf4;border:1.5px solid #bbf7d0;padding:.45rem .85rem;border-radius:var(--radius-md);font-size:.825rem;font-weight:700;color:#166534;cursor:pointer;transition:all .15s ease}.btn-excel-export:hover{background:#dcfce7;border-color:#86efac;box-shadow:0 2px 8px #1665341f;transform:translateY(-1px)}.btn-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:#25d366;color:#fff;font-weight:800;font-size:.9rem;padding:.75rem 1.25rem;border-radius:var(--radius-md);border:none;cursor:pointer;text-decoration:none;transition:all .2s ease;box-shadow:0 3px 10px #25d3664d}.btn-whatsapp:hover{background-color:#1ebc59;transform:translateY(-1px);box-shadow:0 6px 16px #25d36666}.btn-whatsapp:active{transform:translateY(0)}.audio-track-card{background:var(--rv-surface-subtle);border:1px solid var(--rv-border);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.6rem}.audio-track-card audio{width:100%;height:38px;border-radius:var(--radius-sm)}.member-search-box{position:relative;width:100%}.member-search-input{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:1.5px solid var(--rv-border);border-radius:var(--radius-md);font-size:.925rem;background:#fff;outline:none;transition:border-color .15s ease}.member-search-input:focus{border-color:var(--rv-navy);box-shadow:0 0 0 3px #0033661a}.member-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--rv-text-muted)}.filter-pills-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:4px 0;overflow:visible}.filter-pill{padding:.4rem .85rem;border-radius:9999px;border:1.5px solid var(--rv-border-subtle);background:#fff;color:var(--rv-text-muted);font-size:.8rem;font-weight:700;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.3rem;box-sizing:border-box;position:relative}.filter-pill.active{background:var(--rv-navy);color:#fff;border-color:var(--rv-navy);box-shadow:0 2px 6px #0363}.filter-pill:hover:not(.active){border-color:var(--rv-navy-light);color:var(--rv-navy)}.member-filters-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.25rem}@media (max-width: 480px){.member-filters-row{gap:.35rem}}.filter-select-wrapper{position:relative;width:100%}.filter-select{width:100%;padding:.45rem .5rem;font-size:.78rem;font-weight:600;border-radius:var(--radius-sm);border:1.5px solid var(--rv-border);background:#fff;color:var(--rv-text);cursor:pointer;outline:none;transition:all .15s ease;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.filter-select:focus,.filter-select:hover{border-color:var(--rv-navy-light)}.filter-select.active{background:#f0f7ff;border-color:var(--rv-navy);color:var(--rv-navy);font-weight:800;box-shadow:0 1px 4px #0033661f}.member-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.member-card{background:#fff;border-radius:var(--radius-md);border:1.5px solid var(--rv-border-subtle);padding:1.15rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease}.member-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.member-card-header{display:flex;align-items:center;gap:.85rem}.member-avatar-badge{width:44px;height:44px;border-radius:50%;background:var(--rv-surface-subtle);border:1.5px solid var(--rv-border-subtle);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;overflow:hidden}.member-avatar-img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1.5px solid var(--rv-navy);flex-shrink:0;background:#fff}.member-info-main{flex:1;min-width:0}.member-name{font-size:1.05rem;font-weight:800;color:var(--rv-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-upn{font-size:.775rem;color:var(--rv-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-badges-row{display:flex;flex-wrap:wrap;gap:.35rem}.badge-voice{padding:.2rem .55rem;border-radius:6px;font-size:.725rem;font-weight:800;background:#e0f2fe;color:#0369a1}.badge-voice.Sopran{background:#fce7f3;color:#be185d}.badge-voice.Alt{background:#fef3c7;color:#b45309}.badge-voice.Tenor{background:#e0f2fe;color:#0369a1}.badge-voice.Bass{background:#dcfce7;color:#15803d}.badge-role{padding:.2rem .55rem;border-radius:6px;font-size:.725rem;font-weight:800}.badge-role.vorstand{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.badge-role.noten,.badge-role.notenwart{background:#ede9fe;color:#6b21a8;border:1px solid #ddd6fe}.badge-role.chorleitung{background:#ccfbf1;color:#0f766e;border:1px solid #99f6e4}.badge-role.stimmgruppenführer,.badge-role.stimmgruppenfuehrer{background:#fef08a;color:#854d0e;border:1px solid #fde047}.badge-role.terminverwaltung{background:#e0e7ff;color:#3730a3;border:1px solid #c7d2fe}.badge-role.mitglied{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.badge-role.onboarding{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}.badge-status{padding:.2rem .55rem;border-radius:6px;font-size:.725rem;font-weight:700}.badge-status.active{background:#dcfce7;color:#166534}.badge-status.invited{background:#fffbeb;color:#b45309;border:1px dashed #f59e0b}.badge-status.disabled{background:#fee2e2;color:#991b1b}.member-note-pill-trigger{position:relative;display:inline-flex;align-items:center;gap:.25rem;background:#fefce8;border:1px solid #fef08a;color:#854d0e;padding:.2rem .55rem;border-radius:6px;font-size:.725rem;font-weight:700;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.member-note-pill-trigger:hover{background:#fef9c3;border-color:#fde047}.member-note-hover-popover{display:none;position:absolute;bottom:calc(100% + 6px);left:0;width:250px;max-width:80vw;background:#fff;border:1px solid #fde047;box-shadow:0 4px 14px #854d0e2e;padding:.6rem .75rem;border-radius:8px;color:#451a03;font-size:.775rem;font-weight:500;line-height:1.4;z-index:100;white-space:normal;pointer-events:none}@media (hover: hover){.member-note-pill-trigger:hover .member-note-hover-popover{display:block}}.member-note-expanded-box{background:#fefce8;border:1px solid #fef08a;border-left:3px solid #eab308;border-radius:8px;padding:.5rem .75rem;cursor:pointer;margin-top:.25rem}.member-contact-details{display:flex;flex-direction:column;gap:.35rem;background:var(--rv-surface-subtle);padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:.8rem}.contact-row-item{display:flex;align-items:center;gap:.5rem;color:var(--rv-text);overflow:hidden;text-overflow:ellipsis}.contact-row-item a{color:var(--rv-navy);text-decoration:none;font-weight:600}.contact-row-item a:hover{text-decoration:underline}.member-card-actions{display:flex;gap:.5rem;margin-top:auto}.btn-card-action{flex:1;padding:.5rem .75rem;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;border:1.5px solid var(--rv-border);background:#fff;color:var(--rv-text);display:flex;align-items:center;justify-content:center;gap:.35rem;transition:all .15s ease}.btn-card-action:hover{border-color:var(--rv-navy);color:var(--rv-navy)}.btn-card-action.primary{background:var(--rv-navy);color:#fff;border-color:var(--rv-navy)}.btn-card-action.primary:hover{background:var(--rv-navy-light)}.wizard-box{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--rv-border-subtle);box-shadow:var(--shadow-card);padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.wizard-stepper{display:flex;align-items:center;justify-content:space-between;position:relative;margin-bottom:.5rem}.wizard-step-node{display:flex;flex-direction:column;align-items:center;gap:.35rem;z-index:2;cursor:pointer}.step-circle{width:38px;height:38px;border-radius:50%;background:#f1f5f9;border:2px solid var(--rv-border);color:var(--rv-text-muted);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;transition:all .2s ease}.wizard-step-node.active .step-circle{background:var(--rv-navy);border-color:var(--rv-navy);color:#fff;box-shadow:0 0 0 4px #00336626}.wizard-step-node.completed .step-circle{background:#16a34a;border-color:#16a34a;color:#fff}.step-label{font-size:.775rem;font-weight:700;color:var(--rv-text-muted)}.wizard-step-node.active .step-label{color:var(--rv-navy);font-weight:800}.wizard-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.wizard-buttons{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1.5px solid var(--rv-border-subtle)}.btn-wizard-nav{padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.925rem;font-weight:800;cursor:pointer;transition:all .15s ease;border:none}.btn-wizard-prev{background:#f1f5f9;color:var(--rv-text);border:1.5px solid var(--rv-border)}.btn-wizard-prev:hover{background:#e2e8f0}.btn-wizard-next{background:var(--rv-navy);color:#fff;box-shadow:0 4px 12px #00336640}.btn-wizard-next:hover{background:var(--rv-navy-light)}.offboard-card{background:#fff;border-radius:var(--radius-lg);border:2px solid #fecaca;padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-card)}.offboard-warning-banner{background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-md);padding:1rem;display:flex;gap:.75rem;color:#991b1b;font-size:.875rem;line-height:1.5}.offboard-member-summary{background:var(--rv-surface-subtle);border:1.5px solid var(--rv-border-subtle);border-radius:var(--radius-md);padding:1.25rem;display:flex;flex-direction:column;gap:.65rem}.btn-danger-execute{background:#dc2626;color:#fff;border:none;border-radius:var(--radius-md);padding:.85rem 1.5rem;font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 14px #dc26264d;transition:all .15s ease}.btn-danger-execute:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.btn-danger-execute:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.scan-dropzone-box{background:linear-gradient(135deg,#f0fdf4,#e0f2fe);border:2px dashed #0284c7;border-radius:var(--radius-md);padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;box-shadow:0 4px 16px #0284c714;margin-bottom:.5rem}@media (max-width: 640px){.scan-dropzone-box{flex-direction:column;align-items:flex-start}}.scan-info h4{font-size:1rem;font-weight:800;color:var(--rv-navy);display:flex;align-items:center;gap:.4rem}.scan-info p{font-size:.825rem;color:#334155;margin-top:.25rem;line-height:1.45}.btn-scan-upload{display:inline-flex;align-items:center;gap:.5rem;background:var(--rv-navy);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px #00336640;transition:all .15s ease;flex-shrink:0}.btn-scan-upload:hover{background:var(--rv-navy-light);transform:translateY(-1px)}.scan-status-alert{padding:.85rem 1.15rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:.65rem;animation:fadeIn .2s ease}.scan-status-alert.loading{background:#eff6ff;border:1.5px solid #93c5fd;color:#1e40af}.scan-status-alert.success{background:#ecfdf5;border:1.5px solid #86efac;color:#065f46}.field-prefilled-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:800;color:#059669;background:#d1fae5;padding:.15rem .45rem;border-radius:4px;margin-left:.5rem}.sepa-card{background:#fafafa;border:1.5px solid #e5e7eb;border-radius:var(--radius-md);padding:1.15rem;display:flex;flex-direction:column;gap:.85rem;grid-column:1 / -1}.sepa-card-title{font-size:.95rem;font-weight:800;color:var(--rv-navy);display:flex;align-items:center;gap:.45rem}.scanned-doc-banner{background:#f8fafc;border:1.5px solid #cbd5e1;border-left:4px solid var(--rv-primary);border-radius:var(--radius-md);padding:.85rem 1.15rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;box-shadow:0 2px 8px #0000000a;animation:fadeIn .25s ease}@media (max-width: 680px){.scanned-doc-banner{flex-direction:column;align-items:flex-start}}.scanned-doc-info{display:flex;align-items:center;gap:.75rem}.scanned-doc-icon{font-size:1.75rem;flex-shrink:0}.scanned-doc-title{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--rv-navy)}.scanned-doc-badge{font-size:.7rem;font-weight:700;color:#0369a1;background:#e0f2fe;padding:.15rem .45rem;border-radius:4px}.scanned-doc-sub{font-size:.8rem;color:var(--rv-text-muted);margin-top:.15rem}.scanned-doc-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.btn-preview-toggle{background:#fff;color:var(--rv-navy);border:1.5px solid #cbd5e1;border-radius:var(--radius-sm);padding:.45rem .9rem;font-size:.825rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease;box-shadow:0 1px 3px #0000000d}.btn-preview-toggle:hover{background:#f1f5f9;border-color:#94a3b8;transform:translateY(-1px)}.btn-preview-toggle.active{background:var(--rv-primary);color:#fff;border-color:var(--rv-primary)}.btn-preview-ext{background:#fff;color:var(--rv-text-muted);border:1.5px solid #cbd5e1;border-radius:var(--radius-sm);padding:.45rem .75rem;font-size:.825rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;transition:all .15s ease}.btn-preview-ext:hover{background:#f1f5f9;color:var(--rv-navy)}.btn-scan-ref-toggle{background:#fff;color:var(--rv-navy);border:1.5px solid #0284c7;border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.875rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .15s ease}.btn-scan-ref-toggle:hover{background:#f0f9ff;border-color:#0369a1;transform:translateY(-1px)}.btn-preview-pill{background:#fff;color:var(--rv-primary);border:1px solid var(--rv-primary);border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all .15s ease}.btn-preview-pill:hover{background:var(--rv-primary);color:#fff}.scanned-doc-preview-container{border:2px solid #334155;border-radius:var(--radius-md);background:#0f172a;overflow:hidden;margin-bottom:1.25rem;box-shadow:0 8px 24px #00000026;animation:fadeIn .25s ease}.scanned-doc-preview-header{background:#1e293b;color:#f8fafc;padding:.65rem 1rem;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #334155}.btn-close-preview{background:transparent;border:none;color:#94a3b8;font-size:1.1rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-close-preview:hover{background:#ffffff1a;color:#fff}.scanned-doc-preview-body{padding:.75rem;background:#0f172a;max-height:520px;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start}.scanned-doc-iframe{width:100%;height:500px;border:none;border-radius:6px;background:#fff}.scanned-doc-img{max-width:100%;max-height:500px;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 4px 16px #0006;background:#fff}.attendance-global-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:.85rem 1rem;margin-top:.5rem}.attendance-progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:.65rem}.attendance-progress-fill{height:100%;background:var(--rv-success);border-radius:999px;transition:width .3s ease}.attendance-legend{display:flex;gap:1rem;font-size:.75rem;color:var(--rv-text-muted)}.attendance-legend span{display:inline-flex;align-items:center;gap:.3rem}.legend-dot{font-size:.75rem;font-weight:700}.voice-accordions-list{display:flex;flex-direction:column;gap:.5rem}.voice-accordion-card{border:1px solid #e2e8f0;border-radius:var(--radius-md);background:#fff;overflow:hidden;transition:border-color .15s ease}.voice-accordion-card.user-voice-highlight{border-color:#0366;box-shadow:0 2px 8px #0033660d}.voice-accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background:#f8fafc;border:none;cursor:pointer;text-align:left;transition:background .15s ease}.voice-accordion-header:hover{background:#f1f5f9}.voice-title-label{font-size:.95rem;font-weight:800;color:var(--rv-navy)}.badge-my-voice{font-size:.675rem;font-weight:700;background:var(--rv-navy);color:#fff;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.02em}.voice-stat-chip{font-size:.8rem;color:var(--rv-text)}.voice-stat-chip strong{color:var(--rv-success)}.pending-subtext{color:var(--rv-text-muted);font-size:.75rem;margin-left:.3rem}.voice-chevron{font-size:.75rem;color:var(--rv-text-muted)}.voice-accordion-content{padding:.75rem 1rem;border-top:1px solid #f1f5f9;background:#fff}.voice-members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.45rem}.voice-member-item{display:flex;align-items:center;gap:.45rem;padding:.35rem .65rem;border-radius:var(--radius-sm);font-size:.8rem;background:#f8fafc;border:1px solid #e2e8f0}.voice-member-item.is-self{border-color:var(--rv-navy);background:#eff6ff}.member-status-icon{font-weight:800;font-size:.8rem;min-width:14px}.member-name-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--rv-text)}.member-status-badge{font-size:.7rem;font-weight:700;padding:.1rem .4rem;border-radius:999px}.voice-member-item.member-chip-yes{background:#f0fdf4;border-color:#bbf7d0}.voice-member-item.member-chip-yes .member-status-icon,.voice-member-item.member-chip-yes .member-status-badge{color:#166534}.voice-member-item.member-chip-no{background:#f8fafc;border-color:#e2e8f0}.voice-member-item.member-chip-no .member-status-icon,.voice-member-item.member-chip-no .member-status-badge{color:#64748b}.voice-member-item.member-chip-none{background:#fffbeb;border-color:#fef3c7}.voice-member-item.member-chip-none .member-status-icon,.voice-member-item.member-chip-none .member-status-badge{color:#92400e}.homework-frame-text{background:#fffdf5;border:1px solid rgba(245,158,11,.35);border-radius:var(--radius-md);padding:.85rem 1rem;margin-bottom:1rem}.homework-frame-files{background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:var(--radius-md);padding:.85rem 1rem;margin-bottom:1rem;box-shadow:0 2px 8px #00000005}.homework-frame-header{display:flex;align-items:center;gap:.45rem}.homework-text-body{margin-top:.45rem;display:flex;flex-direction:column;gap:.35rem}.homework-text-line{display:flex;align-items:flex-start;gap:.45rem;font-size:.875rem;color:#78350f;line-height:1.4}.homework-bullet{font-weight:800;color:#b45309}.homework-filters-toolbar{display:flex;flex-direction:column;gap:.65rem;padding:.75rem .85rem;background:#f8fafc;border-radius:var(--radius-sm);margin-bottom:1rem;border:1px solid #e2e8f0}.filter-group{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.filter-group-label{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--rv-text-muted);min-width:65px}.filter-pill-row{display:flex;flex-wrap:wrap;gap:.35rem;padding:4px 0;overflow:visible}.filter-pill-btn{padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#fff;border:1px solid #cbd5e1;color:var(--rv-navy);cursor:pointer;transition:all .15s ease;box-sizing:border-box;position:relative}.filter-pill-btn:hover{background:#f1f5f9;border-color:var(--rv-navy)}.filter-pill-btn.active{background:var(--rv-navy);color:#fff;border-color:var(--rv-navy);box-shadow:0 2px 6px #00336640}.homework-pieces-container{display:flex;flex-direction:column;gap:.85rem}.homework-piece-card{border:1px solid #e2e8f0;border-radius:var(--radius-sm);padding:.75rem .9rem;background:#fafafa}.piece-card-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #e2e8f0;padding-bottom:.4rem;margin-bottom:.5rem}.piece-title-text{font-size:.95rem;font-weight:800;color:var(--rv-navy);margin:0}.piece-composer-text{font-size:.75rem;color:var(--rv-text-muted);display:block}.piece-files-count{font-size:.725rem;font-weight:700;color:var(--rv-text-muted)}.piece-files-list{display:flex;flex-direction:column;gap:.35rem}.homework-file-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem .5rem;background:#fff;border:1px solid #f1f5f9;border-radius:6px;gap:.5rem}.file-info-col{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1}.file-type-icon{font-size:.9rem;flex-shrink:0}.file-name-text{font-size:.8rem;font-weight:600;color:var(--rv-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-badges-col{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.file-badge{font-size:.675rem;font-weight:700;padding:.15rem .45rem;border-radius:999px}.voice-badge.voice-tenor{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.voice-badge.voice-bass{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.voice-badge.voice-sopran{background:#fdf2f8;color:#9d174d;border:1px solid #fbcfe8}.voice-badge.voice-alt{background:#f5f3ff;color:#5b21b6;border:1px solid #ddd6fe}.voice-badge.voice-alle{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.file-open-btn{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .6rem;font-size:.725rem;font-weight:700;border-radius:6px;border:1px solid var(--rv-navy);background:#fff;color:var(--rv-navy);text-decoration:none;cursor:pointer;transition:all .15s ease;white-space:nowrap}.file-open-btn:hover{background:var(--rv-navy);color:#fff;text-decoration:none}.rv-audio-player-bar{position:fixed;left:0;right:0;bottom:64px;background:#1a2b4cf5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.18);box-shadow:0 -6px 24px #00000040;z-index:9500;padding:.55rem 1rem .65rem;color:#fff;display:flex;flex-direction:column;gap:.35rem;animation:slideUpPlayer .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUpPlayer{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 769px){.rv-audio-player-bar{bottom:0;max-width:720px;margin:0 auto;border-radius:14px 14px 0 0;border:1px solid rgba(255,255,255,.2);border-bottom:none}}.audio-player-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.audio-player-info{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.audio-player-icon{font-size:1.15rem;line-height:1}.audio-player-text{display:flex;align-items:center;gap:.45rem;min-width:0}.audio-player-title{font-size:.85rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-player-voice-badge{font-size:.68rem;font-weight:800;padding:.15rem .45rem;border-radius:4px;background:var(--rv-coral);color:#fff;white-space:nowrap}.audio-player-top-actions{display:flex;align-items:center;gap:.35rem}.audio-player-btn-icon{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.8rem;text-decoration:none;transition:all .15s ease}.audio-player-btn-icon:hover{background:#ffffff40;color:#fff}.audio-player-progress-row{display:flex;align-items:center;gap:.5rem}.audio-time{font-size:.72rem;font-weight:600;color:#ffffffbf;font-variant-numeric:tabular-nums;min-width:30px}.audio-scrubber{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:5px;border-radius:3px;background:#ffffff40;outline:none;cursor:pointer}.audio-scrubber::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--rv-gold);cursor:pointer;box-shadow:0 0 6px #0000004d}.audio-scrubber::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--rv-gold);cursor:pointer;border:none}.audio-player-controls-row{display:flex;align-items:center;justify-content:center;gap:.85rem}.audio-control-btn{border:none;border-radius:20px;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.audio-control-btn.jump-btn{background:#ffffff1f;color:#fff;font-size:.75rem;padding:.3rem .65rem;border:1px solid rgba(255,255,255,.15)}.audio-control-btn.jump-btn:hover{background:#ffffff38}.audio-control-btn.play-btn{background:var(--rv-gold);color:var(--rv-navy);width:38px;height:38px;border-radius:50%;font-size:1.15rem;box-shadow:0 2px 8px #0000004d}.audio-control-btn.play-btn:hover{transform:scale(1.05)}.audio-control-btn.speed-btn{background:#ffffff1f;color:var(--rv-gold);font-size:.75rem;padding:.3rem .55rem;border:1px solid rgba(255,255,255,.2)}.audio-control-btn.speed-btn:hover{background:#ffffff38}.doc-viewer-overlay{z-index:9000!important;background:#0f172abf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.rv-doc-viewer-container{width:95vw;max-width:1100px;height:92vh;background:#0f172a;border-radius:12px;border:1px solid rgba(255,255,255,.15);box-shadow:0 16px 48px #00000080;display:flex;flex-direction:column;overflow:hidden;animation:modalScaleUp .18s cubic-bezier(.16,1,.3,1)}.doc-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:#1e293b;border-bottom:1px solid rgba(255,255,255,.1);color:#fff}.doc-viewer-title-group{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.doc-viewer-icon{font-size:1.35rem;line-height:1}.doc-viewer-piece{font-size:.925rem;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-viewer-filename{font-size:.75rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-viewer-actions{display:flex;align-items:center;gap:.5rem}.btn-viewer-action{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;font-weight:700;border-radius:6px;text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-viewer-action.download-btn{background:var(--rv-gold);color:var(--rv-navy);border:none}.btn-viewer-action.download-btn:hover{filter:brightness(1.08)}.btn-viewer-action.external-btn{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.15)}.btn-viewer-action.external-btn:hover{background:#fff3}.btn-viewer-close{background:none;border:none;color:#94a3b8;font-size:1.25rem;cursor:pointer;padding:.2rem .5rem;border-radius:4px}.btn-viewer-close:hover{color:#fff;background:#ffffff1a}.doc-viewer-body{flex:1;background:#020617;overflow:hidden;display:flex;align-items:center;justify-content:center}.doc-viewer-iframe{width:100%;height:100%;border:none;background:#fff}.doc-viewer-image-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto}.doc-viewer-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 4px 20px #0006}@media (max-width: 600px){.btn-text-desktop{display:none}}
