@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--bg-primary:#07080c;--bg-secondary:#0b0d13;--bg-surface:#0f1117;--bg-surface-2:#141722;--bg-surface-hover:#1a1e2e;--bg-surface-active:#1e2235;--bg-elevated:#181c28;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff26;--border-accent:#6366f166;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-muted:#475569;--text-inverse:#0f172a;--accent-indigo:#6366f1;--accent-indigo-light:#818cf8;--accent-indigo-dark:#4f46e5;--accent-indigo-glow:#6366f126;--accent-indigo-subtle:#6366f114;--accent-emerald:#10b981;--accent-emerald-light:#34d399;--accent-emerald-glow:#10b98126;--accent-amber:#f59e0b;--accent-amber-light:#fbbf24;--accent-amber-glow:#f59e0b26;--accent-red:#ef4444;--accent-red-light:#f87171;--accent-red-glow:#ef444426;--accent-cyan:#06b6d4;--accent-cyan-glow:#06b6d426;--accent-purple:#a855f7;--accent-purple-glow:#a855f726;--accent-pink:#ec4899;--accent-pink-glow:#ec489926;--gradient-primary:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-success:linear-gradient(135deg, #10b981 0%, #06b6d4 100%);--gradient-warning:linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);--gradient-surface:linear-gradient(180deg, var(--bg-surface) 0%, var(--bg-surface-2) 100%);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0000004d;--shadow-xl:0 20px 25px -5px #00000080, 0 8px 10px -6px #0006;--shadow-glow-indigo:0 0 20px #6366f126;--shadow-glow-emerald:0 0 20px #10b98126;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:0px;--content-max-width:1400px;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-spring:.4s cubic-bezier(.34, 1.56, .64, 1);--z-sidebar:100;--z-header:90;--z-modal-backdrop:200;--z-modal:210;--z-toast:300;--scrollbar-width:6px;--scrollbar-track:transparent;--scrollbar-thumb:#ffffff1a;--scrollbar-thumb-hover:#fff3}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-surface:#fff;--bg-surface-2:#f8fafc;--bg-surface-hover:#f1f5f9;--bg-surface-active:#e2e8f0;--bg-elevated:#fff;--border-subtle:#0000000f;--border-default:#0000001a;--border-strong:#00000026;--border-accent:#4f46e54d;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--text-inverse:#f1f5f9;--accent-indigo:#4f46e5;--accent-indigo-light:#6366f1;--accent-indigo-glow:#4f46e51a;--accent-indigo-subtle:#4f46e50d;--accent-emerald:#059669;--accent-emerald-light:#10b981;--accent-emerald-glow:#0596691a;--accent-amber:#d97706;--accent-amber-light:#f59e0b;--accent-amber-glow:#d977061a;--accent-red:#dc2626;--accent-red-light:#ef4444;--accent-red-glow:#dc26261a;--accent-cyan:#0891b2;--accent-cyan-glow:#0891b21a;--accent-purple:#9333ea;--accent-purple-glow:#9333ea1a;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000000d;--shadow-glow-indigo:0 0 20px #4f46e51a;--scrollbar-thumb:#00000026;--scrollbar-thumb-hover:#00000040}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;overflow-x:hidden}#root{min-height:100vh}a{color:var(--accent-indigo-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-indigo)}img{max-width:100%;display:block}button{font-family:var(--font-family);cursor:pointer;font-size:inherit;background:0 0;border:none;outline:none}input,select,textarea{font-family:var(--font-family);font-size:var(--font-size-base)}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.app-layout{background:var(--bg-base);flex-direction:column;min-height:100vh;display:flex}.app-body-container{flex:1;display:flex;position:relative}.main-content{margin-left:var(--sidebar-width);padding:var(--space-xl);min-height:calc(100vh - 60px);transition:margin-left var(--transition-slow);max-width:calc(100vw - var(--sidebar-width));flex:1}.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width);max-width:calc(100vw - var(--sidebar-collapsed-width))}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);height:calc(100vh - 60px);z-index:var(--z-sidebar);transition:width var(--transition-slow), transform var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:60px;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-brand{padding:var(--space-lg);align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border-subtle);min-height:72px;display:flex}.sidebar-brand-icon{border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;width:36px;height:36px;font-weight:800;font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand-text{white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.sidebar-brand-text h1{font-size:var(--font-size-md);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.sidebar-brand-text span{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:500}.sidebar-nav{padding:var(--space-sm);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sidebar-nav-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:500;font-size:var(--font-size-base);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;text-decoration:none;display:flex;position:relative}.sidebar-nav-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--accent-indigo-subtle);color:var(--accent-indigo-light)}.sidebar-nav-item.active:before{content:"";background:var(--accent-indigo);border-radius:0 var(--radius-full) var(--radius-full) 0;width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-nav-icon{flex-shrink:0;width:20px;height:20px}.sidebar-nav-label{text-overflow:ellipsis;overflow:hidden}.sidebar-toggle{border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-default);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;z-index:10;transition:all var(--transition-fast);box-shadow:var(--shadow-md);justify-content:center;align-items:center;display:flex;position:absolute;top:24px;right:-14px}.sidebar-toggle:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border-subtle)}.sidebar-countdown{padding:var(--space-sm) var(--space-md);background:var(--accent-indigo-subtle);border-radius:var(--radius-md);text-align:center}.sidebar-countdown-days{font-size:var(--font-size-2xl);color:var(--accent-indigo-light);font-weight:800;line-height:1}.sidebar-countdown-label{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:2px}.mobile-menu-btn{top:var(--space-md);left:var(--space-md);z-index:calc(var(--z-sidebar) + 1);border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);width:40px;height:40px;color:var(--text-primary);box-shadow:var(--shadow-md);justify-content:center;align-items:center;display:none;position:fixed}.sidebar-overlay{display:none}.page-header{margin-bottom:var(--space-xl)}.page-header h2{font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.page-header p{color:var(--text-secondary);margin-top:var(--space-xxs);font-size:var(--font-size-base)}.page-header-row{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}.card:hover{border-color:var(--border-default)}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-base);color:var(--text-primary);align-items:center;gap:var(--space-xs);font-weight:600;display:flex}.card-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary)}.stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);gap:var(--space-xs);transition:all var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";opacity:0;height:2px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-card.accent-indigo:before{background:var(--gradient-primary)}.stat-card.accent-emerald:before{background:var(--accent-emerald)}.stat-card.accent-amber:before{background:var(--accent-amber)}.stat-card.accent-red:before{background:var(--accent-red)}.stat-card.accent-cyan:before{background:var(--accent-cyan)}.stat-card.accent-purple:before{background:var(--accent-purple)}.stat-card-icon{border-radius:var(--radius-md);width:40px;height:40px;margin-bottom:var(--space-xxs);justify-content:center;align-items:center;display:flex}.stat-card-icon.indigo{background:var(--accent-indigo-glow);color:var(--accent-indigo-light)}.stat-card-icon.emerald{background:var(--accent-emerald-glow);color:var(--accent-emerald)}.stat-card-icon.amber{background:var(--accent-amber-glow);color:var(--accent-amber)}.stat-card-icon.red{background:var(--accent-red-glow);color:var(--accent-red)}.stat-card-icon.cyan{background:var(--accent-cyan-glow);color:var(--accent-cyan)}.stat-card-icon.purple{background:var(--accent-purple-glow);color:var(--accent-purple)}.stat-card-value{font-size:var(--font-size-3xl);color:var(--text-primary);font-weight:800;line-height:var(--line-height-tight);letter-spacing:-.03em}.stat-card-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.stat-card-trend{font-size:var(--font-size-xs);border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.stat-card-trend.up{color:var(--accent-emerald);background:var(--accent-emerald-glow)}.stat-card-trend.down{color:var(--accent-red);background:var(--accent-red-glow)}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.grid-auto{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.progress-bar-container{width:100%}.progress-bar-header{margin-bottom:var(--space-xxs);justify-content:space-between;align-items:center;display:flex}.progress-bar-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.progress-bar-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.progress-bar-track{background:var(--bg-surface-hover);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar-track.thin{height:4px}.progress-bar-track.thick{height:12px}.progress-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .8s cubic-bezier(.34,1.56,.64,1);position:relative}.progress-bar-fill.indigo{background:var(--gradient-primary)}.progress-bar-fill.emerald{background:var(--accent-emerald)}.progress-bar-fill.amber{background:var(--accent-amber)}.progress-bar-fill.red{background:var(--accent-red)}.progress-bar-fill.cyan{background:var(--accent-cyan)}.progress-bar-fill.purple{background:var(--accent-purple)}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}.progress-ring-wrapper{align-items:center;gap:var(--space-xs);flex-direction:column;display:flex}.progress-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.progress-ring svg{transform:rotate(-90deg)}.progress-ring-track{stroke:var(--bg-surface-hover);fill:none}.progress-ring-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.34,1.56,.64,1)}.progress-ring-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute}.progress-ring-value{color:var(--text-primary);font-weight:800;line-height:1}.progress-ring-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.pill-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.pill-badge.not-started{background:var(--bg-surface-hover);color:var(--text-tertiary)}.pill-badge.in-progress{background:var(--accent-amber-glow);color:var(--accent-amber)}.pill-badge.completed{background:var(--accent-emerald-glow);color:var(--accent-emerald)}.pill-badge.mastered{background:var(--accent-indigo-glow);color:var(--accent-indigo-light)}.pill-badge.overdue,.pill-badge.high{background:var(--accent-red-glow);color:var(--accent-red)}.pill-badge.medium{background:var(--accent-amber-glow);color:var(--accent-amber)}.pill-badge.low,.pill-badge.easy{background:var(--accent-emerald-glow);color:var(--accent-emerald)}.pill-badge.hard{background:var(--accent-red-glow);color:var(--accent-red)}.pill-badge.correct{background:var(--accent-emerald-glow);color:var(--accent-emerald)}.pill-badge.wrong{background:var(--accent-red-glow);color:var(--accent-red)}.btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap;height:38px;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm), var(--shadow-glow-indigo)}.btn-primary:hover{box-shadow:var(--shadow-md), 0 0 30px #6366f140;transform:translateY(-1px)}.btn-secondary{background:var(--bg-surface-hover);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--bg-surface-active);border-color:var(--border-strong)}.btn-danger{background:var(--accent-red-glow);color:var(--accent-red);border:1px solid #ef444433}.btn-danger:hover{background:#ef444433}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.btn-sm{height:32px;padding:var(--space-xxs) var(--space-sm);font-size:var(--font-size-xs)}.btn-lg{height:44px;padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-base)}.btn-icon{border-radius:var(--radius-md);width:38px;height:38px;padding:0}.btn-icon.btn-sm{width:32px;height:32px}.form-group{gap:var(--space-xxs);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-xs) var(--space-sm);background:var(--bg-surface-hover);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast);height:38px}.form-textarea{resize:vertical;height:auto;min-height:80px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-indigo);box-shadow:0 0 0 3px var(--accent-indigo-glow);outline:none}.form-input::placeholder{color:var(--text-muted)}.form-row{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.form-row-3{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.form-checkbox{align-items:center;gap:var(--space-xs);cursor:pointer;display:flex}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-indigo);cursor:pointer}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);padding:var(--space-lg);background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-xl);z-index:var(--z-modal);animation:.3s slideUp;overflow-y:auto}.modal.modal-lg{max-width:720px}.modal-header{padding:var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-lg);color:var(--text-primary);font-weight:700}.modal-close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.modal-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);display:flex}.data-table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--bg-surface-hover);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border-subtle);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.data-table th:hover{color:var(--text-primary)}.data-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap}.data-table tr:hover td{background:var(--bg-surface-hover)}.data-table tr:last-child td{border-bottom:none}.tabs{background:var(--bg-surface-hover);border-radius:var(--radius-md);margin-bottom:var(--space-lg);gap:2px;padding:3px;display:flex;overflow-x:auto}.tab{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast);white-space:nowrap;font-weight:500}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.filter-bar{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.search-input-wrapper{flex:1;min-width:200px;max-width:320px;position:relative}.search-input-wrapper .search-icon{left:var(--space-sm);color:var(--text-muted);width:16px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.search-input{width:100%;padding:var(--space-xs) var(--space-sm) var(--space-xs) 36px;background:var(--bg-surface-hover);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);height:38px;transition:all var(--transition-fast)}.search-input:focus{border-color:var(--accent-indigo);box-shadow:0 0 0 3px var(--accent-indigo-glow);outline:none}.filter-select{padding:var(--space-xs) var(--space-sm);background:var(--bg-surface-hover);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);min-width:140px;height:38px}.heatmap-wrapper{padding:var(--space-sm) 0;overflow-x:auto}.heatmap-months{gap:2px;margin-bottom:4px;padding-left:28px;display:flex}.heatmap-month-label{color:var(--text-muted);min-width:40px;font-size:10px}.heatmap-grid{gap:3px;display:flex}.heatmap-day-labels{flex-direction:column;gap:3px;margin-right:4px;display:flex}.heatmap-day-label{color:var(--text-muted);height:13px;font-size:10px;line-height:13px}.heatmap-weeks{gap:3px;display:flex}.heatmap-week{flex-direction:column;gap:3px;display:flex}.heatmap-cell{background:var(--bg-surface-hover);width:13px;height:13px;transition:all var(--transition-fast);border-radius:2px}.heatmap-cell:hover{outline:1px solid var(--text-tertiary)}.heatmap-cell.level-1{background:#6366f133}.heatmap-cell.level-2{background:#6366f166}.heatmap-cell.level-3{background:#6366f199}.heatmap-cell.level-4{background:var(--accent-indigo)}.heatmap-legend{align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);justify-content:flex-end;display:flex}.heatmap-legend-label{color:var(--text-muted);font-size:10px}.empty-state{padding:var(--space-3xl) var(--space-lg);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{border-radius:var(--radius-xl);background:var(--bg-surface-hover);width:64px;height:64px;color:var(--text-muted);margin-bottom:var(--space-md);justify-content:center;align-items:center;display:flex}.empty-state-title{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-xs);font-weight:600}.empty-state-desc{font-size:var(--font-size-sm);color:var(--text-secondary);max-width:400px;margin-bottom:var(--space-lg)}.confirm-dialog-body{text-align:center;padding:var(--space-lg)}.confirm-dialog-icon{border-radius:var(--radius-full);background:var(--accent-red-glow);width:56px;height:56px;color:var(--accent-red);margin:0 auto var(--space-md);justify-content:center;align-items:center;display:flex}.confirm-dialog-text{color:var(--text-secondary);font-size:var(--font-size-base)}.subject-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base);cursor:pointer}.subject-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.subject-card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.subject-card-name{font-size:var(--font-size-md);color:var(--text-primary);font-weight:600}.subject-card-stats{gap:var(--space-xs);margin-top:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.subject-card-stat{flex-direction:column;display:flex}.subject-card-stat-value{font-size:var(--font-size-md);color:var(--text-primary);font-weight:700}.subject-card-stat-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.accordion-item{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);transition:all var(--transition-base);overflow:hidden}.accordion-item:hover{border-color:var(--border-default)}.accordion-header{padding:var(--space-md) var(--space-lg);background:var(--bg-surface);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.accordion-header:hover{background:var(--bg-surface-hover)}.accordion-header-left{align-items:center;gap:var(--space-sm);flex:1;min-width:0;display:flex}.accordion-chevron{transition:transform var(--transition-base);color:var(--text-tertiary);flex-shrink:0}.accordion-chevron.open{transform:rotate(180deg)}.accordion-title{color:var(--text-primary);font-weight:600;font-size:var(--font-size-base)}.accordion-meta{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.accordion-body{padding:0 var(--space-lg) var(--space-lg);background:var(--bg-surface)}.topic-row{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:background var(--transition-fast);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.topic-row:hover{background:var(--bg-surface-hover)}.topic-name{font-size:var(--font-size-sm);color:var(--text-primary);flex:1;min-width:0;font-weight:500}.topic-checks{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.topic-check{border-radius:var(--radius-sm);border:1px solid var(--border-default);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);color:var(--text-muted);background:0 0;justify-content:center;align-items:center;font-size:12px;display:flex}.topic-check:hover{border-color:var(--accent-indigo);color:var(--accent-indigo)}.topic-check.checked{background:var(--accent-indigo-glow);border-color:var(--accent-indigo);color:var(--accent-indigo-light)}.topic-check-label{text-transform:uppercase;letter-spacing:.05em;font-size:8px;font-weight:700}.revision-pipeline,.revision-step{align-items:center;gap:4px;display:flex}.revision-dot{border-radius:var(--radius-full);border:2px solid var(--border-default);width:24px;height:24px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.revision-dot.active{border-color:var(--accent-amber);color:var(--accent-amber);background:var(--accent-amber-glow)}.revision-dot.completed{border-color:var(--accent-emerald);color:var(--accent-emerald);background:var(--accent-emerald-glow)}.revision-dot.mastered{border-color:var(--accent-indigo);color:var(--accent-indigo-light);background:var(--accent-indigo-glow)}.revision-connector{background:var(--border-default);width:16px;height:2px}.revision-connector.completed{background:var(--accent-emerald)}.quick-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.section-gap{margin-top:var(--space-xl)}.section-title{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-md);align-items:center;gap:var(--space-xs);font-weight:700;display:flex}.chart-container{width:100%;padding:var(--space-sm);position:relative}.chart-container canvas{max-height:300px}.kanban-board{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.kanban-column{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-md);min-height:400px}.kanban-column-header{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.kanban-column-title{font-size:var(--font-size-sm);color:var(--text-secondary);align-items:center;gap:var(--space-xs);font-weight:600;display:flex}.kanban-count{background:var(--bg-surface-hover);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--text-tertiary);padding:2px 8px}.kanban-card{background:var(--bg-surface-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-sm);margin-bottom:var(--space-xs);cursor:pointer;transition:all var(--transition-fast)}.kanban-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kanban-card-title{font-size:var(--font-size-sm);color:var(--text-primary);margin-bottom:var(--space-xxs);font-weight:500}.kanban-card-meta{align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex}.tooltip{position:relative}.tooltip-content{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-xxs) var(--space-xs);font-size:var(--font-size-xs);color:var(--text-primary);white-space:nowrap;z-index:50;box-shadow:var(--shadow-md);pointer-events:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.dashboard-hero-stats{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(4,1fr);display:grid}.dashboard-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:1fr 1fr;display:grid}.dashboard-grid-full{grid-column:1/-1}.settings-section{margin-bottom:var(--space-xl)}.settings-section-title{font-size:var(--font-size-md);color:var(--text-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle);font-weight:600}.settings-row{padding:var(--space-sm) 0;justify-content:space-between;align-items:center;display:flex}.settings-row-info{flex-direction:column;gap:2px;display:flex}.settings-row-label{font-size:var(--font-size-base);color:var(--text-primary);font-weight:500}.settings-row-desc{font-size:var(--font-size-sm);color:var(--text-tertiary)}.toggle-switch{background:var(--bg-surface-hover);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:background var(--transition-fast);border:1px solid var(--border-default);position:relative}.toggle-switch.active{background:var(--accent-indigo);border-color:var(--accent-indigo)}.toggle-switch:after{content:"";border-radius:var(--radius-full);width:18px;height:18px;transition:transform var(--transition-fast);background:#fff;position:absolute;top:2px;left:2px}.toggle-switch.active:after{transform:translate(20px)}.note-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base);cursor:pointer}.note-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.note-card-title{font-size:var(--font-size-md);color:var(--text-primary);margin-bottom:var(--space-xs);font-weight:600}.note-card-preview{font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-line-clamp:3;margin-bottom:var(--space-sm);line-height:var(--line-height-relaxed);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.note-card-meta{align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:.3s fadeIn}.animate-slide-up{animation:.4s slideUp}.animate-scale-in{animation:.3s scaleIn}.stagger-children>*{animation:.4s both slideUp}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:50ms}.stagger-children>:nth-child(3){animation-delay:.1s}.stagger-children>:nth-child(4){animation-delay:.15s}.stagger-children>:nth-child(5){animation-delay:.2s}.stagger-children>:nth-child(6){animation-delay:.25s}.stagger-children>:nth-child(7){animation-delay:.3s}.stagger-children>:nth-child(8){animation-delay:.35s}@media (width<=1200px){.grid-4,.dashboard-hero-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.kanban-board{grid-template-columns:1fr}}@media (width<=900px){.sidebar{transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar-overlay{z-index:calc(var(--z-sidebar) - 1);background:#00000080;display:block;position:fixed;inset:0}.mobile-menu-btn{display:flex}.main-content{max-width:100vw;padding:var(--space-md);padding-top:calc(var(--space-md) + 56px);margin-left:0}.main-content.sidebar-collapsed{max-width:100vw;margin-left:0}.grid-3{grid-template-columns:repeat(2,1fr)}.form-row,.form-row-3{grid-template-columns:1fr}}@media (width<=640px){.grid-2,.grid-3,.grid-4,.dashboard-hero-stats{grid-template-columns:1fr}.tabs{flex-wrap:nowrap;overflow-x:auto}.filter-bar{flex-direction:column;align-items:stretch}.search-input-wrapper{max-width:100%}.page-header-row{flex-direction:column;align-items:flex-start}.modal{margin:var(--space-sm);max-height:95vh}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-full{width:100%}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.g4-top-header{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);height:60px;padding:0 var(--space-lg);z-index:100;background:#0f172af0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #00000040}.header-left{align-items:center;gap:var(--space-md);display:flex}.mobile-header-menu-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;padding:4px;display:none}.hamburger-line{background:var(--text-primary);border-radius:2px;width:20px;height:2px;transition:all .2s;display:block}.header-brand-wrap{align-items:center;gap:var(--space-sm);text-decoration:none;display:flex}.header-brand-avatar{border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;width:34px;height:34px;font-weight:800;font-size:var(--font-size-base);justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #6366f166}.header-brand-info{flex-direction:column;display:flex}.header-brand-title{font-size:var(--font-size-sm);letter-spacing:-.02em;color:var(--text-primary);font-weight:800;line-height:1.2}.header-brand-subtitle{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.status-dot-active{background:#10b981;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #10b981}.badge-pro-crown{border-radius:var(--radius-full);letter-spacing:.05em;color:#fbbf24;background:linear-gradient(135deg,#f59e0b33,#d9770626);border:1px solid #f59e0b59;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex;box-shadow:0 0 10px #f59e0b33}.header-right{align-items:center;gap:var(--space-sm);display:flex}.header-pill-nav{align-items:center;gap:6px;display:flex}.header-pill-btn{border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#1e293bb3;border:1px solid #ffffff14;align-items:center;gap:6px;padding:6px 12px;font-weight:600;text-decoration:none;display:flex}.header-pill-btn:hover{color:var(--text-primary);background:#334155cc;border-color:#ffffff2e;transform:translateY(-1px)}.header-pill-btn.active{color:var(--primary-400);background:#6366f133;border-color:#6366f166}.calendar-pill-icon-wrap{align-items:center;gap:4px;display:flex}.calendar-pill-day-num{color:var(--primary-400);font-weight:700}.header-pro-dropdown-wrap{position:relative}.pro-dropdown-trigger{color:#fbbf24;background:#f59e0b14;border-color:#f59e0b4d}.pro-dropdown-trigger:hover{color:#fde68a;background:#f59e0b29;border-color:#f59e0b80}.chevron-transition{transition:transform var(--transition-fast)}.rotate-180{transform:rotate(180deg)}.pro-dropdown-menu{border-radius:var(--radius-lg);width:280px;padding:var(--space-xs);z-index:200;background:#0f172a;border:1px solid #ffffff1f;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #0009}.dropdown-section-title{letter-spacing:.08em;color:var(--text-tertiary);padding:6px 12px 2px;font-size:10px;font-weight:700}.dropdown-item{align-items:flex-start;gap:var(--space-sm);border-radius:var(--radius-md);color:var(--text-primary);transition:background var(--transition-fast);padding:8px 12px;text-decoration:none;display:flex}.dropdown-item:hover{background:#ffffff0f}.dropdown-item-title{font-size:var(--font-size-xs);color:var(--text-primary);font-weight:600}.dropdown-item-desc{color:var(--text-secondary);font-size:11px}.dropdown-divider{background:var(--border-subtle);height:1px;margin:4px 0}.header-countdown-capsule{border-radius:var(--radius-full);color:#34d399;font-size:var(--font-size-xs);transition:all var(--transition-fast);background:#10b9811f;border:1px solid #10b9814d;align-items:center;gap:7px;padding:5px 12px;font-weight:600;text-decoration:none;display:flex}.header-countdown-capsule:hover{background:#10b98133;border-color:#10b98180;transform:translateY(-1px)}.capsule-pulse-dot{background:#10b981;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse-ring;box-shadow:0 0 10px #10b981}@keyframes pulse-ring{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.25)}to{opacity:.8;transform:scale(.95)}}.header-icon-btn{border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;text-decoration:none;display:flex}.header-icon-btn:hover{color:var(--text-primary);background:var(--bg-surface-hover);border-color:var(--border-subtle)}.sidebar-pro-pill{letter-spacing:.05em;color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b4d;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:800}.calc-page-wrapper{max-width:1200px;margin:0 auto}.calc-page-layout{gap:var(--space-xl);grid-template-columns:auto 340px;align-items:start;display:grid}.calc-page-badge{border-radius:var(--radius-full);color:#34d399;font-size:var(--font-size-xs);background:#10b9811f;border:1px solid #10b9814d;align-items:center;gap:6px;padding:6px 14px;font-weight:600;display:flex}.gate-calculator-container{color:#000;-webkit-user-select:none;user-select:none;background:#d4d0c8;border:2px solid gray;border-radius:4px;width:480px;max-width:100%;font-family:Arial,Helvetica,sans-serif;overflow:hidden;box-shadow:0 10px 30px #00000080}.calc-header-bar{color:#fff;background:#337ab7;border-bottom:1px solid #286090;justify-content:space-between;align-items:center;height:32px;padding:0 8px;display:flex}.calc-header-title{font-size:13px;font-weight:700}.calc-header-actions{align-items:center;gap:6px;display:flex}.calc-header-btn{color:#333;cursor:pointer;background:#e7e7e7;border:1px solid #adadad;border-radius:2px;justify-content:center;align-items:center;padding:2px 8px;font-size:11px;display:inline-flex}.calc-header-btn:hover{background:#d4d4d4}.calc-header-btn.icon-only{padding:2px 4px}.calc-header-btn.close-btn:hover{color:#fff;background:#d9534f;border-color:#d43f3a}.calc-body{background:#f5f5f5;padding:8px}.calc-screen-area{text-align:right;background:#fff;border:2px inset #999;border-radius:3px;margin-bottom:6px;padding:4px 8px}.calc-expression-screen{color:#666;text-overflow:ellipsis;white-space:nowrap;min-height:16px;font-size:11px;overflow:hidden}.calc-main-screen{color:#000;text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;overflow:hidden}.calc-mode-bar{background:#e6e6e6;border:1px solid #ccc;border-radius:3px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:2px 4px;display:flex}.calc-radio-group{gap:12px;font-size:12px;font-weight:600;display:flex}.calc-radio-label{cursor:pointer;align-items:center;gap:4px;display:flex}.calc-mem-indicator{color:#337ab7;font-size:11px;font-weight:700}.calc-mem-badge{background:#d9edf7;border:1px solid #bce8f1;border-radius:2px;padding:2px 6px}.calc-mem-buttons{gap:3px;display:flex}.calc-grid{grid-template-columns:repeat(11,1fr);gap:3px;display:grid}.calc-btn{color:#000;cursor:pointer;background:#fff;border:1px solid #b3b3b3;border-radius:2px;justify-content:center;align-items:center;height:28px;padding:0;font-size:11px;font-weight:500;display:flex}.calc-btn:hover{background:#e6e6e6;border-color:#999}.calc-btn:active{background:#ccc}.calc-btn.num{background:#fff;font-weight:700}.calc-btn.func{background:#f9f9f9;font-size:10px}.calc-btn.mem{background:#f0f0f0;padding:2px 6px;font-size:11px}.calc-btn.action.red-btn{color:#fff;background:#d9534f;border-color:#d43f3a;font-weight:700}.calc-btn.action.red-btn:hover{background:#c9302c}.calc-btn.op{background:#f0f0f0;font-weight:700}.calc-btn.equal-btn{color:#fff;background:#28a745;border-color:#218838;font-size:14px;font-weight:700}.calc-btn.equal-btn:hover{background:#218838}.calc-global-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.calc-modal-window{animation:.2s cubic-bezier(.16,1,.3,1) modal-pop}@keyframes modal-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.calc-modal-control-bar{background:#1e293b;border:1px solid #ffffff1a;border-bottom:none;border-radius:6px 6px 0 0;justify-content:space-between;align-items:center;padding:4px 10px;display:flex}.calc-modal-tip{color:var(--text-secondary);font-size:11px}.calc-modal-tip code{color:#38bdf8;background:#ffffff1a;border-radius:3px;padding:1px 4px}.calc-modal-actions{align-items:center;gap:4px;display:flex}.calc-control-icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px}.calc-control-icon-btn:hover{color:#fff;background:#ffffff1a}.calc-docked-pill{color:#fff;border-radius:var(--radius-full);cursor:pointer;z-index:1000;background:#337ab7;align-items:center;gap:10px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #0006}.calc-docked-pill:hover{transform:translateY(-2px);box-shadow:0 12px 30px #337ab780}.calc-pill-close{color:#fff;cursor:pointer;background:#0003;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.calc-help-panel{color:#333;background:#fff;padding:12px;font-size:12px;line-height:1.5}.calc-help-header{border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;display:flex}.calc-btn-close-help{color:#fff;cursor:pointer;background:#337ab7;border:none;border-radius:2px;padding:4px 8px;font-size:11px}.calc-tips-list{gap:var(--space-md);margin-top:var(--space-md);flex-direction:column;display:flex}.calc-tip-item{align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-xs);display:flex}.tip-badge{width:22px;height:22px;color:var(--primary-400);background:#6366f126;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.focus-timer-page{max-width:1100px;margin:0 auto}.timer-top-bar{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.timer-top-actions{align-items:center;gap:var(--space-xs);display:flex}.timer-daily-focus-container{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl)}.timer-daily-focus-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.timer-daily-focus-label{letter-spacing:.08em;color:var(--text-tertiary);font-size:11px;font-weight:700}.timer-daily-focus-metric{font-size:var(--font-size-sm);color:var(--primary-400);font-weight:700;font-family:var(--font-mono)}.timer-daily-focus-bar-bg{background:var(--bg-surface-hover);border-radius:4px;height:8px;overflow:hidden}.timer-daily-focus-bar-fill{background:linear-gradient(90deg,#6366f1,#06b6d4,#10b981);border-radius:4px;height:100%;transition:width .4s}.timer-arena-grid{gap:var(--space-xl);margin-bottom:var(--space-xl);grid-template-columns:1fr 380px;display:grid}.timer-main-card{padding:var(--space-2xl) var(--space-xl);text-align:center;background:linear-gradient(#1e293b80 0%,#0f172acc 100%);border:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.timer-mode-pills{border-radius:var(--radius-full);margin-bottom:var(--space-lg);background:#0000004d;border:1px solid #ffffff0f;padding:4px;display:inline-flex}.timer-mode-btn{border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xs);letter-spacing:.05em;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:6px 18px;font-weight:700}.timer-mode-btn.active{background:var(--primary-600);color:#fff;box-shadow:0 2px 10px #6366f166}.pomodoro-intervals-nav{margin-bottom:var(--space-md);gap:8px;display:flex}.interval-chip{border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff14;padding:4px 12px;font-size:11px}.interval-chip.active{color:var(--primary-300);background:#6366f140;border-color:#6366f180}.timer-clock-status{margin-bottom:var(--space-md);align-items:center;gap:8px;display:flex}.status-dot{background:var(--text-tertiary);border-radius:50%;width:8px;height:8px}.status-dot.pulse{background:#10b981;animation:1.5s infinite pulse-ring;box-shadow:0 0 10px #10b981}.status-text{letter-spacing:.08em;color:var(--text-secondary);font-size:11px;font-weight:700}.timer-digital-display{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-primary);margin-bottom:var(--space-sm);text-shadow:0 0 40px #6366f140;-webkit-user-select:none;user-select:none;font-size:5rem;font-weight:800}.timer-local-clock{font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:var(--font-mono);margin-bottom:var(--space-xl)}.timer-controls-row{justify-content:center;display:flex}.timer-btn-primary{border-radius:var(--radius-full);min-width:160px;height:52px;font-size:var(--font-size-base);letter-spacing:.05em;cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:10px;font-weight:700;display:inline-flex}.timer-btn-primary.start{color:#fff;background:#10b981;box-shadow:0 4px 20px #10b98166}.timer-btn-primary.start:hover{background:#059669;transform:translateY(-2px);box-shadow:0 6px 25px #10b98180}.timer-btn-primary.pause{color:#fff;background:#f59e0b;box-shadow:0 4px 20px #f59e0b66}.timer-btn-primary.pause:hover{background:#d97706}.timer-side-controls{gap:var(--space-lg);flex-direction:column;display:flex}.timer-action-buttons{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.timer-summary-card .card-header{margin-bottom:var(--space-md)}.topic-bar-row{margin-bottom:var(--space-sm)}.topic-progress-bg{background:var(--bg-surface-hover);border-radius:3px;height:6px;overflow:hidden}.topic-progress-fill{border-radius:3px;height:100%;transition:width .3s}.zen-mode-active{z-index:9999;padding:var(--space-2xl);background:#030712;position:fixed;inset:0;overflow-y:auto}.zen-mode-active .timer-arena-grid{max-width:800px;margin:0 auto var(--space-xl);grid-template-columns:1fr}.zen-mode-active .timer-side-controls,.zen-mode-active .timer-log-card{display:none}.goal-calendar-page{max-width:1200px;margin:0 auto}.calendar-top-bar{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.calendar-heading{font-size:var(--font-size-xl);font-weight:700}.calendar-view-pills{background:var(--bg-surface);border-radius:var(--radius-full);border:1px solid var(--border-subtle);padding:4px;display:inline-flex}.view-pill{border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:6px 16px;font-weight:600}.view-pill.active{background:var(--primary-600);color:#fff}.calendar-nav-bar{padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.calendar-month-selector{align-items:center;gap:var(--space-md);display:flex}.calendar-nav-actions{align-items:center;gap:var(--space-sm);display:flex}.calendar-layout-grid{gap:var(--space-lg);grid-template-columns:1fr 340px;align-items:start;display:grid}.calendar-grid-card{padding:var(--space-md)}.calendar-weekdays-header{text-align:center;border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);grid-template-columns:repeat(7,1fr);padding:8px 0;font-weight:700;display:grid}.calendar-cells-matrix{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px;display:grid}.calendar-cell{border-radius:var(--radius-md);cursor:pointer;min-height:90px;transition:all var(--transition-fast);background:#1e293b59;border:1px solid #ffffff0d;flex-direction:column;padding:6px;display:flex}.calendar-cell:hover{background:#33415580;border-color:#ffffff26}.calendar-cell.empty{cursor:default;background:0 0;border-color:#0000}.calendar-cell.today{border-color:var(--primary-500);background:#6366f114}.calendar-cell.selected{outline:2px solid var(--primary-400);background:#6366f126}.calendar-cell.past-hidden{opacity:.25;cursor:default}.calendar-cell-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.calendar-day-num{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:600}.today-pill{background:var(--primary-600);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-weight:700;display:inline-flex}.calendar-goal-count{color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono)}.calendar-cell-goals{flex-direction:column;flex:1;gap:3px;display:flex}.calendar-goal-chip{text-overflow:ellipsis;white-space:nowrap;background:#ffffff12;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;display:flex;overflow:hidden}.calendar-goal-chip.completed{opacity:.5;text-decoration:line-through}.chip-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-details-sidebar{position:sticky;top:80px}.calendar-goals-list{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.calendar-goal-card{padding:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-surface-hover);border:1px solid var(--border-subtle);transition:all var(--transition-fast)}.calendar-goal-card.done{opacity:.65}.check-btn{cursor:pointer;background:0 0;border:none;margin-top:2px;padding:0}.concepts-page{max-width:1200px;margin:0 auto}.concepts-kpi-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);display:flex}.kpi-icon-wrap{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kpi-value{font-size:var(--font-size-xl);font-weight:800;line-height:1.1;font-family:var(--font-mono)}.kpi-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.concepts-filter-card{padding:var(--space-md);margin-bottom:var(--space-lg)}.concepts-search-row{gap:var(--space-sm);align-items:center;display:flex}.concepts-list-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));display:grid}.concept-item-card{gap:var(--space-sm);padding:var(--space-lg);border-left:4px solid var(--border-subtle);transition:all var(--transition-fast);flex-direction:column;display:flex}.concept-item-card:hover{border-color:#ffffff26;transform:translateY(-2px)}.concept-item-card.status-unresolved{border-left-color:#ef4444}.concept-item-card.status-in_progress{border-left-color:#f59e0b}.concept-item-card.status-mastered{border-left-color:#10b981}.concept-card-top{justify-content:space-between;align-items:center;display:flex}.concept-item-title{font-size:var(--font-size-md);color:var(--text-primary);font-weight:700;line-height:1.3}.concept-doubt-box{border-radius:var(--radius-md);background:#ef444414;border:1px solid #ef444433;padding:8px 12px}.concept-resolution-box{border-radius:var(--radius-md);background:#10b98114;border:1px solid #10b98133;padding:8px 12px}.box-label{margin-bottom:4px;font-size:11px;font-weight:700}.box-content{font-size:var(--font-size-xs);color:var(--text-primary);white-space:pre-line;line-height:1.5}.concept-card-bottom{padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.status-cycle-btn{border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-cycle-btn.status-mastered{color:#34d399;background:#10b98126;border-color:#10b9814d}.status-cycle-btn.status-in_progress{color:#fbbf24;background:#f59e0b26;border-color:#f59e0b4d}.status-cycle-btn.status-unresolved{color:#f87171;background:#ef444426;border-color:#ef44444d}.countdown-page{max-width:900px;margin:0 auto}.countdown-card-wrapper{margin-top:var(--space-md)}.countdown-main-card{padding:var(--space-2xl);text-align:center;background:linear-gradient(#1e293b99 0%,#0f172af2 100%)}.countdown-card-title{font-size:var(--font-size-xl);color:var(--text-primary);margin-bottom:var(--space-lg);font-weight:800}.countdown-inputs-row{justify-content:center;gap:var(--space-md);margin-bottom:var(--space-2xl);display:flex}.countdown-label-input{text-align:center;max-width:200px;font-weight:600}.countdown-date-input{max-width:180px}.countdown-hero-number-wrap{margin-bottom:var(--space-2xl)}.countdown-hero-number{font-family:var(--font-mono);letter-spacing:-.03em;background:linear-gradient(135deg,#38bdf8,#818cf8);-webkit-text-fill-color:transparent;margin-bottom:var(--space-xs);-webkit-background-clip:text;font-size:6.5rem;font-weight:900;line-height:1}.countdown-hero-label{font-size:var(--font-size-sm);letter-spacing:.15em;color:var(--text-tertiary);font-weight:800}.countdown-boxes-row{justify-content:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.countdown-unit-box{border-radius:var(--radius-lg);width:90px;height:90px;transition:all var(--transition-fast);background:#1e293b99;border:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:center;display:flex}.countdown-unit-box.seconds-active{border-color:#6366f166;box-shadow:0 0 20px #6366f133}.unit-number{font-family:var(--font-mono);font-size:var(--font-size-2xl);color:var(--text-primary);font-weight:800;line-height:1.1}.unit-label{letter-spacing:.08em;color:var(--text-tertiary);margin-top:4px;font-size:10px;font-weight:700}.countdown-target-caption{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-xl)}.countdown-divider{background:var(--border-subtle);height:1px;margin:var(--space-xl) 0;border:none}.countdown-controls-section{text-align:left}.countdown-controls-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.countdown-control-toggle-row{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-sm);border:1px solid var(--border-subtle);background:#ffffff08;justify-content:space-between;align-items:center;display:flex}.switch-toggle-btn{cursor:pointer;width:44px;height:24px;transition:background var(--transition-fast);background:#334155;border:none;border-radius:12px;position:relative}.switch-toggle-btn.active{background:var(--primary-600)}.switch-toggle-handle{width:18px;height:18px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;display:block;position:absolute;top:3px;left:3px}.switch-toggle-btn.active .switch-toggle-handle{transform:translate(20px)}.dashboard-top-countdown-banner{border-radius:var(--radius-lg);margin-bottom:var(--space-lg);background:linear-gradient(90deg,#6366f12e,#06b6d426);border:1px solid #6366f159;justify-content:space-between;align-items:center;padding:12px 20px;display:flex;box-shadow:0 4px 15px #6366f126}.banner-pulse-icon{font-size:20px}.banner-days-highlight{color:#38bdf8;font-weight:800;font-size:var(--font-size-md)}.motivational-quote-bar{padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);background:linear-gradient(90deg,#1e293b99 0%,#0f172acc 100%);border-left:3px solid #fbbf24;justify-content:space-between;align-items:center;display:flex}.quote-content-wrap{align-items:center;gap:var(--space-md);display:flex}.quote-sparkle-icon{color:#fbbf24;flex-shrink:0}.quote-text-container{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.quote-body{font-size:var(--font-size-sm);color:var(--text-primary);font-style:italic;font-weight:600}.quote-author{font-size:var(--font-size-xs);color:var(--text-tertiary)}.dashboard-pro-widgets-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:1fr 1fr;display:grid}.dashboard-timer-card{padding:var(--space-lg)}.timer-card-body{gap:var(--space-md);flex-direction:column;display:flex}.timer-progress-track{background:var(--bg-surface-hover);border-radius:4px;height:8px;overflow:hidden}.timer-progress-bar{background:linear-gradient(90deg,#6366f1,#10b981);border-radius:4px;height:100%;transition:width .3s}.dashboard-reflection-card{padding:var(--space-lg)}.reflection-card-body{gap:var(--space-sm);flex-direction:column;display:flex}.reflection-input{resize:vertical;background:#0003}.reflection-actions-row{justify-content:space-between;align-items:center;display:flex}@media (width<=900px){.header-pill-nav{display:none}.mobile-header-menu-btn{display:flex}.sidebar{height:calc(100vh - 60px);top:60px}.timer-arena-grid,.calendar-layout-grid,.calc-page-layout,.dashboard-pro-widgets-grid{grid-template-columns:1fr}.concepts-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.timer-digital-display{font-size:3.2rem}.countdown-hero-number{font-size:4rem}.countdown-unit-box{width:65px;height:65px}.unit-number{font-size:var(--font-size-lg)}.concepts-kpi-grid{grid-template-columns:1fr}.gate-calculator-container{width:100%}.header-countdown-capsule{display:none}}.offline-sync-banner{z-index:90;width:100%;padding:10px var(--space-lg);border-bottom:1px solid #0000;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:sticky;top:60px;box-shadow:0 4px 16px #0000004d}.offline-sync-banner .banner-inner{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;width:100%;max-width:1200px;display:flex}.offline-sync-banner .banner-lead{align-items:center;gap:var(--space-sm);flex:1;min-width:280px;display:flex}.offline-sync-banner .banner-message{font-size:var(--font-size-xs);color:var(--text-primary);line-height:1.4}.offline-sync-banner .banner-message strong{letter-spacing:.02em;font-weight:700}.offline-sync-banner .banner-metrics,.offline-sync-banner .banner-actions{align-items:center;gap:var(--space-sm);display:flex}.offline-sync-banner .banner-badge{border-radius:var(--radius-full);white-space:nowrap;background:#00000040;border:1px solid #ffffff1a;padding:3px 10px;font-size:11px;font-weight:600}.offline-sync-banner.offline-state{color:#fef3c7;background:linear-gradient(90deg,#78350f,#92400e);border-bottom-color:#f59e0b66}.offline-sync-banner.offline-state .banner-message{color:#fffbeb}.offline-sync-banner.offline-state .banner-badge.offline-time{color:#fbbf24;border-color:#f59e0b66}.offline-sync-banner.offline-state .banner-badge.offline-queued{color:#fef08a;border-color:#fef08a4d}.offline-sync-banner.syncing-state{color:#e0f2fe;background:linear-gradient(90deg,#0c4a6e,#0369a1);border-bottom-color:#38bdf866}.offline-sync-banner.syncing-state .banner-message{color:#f0f9ff}.offline-sync-banner.success-state{color:#d1fae5;background:linear-gradient(90deg,#064e3b,#047857);border-bottom-color:#10b98166}.offline-sync-banner.success-state .banner-message{color:#ecfdf5}.banner-close-btn{color:#d1fae5;cursor:pointer;width:24px;height:24px;transition:all var(--transition-fast);background:#0003;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex}.banner-close-btn:hover{color:#fff;background:#0006;transform:scale(1.05)}.pulse-slow{animation:2s ease-in-out infinite pulse-slow-anim}@keyframes pulse-slow-anim{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.15)}to{opacity:.8;transform:scale(.95)}}.spin{animation:1s linear infinite spin-anim}@keyframes spin-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
