:root{--bg-primary: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #eaeef2;--bg-header: #ffffff;--bg-inset: #f6f8fa;--text-primary: #1f2328;--text-secondary: #656d76;--text-tertiary: #818b98;--text-on-dark: #ffffff;--text-link: #0969da;--border-color: #d0d7de;--border-muted: #d0d7deb3;--border-emphasis: #818b98;--accent-primary: #0969da;--accent-hover: #0550ae;--accent-emphasis: #0550ae;--accent-muted: #ddf4ff;--accent-subtle: #54aeff66;--success-fg: #1a7f37;--success-emphasis: #2da44e;--success-muted: #dafbe1;--danger-fg: #d1242f;--danger-emphasis: #cf222e;--danger-muted: #ffebe9;--attention-fg: #9a6700;--attention-emphasis: #bf8700;--attention-muted: #fff8c5;--button-primary-bg: #1f883d;--button-primary-hover-bg: #1a7f37;--button-primary-active-bg: #18762f;--button-primary-text: #ffffff;--shadow-sm: 0 1px 0 rgba(31, 35, 40, .04);--shadow-md: 0 3px 6px rgba(140, 149, 159, .15);--shadow-lg: 0 8px 24px rgba(140, 149, 159, .2);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--color-bg: var(--bg-secondary);--color-surface: var(--bg-primary);--color-text: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-border: var(--border-color);--color-primary: var(--accent-primary);--color-primary-bg: var(--accent-muted);--color-level-0: #ebedf0;--color-level-1: #9be9a8;--color-level-2: #40c463;--color-level-3: #30a14e;--color-level-4: #216e39}[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-header: #010409;--bg-inset: #010409;--text-primary: #e6edf3;--text-secondary: #7d8590;--text-tertiary: #656c76;--text-on-dark: #ffffff;--text-link: #4493f8;--border-color: #30363d;--border-muted: #30363db3;--border-emphasis: #6e7681;--accent-primary: #4493f8;--accent-hover: #539bf5;--accent-emphasis: #0969da;--accent-muted: #1f6feb4d;--accent-subtle: #1f6feb26;--success-fg: #3fb950;--success-emphasis: #2ea043;--success-muted: #2ea04326;--danger-fg: #f85149;--danger-emphasis: #da3633;--danger-muted: #da363326;--attention-fg: #d29922;--attention-emphasis: #bf8700;--attention-muted: #bf870026;--button-primary-bg: #238636;--button-primary-hover-bg: #2ea043;--button-primary-active-bg: #26a641;--button-primary-text: #ffffff;--shadow-sm: 0 0 transparent;--shadow-md: 0 3px 6px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--color-bg: var(--bg-secondary);--color-surface: var(--bg-primary);--color-text: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-border: var(--border-color);--color-primary: var(--accent-primary);--color-primary-bg: var(--accent-muted);--color-level-0: #161b22;--color-level-1: #0e4429;--color-level-2: #006d32;--color-level-3: #26a641;--color-level-4: #39d353}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5;color:var(--text-primary);font-weight:400;background-color:var(--bg-secondary);transition:background-color .2s ease,color .2s ease}#root{min-height:100vh}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:600px;width:90%}.toast{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px 16px 16px;border-radius:6px;box-shadow:0 8px 24px #959da533;pointer-events:auto;animation:toast-slide-in .3s ease-out;font-size:14px;line-height:1.5;min-width:300px}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.toast-error{background-color:#fff;border:1px solid #d1242f;color:#1f2328}.toast-success{background-color:#fff;border:1px solid #1a7f37;color:#1f2328}.toast-warning{background-color:#fff;border:1px solid #bf8700;color:#1f2328}:root.dark .toast-error{background-color:#161b22;border-color:#da3633;color:#e6edf3}:root.dark .toast-success{background-color:#161b22;border-color:#2ea043;color:#e6edf3}:root.dark .toast-warning{background-color:#161b22;border-color:#d29922;color:#e6edf3}.toast-content{display:flex;align-items:center;gap:8px;flex:1}.toast-icon{flex-shrink:0}.toast-error .toast-icon{fill:#d1242f}.toast-success .toast-icon{fill:#1a7f37}.toast-warning .toast-icon{fill:#bf8700}:root.dark .toast-error .toast-icon{fill:#f85149}:root.dark .toast-success .toast-icon{fill:#3fb950}:root.dark .toast-warning .toast-icon{fill:#d29922}.toast-message{flex:1}.toast-close{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;color:inherit;opacity:.6;transition:opacity .2s,background-color .2s;flex-shrink:0}.toast-close:hover{opacity:1;background-color:#0000000d}:root.dark .toast-close:hover{background-color:#ffffff1a}.toast-close svg{fill:currentColor}.toast-progress-container{position:absolute;bottom:0;left:0;right:0;height:3px;background-color:#0000001a;overflow:hidden;border-radius:0 0 6px 6px}:root.dark .toast-progress-container{background-color:#ffffff1a}.toast-progress-bar{height:100%;width:100%;transform-origin:left;animation:progress-countdown linear forwards}.toast-error .toast-progress-bar{background-color:#d1242f}.toast-success .toast-progress-bar{background-color:#1a7f37}.toast-warning .toast-progress-bar{background-color:#bf8700}:root.dark .toast-error .toast-progress-bar{background-color:#f85149}:root.dark .toast-success .toast-progress-bar{background-color:#3fb950}:root.dark .toast-warning .toast-progress-bar{background-color:#d29922}@keyframes progress-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.settings-layout{min-height:100vh;background:var(--bg-primary)}.settings-container{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:296px 1fr;gap:24px;padding:24px;min-height:100vh}.settings-sidebar{height:fit-content;position:sticky;top:24px}.settings-sidebar-header{margin-bottom:16px}.settings-sidebar-header .back-link{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;margin-bottom:16px;padding:6px 8px;border-radius:6px;transition:background-color .2s}.settings-sidebar-header .back-link:hover{background:var(--bg-secondary);color:var(--accent-primary)}.settings-sidebar-header .back-link svg{flex-shrink:0}.settings-sidebar-header h2{margin:0;color:var(--text-primary);font-size:20px;font-weight:600;padding:0 8px}.settings-nav{display:flex;flex-direction:column;gap:2px}.settings-nav-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;color:var(--text-primary);text-decoration:none;font-size:14px;font-weight:500;transition:background-color .2s;position:relative;border:1px solid transparent}.settings-nav-item:hover{background:var(--bg-secondary);text-decoration:none}.settings-nav-item.active{background:var(--bg-secondary);border-color:var(--border-color);font-weight:600}.nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.settings-nav-item.active .nav-icon{color:var(--text-primary)}.nav-label{flex:1}.admin-badge-small{display:inline-block;padding:2px 6px;background:var(--accent-primary);color:#fff;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.settings-main{min-height:500px}@media(max-width:1024px){.settings-container{grid-template-columns:240px 1fr;gap:16px;padding:16px}}@media(max-width:768px){.settings-container{grid-template-columns:1fr;gap:16px;padding:16px}.settings-sidebar{position:static}.settings-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.settings-nav-item{flex-direction:column;text-align:center;padding:12px 8px;gap:6px}.nav-icon{font-size:18px}.nav-label{font-size:12px}}@media(max-width:480px){.settings-nav{grid-template-columns:1fr}.settings-nav-item{flex-direction:row;justify-content:flex-start;text-align:left;gap:12px}.nav-icon{font-size:16px}.nav-label{font-size:14px}}.theme-toggle{display:flex;align-items:center;justify-content:center;padding:8px;background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;width:32px;height:32px}.theme-toggle:hover{background-color:var(--bg-secondary);border-color:var(--border-emphasis)}.theme-toggle svg{width:16px;height:16px}.user-settings{background:var(--bg-secondary);border-radius:8px;padding:2rem;border:1px solid var(--border-color)}.settings-page-header{margin-bottom:2rem}.settings-page-header h1{margin:0 0 .5rem;color:var(--text-primary);font-size:1.75rem}.settings-page-description{margin:0;color:var(--text-secondary);font-size:.95rem}.settings-section{margin-bottom:2.5rem}.settings-section h2{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.settings-group{display:flex;flex-direction:column;gap:1.5rem}.setting-item{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.setting-info{flex:1}.setting-label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.setting-description{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.4}.setting-requirement{margin:.5rem 0 0;font-size:.875rem;color:#f59e0b;line-height:1.4;padding:.5rem .75rem;background:#f59e0b1a;border-left:3px solid #f59e0b;border-radius:4px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .setting-requirement{color:#fbbf24;background:#fbbf2426;border-left-color:#fbbf24}.setting-control{display:flex;align-items:center}.toggle-switch{position:relative;display:inline-block;width:48px;height:24px;cursor:pointer}.toggle-slider{position:absolute;inset:0;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-primary);border-color:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:pointer}.toggle-switch input:disabled{cursor:pointer}.settings-actions{display:flex;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}@media(max-width:768px){.user-settings{padding:1.5rem}.setting-item{flex-direction:column;gap:1rem}.setting-control{align-self:flex-start}.settings-actions{flex-direction:column}.settings-actions .btn{width:100%}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);padding:20px;position:relative}.theme-toggle-wrapper{position:absolute;top:20px;right:20px;z-index:10}.theme-toggle-wrapper .theme-toggle{background-color:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary)}.theme-toggle-wrapper .theme-toggle:hover{background-color:var(--bg-secondary)}.auth-box{background:transparent;padding:0;border:none;border-radius:0;box-shadow:none;width:100%;max-width:352px}.auth-box h1{margin:0 0 32px;font-size:24px;color:var(--text-primary);text-align:center;font-weight:600;letter-spacing:-.015em}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;color:var(--text-primary);font-weight:600;font-size:14px;line-height:21px;height:21px}.form-group input{width:100%;padding:9px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;line-height:20px;color:var(--text-primary);background-color:var(--bg-primary);transition:border-color .2s ease;box-sizing:border-box;height:40px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-subtle)}.form-group input:disabled{background-color:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed}button[type=submit]{width:100%;padding:12px 16px;background-color:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(31,35,40,.15);border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-top:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}button[type=submit]:hover:not(:disabled){background-color:var(--button-primary-hover-bg)}button[type=submit]:active:not(:disabled){background-color:var(--button-primary-active-bg)}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:var(--danger-muted);color:var(--danger-fg);padding:12px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:14px;border:1px solid var(--danger-emphasis)}.auth-footer{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);font-size:14px;font-weight:400}.auth-footer a{color:var(--text-link);text-decoration:none;font-weight:400}.auth-footer a:hover{text-decoration:underline}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:600;line-height:1.5;text-decoration:none;border-radius:6px;cursor:pointer;transition:all .2s ease;white-space:nowrap;border:1px solid transparent}.btn-primary{background-color:var(--button-primary-bg);color:var(--button-primary-text);border-color:#1f232826}.btn-primary:hover{background-color:var(--button-primary-hover-bg)}.btn-secondary{background-color:transparent!important;color:#0969da!important;border-color:#0969da!important;border-width:1.5px!important;font-weight:600!important}.btn-secondary:hover{background-color:#0969da!important;border-color:#0969da!important;color:#fff!important}[data-theme=dark] .btn-secondary{background-color:transparent!important;color:#58a6ff!important;border-color:#58a6ff!important;font-weight:600!important}[data-theme=dark] .btn-secondary:hover{background-color:#58a6ff!important;border-color:#58a6ff!important;color:#0d1117!important}.landing-container{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);overflow-x:hidden}.landing-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 0;position:sticky;top:0;z-index:100}.landing-header .header-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.landing-header .logo-section{display:flex;align-items:center;gap:.75rem}.landing-header .logo-section h1{margin:0;font-size:1.5rem;font-weight:600}.landing-header .header-actions{display:flex;align-items:center;gap:.75rem}.landing-main{flex:1;max-width:1200px;margin:0 auto;padding:0 1.5rem;width:100%}.hero-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center;padding:1.5rem 0}.hero-content{display:flex;flex-direction:column;gap:1rem}.hero-title{font-size:2.5rem;font-weight:700;line-height:1.2;margin:0}.hero-subtitle{color:var(--color-primary)}.hero-description{font-size:1.1rem;color:var(--color-text-secondary);line-height:1.5;margin:0}.hero-cta{display:flex;gap:1rem;margin-top:.5rem}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-visual .heatmap-preview{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;box-shadow:none!important;max-width:100%;width:100%;display:flex;flex-direction:column;align-items:flex-end;margin:0!important}.hero-visual .heatmap-preview .heatmap-months{display:grid;grid-auto-flow:column;grid-auto-columns:11px;gap:0;margin-bottom:2px;margin-left:26px}.hero-visual .heatmap-preview .month-label{font-size:10px;color:var(--color-text-secondary);white-space:nowrap}.hero-visual .heatmap-preview .heatmap-grid-wrapper{display:flex;gap:2px}.hero-visual .heatmap-preview .heatmap-days{display:flex;flex-direction:column;gap:2px;padding-top:0}.hero-visual .heatmap-preview .day-label{height:9px;font-size:9px;color:var(--color-text-secondary);display:flex;align-items:center;min-width:26px}.hero-visual .heatmap-preview .heatmap-grid{display:flex;gap:2px;width:fit-content;max-width:100%}.hero-visual .heatmap-preview .heatmap-week{display:flex;flex-direction:column;gap:2px}.hero-visual .heatmap-preview .heatmap-day{width:9px;height:9px;border-radius:2px;border:none!important}.heatmap-preview .heatmap-day.level-0{background-color:#eff2f566}.heatmap-preview .heatmap-day.level-1{background-color:#aceebb}.heatmap-preview .heatmap-day.level-2{background-color:#4ac26b}.heatmap-preview .heatmap-day.level-3{background-color:#2da44e}.heatmap-preview .heatmap-day.level-4{background-color:#116329}[data-theme=dark] .heatmap-preview .heatmap-day.level-0{background-color:#151b234d}[data-theme=dark] .heatmap-preview .heatmap-day.level-1{background-color:#033a16}[data-theme=dark] .heatmap-preview .heatmap-day.level-2{background-color:#196c2e}[data-theme=dark] .heatmap-preview .heatmap-day.level-3{background-color:#2ea043}[data-theme=dark] .heatmap-preview .heatmap-day.level-4{background-color:#56d364}.heatmap-preview .heatmap-legend{display:flex;align-items:center;gap:3px;justify-content:flex-end;margin-top:8px}.heatmap-preview .legend-label{font-size:11px;color:var(--text-secondary);margin:0 2px}.heatmap-preview .legend-square{width:10px;height:10px;border-radius:2px}.heatmap-preview .legend-square.level-0{background-color:#eff2f5}.heatmap-preview .legend-square.level-1{background-color:#aceebb}.heatmap-preview .legend-square.level-2{background-color:#4ac26b}.heatmap-preview .legend-square.level-3{background-color:#2da44e}.heatmap-preview .legend-square.level-4{background-color:#116329}[data-theme=dark] .heatmap-preview .legend-square.level-0{background-color:#151b23}[data-theme=dark] .heatmap-preview .legend-square.level-1{background-color:#033a16}[data-theme=dark] .heatmap-preview .legend-square.level-2{background-color:#196c2e}[data-theme=dark] .heatmap-preview .legend-square.level-3{background-color:#2ea043}[data-theme=dark] .heatmap-preview .legend-square.level-4{background-color:#56d364}.features-section{padding:1.5rem 0;border-top:1px solid var(--color-border)}.features-section h3{font-size:1.75rem;font-weight:700;text-align:center;margin:0 0 1rem}.features-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 2rem;max-width:900px;margin:0 auto}.feature-item{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:var(--color-text);padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease}.feature-item:hover{border-color:var(--button-primary-bg);box-shadow:0 2px 8px #1f883d1a}.feature-bullet{color:var(--button-primary-bg);font-weight:700;font-size:1.2rem;flex-shrink:0;width:20px;height:20px;background:#1f883d1a;border-radius:50%;display:flex;align-items:center;justify-content:center}[data-theme=dark] .feature-bullet{background:#2fa45033}.how-it-works-section{padding:1.5rem 0;border-top:1px solid var(--color-border)}.how-it-works-section h3{font-size:1.75rem;font-weight:700;text-align:center;margin:0 0 1rem}.steps-simple{display:flex;justify-content:center;align-items:center;gap:2rem;flex-wrap:wrap}.step-simple{padding:.75rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;font-size:.95rem;font-weight:500;color:var(--color-text)}.cta-section{padding:2.5rem 0;border-top:1px solid var(--color-border);text-align:center}.cta-section h3{font-size:1.75rem;font-weight:700;margin:0 0 .75rem}.cta-section p{font-size:1.1rem;color:var(--color-text-secondary);margin:0 0 1.5rem}.landing-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:1rem 0;margin-top:1.5rem}.footer-content{max-width:1200px;margin:0 auto;padding:0 1.5rem;text-align:center}.footer-logo{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.1rem}.footer-text{color:var(--color-text-secondary);margin:0;font-size:.95rem}.btn-large{padding:.875rem 2rem;font-size:1.125rem;font-weight:600}@media(max-width:968px){.hero-section{grid-template-columns:1fr;gap:2rem;padding:2rem 0;min-height:auto}.hero-title{font-size:2.5rem}.hero-visual{order:-1}.heatmap-preview{max-width:100%}.features-grid{grid-template-columns:1fr}.steps-container{flex-direction:column}.step-arrow{transform:rotate(90deg)}.landing-header .header-content,.landing-main{padding:0 1rem}}@media(max-width:640px){.hero-title{font-size:2rem}.hero-description{font-size:1.1rem}.hero-cta{flex-direction:column}.hero-cta .btn-large{width:100%}.landing-header .header-actions{gap:.5rem}.landing-header .btn-primary,.landing-header .btn-secondary{padding:.4rem .75rem;font-size:.8125rem}}.heatmap-container{width:100%;margin:0 auto;padding:24px 32px}.heatmap-loading,.heatmap-error{text-align:center;padding:3rem;color:var(--text-secondary)}.heatmap-error{color:var(--danger-fg)}.heatmap-stats{display:flex;gap:16px;margin-bottom:16px;padding:0}.stat-card{display:flex;flex-direction:column;gap:2px;background:transparent;border:none;border-radius:0;padding:0;text-align:left;box-shadow:none}.stat-value{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.2}.stat-label{font-size:12px;color:var(--text-secondary);font-weight:400;line-height:1.2}.heatmap-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.heatmap-header h2{margin:0;font-size:14px;font-weight:400;color:var(--text-secondary)}.heatmap-layout{display:flex;gap:16px}.heatmap-main{flex:1}.year-selector-sidebar{display:flex;flex-direction:column;gap:2px;min-width:140px}.platform-filter-section{display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:8px}.platform-filter-label{font-size:12px;font-weight:600;color:var(--text-primary);margin:0}.platform-filter-select{width:100%;padding:6px 8px;font-size:12px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.platform-filter-select:hover{border-color:var(--accent-primary)}.platform-filter-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0969da1a}[data-theme=dark] .platform-filter-select:focus{box-shadow:0 0 0 3px #58a6ff33}.year-filter-divider{height:1px;background:var(--border-color);margin:8px 0}.year-item{background:transparent;border:none;border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;font-weight:400;color:var(--text-primary);cursor:pointer;text-align:left;transition:background .15s}.year-item:hover{background:var(--bg-secondary)}.year-item.active{background:var(--accent-primary);color:#fff;font-weight:600}.heatmap-wrapper{background:transparent;border:none;border-radius:0;padding:0;overflow-x:auto;box-shadow:none}.heatmap-months{display:grid;grid-auto-flow:column;grid-auto-columns:13px;gap:0;margin-bottom:3px;margin-left:28px}.month-label{font-size:10px;color:var(--text-secondary);white-space:nowrap}.heatmap-grid-wrapper{display:flex;gap:3px}.heatmap-days{display:flex;flex-direction:column;gap:3px;padding-top:0}.day-label{height:13px;font-size:9px;color:var(--text-secondary);display:flex;align-items:center;min-width:28px}.heatmap-grid{display:flex;gap:3px;flex:1}.heatmap-week{display:flex;flex-direction:column;gap:3px}.heatmap-day{width:10px;height:10px;border-radius:2px;border:1px solid rgba(31,35,40,.06);cursor:pointer;transition:transform .1s}.heatmap-day:hover{transform:scale(1.2);outline:1px solid rgba(31,35,40,.15);outline-offset:0}.heatmap-day.empty{background:transparent;border:none;cursor:default}.heatmap-day.empty:hover{transform:none;outline:none}.heatmap-day.level-0{background-color:#eff2f5}.heatmap-day.level-1{background-color:#aceebb}.heatmap-day.level-2{background-color:#4ac26b}.heatmap-day.level-3{background-color:#2da44e}.heatmap-day.level-4{background-color:#116329}[data-theme=dark] .heatmap-day{border-color:#0104091a}[data-theme=dark] .heatmap-day:hover{outline-color:#ffffff26}[data-theme=dark] .heatmap-day.level-0{background-color:#151b23}[data-theme=dark] .heatmap-day.level-1{background-color:#033a16}[data-theme=dark] .heatmap-day.level-2{background-color:#196c2e}[data-theme=dark] .heatmap-day.level-3{background-color:#2ea043}[data-theme=dark] .heatmap-day.level-4{background-color:#56d364}.heatmap-legend{display:flex;align-items:center;gap:3px;margin-top:8px;justify-content:flex-end}.legend-label{font-size:11px;color:var(--text-secondary);margin:0 2px}.legend-square{width:10px;height:10px;border-radius:2px;border:1px solid rgba(31,35,40,.06)}.legend-square.level-0{background-color:#eff2f5}.legend-square.level-1{background-color:#aceebb}.legend-square.level-2{background-color:#4ac26b}.legend-square.level-3{background-color:#2da44e}.legend-square.level-4{background-color:#116329}[data-theme=dark] .legend-square{border-color:#0104091a}[data-theme=dark] .legend-square.level-0{background-color:#151b23}[data-theme=dark] .legend-square.level-1{background-color:#033a16}[data-theme=dark] .legend-square.level-2{background-color:#196c2e}[data-theme=dark] .legend-square.level-3{background-color:#2ea043}[data-theme=dark] .legend-square.level-4{background-color:#56d364}.no-contributions-message{text-align:center;padding:48px 32px;color:var(--text-secondary);background:transparent;border:none;border-radius:0;margin-top:24px;box-shadow:none}.no-contributions-message p{margin:8px 0}@media(max-width:768px){.heatmap-container{padding:1rem}.heatmap-layout{flex-direction:column}.year-selector-sidebar{flex-direction:row;flex-wrap:wrap;min-width:auto;order:-1}.platform-filter-section{width:100%;order:-2}.year-filter-divider{width:100%;margin:4px 0}.heatmap-stats{flex-direction:column;gap:.75rem}.heatmap-header{flex-direction:column;align-items:flex-start;gap:1rem}.heatmap-wrapper{padding:1rem}}@media(max-width:480px){.heatmap-stats{flex-direction:column;gap:.75rem}}.activity-timeline{width:100%;margin:0 auto;padding:24px 32px;border-top:1px solid var(--border-color)}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.timeline-title{font-size:14px;font-weight:400;color:var(--text-secondary);margin:0}.sync-button{padding:.375rem .75rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.25rem}.sync-button:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-dark)}.sync-button:disabled{opacity:.6;cursor:not-allowed}.month-group{margin-bottom:24px}.month-header{font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:0;border-bottom:none}.activities-list{display:flex;flex-direction:column;gap:16px}.empty-month-message{text-align:center;padding:24px 16px;color:var(--text-secondary);font-size:14px}.activity-item{display:flex;gap:8px;padding:0;border-radius:0;transition:background-color .2s}.activity-item:hover{background-color:transparent}.activity-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:50%;border:1px solid var(--border-color)}.activity-content{flex:1;min-width:0}.activity-header-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.activity-header{font-size:14px;color:var(--text-primary);font-weight:400;line-height:1.5;padding-right:12px}.activity-header a{color:var(--text-link);text-decoration:none;font-weight:600}.activity-header a:hover{text-decoration:underline}.activity-details{margin-top:4px;margin-bottom:4px}.repository-item{padding:4px 0;display:flex;align-items:center;gap:8px;font-size:12px}.repository-item a{color:var(--text-link);text-decoration:none;font-weight:600}.repository-item a:hover{text-decoration:underline}.commit-count{font-size:11px;color:var(--text-secondary);margin-left:auto;flex-shrink:0}.commit-bar{width:64px;height:5px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden;flex-shrink:0}.commit-fill{height:100%;border-radius:3px;transition:width .3s ease,background-color .3s ease}.language-tag{display:inline-flex;align-items:center;gap:4px;padding:0 6px;height:20px;background-color:transparent;border:1px solid var(--border-color);border-radius:10px;font-size:11px;font-weight:500;margin-left:8px}.language-tag:before{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--language-color, #858585)}.language-tag[data-language=Python]:before{background-color:#3572a5}.language-tag[data-language=JavaScript]:before{background-color:#f1e05a}.language-tag[data-language=TypeScript]:before{background-color:#3178c6}.language-tag[data-language=Java]:before{background-color:#b07219}.language-tag[data-language=Go]:before{background-color:#00add8}.language-tag[data-language=Rust]:before{background-color:#dea584}.language-tag[data-language="C++"]:before{background-color:#f34b7d}.language-tag[data-language=C]:before{background-color:#555}.language-tag[data-language=Ruby]:before{background-color:#701516}.language-tag[data-language=PHP]:before{background-color:#4f5d95}.language-tag[data-language=Swift]:before{background-color:#fa7343}.language-tag[data-language=Kotlin]:before{background-color:#a97bff}.language-tag[data-language=HTML]:before{background-color:#e34c26}.language-tag[data-language=CSS]:before{background-color:#639}.language-tag[data-language=Shell]:before{background-color:#89e051}.language-tag[data-language=Bash]:before{background-color:#4eaa25}.language-tag[data-language=Dart]:before{background-color:#00b4ab}.language-tag[data-language=Objective-C]:before{background-color:#438eff}.issue-card{display:flex;align-items:flex-start;gap:16px;padding:12px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color .2s}.issue-card:hover{border-color:var(--border-emphasis)}.issue-icon{flex-shrink:0;margin-top:4px;color:#8250df}.issue-content{flex:1;min-width:0}.issue-title{margin:0 0 8px;font-size:14px;font-weight:600;line-height:1.25}.issue-title a{color:var(--text-primary);text-decoration:none}.issue-title a:hover{color:var(--text-link)}.issue-body{margin:0 0 8px}.issue-body p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.issue-footer{font-size:12px;color:var(--text-secondary);display:inline-flex;align-items:center}.activity-date{font-size:12px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.load-more-container{display:flex;justify-content:center;margin:24px 0 16px}.load-more-button{padding:5px 16px;background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.load-more-button:hover:not(:disabled){background-color:var(--bg-secondary);border-color:var(--border-emphasis)}.load-more-button:disabled{opacity:.6;cursor:not-allowed}.loading-message,.empty-message{text-align:center;padding:32px 16px;color:var(--text-secondary);font-size:14px}.empty-message p{margin:8px 0}.empty-message p:first-child{font-weight:600;color:var(--text-primary)}.error-message{text-align:center;padding:16px;color:var(--danger-fg);background-color:var(--danger-muted);border:1px solid var(--danger-emphasis);border-radius:var(--radius-sm);margin:16px 0;font-size:14px}:root{--text-primary: #1f2328;--text-secondary: #656d76;--bg-hover: #f6f8fa;--bg-secondary: #f6f8fa;--border-color: #d0d7de;--border-light: #e1e4e8;--border-dark: #bbb;--link-color: #0969da;--primary-color: #2da44e;--error-color: #d1242f;--error-bg: #fff0f0;--error-border: #ffdddd}[data-theme=dark]{--text-primary: #e6edf3;--text-secondary: #7d8590;--bg-hover: #161b22;--bg-secondary: #161b22;--border-color: #30363d;--border-light: #21262d;--border-dark: #444c56;--link-color: #58a6ff;--primary-color: #3fb950;--error-color: #f85149;--error-bg: #2d1619;--error-border: #6e1619}@media(max-width:768px){.activity-timeline{padding:16px}.timeline-header{flex-direction:column;align-items:flex-start;gap:12px}.sync-button{width:100%;justify-content:center}.timeline-title{font-size:14px}.month-header{font-size:12px}.activity-item{gap:8px}.activity-icon{width:28px;height:28px}.activity-header{font-size:13px}.repository-item{flex-wrap:wrap}.commit-count{order:3;width:100%;margin-left:0;margin-top:4px}.commit-bar{order:4;width:100%}}.user-profile{background:var(--color-canvas-default);border:1px solid var(--color-border-default);border-radius:6px;padding:16px;margin-bottom:16px;position:sticky;top:16px}.heatmap-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--color-border-muted)}.stat-card{background:var(--color-canvas-subtle);border:1px solid var(--color-border-default);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:4px}.stat-label{font-size:12px;color:var(--color-fg-muted);font-weight:400}.stat-value{font-size:16px;font-weight:600;color:var(--color-fg-default)}@media(max-width:640px){.heatmap-stats{grid-template-columns:1fr}}.platform-profiles{display:flex;flex-direction:column;gap:16px}.platform-tabs{display:flex;gap:8px;border-bottom:1px solid var(--color-border-muted);padding-bottom:0;margin-bottom:16px}.platform-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-fg-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:relative;bottom:-1px}.platform-tab:hover{color:var(--color-fg-default);background:var(--color-canvas-subtle);border-radius:6px 6px 0 0}.platform-tab.active{color:var(--color-fg-default);border-bottom-color:var(--color-accent-emphasis)}.platform-tab.active:hover{background:none}.platform-profile-card{border:1px solid var(--color-border-default);border-radius:6px;overflow:hidden;transition:box-shadow .2s;box-sizing:border-box;width:100%}.platform-profile-card:hover{box-shadow:0 1px 3px #0000001f}.platform-avatar{padding:16px 16px 0;width:100%;box-sizing:border-box}.platform-avatar-img{width:100%;height:auto;border-radius:50%;border:1px solid var(--color-border-muted);background:var(--color-canvas-default);display:block}.platform-info{padding:12px 16px 16px;width:100%;box-sizing:border-box;display:flex;flex-direction:column}.vcard-names{margin-bottom:8px;width:100%}.profile-name-heading{margin:0;width:100%;display:flex;flex-direction:column}.platform-display-name{font-size:26px;line-height:1.25;font-weight:600;color:var(--color-fg-default);display:block;overflow:hidden;width:100%;word-wrap:break-word}.platform-username{font-size:20px;font-style:normal;font-weight:300;line-height:24px;color:var(--color-fg-muted);display:block;width:100%;word-wrap:break-word}.platform-bio{font-size:16px;margin-bottom:16px;line-height:1.5;color:var(--color-fg-default);width:100%;word-wrap:break-word;overflow-wrap:break-word}.platform-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;width:100%}.detail-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-fg-muted);width:100%}.detail-icon{font-size:16px;width:16px;text-align:center;flex-shrink:0}.detail-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.platform-followers{display:flex;gap:6px;align-items:center;margin-bottom:16px;font-size:14px;color:var(--color-fg-muted);flex-wrap:wrap;width:100%}.followers-icon{color:var(--color-fg-muted);flex-shrink:0}.follower-count{font-weight:600;color:var(--color-fg-default)}.follower-label{color:var(--color-fg-muted)}.follower-separator{color:var(--color-fg-muted);margin:0 2px}.platform-profile-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--color-accent-fg);text-decoration:none;padding:4px 0;transition:color .2s}.platform-profile-link:hover{color:var(--color-accent-emphasis);text-decoration:underline}.empty-state{text-align:center;padding:32px 16px}.empty-message{font-size:16px;font-weight:600;color:var(--color-fg-default);margin:0 0 8px}.empty-hint{font-size:14px;color:var(--color-fg-muted);margin:0}@media(max-width:768px){.user-profile{position:static}.platform-tabs{gap:4px;overflow-x:auto;scrollbar-width:thin}.platform-tab{padding:8px 12px;font-size:13px;white-space:nowrap}}.home-container{min-height:100vh;background-color:var(--bg-secondary)}.home-header{background:#f6f8fa;border-bottom:1px solid var(--border-color);padding:16px 0 0}[data-theme=dark] .home-header{background:var(--bg-secondary)}.header-content{max-width:1280px;width:100%;margin:0 auto;padding:0 32px 16px;display:flex;justify-content:space-between;align-items:center}.logo-section{display:flex;align-items:center;gap:12px}.home-header h1{margin:0;font-size:24px;color:var(--text-primary);font-weight:600}.user-info{display:flex;align-items:center;gap:16px}.welcome-text{color:var(--text-secondary);font-weight:500;font-size:14px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;color:var(--text-secondary);border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;text-decoration:none}.icon-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.icon-btn svg{display:block}.tabs-container{background:var(--bg-primary);border-bottom:none}.tabs{max-width:1280px;width:100%;margin:0 auto;padding:0 32px;display:flex;gap:0}.tab{padding:8px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-right:0}.tab:hover{color:var(--text-primary);background-color:transparent;border-bottom-color:var(--border-color)}.tab.active{color:var(--text-primary);border-bottom-color:var(--accent-emphasis);font-weight:600}.home-content{max-width:1280px;width:100%;margin:0 auto;padding:0;background:#fff;min-height:calc(100vh - 120px)}[data-theme=dark] .home-content{background:var(--bg-primary)}.overview-layout{display:grid;grid-template-columns:296px 1fr;gap:24px;padding:24px 32px}.profile-sidebar{position:relative}.main-content{min-width:0}@media(max-width:1024px){.overview-layout{grid-template-columns:1fr;gap:16px;padding:16px}.profile-sidebar{order:2}.main-content{order:1}}@media(max-width:768px){.header-content{padding:0 16px;flex-direction:column;gap:16px;align-items:flex-start}.logo-section{width:100%}.user-info{width:100%;justify-content:space-between}.welcome-text{display:none}.tabs{padding:0 16px}.tab{flex:1;text-align:center;padding:12px 16px}}@media(max-width:480px){.home-header h1{font-size:20px}.user-info{gap:8px}.settings-btn,.logout-btn{padding:5px 12px;font-size:13px}}.platform-connector{width:100%;margin:0;padding:0}.platform-connector h2{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.5rem}.error-message{background:var(--danger-muted);color:var(--danger-fg);padding:1rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;border-left:3px solid var(--danger-emphasis)}.connected-platforms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:3rem}.platform-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:all .2s ease}.platform-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}[data-theme=dark] .platform-card:hover{box-shadow:0 2px 8px #0006}.platform-card-header{background:var(--bg-secondary);padding:.75rem 1rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.platform-identity{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.platform-icon-wrapper{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-shrink:0}.platform-info-text{flex:1;min-width:0}.platform-username-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.125rem}.platform-username-row h3{margin:0;font-size:.9375rem;font-weight:600;color:var(--text-primary)}.auth-type-badge{font-size:.65rem;font-weight:600;padding:.25rem .5rem;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;line-height:1}.auth-type-badge.oauth{background:#0969da1a;color:var(--accent-primary);border:1px solid rgba(9,105,218,.3)}.auth-type-badge.pat{background:#57606a1a;color:var(--text-secondary);border:1px solid var(--border-color)}[data-theme=dark] .auth-type-badge.oauth{background:#58a6ff26;color:#58a6ff;border-color:#58a6ff4d}[data-theme=dark] .auth-type-badge.pat{background:#6e768126;color:var(--text-secondary);border-color:var(--border-color)}.last-sync-time{font-size:.75rem;color:var(--text-tertiary);display:block}.platform-card-body{padding:1rem 1.125rem}.sync-row-compact{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.sync-row-compact.vertical{flex-direction:column;align-items:stretch;gap:.625rem}.sync-row-compact:last-of-type{border-bottom:none}.sync-row-label{font-size:.8125rem;font-weight:500;color:var(--text-primary);flex-shrink:0}.sync-row-controls{display:flex;gap:.5rem;align-items:center;justify-content:space-between}.sync-row-compact .btn{height:32px;min-width:80px;flex-shrink:0;font-size:.8125rem;padding:0 .875rem;line-height:30px;margin:0}.sync-row-compact .sync-year-selector{height:32px;width:160px;flex-shrink:0}.remove-btn{background:var(--danger-emphasis)!important;color:#fff!important;font-weight:600;border-color:var(--danger-emphasis)!important;border-radius:var(--radius-sm)!important;flex-shrink:0;height:32px!important;min-width:80px!important;padding:0 .875rem!important;font-size:.8125rem!important;line-height:30px!important}.remove-btn:hover:not(:disabled){background:var(--danger-fg)!important;border-color:var(--danger-fg)!important;color:#fff!important}.sync-year-selector{padding:0 2rem 0 .625rem;font-size:.8125rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:border-color .15s;height:32px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23586069' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;line-height:30px;margin:0}.sync-year-selector:hover:not(:disabled){border-color:var(--accent-primary)}.sync-year-selector:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0969da1a}.sync-year-selector:disabled{opacity:.6;cursor:not-allowed}.connect-platform-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:2rem}.connect-platform-section h3{margin:0 0 1.5rem;color:var(--text-primary)}.auth-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.auth-tab{background:transparent;border:none;padding:.75rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;transition:color .2s;border-bottom:2px solid transparent;margin-bottom:-1px}.auth-tab:hover{color:var(--text-primary)}.auth-tab.active{color:var(--text-primary);border-bottom-color:var(--accent-primary)}.connect-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.btn-platform{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;text-align:center;transition:all .2s;border-radius:6px}.btn-platform:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-primary)}.btn-platform:disabled{opacity:.5;cursor:not-allowed}.btn-platform .btn-content{display:flex;flex-direction:column;align-items:center;gap:.25rem}.btn-platform .btn-platform-name{font-weight:500;font-size:.875rem;color:var(--text-primary)}.btn-platform .btn-helper-text{font-size:.75rem;color:var(--text-secondary)}.btn-platform .platform-name-text{font-weight:500;font-size:.875rem}.btn-platform .platform-auth-method{font-size:.75rem;color:var(--text-secondary)}.no-oauth-message{grid-column:1 / -1;text-align:center;padding:2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary)}.no-oauth-message p{margin:0;font-size:.875rem;line-height:1.5}.pat-form{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1.5rem;margin-top:1rem}.pat-form h4{margin:0 0 1rem;color:var(--text-primary);font-size:1rem}.pat-form-field{margin-bottom:1rem}.pat-form label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-primary)}.pat-form input{width:100%;padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .15s}.pat-form input:focus{outline:none;border-color:var(--accent-primary)}.pat-form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.pat-form-help{background:#0969da1a;border-left:3px solid var(--accent-primary);padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem;color:var(--text-primary)}.pat-form-help a{color:var(--accent-primary);text-decoration:none}.pat-form-help a:hover{text-decoration:underline}.pat-form-error{background:var(--danger-muted);color:var(--danger-fg);padding:.75rem;border-left:3px solid var(--danger-emphasis);border-radius:4px;font-size:.875rem}.btn-primary:hover:not(:disabled){background:var(--button-primary-hover-bg)!important;color:#fff!important;border-color:transparent!important}.btn-primary:active:not(:disabled){background:var(--button-primary-active-bg)!important;color:#fff!important;transform:scale(.98)}.btn-primary:focus-visible{outline-color:var(--button-primary-bg)}.btn-danger{background:var(--danger-emphasis);color:#fff;border:1px solid transparent}.btn-danger:hover:not(:disabled){background:var(--danger-fg)}.btn-danger:focus-visible{outline-color:var(--danger-emphasis)}@media(max-width:768px){.connected-platforms-grid{grid-template-columns:1fr}.platform-card-header{padding:.75rem .875rem;flex-wrap:wrap}.platform-identity{flex:1 1 100%;order:1;gap:.625rem}.remove-btn{order:2;width:100%;margin-top:.75rem}.platform-card-body{padding:.875rem}.platform-icon-wrapper{width:28px;height:28px}.sync-row-compact{padding:.625rem 0}.sync-row-controls{flex-direction:column;align-items:stretch}.sync-row-compact .btn,.sync-row-compact .sync-year-selector{width:100%}.connect-buttons{grid-template-columns:1fr}.pat-form-actions{flex-direction:column}.pat-form-actions button{width:100%}}.oauth-apps-manager{width:100%}.oauth-apps-content{display:grid;grid-template-columns:1fr;gap:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:600}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.empty-state .hint{font-size:.9rem;color:var(--text-tertiary)}.apps-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.app-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.app-card.disabled{opacity:.65}.app-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}[data-theme=dark] .app-card{box-shadow:0 1px 3px #0000004d}[data-theme=dark] .app-card:hover{box-shadow:0 4px 12px #00000080}.app-header{background:var(--bg-secondary);padding:1rem 1.25rem}.app-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.app-title-row{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.app-title-row h3{margin:0;color:var(--text-primary);font-size:1.0625rem;font-weight:600}.url-actions-row{display:flex;justify-content:space-between;align-items:center;gap:1.25rem}.instance-url-display{flex:1;min-width:0;padding:.375rem .625rem;background:var(--bg-primary);border-radius:4px;border:1px solid var(--border-color)}.instance-url-text{font-size:.8125rem;color:var(--text-secondary);font-family:Monaco,Courier New,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-badges{display:flex;gap:.625rem;flex-wrap:wrap;flex-shrink:0;align-items:center}.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .625rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1}.badge-github{background:#2386361a;color:#238636;border:1px solid rgba(35,134,54,.3)}[data-theme=dark] .badge-github{background:#23863626;color:#3fb950;border-color:#2386364d}.badge-gitlab{background:#fc6d261a;color:#fc6d26;border:1px solid rgba(252,109,38,.3)}[data-theme=dark] .badge-gitlab{background:#fc6d2626;color:#fc6d26;border-color:#fc6d264d}.badge-gitea{background:#6099261a;color:#609926;border:1px solid rgba(96,153,38,.3)}[data-theme=dark] .badge-gitea{background:#60992626;color:#7cb342;border-color:#6099264d}.badge-default{background:#0969da1a;color:var(--accent-primary);border:1px solid rgba(9,105,218,.3)}[data-theme=dark] .badge-default{background:#58a6ff26;color:#58a6ff;border-color:#58a6ff4d}.badge-disabled{background:#6666661a;color:#666;border:1px solid rgba(102,102,102,.3)}[data-theme=dark] .badge-disabled{background:#80808026;color:#8b949e;border-color:#8080804d}.app-details{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem;padding:1.25rem;background:var(--bg-primary)}.detail-row{display:flex;flex-direction:column;gap:.375rem}.detail-label{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.detail-value{color:var(--text-primary);word-break:break-all;font-size:.9375rem}.detail-value.code{font-family:Monaco,Courier New,monospace;font-size:.875rem;background:var(--bg-secondary);padding:.5rem .75rem;border-radius:4px;border:1px solid var(--border-color)}.app-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0;padding-left:.75rem;margin-left:.75rem;border-left:1px solid var(--border-color)}.btn-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;max-height:20px!important;flex:0 0 20px!important;color:var(--text-secondary)!important;cursor:pointer!important;transition:all .2s!important;line-height:0!important;border:none!important;background:none!important;padding:0!important;margin:0!important;outline:none!important;box-shadow:none!important;border-radius:3px!important;overflow:hidden!important}.btn-icon svg{width:18px!important;height:18px!important;display:block!important;border:none!important;background:none!important}.btn-icon:hover{color:var(--text-primary)!important;background:none!important;border:none!important;outline:none!important;box-shadow:none!important;transform:scale(1.1)!important}.btn-icon:focus{outline:2px solid var(--accent-primary)!important;outline-offset:2px!important;border:none!important;box-shadow:none!important}.btn-icon-secondary:hover{color:var(--accent-primary)!important;background:none!important}[data-theme=dark] .btn-icon-secondary:hover{background:none!important}.btn-icon-danger{color:var(--danger-emphasis)!important}.btn-icon-danger:hover{color:var(--danger-fg)!important;background:none!important}[data-theme=dark] .btn-icon-danger{color:#f85149!important}[data-theme=dark] .btn-icon-danger:hover{color:#ff7b72!important;background:none!important}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #0969da1a}[data-theme=dark] .toggle-slider{background-color:#6e7681}[data-theme=dark] .toggle-slider:before{background-color:#21262d}[data-theme=dark] .toggle-switch input:checked+.toggle-slider{background-color:#58a6ff}.form-section{background:var(--bg-secondary);border-radius:var(--radius-md);padding:2rem;border:1px solid var(--border-color)}.form-header{margin-bottom:1.5rem}.btn-back{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-bottom:1rem;background:none;border:none;color:var(--accent-primary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s;border-radius:var(--radius-sm)}.btn-back:hover{background:#0969da1a;color:var(--text-primary)}[data-theme=dark] .btn-back:hover{background:#58a6ff26}.form-section h2{margin-top:0;margin-bottom:1.5rem;color:var(--text-primary)}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary)}.form-group input:disabled,.form-group select:disabled{opacity:.6;cursor:not-allowed}.form-hint{display:block;margin-top:.25rem;font-size:.85rem;color:var(--text-tertiary)}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;box-sizing:border-box;vertical-align:middle}.btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--button-primary-bg)!important;color:#fff!important;border:1px solid transparent!important}.btn-primary:hover:not(:disabled){background:var(--button-primary-hover-bg)!important;color:#fff!important}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-primary);border-color:var(--accent-primary)}.btn-danger{background:var(--danger-emphasis)!important;color:#fff!important;border:1px solid transparent!important}.btn-danger:hover:not(:disabled){background:var(--danger-fg)!important}.btn-warning{background:#d97706!important;color:#fff!important;border:1px solid transparent!important}.btn-warning:hover:not(:disabled){background:#b45309!important;color:#fff!important}.btn-success{background:#059669!important;color:#fff!important;border:1px solid transparent!important}.btn-success:hover:not(:disabled){background:#047857!important;color:#fff!important}.btn-sm{padding:.375rem .875rem;font-size:.8125rem}@media(max-width:768px){.section-header{flex-direction:column;align-items:flex-start;gap:1rem}.section-header .btn{width:100%}.apps-list{grid-template-columns:1fr}.app-title{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.app-badges{width:100%;justify-content:flex-start}.url-actions-row{flex-direction:column;align-items:flex-start;gap:.75rem}.instance-url-display{width:100%}.instance-url-text{word-break:break-all}.app-actions{width:100%;justify-content:flex-start}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.sync-jobs-viewer{padding:1.5rem}.jobs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.jobs-stats h2{margin:0;font-size:1.5rem;color:var(--text-primary, #333)}.jobs-count{margin:.25rem 0 0;font-size:.9rem;color:var(--text-secondary, #666)}.jobs-filters{display:flex;gap:.75rem}.filter-select{padding:.5rem .75rem;border:1px solid var(--border-color, #e1e4e8);border-radius:6px;background:var(--background, white);color:var(--text-primary, #333);font-size:.9rem;cursor:pointer;transition:border-color .2s}.filter-select:hover{border-color:var(--border-hover, #c1c4c8)}.filter-select:focus{outline:none;border-color:var(--primary-color, #0969da)}.loading{text-align:center;padding:3rem;color:var(--text-secondary, #666)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary, #666)}.empty-state p{margin:.5rem 0}.empty-hint{font-size:.9rem;color:var(--text-tertiary, #999)}.jobs-list{display:flex;flex-direction:column;gap:1rem}.job-card{background:var(--background, white);border:1px solid var(--border-color, #e1e4e8);border-radius:8px;padding:1.25rem;transition:box-shadow .2s}.job-card:hover{box-shadow:0 2px 8px #0000001a}.job-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.platform-info{display:flex;align-items:center;gap:.5rem}.platform-name{font-weight:600;color:var(--text-primary, #333)}.platform-type{padding:.2rem .5rem;background:var(--background-secondary, #f6f8fa);border-radius:4px;font-size:.75rem;color:var(--text-secondary, #666);text-transform:capitalize}.job-status-time{display:flex;align-items:center;gap:.75rem}.status-badge{display:inline-block;padding:.3rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-processing{background:#d1ecf1;color:#0c5460;animation:pulse 2s ease-in-out infinite}.job-time{font-size:.85rem;color:var(--text-tertiary, #999)}.job-card-body{display:flex;flex-direction:column;gap:.75rem}.job-description{font-size:.95rem;color:var(--text-primary, #333)}.progress-container{margin-top:.5rem}.progress-counts{display:flex;align-items:center;font-size:.85rem;color:var(--text-secondary, #666);margin-bottom:.5rem}.progress-counts>*+*{margin-left:.5rem}.count-item{display:inline-flex;align-items:center}.count-item>*+*{margin-left:.25rem}.count-number{font-weight:700;font-size:1rem;color:var(--text-primary, #333)}.count-divider{color:var(--text-tertiary, #999);font-weight:300}.progress-text{font-size:.8rem;color:var(--text-secondary, #666);font-style:italic;margin-top:.5rem}.progress-bar-wrapper{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.progress-bar{flex:1;height:6px;background:var(--background-secondary, #e1e4e8);border-radius:3px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#0969da,#0550ae);border-radius:3px;transition:width .3s ease}.progress-percentage{font-size:.85rem;font-weight:500;color:var(--text-primary, #333);min-width:3rem;text-align:right}.progress-bar.indeterminate .progress-bar-fill{width:30%;animation:indeterminate 1.5s ease-in-out infinite}.progress-bar.animated .progress-bar-fill{width:100%;animation:pulse-width 2s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%)}50%{transform:translate(350%)}to{transform:translate(-100%)}}@keyframes pulse-width{0%,to{opacity:.6}50%{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.job-error{padding:.75rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;font-size:.85rem;color:#721c24}.job-error strong{font-weight:600}.job-retry{font-size:.8rem;color:var(--text-secondary, #666);font-style:italic}.job-card-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e1e4e8)}.btn-cancel,.btn-delete{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background:#f6f8fa;color:#24292f;border:1px solid var(--border-color, #e1e4e8)}.btn-cancel:hover{background:#e1e4e8}.btn-delete{background:#d1242f;color:#fff}.btn-delete:hover{background:#a71d2a}@media(max-width:768px){.jobs-header{flex-direction:column;align-items:flex-start}.jobs-filters{width:100%;flex-direction:column}.filter-select{width:100%}.job-card-header{flex-direction:column;align-items:flex-start}.platform-info{width:100%}.job-status-time{width:100%;justify-content:space-between}}.platform-management{background:var(--bg-secondary);border-radius:8px;padding:2rem;border:1px solid var(--border-color)}.platform-management-header{margin-bottom:2rem}.platform-management-header h1{margin:0 0 .5rem;color:var(--text-primary);font-size:2rem}.platform-management-header .subtitle{margin:0;color:var(--text-secondary);font-size:1rem}.tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color);margin-bottom:2rem}.tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;color:var(--text-secondary);transition:all .2s;margin-bottom:-2px;display:flex;align-items:center;gap:.5rem}.tab:hover{color:var(--text-primary);background:var(--bg-secondary)}.tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.admin-badge{display:inline-block;padding:.2rem .5rem;background:var(--accent-primary);color:#fff;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase}.tab-content{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.platform-management{padding:1rem}.platform-management-header h1{font-size:1.5rem}.tabs{flex-wrap:wrap}.tab{padding:.5rem 1rem;font-size:.9rem}}.oauth-callback-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:2rem}.oauth-callback-container{max-width:500px;width:100%;text-align:center}.oauth-status{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.oauth-status h2{margin:0;color:var(--text-primary);font-size:1.5rem}.oauth-status p{margin:0;color:var(--text-secondary);line-height:1.6}.spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.success-icon{width:64px;height:64px;background:var(--success-emphasis);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.oauth-status.success{border-color:var(--success-emphasis)}.error-icon{width:64px;height:64px;background:var(--danger-emphasis);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.oauth-status.error{border-color:var(--danger-emphasis)}.error-message{background:var(--danger-muted);color:var(--danger-fg);padding:.75rem;border-radius:4px;font-size:.875rem}.btn{margin-top:1rem;padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--button-primary-bg);color:#fff}.btn-primary:hover{background:var(--button-primary-hover-bg)}.heatmap-themes-container{max-width:1200px;margin:0 auto;padding:2rem}.themes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.themes-header h1{margin:0;font-size:2rem}.header-actions{display:flex;gap:1rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:1rem;border-radius:8px;margin-bottom:1rem}.empty-state{text-align:center;padding:4rem 2rem}.empty-state p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:1.5rem}.themes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem}.theme-card{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;transition:all .2s}.theme-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.theme-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.theme-card-header h3{margin:0;font-size:1.3rem;display:flex;align-items:center;gap:.5rem}.badge-default{background:#4caf50;color:#fff;font-size:.7rem;padding:.2rem .6rem;border-radius:12px;font-weight:400}.theme-mode-badge{padding:.3rem .8rem;border-radius:16px;font-size:.85rem;font-weight:500}.theme-mode-badge.light{background:#fff3cd;color:#856404}.theme-mode-badge.dark{background:#333;color:#fff}.theme-description{color:var(--text-secondary);margin-bottom:1rem;font-size:.95rem}.theme-details{background:var(--background);padding:1rem;border-radius:8px;margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-row .label{font-weight:500;color:var(--text-secondary)}.detail-row .value{color:var(--text-primary)}.monospace{font-family:Courier New,monospace;font-size:.9rem}.theme-preview{margin:1rem 0;text-align:center;background:var(--background);padding:1rem;border-radius:8px;overflow:auto}.theme-preview img{max-width:100%;height:auto;border-radius:4px}.theme-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem;align-items:center}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--background);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.btn-icon svg{width:18px;height:18px}.btn-icon:hover{background:var(--background-secondary);transform:translateY(-1px)}.btn-danger{color:#dc3545;border-color:#dc3545}.btn-danger:hover{background:#dc3545;color:#fff}.embed-urls{margin-top:1rem}.embed-urls h4{margin:0 0 .8rem;font-size:.95rem;color:var(--text-secondary)}.embed-url-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center;background:var(--background);padding:.75rem;border-radius:8px}.embed-url-row:last-child{margin-bottom:0}.embed-url-row code{flex:1;background:var(--background-secondary);padding:.5rem;border-radius:4px;font-size:.85rem;word-break:break-all;overflow-wrap:break-word}.btn-copy{padding:.5rem .8rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.btn-copy:hover{opacity:.9}.btn-primary{padding:.8rem 1.5rem;background:var(--primary-color);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{padding:.8rem 1.5rem;background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-secondary:hover{background:var(--background);transform:translateY(-1px)}@media(max-width:768px){.themes-grid{grid-template-columns:1fr}.themes-header{flex-direction:column;gap:1rem;align-items:stretch}.header-actions{flex-direction:column}}.color-scheme-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:.5rem}.scheme-option{border:2px solid transparent;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.75rem}.scheme-option:hover{border-color:var(--primary-color);opacity:.8}.scheme-option.selected{border-color:var(--primary-color);background:#4f46e50d}.scheme-preview{display:flex;gap:4px;justify-content:center;padding:.5rem 0}.color-square{width:24px;height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.1);transition:transform .2s}.scheme-option:hover .color-square{transform:scale(1.1)}.scheme-label{text-align:center;font-size:.9rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:.5rem}.checkmark{color:var(--primary-color);font-weight:700;font-size:1.1rem}[data-theme=dark] .color-square{border-color:#ffffff1a}@media(max-width:768px){.color-scheme-picker{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.color-square{width:20px;height:20px}.scheme-label{font-size:.85rem}}.heatmap-preview{margin-top:2rem;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}.heatmap-preview-inner{max-width:1400px;margin:0 auto;padding:0 2rem}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.preview-header h3{margin:0;font-size:1.3rem;color:var(--text-primary)}.preview-controls{display:flex;align-items:center;gap:1rem}.preview-period-selector{display:flex;align-items:center;gap:.5rem}.preview-period-selector label{font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.period-select{padding:.4rem .8rem;border:1px solid var(--border-color);border-radius:4px;background:var(--background);color:var(--text-primary);font-size:.9rem;min-width:120px;cursor:pointer}.period-select:focus{outline:none;border-color:var(--primary-color)}.btn-preview{padding:.6rem 1.2rem;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s;font-size:.95rem}.btn-preview:hover{opacity:.9;transform:translateY(-1px)}.btn-preview:disabled{opacity:.6;cursor:not-allowed}.preview-error{background:#fee;border:1px solid #fcc;color:#c33;padding:.75rem 1rem;border-radius:6px;margin-top:1rem;font-size:.9rem}.preview-content{margin-top:1rem}.preview-hint{background:#fff3cd;border:1px solid #ffc107;color:#856404;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}[data-theme=dark] .preview-hint{background:#3d3500;border-color:#ffc107;color:#ffeb3b}.preview-svg-container{width:100%}.preview-svg-container>div{width:100%}.preview-svg-container svg{display:block;width:100%;height:auto}.preview-svg-container img{display:block;width:100%;height:auto}@media(max-width:768px){.heatmap-preview{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.heatmap-preview-inner{padding:0}.preview-header{flex-direction:column;gap:1rem;align-items:stretch}.preview-controls{flex-direction:column;gap:.75rem}.preview-period-selector{justify-content:space-between}.period-select{flex:1}.btn-preview{width:100%}}.theme-editor-container{max-width:900px;margin:0 auto;padding:2rem}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.editor-header h1{margin:0;font-size:2rem}.theme-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2rem}.theme-form .form-section{margin-bottom:2rem;background:none;border:none;border-radius:0;padding:0}.theme-form .form-section h2{margin:0 0 1.5rem;font-size:1.4rem;color:var(--text-primary)}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--background);color:var(--text-primary);font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color)}.form-group input:disabled{background:var(--background-secondary);cursor:not-allowed;opacity:.6}.form-group textarea{resize:vertical;font-family:inherit}.hint{font-size:.85rem;color:var(--text-secondary);font-weight:400}.hint-text{margin-top:.5rem;font-size:.85rem;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.radio-group{display:flex;gap:1.5rem}.radio-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1.5rem;border:2px solid transparent;border-radius:8px;transition:all .2s}.radio-option:hover{border-color:var(--primary-color);opacity:.8}.radio-option input[type=radio]{cursor:pointer}.radio-option input[type=radio]:checked~span{color:var(--primary-color);font-weight:600}.checkbox-group,.checkbox-group-horizontal,.format-checkboxes{display:flex;gap:1.5rem;flex-wrap:wrap}.checkbox-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1.5rem;border:2px solid transparent;border-radius:8px;transition:all .2s}.checkbox-option:hover{border-color:var(--primary-color);opacity:.8}.checkbox-option input[type=checkbox]{cursor:pointer}gap: .5rem; cursor: pointer; padding: .75rem 1rem; border: 2px solid transparent; border-radius: 8px; transition: all .2s; } .checkbox-option:hover{border-color:var(--primary-color);opacity:.8}.checkbox-option input[type=checkbox]{cursor:pointer;width:18px;height:18px}.checkbox-option span{flex:1}.color-input{display:flex;gap:.5rem;align-items:center}.color-input input[type=color]{width:60px;height:40px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;background:transparent}.color-input input[type=text]{flex:1}.custom-colors-grid{display:grid;gap:1rem}.color-input-group{display:flex;align-items:center;gap:.5rem}.color-input-group label{min-width:60px;margin:0;font-size:.9rem;color:var(--text-secondary)}.color-input-group input[type=color]{width:50px;height:35px;border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.color-input-group input[type=text]{flex:1;padding:.5rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.form-actions .btn-primary,.form-actions .btn-secondary{min-width:120px}.form-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.theme-editor-container{padding:1rem}.theme-form{padding:1.5rem}.form-row{grid-template-columns:1fr}.radio-group{flex-direction:column}.checkbox-group,.format-checkboxes{grid-template-columns:1fr}.editor-header{flex-direction:column;gap:1rem;align-items:flex-start}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.generation-settings-container{max-width:1000px;margin:0 auto;padding:2rem}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.settings-header h1{margin:0;font-size:2rem}.success-message{background:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:1rem;border-radius:8px;margin-bottom:1rem}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-form,.manual-generation,.recent-jobs{background:var(--background-secondary);border-radius:12px;padding:2rem}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.form-section:last-of-type{border-bottom:none}.form-section h2{margin:0 0 1.5rem;font-size:1.3rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.checkbox-label span{font-size:1rem;color:var(--text-primary)}.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--background);color:var(--text-primary);font-size:1rem}.form-group select:focus{outline:none;border-color:var(--primary-color)}.form-actions{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.manual-generation{text-align:center}.manual-generation h2{margin:0 0 1rem;font-size:1.3rem}.manual-generation p{color:var(--text-secondary);margin-bottom:1.5rem}.manual-generation .btn-primary{padding:1rem 2rem;font-size:1.1rem}.recent-jobs h2{margin:0 0 1.5rem;font-size:1.3rem}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary)}.jobs-table{overflow-x:auto}.jobs-table table{width:100%;border-collapse:collapse}.jobs-table th{text-align:left;padding:.75rem;border-bottom:2px solid var(--border-color);font-weight:600;color:var(--text-primary)}.jobs-table td{padding:.75rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.jobs-table tr:last-child td{border-bottom:none}.jobs-table tr:hover{background:var(--background)}.status-badge{display:inline-block;padding:.3rem .8rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-completed{background:#d4edda;color:#155724}.status-processing{background:#d1ecf1;color:#0c5460}.status-failed{background:#f8d7da;color:#721c24}.status-pending{background:#fff3cd;color:#856404}.badge-manual{background:#e7f3ff;color:#004085;padding:.2rem .6rem;border-radius:10px;font-size:.8rem;font-weight:500}.badge-auto{background:#f0f0f0;color:#666;padding:.2rem .6rem;border-radius:10px;font-size:.8rem;font-weight:500}@media(max-width:768px){.generation-settings-container{padding:1rem}.settings-header{flex-direction:column;gap:1rem;align-items:flex-start}.settings-form,.manual-generation,.recent-jobs{padding:1.5rem}.jobs-table{font-size:.9rem}.jobs-table th,.jobs-table td{padding:.5rem}}.sync-settings-container{max-width:900px;margin:0 auto;padding:2rem}.settings-header{margin-bottom:2rem}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem}.breadcrumb-link{color:var(--primary-color);text-decoration:none;transition:color .2s}.breadcrumb-link:hover{color:var(--primary-hover);text-decoration:underline}.breadcrumb-separator,.breadcrumb-current{color:var(--text-secondary)}.inline-link{color:var(--primary-color);text-decoration:none;font-weight:500}.inline-link:hover{text-decoration:underline}.settings-header h1{margin-bottom:.5rem}.subtitle{color:var(--text-secondary);font-size:1rem}.error-message{background:var(--error-bg);color:var(--error-text);padding:1rem;border-radius:8px;margin-bottom:1rem;border:1px solid var(--error-border)}.success-message{background:var(--success-bg);color:var(--success-text);padding:1rem;border-radius:8px;margin-bottom:1rem;border:1px solid var(--success-border)}.status-section,.settings-section{background:var(--card-bg);padding:2rem;border-radius:12px;margin-bottom:2rem;border:1px solid var(--border-color)}.status-section h2,.settings-section h2{margin-bottom:1.5rem;font-size:1.3rem}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.status-item{display:flex;flex-direction:column;gap:.5rem}.status-item label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.status-item span{font-size:1.1rem;font-weight:600}.status-enabled{color:#22c55e}.status-disabled{color:#ef4444}.platforms-status{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.platforms-status h3{margin-bottom:1rem;font-size:1.1rem}.platforms-list{display:flex;flex-direction:column;gap:1rem}.platform-item{padding:1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.platform-name{margin-bottom:.5rem}.platform-sync{font-size:.9rem;color:var(--text-secondary)}.sync-button{margin-top:1.5rem;width:100%;max-width:200px}.form-group{margin-bottom:2rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-group select,.form-group input[type=number]{width:100%;max-width:400px;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--input-bg);color:var(--text-primary);font-size:1rem}.form-group select:focus,.form-group input[type=number]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.hint-text{margin-top:.5rem;font-size:.9rem;color:var(--text-secondary)}.form-actions{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color);display:flex;gap:1rem;align-items:center}.btn-primary{background:var(--primary-color);color:#fff;padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-small{padding:.5rem 1rem;font-size:.9rem;white-space:nowrap}.hint-inline{color:var(--text-secondary);font-size:.85rem;font-weight:400;margin-left:.25rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem}.platform-sync-preferences{padding:1.5rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);margin-bottom:1.5rem}.platform-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.platform-info{font-size:1rem;color:var(--text-primary);flex:1}.last-synced{color:var(--text-secondary);font-size:.9rem;font-weight:400}.sync-checkboxes{display:flex;gap:2rem;margin:1rem 0;flex-wrap:wrap}.sync-checkboxes .checkbox-label{margin:0}.platform-actions{display:flex;gap:1rem;margin:1rem 0;flex-wrap:wrap}.btn-secondary{background:var(--bg-tertiary, #4b5563);color:#fff;padding:.6rem 1.2rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary-hover, #374151);transform:translateY(-1px)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.sync-settings-container{padding:1rem}.status-grid{grid-template-columns:1fr}.status-section,.settings-section{padding:1.5rem}.platform-header{flex-direction:column;align-items:flex-start}.platform-header .btn-small{width:100%}.platform-actions{flex-direction:column}.btn-secondary{width:100%}.sync-checkboxes{flex-direction:column;gap:1rem}}.app-footer{padding:1.5rem 0;margin-top:auto;text-align:center;border-top:1px solid var(--border-color)}.footer-content{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.footer-separator{color:var(--text-tertiary)}.footer-version-link{font-size:.75rem;color:var(--text-tertiary);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;text-decoration:none;transition:color .2s ease}.footer-version-link:hover{color:var(--primary-color)}.footer-text{color:var(--text-secondary)}.footer-link{display:flex;align-items:center;gap:.35rem;color:var(--text-primary);text-decoration:none;font-weight:500;transition:color .2s ease}.footer-link:hover{color:var(--primary-color)}.footer-icon{display:inline-block;vertical-align:middle}.footer-repo-name{font-family:Segoe UI,system-ui,-apple-system,sans-serif}
