:root{--bg: #0a0a0f;--bg-card: #12121a;--bg-card-hover: #1a1a25;--bg-input: #0d0d14;--border: #1e1e2e;--border-focus: #6366f1;--text: #e4e4ec;--text-secondary: #8888a0;--text-muted: #555570;--accent: #6366f1;--accent-hover: #818cf8;--accent-glow: rgba(99, 102, 241, .15);--green: #22c55e;--green-bg: rgba(34, 197, 94, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .1);--amber: #f59e0b;--amber-bg: rgba(245, 158, 11, .1);--purple: #a855f7;--cyan: #06b6d4;--gold: #FFD700;--radius: 12px;--radius-sm: 8px;--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "JetBrains Mono", "Fira Code", monospace;--transition: .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:.9rem}.auth{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:48px 40px;max-width:460px;width:100%;text-align:center}.auth-icon{font-size:3.5rem;margin-bottom:16px}.auth-card h1{font-size:1.6rem;font-weight:800;margin-bottom:8px}.auth-sub{color:var(--text-secondary);margin-bottom:24px;font-size:.9rem;line-height:1.6}.auth-card input{width:100%;margin-bottom:16px}.error-msg{color:var(--red);font-size:.85rem;margin-top:8px;display:none}.header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border);background:var(--bg-card);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-left{display:flex;align-items:center;gap:12px}.header h1{font-size:1.3rem;font-weight:800;letter-spacing:-.02em}.header h1 span{color:var(--accent)}.header-actions{display:flex;gap:8px;align-items:center}.tabs{display:flex;gap:2px;padding:8px 28px 0;border-bottom:1px solid var(--border);background:var(--bg-card);overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{padding:10px 18px;border:none;background:none;color:var(--text-secondary);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:var(--transition);white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}main{padding:24px 28px 80px;max-width:1200px;margin:0 auto}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:16px;transition:var(--transition)}.card:hover{border-color:#6366f133}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header h2{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700}.card-description{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin-bottom:20px}.icon{font-size:1.1rem}.badge{background:var(--accent-glow);color:var(--accent);padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600}.btn{padding:8px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition)}.btn:hover{background:var(--bg-card-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-warning{background:var(--amber-bg);border-color:var(--amber);color:var(--amber)}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:12px 28px;font-size:1rem}.btn-icon{padding:8px 10px;font-size:1rem}input,select,textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font:inherit;font-size:.9rem;transition:var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}textarea{resize:vertical;min-height:200px;font-family:var(--mono);font-size:.85rem;line-height:1.6}label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.form-row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}.slider-group{display:flex;align-items:center;gap:12px}.slider-group input[type=range]{flex:1;-webkit-appearance:none;height:6px;border-radius:3px;background:var(--border);outline:none;border:none;padding:0}.slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg)}.slider-value{font-family:var(--mono);font-size:.85rem;color:var(--accent);min-width:42px;text-align:right}.color-input-row{display:flex;align-items:center;gap:10px}.color-input-row input[type=color]{width:40px;height:36px;padding:2px;border-radius:var(--radius-sm);cursor:pointer}.color-input-row input[type=text]{flex:1}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border)}.toggle-row:last-child{border-bottom:none}.toggle-label{font-weight:600;font-size:.9rem}.toggle-sublabel{color:var(--text-secondary);font-size:.8rem;margin-top:2px}.toggle{position:relative;display:inline-block;width:44px;height:24px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:24px;cursor:pointer;transition:var(--transition)}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:var(--transition)}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tag{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--accent-glow);border:1px solid rgba(99,102,241,.2);border-radius:20px;font-size:.8rem;font-weight:500;color:var(--accent)}.tag .remove{cursor:pointer;opacity:.6;font-size:.85rem}.tag .remove:hover{opacity:1}.tag-input-row{display:flex;gap:8px}.tag-input-row input{flex:1}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border)}.data-table .mono{font-family:var(--mono);font-size:.8rem}.data-table .actions{text-align:right}.data-table .total-row td{font-weight:700;border-top:2px solid var(--border)}.add-row{display:flex;gap:8px;margin-top:14px;align-items:center}.add-row input{flex:1}.unsaved-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--amber);padding:12px 28px;display:flex;align-items:center;justify-content:space-between;z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.unsaved-bar span{color:var(--amber);font-weight:600}.toast{position:fixed;bottom:60px;right:24px;padding:12px 20px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;z-index:300;animation:slide-up .3s ease}.toast.success{background:var(--green-bg);color:var(--green);border:1px solid var(--green)}.toast.error{background:var(--red-bg);color:var(--red);border:1px solid var(--red)}.toast.info{background:var(--accent-glow);color:var(--accent);border:1px solid var(--accent)}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.caption-preview{background:#000;border-radius:var(--radius);padding:40px;display:flex;align-items:flex-end;justify-content:center;min-height:180px;margin-bottom:20px;position:relative;overflow:hidden}.caption-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.8))}.caption-text{position:relative;z-index:1;text-align:center;padding:8px 20px;border-radius:8px;font-weight:800;line-height:1.3}.caption-active{filter:drop-shadow(0 0 10px var(--gold));transform:scale(1.1);transition:all .2s ease}.stage-flow{display:flex;flex-direction:column;gap:4px}.stage-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border)}.stage-num{width:28px;height:28px;border-radius:50%;background:var(--accent-glow);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.stage-info{flex:1}.stage-name{font-weight:600;font-size:.9rem}.stage-file{font-family:var(--mono);font-size:.75rem;color:var(--text-muted)}.flow-divider{text-align:center;color:var(--text-muted);font-size:.8rem}.skill-tree{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin-top:12px}.skill-tree-header{font-family:var(--mono);font-size:.8rem;font-weight:600;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.skill-tree-row{display:flex;align-items:center;gap:8px;padding:4px 12px;font-size:.8rem}.skill-tree-row.dir{font-weight:600}.skill-icon{width:16px;text-align:center}.skill-size{margin-left:auto;color:var(--text-muted);font-family:var(--mono);font-size:.75rem}.skill-status{display:flex;align-items:center;gap:8px;padding:10px 0 0;font-size:.8rem;color:var(--text-secondary)}.skill-status code{font-family:var(--mono);color:var(--accent)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse-dot 2s ease infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.status-dot.live{background:var(--green)}.empty{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty .icon{font-size:2.5rem;margin-bottom:12px}@media(max-width:768px){.form-row,.form-row-3,.form-row-4{grid-template-columns:1fr}main{padding:16px}.header{padding:14px 16px}.tabs{padding:8px 16px 0}}
