*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=light]{color-scheme:light;--color-text: #213547;--color-text-secondary: #374151;--color-text-tertiary: #4b5563;--color-text-muted: #6b7280;--color-text-subtle: #9ca3af;--color-text-emphasis: #111827;--color-bg: #ffffff;--color-bg-subtle: #f9fafb;--color-bg-muted: #f3f4f6;--color-bg-inset: #fafafa;--color-surface: #ffffff;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-border-light: #f3f4f6;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-bg: #eff6ff;--color-primary-bg-hover: #dbeafe;--color-primary-border-light: #93c5fd;--color-primary-focus: #60a5fa;--color-primary-light: #3b82f6;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--color-danger-text: #991b1b;--color-success-bg: #f0fdf4;--color-success-bg-strong: #dcfce7;--color-success-text: #166534;--color-success-border: #bbf7d0;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-info-text: #1e40af;--color-overlay: rgba(0, 0, 0, .4);--color-overlay-heavy: rgba(0, 0, 0, .55);--color-shadow: rgba(0, 0, 0, .1);--color-shadow-heavy: rgba(0, 0, 0, .15);--color-shadow-overlay: rgba(0, 0, 0, .25);--color-focus-ring: rgba(37, 99, 235, .2);--color-focus-ring-light: rgba(37, 99, 235, .15);--color-primary-shadow: rgba(37, 99, 235, .1);--color-annotation-indicator: #059669;--color-waveform: #94a3b8;--color-waveform-progress: #2563eb;--color-waveform-cursor: #1d4ed8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;display:flex;flex-direction:column}#root{width:100%;min-height:100vh}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-surface);overflow-x:auto;gap:1rem}.app-logo{font-weight:700;font-size:1.25rem;color:var(--color-text);text-decoration:none}.app-nav{display:flex;gap:1rem;align-items:center}.app-nav a,.app-nav button{flex-shrink:0;white-space:nowrap}.app-nav a{color:var(--color-text-tertiary);text-decoration:none;font-size:.875rem}.app-nav a:hover{color:var(--color-text-emphasis)}.app-main{flex:1;padding:2rem;max-width:960px;margin:0 auto;width:100%;overflow-x:auto}.app-footer{padding:.5rem 1.5rem;text-align:center;font-size:.7rem;color:var(--color-text-subtle)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.auth-card{width:100%;max-width:420px}.auth-card h1{font-size:1.5rem;margin-bottom:1.5rem}.auth-error{background:var(--color-danger-bg);color:var(--color-danger-text);border:1px solid var(--color-danger-border);border-radius:.375rem;padding:.75rem;margin-bottom:1rem;font-size:.875rem}.auth-links{margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem;font-size:.875rem}.auth-links a{color:var(--color-primary);text-decoration:none}.auth-links a:hover{text-decoration:underline}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.form-group input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:.375rem;font-size:.875rem;line-height:1.5;background:var(--color-surface);color:var(--color-text)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.form-group input:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}a.btn{text-decoration:none}.auth-form .btn-primary,.auth-card .btn-primary,.dialog-body .btn-primary,.sso-info-page .btn-primary,.card>.btn-primary{width:100%}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-ghost{background:transparent;color:var(--color-text-tertiary)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-muted)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-sm{padding:.25rem .5rem;font-size:.75rem}select,.form-group select{padding:.5rem 2rem .5rem .75rem;border:1px solid var(--color-border-strong);border-radius:.375rem;font-size:.875rem;line-height:1.5;background:var(--color-surface);color:var(--color-text);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:.75rem}select:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}select:disabled,.form-group select:disabled{background-color:var(--color-bg-subtle);color:var(--color-text-muted)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{background:var(--color-bg-subtle);text-align:left;padding:.625rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.data-table td{padding:.625rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table tbody tr:hover{background:var(--color-bg-subtle)}.data-table--clickable tbody tr{cursor:pointer}.data-table .empty-row td{text-align:center;color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize;line-height:1.5}.badge-purple{background:#8b5cf626;color:#7c3aed}.badge-blue{background:#3b82f626;color:#2563eb}.badge-green{background:#10b98126;color:#059669}.badge-gray{background:#6b728026;color:#4b5563}.status-active,.status-deactivated{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem}.status-active:before,.status-deactivated:before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%}.status-active:before{background:#10b981}.status-deactivated:before{background:var(--color-text-muted)}.status-deactivated{color:var(--color-text-muted)}.page-loading{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.page-error{text-align:center;padding:3rem 1rem;color:var(--color-danger)}.filters{display:flex;gap:1rem;margin-bottom:1rem;align-items:center}.filters input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:.375rem;font-size:.875rem;background:var(--color-surface);color:var(--color-text)}.filters input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.card-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.card-header-left{display:flex;align-items:center;gap:.5rem}.expand-chevron{display:inline-flex;font-size:.625rem;color:var(--color-text-muted);transition:transform .15s ease}.expand-chevron--open{transform:rotate(90deg)}.card-actions{display:flex;gap:.5rem}.card-section{margin-top:1rem;border-top:1px solid var(--color-border);padding-top:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.form-row{display:flex;gap:.5rem}.form-row input{flex:1}.detail-row{display:flex;gap:1rem;align-items:center;margin-top:1rem}.card{border:1px solid var(--color-border);border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem;background:var(--color-surface);overflow:hidden}.card h2{font-size:1.125rem;margin-bottom:1rem}.page h1{font-size:1.5rem;margin-bottom:1.5rem}.message{padding:.75rem;border-radius:.375rem;background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border);margin-bottom:1rem;font-size:.875rem}.message-error{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger-border)}.identity-list{list-style:none}.identity-list li{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-border-light)}.identity-list li:last-child{border-bottom:none}.identity-provider{font-weight:600;text-transform:capitalize;min-width:80px}.identity-email{flex:1;color:var(--color-text-muted);font-size:.875rem}.loading-container{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--color-text-muted)}.social-login-buttons{margin-top:1rem}.social-divider{display:flex;align-items:center;gap:.75rem;color:var(--color-text-subtle);font-size:.8125rem;margin-bottom:1rem}.social-divider:before,.social-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.social-buttons-row{display:flex;flex-direction:column;gap:.5rem}.btn-social{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border:1px solid var(--color-border-strong);border-radius:.375rem;background:var(--color-surface);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;width:100%}.btn-social:hover{background:var(--color-bg-subtle);border-color:var(--color-text-subtle)}.social-icon{width:1.125rem;height:1.125rem;flex-shrink:0}.pro-badge{font-size:.625rem;font-weight:700;letter-spacing:.05em;background:var(--color-primary);color:#fff;padding:.125rem .375rem;border-radius:.25rem;margin-left:.25rem}.settings-layout{display:flex;gap:1.5rem;align-items:flex-start}.settings-tabs{display:flex;flex-direction:column;gap:.25rem;min-width:10rem}.settings-tab{text-align:left;padding:.5rem 1rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:.875rem;color:var(--color-text-secondary);transition:background .15s}.settings-tab:hover{background:var(--color-bg-muted)}.settings-tab.active{background:var(--color-primary-bg);color:var(--color-primary);font-weight:600}.settings-content{flex:1;min-width:0}.settings-placeholder{color:var(--color-text-muted);font-style:italic}.settings-hint{display:block;font-size:.75rem;color:var(--color-text-subtle);margin-top:.125rem}.settings-provider-group{border:1px solid var(--color-border);border-radius:.5rem;padding:1rem;margin-bottom:1rem}.form-group-toggle label{display:flex;align-items:center;gap:.375rem;cursor:pointer;font-weight:600}.form-group-toggle input[type=checkbox]{width:auto}.form-group-indented{margin-left:1.5rem}.settings-registration-hint{margin:.5rem 0 .75rem 1.5rem;font-size:.8125rem;color:var(--color-text-muted);line-height:1.5}.settings-registration-hint a{color:var(--color-primary);text-decoration:none;font-weight:500}.settings-registration-hint a:hover{text-decoration:underline}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{margin-bottom:0}.page-header-action{width:auto}.space-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.space-card{display:block;border:1px solid var(--color-border);border-radius:.5rem;padding:1.25rem;background:var(--color-surface);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.space-card:hover{border-color:var(--color-primary);box-shadow:0 1px 4px var(--color-primary-shadow)}.space-card-name{font-size:1rem;font-weight:600;margin-bottom:.25rem}.space-card-desc{font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.75rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.space-card-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-subtle)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--color-surface);border-radius:.5rem;padding:1.5rem;width:100%;max-width:440px;margin:1rem;max-height:calc(100vh - 2rem);overflow-y:auto;box-shadow:0 8px 32px var(--color-shadow-heavy)}.dialog h2{font-size:1.25rem;margin-bottom:1rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.dialog-btn-submit{width:auto}.member-list{list-style:none;margin-bottom:1rem}.member-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border-light)}.member-row .btn,.member-row a.btn{flex-shrink:0;width:auto}.member-row:last-child{border-bottom:none}.member-info{flex:1;min-width:0;overflow:hidden}.member-name{font-weight:500;display:block}.member-email{font-size:.8125rem;color:var(--color-text-muted);display:block}.member-role{font-size:.75rem;color:var(--color-text-subtle);text-transform:capitalize}.member-via-group{font-size:.75rem;color:var(--color-primary);display:block}.invite-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.invite-form h3{font-size:.9375rem;margin-bottom:.75rem}.invite-row{display:flex;gap:.5rem;flex-wrap:wrap}.invite-input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:.375rem;font-size:.875rem;background:var(--color-surface);color:var(--color-text)}.invite-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.invite-btn{width:auto;flex-shrink:0}.breadcrumb-link{color:var(--color-text-muted);text-decoration:none;font-size:.875rem}.breadcrumb-link:hover{color:var(--color-text-emphasis)}.breadcrumb-sep{margin:0 .5rem;color:var(--color-border-strong)}.inline-heading{display:inline;font-size:1.5rem}.pending-invitations{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.pending-invitations h3{font-size:1rem;margin-bottom:.75rem;color:var(--color-text-muted)}.invitation-badge{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;background:var(--color-warning-bg);color:var(--color-warning-text);font-weight:500}.invitation-expires{font-size:.8rem;color:var(--color-text-subtle)}.pending-invitations-dashboard{margin-bottom:1.5rem}.text-muted{color:var(--color-text-muted)}.space-description,.upload-zone-wrapper{margin-bottom:1.5rem}.upload-zone{border:2px dashed var(--color-border-strong);border-radius:.5rem;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--color-bg-inset)}.upload-zone:hover,.upload-zone--drag{border-color:var(--color-primary);background:var(--color-primary-bg)}.upload-zone--disabled{opacity:.5;pointer-events:none}.upload-zone-input{display:none}.upload-zone-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.upload-zone-icon{color:var(--color-text-subtle)}.upload-zone--drag .upload-zone-icon,.upload-zone:hover .upload-zone-icon{color:var(--color-primary)}.upload-zone-text{font-size:.9375rem;color:var(--color-text-secondary)}.upload-zone-hint{font-size:.8125rem;color:var(--color-text-subtle)}.upload-tier-info{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.8125rem;color:var(--color-text-muted)}.upload-tier-usage{font-weight:500}.upload-errors{margin-top:.5rem;padding:.75rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:.375rem}.upload-error-item{font-size:.8125rem;color:var(--color-danger-text);padding:.125rem 0}.upload-queue{margin-top:1.5rem}.upload-queue-header h3{font-size:1rem;margin-bottom:.75rem}.upload-queue-list{list-style:none}.upload-queue-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--color-border-light)}.upload-queue-item:last-child{border-bottom:none}.upload-queue-item-info{flex:1;min-width:0}.upload-queue-item-name{display:block;font-weight:500;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-queue-item-name-input{display:block;width:100%;border:1px solid var(--color-border);border-radius:.25rem;padding:.25rem .5rem;font-size:.875rem;background:var(--color-surface);color:var(--color-text)}.upload-queue-item-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.upload-queue-item-meta{display:block;font-size:.75rem;color:var(--color-text-subtle);margin-top:.125rem}.upload-queue-item-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0;padding-top:.25rem}.upload-progress-bar{width:160px;height:24px;background:var(--color-bg-muted);border-radius:.25rem;overflow:hidden;position:relative}.upload-progress-fill{height:100%;background:var(--color-primary);transition:width .2s ease}.upload-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:600;color:var(--color-text-secondary)}.upload-status-badge{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;font-weight:500}.upload-status--complete{background:var(--color-success-bg-strong);color:var(--color-success-text)}.upload-status--error{background:var(--color-danger-bg);color:var(--color-danger-text)}.upload-done-actions{display:flex;gap:.75rem;margin-top:1.5rem}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.5rem;flex-wrap:wrap}.card-header-row h2{margin-bottom:0}.media-table{width:100%;border-collapse:collapse;font-size:.875rem}.media-table th{text-align:left;padding:.5rem .75rem;font-weight:600;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.media-table td{padding:.625rem .75rem;border-bottom:1px solid var(--color-border-light);white-space:nowrap}.media-table-row:last-child td{border-bottom:none}.media-file-link{color:var(--color-primary);text-decoration:none;font-weight:500}.media-file-link:hover{text-decoration:underline}.media-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.media-detail-info{display:flex;flex-direction:column;gap:.5rem}.media-detail-row{display:flex;gap:1rem;font-size:.875rem}.media-detail-label{font-weight:500;color:var(--color-text-muted);min-width:100px}.page-header-actions{display:flex;gap:.5rem}.version-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;border-bottom:2px solid var(--color-border);padding-bottom:0}.version-tab{padding:.5rem 1rem;border:none;background:none;font-size:.875rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.version-tab:hover{color:var(--color-text-secondary)}.version-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.media-player-card{padding:0;overflow:hidden}.media-player{display:flex;flex-direction:column}.player-controls{display:flex;align-items:center;gap:.75rem;padding:.375rem 1rem .375rem 6rem;background:var(--color-bg-subtle);border-top:1px solid var(--color-border)}.download-btn{margin-left:auto}.video-player .video-element{width:100%;max-height:60vh;background:#000;display:block}.audio-player .audio-element{width:100%;display:block;padding:1rem}.waveform-player{padding-top:.5rem}.waveform-row{display:flex;align-items:center;gap:0;transition:opacity .3s}.waveform-container{flex:1;padding:.5rem 1rem .5rem 0;min-width:0}.waveform-loading{text-align:center;padding:1.5rem;color:var(--color-text-subtle);font-size:.875rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.waveform-progress-bar{width:60%;max-width:16rem;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.waveform-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .15s ease}.waveform-markers{min-height:0}.comment-timeline{border-top:1px solid var(--color-border);padding:.25rem 0}.comment-timeline-inner{position:relative;margin:0 1rem 0 0}.comment-timeline-cursor{position:absolute;top:0;bottom:0;width:1px;background:var(--color-primary);opacity:.6;pointer-events:none;z-index:2}.comment-timeline-lane{display:flex;align-items:center;height:1.5rem}.comment-timeline-lane+.comment-timeline-lane{margin-top:.125rem}.comment-timeline-label{flex-shrink:0;width:6rem;z-index:2;font-size:.625rem;font-weight:600;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .25rem;line-height:1.4}.comment-timeline-track{position:relative;flex:1;height:100%;background:var(--color-bg-muted);border-radius:3px}.comment-timeline-dot{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:var(--color-primary);border:1.5px solid var(--color-surface);transform:translate(-50%,-50%);cursor:pointer;z-index:1;padding:0;transition:transform .15s,background .15s}.comment-timeline-dot:hover{background:var(--color-primary-hover);transform:translate(-50%,-50%) scale(1.5);z-index:3}.comment-timeline-dot:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.comment-timeline-dot--near{background:#facc15;border-color:#f59e0b;transform:translate(-50%,-50%) scale(1.5);z-index:3;box-shadow:0 0 6px 2px #facc1599;animation:dot-pulse 1s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 6px 2px #facc1599}50%{box-shadow:0 0 10px 4px #facc15e6}}.play-btn-circle{flex-shrink:0;width:6rem;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;cursor:pointer;color:var(--color-primary);transition:color .15s,transform .15s}.play-btn-circle:disabled{color:var(--color-border-strong);cursor:default}.play-btn-circle:not(:disabled):hover{color:var(--color-primary-hover);transform:scale(1.1)}.play-btn-circle svg{width:2.5rem;height:2.5rem;filter:drop-shadow(0 1px 2px var(--color-shadow));background:var(--color-primary);color:#fff;fill:#fff;border-radius:50%;padding:.5rem}.play-btn-circle:disabled svg{background:var(--color-border-strong)}.image-viewer .image-container{display:flex;align-items:center;justify-content:center;min-height:200px;max-height:60vh;overflow:hidden;background:var(--color-bg-muted);position:relative}.image-viewer .image-zoom-wrapper{position:relative;display:inline-block;transition:transform .1s ease-out}.image-viewer .image-element{display:block;max-width:100%;max-height:60vh;object-fit:contain;-webkit-user-select:none;user-select:none}.zoom-controls{display:flex;align-items:center;gap:.5rem}.zoom-level{font-size:.75rem;color:var(--color-text-muted);min-width:3rem;text-align:center}.unsupported-player{padding:2rem;text-align:center}.timecode-display{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap}.timecode-separator{margin:0 .25rem;color:var(--color-text-subtle)}.timecode-duration{color:var(--color-text-muted)}.version-list{display:flex;flex-direction:column;gap:.5rem}.version-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:.375rem;cursor:pointer;transition:border-color .15s,background-color .15s}.version-card:hover{border-color:var(--color-primary-border-light);background:var(--color-primary-bg)}.version-card-selected{border-color:var(--color-primary);background:var(--color-primary-bg)}.version-card-info{display:flex;align-items:center;gap:.75rem;min-width:0}.version-card-number{font-weight:700;font-size:.875rem;color:var(--color-primary);min-width:2rem}.version-card-filename{font-weight:500;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-card-meta{font-size:.75rem;color:var(--color-text-subtle);white-space:nowrap}.version-card-actions{display:flex;gap:.5rem;flex-shrink:0;position:relative}.version-kebab-btn{font-size:1.25rem;line-height:1;padding:.25rem .4rem;letter-spacing:.1em;color:var(--color-text-muted)}.version-kebab-btn:hover{color:var(--color-text-emphasis)}.version-kebab-menu{position:absolute;right:0;top:100%;z-index:20;min-width:9rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.375rem;box-shadow:0 4px 12px var(--color-shadow);padding:.25rem 0;display:flex;flex-direction:column}.version-kebab-item{background:none;border:none;text-align:left;padding:.5rem .75rem;font-size:.8125rem;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.version-kebab-item:hover{background:var(--color-bg-muted)}.version-kebab-item-danger{color:var(--color-danger-hover)}.version-kebab-item-danger:hover{background:var(--color-danger-bg)}.upload-version-btn{position:relative;cursor:pointer}.upload-version-btn input{display:none}.server-down-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--color-overlay-heavy);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2rem}.server-down-card{background:var(--color-surface);border-radius:.75rem;padding:2.5rem;max-width:440px;width:100%;text-align:center;box-shadow:0 8px 30px var(--color-shadow-overlay)}.server-down-icon{font-size:2.5rem;margin-bottom:.75rem}.server-down-card h2{font-size:1.35rem;margin:0 0 .75rem;color:var(--color-danger-text)}.server-down-card p{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 .75rem;line-height:1.5}.server-down-hint{font-size:.825rem!important;color:var(--color-text-muted)!important}.server-down-hint code{background:var(--color-bg-muted);padding:.15em .4em;border-radius:.25rem;font-size:.85em}.server-down-spinner{margin:1.25rem auto 0;width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-danger-text);border-radius:50%;animation:server-down-spin .8s linear infinite}@keyframes server-down-spin{to{transform:rotate(360deg)}}.feedback-panel{display:flex;flex-direction:column;gap:1rem}.feedback-panel-header{display:flex;align-items:center;justify-content:space-between}.feedback-panel-header h2{margin:0;font-size:1.125rem}.feedback-count{font-weight:400;color:var(--color-text-muted);font-size:.9em}.feedback-loading,.feedback-empty{padding:1rem 0;text-align:center}.feedback-list{display:flex;flex-direction:column;gap:.25rem;max-height:500px;overflow-y:auto;padding-right:.25rem}.feedback-comment{padding:.75rem;border:1px solid var(--color-border);border-radius:.375rem;background:var(--color-surface);transition:border-color .3s,box-shadow .3s,background .3s}.feedback-comment:hover{border-color:var(--color-border-strong)}.feedback-comment--near{border-color:var(--color-primary-focus);background:var(--color-primary-bg);box-shadow:0 0 0 2px #60a5fa40,0 0 8px #60a5fa26}.feedback-comment--hidden{opacity:.5;background:var(--color-bg-subtle);border-style:dashed}.feedback-comment-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.375rem;font-size:.8125rem}.feedback-author{font-weight:600;color:var(--color-text-emphasis)}.feedback-timecode{border:none;background:var(--color-primary-bg);color:var(--color-primary);padding:.125rem .5rem .125rem .375rem;border-radius:.25rem;font-family:SF Mono,Consolas,monospace;font-size:.75rem;cursor:pointer;transition:background-color .15s;display:inline-flex;align-items:center;gap:.25rem}.feedback-timecode:hover{background:var(--color-primary-bg-hover)}.feedback-timecode-play{font-size:.625rem;line-height:1}.feedback-status{font-size:.6875rem;padding:.125rem .5rem;border-radius:9999px;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.feedback-status--unhandled{background:var(--color-warning-bg);color:var(--color-warning-text)}.feedback-status--done{background:var(--color-success-bg-strong);color:var(--color-success-text)}.feedback-status--partially_done{background:var(--color-primary-bg-hover);color:var(--color-info-text)}.feedback-status--rejected{background:var(--color-danger-bg);color:var(--color-danger-text)}.feedback-hidden-badge{font-size:.6875rem;padding:.125rem .375rem;border-radius:.25rem;background:var(--color-bg-muted);color:var(--color-text-muted);font-style:italic}.feedback-time{color:var(--color-text-subtle);font-size:.75rem;margin-left:auto}.feedback-body{font-size:.875rem;line-height:1.6;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.feedback-actions{display:flex;align-items:center;gap:.375rem;margin-top:.375rem}.btn-xs{font-size:.75rem;padding:.125rem .375rem}.feedback-status-select{font-size:.75rem;padding:.125rem 1.25rem .125rem .375rem;border:1px solid var(--color-border-strong);border-radius:.25rem;background-color:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;margin-left:.25rem;background-size:.625rem;background-position:right .25rem center}.feedback-form{display:flex;flex-direction:column;gap:.5rem}.feedback-textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:.375rem;font-size:.875rem;font-family:inherit;line-height:1.5;resize:vertical;min-height:3rem;transition:border-color .15s;background:var(--color-surface);color:var(--color-text)}.feedback-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring-light)}.feedback-textarea::placeholder{color:var(--color-text-subtle)}.feedback-form-timecode{display:flex;align-items:center;gap:.75rem;font-size:.8125rem}.feedback-timecode-toggle{display:flex;align-items:center;gap:.375rem;cursor:pointer;color:var(--color-text-tertiary)}.feedback-form-tc-value{font-family:SF Mono,Consolas,monospace;font-size:.75rem;color:var(--color-primary);background:var(--color-primary-bg);padding:.125rem .5rem;border-radius:.25rem}.feedback-form-actions{display:flex;gap:.5rem}.feedback-edit-form,.feedback-reply-form{display:flex;flex-direction:column;gap:.375rem;margin-top:.375rem}.feedback-edit-actions{display:flex;gap:.375rem}.feedback-replies{display:flex;flex-direction:column;gap:.25rem;margin-top:.375rem;padding-left:0;border-left:2px solid var(--color-border)}.notif-prefs{display:flex;flex-direction:column;gap:.25rem}.annotation-overlay-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.annotation-overlay-wrapper.annotation-overlay--drawing{pointer-events:auto;cursor:crosshair}.annotation-svg{width:100%;height:100%;display:block}.annotation-toolbar{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);display:flex;gap:.375rem;background:#000000bf;border-radius:.5rem;padding:.375rem .75rem;z-index:20;pointer-events:auto}.annotation-toolbar button{font-size:.8rem;padding:.25rem .625rem;border:1px solid rgba(255,255,255,.3);border-radius:.375rem;background:transparent;color:#fff;cursor:pointer;transition:background .15s}.annotation-toolbar button:hover{background:#ffffff26}.annotation-toolbar button:disabled{opacity:.4;cursor:default}.annotation-draw-toggle{font-size:.8rem;padding:.25rem .5rem;border:1px solid var(--color-border-strong);border-radius:.375rem;background:var(--color-bg-subtle);cursor:pointer;transition:background .15s,border-color .15s}.annotation-draw-toggle:hover{background:var(--color-bg-muted);border-color:var(--color-text-subtle)}.annotation-draw-toggle.active{background:var(--color-primary-bg);border-color:var(--color-primary-light);color:var(--color-primary-hover)}.annotation-attached-indicator{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--color-annotation-indicator)}.annotation-remove-link{color:var(--color-danger-hover);cursor:pointer;font-size:.75rem;text-decoration:underline;background:none;border:none;padding:0}.annotation-remove-link:hover{color:var(--color-danger)}.annotation-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.125rem .375rem;border-radius:.25rem;cursor:pointer;transition:opacity .15s}.annotation-badge:hover{opacity:.8}.annotation-toggle-all{font-size:.8rem;padding:.25rem .5rem;border:1px solid var(--color-border-strong);border-radius:.375rem;background:var(--color-bg-subtle);cursor:pointer;transition:background .15s}.annotation-toggle-all:hover{background:var(--color-bg-muted)}.video-player-wrapper{position:relative;display:inline-block;width:100%}.image-viewer-container{position:relative}.annotation-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 8px));max-width:240px;padding:.375rem .625rem;background:#000c;color:#fff;font-size:.8rem;line-height:1.35;border-radius:.375rem;pointer-events:none;white-space:pre-wrap;word-break:break-word;z-index:30;box-shadow:0 2px 8px #00000040}.share-link-form{padding:1rem 0;border-bottom:1px solid var(--color-border);margin-bottom:1rem}.share-link-form .form-group{margin-bottom:.75rem}.share-link-created{margin-top:1rem;padding:.75rem;background:var(--color-success-bg);border-radius:.375rem;border:1px solid var(--color-success-border)}.share-link-created p{margin-bottom:.5rem;font-weight:500;color:var(--color-success-text)}.share-link-url-row{display:flex;gap:.5rem;align-items:center}.share-link-url{flex:1;font-size:.85rem;padding:.375rem .5rem;border:1px solid var(--color-success-border);border-radius:.25rem;background:var(--color-surface);color:var(--color-text)}.share-links-list{display:flex;flex-direction:column;gap:.5rem}.share-link-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.375rem;background:var(--color-bg-inset);gap:.5rem;flex-wrap:wrap}.share-link-item.share-link-revoked{opacity:.5;background:var(--color-bg-muted)}.share-link-info{display:flex;flex-direction:column;gap:.125rem}.share-link-token{font-family:monospace;font-size:.85rem;color:var(--color-text)}.share-link-meta{font-size:.75rem;color:var(--color-text-muted)}.share-link-actions{display:flex;gap:.375rem;align-items:center}.review-page{max-width:960px;margin:0 auto;padding:2rem 1.5rem;min-height:100vh}.review-loading,.review-error{text-align:center;padding:3rem 1rem}.review-error h2{margin-bottom:.5rem;color:var(--color-danger-hover)}.review-error p{color:var(--color-text-muted)}.review-password-prompt{max-width:400px;margin:4rem auto;text-align:center}.review-password-prompt h2{margin-bottom:.5rem}.review-password-prompt p{color:var(--color-text-muted);margin-bottom:1.5rem}.review-password-prompt form{text-align:left}.review-error-text{color:var(--color-danger-hover);font-size:.85rem;margin-bottom:.5rem}.review-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.review-title{font-size:1.5rem;font-weight:600}.review-version-badge{display:inline-block;padding:.125rem .5rem;background:var(--color-primary-bg-hover);color:var(--color-primary);border-radius:999px;font-size:.75rem;font-weight:600}.review-player-card{background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem}.review-feedback-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;padding:1.5rem}.review-feedback-section h2{margin-bottom:1rem;font-size:1.15rem}.review-feedback-form{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.review-feedback-form .form-group{margin-bottom:.75rem}.review-feedback-form textarea{width:100%;resize:vertical}.review-feedback-list{display:flex;flex-direction:column;gap:.75rem}.review-feedback-item{padding:.75rem;border:1px solid var(--color-border);border-radius:.375rem;background:var(--color-bg-inset)}.review-feedback-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.review-feedback-author{font-size:.9rem}.review-feedback-date{font-size:.75rem;color:var(--color-text-subtle)}.review-feedback-timecode{display:inline-block;padding:.125rem .375rem;background:var(--color-primary-bg);border:1px solid var(--color-primary-border-light);border-radius:.25rem;color:var(--color-primary);font-size:.75rem;font-family:monospace;cursor:pointer;margin-bottom:.375rem}.review-feedback-timecode:hover{background:var(--color-primary-bg-hover)}.review-feedback-comment{font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.review-feedback-replies{margin-top:.5rem;margin-left:1rem;padding-left:.75rem;border-left:2px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}[data-theme=dark]{color-scheme:dark;--color-text: #e2e8f0;--color-text-secondary: #cbd5e1;--color-text-tertiary: #94a3b8;--color-text-muted: #64748b;--color-text-subtle: #475569;--color-text-emphasis: #f1f5f9;--color-bg: #0f172a;--color-bg-subtle: #1e293b;--color-bg-muted: #334155;--color-bg-inset: #1e293b;--color-surface: #1e293b;--color-border: #334155;--color-border-strong: #475569;--color-border-light: #1e293b;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-primary-bg: rgba(59, 130, 246, .15);--color-primary-bg-hover: rgba(59, 130, 246, .25);--color-primary-border-light: #1d4ed8;--color-primary-focus: #2563eb;--color-primary-light: #60a5fa;--color-danger: #f87171;--color-danger-hover: #ef4444;--color-danger-bg: rgba(239, 68, 68, .15);--color-danger-border: rgba(239, 68, 68, .3);--color-danger-text: #fca5a5;--color-success-bg: rgba(16, 185, 129, .15);--color-success-bg-strong: rgba(16, 185, 129, .2);--color-success-text: #6ee7b7;--color-success-border: rgba(16, 185, 129, .3);--color-warning-bg: rgba(245, 158, 11, .15);--color-warning-text: #fcd34d;--color-info-text: #93c5fd;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-heavy: rgba(0, 0, 0, .7);--color-shadow: rgba(0, 0, 0, .3);--color-shadow-heavy: rgba(0, 0, 0, .4);--color-shadow-overlay: rgba(0, 0, 0, .5);--color-focus-ring: rgba(59, 130, 246, .3);--color-focus-ring-light: rgba(59, 130, 246, .2);--color-primary-shadow: rgba(59, 130, 246, .2);--color-annotation-indicator: #34d399;--color-waveform: #475569;--color-waveform-progress: #3b82f6;--color-waveform-cursor: #60a5fa}[data-theme=dark] select,[data-theme=dark] .form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E")}[data-theme=dark] .badge-purple{background:#8b5cf633;color:#a78bfa}[data-theme=dark] .badge-blue{background:#3b82f633;color:#93c5fd}[data-theme=dark] .badge-green{background:#10b98133;color:#6ee7b7}[data-theme=dark] .badge-gray{background:#94a3b826;color:#94a3b8}[data-theme=dark] .status-active:before{background:#34d399}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);border-radius:.375rem;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.theme-toggle:hover{background:var(--color-bg-muted);color:var(--color-text);border-color:var(--color-border-strong)}.theme-toggle svg{width:1rem;height:1rem}
