:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #242424;--bg-elevated: #2a2a2a;--text-primary: #ffffff;--text-secondary: #a0a0a0;--text-muted: #6b6b6b;--primary: #667eea;--primary-dark: #5568d3;--secondary: #764ba2;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--border: #333333;--border-light: #404040;--text-dark: var(--text-primary);--text-gray: var(--text-secondary);--light-gray: var(--bg-tertiary);color-scheme:dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--primary);text-decoration:inherit}a:hover{color:var(--primary-dark)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-primary)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-elevated);color:var(--text-primary);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--primary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.landing{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 48px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-primary);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media(max-width:640px){.landing-nav{padding:16px 20px}}.landing-nav__logo{display:flex;align-items:center;gap:10px}.landing-nav__logo-img{width:36px;height:36px;border-radius:8px;object-fit:contain}.landing-nav__logo-text{font-size:22px;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-nav__actions{display:flex;align-items:center;gap:12px}.landing-nav__signin{background:none;border:1px solid var(--border);color:var(--text-primary);padding:8px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}.landing-nav__signin:hover{border-color:var(--primary);background:#667eea14}.landing-nav__signup{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;border:none;padding:8px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .2s}.landing-nav__signup:hover{opacity:.9;transform:translateY(-1px)}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:100px 24px 80px;flex:1}@media(max-width:640px){.landing-hero{padding:60px 20px}}.landing-hero__badge{display:inline-block;background:#667eea26;color:var(--primary);border:1px solid rgba(102,126,234,.35);border-radius:999px;padding:6px 18px;font-size:13px;font-weight:600;margin-bottom:28px;letter-spacing:.03em}.landing-hero__title{font-size:clamp(36px,6vw,72px);font-weight:800;line-height:1.1;max-width:780px;margin:0 0 24px}.landing-hero__title--gradient{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero__subtitle{color:var(--text-secondary);font-size:clamp(16px,2vw,20px);max-width:600px;margin:0 0 48px;line-height:1.6}.landing-hero__cta{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.landing-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;border:none;padding:16px 36px;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px #667eea59}.landing-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #667eea80}.landing-btn-ghost{background:none;color:var(--text-primary);border:1px solid var(--border);padding:16px 36px;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s}.landing-btn-ghost:hover{border-color:var(--primary);background:#667eea14}.landing-features{padding:80px 48px;max-width:1100px;margin:0 auto;width:100%}@media(max-width:640px){.landing-features{padding:60px 20px}}.landing-features__title{text-align:center;font-size:clamp(24px,3vw,36px);font-weight:700;margin:0 0 56px}.landing-features__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}.landing-feature-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;padding:32px 28px;transition:border-color .2s,transform .2s}.landing-feature-card:hover{border-color:var(--primary);transform:translateY(-4px)}.landing-feature-card__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:#667eea1f;color:var(--primary);margin-bottom:20px}.landing-feature-card h3{font-size:18px;font-weight:700;margin:0 0 10px}.landing-feature-card p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0}.landing-footer{text-align:center;padding:32px 24px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:14px}.landing-footer p{margin:8px 0 0}.landing-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fadeIn .2s ease}.landing-modal{background:var(--bg-secondary);border-radius:24px;padding:40px;width:100%;max-width:440px;box-shadow:0 24px 64px #0009;border:1px solid var(--border);position:relative;animation:slideUp .3s ease-out}@media(max-width:640px){.landing-modal{padding:32px 24px;border-radius:20px}}.landing-modal__close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--text-secondary);font-size:28px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:8px;transition:color .2s,background .2s}.landing-modal__close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.landing-modal__header{text-align:center;margin-bottom:32px}.landing-modal__header .logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}.landing-modal__header .logo h2{font-size:26px;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.landing-modal__subtitle{color:var(--text-secondary);font-size:15px;margin:0}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:16px;background:var(--bg-primary);position:relative}.auth-back{position:absolute;top:24px;left:24px;display:flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s}.auth-back:hover{color:var(--text-primary)}.auth-card{background:var(--bg-secondary);border-radius:24px;padding:40px;width:100%;max-width:480px;box-shadow:0 20px 60px #00000080;border:1px solid var(--border);animation:slideUp .4s ease-out}@media(max-width:640px){.auth-card{padding:32px 24px;border-radius:20px}}.auth-header{text-align:center;margin-bottom:40px}.logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.logo-image{width:48px;height:48px;border-radius:12px;object-fit:contain}.logo h1{font-size:32px;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}@media(max-width:640px){.logo h1{font-size:28px}}.subtitle{color:var(--text-secondary);font-size:16px;margin:0}@media(max-width:640px){.subtitle{font-size:14px}}.auth-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:var(--text-primary);font-size:14px}.form-group input{padding:14px 16px;border:1px solid var(--border);border-radius:12px;font-size:16px;transition:all .3s ease;outline:none;color:var(--text-primary);background-color:var(--bg-tertiary)}@media(max-width:640px){.form-group input{padding:12px 14px;font-size:16px}}.form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #667eea33}.form-group input:disabled{background-color:var(--bg-tertiary);opacity:.6;cursor:not-allowed}.form-group input::placeholder{color:var(--text-muted)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:8px}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#ef44441a;color:var(--danger);padding:12px;border-radius:8px;font-size:14px;border-left:4px solid var(--danger)}.success-message{background-color:#22c55e1a;color:var(--success);padding:12px;border-radius:8px;font-size:14px;border-left:4px solid var(--success)}.auth-footer{margin-top:32px;text-align:center}.auth-footer p{color:var(--text-secondary);font-size:15px;margin:0}@media(max-width:640px){.auth-footer p{font-size:14px}}.link{color:var(--primary);text-decoration:none;font-weight:600;transition:color .2s ease}.link:hover{color:var(--primary-dark);text-decoration:underline}.stance-toggle{display:flex;gap:12px}.stance-option{flex:1;padding:12px 10px;border:2px solid var(--border);border-radius:12px;background:var(--bg-tertiary);cursor:pointer;text-align:center;transition:border-color .2s ease,background .2s ease;color:var(--text-primary)}.stance-option:hover:not(:disabled){border-color:var(--primary)}.stance-option--active{border-color:var(--primary);background:#667eea1f}.stance-option:disabled{opacity:.6;cursor:not-allowed}.stance-option__label{display:block;font-weight:600;font-size:15px}.stance-option__hint{display:block;font-size:12px;color:var(--text-secondary);margin-top:3px}.payment-card{max-width:520px}.premium-badge{display:inline-block;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:20px;margin-bottom:10px}.plan-box{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:8px}.plan-row{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:15px;color:var(--text-primary);margin-bottom:12px}.plan-price{color:var(--primary);font-size:16px}.plan-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.plan-features li{font-size:13px;color:var(--text-secondary);padding-left:18px;position:relative}.plan-features li:before{content:"✓";position:absolute;left:0;color:var(--success, #22c55e);font-weight:700}.link-btn{background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:0;text-decoration:underline;transition:color .2s}.link-btn:hover{color:var(--text-primary)}.sidebar{width:280px;height:100vh;position:fixed;top:0;left:0;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;transition:transform .25s ease}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sidebar-logo{display:flex;align-items:center;gap:12px;cursor:pointer;transition:opacity .2s ease}.sidebar-logo:hover{opacity:.8}.logo-image{width:80px;height:80px;border-radius:8px;object-fit:contain}.logo-text{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-close-btn{display:none;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;transition:all .2s;flex-shrink:0}.sidebar-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-nav{flex:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.sidebar-btn{display:flex;align-items:center;gap:12px;width:100%;padding:.875rem 1rem;border:none;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.sidebar-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff}.sidebar-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.sidebar-btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.sidebar-btn-secondary:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-light)}.sidebar-btn-secondary--active{background:#667eea26!important;color:var(--primary)!important;border-color:var(--primary)!important}.sidebar-btn-logout{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.sidebar-btn-logout:hover{background:#ef44441a;color:var(--danger);border-color:var(--danger)}.sidebar-divider{height:1px;background:var(--border);margin:1rem 0}.sidebar-section{display:flex;flex-direction:column;gap:.25rem}.sidebar-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:.5rem .75rem;margin:0}.sidebar-filter-btn{display:flex;align-items:center;gap:10px;width:100%;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;text-align:left}.sidebar-filter-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-filter-btn.active{background:#667eea26;color:var(--primary)}.sidebar-filter-btn.active svg{color:var(--primary)}.sidebar-footer{padding:1rem;border-top:1px solid var(--border);flex-shrink:0}.mobile-topbar{display:none}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#0009;z-index:150;opacity:0;transition:opacity .25s ease}@media(max-width:1024px){.sidebar{width:240px}}@media(max-width:768px){.sidebar{width:280px;transform:translate(-100%);z-index:300}.sidebar--mobile-open{transform:translate(0)}.sidebar-close-btn{display:flex}.sidebar-backdrop{display:block;pointer-events:none}.sidebar-backdrop--visible{opacity:1;pointer-events:auto}.mobile-topbar{display:flex;align-items:center;gap:.75rem;position:fixed;top:0;left:0;right:0;height:56px;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 1rem;z-index:100}.mobile-burger{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.mobile-burger:hover{background:var(--bg-tertiary)}.mobile-topbar-logo{display:flex;align-items:center;gap:8px;cursor:pointer}.mobile-logo-img{width:32px;height:32px;border-radius:6px;object-fit:contain}.mobile-logo-text{font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}}.dashboard-layout{display:flex;min-height:100vh;background:var(--bg-primary)}.dashboard-main{margin-left:280px;flex:1;min-height:100vh}@media(max-width:1024px){.dashboard-main{margin-left:240px}}@media(max-width:768px){.dashboard-main{margin-left:0;padding-top:56px}}.dashboard-content{max-width:1400px;margin:0 auto;padding:24px 16px}@media(min-width:768px){.dashboard-content{padding:40px 32px}}.content-header{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}@media(min-width:768px){.content-header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:40px}}.content-header h1{font-size:28px;color:var(--text-primary);margin:0 0 8px}@media(min-width:768px){.content-header h1{font-size:36px}}.content-header .subtitle{color:var(--text-secondary);font-size:14px;margin:0}@media(min-width:768px){.content-header .subtitle{font-size:16px}}.btn-primary{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;padding:12px 20px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.mobile-upload-btn{display:flex}@media(min-width:769px){.mobile-upload-btn{display:none}}.sort-controls{display:flex;align-items:center;gap:6px;margin-bottom:16px}.sort-label{font-size:12px;font-weight:500;color:var(--text-muted);margin-right:2px}.sort-btn{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:4px}.sort-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.sort-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.sort-btn-icon{padding:5px 8px}.loading{text-align:center;padding:60px 20px;color:var(--text-secondary);font-size:18px}.empty-state{text-align:center;padding:60px 20px;background:var(--bg-secondary);border-radius:20px;border:1px solid var(--border)}@media(min-width:768px){.empty-state{padding:80px 20px}}.empty-icon{color:var(--text-muted);margin-bottom:24px}.empty-state h3{font-size:20px;color:var(--text-primary);margin-bottom:12px}@media(min-width:768px){.empty-state h3{font-size:24px}}.empty-state p{color:var(--text-secondary);font-size:15px;margin-bottom:32px}@media(min-width:768px){.empty-state p{font-size:16px}}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}@media(min-width:768px){.video-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}}.video-card{background:var(--bg-secondary);border-radius:16px;overflow:hidden;border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.video-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000004d;border-color:var(--border-light)}.video-thumbnail{position:relative;width:100%;padding-top:56.25%;background:var(--bg-tertiary)}.video-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.placeholder-thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff}.video-status{position:absolute;top:12px;right:12px;color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.video-info{padding:20px}.video-info h3{font-size:16px;color:var(--text-primary);margin:0 0 8px;line-height:1.4}@media(min-width:768px){.video-info h3{font-size:18px}}.video-score{color:var(--primary);font-size:14px;margin-bottom:12px;padding:8px 12px;background:#667eea26;border-radius:8px;display:inline-block}.video-score strong{font-weight:700}.video-meta{display:flex;gap:16px;font-size:12px;color:var(--text-secondary)}@media(min-width:768px){.video-meta{font-size:13px}}.video-actions{padding:0 20px 20px}.btn-danger-small{display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--danger);padding:8px 16px;border:1px solid var(--danger);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.btn-danger-small:hover{background:var(--danger);color:#fff;transform:translateY(-1px)}.error-message{background:#ef44441a;color:var(--danger);padding:12px 16px;border-radius:8px;margin-bottom:20px;border-left:4px solid var(--danger)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:var(--bg-secondary);border-radius:20px;width:90%;max-width:600px;max-height:90vh;overflow:auto;animation:slideUp .3s ease;border:1px solid var(--border)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}@media(min-width:768px){.modal-header{padding:24px 32px}}.modal-header h2{font-size:20px;color:var(--text-primary);margin:0}@media(min-width:768px){.modal-header h2{font-size:24px}}.close-btn{background:none;border:none;font-size:28px;color:var(--text-secondary);cursor:pointer;line-height:1;transition:color .2s ease;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}@media(min-width:768px){.close-btn{font-size:32px}}.close-btn:hover{color:var(--text-primary)}.modal-form{padding:24px}@media(min-width:768px){.modal-form{padding:32px}}.modal-form textarea{padding:14px 16px;border:1px solid var(--border);border-radius:12px;font-size:16px;font-family:inherit;transition:all .3s ease;outline:none;resize:vertical;width:100%;color:var(--text-primary);background-color:var(--bg-tertiary)}.modal-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px #667eea33}.progress-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.progress-modal{background:var(--bg-secondary);border-radius:16px;box-shadow:0 20px 60px #00000080;max-width:500px;width:90%;animation:slideUp .4s ease-out;border:1px solid var(--border)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.progress-modal-content{padding:2rem}.progress-header{text-align:center;margin-bottom:2rem}.progress-header h2{font-size:1.5rem;color:var(--text-primary);margin:0 0 .5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.header-icon{flex-shrink:0}.header-icon.success{color:var(--success)}.header-icon.error{color:var(--danger)}.header-icon.spin{animation:spin 1s linear infinite}.progress-subtitle{color:var(--text-secondary);font-size:1rem;margin:0;line-height:1.5}.progress-container{margin-bottom:2rem}.progress-bar-track{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%);transition:width .6s ease-out;border-radius:4px}.progress-bar-fill.complete{background:linear-gradient(90deg,var(--success) 0%,#16a34a 100%)}.progress-bar-fill.error{background:linear-gradient(90deg,#f87171 0%,var(--danger) 100%)}.progress-percentage{text-align:right;font-size:.9rem;color:var(--text-secondary);font-weight:600}.steps-container{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.step-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;background:var(--bg-tertiary);transition:all .3s ease;border:2px solid transparent}.step-item.active{background:#3b82f61a;border-color:var(--info)}.step-item.completed{background:#22c55e1a;border-color:var(--success)}.step-item.failed{background:#ef44441a;border-color:var(--danger)}.step-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:8px;flex-shrink:0;color:var(--text-secondary)}.step-item.active .step-icon{background:#3b82f633;color:var(--info)}.step-item.completed .step-icon{background:#22c55e33;color:var(--success);font-weight:700}.step-item.failed .step-icon{background:#ef444433;color:var(--danger)}.step-content{flex:1}.step-number{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.step-title{font-size:1rem;color:var(--text-primary);font-weight:600;margin-top:.25rem}.step-spinner{display:flex;align-items:center;gap:.5rem}.spinner{width:18px;height:18px;border:3px solid rgba(102,126,234,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.status-message{padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center;font-size:.95rem}.status-message.processing{background:#3b82f61a;color:var(--info);border-left:4px solid var(--info)}.status-message.completed{background:#22c55e1a;color:var(--success);border-left:4px solid var(--success)}.status-message.error{background:#ef44441a;color:var(--danger);border-left:4px solid var(--danger)}.status-message p{margin:0;line-height:1.5}.connection-status{padding:1rem;border-radius:8px;background:#f59e0b1a;border:1px solid var(--warning);text-align:center;color:var(--warning);font-size:.9rem}.connection-status p{margin:0;display:flex;align-items:center;justify-content:center;gap:.5rem}.error-details{padding:1rem;border-radius:8px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);text-align:center;color:var(--text-secondary);font-size:.9rem}.error-message-detail{color:var(--danger);font-weight:600;margin-bottom:.5rem!important}.error-hint{color:var(--text-muted)}.error-details p{margin:0;line-height:1.5}@media(max-width:480px){.progress-modal-content{padding:1.5rem}.progress-header h2{font-size:1.25rem}.step-item{padding:.75rem;gap:.75rem}.step-icon{width:36px;height:36px;font-size:1.25rem}.step-title{font-size:.9rem}}.video-upload-container{max-width:800px;margin:2rem auto;padding:0 1rem}.upload-back-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;margin-bottom:1.25rem;transition:all .2s}.upload-back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-light)}.upload-card{background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 6px #0000004d;padding:2rem;border:1px solid var(--border)}.upload-card h2{font-size:2rem;margin-bottom:.5rem;color:var(--text-primary)}.upload-description{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.optional{font-weight:400;color:var(--text-muted);font-size:.9rem}.info-tooltip{cursor:help;background:var(--bg-tertiary);border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-secondary)}.file-label{cursor:pointer;display:block}.file-input-wrapper{border:2px dashed var(--border);border-radius:8px;padding:2rem;text-align:center;transition:all .3s ease;background:var(--bg-tertiary)}.file-input-wrapper:hover{border-color:var(--primary);background:var(--bg-elevated)}.file-input{display:none}.upload-icon{font-size:3rem;display:block;margin-bottom:.5rem;color:var(--text-secondary)}.file-icon{font-size:2rem;display:block;margin-bottom:.5rem;color:var(--text-secondary)}.file-name{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.file-size{display:block;color:var(--text-secondary);font-size:.9rem}.file-hint{display:block;color:var(--text-muted);font-size:.85rem;margin-top:.5rem}input[type=text],textarea,select{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s ease;background:var(--bg-tertiary);color:var(--text-primary)}input[type=text]:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea33}input[type=text]:disabled,textarea:disabled,select:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.6}input[type=text]::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:100px}.submit-btn{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;padding:1rem 2rem;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 15px #667eea66}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.error-message{background:#ef444426;color:var(--danger);padding:1rem;border-radius:6px;border-left:4px solid var(--danger);font-weight:500}.info-box{margin-top:2rem;background:#3b82f61a;border-radius:8px;padding:1.5rem;border-left:4px solid var(--info)}.info-box h3{color:var(--info);margin-bottom:1rem;font-size:1.1rem}.info-box ol{margin:0;padding-left:1.5rem;color:var(--text-secondary)}.info-box li{margin-bottom:.5rem}.video-trimmer{margin:2rem 0;background:var(--bg-tertiary);border-radius:12px;padding:1.5rem;border:2px solid var(--border)}.trimmer-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0003}.trim-btn{background:var(--info);color:#fff;border:none;padding:.5rem 1.5rem;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:.5rem}.trim-btn:hover{background:#2563eb}.time-display{font-weight:600;color:var(--text-primary);font-family:Courier New,monospace}.trim-info{color:var(--text-secondary);font-size:.9rem;margin-left:auto}.video-preview-container{position:relative;background:#000;border-radius:8px;overflow:hidden;margin-bottom:1rem;max-height:500px;display:flex;align-items:center;justify-content:center}.video-preview{width:100%;height:auto;max-height:500px;display:block}.timeline-container{margin-top:1.5rem}.timeline{position:relative;height:60px;background:var(--bg-tertiary);border-radius:8px;cursor:pointer;overflow:visible;-webkit-user-select:none;user-select:none}.timeline-bg{position:absolute;inset:0;background:linear-gradient(to right,var(--border) 0%,var(--border-light) 100%);border-radius:8px}.timeline-selected{position:absolute;top:0;bottom:0;background:#667eea4d;border-left:3px solid var(--primary);border-right:3px solid var(--primary);pointer-events:auto;z-index:2;transition:background .1s ease}.timeline-selected:hover{background:#667eea80}.timeline-selected:active{cursor:grabbing}.timeline-current{position:absolute;top:0;bottom:0;width:3px;background:var(--danger);pointer-events:none;z-index:3}.timeline-current:after{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--danger)}.timeline-handle{position:absolute;top:-10px;bottom:-10px;width:20px;margin-left:-10px;cursor:ew-resize;z-index:4;display:flex;align-items:center;justify-content:center}.timeline-handle-start,.timeline-handle-end{background:var(--primary);border-radius:4px;box-shadow:0 2px 8px #667eea66;transition:transform .2s ease}.timeline-handle:hover{transform:scaleX(1.2)}.timeline-handle:active{transform:scaleX(1.3)}.handle-line{width:3px;height:30px;background:#fff;border-radius:2px;pointer-events:none}.timeline-labels{display:flex;justify-content:space-between;margin-top:.5rem;padding:0 .25rem;font-size:.85rem;color:var(--text-secondary);font-family:Courier New,monospace}@media(max-width:768px){.upload-card{padding:1.5rem}.upload-card h2{font-size:1.5rem}.file-input-wrapper{padding:1.5rem}.video-trimmer{padding:1rem}.trimmer-toolbar{flex-wrap:wrap;gap:.5rem}.trim-info{margin-left:0;width:100%;text-align:center}.video-preview-container{max-height:300px}.timeline{height:50px}}.foot-position-display{display:flex;flex-direction:column;align-items:center;gap:10px}.foot-position-display__canvas{border-radius:12px;background:var(--surface, #1a1a1a)}.foot-position-display__legend{display:flex;gap:16px}.foot-position-display__legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted, #888)}.foot-position-display__legend-item:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%}.foot-position-display__legend-item--front:before{background:#f97316}.foot-position-display__legend-item--back:before{background:#a855f7}.body-part-visualization{width:100%;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.infographic-section{display:flex;flex-direction:column;gap:1.5rem}.infographic-section h2{margin:0;font-size:1.3rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.analysis-layout{display:grid;grid-template-columns:200px 1fr 200px;gap:2rem;align-items:flex-start;justify-items:center;padding:1rem}.analysis-layout-wrapper{position:relative;width:100%;min-height:750px}.cards-column{display:flex;flex-direction:column;gap:1rem;width:100%}.left-column{align-items:flex-end}.right-column{align-items:flex-start}.center-section{display:flex;justify-content:center;align-items:center}.skaterCanvas{border-radius:8px;overflow:hidden;background:transparent;position:relative}.skeleton-canvas-shell{border:none;background:transparent;box-shadow:none}.skeleton-animation-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.body-part-card-side{padding:.75rem;border-radius:6px;border-left:3px solid;cursor:pointer;transition:all .3s ease;font-size:.85rem;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;position:relative;z-index:10;background:var(--bg-secondary)}.body-part-card-side:hover{transform:translate(-2px);box-shadow:0 4px 12px #0000004d}.body-part-card-side.selected{box-shadow:0 6px 16px #0006;transform:translate(-4px)}.body-part-card{padding:1rem;border-radius:8px;border-left:4px solid;cursor:pointer;transition:all .3s ease;background-color:var(--bg-secondary)}.body-part-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.body-part-card.selected{box-shadow:0 6px 16px #0000004d;transform:translateY(-4px)}.part-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.part-header h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.score-badge{padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600;white-space:nowrap}.part-context{margin:.5rem 0;font-size:.9rem;color:var(--text-secondary);line-height:1.4}.frame-indicator{margin-top:.5rem;font-size:.8rem;color:var(--text-muted);font-weight:500;display:flex;align-items:center;gap:.25rem}.advanced-analysis-sections{display:flex;flex-direction:column;gap:1.5rem}.advanced-analysis-card{width:100%;padding:1.25rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);display:flex;flex-direction:column;gap:.8rem}.advanced-analysis-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.advanced-analysis-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.45rem}.section-score-pill{color:#fff;font-size:.8rem;font-weight:700;border-radius:999px;padding:.25rem .65rem;font-variant-numeric:tabular-nums}.advanced-analysis-subtitle{margin:0;font-size:.86rem;color:var(--text-muted)}.advanced-analysis-text{margin:0;font-size:.92rem;line-height:1.6;color:var(--text-secondary)}.metric-widget-shell{display:flex;flex-direction:column;align-items:center;gap:.45rem;width:100%}.metric-main-value{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.metric-points-value{margin:0;font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.speedometer-shell{position:relative;width:min(300px,100%);max-width:300px;aspect-ratio:1 / 1;margin:0 auto}.speedometer-dial{display:block;width:100%;height:auto;object-fit:contain}.speedometer-needle{position:absolute;left:50%;top:50%;width:13%;max-width:46px;height:auto;transform-origin:50% 86%;transition:transform .4s ease;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.height-ruler-shell{position:relative;width:160px;height:320px;margin:0 auto;display:flex;justify-content:center;align-items:stretch}.height-ruler-base{display:block;height:100%;width:auto;object-fit:contain}.height-ruler-indicator{position:absolute;left:calc(50% + 18px);width:92px;height:24px;transform:translateY(50%);transition:bottom .4s ease;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.frame-chart-wrapper{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:920px;margin:0 auto}.frame-chart{width:100%;aspect-ratio:16 / 7;height:auto;min-height:190px;max-height:320px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border)}.frame-axis{stroke:var(--text-muted);stroke-width:.35}.frame-grid-line{stroke:#94a3b840;stroke-width:.25}.frame-tick-label{fill:var(--text-muted);font-size:3.4px;font-weight:500}.frame-chart-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-muted)}.frame-chart-legend{display:flex;flex-wrap:wrap;gap:.5rem .9rem}.frame-chart-legend-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary)}.frame-chart-legend-dot{width:10px;height:10px;border-radius:999px;flex-shrink:0}.frame-chart-empty{border:1px dashed var(--border);border-radius:8px;padding:1.25rem;font-size:.88rem;color:var(--text-muted);background:var(--bg-tertiary)}.landing-frame-preview{width:100%;max-width:560px;border-radius:8px;border:1px solid var(--border);background:var(--bg-tertiary);overflow:hidden;min-height:140px;max-height:min(55vh,420px);display:flex;align-items:center;justify-content:center;margin:0 auto}.landing-frame-image{width:auto;height:100%;max-width:100%;object-fit:contain;display:block}.landing-frame-preview.clickable .landing-frame-image{cursor:zoom-in;transition:transform .2s ease}.landing-frame-preview.clickable .landing-frame-image:hover{transform:scale(1.01)}.landing-frame-preview.clickable .landing-frame-image:focus-visible{outline:2px solid var(--info);outline-offset:-2px}.landing-frame-empty{padding:1rem;text-align:center;color:var(--text-muted);font-size:.88rem}.landing-modal-content{max-width:980px}.landing-frame-analysis{border-left-color:var(--success)}.feedback-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.feedback-card{padding:1.5rem;border-radius:12px;border-top:4px solid;box-shadow:0 1px 3px #0003}.feedback-card h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.feedback-card p{margin:0;font-size:.95rem;line-height:1.6;color:var(--text-secondary)}.feedback-card.positive{background-color:#22c55e1a;border-top-color:var(--success)}.feedback-card.improvement{background-color:#ef44441a;border-top-color:var(--danger)}.feedback-card.tips{background-color:#f59e0b1a;border-top-color:var(--warning)}.feedback-card.exercises{background-color:#6366f11a;border-top-color:#6366f1}.feedback-card.notes{background-color:#a855f71a;border-top-color:#a855f7}.video-player-section{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border)}.video-player-section h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.video-player-container{width:100%;max-width:800px;margin:0 auto}.video-player{width:100%;height:auto;border-radius:8px;background:#000}.frame-navigation-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:8px}.frame-nav-btn{padding:.75rem 1.25rem;border:2px solid var(--info);background-color:#3b82f61a;color:var(--info);border-radius:6px;cursor:pointer;font-weight:600;font-size:.95rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.frame-nav-btn:hover{background-color:var(--info);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.frame-nav-btn:active{transform:translateY(0)}.frame-nav-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.frame-counter{font-size:1rem;font-weight:600;color:var(--text-primary);min-width:80px;text-align:center;display:flex;align-items:center;justify-content:center;gap:.25rem}.frame-modal-overlay{position:fixed;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.frame-modal-content{background:var(--bg-secondary);border-radius:12px;box-shadow:0 10px 40px #00000080;max-width:800px;width:90%;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-in-out;border:1px solid var(--border)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.frame-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.frame-modal-header h3{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-primary)}.frame-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.frame-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.frame-modal-body{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:1rem}.frame-image{max-width:100%;max-height:500px;border-radius:8px;box-shadow:0 2px 8px #0000004d;background:var(--bg-tertiary)}.frame-loading{padding:2rem;color:var(--text-secondary);text-align:center;font-size:1rem}.frame-info{margin:0;font-size:.9rem;color:var(--text-secondary);font-weight:500}.frame-analysis{width:100%;padding:1rem;background:var(--bg-tertiary);border-radius:8px;border-left:4px solid var(--info)}.frame-score{margin:0 0 .5rem;font-size:.95rem;color:var(--text-primary);font-weight:600}.frame-context{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.6}@media(max-width:1200px){.analysis-layout{grid-template-columns:1fr;gap:1rem}.cards-column{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.left-column,.right-column{align-items:auto}.advanced-analysis-sections{display:flex;flex-direction:column}}@media(max-width:768px){.body-part-visualization{gap:1.5rem;overflow-x:hidden;max-width:100%}.analysis-layout-wrapper{min-height:auto;overflow-x:hidden}.analysis-layout{grid-template-columns:1fr;gap:1rem;padding:.5rem;overflow-x:hidden}.center-section{width:100%;overflow:hidden}.skeleton-canvas-shell{max-width:100%!important}.feedback-sections{grid-template-columns:1fr}.cards-column{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.body-part-card-side{padding:.75rem;min-height:auto}.part-header h4{font-size:.85rem}.part-context{font-size:.8rem}.advanced-analysis-sections{display:flex;flex-direction:column;width:100%}.advanced-analysis-card{width:100%;box-sizing:border-box;overflow-x:hidden}.advanced-analysis-header{flex-wrap:wrap;gap:.5rem}.frame-chart-wrapper{width:100%;overflow-x:hidden}.frame-chart{aspect-ratio:16 / 9;min-height:150px;max-height:230px}.speedometer-shell{max-width:220px}.height-ruler-shell{width:120px;height:240px}.height-ruler-indicator{width:70px;height:18px}.landing-frame-preview{max-height:min(45vh,320px)}.trick-tips-section{padding:1.25rem}.trick-tip-card{padding:.85rem 1rem}}.trick-tips-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:1.75rem}.trick-tips-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.trick-tips-header h2{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0}.trick-tips-trick-name{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--primary);background:#667eea1f;padding:.2rem .65rem;border-radius:20px;border:1px solid rgba(102,126,234,.25)}.trick-tips-list{display:flex;flex-direction:column;gap:.75rem}.trick-tip-card{display:flex;align-items:flex-start;gap:1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:10px;padding:1rem 1.25rem;transition:border-left-color .2s,background .2s}.trick-tip-card:hover{background:var(--bg-elevated);border-left-color:var(--secondary)}.trick-tip-number{flex-shrink:0;width:26px;height:26px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-size:.75rem;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px}.trick-tip-content{flex:1}.trick-tip-content h3{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.trick-tip-content p{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0}.foot-position-subsection{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.foot-position-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 1rem}.video-analysis-container{max-width:1200px;margin:0 auto;padding:2rem 1rem;background:var(--bg-primary);min-height:100vh;overflow-x:hidden}.video-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.back-btn{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:500}.back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-light)}.video-header h1{flex:1;margin:0;color:var(--text-primary)}.trick-name-section{flex:1}.trick-name-display{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.trick-name-display h1{margin:0;color:var(--text-primary);font-size:1.5rem}.trick-name-with-info{display:flex;align-items:center;gap:.5rem}.btn-edit-trick{display:flex;align-items:center;gap:6px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;white-space:nowrap}.btn-edit-trick:hover{background:var(--bg-tertiary);border-color:var(--primary);color:var(--primary)}.btn-view-roadmap{display:flex;align-items:center;gap:6px;background:var(--bg-secondary);border:1px solid var(--primary);color:var(--primary);padding:.4rem .9rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;white-space:nowrap}.btn-view-roadmap:hover{background:color-mix(in srgb,var(--primary) 15%,transparent)}.info-icon-wrapper{position:relative;display:inline-flex;align-items:center;touch-action:manipulation}.info-icon-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.info-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:help;opacity:.6;transition:opacity .2s;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;color:var(--text-secondary)}.info-icon:hover,.info-icon-btn:hover .info-icon,.info-icon:active,.info-icon-btn:active .info-icon{opacity:1}.info-icon-btn:focus{outline:none}.info-icon-btn:focus .info-icon{opacity:1}.tooltip{position:absolute;left:50%;transform:translate(-50%);background:var(--bg-elevated);color:var(--text-primary);padding:.75rem 1rem;border-radius:8px;font-size:.875rem;margin-bottom:.5rem;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000;box-shadow:0 4px 12px #0000004d;border:1px solid var(--border);max-width:350px;white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.tooltip-below{top:100%;margin-top:.5rem;margin-bottom:0}.tooltip p{margin:0;line-height:1.4}.tooltip p+p{margin-top:.5rem}.tooltip strong{font-weight:600}.info-icon-wrapper:hover .tooltip,.info-icon-wrapper:active .tooltip,.info-icon-wrapper:focus-within .tooltip,.info-icon-btn:focus~.tooltip{opacity:1;pointer-events:auto}@media(max-width:768px){.info-icon-wrapper{position:relative;display:inline-flex;align-items:center;z-index:1001}.tooltip{left:50%;right:auto;transform:translate(-50%);max-width:min(320px,calc(100vw - 40px))}}.edit-trick-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.edit-trick-form input{flex:1;min-width:200px;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;transition:all .2s;background:var(--bg-tertiary);color:var(--text-primary)}.edit-trick-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea33}.edit-trick-form input::placeholder{color:var(--text-muted)}.btn-submit,.btn-cancel{display:flex;align-items:center;gap:6px;padding:.75rem 1rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s;white-space:nowrap}.btn-submit{background:linear-gradient(135deg,var(--success) 0%,#16a34a 100%);color:#fff}.btn-submit:hover:not(:disabled){transform:scale(1.02);box-shadow:0 4px 8px #22c55e4d}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.btn-cancel:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.status-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem;text-transform:uppercase}.status-badge.pending{background:#f59e0b26;color:var(--warning)}.status-badge.processing{background:#3b82f626;color:var(--info)}.status-badge.completed{background:#22c55e26;color:var(--success)}.status-badge.failed{background:#ef444426;color:var(--danger)}.loading,.error-state{text-align:center;padding:4rem 2rem}.error-state .error-icon{color:var(--danger);margin-bottom:1rem}.error-state h2{color:var(--text-primary);margin:0 0 1rem}.error-state p{color:var(--text-secondary);margin:0 0 1.5rem}.spinner-large{width:60px;height:60px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.processing-notice,.failed-notice{background:var(--bg-secondary);border-radius:12px;padding:2rem;margin-bottom:2rem;display:flex;align-items:center;gap:1.5rem;border:1px solid var(--border)}.processing-notice h3,.failed-notice h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;color:var(--text-primary)}.processing-notice p,.failed-notice p{color:var(--text-secondary);margin:0}.processing-hint,.support-hint{color:var(--text-muted)!important;font-size:.9rem;margin-top:.5rem!important}.failed-notice{background:#ef44441a;border-left:4px solid var(--danger)}.failed-notice h3{color:var(--danger)}.analysis-section{display:grid;grid-template-columns:auto 1fr;gap:2rem;margin-bottom:2rem}.score-card-wrapper{position:relative;display:inline-flex}.score-card{background:var(--bg-secondary);border-radius:12px;padding:2rem;text-align:center;border:1px solid var(--border);border-left:6px solid;min-width:200px;cursor:help}.score-breakdown-tooltip{position:absolute;top:calc(100% + .75rem);left:0;width:min(420px,90vw);padding:1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-tertiary);box-shadow:0 8px 24px #00000047;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;pointer-events:none;z-index:20}.score-card-wrapper:hover .score-breakdown-tooltip,.score-card-wrapper:focus-within .score-breakdown-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.score-breakdown-title{margin:0 0 .75rem;font-size:.9rem;font-weight:700;color:var(--text-primary)}.score-breakdown-grid{display:flex;flex-direction:column;gap:.35rem}.score-breakdown-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.82rem;color:var(--text-secondary)}.score-breakdown-row span:last-child{color:var(--text-primary);white-space:nowrap;font-variant-numeric:tabular-nums}.score-breakdown-total{margin:.75rem 0 0;padding-top:.6rem;border-top:1px solid var(--border);font-size:.85rem;font-weight:700;color:var(--text-primary)}.score-breakdown-note{margin:.35rem 0 0;font-size:.75rem;color:var(--text-muted)}.score-label{font-size:.9rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.score-value{font-size:4rem;font-weight:700;line-height:1}.score-max{font-size:2rem;color:var(--text-muted)}.score-description{margin-top:.5rem;font-weight:600;color:var(--text-primary)}.chat-section{background:var(--bg-secondary);border-radius:12px;padding:2rem;border:1px solid var(--border);margin-top:2rem}.chat-section h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1.5rem;color:var(--text-primary)}.chat-container{display:flex;flex-direction:column;gap:1rem}.chat-messages{min-height:300px;max-height:500px;overflow-y:auto;padding:1rem;background:var(--bg-tertiary);border-radius:8px;display:flex;flex-direction:column;gap:1rem}.chat-empty{text-align:center;color:var(--text-secondary);padding:2rem}.suggested-questions{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem}.suggested-questions p{font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.suggested-questions button{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:.75rem;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.suggested-questions button:hover{background:var(--bg-elevated);border-color:var(--primary);color:var(--text-primary)}.chat-message{display:flex;flex-direction:column;gap:.5rem;max-width:80%}.chat-message.user{align-self:flex-end}.chat-message.assistant{align-self:flex-start}.message-header{display:flex;align-items:center;gap:.5rem}.message-role{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.message-content{padding:1rem;border-radius:8px;line-height:1.6}.chat-message.user .message-content{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff}.chat-message.assistant .message-content{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary)}.chat-message.assistant .message-content p{margin:0 0 .75rem}.chat-message.assistant .message-content p:last-child{margin-bottom:0}.chat-message.assistant .message-content ul,.chat-message.assistant .message-content ol{margin:0 0 .75rem;padding-left:1.5rem}.chat-message.assistant .message-content li{margin-bottom:.25rem}.chat-message.assistant .message-content strong{font-weight:700;color:var(--text-primary)}.chat-message.assistant .message-content em{font-style:italic}.chat-message.assistant .message-content h1,.chat-message.assistant .message-content h2,.chat-message.assistant .message-content h3{margin:.75rem 0 .4rem;font-weight:700;line-height:1.3}.chat-message.assistant .message-content h1:first-child,.chat-message.assistant .message-content h2:first-child,.chat-message.assistant .message-content h3:first-child{margin-top:0}.chat-message.assistant .message-content code{background:var(--bg-tertiary);border-radius:4px;padding:.15em .4em;font-size:.9em;font-family:monospace}.chat-message.assistant .message-content blockquote{border-left:3px solid var(--primary);margin:0 0 .75rem;padding-left:.75rem;color:var(--text-secondary)}.chat-input-form{display:flex;gap:.5rem}.chat-input-form input{flex:1;padding:.75rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--bg-tertiary);color:var(--text-primary)}.chat-input-form input:focus{outline:none;border-color:var(--primary)}.chat-input-form input::placeholder{color:var(--text-muted)}.chat-input-form button{padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1.2rem;transition:all .3s;display:flex;align-items:center;justify-content:center}.chat-input-form button:hover:not(:disabled){transform:scale(1.05)}.chat-input-form button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.video-analysis-container{padding:1rem .75rem}.analysis-section{grid-template-columns:1fr}.score-card{min-width:0;width:100%}.score-breakdown-row{flex-direction:column;align-items:flex-start;gap:.2rem}.score-breakdown-row span:last-child{white-space:normal}.chat-section{padding:1.25rem}.chat-message{max-width:92%}.score-value{font-size:3rem}.trick-name-display{flex-direction:column;align-items:flex-start;gap:.75rem}.trick-name-display h1{font-size:1.25rem}.btn-edit-trick,.btn-view-roadmap{font-size:.85rem;padding:.4rem .75rem}.edit-trick-form{flex-direction:column;width:100%}.edit-trick-form input{width:100%;min-width:0}.btn-submit,.btn-cancel{width:100%;justify-content:center}.processing-notice,.failed-notice{flex-direction:column;gap:1rem;padding:1.25rem;align-items:flex-start}.status-badge{font-size:.75rem;padding:.3rem .6rem}}.analyzing-overlay{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:20px}.analyzing-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:24px;padding:40px 32px;max-width:480px;width:100%;text-align:center}.analyzing-title{font-size:22px;color:var(--text-primary);margin:16px 0 8px}.analyzing-subtitle{color:var(--text-secondary);font-size:14px;margin:0 0 24px}.analyzing-progress-bar-wrap{width:100%;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:24px}.analyzing-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:3px;transition:width .4s ease}.analyzing-agent-list{display:flex;flex-direction:column;gap:8px;text-align:left}.analyzing-agent-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;transition:border-color .2s}.analyzing-agent-item--running{border-color:var(--primary)}.analyzing-agent-item--complete{border-color:var(--success)}.analyzing-agent-item--failed{border-color:var(--danger)}.analyzing-agent-icon{display:flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;color:var(--text-muted)}.analyzing-agent-item--running .analyzing-agent-icon{color:var(--primary)}.analyzing-agent-item--complete .analyzing-agent-icon{color:var(--success)}.analyzing-agent-item--failed .analyzing-agent-icon{color:var(--danger)}.analyzing-agent-label{flex:1;font-size:13px;font-weight:500;color:var(--text-primary)}.analyzing-agent-status{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}.analyzing-agent-item--running .analyzing-agent-status{color:var(--primary)}.analyzing-agent-item--complete .analyzing-agent-status{color:var(--success)}.analyzing-agent-item--failed .analyzing-agent-status{color:var(--danger)}.analyzing-error{display:flex;align-items:center;gap:8px;margin-top:16px;padding:10px 14px;background:#ef44441a;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:13px}.trick-confirmation-container{min-height:100vh;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;padding:20px}.trick-confirmation-card{background:var(--bg-secondary);border-radius:24px;border:1px solid var(--border);max-width:600px;width:100%;padding:32px;position:relative}@media(min-width:768px){.trick-confirmation-card{padding:48px}}.btn-back{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:24px}.btn-back:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-light)}.confirmation-content{display:flex;flex-direction:column;align-items:center;text-align:center}.video-preview{width:100%;max-width:400px;border-radius:16px;overflow:hidden;margin-bottom:32px;border:1px solid var(--border)}.video-preview img{width:100%;height:auto;display:block}.confirmation-header{margin-bottom:32px}.confirmation-header h1{font-size:28px;color:var(--text-primary);margin:0 0 12px}@media(min-width:768px){.confirmation-header h1{font-size:36px}}.confirmation-subtitle{color:var(--text-secondary);font-size:16px;margin:0}.detected-trick{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:20px 24px;margin-bottom:24px;width:100%;display:flex;flex-direction:column;gap:8px}.detected-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.detected-name{font-size:24px;font-weight:700;color:var(--primary)}@media(min-width:768px){.detected-name{font-size:28px}}.correction-form{width:100%;margin-bottom:24px;text-align:left}.correction-form label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.correction-form input{width:100%;padding:14px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;font-size:16px;color:var(--text-primary);transition:all .2s ease}.correction-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #667eea33}.correction-form input:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#ef44441a;color:var(--danger);padding:12px 16px;border-radius:8px;margin-bottom:24px;width:100%;text-align:left;border-left:4px solid var(--danger)}.confirmation-actions{display:flex;flex-direction:column;gap:12px;width:100%}@media(min-width:480px){.confirmation-actions{flex-direction:row}}.btn-confirm,.btn-reanalyze{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-confirm{background:linear-gradient(135deg,var(--success) 0%,#16a34a 100%);color:#fff}.btn-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.btn-reanalyze{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff}.btn-reanalyze:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-confirm:disabled,.btn-reanalyze:disabled{opacity:.5;cursor:not-allowed;transform:none}.loading-state,.error-state{text-align:center;padding:60px 20px}.spinner-large{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.loading-state p,.error-state p{color:var(--text-secondary);margin:0}.error-state h2{color:var(--text-primary);margin:0 0 12px}.error-state .btn-back{margin:24px auto 0}.analysis-progress{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 0}.analysis-progress-header{margin-bottom:28px}.analysis-progress-header h2{font-size:24px;color:var(--text-primary);margin:16px 0 8px}.analysis-subtitle{color:var(--text-secondary);font-size:15px;margin:0}.analysis-progress-bar-wrap{width:100%;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:28px}.analysis-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:3px;transition:width .4s ease}.agent-checklist{width:100%;display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.agent-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;transition:border-color .2s,background .2s}.agent-item--running{border-color:var(--primary);background:#667eea0f}.agent-item--complete{border-color:var(--success);background:#22c55e0f}.agent-item--failed{border-color:var(--danger);background:#ef44440f}.agent-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:13px;flex-shrink:0}.agent-icon--pending{color:var(--text-muted)}.agent-icon--running{color:var(--primary)}.agent-icon--complete{color:var(--success)}.agent-icon--failed{color:var(--danger)}.agent-label{flex:1;font-size:14px;font-weight:500;color:var(--text-primary);text-align:left}.agent-status-text{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}.agent-item--running .agent-status-text{color:var(--primary)}.agent-item--complete .agent-status-text{color:var(--success)}.agent-item--failed .agent-status-text{color:var(--danger)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.roadmap-categories-layout{display:flex;min-height:100vh;background:var(--bg-primary)}.roadmap-categories-main{margin-left:280px;flex:1;padding:2.5rem 2rem;overflow-y:auto}.roadmap-categories-content{max-width:860px;margin:0 auto}.roadmap-categories-header{margin-bottom:2.5rem}.roadmap-categories-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.roadmap-categories-subtitle{font-size:.95rem;color:var(--text-secondary);margin:0}.roadmap-categories-loading{text-align:center;color:var(--text-muted);padding:3rem 0;font-size:.95rem}.roadmap-categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.roadmap-category-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:1.5rem;cursor:pointer;display:flex;align-items:center;gap:1.25rem;transition:all .2s ease;position:relative;overflow:hidden}.roadmap-category-card:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .2s ease;border-radius:16px}.roadmap-category-card--flatground:before{background:linear-gradient(135deg,rgba(102,126,234,.06),transparent)}.roadmap-category-card--grind:before{background:linear-gradient(135deg,rgba(245,158,11,.06),transparent)}.roadmap-category-card--basics:before{background:linear-gradient(135deg,rgba(34,197,94,.06),transparent)}.roadmap-category-card--transition:before{background:linear-gradient(135deg,rgba(59,130,246,.06),transparent)}.roadmap-category-card:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.roadmap-category-card:hover:before{opacity:1}.roadmap-category-card--flatground:hover{border-color:var(--primary)}.roadmap-category-card--grind:hover{border-color:var(--warning)}.roadmap-category-card--basics:hover{border-color:var(--success)}.roadmap-category-card--transition:hover{border-color:var(--info)}.roadmap-category-card__icon{font-size:2.5rem;flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:12px}.roadmap-category-card__info{flex:1;min-width:0}.roadmap-category-card__name{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.roadmap-category-card__desc{font-size:.8rem;color:var(--text-muted);margin:0 0 .875rem}.roadmap-category-card__progress{display:flex;align-items:center;gap:.625rem}.roadmap-category-card__progress-bar{flex:1;height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden}.roadmap-category-card__progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .4s ease}.roadmap-category-card__progress-label{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.roadmap-category-card__pct{font-size:1.4rem;font-weight:700;color:var(--text-muted);flex-shrink:0}.roadmap-category-card--flatground .roadmap-category-card__pct{color:var(--primary)}.roadmap-category-card--grind .roadmap-category-card__pct{color:var(--warning)}.roadmap-category-card--basics .roadmap-category-card__pct{color:var(--success)}.roadmap-category-card--transition .roadmap-category-card__pct{color:var(--info)}@media(max-width:1024px){.roadmap-categories-main{margin-left:240px}}@media(max-width:768px){.roadmap-categories-main{margin-left:0;padding:calc(56px + 1.5rem) 1rem 1.5rem}.roadmap-categories-grid{grid-template-columns:1fr}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.trick-node{width:140px;border-radius:10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;border:2px solid transparent;background:var(--bg-secondary)}.trick-node:hover{transform:translateY(-2px)}.trick-node--done{border-color:var(--primary);background:linear-gradient(135deg,#667eea26,#764ba226);box-shadow:0 0 12px #667eea59}.trick-node--done:hover{box-shadow:0 4px 20px #667eea8c}.trick-node--available{border-color:var(--border-light);background:var(--bg-tertiary);opacity:.85}.trick-node--available:hover{border-color:var(--primary);opacity:1}.trick-node--mystery{border-color:var(--border);background:var(--bg-secondary);opacity:.4;cursor:default}.trick-node__inner{padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;position:relative}.trick-node__status-icon{position:absolute;top:8px;right:8px}.trick-node__status-icon--done{color:var(--primary)}.trick-node__status-icon--available,.trick-node__status-icon--preview{color:var(--text-muted)}.trick-node__name{font-size:.8rem;font-weight:600;color:var(--text-primary);line-height:1.2;padding-right:16px}.trick-node--mystery .trick-node__name,.trick-node__status-icon--mystery{color:var(--text-muted)}.trick-node__score{font-size:.75rem;font-weight:700;color:var(--primary);background:#667eea26;border-radius:4px;padding:1px 6px}.trick-node__hint{font-size:.65rem;color:var(--text-muted)}.trick-node .react-flow__handle{width:8px;height:8px;background:var(--border-light);border:none}.trick-node--done .react-flow__handle{background:var(--primary)}@keyframes unlockPulse{0%{transform:scale(1);box-shadow:0 0 #667eeab3}50%{transform:scale(1.08);box-shadow:0 0 20px 8px #667eea66}to{transform:scale(1);box-shadow:0 0 12px #667eea59}}.trick-node--done.trick-node--just-unlocked{animation:unlockPulse .6s ease-out}.trick-modal__overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.trick-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:540px;max-height:88vh;overflow-y:auto;padding:1.75rem;position:relative}.trick-modal__close{position:absolute;top:1rem;right:1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;padding:0;transition:all .15s ease}.trick-modal__close:hover{background:var(--bg-elevated);color:var(--text-primary)}.trick-modal__header{margin-bottom:1.25rem;padding-right:2rem}.trick-modal__category-badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 8px;margin-bottom:.5rem}.trick-modal__category-badge--flatground{background:#667eea33;color:var(--primary)}.trick-modal__category-badge--grind{background:#f59e0b33;color:var(--warning)}.trick-modal__category-badge--basics{background:#22c55e33;color:var(--success)}.trick-modal__category-badge--transition{background:#ef444433;color:var(--danger)}.trick-modal__title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.trick-modal__stars{display:flex;align-items:center;gap:3px;margin-bottom:.75rem}.trick-modal__difficulty-label{font-size:.75rem;color:var(--text-muted);margin-left:6px}.trick-modal__description{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin:0}.trick-modal__score-row{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:.875rem 1rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:1rem}.trick-modal__best-score{display:flex;align-items:center;gap:.5rem}.trick-modal__score-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.trick-modal__score-value{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.trick-modal__section{margin-bottom:1.25rem}.trick-modal__section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 .75rem}.trick-modal__tips{display:flex;flex-direction:column;gap:.75rem}.trick-modal__tip{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.trick-modal__tip-title{font-size:.85rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.trick-modal__tip-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin:0}.trick-modal__unlocks{display:flex;flex-wrap:wrap;gap:.5rem}.trick-modal__unlock-tag{font-size:.8rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;padding:3px 10px;color:var(--text-secondary)}.trick-modal__attempts-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.trick-modal__sort-controls{display:flex;align-items:center;gap:.375rem;color:var(--text-muted)}.trick-modal__sort-btn{font-size:.7rem;padding:3px 8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:5px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.trick-modal__sort-btn.active{background:#667eea33;border-color:var(--primary);color:var(--primary)}.trick-modal__sort-btn:hover:not(.active){border-color:var(--border-light);color:var(--text-primary)}.trick-modal__thumbnails{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.trick-modal__thumb{aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;cursor:pointer;position:relative;background:var(--bg-tertiary);border:1px solid var(--border);transition:border-color .15s}.trick-modal__thumb:hover{border-color:var(--primary)}.trick-modal__thumb-img{width:100%;height:100%;object-fit:cover}.trick-modal__thumb-placeholder{width:100%;height:100%;background:var(--bg-elevated)}.trick-modal__thumb-score{position:absolute;bottom:4px;right:4px;background:#000000bf;color:var(--primary);font-size:.7rem;font-weight:700;border-radius:4px;padding:1px 5px}.trick-modal__pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:.875rem}.trick-modal__page-btn{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.trick-modal__page-btn:disabled{opacity:.35;cursor:not-allowed}.trick-modal__page-btn:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.trick-modal__page-label{font-size:.8rem;color:var(--text-muted)}.trick-modal__loading,.trick-modal__empty{font-size:.875rem;color:var(--text-muted);text-align:center;padding:1.5rem 0}.trick-modal__not-landed{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:1rem;text-align:center}.trick-modal__not-landed p{font-size:.875rem;color:var(--text-muted);margin:0}@media(max-width:600px){.trick-modal{padding:1.25rem;max-height:92vh}.trick-modal__thumbnails{grid-template-columns:repeat(2,1fr)}.trick-modal__attempts-header{flex-direction:column;align-items:flex-start}}.roadmap-layout{display:flex;height:100vh;background:var(--bg-primary);overflow:hidden}.roadmap-main{margin-left:280px;flex:1;display:flex;flex-direction:column;overflow:hidden}.roadmap-topbar{padding:1.25rem 1.75rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:1.25rem;background:var(--bg-secondary);flex-shrink:0}.roadmap-back-btn{font-size:.8rem;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:7px;padding:.375rem .875rem;cursor:pointer;transition:all .15s}.roadmap-back-btn:hover{color:var(--text-primary);border-color:var(--border-light)}.roadmap-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0}.roadmap-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.95rem}.roadmap-flow-container{flex:1;overflow:hidden}.roadmap-flow-container .react-flow__background{background:var(--bg-primary)}.roadmap-flow-container .react-flow__controls{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px}.roadmap-flow-container .react-flow__controls-button{background:var(--bg-secondary);border-color:var(--border);color:var(--text-secondary)}.roadmap-flow-container .react-flow__controls-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media(max-width:1024px){.roadmap-main{margin-left:240px}}@media(max-width:768px){.roadmap-main{margin-left:0;padding-top:56px}}.settings-layout{display:flex;min-height:100vh;background:var(--bg-primary)}.settings-page{margin-left:280px;flex:1;min-height:100vh;padding:40px 32px}@media(max-width:1024px){.settings-page{margin-left:240px}}@media(max-width:768px){.settings-page{margin-left:0;padding:80px 20px 32px}}.settings-header{display:flex;align-items:center;gap:16px;margin-bottom:40px}.settings-back-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--text-secondary);cursor:pointer;font-size:14px;transition:color .2s ease,border-color .2s ease}.settings-back-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.settings-title{font-size:28px;font-weight:700;color:var(--text-primary);margin:0}.settings-content{max-width:520px}.settings-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:28px}.settings-section-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.settings-section-desc{font-size:14px;color:var(--text-secondary);margin:0 0 20px;line-height:1.5}.settings-error{margin-top:16px}.settings-save-btn{display:flex;align-items:center;gap:8px;margin-top:20px;width:auto;padding:12px 24px}
