@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--accent:#059669;--accent-hover:#047857;--accent-light:#d1fae5;--accent-text:#065f46;--bg:#f9fafb;--surface:#fff;--surface-2:#f3f4f6;--surface-3:#e5e7eb;--border:#e5e7eb;--border-focus:#059669;--text:#111827;--text-2:#6b7280;--text-3:#9ca3af;--success:#059669;--warning:#d97706;--danger:#dc2626;--cf-newbie:gray;--cf-pupil:green;--cf-specialist:#03a89e;--cf-expert:#00f;--cf-cm:#a0a;--cf-master:#ff8c00;--cf-grandmaster:red;--sidebar-w:210px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-md:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px 24px}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,box-shadow .12s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--text-2);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn:disabled{opacity:.6;cursor:not-allowed}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--text-2);font-size:13px;font-weight:500}.form-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:9px 12px;font-size:14px;transition:border-color .12s}.form-input:focus{border-color:var(--border-focus)}.form-input::placeholder{color:var(--text-3)}select.form-input{cursor:pointer}.subtitle{color:var(--text-2);font-size:13px}.page-title{color:var(--text);margin-bottom:4px;font-size:20px;font-weight:700}.badge{text-transform:capitalize;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-accent{background:var(--accent-light);color:var(--accent-text)}.error-msg{color:var(--danger);font-size:13px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.5s infinite skeletonLoading}@keyframes skeletonLoading{0%{background-position:200% 0}to{background-position:-200% 0}}.landing-container{color:#0f172a;background-color:#fff;min-height:100vh;font-family:Inter,-apple-system,sans-serif;overflow-x:hidden}.landing-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background-color:#ffffffe6;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:24px 60px;display:flex;position:sticky;top:0}.nav-left{align-items:center;gap:30px;display:flex}.logo-badge{color:#fff;background-color:#10b981;border-radius:6px;padding:6px 10px;font-size:14px;font-weight:800}.logo-text{color:#0f172a;letter-spacing:-.5px;margin-right:20px;font-size:20px;font-weight:800}.nav-links{gap:24px;display:flex}.nav-links a{color:#64748b;font-size:14px;font-weight:600;text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-links a:first-child{color:#10b981}.nav-right{align-items:center;gap:24px;display:flex}.nav-about{color:#64748b;font-size:14px;font-weight:600;text-decoration:none}.nav-about:hover{color:#0f172a}.btn-login{color:#fff;background-color:#10b981;border-radius:6px;padding:8px 24px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s,transform .1s}.btn-login:hover{opacity:.9;transform:translateY(-1px)}.landing-hero{align-items:center;gap:60px;max-width:1400px;margin:0 auto;padding:100px 60px;display:flex}.hero-left{flex:1}.hero-title{color:#0f172a;letter-spacing:-1px;margin:0 0 24px;font-size:64px;font-weight:800;line-height:1.1}.hero-subtitle{color:#475569;max-width:500px;margin-bottom:40px;font-size:18px;line-height:1.6}.hero-actions{align-items:center;gap:20px;display:flex}.btn-get-started{color:#fff;background-color:#10b981;border-radius:8px;padding:14px 32px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 14px #10b98163}.btn-get-started:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b9813b}.btn-learn-more{color:#10b981;border:1px solid #10b981;border-radius:8px;padding:14px 32px;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .2s}.btn-learn-more:hover{background-color:#10b9810d}.hero-right{flex:1;justify-content:flex-end;display:flex}.mock-widget{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:540px;padding:30px;box-shadow:0 25px 50px -12px #00000014}.widget-tabs{gap:12px;margin-bottom:30px;display:flex}.widget-tabs span{color:#64748b;cursor:pointer;background:#f1f5f9;border-radius:20px;padding:8px 18px;font-size:13px;font-weight:600;transition:background .2s,color .2s}.widget-tabs .active-tab{color:#fff;background:#10b981}.widget-tabs span:hover:not(.active-tab){color:#334155;background:#e2e8f0}.widget-header{flex-direction:column;gap:4px;display:flex}.widget-label{color:#10b981;letter-spacing:1px;font-size:12px;font-weight:800}.widget-value-title{color:#0f172a;font-size:20px;font-weight:700}.widget-content{justify-content:space-between;align-items:flex-end;margin-bottom:16px;display:flex}.widget-rating{color:#0f172a;letter-spacing:-2px;font-size:52px;font-weight:800;line-height:1}.widget-bar-container{background:#e2e8f0;border-radius:4px;height:8px;margin-bottom:30px;overflow:hidden}.widget-bar-fill{background:#10b981;width:78%;height:100%}.widget-metrics{gap:16px;display:flex}.metric-box{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;flex-direction:column;flex:1;gap:8px;padding:16px;display:flex}.m-label{color:#64748b;font-size:12px;font-weight:600}.m-val{font-size:15px;font-weight:800}.m-val.green{color:#10b981}.m-val.purple{color:#a855f7}.landing-features{max-width:1400px;margin:0 auto;padding:80px 60px}.features-eyebrow{color:#10b981;letter-spacing:1px;text-transform:uppercase;font-size:13px;font-weight:800}.features-title{color:#0f172a;letter-spacing:-.5px;margin:12px 0;font-size:40px;font-weight:800}.features-desc{color:#475569;max-width:600px;margin-bottom:50px;font-size:16px;line-height:1.5}.features-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.feature-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:40px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.feature-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.f-indicator{background:#10b981;border-radius:2px;width:24px;height:4px;margin-bottom:24px}.feature-card h3{color:#0f172a;margin:0 0 16px;font-size:20px;font-weight:800}.feature-card p{color:#475569;margin:0;font-size:15px;line-height:1.6}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:40px}.auth-brand{align-items:center;gap:10px;margin-bottom:6px;display:flex}.auth-logo{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.1rem;font-weight:700;display:flex}.auth-title{color:var(--text);font-size:1.3rem;font-weight:700}.auth-subtitle{color:var(--text-2);margin-bottom:28px;font-size:.875rem;line-height:1.5}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-submit{width:100%;margin-top:4px;padding:11px;font-size:.9rem}.auth-switch{text-align:center;color:var(--text-2);font-size:.875rem}.auth-link{color:var(--accent);font-weight:500}.auth-link:hover{text-decoration:underline}.label-optional{color:var(--text-3);font-size:.8rem;font-weight:400}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#11182766;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:500px;box-shadow:var(--shadow-md);padding:24px;animation:.15s ease-out slideUp}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3{color:var(--text);font-size:18px;font-weight:700}.modal-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1;transition:color .1s}.modal-close:hover{color:var(--text)}.note-textarea{resize:vertical;min-height:120px;line-height:1.5}.modal-footer{justify-content:flex-end;align-items:center;gap:12px;margin-top:24px;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%)translateY(0)}to{opacity:1;transform:translate(-50%)translateY(-6px)}}@keyframes slideUp{0%{transform:translateY(16px)}to{transform:translateY(0)}}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);background:#ffffffd9;flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:fixed;top:0;left:0}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:8px;padding:0 16px 20px;display:flex}.sidebar-logo span{color:var(--text);font-size:16px;font-weight:700}.nav-item{color:var(--text-2);border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .1s,color .1s;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{color:var(--accent);background:var(--accent-light);border-left-color:var(--accent)}.sidebar-bottom{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:auto;padding:16px;display:flex}.sidebar-user{flex-direction:column;gap:4px;padding:4px;display:flex}.sidebar-username{color:var(--text);font-weight:600}.sidebar-handle{color:var(--text-2);font-size:12px}.sidebar-actions{flex-direction:column;gap:8px;display:flex}.sidebar-actions .btn{justify-content:center;width:100%}.app-layout{background:var(--bg);min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-w);flex:1;justify-content:center;padding:32px;display:flex}.page-content{width:100%;max-width:1100px;margin:0 auto}.dashboard-header{margin-bottom:28px}.dashboard-subtitle{color:var(--text-2);margin-top:4px;font-size:14px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{flex-direction:column;gap:4px;display:flex}.stat-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:500}.stat-value{color:var(--text);font-size:28px;font-weight:700}.dashboard-grid{grid-template-columns:3fr 2fr;gap:24px;margin-bottom:28px;display:grid}@media (width<=900px){.dashboard-grid{grid-template-columns:1fr}}.heatmap-section h3,.solves-section h3{color:var(--text);margin-bottom:16px;font-size:16px;font-weight:600}.heatmap-container{flex-direction:column;gap:12px;display:flex}.heatmap-grid{grid-template-columns:repeat(15,14px);gap:4px;display:grid}.heatmap-cell{background:var(--surface-2);cursor:pointer;border-radius:3px;width:14px;height:14px;transition:transform .1s;position:relative}.heatmap-cell:hover{z-index:10;transform:scale(1.15)}.heatmap-cell[data-tooltip]:hover:after{content:attr(data-tooltip);background:var(--text);color:var(--surface);white-space:nowrap;z-index:20;pointer-events:none;border-radius:4px;padding:4px 8px;font-size:11px;animation:.15s fadeIn;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-6px)}.heatmap-cell.no-activity{background:var(--surface-2)}.heatmap-cell.failed-attempts{background:var(--warning);opacity:.7}.heatmap-cell.accepted-solves{background:var(--accent)}.heatmap-legend{color:var(--text-2);align-items:center;gap:16px;margin-top:8px;font-size:12px;display:flex}.legend-dot{border-radius:3px;width:12px;height:12px}.legend-dot.no{background:var(--surface-2)}.legend-dot.fail{background:var(--warning);opacity:.7}.legend-dot.ac{background:var(--accent)}.solves-list{flex-direction:column;gap:12px;display:flex}.solve-item{background:var(--surface-2);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;display:flex}.solve-info{flex-direction:column;gap:2px;display:flex}.solve-name{color:var(--text);font-weight:600;text-decoration:none}.solve-name:hover{color:var(--accent)}.solve-tags{color:var(--text-2);font-size:11px}.solve-meta{text-align:right}.solve-rating{color:var(--text-2);font-weight:700}.connect-banner{background:var(--accent-light);border:1px dashed var(--accent);border-radius:var(--radius-lg);flex-direction:column;gap:12px;margin-top:24px;padding:24px;display:flex}.connect-banner h3{color:var(--accent-text);font-size:16px;font-weight:700}.connect-banner p{color:var(--text-2);font-size:13px}.connect-form{gap:12px;max-width:400px;display:flex}.compare-page{max-width:100%;margin:0 auto;padding-bottom:40px}.compare-controls{margin-bottom:20px;padding:20px}.compare-form{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.input-group{flex-direction:column;flex:1;gap:6px;min-width:200px;display:flex}.input-group label{color:#475569;font-size:13px;font-weight:600}.form-input{padding:10px 14px;font-size:14px}.btn-compare{color:#fff;cursor:pointer;background-color:#10b981;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:140px;height:42px;padding:0 24px;font-size:14px;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.btn-compare:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-compare:disabled{cursor:not-allowed;background-color:#94a3b8}.comparison-results{flex-direction:column;gap:20px;display:flex}.insight-banner.giant{background:#fff;border:1px solid #10b981;border-radius:12px;align-items:flex-start;gap:20px;padding:24px;display:flex;box-shadow:0 4px 15px -3px #10b9811a}.insight-icon{font-size:32px;line-height:1}.insight-text.large-text{color:#0f172a;margin:0;font-size:16px;font-weight:500;line-height:1.6}.text-green{color:#10b981;font-weight:700}.text-red{color:#ef4444;font-weight:700}.text-blue{color:#3b82f6;font-weight:700}.stats-row{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat-card{text-align:center;border-radius:12px;flex-direction:column;align-items:center;padding:20px;display:flex}.stat-card h4{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:12px}.stat-compare{align-items:center;gap:16px;margin-bottom:12px;display:flex}.stat-me,.stat-peer{flex-direction:column;display:flex}.stat-val{color:#0f172a;font-size:24px;font-weight:800}.stat-label{color:#64748b;margin-top:4px;font-size:12px;font-weight:500}.stat-vs{color:#94a3b8;font-size:13px;font-weight:600}.stat-delta{background:#f8fafc;border-radius:16px;padding:4px 10px;font-size:13px;font-weight:700}.delta-positive{color:#10b981}.delta-negative{color:#ef4444}.delta-neutral{color:#64748b}.milestone-card{border-left:4px solid #3b82f6;border-radius:12px;padding:24px}.milestone-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;display:flex}.milestone-select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:6px;outline:none;padding:6px 12px;font-size:13px;font-weight:600}.milestone-insight-container{margin-bottom:24px}.milestone-insight{color:#334155;margin:0 0 8px;font-size:15px}.milestone-prediction{color:#0f172a;margin:0;font-size:16px}.milestone-date{color:#64748b;font-size:14px;font-weight:500}.milestone-progress-container{margin-bottom:16px}.milestone-labels{color:#64748b;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.milestone-progress-bar{background-color:#e2e8f0;border-radius:4px;width:100%;height:8px;overflow:hidden}.milestone-progress-fill{background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;height:100%;transition:width 1s ease-in-out}.milestone-confidence{align-items:center;gap:12px;display:flex}.confidence-badge{letter-spacing:.5px;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:700}.conf-high{color:#166534;background:#dcfce7}.conf-medium{color:#854d0e;background:#fef9c3}.conf-low{color:#991b1b;background:#fee2e2}.confidence-text{color:#64748b;font-size:13px}.chart-card{border-radius:12px;padding:24px}.chart-title{color:#0f172a;letter-spacing:-.2px;margin:0;font-size:16px;font-weight:700}.chart-legend{color:#475569;gap:16px;font-size:12px;font-weight:600;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-color{border-radius:50%;width:10px;height:10px}.share-section{text-align:center;border-radius:12px;padding:24px}.btn-secondary{color:#0f172a;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .2s}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.generated-preview{border-top:1px solid #e2e8f0;flex-direction:column;align-items:center;gap:16px;margin-top:20px;padding-top:20px;display:flex}.share-img-preview{border:1px solid #e2e8f0;border-radius:8px;width:100%;max-width:600px;box-shadow:0 10px 20px #0000001a}.share-actions{gap:10px;display:flex}.btn-ghost{color:#64748b;cursor:pointer;background:0 0;border:none;font-weight:600}.btn-ghost:hover{color:#0f172a}.error-msg{color:#b91c1c;background-color:#fef2f2;border-left:4px solid #ef4444}.empty-state{text-align:center;background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px dashed #cbd5e1;padding:60px 20px}.empty-icon{margin-bottom:16px;font-size:48px}.empty-state h3{color:#0f172a;margin:0 0 12px;font-size:20px}.empty-state p{color:#64748b;max-width:400px;margin:0 auto}.warning-msg{color:#b45309;background-color:#fffbeb;border-left:4px solid #f59e0b;border-radius:8px;padding:16px}.cache-indicator{letter-spacing:.5px;text-transform:uppercase;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600}.cache-indicator.cached{color:#166534;background-color:#dcfce7}.cache-indicator.fresh{color:#3730a3;background-color:#e0e7ff}.share-card-layout{color:#fff;box-sizing:border-box;background-color:#0f172a;flex-direction:column;justify-content:space-between;width:1080px;height:max-content;min-height:1080px;padding:80px;font-family:Inter,-apple-system,sans-serif;display:flex}.sc-header{justify-content:space-between;align-items:center;display:flex}.sc-logo{color:#10b981;letter-spacing:-1px;font-size:32px;font-weight:900}.sc-title{color:#94a3b8;text-transform:uppercase;letter-spacing:2px;font-size:24px;font-weight:600}.sc-insight{color:#f8fafc;max-width:95%;margin:50px 0;font-size:36px;font-weight:500;line-height:1.5}.sc-insight .text-green{color:#10b981}.sc-insight .text-red{color:#ef4444}.sc-versus{align-items:center;gap:20px;margin-bottom:12px;font-size:48px;font-weight:800;display:flex}.sc-handle{background:#ffffff0d;border-radius:16px;padding:12px 24px}.sc-blue{color:#60a5fa}.sc-orange{color:#fb923c}.sc-vs-text{color:#64748b;font-size:24px;font-weight:600}.sc-day-label{color:#94a3b8;margin-bottom:60px;font-size:20px}.sc-stats{grid-template-columns:repeat(3,1fr);gap:40px;display:grid}.sc-stat-box{background:#ffffff08;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;gap:16px;padding:40px;display:flex}.sc-stat-title{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;font-size:18px;font-weight:600}.sc-stat-val{color:#fff;font-size:36px;font-weight:800}.sc-footer{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-top:auto;padding-top:40px;display:flex}.sc-watermark{color:#64748b;font-size:20px;font-weight:500}.sc-url{color:#10b981;font-size:20px;font-weight:600}.friends-header{margin-bottom:28px}.add-friend-card{margin-bottom:24px}.add-friend-form{gap:12px;display:flex}.friends-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.friend-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;justify-content:space-between;padding:20px;transition:transform .12s,box-shadow .12s;display:flex}.friend-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.friend-top{align-items:center;gap:12px;margin-bottom:12px;display:flex}.friend-avatar{object-fit:cover;background:var(--surface-2);border-radius:50%;width:48px;height:48px}.friend-info-block{flex-direction:column;flex:1;gap:2px;display:flex}.friend-handle{color:var(--text);font-size:15px;font-weight:700}.friend-rank{text-transform:capitalize;font-size:12px;font-weight:600}.friend-rating-badge{font-size:13px;font-weight:700}.friend-details-block{color:var(--text-2);flex-direction:column;gap:4px;margin-bottom:16px;font-size:13px;display:flex}.friend-comparison-text{color:var(--accent-text);background:var(--accent-light);border-radius:4px;margin-top:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.friend-actions{gap:8px;display:flex}.friend-actions .btn{flex:1;padding:6px 12px;font-size:12px}.friends-empty-state{text-align:center;padding:48px 24px}.friends-empty-state h3{color:var(--text);margin-bottom:8px;font-size:16px;font-weight:600}.friends-empty-state p{color:var(--text-2);max-width:320px;margin:0 auto;font-size:13px}.topics-header{margin-bottom:24px}.topics-grid{grid-template-columns:1fr;gap:28px;display:grid}.difficulty-section{margin-bottom:12px}.difficulty-chart-container{flex-direction:column;gap:12px;margin-top:16px;display:flex}.difficulty-row{align-items:center;gap:16px;display:flex}.difficulty-label{text-align:right;width:50px;color:var(--text-2);font-weight:600}.difficulty-bar-bg{background:var(--surface-2);border-radius:4px;flex:1;height:20px;position:relative;overflow:hidden}.difficulty-bar-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s ease-out}.difficulty-count{width:40px;color:var(--text);font-size:13px;font-weight:700}.topics-table-card{overflow-x:auto}.topics-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.topics-table th{color:var(--text-2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px;font-size:11px;font-weight:600}.topics-table td{border-bottom:1px solid var(--border);color:var(--text);padding:14px 16px}.topics-table tr:last-child td{border-bottom:none}.topics-table tr:hover td{background:var(--bg)}.status-indicator{align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.status-indicator.weak{color:var(--danger)}.status-indicator.needs-work{color:var(--warning)}.status-indicator.strong{color:var(--success)}.recommendations-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px;display:grid}.rec-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;justify-content:space-between;padding:16px;display:flex}.rec-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.rec-id{color:var(--accent);font-weight:700}.rec-name{color:var(--text);min-height:40px;margin-bottom:8px;font-size:14px;font-weight:600}.problems-header{margin-bottom:24px}.problems-tabs-bar{border-bottom:1px solid var(--border);gap:16px;margin-bottom:24px;display:flex}.problems-tab-btn{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:14px;font-weight:600;transition:all .12s}.problems-tab-btn:hover{color:var(--text)}.problems-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.wishlist-add-section{gap:12px;max-width:480px;margin-bottom:24px;display:flex}.wishlist-grid{flex-direction:column;gap:12px;display:flex}.wishlist-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);justify-content:space-between;align-items:center;padding:14px 20px;transition:transform .1s;display:flex}.wishlist-item:hover{transform:translateY(-1px)}.wishlist-item.solved{border-left:4px solid var(--success);opacity:.85}.wishlist-info{flex-direction:column;gap:4px;display:flex}.wishlist-title-row{align-items:center;gap:8px;display:flex}.wishlist-title-text{color:var(--text);font-size:14px;font-weight:700}.wishlist-title-text.line-through{color:var(--text-2);text-decoration:line-through}.wishlist-actions{gap:8px;display:flex}.wishlist-actions .btn{padding:6px 12px;font-size:12px}.profile-header-card{align-items:center;gap:24px;margin-bottom:24px;display:flex}@media (width<=600px){.profile-header-card{text-align:center;flex-direction:column}}.profile-avatar{border:2px solid var(--border);border-radius:50%;width:80px;height:80px}.profile-title-block{flex:1}.profile-name-row{align-items:center;gap:12px;margin-bottom:6px;display:flex}.profile-name-row h2{color:var(--text);font-size:20px;font-weight:700}.profile-meta-details{color:var(--text-2);flex-direction:column;gap:2px;font-size:13px;display:flex}.profile-grid-layout{grid-template-columns:3fr 2fr;gap:24px;margin-top:24px;display:grid}@media (width<=900px){.profile-grid-layout{grid-template-columns:1fr}}.profile-tag-row{align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.profile-tag-label{width:90px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.profile-tag-bar-bg{background:var(--surface-2);border-radius:3px;flex:1;height:12px;overflow:hidden}.profile-tag-bar-fill{background:var(--accent);height:100%}.profile-tag-count{text-align:right;width:25px;color:var(--text);font-weight:700}.notes-timeline{flex-direction:column;gap:16px;margin-top:16px;display:flex}.note-timeline-item{border-left:2px solid var(--border);padding-left:20px;position:relative}.note-timeline-item:before{content:"";background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-6px}.note-item-date{color:var(--text-2);font-size:11px;font-weight:600}.note-item-text{color:var(--text);white-space:pre-wrap;margin-top:4px;font-size:13px}.update-handle-section{margin-top:24px}.upsolve-header{margin-bottom:24px}.upsolve-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.upsolve-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:20px;transition:transform .2s,box-shadow .2s;display:flex}.upsolve-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.upsolve-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.prob-id{color:var(--text-2);font-size:13px;font-weight:700}.prob-rating.unrated{color:var(--text-3);font-weight:500}.prob-name{color:var(--text);flex:1;margin:0 0 12px;font-size:16px;font-weight:600;line-height:1.4}.prob-meta{margin-bottom:16px}.fail-badge{color:#f43f5e;background-color:#f43f5e1a;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.prob-tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tag-pill{background-color:var(--surface-2);color:var(--text-2);border-radius:12px;padding:2px 8px;font-size:11px}.solve-btn{text-align:center;width:100%;margin-top:auto}.skilltree-header{text-align:center;margin-bottom:32px}.skill-tree-container{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;padding:20px 0;display:grid}.skill-node{background-color:var(--surface);border:1px solid var(--border);border-radius:12px;gap:16px;padding:24px;transition:all .3s;display:flex;position:relative;overflow:hidden}.skill-node:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.skill-node.lvl-1{border-left:4px solid var(--text-3)}.skill-node.lvl-2{border-left:4px solid #6ee7b7;box-shadow:0 0 10px #6ee7b71a}.skill-node.lvl-3{border-left:4px solid #34d399;box-shadow:0 0 15px #34d39933}.skill-node.lvl-4{border-left:4px solid #10b981;box-shadow:0 0 20px #10b9814d}.skill-node.lvl-5{border-left:4px solid #3b82f6;box-shadow:0 0 20px #3b82f666}.skill-node.lvl-6{border-left:4px solid #6366f1;box-shadow:0 0 25px #6366f180}.skill-node.lvl-7{border-left:4px solid #8b5cf6;box-shadow:0 0 25px #8b5cf699}.skill-node.lvl-8{border-left:4px solid #d946ef;box-shadow:0 0 30px #d946efb3}.skill-node.lvl-9{border-left:4px solid #f43f5e;box-shadow:0 0 30px #f43f5ecc}.skill-node.lvl-10,.skill-node.max-level{background:linear-gradient(to right, #fbbf241a, var(--surface));border-left:4px solid #fbbf24;box-shadow:0 0 40px #fbbf24e6}.skill-icon{justify-content:center;align-items:center;min-width:60px;font-size:40px;display:flex}.skill-details{flex:1}.skill-details h3{color:var(--text);margin:0 0 4px;font-size:18px}.skill-level-badge{background:var(--accent);color:var(--bg);border-radius:12px;margin-bottom:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.skill-details p{color:var(--text-2);margin:0 0 16px;font-size:13px;line-height:1.4}.skill-stats{color:var(--text-2);justify-content:space-between;margin-bottom:12px;font-size:13px;display:flex}.skill-stats strong{color:var(--text)}.xp-bar-container{background-color:var(--surface-3);border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden}.xp-bar-fill{background:linear-gradient(90deg, var(--accent-light), var(--accent));border-radius:3px;height:100%;transition:width .5s ease-out}.xp-text{color:var(--text-3);text-align:right;font-size:11px}.insights-container{max-width:1200px;margin:0 auto;padding:24px;animation:.4s fadeIn}.insights-header{margin-bottom:32px}.insights-header h1{color:var(--text);background:linear-gradient(90deg,#a855f7,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:28px;font-weight:700}.insights-header p{color:var(--text-2);font-size:15px}.insights-grid{flex-direction:column;gap:24px;display:flex}.metrics-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 4px 20px #0003}.metrics-panel h2{color:var(--text);margin-bottom:4px;font-size:20px}.metrics-panel .subtitle{color:var(--text-2);margin-bottom:20px;font-size:13px}.metric-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.metric-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:transform .2s,box-shadow .2s;display:flex}.metric-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.metric-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:13px;font-weight:600}.metric-value{color:var(--text);font-size:28px;font-weight:700}.highlight-green{color:#10b981}.highlight-blue{color:#3b82f6}.charts-panel{grid-template-columns:1fr 1fr;gap:24px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;padding:24px;display:flex;box-shadow:0 4px 20px #0003}.chart-card h3{color:var(--text);margin-bottom:16px;font-size:16px;font-weight:600}.chart-wrapper{flex:1;min-height:300px;position:relative}.no-data{color:var(--text-2);text-align:center;margin-top:40px;font-size:14px}@media (width<=800px){.charts-panel{grid-template-columns:1fr}}.contest-hub-container{max-width:1200px;margin:0 auto;padding:24px;animation:.4s fadeIn}.hub-header{margin-bottom:32px}.hub-header h1{color:var(--text);background:linear-gradient(90deg,#8b5cf6,#ec4899);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:28px;font-weight:700}.hub-header p{color:var(--text-2);font-size:15px}.hub-grid{grid-template-columns:1fr 1.5fr;gap:24px;display:grid}@media (width<=900px){.hub-grid{grid-template-columns:1fr}}.upcoming-section h2,.prep-section h2{color:var(--text);margin-bottom:16px;font-size:20px;font-weight:600}.contest-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;margin-bottom:16px;padding:20px;transition:transform .2s;display:flex}.contest-card:hover{transform:translateY(-2px)}.contest-info h3{color:var(--text);margin-bottom:4px;font-size:16px;font-weight:600;line-height:1.4}.contest-date{color:var(--text-2);font-size:13px}.countdown{color:var(--text);text-align:center;border:1px solid var(--border);background:#ffffff0d;border-radius:8px;padding:8px 12px;font-family:monospace;font-size:20px;font-weight:700}.countdown.next-up{color:#ef4444;background:#ef44440d;border-color:#ef44444d;animation:2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.prep-section{padding:24px}.prep-desc{color:var(--text-2);margin-bottom:24px;font-size:14px;line-height:1.5}.goal-selector select{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;outline:none;margin-bottom:24px;padding:12px 16px;font-size:15px}.goal-selector select:focus{border-color:var(--primary)}.prep-meta{color:var(--text-2);margin-bottom:16px;font-size:14px}.prep-meta strong{color:var(--text);background:#ffffff0d;border-radius:4px;margin-left:8px;padding:4px 8px}.problem-list{flex-direction:column;gap:12px;display:flex}.problem-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:16px;text-decoration:none;transition:all .2s;display:flex}.problem-item:hover{border-color:var(--primary);background:#ffffff08}.prob-left{align-items:center;gap:12px;display:flex}.prob-id{color:var(--primary);background:#6366f11a;border-radius:4px;padding:4px 8px;font-size:13px;font-weight:700}.prob-name{color:var(--text);font-weight:500}.prob-rating{color:#f59e0b;font-size:14px;font-weight:700}
