:root{--bg: #0f0f1a;--bg-card: #1a1a2e;--bg-elevated: #252540;--accent: #6c63ff;--accent-hover: #5a52e0;--accent-glow: rgba(108, 99, 255, .25);--text: #e8e8f0;--text-muted: #8888a0;--border: #2a2a45;--warning: #ffb347;--success: #4ecdc4;--radius: 16px;--radius-sm: 10px;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100dvh;background:var(--bg);background-image:radial-gradient(ellipse at 20% 0%,rgba(108,99,255,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(78,205,196,.06) 0%,transparent 50%)}.app{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 16px}.header{padding:24px 0 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.header__brand{display:flex;align-items:center;gap:14px}.header__logo{width:44px;height:44px;color:var(--accent)}.header__title{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.header__subtitle{font-size:.85rem;color:var(--text-muted)}.header__user{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.header__email{font-size:.75rem;color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header__logout{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius-sm);padding:8px 12px;font-size:.8rem;cursor:pointer}.header__logout:hover{border-color:var(--accent)}.app--centered{justify-content:center}.login{width:100%}.login__card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.login__logo{width:56px;height:56px;color:var(--accent)}.login__title{font-size:1.5rem;font-weight:700}.login__text{color:var(--text-muted);max-width:320px}.login__button{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:280px;padding:12px 16px;border-radius:var(--radius-sm);background:#fff;color:#1f1f1f;text-decoration:none;font-weight:600}.login__button svg{width:20px;height:20px}.login__button:hover{box-shadow:0 8px 24px #0003}.login__alert{width:100%;margin-bottom:16px}.main{flex:1;display:flex;flex-direction:column;gap:16px;padding-bottom:24px}.main--relative{position:relative}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#0f0f1ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius)}.loading-overlay__panel{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;text-align:center}.loading-overlay__text{font-size:.95rem;font-weight:500}.loading-overlay__hint{font-size:.8rem;color:var(--text-muted);max-width:240px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card--player{padding:0;overflow:hidden}.datetime-picker{display:flex;flex-direction:column;gap:12px}.datetime-picker__label{font-size:.85rem;font-weight:500;color:var(--text-muted)}.datetime-picker__input{width:100%;padding:14px 16px;font-size:1.05rem;font-family:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;color-scheme:dark}.datetime-picker__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.datetime-picker__shortcuts{display:flex;gap:8px}.btn{padding:10px 18px;font-size:.9rem;font-weight:500;font-family:inherit;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,transform .1s}.btn:active{transform:scale(.97)}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.btn--ghost:hover{color:var(--text);border-color:var(--accent)}.btn--full{width:100%;padding:14px;font-size:1rem}.alert{padding:14px 18px;border-radius:var(--radius-sm);font-size:.9rem}.alert--warning{background:#ffb3471f;border:1px solid rgba(255,179,71,.3);color:var(--warning)}.player__viewport{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden}.player__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .15s}.player__video--active{opacity:1;z-index:1}.player__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0009;color:var(--text-muted);font-size:.9rem}.player__overlay--error{color:var(--warning)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.player__controls{display:flex;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid var(--border)}.player__play-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border:none;border-radius:50%;cursor:pointer;flex-shrink:0;transition:background .2s}.player__play-btn:hover{background:var(--accent-hover)}.player__play-btn svg{width:20px;height:20px}.player__info{display:flex;flex-direction:column;gap:2px;min-width:0}.player__segment{font-size:.85rem;font-weight:500}.player__time{font-size:.8rem;color:var(--text-muted)}.timeline__title{font-size:.9rem;font-weight:600;margin-bottom:14px;color:var(--text-muted)}.timeline__track{position:relative;height:32px;background:var(--bg-elevated);border-radius:8px;overflow:hidden}.timeline__block{position:absolute;top:4px;height:24px;background:var(--accent);opacity:.6;border:none;border-radius:4px;cursor:pointer;transition:opacity .2s,transform .1s;min-width:4px}.timeline__block:hover{opacity:.85}.timeline__block--selected{opacity:1;box-shadow:0 0 0 2px #fff}.timeline__labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.7rem;color:var(--text-muted)}.timeline--empty{text-align:center;color:var(--text-muted);font-size:.9rem}.footer{padding:16px 0 24px;text-align:center;font-size:.75rem;color:var(--text-muted)}@media(min-width:480px){.header__title{font-size:1.5rem}.card{padding:24px}}
