body{opacity:1}body.web-app{min-height:100vh;margin:0}.window-controls{display:none}.web-app-note{opacity:.8;margin-top:16px;font-size:.9rem}.app-section{margin-top:16px}.app-chip{border-radius:999px;margin-left:8px;padding:4px 10px;font-size:.8rem;display:inline-block}.app-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.app-card{border:1px solid var(--border);background:var(--accent-light);border-radius:12px;padding:12px}.app-card h3{margin:0 0 8px;font-size:1rem}.app-card p{opacity:.85;margin:0;font-size:.9rem}.tab-content{display:none}.tab-content.active{display:block}.app-hidden{display:none!important}.app-result-count{opacity:.8;margin-top:8px;font-size:.85rem}.app-recording-card{border:1px solid var(--border);background:var(--accent-light);border-radius:10px;margin-bottom:8px;padding:12px}.app-recording-meta{opacity:.8;font-size:.85rem}.app-recording-submitter{opacity:.4;text-align:right;margin-top:4px;font-size:.7rem}body.app-locked .sidebar,body.app-locked .main-area{opacity:.96}.auth-gate{z-index:9999;backdrop-filter:blur(6px);pointer-events:none;background:#080a10e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-gate.is-hidden{display:none}.auth-gate-card{pointer-events:auto;background:#10121cfa;border:1px solid #ffffff24;border-radius:14px;width:min(560px,100vw - 2rem);padding:1rem}.auth-gate-badge{letter-spacing:.01em;opacity:.95;border:1px solid #ffffff3d;border-radius:999px;margin:.35rem 0 .25rem;padding:.2rem .6rem;font-size:.78rem;display:inline-block}.auth-gate-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.auth-gate-actions--secondary{margin-top:.5rem}.auth-gate-status{opacity:.88;margin-top:.75rem;font-size:.85rem}.desktop-download-status{opacity:.8;margin:8px 0 0;font-size:.75rem}.desktop-download-help{opacity:.92;margin-top:.65rem;font-size:.78rem}.desktop-download-help summary{cursor:pointer;color:var(--accent,#8ea2ff)}.desktop-download-help-body{gap:.45rem;margin-top:.5rem;display:grid}.desktop-download-help-list{margin:0;padding-left:1.1rem}.desktop-download-checksum-label{opacity:.85;margin:0;font-size:.74rem}.desktop-download-sha256{word-break:break-all;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:6px;padding:.35rem .45rem;font-size:.68rem;line-height:1.35;display:block}.desktop-download-help-footnote{margin:.35rem 0 0;font-size:.74rem}a.btn.is-disabled,.nav-item.is-disabled{pointer-events:none;opacity:.55;cursor:not-allowed;transform:none!important}.ban-appeal-divider{border:none;border-top:1px solid #ffffff1f;margin:1rem 0}.ban-appeal-reason{opacity:.75;margin-bottom:.5rem;font-size:.88rem;font-style:italic}.ban-appeal-label{margin-bottom:.5rem;font-size:1rem;font-weight:600;display:block}.ban-appeal-textarea{width:100%;min-height:100px;color:inherit;resize:vertical;box-sizing:border-box;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;padding:.6rem .75rem;font-size:.9rem}.ban-appeal-hint{opacity:.6;margin:.4rem 0 .75rem;font-size:.78rem}.ban-appeal-status{opacity:.88;margin-top:.6rem;font-size:.85rem}.playback-modal{z-index:9998;backdrop-filter:blur(6px);background:#080a10e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.playback-modal.is-hidden{display:none}.playback-modal-card{background:#0a0c14fa;border:1px solid #ffffff24;border-radius:14px;width:min(1100px,100vw - 2rem);max-height:calc(100vh - 2rem);padding:.75rem}.playback-modal-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.playback-modal-title{margin:0;font-size:1rem}.playback-modal-status{min-height:1.25rem;margin:.5rem 0 0}.playback-modal-video{background:#000;border-radius:10px;width:100%;max-height:calc(100vh - 10rem)}.calendar-section-mirror .calendar-container{flex-direction:column;gap:16px;width:100%;height:100%;display:flex}.calendar-section-mirror .calendar-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.calendar-section-mirror .calendar-title h2{margin:0;font-size:clamp(18px,2vw,24px)}.calendar-section-mirror .calendar-toolbar,.calendar-section-mirror .calendar-controls,.calendar-section-mirror .view-controls,.calendar-section-mirror .zoom-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.calendar-section-mirror .zoom-level{text-align:center;min-width:52px;font-size:.9rem;font-weight:700}.calendar-section-mirror .calendar-main{background:var(--card-background);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:16px;position:relative;overflow:hidden}.calendar-section-mirror .timeline-container{background:radial-gradient(circle at 20% 0%, #764ba247, transparent 45%), radial-gradient(circle at 80% 10%, #667eea3d, transparent 40%), linear-gradient(180deg, #0a0c16b8 0%, #080a12eb 100%), var(--background);scrollbar-width:thin;position:relative;overflow:auto}.calendar-section-mirror .timeline-content{min-height:420px;position:relative}.calendar-section-mirror .timeline-date-header,.calendar-section-mirror .timeline-time-header{z-index:2;backdrop-filter:blur(8px);display:flex;position:sticky;top:0}.calendar-section-mirror .timeline-time-header{z-index:3;border-bottom:1px solid #ffffff24;top:42px}.calendar-section-mirror .timeline-day-header{background:#121422e0;border-bottom:1px solid #ffffff26;border-right:1px solid #ffffff1f;padding:10px 12px;font-weight:700}.calendar-section-mirror .timeline-time-slot{height:34px;color:var(--text-secondary);background:#0a0c18b3;border-right:1px dashed #ffffff14;flex:none;padding:8px 0 0 4px;font-size:.72rem}.calendar-section-mirror .timeline-grid{border-top:1px solid #ffffff14;position:relative}.calendar-section-mirror .calendar-event-card{text-align:left;color:var(--text-primary);box-shadow:var(--shadow-soft);background:#181c2ee6;border:1px solid #ffffff3d;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex;position:absolute}.calendar-section-mirror .calendar-event-type{text-transform:uppercase;letter-spacing:.05em;opacity:.9;font-size:.68rem}.calendar-section-mirror .calendar-event-title{font-size:.9rem;line-height:1.3}.calendar-section-mirror .calendar-event-time{color:var(--text-secondary);font-size:.75rem}.calendar-section-mirror .calendar-event-card.type-stream{border-color:#818cf8d9}.calendar-section-mirror .calendar-event-card.type-collab{border-color:#2dd4bfd9}.calendar-section-mirror .calendar-event-card.type-performance{border-color:#fbbf24e0}.calendar-section-mirror .calendar-event-card.type-other{border-color:#ec4899d9}.calendar-section-mirror .calendar-event-card.is-complete{opacity:.55;filter:grayscale(.35)}.calendar-section-mirror .calendar-event-card.promoted{box-shadow:0 0 0 1px #ffd75a59}.calendar-section-mirror .promoted-star-badge{margin-right:4px}.calendar-section-mirror .current-time-line{z-index:20;pointer-events:none;background:linear-gradient(#e74c3c,#c0392b);width:3px;position:absolute;top:42px;bottom:0}.calendar-section-mirror .current-time-indicator{border-top:10px solid #e74c3c;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.calendar-section-mirror .current-time-label{color:#fff;white-space:nowrap;background:#e74c3c;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;position:absolute;top:8px;left:50%;transform:translate(-50%)}.calendar-section-mirror .calendar-empty-state{z-index:15;pointer-events:none;text-align:center;backdrop-filter:blur(4px);background:#080a12c7;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:absolute;inset:0}.calendar-section-mirror .calendar-empty-state.is-hidden{display:none}.calendar-section-mirror .calendar-empty-icon{opacity:.85;font-size:2.5rem}.calendar-section-mirror .calendar-empty-message{color:var(--text-secondary);margin:0}.calendar-section-mirror .calendar-empty-hint{max-width:28rem;color:var(--text-secondary);opacity:.85;margin:0;font-size:.85rem}@keyframes calendar-event-pulse-web{0%,to{box-shadow:0 0 #667eea8c}50%{box-shadow:0 0 0 10px #667eea00}}.calendar-section-mirror .calendar-event-card.calendar-event-highlight{outline:2px solid var(--primary-button);outline-offset:2px;z-index:25;animation:.9s 2 calendar-event-pulse-web}.calendar-section-mirror .calendar-details-body{padding:12px 0 4px}.mobile-nav-toggle{cursor:pointer;color:var(--text-primary);touch-action:manipulation;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-right:4px;padding:10px;display:none}.mobile-nav-toggle svg{width:22px;height:22px;display:block}.sidebar-mobile-overlay{z-index:199;backdrop-filter:blur(2px);opacity:0;pointer-events:none;background:#0009;transition:opacity .3s;display:none;position:fixed;inset:0}.sidebar-mobile-overlay.is-visible{opacity:1;pointer-events:auto}body.sidebar-mobile-open{overflow:hidden}@media (width<=768px){body.web-app{overflow-x:hidden}.sidebar{z-index:200;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:var(--sidebar-width)!important;min-width:var(--sidebar-width)!important;max-width:var(--sidebar-width)!important}.sidebar.mobile-open{transform:translate(0)}.main-area{height:100dvh;padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);width:100%!important;margin-left:0!important}.sidebar-mobile-overlay{display:block}.mobile-nav-toggle{display:flex}.sidebar-toggle{display:none}.app-shell,.app-frame,.container{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.container{border-radius:12px;padding:10px}.titlebar{padding:8px 10px;padding-top:max(8px, env(safe-area-inset-top,0px))}.header-content{flex-wrap:nowrap;align-items:center;gap:8px}.header-left h1{font-size:1rem}.header-center{flex:auto;min-width:0}.header-status{white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.main-content{padding:0;overflow-x:hidden}.section{padding:12px}.section h2{font-size:clamp(1rem,4.5vw,1.25rem)}.performances-tabs-inline{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;gap:8px;margin-bottom:12px;display:flex;overflow-x:auto}.performances-tabs-inline::-webkit-scrollbar{display:none}.perf-tab,.my-perf-tab{white-space:nowrap;touch-action:manipulation;flex-shrink:0;min-height:44px;padding:8px 14px;font-size:.85em}.recordings-list,#performancesTab .recordings-list,#my-performancesTab .recordings-list{flex-direction:column;gap:12px;width:100%;min-width:0;grid-template-columns:none!important;display:flex!important}.recording-card,.performance-card{min-height:unset;box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:14px 16px}.recording-info{min-height:unset}.recording-actions,.performance-actions{min-height:unset;justify-content:flex-start;gap:8px}.recording-actions .btn,.performance-actions .btn,.recordings-actions .btn{touch-action:manipulation;min-height:44px}.promoted-events-container{flex-direction:column;gap:10px;display:flex}.community-feed-refresh-failed-banner{flex-wrap:wrap;gap:8px}.calendar-container,.calendar-section-mirror .calendar-container{--date-header-height:48px;--time-header-height:32px;--event-card-width:min(200px, 70vw);gap:10px;min-height:0;padding:10px}.calendar-header,.calendar-section-mirror .calendar-header{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:8px}.calendar-title{width:100%;min-width:0}.calendar-toolbar,.calendar-controls,.view-controls,.zoom-controls,.calendar-section-mirror .calendar-toolbar,.calendar-section-mirror .calendar-controls,.calendar-section-mirror .view-controls,.calendar-section-mirror .zoom-controls{justify-content:flex-start;width:100%}.calendar-controls .btn,.view-controls .btn,.zoom-controls .btn{touch-action:manipulation;min-height:40px;padding:8px 12px;font-size:.85rem}.timeline-container,.calendar-section-mirror .timeline-container{-webkit-overflow-scrolling:touch;max-height:min(70dvh,560px)}.calendar-section-mirror .timeline-content{min-height:320px}.theme-selector{flex-wrap:wrap;gap:10px;padding:8px 0;display:flex}.theme-pill{touch-action:manipulation;flex:calc(50% - 10px);justify-content:flex-start;max-width:100%;min-height:44px;padding:10px 14px;font-size:.85rem}#themeTab .app-card{padding:12px}.auth-gate{-webkit-overflow-scrolling:touch;padding:max(12px, env(safe-area-inset-top,12px)) max(12px, env(safe-area-inset-right,12px)) max(12px, env(safe-area-inset-bottom,12px)) max(12px, env(safe-area-inset-left,12px));justify-content:center;align-items:flex-start;overflow-y:auto}.auth-gate-card{box-sizing:border-box;border-radius:12px;width:100%;max-width:100%;max-height:none;margin:auto 0;padding:1rem}.auth-gate-actions{flex-direction:column;align-items:stretch}.auth-gate-actions .btn{touch-action:manipulation;justify-content:center;width:100%;min-height:44px}.ban-appeal-textarea{font-size:16px}.playback-modal{justify-content:stretch;align-items:stretch;padding:0}.playback-modal-card{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:max(.5rem, env(safe-area-inset-top,.5rem)) max(.5rem, env(safe-area-inset-right,.5rem)) max(.5rem, env(safe-area-inset-bottom,.5rem)) max(.5rem, env(safe-area-inset-left,.5rem));box-sizing:border-box;border:none;border-radius:0;flex-direction:column;display:flex}.playback-modal-header{flex-shrink:0}.playback-modal-video{border-radius:8px;flex:auto;min-height:40dvh;max-height:none}#eventDetailsModal.modal{align-items:flex-end;padding:12px}#eventDetailsModal .modal-content{box-sizing:border-box;border-radius:12px 12px 0 0;width:100%;max-width:100%;max-height:min(85dvh,640px);padding:16px}.btn,.nav-item{touch-action:manipulation;min-height:44px}}@media (width>=769px){.mobile-nav-toggle,.sidebar-mobile-overlay{display:none!important}}@media (width<=380px){.theme-pill{flex:100%}.calendar-controls .btn,.view-controls .btn{flex:auto}}.web-parity-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);background:color-mix(in srgb, var(--accent) 22%, transparent);border:1px solid color-mix(in srgb, var(--border) 80%, var(--accent));border-radius:.35rem;margin-left:.35rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.web-studio-shell{flex-direction:column;gap:.75rem;min-height:0;display:flex}.web-studio-title-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.web-studio-heading{margin:0;font-size:1.15rem}.web-studio-capability{color:var(--text-secondary);max-width:36rem;margin:0;font-size:.8rem}.web-studio-section-label{color:var(--text-primary);margin:0 0 .5rem;font-size:.95rem;font-weight:700}.web-studio-track-section,.web-studio-recording-section{background:0 0;border:none;margin:0;padding:0}.web-studio-track-input-group{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.web-studio-track-input{min-width:12rem;color:var(--text-primary);background:var(--card-background);border:1px solid var(--border);border-radius:.5rem;flex:14rem;padding:.55rem .75rem;font-size:.95rem}.web-studio-upload-label{cursor:pointer;align-items:center;display:inline-flex}.web-studio-inline-status{margin:.4rem 0 0;font-size:.8rem}.web-studio-device-prompt{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text-secondary);border-radius:.4rem;margin:0 0 .5rem;padding:.4rem .65rem;font-size:.75rem}.web-studio-device-prompt p{margin:0}.web-studio-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:.65rem;display:grid}.web-studio-video-container{flex-direction:column;gap:.35rem;min-width:0;display:flex}.web-studio-video-container>h3{text-align:center;letter-spacing:.02em;color:var(--text-primary);margin:0;font-size:.85rem;font-weight:700}.web-studio-video-player,.web-studio-webcam-wrap{aspect-ratio:16/9;background:color-mix(in srgb, var(--card-background) 20%, #000 80%);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));width:100%;min-height:clamp(168px,24vh,280px);max-height:clamp(220px,42vh,440px);position:relative;overflow:hidden}.web-studio-media,.web-studio-webcam-preview{object-fit:contain;background:color-mix(in srgb, var(--card-background) 15%, #000 85%);width:100%;height:100%;display:block}.web-studio-webcam-preview{object-fit:cover;transform:scaleX(-1)}.web-studio-media:not([src]),.web-studio-media[data-empty="1"]{visibility:hidden}.web-studio-placeholder{text-align:center;color:color-mix(in srgb, var(--text-primary) 80%, transparent);pointer-events:none;justify-content:center;align-items:center;margin:0;padding:.75rem;font-size:1rem;font-weight:600;display:flex;position:absolute;inset:0}.web-studio-video-player.is-loaded .web-studio-placeholder,.web-studio-webcam-wrap.is-live .web-studio-webcam-placeholder{display:none}.web-studio-video-controls,.web-studio-recording-controls{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.web-studio-video-controls .btn,.web-studio-recording-controls .btn{padding:.45rem .75rem;font-size:.85rem;font-weight:700}.web-studio-profile-select{min-width:8rem;max-width:100%;color:var(--text-primary);background:var(--card-background);border:1px solid var(--border);border-radius:.45rem;flex:9rem;padding:.4rem .5rem;font-size:.8rem}.web-studio-recording-indicator{min-height:1.1rem;color:var(--accent);font-size:.8rem;font-weight:700}.web-studio-recording-indicator.is-recording:before{content:"● ";color:var(--error)}.web-studio-prep-footer{flex-direction:column;align-items:center;gap:.55rem;width:100%;margin-top:.75rem;padding-top:.35rem;display:flex}.web-studio-mode-selection{flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%;display:flex}.web-studio-mode-selection label{cursor:pointer;color:color-mix(in srgb, var(--text-primary) 88%, transparent);background:color-mix(in srgb, var(--text-primary) 4%, transparent);border:1px solid color-mix(in srgb, var(--text-primary) 12%, var(--border));border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .9rem;font-size:.92rem;font-weight:700;transition:border-color .15s,background .15s;display:flex}.web-studio-mode-selection label:has(input:checked){border-color:color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 18%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.web-studio-mode-selection input[type=radio]{accent-color:var(--accent)}.web-studio-start-performance-btn{min-width:min(100%,16rem);padding:.7rem 1.4rem;font-size:1.05rem;font-weight:800}@media (width<=768px){.web-studio-layout{grid-template-columns:1fr}.web-studio-video-player,.web-studio-webcam-wrap{max-height:none}}body:not(.web-parity-preview) [data-parity-preview-nav],body:not(.web-parity-preview) [data-parity-preview-tab]{display:none!important}
