*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.auth-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#0d0e1a,#1a1040);padding:20px}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:40px;max-width:400px;width:100%;box-shadow:0 20px 60px #00000080}.auth-card h1{font-size:26px;font-weight:700;margin:0 0 6px;color:var(--text-primary);text-align:center}.auth-card h2{font-size:16px;margin:0 0 28px;color:var(--text-secondary);text-align:center;font-weight:400}.auth-card .btn{width:100%;margin-top:8px;padding:12px;font-size:15px}.dashboard{min-height:100vh;background:var(--bg-primary)}.dashboard-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:16px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50}.dashboard-header h1{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.header-actions{display:flex;align-items:center;gap:12px}.header-actions span{color:var(--text-secondary);font-size:14px}.dashboard-actions{display:flex;justify-content:space-between;align-items:center;margin:28px 0 18px}.dashboard-actions h2{font-size:22px;font-weight:600;color:var(--text-primary);margin:0}.empty-state{text-align:center;padding:80px 20px;color:var(--text-secondary)}.empty-state p{font-size:15px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-bottom:40px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:22px;cursor:pointer;transition:border-color .15s,background .15s}.project-card:hover{border-color:var(--accent);background:var(--bg-card-hover)}.project-card h3{font-size:17px;font-weight:600;margin:0 0 8px;color:var(--text-primary)}.project-card p{color:var(--text-secondary);margin:0 0 16px;font-size:14px;line-height:1.5}.project-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}.guest-gate{min-height:100vh;background:var(--bg-primary);display:flex;justify-content:center;align-items:center;padding:20px}@media (max-width: 600px){.dashboard-header{padding:12px 16px;flex-wrap:wrap;gap:10px}.header-actions{flex-wrap:wrap;gap:8px}.projects-grid{grid-template-columns:1fr}}.pv-header-left{display:flex;align-items:center;gap:16px;min-width:0}.pv-header-left h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-header-actions{flex-shrink:0}.pv-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pv-section-title{font-size:18px;font-weight:600;margin:0;color:var(--text-primary)}@media (max-width: 600px){.pv-header{flex-wrap:wrap;gap:10px}.pv-header-left{flex:1 1 100%}.pv-header-actions{flex:1 1 100%;flex-wrap:wrap}}.viewer-layout{display:flex;flex-direction:column;height:100vh;background:#1a1a2e;color:#fff}.viewer-header{background:#16213e;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000004d;flex-shrink:0;gap:16px}.viewer-title{font-size:17px;color:#fff;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:500px}.viewer-body{display:flex;flex:1;overflow:hidden}.video-area{flex:1;display:flex;align-items:stretch;background:#0f0f1a;min-width:0}.drive-iframe{width:100%;height:100%;border:none;display:block}.comments-panel{width:360px;flex-shrink:0;background:#fff;display:flex;flex-direction:column;border-left:1px solid #e0e0e0;overflow:hidden}.comments-list{flex:1;overflow-y:auto;padding:16px}.comments-heading{font-size:15px;color:#333;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #eee}.comment-item{padding:10px 12px;border-radius:8px;background:#f8f9fa;margin-bottom:10px;border-left:3px solid #007bff}.comment-item.resolved{border-left-color:#28a745;opacity:.65}.comment-item.reply{margin-top:6px;margin-left:14px;border-left-color:#adb5bd;background:#f0f0f0}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:8px}.comment-author{font-weight:600;font-size:13px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comment-timestamp{background:#007bff;color:#fff;padding:2px 7px;border-radius:10px;font-size:11px;font-weight:600;font-family:monospace;white-space:nowrap;flex-shrink:0}.comment-content{font-size:13px;color:#444;margin:0 0 7px;line-height:1.5;word-break:break-word}.comment-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.comment-date{font-size:11px;color:#aaa}.comment-action-btn{background:none;border:none;font-size:11px;color:#007bff;cursor:pointer;padding:0;line-height:1}.comment-action-btn:hover{text-decoration:underline}.comment-action-btn.danger{color:#dc3545}.comment-form{padding:14px 16px;border-top:1px solid #eee;background:#fff;flex-shrink:0}.comment-form h4{font-size:13px;color:#555;margin:0 0 10px;text-transform:uppercase;letter-spacing:.04em}.reply-form{margin-top:8px;padding:10px;background:#eef2ff;border-radius:6px}.r2-video{width:100%;height:100%;object-fit:contain;background:#000;display:block}.timer-controls{display:flex;align-items:center;gap:8px;padding:10px 0 12px;border-bottom:1px solid #2a2a4a;margin-bottom:12px}.timer-display{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px;color:#fff;min-width:56px}.timer-btn{padding:5px 10px!important;font-size:12px!important}.timestamp-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.timestamp-label{font-size:12px;color:#666;white-space:nowrap}.timestamp-input{width:80px!important;font-family:monospace;text-align:center}.guest-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f5f5f5}@media (max-width: 768px){.viewer-body{flex-direction:column;overflow:auto}.video-area{min-height:240px;height:40vw;flex:none}.comments-panel{width:100%;height:50vh;border-left:none;border-top:1px solid #e0e0e0;flex-shrink:0}.viewer-header{padding:10px 16px;flex-wrap:wrap;gap:8px}.viewer-title{max-width:100%;font-size:14px}}.ud-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column}.ud-loading,.ud-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px;color:var(--text-secondary)}.ud-name-prompt{display:flex;align-items:center;justify-content:center;flex:1;padding:20px}.ud-name-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:36px 32px;width:100%;max-width:420px;text-align:center}.ud-title{font-size:22px;font-weight:700;margin:0 0 6px}.ud-subtitle{color:var(--text-secondary);font-size:14px;margin:0 0 20px}.ud-name-desc{color:var(--text-muted);font-size:14px;margin:0 0 20px}.ud-name-input{display:block;width:100%;margin-bottom:12px}.ud-name-btn{width:100%}.ud-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ud-header-info{display:flex;flex-direction:column;gap:2px}.ud-header-title{font-size:18px;font-weight:700;margin:0}.ud-header-project{font-size:13px;color:var(--text-muted)}.ud-change-name{font-size:13px;white-space:nowrap}.ud-body{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 24px;max-width:1100px;width:100%;margin:0 auto}.ud-section-title{font-size:15px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px;display:flex;align-items:center;gap:8px}.ud-file-count{background:var(--accent);color:#fff;font-size:11px;font-weight:700;border-radius:10px;padding:1px 7px;text-transform:none;letter-spacing:0}.ud-drop-area{border:2px dashed var(--border);border-radius:10px;padding:32px 20px;cursor:pointer;transition:border-color .15s;margin-bottom:16px;min-height:140px;display:flex;align-items:center;justify-content:center}.ud-drop-area:hover{border-color:var(--accent)}.ud-drop-prompt{text-align:center;color:var(--text-muted)}.ud-drop-icon{display:block;font-size:32px;margin-bottom:8px}.ud-drop-hint{font-size:12px;margin-top:4px;color:var(--text-muted)}.ud-file-selected{display:flex;align-items:center;gap:12px;width:100%}.ud-file-icon{font-size:28px;flex-shrink:0}.ud-file-name{font-weight:500;font-size:14px;margin:0 0 2px;word-break:break-all}.ud-file-size{font-size:12px;color:var(--text-muted);margin:0}.ud-clear-file{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;flex-shrink:0}.ud-clear-file:hover{color:var(--danger)}.ud-progress{margin-bottom:12px}.ud-progress-bar{background:var(--border);border-radius:4px;height:6px;overflow:hidden}.ud-progress-fill{background:var(--accent);height:100%;transition:width .2s}.ud-progress-label{font-size:12px;color:var(--text-muted);text-align:center;margin-top:6px}.ud-upload-error{color:var(--danger);font-size:13px;margin-bottom:10px}.ud-upload-success{color:#4caf7d;font-size:13px;margin-bottom:10px}.ud-upload-btn{width:100%}.ud-files-loading,.ud-no-files{color:var(--text-muted);font-size:14px}.ud-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ud-file-item{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.ud-file-meta{min-width:0;flex:1}.ud-file-item-name{font-size:14px;font-weight:500;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ud-file-item-info{font-size:12px;color:var(--text-muted);margin:0}.ud-download-btn{flex-shrink:0;font-size:13px;white-space:nowrap}.ud-space-bar-wrapper{padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.ud-space-bar-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.ud-space-bar-track{background:var(--border);border-radius:4px;height:6px;overflow:hidden}.ud-space-bar-fill{height:100%;transition:width .3s}.ud-space-pct{font-size:11px;color:var(--text-muted);text-align:right;margin:4px 0 0}.ud-mode-tabs{display:flex;gap:0;margin-bottom:14px;border:1px solid var(--border);border-radius:7px;overflow:hidden}.ud-mode-tab{flex:1;padding:8px 12px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s,color .15s}.ud-mode-tab.active{background:var(--accent);color:#fff;font-weight:600}.ud-mode-tab:not(.active):hover{background:var(--bg-card-hover)}.ud-folder-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.ud-folder-row:hover{background:var(--bg-card-hover, var(--bg-secondary))}.ud-folder-icon{font-size:18px;flex-shrink:0}.ud-folder-chevron{color:var(--text-muted);font-size:12px;flex-shrink:0}.ud-file-item-nested{margin-left:20px;border-left:2px solid var(--border);border-radius:0 8px 8px 0}@media (max-width: 768px){.ud-body{grid-template-columns:1fr;padding:20px 16px;gap:24px}.ud-header{padding:14px 16px}.ud-name-card{padding:28px 20px}}.uv-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column}.uv-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.uv-header-info{flex:1;min-width:0}.uv-header-title{font-size:20px;font-weight:700;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uv-header-project{font-size:13px;color:var(--text-muted)}.uv-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.uv-space-bar-wrapper{padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.uv-space-bar-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.uv-space-bar-track{background:var(--border);border-radius:4px;height:6px;overflow:hidden}.uv-space-bar-fill{height:100%;transition:width .3s}.uv-space-pct{font-size:11px;color:var(--text-muted);text-align:right;margin:4px 0 0}.uv-content{padding:28px 24px;max-width:960px;width:100%;margin:0 auto}.uv-empty{color:var(--text-muted);font-size:14px;text-align:center;padding:60px 0}.uv-tree{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.uv-folder-row{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.uv-folder-row:hover{background:var(--bg-card-hover, var(--bg-secondary))}.uv-folder-icon{font-size:18px;flex-shrink:0}.uv-folder-name{flex:1;font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uv-folder-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.uv-folder-chevron{color:var(--text-muted);font-size:12px;flex-shrink:0}.uv-folder-children{list-style:none;margin:2px 0 4px 20px;padding:0;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:4px}.uv-file-row{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:11px 14px;display:flex;align-items:center;gap:10px}.uv-folder-children .uv-file-row{border-radius:0 8px 8px 0}.uv-file-icon{font-size:16px;flex-shrink:0;color:var(--text-muted)}.uv-file-name{flex:1;font-size:14px;font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.uv-file-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.uv-file-actions{display:flex;gap:6px;flex-shrink:0}@media (max-width: 768px){.uv-header{padding:12px 16px}.uv-content{padding:20px 16px}.uv-file-meta,.uv-folder-meta{display:none}.uv-header-title{font-size:17px}}:root{--bg-primary: #0d0e1a;--bg-secondary: #13142a;--bg-card: #1c1d35;--bg-card-hover: #21223d;--border: #2a2b4a;--text-primary: #e8e9ff;--text-secondary: #8b8db8;--text-muted: #5a5c7a;--accent: #5b7af5;--accent-hover: #4569e8;--danger: #e55353;--danger-hover: #cc3c3c}*{box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}.App{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:20px}.btn{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:#2a3660;color:#5a6a9a;cursor:not-allowed}.btn-secondary{background:#1e2040;color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:#252650}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.input{width:100%;padding:10px 12px;background:#151628;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text-primary)}.input:focus{outline:none;border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}select.input option{background:#151628}.card{background:var(--bg-card);border-radius:10px;padding:20px;border:1px solid var(--border)}.error{color:#f87171;font-size:14px}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:30px;max-width:520px;width:90%;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 20px;color:var(--text-primary);font-size:20px}.modal textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.form-group{margin-bottom:18px}.form-group label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:13px;font-weight:500}@media (max-width: 600px){.container{padding:0 12px}.modal{padding:20px 16px;max-height:95vh}.btn{font-size:13px}}
