*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-pink: #ff6b9d;--color-mint: #7dd3c0;--color-purple: #a78bfa;--color-orange: #f59e0b;--color-red: #ef4444;--bg-primary: #0f0f0f;--bg-surface: #1a1a1a;--bg-elevated: #222222;--bg-hover: #2a2a2a;--border-color: #333333;--border-strong: #444444;--text-primary: #e5e5e5;--text-secondary: #aaaaaa;--text-muted: #666666;--font-mono: "JetBrains Mono", "Fira Code", "Monaco", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--border-radius: 4px;--transition: .15s ease}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--font-mono);font-weight:600;letter-spacing:-.02em}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}h4{font-size:1rem}a{color:var(--color-pink);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-mint)}.page{padding:1.5rem;max-width:1400px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.page-title{display:flex;align-items:center;gap:.75rem}.page-title h1{margin:0}.back-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);font-family:var(--font-mono);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.back-button:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-card{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);padding:1rem 1.25rem;min-width:140px}.stat-card.complete{border-left:4px solid var(--color-pink)}.stat-card.analyzing{border-left:4px solid var(--color-mint)}.stat-card.pending{border-left:4px solid var(--color-purple)}.stat-value{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.filter-input,.filter-select{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);padding:.5rem .75rem;color:var(--text-primary);font-family:var(--font-mono);font-size:.875rem;min-width:180px;transition:border-color var(--transition)}.filter-input:focus,.filter-select:focus{outline:none;border-color:var(--color-pink)}.filter-select{cursor:pointer;-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='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.sessions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.videos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.session-card{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);padding:1rem;cursor:pointer;transition:all var(--transition)}.session-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.session-id{font-weight:600;font-size:.9375rem}.session-date{font-size:.75rem;color:var(--text-muted)}.session-stats{display:flex;gap:1rem;font-size:.8125rem;color:var(--text-secondary)}.session-stat{display:flex;align-items:center;gap:.375rem}.session-apps{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.video-card{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;cursor:pointer;transition:all var(--transition)}.video-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.video-status-bar{height:4px;background:var(--bg-hover)}.video-status-bar.complete{background:var(--color-pink)}.video-status-bar.analyzing{background:var(--color-mint)}.video-status-bar.pending{background:var(--color-purple)}.video-content{padding:1rem}.video-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.video-title{font-weight:600;font-size:.875rem;word-break:break-word}.video-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.video-stats{display:flex;gap:1rem;font-size:.8125rem;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:var(--border-radius);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-status{border:1px solid}.badge-status.complete{background:#ff6b9d26;border-color:var(--color-pink);color:var(--color-pink)}.badge-status.analyzing{background:#7dd3c026;border-color:var(--color-mint);color:var(--color-mint)}.badge-status.pending{background:#a78bfa26;border-color:var(--color-purple);color:var(--color-purple)}.badge-app{background:var(--bg-hover);color:var(--text-secondary)}.video-player-container{display:grid;grid-template-columns:1fr 400px;gap:1.5rem;margin-top:1rem}@media (max-width: 1024px){.video-player-container{grid-template-columns:1fr}}.video-wrapper{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.video-element{width:100%;display:block;background:#000}.analysis-panel{background:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--border-radius);display:flex;flex-direction:column;max-height:70vh}.panel-header{padding:1rem;border-bottom:2px solid var(--border-color);font-weight:600}.panel-content{flex:1;overflow-y:auto;padding:1rem}.ad-timeline{margin-bottom:1.5rem}.timeline-header{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.timeline-track{background:var(--bg-hover);border-radius:2px;height:24px;position:relative;overflow:hidden}.timeline-segment{position:absolute;top:0;height:100%;background:var(--color-pink);opacity:.8;border-radius:2px;transition:opacity var(--transition)}.timeline-segment:hover{opacity:1}.timeline-time{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--text-muted);margin-top:.25rem}.segments-list{display:flex;flex-direction:column;gap:.75rem}.segment-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.75rem}.segment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.segment-time{font-weight:600;font-size:.875rem;color:var(--color-pink)}.segment-duration{font-size:.75rem;color:var(--text-muted)}.segment-description{font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--color-pink);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#ef44441a;border:2px solid var(--color-red);border-radius:var(--border-radius);padding:1rem;color:var(--color-red)}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state h3{margin-bottom:.5rem;color:var(--text-secondary)}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-mint)}.status-dot.error{background:var(--color-red)}.status-dot.loading{background:var(--color-orange);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
