:root{--primary: #7c5cfc;--primary-hover: #6b4be8;--primary-dark: #6b4be8;--primary-light: rgba(124, 92, 252, .1);--primary-muted: rgba(124, 92, 252, .15);--success: #10b981;--success-light: rgba(16, 185, 129, .1);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .1);--danger: #ef4444;--danger-light: rgba(239, 68, 68, .1);--info: #3b82f6;--info-light: rgba(59, 130, 246, .1);--bg-primary: #0c0c14;--bg-secondary: #12121f;--bg-tertiary: #1a1a2e;--bg-card: #16162a;--bg-elevated: #1e1e35;--bg-input: #1a1a2e;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(124, 92, 252, .1);--text-primary: #f0f0f5;--text-secondary: #a0a0b8;--text-tertiary: #6b6b8a;--text-inverse: #0c0c14;--border-primary: #2d2d4a;--border-secondary: #3d3d5c;--border-light: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(124, 92, 252, .2);--shadow-primary: 0 4px 14px rgba(124, 92, 252, .35);--overlay: rgba(0, 0, 0, .6);--backdrop: rgba(12, 12, 20, .8);--secondary: #10b981;--bg-dark: var(--bg-primary);--border: var(--border-primary)}[data-theme=light]{--bg-primary: #f8f9fc;--bg-secondary: #ffffff;--bg-tertiary: #f1f3f8;--bg-card: #ffffff;--bg-elevated: #ffffff;--bg-input: #ffffff;--bg-hover: rgba(0, 0, 0, .04);--bg-active: rgba(124, 92, 252, .08);--text-primary: #1a1a2e;--text-secondary: #5a5a7a;--text-tertiary: #8a8aa8;--text-inverse: #f0f0f5;--border-primary: #e2e4eb;--border-secondary: #d0d3de;--border-light: rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(124, 92, 252, .15);--shadow-primary: 0 4px 14px rgba(124, 92, 252, .25);--overlay: rgba(0, 0, 0, .4);--backdrop: rgba(248, 249, 252, .9);--bg-dark: var(--bg-primary);--border: var(--border-primary)}[data-theme=dark]{--bg-primary: #0c0c14;--bg-secondary: #12121f;--bg-tertiary: #1a1a2e;--bg-card: #16162a;--bg-elevated: #1e1e35;--bg-input: #1a1a2e;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(124, 92, 252, .1);--text-primary: #f0f0f5;--text-secondary: #a0a0b8;--text-tertiary: #6b6b8a;--text-inverse: #0c0c14;--border-primary: #2d2d4a;--border-secondary: #3d3d5c;--border-light: rgba(255, 255, 255, .08);--shadow-primary: 0 4px 14px rgba(124, 92, 252, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(124, 92, 252, .2);--overlay: rgba(0, 0, 0, .6);--backdrop: rgba(12, 12, 20, .8);--bg-dark: var(--bg-primary);--border: var(--border-primary)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;transition:background-color .3s ease,color .3s ease}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{cursor:pointer;border:none;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-success{background:var(--secondary);color:#fff}.btn-warning{background:var(--warning);color:#fff}input,select,textarea{background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary);padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.checkbox-label{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.checkbox-label:hover{color:var(--text-primary)}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.card{background:var(--bg-card);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border-primary);box-shadow:var(--shadow-sm);transition:background-color .3s ease,border-color .3s ease}.container{max-width:1400px;margin:0 auto;padding:0 1rem}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}.navbar{background:var(--bg-card);border-bottom:1px solid var(--border-primary);padding:1rem 0;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm);transition:background-color .3s ease,border-color .3s ease}.navbar.desktop-only{display:block}.navbar-content{display:flex;align-items:center;justify-content:space-between;gap:2rem}.navbar-brand{font-size:1.25rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.navbar-brand:hover{color:var(--primary)}.navbar-nav{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.nav-link{padding:.5rem 1rem;border-radius:.5rem;color:var(--text-secondary);font-size:.875rem;transition:all .2s}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:var(--primary);color:#fff}.nav-divider{display:none}.nav-actions{display:flex;align-items:center;gap:.5rem}.mobile-header{display:none;position:sticky;top:0;z-index:100;background:var(--bg-card);border-bottom:1px solid var(--border);padding:.75rem 1rem;align-items:center;justify-content:space-between}.menu-toggle{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .2s}.menu-toggle:hover{background:var(--bg-hover)}.mobile-brand{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.mobile-header-actions{display:flex;align-items:center;gap:.5rem}.theme-toggle-mobile{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem}.mobile-profile{font-size:1.5rem}.drawer-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:998;opacity:0;visibility:hidden;transition:all .3s ease}.drawer-overlay.open{opacity:1;visibility:visible}.side-drawer{display:none;position:fixed;top:0;left:0;width:280px;max-width:85vw;height:100%;background:var(--bg-card);z-index:999;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);flex-direction:column;overflow-y:auto;box-shadow:4px 0 24px #0003}.side-drawer.open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid var(--border)}.drawer-brand{display:flex;align-items:center;gap:.75rem}.drawer-logo{font-size:2rem}.drawer-brand-text{display:flex;flex-direction:column}.drawer-title{font-weight:700;font-size:1.1rem;color:var(--text-primary)}.drawer-subtitle{font-size:.75rem;color:var(--text-secondary)}.drawer-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.drawer-close:hover{background:var(--bg-hover);color:var(--text-primary)}.top-right-bar{position:fixed;top:1rem;right:1rem;display:flex;align-items:center;gap:.75rem;z-index:1000}.theme-toggle-corner{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;font-size:1.25rem;transition:all .2s;box-shadow:0 2px 8px #00000026}.theme-toggle-corner:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003}.profile-dropdown-container{position:relative}.profile-trigger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border);cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #00000026;padding:0;position:relative;overflow:visible}.profile-trigger:hover{transform:scale(1.05);border-color:var(--primary);box-shadow:0 4px 12px #0003}.admin-crown{position:absolute;top:-8px;right:-8px;font-size:.75rem}.guest-avatar{font-size:1.5rem}.profile-dropdown{position:absolute;top:calc(100% + .5rem);right:0;width:280px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 40px #0003;overflow:hidden;animation:dropdownSlide .2s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-hover)}.dropdown-user-info{display:flex;flex-direction:column;gap:.25rem}.dropdown-name{font-weight:600;font-size:1rem;color:var(--text-primary)}.dropdown-rep{font-size:.85rem;color:var(--text-secondary)}.dropdown-divider{height:1px;background:var(--border);margin:.25rem 0}.dropdown-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;color:var(--text-primary);text-decoration:none;font-size:.95rem;transition:all .2s;background:none;border:none;width:100%;cursor:pointer;text-align:left}.dropdown-link:hover{background:var(--bg-hover)}.dropdown-link span:first-child{font-size:1.2rem;width:24px;text-align:center}.dropdown-link.admin{color:#f59e0b}.dropdown-link.admin:hover{background:#f59e0b1a}.dropdown-link.logout{color:#e74c3c}.dropdown-link.logout:hover{background:#e74c3c1a}.dropdown-guest{padding:1.25rem;text-align:center}.dropdown-guest p{margin:0;color:var(--text-secondary);font-size:.9rem}.dropdown-signin{display:block;margin:0 1rem 1rem;padding:.875rem;background:var(--primary);color:#fff;text-decoration:none;text-align:center;border-radius:8px;font-weight:500;transition:opacity .2s}.dropdown-signin:hover{opacity:.9}.mobile-header-spacer{width:80px}.admin-badge{display:inline-block;padding:.125rem .5rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;margin-left:.5rem}.nav-link.community-link{color:var(--primary);font-weight:500}.nav-link.community-link.active{background:var(--primary);color:#fff}.profile-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1001;opacity:0;visibility:hidden;transition:all .3s ease}.profile-panel-overlay.open{opacity:1;visibility:visible}.profile-panel{position:fixed;top:0;left:0;width:320px;max-width:90vw;height:100vh;background:var(--bg-card);box-shadow:4px 0 20px #0000004d;z-index:1002;transform:translate(-100%);transition:transform .3s ease;display:flex;flex-direction:column;overflow-y:auto}.profile-panel.open{transform:translate(0)}.profile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.profile-panel-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.profile-panel-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.profile-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.profile-panel-user{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1.5rem;border-bottom:1px solid var(--border);text-align:center}.profile-panel-info{display:flex;flex-direction:column;gap:.25rem}.profile-panel-name{font-weight:600;font-size:1.1rem;color:var(--text-primary)}.profile-panel-email{font-size:.85rem;color:var(--text-secondary);word-break:break-all}.profile-panel-rep{font-size:.85rem;color:var(--primary);font-weight:500;margin-top:.25rem}.profile-panel-nav{display:flex;flex-direction:column;padding:1rem 0}.profile-panel-link{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;color:var(--text-primary);text-decoration:none;font-size:1rem;transition:all .2s;background:none;border:none;cursor:pointer;width:100%;text-align:left}.profile-panel-link:hover{background:var(--bg-hover)}.profile-panel-link span{font-size:1.25rem;width:28px;text-align:center}.profile-panel-link.admin{color:#f59e0b}.profile-panel-link.admin:hover{background:#f59e0b1a}.profile-panel-link.logout{color:#e74c3c;margin-top:.5rem;border-top:1px solid var(--border);padding-top:1.25rem}.profile-panel-link.logout:hover{background:#e74c3c1a}.profile-panel-guest{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.profile-panel-guest p{color:var(--text-secondary);margin:0}.profile-panel-signin{padding:.75rem 2rem;background:var(--primary);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:opacity .2s}.profile-panel-signin:hover{opacity:.9}.drawer-profile-card{display:flex;align-items:center;gap:.75rem;padding:1rem;margin:.75rem;background:var(--bg-hover);border-radius:12px;text-decoration:none;transition:all .2s}.drawer-profile-card:hover{background:var(--primary)}.drawer-profile-card:hover .drawer-username,.drawer-profile-card:hover .drawer-level{color:#fff}.drawer-avatar{font-size:2.5rem}.drawer-profile-info{display:flex;flex-direction:column}.drawer-username{font-weight:600;font-size:1rem;color:var(--text-primary)}.drawer-level{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.admin-badge{display:inline-block;padding:.125rem .5rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:4px}.mobile-profile-link{display:flex;align-items:center;justify-content:center;text-decoration:none}.mobile-profile-icon{font-size:1.25rem}.drawer-link.admin-link{color:#f59e0b}.drawer-link.admin-link:hover{background:#f59e0b1a}.drawer-link.admin-link.active{background:linear-gradient(90deg,#f59e0b,transparent);color:#fff;border-left-color:#f59e0b}.admin-indicator{font-size:.75rem;position:absolute;bottom:-2px;right:-2px}.signin-link{background:var(--primary);color:#fff!important;border-radius:8px;padding:.5rem 1rem!important}.signin-link:hover{background:var(--primary-hover)}.drawer-nav{flex:1;padding:.5rem 0;overflow-y:auto}.drawer-section{padding:.5rem 0}.drawer-section-title{display:block;padding:.5rem 1.25rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.drawer-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;color:var(--text-primary);text-decoration:none;transition:all .2s;font-size:.95rem}.drawer-link:hover{background:var(--bg-hover)}.drawer-link.active{background:linear-gradient(90deg,var(--primary),transparent);color:#fff;border-left:3px solid var(--primary)}.drawer-signout-btn{width:100%;background:none;border:none;cursor:pointer;color:var(--text-secondary);margin-top:.5rem;border-top:1px solid var(--border);padding-top:1.25rem!important}.drawer-signout-btn:hover{color:#e74c3c;background:#e74c3c1a}.drawer-icon{font-size:1.25rem;width:28px;text-align:center}.drawer-footer{border-top:1px solid var(--border);padding:1rem}.theme-toggle-drawer{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:var(--bg-hover);border:none;border-radius:10px;color:var(--text-primary);font-size:.95rem;cursor:pointer;transition:all .2s}.theme-toggle-drawer:hover{background:var(--primary);color:#fff}.theme-toggle{background:var(--bg-hover);border:1px solid var(--border);padding:.5rem .75rem;border-radius:.5rem;font-size:1.25rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;margin-left:.5rem}.theme-toggle:hover{background:var(--primary);border-color:var(--primary);transform:rotate(20deg)}@media(max-width:768px){.navbar.desktop-only{display:none}.mobile-header{display:flex}.drawer-overlay{display:block}.side-drawer{display:flex}.main-content{padding-top:1rem}}.main-content{flex:1;padding:2rem 0}.home-hero{text-align:center;padding:2rem 0;position:relative;overflow:hidden;min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.hero-glitch-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.3}.hero-ascii-container{position:relative;width:100%;height:280px;z-index:2;margin-bottom:1rem}.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:0 1rem}.hero-main-title{font-size:2.5rem;font-weight:700;margin:0;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.hero-subtitle{color:var(--text-secondary);font-size:1.125rem;max-width:600px;margin:0 auto;text-shadow:0 2px 10px rgba(0,0,0,.5)}.hero-github-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff618833,#ffd86633);border:1px solid rgba(255,97,136,.4);border-radius:2rem;color:#ffd866;font-weight:600;text-decoration:none;transition:all .3s ease}.hero-github-link:hover{background:linear-gradient(135deg,#ff61884d,#ffd8664d);transform:translateY(-2px);box-shadow:0 4px 20px #ff61884d;color:#fff}.hero-title-container{width:100%;height:80px;max-width:900px}.hero-signature{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;background:#6366f126;border-radius:2rem;border:1px solid rgba(99,102,241,.3)}.signature-text{color:var(--text-secondary);font-size:.875rem}.signature-link{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#00f7ff,#f0f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;text-decoration:none;transition:all .3s ease}.signature-link:hover{transform:scale(1.1);filter:brightness(1.3)}.home-hero h1{font-size:2.5rem;margin-bottom:1rem;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-hero p{color:var(--text-secondary);font-size:1.125rem;max-width:600px;margin:0 auto}.modules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3rem}.module-card{background:var(--bg-card);border-radius:1rem;padding:1.5rem;border:1px solid var(--border);transition:all .3s;cursor:pointer}.module-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 10px 40px #6366f133}.module-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1rem}.module-card h3{font-size:1.125rem;margin-bottom:.5rem}.module-card p{color:var(--text-secondary);font-size:.875rem}.visualizer-page{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;min-height:calc(100vh - 180px)}@media(max-width:1024px){.visualizer-page{grid-template-columns:1fr}}.controls-panel{display:flex;flex-direction:column;gap:1rem}.controls-section{background:var(--bg-card);border-radius:.75rem;padding:1rem;border:1px solid var(--border)}.controls-section h3{font-size:.875rem;color:var(--text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.controls-group{display:flex;flex-direction:column;gap:.5rem}.controls-row{display:flex;gap:.5rem}.controls-row input{flex:1}.visualization-panel{display:flex;flex-direction:column;gap:1rem}.visualization-canvas{background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border);flex:1;min-height:400px;overflow:hidden;position:relative}.visualization-canvas svg{width:100%;height:100%}.info-panel{background:var(--bg-card);border-radius:.75rem;padding:1rem;border:1px solid var(--border)}.info-panel h3{font-size:1rem;margin-bottom:.5rem}.info-panel p{color:var(--text-secondary);font-size:.875rem}.tree-node{cursor:pointer;transition:all .3s}.tree-node circle{fill:var(--bg-card);stroke:var(--primary);stroke-width:2;transition:all .3s}.tree-node.highlighted circle{fill:var(--primary);stroke:var(--primary)}.tree-node.visiting circle{fill:var(--warning);stroke:var(--warning);animation:pulse .5s ease-in-out}.tree-node.visited circle{fill:var(--secondary);stroke:var(--secondary)}.tree-node text{fill:var(--text-primary);font-size:14px;font-weight:600;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.tree-edge{stroke:var(--border);stroke-width:2;transition:stroke .3s}.tree-edge.highlighted{stroke:var(--primary);stroke-width:3}.graph-node{cursor:pointer}.graph-node circle{fill:var(--bg-card);stroke:var(--primary);stroke-width:2;transition:all .3s}.graph-node.current circle{fill:var(--warning);stroke:var(--warning)}.graph-node.visited circle{fill:var(--secondary);stroke:var(--secondary)}.graph-node.frontier circle{fill:var(--primary);stroke:var(--primary)}.graph-edge{stroke:var(--border);stroke-width:2;marker-end:url(#arrowhead)}.graph-edge.highlighted{stroke:var(--primary);stroke-width:3}.matrix-table{border-collapse:collapse;font-family:monospace;font-size:.875rem}.matrix-table th,.matrix-table td{padding:.5rem;text-align:center;border:1px solid var(--border);min-width:50px}.matrix-table th{background:var(--bg-hover);color:var(--text-secondary)}.matrix-table td input{width:50px;text-align:center;padding:.25rem}.matrix-cell.updated{background:var(--primary);color:#fff}.matrix-cell.current-k{background:var(--warning);color:#fff}.matrix-cell.path{background:var(--secondary);color:#fff}.huffman-node rect{fill:var(--bg-card);stroke:var(--primary);stroke-width:2}.huffman-node.leaf rect{fill:var(--secondary);stroke:var(--secondary)}.huffman-edge-label{font-size:12px;font-weight:700;fill:var(--warning)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.data-structure-view{display:flex;flex-direction:column;gap:.5rem}.data-structure-view.horizontal{flex-direction:row}.ds-item{background:var(--bg-hover);padding:.5rem 1rem;border-radius:.25rem;font-family:monospace;text-align:center;animation:slideIn .3s ease-out}.ds-item.current{background:var(--primary)}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.theory-section{background:var(--bg-card);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border);margin-bottom:1.5rem}.theory-section h2{color:var(--primary);margin-bottom:1rem;font-size:1.25rem}.theory-section p{color:var(--text-secondary);margin-bottom:.75rem}.theory-section ul{color:var(--text-secondary);margin-left:1.5rem;margin-bottom:.75rem}.theory-section code{background:var(--bg-hover);padding:.125rem .375rem;border-radius:.25rem;font-family:monospace;font-size:.875rem}.result-display{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:var(--bg-hover);border-radius:.5rem;min-height:2.5rem}.result-item{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:.25rem;font-family:monospace;font-weight:600}.code-table{width:100%;border-collapse:collapse;margin-top:1rem}.code-table th,.code-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border)}.code-table th{color:var(--text-secondary);font-weight:600}.code-table td{font-family:monospace}.toggle-group{display:flex;gap:0;border-radius:.5rem;overflow:hidden;border:1px solid var(--border)}.toggle-btn{flex:1;padding:.5rem 1rem;background:var(--bg-card);color:var(--text-secondary);border:none;border-radius:0;font-size:.75rem}.toggle-btn:hover{background:var(--bg-hover)}.toggle-btn.active{background:var(--primary);color:#fff}.speed-control{display:flex;align-items:center;gap:.5rem}.speed-control input[type=range]{flex:1;-webkit-appearance:none;background:var(--bg-hover);height:4px;border-radius:2px}.speed-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--primary);border-radius:50%;cursor:pointer}.rotation-badge{display:inline-block;padding:.25rem .5rem;background:var(--warning);color:#fff;border-radius:.25rem;font-size:.75rem;font-weight:600;margin-left:.5rem}.balance-factor{font-size:10px;fill:var(--warning);font-weight:700}.tooltip{position:absolute;background:var(--bg-card);border:1px solid var(--border);padding:.5rem .75rem;border-radius:.5rem;font-size:.75rem;pointer-events:none;z-index:1000;box-shadow:0 4px 12px #0000004d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.footer{background:var(--bg-card);border-top:1px solid var(--border);padding:1.5rem 0;margin-top:2rem}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-signature{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.footer-signature strong{color:var(--primary);font-size:1.1rem}.github-link{display:flex;align-items:center;gap:.35rem;color:var(--text-primary);transition:color .2s}.github-link:hover{color:var(--primary)}.footer-info{font-size:.75rem;color:var(--text-secondary)}.codelab-page{min-height:calc(100vh - 200px)}.codelab-header{text-align:center;margin-bottom:2rem}.codelab-header h1{font-size:2rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.codelab-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.codelab-tab{padding:.75rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;color:var(--text-secondary);font-size:.875rem;transition:all .2s}.codelab-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.codelab-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.exercise-card{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;margin-bottom:1rem;transition:all .2s}.exercise-card:hover{border-color:var(--primary)}.exercise-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.exercise-title{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.exercise-badge{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.7rem;font-weight:600;text-transform:uppercase}.exercise-badge.high-level{background:#10b98133;color:var(--secondary)}.exercise-badge.low-level{background:#ef444433;color:var(--danger)}.exercise-badge.hybrid{background:#f59e0b33;color:var(--warning)}.exercise-badge.haskell{background:#6366f133;color:var(--primary)}.exercise-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.exercise-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary)}.code-editor-container{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}@media(max-width:1024px){.code-editor-container{grid-template-columns:1fr}}.code-editor{background:#1a1a2e;border:1px solid var(--border);border-radius:.5rem;overflow:hidden}[data-theme=light] .code-editor{background:#fff;border-color:#e2e8f0}.code-editor-header{background:var(--bg-hover);padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.code-editor-title{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.code-editor textarea{width:100%;min-height:300px;padding:1rem;background:#1a1a2e;border:none;color:#e2e8f0;font-family:Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;resize:vertical}[data-theme=light] .code-editor textarea{background:#fff;color:#1e293b}.code-editor textarea:focus{outline:none}.code-output{background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.code-output-content{padding:1rem;font-family:monospace;font-size:.8rem;min-height:300px;white-space:pre-wrap}.output-success{color:var(--secondary)}.output-error{color:var(--danger)}.output-warning{color:var(--warning)}.check-solution-btn{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;padding:.75rem 2rem;font-size:1rem;font-weight:600;border-radius:.5rem;margin-top:1rem}.check-solution-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #6366f166}.patterns-info{display:flex;gap:1.5rem;margin:1rem 0;flex-wrap:wrap}.pattern-group{flex:1;min-width:200px}.pattern-group h4{font-size:.75rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase}.pattern-tags{display:flex;flex-wrap:wrap;gap:.25rem}.pattern-tag{padding:.2rem .5rem;border-radius:.25rem;font-size:.7rem;font-family:monospace}.pattern-tag.allowed{background:#10b98133;color:var(--secondary)}.pattern-tag.forbidden{background:#ef444433;color:var(--danger)}.graph-controls-panel{display:flex;flex-direction:column;gap:1rem}.adjacency-view{background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;padding:1rem;overflow-x:auto}.adjacency-list{font-family:monospace;font-size:.8rem}.adjacency-list-item{padding:.25rem 0;border-bottom:1px solid var(--border)}.adjacency-list-item:last-child{border-bottom:none}.gnde-view{background:#1a1a2e;padding:1rem;border-radius:.5rem;font-family:monospace;font-size:.75rem;overflow-x:auto}.gnde-node{color:var(--secondary)}.gnde-edge{color:var(--primary)}.btn-quiz{padding:.5rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,var(--accent) 0%,#f59e0b 100%);color:#fff;border:none}.btn-quiz:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.btn-quiz:disabled{opacity:.5;cursor:not-allowed;transform:none}.quiz-info{background:#f59e0b1a;border:1px solid var(--accent);border-radius:.5rem;padding:.75rem}.quiz-progress{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem}.quiz-score{display:flex;gap:1rem;font-size:.9rem;font-weight:600}.tree-node.quiz-clickable circle{cursor:pointer;stroke:var(--accent);stroke-width:3;stroke-dasharray:5 3;animation:pulse-border 1.5s ease-in-out infinite}.tree-node.quiz-clickable:hover circle{fill:#f59e0b4d;stroke:var(--accent)}.tree-node.quiz-selected circle{fill:var(--success)!important;stroke:var(--success);stroke-width:3}.tree-node.quiz-selected text{fill:#fff}@keyframes pulse-border{0%,to{stroke-opacity:1}50%{stroke-opacity:.4}}.graph-node.quiz-clickable circle{cursor:pointer;stroke:var(--accent);stroke-width:3;stroke-dasharray:5 3;animation:pulse-border 1.5s ease-in-out infinite}.graph-node.quiz-clickable:hover circle{fill:#f59e0b4d}.graph-node.quiz-selected circle{fill:var(--success)!important;stroke:var(--success);stroke-width:3}.graph-node.quiz-error circle{fill:var(--danger)!important;stroke:var(--danger);stroke-width:3;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.quiz-panel{border:2px solid var(--accent);background:#f59e0b0d}.quiz-item{background:var(--success)!important;color:#fff!important}.correct-item{background:var(--primary)!important;color:#fff!important}.quiz-final-result{padding-top:1rem;border-top:1px solid var(--border)}.quiz-score-final{text-align:center;padding:1rem;background:#10b9811a;border-radius:.5rem}.quiz-input-section{background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;padding:1rem;margin-top:1rem}.quiz-input-section h4{margin-bottom:.5rem;font-size:.9rem}.quiz-input-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.quiz-input-row input{flex:1;padding:.5rem;border:1px solid var(--border);border-radius:.25rem;background:var(--bg-primary);color:var(--text-primary);font-family:monospace}.quiz-feedback{padding:.75rem;border-radius:.5rem;margin-top:.5rem;font-weight:500}.quiz-feedback.correct{background:#10b98133;color:var(--success);border:1px solid var(--success)}.quiz-feedback.incorrect{background:#ef444433;color:var(--danger);border:1px solid var(--danger)}.lab-mode-toggle{display:flex;gap:1rem;margin-bottom:2rem;justify-content:center}.lab-mode-btn{display:flex;flex-direction:column;align-items:center;padding:1.5rem 2rem;background:var(--bg-card);border:2px solid var(--border);border-radius:1rem;cursor:pointer;transition:all .3s;min-width:200px}.lab-mode-btn:hover{border-color:var(--primary);transform:translateY(-2px)}.lab-mode-btn.active{border-color:var(--primary);background:linear-gradient(135deg,#6366f11a,#10b9811a);box-shadow:0 4px 20px #6366f133}.lab-mode-btn .mode-icon{font-size:2rem;margin-bottom:.5rem}.lab-mode-btn .mode-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.lab-mode-btn .mode-desc{font-size:.75rem;color:var(--text-secondary);text-align:center}.explanation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem}.explanation-card{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;cursor:pointer;transition:all .3s;position:relative;overflow:hidden}.explanation-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--secondary));opacity:0;transition:opacity .3s}.explanation-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 8px 30px #0000004d}.explanation-card:hover:before{opacity:1}.explanation-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.explanation-card h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.explanation-card p{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin-bottom:1rem}.explanation-card .card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.explanation-card .code-lines{color:var(--primary);font-weight:500}.explanation-detail{max-width:900px;margin:0 auto}.explanation-header{margin-bottom:1.5rem}.explanation-header h2{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.explanation-badges{display:flex;gap:.75rem;align-items:center}.mode-badge.large,.difficulty-badge.large,.language-tag.large{font-size:.85rem;padding:.4rem 1rem}.concept-overview{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.concept-overview h3{font-size:1.1rem;margin-bottom:1rem;color:var(--primary)}.concept-text p{color:var(--text-secondary);line-height:1.7;margin-bottom:.75rem}.concept-text p:last-child{margin-bottom:0}.code-explanation-section{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem;overflow-x:auto}.code-explanation-section h3{font-size:1.1rem;margin-bottom:1rem;color:var(--primary)}.code-with-comments{font-family:Fira Code,Consolas,Monaco,monospace;font-size:.85rem;line-height:1.8}.code-line{display:grid;grid-template-columns:40px 1fr auto;gap:1rem;padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.03);align-items:start}.code-line:hover{background:#6366f10d}.code-line.has-comment{background:#6366f105}.line-number{color:var(--text-secondary);opacity:.5;text-align:right;-webkit-user-select:none;user-select:none;font-size:.75rem;padding-top:2px}.line-code pre{margin:0;white-space:pre-wrap;word-break:break-word}.line-code code{color:var(--text-primary)}.line-comment{display:flex;align-items:flex-start;gap:.5rem;color:var(--success);font-size:.8rem;max-width:400px;font-family:system-ui,-apple-system,sans-serif}.comment-arrow{color:var(--primary);flex-shrink:0}.comment-text{line-height:1.5}.key-points-section{background:linear-gradient(135deg,#10b9811a,#6366f11a);border:1px solid var(--secondary);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.key-points-section h3{font-size:1.1rem;margin-bottom:1rem;color:var(--secondary)}.key-points-list{list-style:none;padding:0;margin:0}.key-points-list li{position:relative;padding-left:1.5rem;margin-bottom:.75rem;color:var(--text-primary);line-height:1.5}.key-points-list li:before{content:"✓";position:absolute;left:0;color:var(--secondary);font-weight:700}.key-points-list li:last-child{margin-bottom:0}.related-exercises{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem}.related-exercises h3{font-size:1.1rem;margin-bottom:1rem;color:var(--warning)}.related-exercises-list{display:flex;flex-direction:column;gap:.75rem}.related-exercise-btn{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:.5rem;cursor:pointer;transition:all .2s;text-align:left}.related-exercise-btn:hover{border-color:var(--primary);background:var(--bg-primary)}.related-exercise-btn .ex-icon{font-size:1.25rem}.related-exercise-btn .ex-title{flex:1;font-weight:500;color:var(--text-primary)}.related-exercise-btn .ex-difficulty{font-size:.75rem;font-weight:600;text-transform:uppercase}@media(max-width:900px){.code-line{grid-template-columns:30px 1fr}.line-comment{grid-column:2;max-width:100%;margin-top:.25rem;padding-left:.5rem;border-left:2px solid var(--primary)}}@media(max-width:600px){.lab-mode-toggle{flex-direction:column}.lab-mode-btn{min-width:100%}.explanation-grid{grid-template-columns:1fr}}.home-footer{margin-top:4rem;padding:2rem 0;border-top:1px solid var(--border);background:linear-gradient(180deg,transparent,rgba(99,102,241,.05))}.footer-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.footer-signature{display:flex;align-items:center;gap:.5rem;font-size:1rem}.signature-text{color:var(--text-secondary)}.signature-name{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-github-link{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:linear-gradient(135deg,#6366f11a,#10b9811a);border:2px solid var(--primary);border-radius:2rem;color:var(--text-primary);font-weight:600;font-size:1rem;text-decoration:none;transition:all .3s ease}.footer-github-link svg{width:24px;height:24px;fill:currentColor;transition:transform .3s}.footer-github-link:hover{background:linear-gradient(135deg,#6366f133,#10b98133);transform:translateY(-3px);box-shadow:0 8px 30px #6366f14d;color:var(--secondary)}.footer-github-link:hover svg{transform:rotate(-10deg) scale(1.1)}.easter-egg-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.easter-egg-content{position:relative;background:var(--bg-card);border:2px solid var(--primary);border-radius:1rem;padding:2rem;text-align:center;max-width:90vw;max-height:90vh;overflow:auto;animation:scaleIn .3s ease;box-shadow:0 0 50px #6366f180}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.easter-egg-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;background:var(--danger);color:#fff;border:none;font-size:1.25rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.easter-egg-close:hover{transform:scale(1.1);background:#f44}.solution-section{margin-top:1rem}.solution-toggle{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:.5rem}.solution-toggle:hover{transform:translateY(-2px);box-shadow:0 4px 15px #f59e0b66}.solution-content{margin-top:1rem;background:var(--bg-card);border:2px solid #f59e0b;border-radius:.75rem;overflow:hidden;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.solution-warning{background:linear-gradient(135deg,#f59e0b33,#d977061a);padding:.75rem 1rem;font-size:.85rem;color:#fbbf24;border-bottom:1px solid rgba(245,158,11,.3)}.solution-code{padding:1rem;margin:0;background:#1a1a2e;overflow-x:auto;font-family:Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;color:var(--text-primary)}.solution-code code{white-space:pre}.copy-solution-btn{width:100%;background:var(--bg-hover);border:none;border-top:1px solid var(--border);padding:.75rem;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.copy-solution-btn:hover{background:var(--primary);color:#fff}.smart-feedback-section{margin-top:1.5rem}.smart-feedback-btn{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:none;padding:.875rem 1.75rem;border-radius:.75rem;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:.5rem;box-shadow:0 4px 15px #8b5cf64d}.smart-feedback-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px #8b5cf680}.smart-feedback-btn:disabled{opacity:.7;cursor:not-allowed}.smart-feedback-content{margin-top:1rem;background:linear-gradient(135deg,#8b5cf61a,#6366f10d);border:1px solid rgba(139,92,246,.3);border-radius:.75rem;padding:1.25rem;animation:fadeSlideIn .3s ease}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.smart-feedback-content h4{color:#a78bfa;margin-bottom:1rem;font-size:1rem;display:flex;align-items:center;gap:.5rem}.smart-feedback-content ul{list-style:none;padding:0;margin:0}.smart-feedback-content li{padding:.75rem 1rem;margin-bottom:.5rem;background:var(--bg-card);border-radius:.5rem;border-left:3px solid #8b5cf6;font-size:.9rem;line-height:1.5}.smart-feedback-content li:last-child{margin-bottom:0}.sorting-visualizer{padding:1rem 0}.sorting-controls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end;background:var(--bg-card);padding:1.5rem;border-radius:1rem;margin-bottom:1.5rem;border:1px solid var(--border)}.sorting-controls .control-group{display:flex;flex-direction:column;gap:.5rem}.sorting-controls .control-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.sorting-controls select{padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--border);background:var(--bg-hover);color:var(--text-primary);font-size:.9rem;min-width:150px}.sorting-controls input[type=range]{width:120px;accent-color:var(--primary)}.sorting-controls .control-buttons{display:flex;gap:.5rem;margin-left:auto}.sound-toggle{background:var(--bg-hover);border:1px solid var(--border);padding:.5rem 1rem;border-radius:.5rem;font-size:1.25rem;cursor:pointer;transition:all .2s}.sound-toggle.active{background:var(--primary);border-color:var(--primary)}.btn-warning{background:var(--warning);color:#000}.btn-warning:hover{background:#d97706}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.algorithm-info{background:linear-gradient(135deg,#6366f11a,#10b9810d);border:1px solid var(--border);border-radius:1rem;padding:1.25rem;margin-bottom:1.5rem}.algorithm-info h3{color:var(--primary);margin-bottom:.5rem}.algorithm-info p{color:var(--text-secondary);font-size:.9rem;margin-bottom:.75rem}.complexity-badges{display:flex;gap:1rem}.complexity-badges .badge{padding:.4rem .8rem;border-radius:2rem;font-size:.8rem;font-weight:600}.complexity-badges .badge.time{background:#f59e0b33;color:#f59e0b}.complexity-badges .badge.space{background:#6366f133;color:#818cf8}.sorting-stats{display:flex;gap:2rem;margin-bottom:1.5rem}.sorting-stats .stat{display:flex;flex-direction:column;background:var(--bg-card);padding:1rem 2rem;border-radius:.75rem;border:1px solid var(--border)}.sorting-stats .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.sorting-stats .stat-value{font-size:1.75rem;font-weight:700;color:var(--primary)}.bars-container{display:flex;align-items:flex-end;justify-content:center;gap:1px;height:420px;background:var(--bg-card);border-radius:1rem;padding:1rem;border:1px solid var(--border);margin-bottom:1.5rem}.bars-container .bar{border-radius:2px 2px 0 0;transition:height .05s ease,background-color .1s ease}.sorting-legend{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.sorting-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.sorting-legend .legend-color{width:16px;height:16px;border-radius:3px}.pathfinding-visualizer{padding:1rem 0}.pathfinding-controls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end;background:var(--bg-card);padding:1.5rem;border-radius:1rem;margin-bottom:1.5rem;border:1px solid var(--border)}.pathfinding-controls .control-group{display:flex;flex-direction:column;gap:.5rem}.pathfinding-controls .control-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.pathfinding-controls select{padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--border);background:var(--bg-hover);color:var(--text-primary);font-size:.9rem;min-width:180px}.pathfinding-controls input[type=range]{width:120px;accent-color:var(--primary)}.pathfinding-controls .control-buttons{display:flex;gap:.5rem;margin-left:auto;flex-wrap:wrap}.optimal-badge{display:inline-block;padding:.4rem .8rem;border-radius:2rem;font-size:.8rem;font-weight:600}.optimal-badge.yes{background:#10b98133;color:#10b981}.optimal-badge.no{background:#ef444433;color:#ef4444}.pathfinding-stats{display:flex;gap:2rem;margin-bottom:1.5rem}.pathfinding-stats .stat{display:flex;flex-direction:column;background:var(--bg-card);padding:1rem 2rem;border-radius:.75rem;border:1px solid var(--border)}.pathfinding-stats .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.pathfinding-stats .stat-value{font-size:1.75rem;font-weight:700;color:var(--primary)}.pathfinding-grid{display:flex;flex-direction:column;background:var(--bg-card);border-radius:1rem;padding:1rem;border:1px solid var(--border);margin-bottom:1.5rem;overflow-x:auto}.pathfinding-grid .grid-row{display:flex}.pathfinding-grid .grid-cell{width:22px;height:22px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;transition:background-color .1s;-webkit-user-select:none;user-select:none}.pathfinding-grid .grid-cell:hover{background:var(--bg-hover)}.pathfinding-grid .cell-wall{background:#1e293b;border-color:#0f172a}[data-theme=light] .pathfinding-grid .cell-wall{background:#334155;border-color:#1e293b}.pathfinding-grid .cell-start{background:linear-gradient(135deg,#10b981,#059669)}.pathfinding-grid .cell-end{background:linear-gradient(135deg,#ef4444,#dc2626)}.pathfinding-grid .cell-visited{background:#6366f180;animation:visitedPulse .3s ease}@keyframes visitedPulse{0%{transform:scale(.3);background:#6366f1cc}to{transform:scale(1);background:#6366f180}}.pathfinding-grid .cell-path{background:linear-gradient(135deg,#fbbf24,#f59e0b);animation:pathGlow .3s ease}@keyframes pathGlow{0%{transform:scale(.5)}50%{transform:scale(1.2)}to{transform:scale(1)}}.pathfinding-legend{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.pathfinding-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.pathfinding-legend .legend-cell{width:22px;height:22px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:12px;border:1px solid var(--border)}.pathfinding-legend .legend-cell.cell-wall{background:#334155}.pathfinding-legend .legend-cell.cell-visited{background:#6366f180}.pathfinding-legend .legend-cell.cell-path{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.profile-page{padding:2rem;max-width:1000px;margin:0 auto}.setup-container{text-align:center;padding:3rem;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border)}.setup-container h1{font-size:2rem;margin-bottom:.5rem;color:var(--text-primary)}.setup-container>p{color:var(--text-secondary);margin-bottom:2rem}.setup-form{max-width:400px;margin:0 auto}.setup-form .form-group{margin-bottom:1.5rem;text-align:left}.setup-form label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.setup-form input[type=text]{width:100%;padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:1rem}.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.5rem}.avatar-option{width:100%;aspect-ratio:1;font-size:1.5rem;border-radius:8px;border:2px solid var(--border);background:var(--bg-primary);cursor:pointer;transition:all .2s}.avatar-option:hover{border-color:var(--accent);transform:scale(1.1)}.avatar-option.selected{border-color:var(--accent);background:#6366f133}.setup-btn{width:100%;padding:1rem;font-size:1.1rem;font-weight:600;border-radius:8px;border:none;background:linear-gradient(135deg,var(--accent),#818cf8);color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s}.setup-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.setup-btn:disabled{opacity:.5;cursor:not-allowed}.profile-header{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border);margin-bottom:2rem}.profile-avatar{font-size:4rem;width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:50%;border:3px solid var(--accent)}.profile-info h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.level-badge{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,var(--accent),#818cf8);color:#fff;border-radius:20px;font-weight:600;font-size:.9rem}.streak-display{margin-left:auto;text-align:center;padding:1rem 2rem;background:linear-gradient(135deg,#f97316,#ef4444);border-radius:12px}.streak-fire{font-size:2rem;display:block}.streak-count{font-size:2rem;font-weight:700;color:#fff;display:block}.streak-label{color:#fffc;font-size:.85rem}.xp-section{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.xp-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;color:var(--text-secondary)}.xp-header span:nth-child(2){color:var(--accent);font-weight:600}.xp-bar{height:12px;background:var(--bg-primary);border-radius:6px;overflow:hidden}.xp-fill{height:100%;background:linear-gradient(90deg,var(--accent),#818cf8,#a78bfa);border-radius:6px;transition:width .5s ease}.xp-text{text-align:center;margin-top:.5rem;font-size:.85rem;color:var(--text-secondary)}.stat-card{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;text-align:center;border:1px solid var(--border)}.stat-value{font-size:2rem;font-weight:700;color:var(--accent)}.stat-label{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem}.difficulty-section{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.difficulty-section h2{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.difficulty-bars{display:flex;flex-direction:column;gap:.75rem}.difficulty-item{display:flex;align-items:center;gap:1rem}.difficulty-label{display:flex;align-items:center;gap:.5rem;width:80px;font-size:.9rem;color:var(--text-primary)}.difficulty-dot{width:10px;height:10px;border-radius:50%}.difficulty-dot.easy{background:#22c55e}.difficulty-dot.medium{background:#f59e0b}.difficulty-dot.hard{background:#ef4444}.difficulty-bar{flex:1;height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden}.difficulty-fill{height:100%;border-radius:4px;transition:width .5s ease}.difficulty-fill.easy{background:#22c55e}.difficulty-fill.medium{background:#f59e0b}.difficulty-fill.hard{background:#ef4444}.difficulty-count{width:30px;text-align:right;font-weight:600;color:var(--text-primary)}.activity-section{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.activity-section h2{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.activity-calendar{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin-bottom:.75rem}.activity-day{aspect-ratio:1;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;cursor:default}.activity-day.active{background:#22c55e}.activity-legend{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.legend-boxes{display:flex;gap:3px}.legend-box{width:12px;height:12px;background:#22c55e;border-radius:2px}.badges-section{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.badges-section h2{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.badges-group{margin-bottom:1.5rem}.badges-group h3{margin:0 0 .75rem;font-size:.95rem;color:var(--text-secondary)}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.badge-card{background:var(--bg-primary);border-radius:10px;padding:1rem;text-align:center;border:1px solid var(--border);transition:transform .2s}.badge-card:hover{transform:translateY(-2px)}.badge-card.locked{opacity:.5}.badge-icon{font-size:2rem;display:block;margin-bottom:.5rem}.badge-name{font-weight:600;font-size:.9rem;color:var(--text-primary);margin-bottom:.25rem}.badge-desc{font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.badge-date{font-size:.7rem;color:var(--accent)}.recent-section{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border)}.recent-section h2{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.recent-list{display:flex;flex-direction:column;gap:.75rem}.recent-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-primary);border-radius:8px}.recent-status{font-size:1.25rem}.recent-info{flex:1}.recent-title{font-weight:500;color:var(--text-primary)}.recent-meta{display:flex;gap:.75rem;font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.difficulty-tag{padding:.1rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.difficulty-tag.easy{background:#22c55e33;color:#22c55e}.difficulty-tag.medium{background:#f59e0b33;color:#f59e0b}.difficulty-tag.hard{background:#ef444433;color:#ef4444}.recent-date{font-size:.8rem;color:var(--text-secondary)}.danger-zone{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;border:1px solid #ef4444}.danger-zone h2{margin:0 0 1rem;font-size:1rem;color:#ef4444}.reset-btn{padding:.75rem 1.5rem;background:transparent;border:1px solid #ef4444;color:#ef4444;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.reset-btn:hover{background:#ef4444;color:#fff}.reset-confirm p{color:var(--text-primary);margin-bottom:1rem}.reset-actions{display:flex;gap:1rem}.confirm-reset-btn{padding:.75rem 1.5rem;background:#ef4444;border:none;color:#fff;border-radius:8px;cursor:pointer;font-weight:500}.cancel-reset-btn{padding:.75rem 1.5rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;cursor:pointer}.profile-link{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary);padding:.35rem .75rem;border-radius:20px;border:1px solid var(--border);position:relative}.profile-link .profile-picture{border:2px solid var(--primary)}.profile-link .profile-avatar{font-size:1.25rem;width:auto;height:auto;background:none;border:none}.profile-level{font-size:.8rem;font-weight:600;color:var(--accent)}.problems-page{padding:2rem;max-width:1200px;margin:0 auto}.problems-header{margin-bottom:2rem}.problems-stats{display:flex;align-items:center;gap:3rem;padding:1.5rem 2rem;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border)}.stat-circle{position:relative;width:120px;height:120px}.circular-chart{width:100%;height:100%;transform:rotate(-90deg)}.circle-bg{fill:none;stroke:var(--bg-primary);stroke-width:3}.circle-fill{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .5s ease}.stat-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.stat-text .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);display:block}.stat-text .stat-label{font-size:.8rem;color:var(--text-secondary)}.difficulty-stats{display:flex;flex-direction:column;gap:.75rem}.diff-stat{display:flex;justify-content:space-between;min-width:150px;padding:.5rem 1rem;border-radius:8px;background:var(--bg-primary)}.diff-stat.easy .diff-label{color:#22c55e}.diff-stat.medium .diff-label{color:#f59e0b}.diff-stat.hard .diff-label{color:#ef4444}.diff-value{font-weight:600;color:var(--text-primary)}.problems-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-box{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.search-box input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.95rem}.search-box:after{content:"🔍";position:absolute;right:1rem;pointer-events:none}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-size:.9rem;color:var(--text-secondary)}.filter-group select{padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;cursor:pointer}.problems-list{background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);overflow:hidden}.problems-table-header{display:grid;grid-template-columns:60px 1fr 120px 100px 150px;padding:1rem 1.5rem;background:var(--bg-primary);font-weight:600;font-size:.85rem;color:var(--text-secondary);border-bottom:1px solid var(--border)}.problem-row{display:grid;grid-template-columns:60px 1fr 120px 100px 150px;padding:1rem 1.5rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .2s}.problem-row:hover{background:var(--bg-hover)}.problem-row:last-child{border-bottom:none}.problem-row.solved{background:#22c55e0d}.col-status{display:flex;align-items:center;font-size:1.1rem}.col-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:500}.problem-number{color:var(--text-secondary);font-weight:400}.col-category{display:flex;align-items:center;color:var(--text-secondary);font-size:.9rem}.col-difficulty{display:flex;align-items:center}.difficulty-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.difficulty-badge.easy{background:#22c55e26;color:#22c55e}.difficulty-badge.medium{background:#f59e0b26;color:#f59e0b}.difficulty-badge.hard{background:#ef444426;color:#ef4444}.col-tags{display:flex;align-items:center;gap:.5rem}.tag{padding:.2rem .5rem;background:var(--bg-primary);border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.no-problems{padding:3rem;text-align:center;color:var(--text-secondary)}.problem-solver{display:grid;grid-template-columns:1fr 1fr;gap:1rem;height:calc(100vh - 140px);padding:1rem}.problem-not-found{grid-column:1 / -1;text-align:center;padding:3rem}.problem-not-found button{margin-top:1rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer}.problem-panel{background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.problem-tabs{display:flex;border-bottom:1px solid var(--border)}.problem-tabs button{flex:1;padding:.75rem;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-weight:500;transition:all .2s}.problem-tabs button:hover{background:var(--bg-hover)}.problem-tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.problem-content{flex:1;overflow-y:auto;padding:1.5rem}.problem-header h1{margin:0 0 .75rem;font-size:1.4rem;color:var(--text-primary)}.problem-meta{display:flex;gap:.75rem;margin-bottom:1.5rem}.category-badge{padding:.25rem .75rem;background:var(--bg-primary);color:var(--text-secondary);border-radius:12px;font-size:.8rem}.solved-badge{padding:.25rem .75rem;background:#22c55e26;color:#22c55e;border-radius:12px;font-size:.8rem}.problem-description{margin-bottom:1.5rem;line-height:1.7;color:var(--text-primary)}.problem-examples{margin-bottom:1.5rem}.problem-examples h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.example{background:var(--bg-primary);border-radius:8px;padding:1rem;margin-bottom:.75rem}.example-input,.example-output,.example-explanation{margin-bottom:.5rem;font-size:.9rem}.example code{background:var(--bg-secondary);padding:.2rem .5rem;border-radius:4px;font-family:Fira Code,monospace}.example-explanation{color:var(--text-secondary);font-style:italic}.problem-tags h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary)}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.problem-hints{margin-top:1.5rem}.problem-hints h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.hint{margin-bottom:.5rem}.hint button{padding:.5rem 1rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;cursor:pointer;font-size:.85rem}.hint button:hover{background:var(--bg-hover)}.hint p{margin:0;padding:.5rem;background:#6366f11a;border-radius:6px;color:var(--text-primary);font-size:.9rem}.solution-tab h3{margin:0 0 1rem}.solution-code{background:var(--bg-primary);padding:1rem;border-radius:8px;overflow-x:auto;font-family:Fira Code,monospace;font-size:.9rem;line-height:1.6}.solution-warning{text-align:center;padding:2rem}.solution-warning p{margin-bottom:.5rem;color:var(--text-secondary)}.solution-warning p:first-child{font-size:1.1rem;color:#f59e0b}.solution-warning button{margin-top:1rem;padding:.75rem 1.5rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;cursor:pointer}.submissions-tab{color:var(--text-secondary)}.submission{background:var(--bg-primary);border-radius:8px;overflow:hidden}.submission-header{display:flex;justify-content:space-between;padding:.75rem 1rem;background:#22c55e1a;border-bottom:1px solid var(--border)}.submission .status{color:#22c55e;font-weight:500}.submission-code{padding:1rem;margin:0;font-family:Fira Code,monospace;font-size:.85rem;overflow-x:auto}.editor-panel{background:#1a1a2e;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 4px 20px #0000004d}[data-theme=light] .editor-panel{background:#fff;border:1px solid #e2e8f0;box-shadow:0 4px 20px #00000014}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#12121f;border-bottom:1px solid #2d2d44;color:var(--text-secondary);font-size:.9rem}[data-theme=light] .editor-header{background:#f8fafc;border-bottom-color:#e2e8f0;color:#475569}.editor-footer{background:#12121f}[data-theme=light] .editor-footer{background:#f8fafc;border-top:1px solid #e2e8f0}.editor-actions .reset-btn{padding:.4rem .75rem;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s}.editor-actions .reset-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-tabs{display:flex;align-items:center;gap:.5rem}.editor-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#1a1a2e;border-radius:6px 6px 0 0;font-size:.85rem;color:#94a3b8;border:1px solid #2d2d44;border-bottom:none;margin-bottom:-1px}.editor-tab.active{background:#1a1a2e;color:#e2e8f0;border-bottom:1px solid #1a1a2e}[data-theme=light] .editor-tab{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}[data-theme=light] .editor-tab.active{background:#fff;color:#1e293b;border-bottom-color:#fff}.file-icon{font-size:.9rem}.code-editor-container{flex:1;display:flex;background:#1a1a2e;overflow:hidden;position:relative}[data-theme=light] .code-editor-container{background:#fff;border:1px solid #e5e7eb}.line-numbers{padding:1rem 0;background:#12121f;color:#6b7280;font-family:Fira Code,Consolas,Monaco,monospace;font-size:.9rem;line-height:1.6;text-align:right;-webkit-user-select:none;user-select:none;overflow:hidden;min-width:50px;border-right:1px solid #2d2d44}[data-theme=light] .line-numbers{background:#f8fafc;color:#94a3b8;border-right-color:#e2e8f0}.line-number{padding:0 .75rem;height:1.6em}.code-textarea{flex:1;padding:1rem;background:transparent;border:none;color:#e2e8f0;font-family:Fira Code,Consolas,Monaco,monospace;font-size:.9rem;line-height:1.6;resize:none;outline:none;overflow-y:auto;white-space:pre;-moz-tab-size:2;tab-size:2}[data-theme=light] .code-textarea{color:#1e293b;background:#fff}.code-textarea::placeholder{color:#6b7280}[data-theme=light] .code-textarea::placeholder{color:#94a3b8}.code-textarea::-webkit-scrollbar{width:10px;height:10px}.code-textarea::-webkit-scrollbar-track{background:#1a1a2e}.code-textarea::-webkit-scrollbar-thumb{background:#3d3d5c;border-radius:5px}.code-textarea::-webkit-scrollbar-thumb:hover{background:#4d4d6c}[data-theme=light] .code-textarea::-webkit-scrollbar-track{background:#f8fafc}[data-theme=light] .code-textarea::-webkit-scrollbar-thumb{background:#cbd5e1}.console-panel{border-top:1px solid #2d2d44;background:#12121f}[data-theme=light] .console-panel{border-top-color:#e2e8f0;background:#f8fafc}.console-header{display:flex;border-bottom:1px solid #2d2d44;background:#0f0f1a}[data-theme=light] .console-header{border-bottom-color:#e2e8f0;background:#f1f5f9}.console-tab{padding:.5rem 1rem;font-size:.8rem;color:#94a3b8;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}[data-theme=light] .console-tab{color:#64748b}.console-tab:hover{color:#e2e8f0;background:#ffffff0d}[data-theme=light] .console-tab:hover{color:#1e293b;background:#0000000d}.console-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.console-output{padding:1rem;max-height:180px;overflow-y:auto;font-family:Fira Code,monospace;font-size:.85rem;background:#1a1a2e}[data-theme=light] .console-output{background:#fff}.console-output pre{margin:0;color:#94a3b8}[data-theme=light] .console-output pre{color:#64748b}.test-results{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.test-case{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--bg-secondary);border-radius:8px;font-size:.85rem;border:1px solid var(--border)}.test-case.passed{border-left:4px solid #22c55e;background:#22c55e0d}.test-case.failed{border-left:4px solid #ef4444;background:#ef44440d}.test-status{font-size:1.1rem;flex-shrink:0}.test-details{display:flex;flex-direction:column;gap:.25rem}.test-label{font-weight:600;color:var(--text-primary)}.test-input,.test-expected,.test-actual{color:var(--text-secondary);font-size:.8rem}.test-input code,.test-expected code,.test-actual code{background:var(--bg-primary);padding:.1rem .4rem;border-radius:4px;font-family:Fira Code,monospace;color:var(--text-primary)}.test-actual{color:#ef4444}.editor-buttons{display:flex;gap:.75rem;padding:1rem;background:var(--bg-secondary);border-top:1px solid var(--border)}.run-btn,.submit-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s}.run-btn{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary)}.run-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.submit-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;color:#fff;box-shadow:0 2px 8px #22c55e33}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #22c55e4d}.submit-btn:disabled,.run-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.success-modal{grid-column:1 / -1;display:flex;align-items:center;justify-content:center}.success-content{text-align:center;background:var(--bg-secondary);border-radius:16px;padding:3rem;border:1px solid var(--border);max-width:500px;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.success-icon{font-size:4rem;margin-bottom:1rem}.success-content h2{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.success-content>p{color:var(--text-secondary);margin-bottom:1.5rem}.success-stats{display:flex;justify-content:center;gap:2rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-primary);border-radius:8px}.success-stats .stat{text-align:center}.success-stats .label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.25rem}.success-stats .value{font-size:1.25rem;font-weight:700;color:var(--accent)}.new-badges{margin-bottom:1.5rem}.new-badges h3{margin:0 0 .75rem;font-size:1rem;color:#f59e0b}.badges-row{display:flex;justify-content:center;gap:1rem}.badge-earned{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1rem;background:var(--bg-primary);border-radius:8px;animation:badgePop .5s ease}@keyframes badgePop{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.badge-earned .badge-icon{font-size:2rem}.badge-earned .badge-name{font-size:.8rem;color:var(--text-secondary)}.success-actions{display:flex;gap:1rem;justify-content:center}.success-actions .btn-primary{padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--accent),#818cf8);border:none;color:#fff;border-radius:8px;cursor:pointer;font-weight:600}.success-actions .btn-secondary{padding:.75rem 1.5rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;cursor:pointer}@media(max-width:1024px){.problem-solver{grid-template-columns:1fr;height:auto}.problem-panel,.editor-panel{min-height:400px}.problems-table-header,.problem-row{grid-template-columns:50px 1fr 100px}.col-category,.col-tags{display:none}}@media(max-width:768px){.profile-header{flex-direction:column;text-align:center}.streak-display{margin-left:0;margin-top:1rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.problems-stats{flex-direction:column;align-items:center}.avatar-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.container{padding:0 .75rem}.home-page h1{font-size:2rem}.home-page p{font-size:1rem}.feature-cards{grid-template-columns:1fr;gap:1rem}.feature-card{padding:1.25rem}.sorting-visualizer{padding:1rem}.sorting-controls{flex-direction:column;gap:.75rem;align-items:stretch}.sorting-controls select,.sorting-controls input,.sorting-controls button{width:100%;min-height:44px}.bars-container{height:200px;padding:.5rem}.complexity-info{flex-direction:column;gap:.5rem;font-size:.85rem}.pathfinding-visualizer{padding:1rem}.pathfinding-controls{flex-direction:column;gap:.75rem}.pathfinding-controls select,.pathfinding-controls button{width:100%;min-height:44px}.grid-container{overflow-x:auto;padding-bottom:1rem}.pathfinding-grid{min-width:300px}.grid-cell{width:18px!important;height:18px!important}.legend{flex-wrap:wrap;justify-content:center;gap:.5rem;font-size:.75rem}.tree-container{padding:.5rem}.tree-controls{flex-direction:column;gap:.75rem}.tree-controls input,.tree-controls button,.tree-controls select{width:100%;min-height:44px}.traversal-controls{flex-direction:column;gap:.5rem}.tree-visualization{overflow-x:auto;min-height:250px}.graph-visualizer{padding:1rem}.graph-controls{flex-direction:column;gap:.75rem}.graph-controls input,.graph-controls button{width:100%;min-height:44px}.graph-container{height:300px;overflow:hidden}.floyd-visualizer{padding:1rem}.floyd-controls{flex-direction:column;gap:.75rem}.matrix-container{overflow-x:auto;padding-bottom:1rem}.matrix{font-size:.75rem}.matrix td{padding:.25rem .5rem;min-width:35px}.huffman-visualizer{padding:1rem}.huffman-controls{flex-direction:column;gap:.75rem}.huffman-controls input,.huffman-controls button{width:100%;min-height:44px}.huffman-tree-container{overflow-x:auto}.encoding-table{font-size:.85rem}.codelab-container{flex-direction:column;gap:1rem}.sidebar{width:100%;max-height:300px;overflow-y:auto}.main-content{padding:1rem}.code-editor-section{flex-direction:column}.practice-area{min-height:200px}.problems-page{padding:1rem}.problems-header{flex-direction:column;gap:1rem;align-items:stretch}.filter-bar{flex-direction:column;gap:.75rem}.filter-bar select,.filter-bar input{width:100%;min-height:44px}.problems-table-header,.problem-row{grid-template-columns:40px 1fr 80px;font-size:.85rem;padding:.75rem .5rem}.problem-solver{flex-direction:column}.problem-panel,.editor-panel{width:100%;min-height:350px;max-height:500px}.problem-content{padding:1rem}.code-editor-wrapper{font-size:.85rem}.line-numbers{padding:.75rem .25rem;min-width:30px;font-size:.75rem}.code-textarea{padding:.75rem;font-size:.85rem}.editor-actions{flex-direction:column;gap:.5rem}.editor-actions button{width:100%;min-height:44px}.profile-page{padding:1rem}.profile-header{padding:1.25rem}.avatar-section .avatar{font-size:3rem}.user-info h1{font-size:1.5rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem}.stat-card{padding:1rem}.stat-value{font-size:1.5rem}.badges-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.badge-card{padding:.75rem}.badge-icon{font-size:1.5rem}.activity-calendar{overflow-x:auto}.calendar-grid{min-width:350px}.avatar-grid{grid-template-columns:repeat(3,1fr)}button,.btn,input[type=text],input[type=number],select,textarea{min-height:44px;font-size:16px}.success-modal-content{width:95%;padding:1.5rem;margin:1rem}.success-icon{font-size:3rem}.xp-gained{font-size:1.25rem}}@media(max-width:360px){.navbar-brand{font-size:1rem}.navbar-nav a{padding:.75rem 1rem;font-size:.9rem}.home-page h1{font-size:1.75rem}.grid-cell{width:14px!important;height:14px!important}.stats-grid,.badges-grid{grid-template-columns:1fr}}[data-theme=light] .code-explanation-section{background:#f8fafc;border-color:#e2e8f0}[data-theme=light] .code-with-comments{background:#f1f5f9;border-radius:.5rem;padding:1rem}[data-theme=light] .code-line{border-bottom-color:#0000000d}[data-theme=light] .code-line:hover{background:#6366f114}[data-theme=light] .code-line.has-comment{background:#6366f10a}[data-theme=light] .line-code code{color:#1e293b}[data-theme=light] .line-comment{color:#059669}[data-theme=light] .line-number{color:#64748b}[data-theme=light] .concept-overview{background:#f8fafc;border-color:#e2e8f0}[data-theme=light] .concept-text{color:#334155}[data-theme=light] .key-points-section{background:linear-gradient(135deg,#10b98114,#6366f114);border-color:#d1d5db}[data-theme=light] .key-points-list li{color:#1e293b}.gnde-visualizer{padding:1rem 0}.gnde-algorithm-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.5rem 0}.algo-btn{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--bg-card);border:2px solid var(--border);border-radius:12px;transition:all .2s;cursor:pointer}.algo-btn:hover{border-color:var(--primary);transform:translateY(-2px)}.algo-btn.active{border-color:var(--primary);background:#6366f11a}.algo-icon{font-size:2rem;margin-bottom:.5rem}.algo-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.algo-desc{font-size:.75rem;color:var(--text-secondary)}.gnde-params{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-card);border-radius:8px;margin-bottom:1rem}.gnde-params label{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.gnde-params input[type=number]{width:80px;padding:.5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-dark);color:var(--text-primary);font-size:1rem}.gnde-main{display:grid;grid-template-columns:400px 1fr;gap:1.5rem;margin:1.5rem 0}@media(max-width:900px){.gnde-main{grid-template-columns:1fr}}.gnde-code-panel{background:var(--bg-card);border-radius:12px;padding:1rem;overflow:hidden}.gnde-code-panel h3{margin-bottom:1rem;color:var(--text-primary)}.gnde-code{font-family:Fira Code,Consolas,monospace;font-size:.8rem;line-height:1.6}.gnde-code .code-line{display:flex;align-items:flex-start;padding:2px 8px;border-radius:4px;transition:background .2s}.gnde-code .code-line.active{background:#6366f14d;border-left:3px solid var(--primary)}.gnde-code .line-num{width:24px;color:var(--text-secondary);flex-shrink:0;-webkit-user-select:none;user-select:none}.gnde-code code{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.gnde-viz-panel{display:flex;flex-direction:column;gap:1.5rem}.gnde-tree-viz{background:var(--bg-card);border-radius:12px;padding:1rem;border:2px solid var(--border)}.gnde-tree-viz h4{margin-bottom:1rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;font-size:1rem}.gnde-tree-viz svg{width:100%;min-height:200px;background:linear-gradient(135deg,#6366f10d,#10b9810d);border-radius:8px}.gnde-tree-viz line{stroke:var(--text-secondary);stroke-width:2;stroke-linecap:round}.tree-node-current{animation:pulse-node .8s ease-in-out infinite}@keyframes pulse-node{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 8px var(--secondary))}}.tree-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-secondary)}.legend-item .dot{width:12px;height:12px;border-radius:50%;border:2px solid}.legend-item .dot.current{background:var(--secondary);border-color:var(--secondary)}.legend-item .dot.visited{background:var(--bg-hover);border-color:var(--text-secondary)}.legend-item .dot.pending{background:var(--bg-card);border-color:var(--border)}.gnde-nodos{background:var(--bg-card);border-radius:12px;padding:1rem}.gnde-nodos h3{margin-bottom:1rem;color:var(--text-primary)}.nodos-array{display:flex;flex-wrap:wrap;gap:.5rem}.nodos-cell{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:.5rem;background:var(--bg-hover);border:2px solid var(--border);border-radius:8px;transition:all .3s}.nodos-cell.filled{background:#6366f126;border-color:var(--primary)}.nodos-cell.highlight{background:#10b9814d;border-color:var(--secondary);transform:scale(1.1);box-shadow:0 0 12px #10b98166}.nodos-index{font-size:.7rem;color:var(--text-secondary)}.nodos-value{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.gnde-matrix{background:var(--bg-card);border-radius:12px;padding:1rem;overflow-x:auto}.gnde-matrix h3{margin-bottom:1rem;color:var(--text-primary)}.matrix-container{overflow-x:auto}.adjacency-table{border-collapse:collapse;font-family:Fira Code,monospace;font-size:.85rem}.adjacency-table th,.adjacency-table td{width:36px;height:36px;text-align:center;border:1px solid var(--border)}.adjacency-table th{background:var(--bg-hover);color:var(--text-secondary);font-weight:600}.matrix-cell{background:var(--bg-dark);color:var(--text-secondary);transition:all .3s}.matrix-cell.true{background:#6366f140;color:var(--primary);font-weight:700}.matrix-cell.highlight{background:#10b98166!important;color:#fff!important;box-shadow:inset 0 0 8px #10b98180;animation:pulse-cell .5s ease}@keyframes pulse-cell{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.gnde-description{background:var(--bg-card);border-radius:12px;padding:1rem}.step-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.step-counter{font-size:.85rem;color:var(--text-secondary);font-weight:600}.numnodos-counter{background:linear-gradient(135deg,#6366f133,#8b5cf633);color:var(--primary);padding:.25rem .75rem;border-radius:20px;font-size:.9rem;font-weight:700;font-family:Consolas,Monaco,monospace;border:1px solid rgba(99,102,241,.3)}.tree-highlight{background:#f59e0b33;color:var(--warning);padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.step-desc{font-size:1rem;color:var(--text-primary);line-height:1.5}.gnde-controls{background:var(--bg-card);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:1rem}.control-buttons{display:flex;justify-content:center;gap:.5rem}.ctrl-btn{width:48px;height:48px;border-radius:50%;background:var(--bg-hover);border:2px solid var(--border);font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.ctrl-btn:hover:not(:disabled){background:var(--primary);border-color:var(--primary);transform:scale(1.1)}.ctrl-btn.play{width:56px;height:56px;font-size:1.4rem;background:var(--primary);border-color:var(--primary)}.ctrl-btn.play:hover:not(:disabled){background:var(--primary-dark)}.speed-control{display:flex;align-items:center;justify-content:center;gap:1rem}.speed-control label{color:var(--text-secondary);font-size:.85rem}.speed-control input[type=range]{width:150px;accent-color:var(--primary)}.speed-control span{color:var(--text-primary);font-weight:600;min-width:40px}.progress-bar{height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:3px;transition:width .3s ease}[data-theme=light] .gnde-code .code-line.active{background:#6366f126}[data-theme=light] .nodos-cell.filled{background:#6366f11a}[data-theme=light] .nodos-cell.highlight{background:#10b98133}[data-theme=light] .matrix-cell.true{background:#6366f126}[data-theme=light] .matrix-cell.highlight{background:#10b9814d!important}.profile-picture{position:relative;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.profile-picture.clickable{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.profile-picture.clickable:hover{transform:scale(1.05);box-shadow:var(--shadow-primary)}.profile-picture.clickable:focus{outline:2px solid var(--primary);outline-offset:2px}.profile-picture-xs{width:24px;height:24px;font-size:.65rem}.profile-picture-sm{width:32px;height:32px;font-size:.75rem}.profile-picture-md{width:40px;height:40px;font-size:.9rem}.profile-picture-lg{width:64px;height:64px;font-size:1.25rem}.profile-picture-xl{width:100px;height:100px;font-size:2rem}.profile-picture-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:2}.profile-picture-initials{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;text-transform:uppercase;-webkit-user-select:none;user-select:none;z-index:1}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-secondary);border-radius:16px;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-modal{padding:2rem}.modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.auth-header p{color:var(--text-secondary);font-size:.95rem}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:#fff;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-weight:500;color:#333;cursor:pointer;transition:all .2s ease}.google-signin-btn:hover:not(:disabled){background:#f8f8f8;border-color:#ccc;box-shadow:0 2px 8px #0000001a}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;margin:1.5rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-divider span{padding:0 1rem;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.form-group input{padding:.875rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:1rem;color:var(--text-primary);transition:all .2s ease}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-group input::placeholder{color:var(--text-secondary)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.auth-submit-btn{padding:.875rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.auth-submit-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.auth-footer p{color:var(--text-secondary);font-size:.9rem}.auth-switch-btn{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;font-size:.9rem}.auth-switch-btn:hover{text-decoration:underline}.auth-prompt{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:12px;padding:1.5rem;text-align:center}.auth-prompt-buttons{display:flex;gap:.75rem;justify-content:center}.auth-prompt-btn{padding:.625rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.auth-prompt-btn.primary{background:var(--primary);color:#fff;border:none}.auth-prompt-btn.primary:hover{background:var(--primary-hover)}.auth-prompt-btn.secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.auth-prompt-btn.secondary:hover{background:var(--bg-tertiary)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--bg-tertiary)}.user-dropdown{position:relative}.user-dropdown-toggle{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:9999px;cursor:pointer;transition:all .2s ease}.user-dropdown-toggle:hover{background:var(--bg-tertiary)}.user-dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:100;overflow:hidden}.user-dropdown-header{padding:1rem;border-bottom:1px solid var(--border-color)}.user-dropdown-name{font-weight:600;color:var(--text-primary)}.user-dropdown-email{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.user-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;font-size:.9rem;color:var(--text-primary);cursor:pointer;transition:background .2s ease}.user-dropdown-item:hover{background:var(--bg-tertiary)}.user-dropdown-item.danger{color:#ef4444}.user-dropdown-item.danger:hover{background:#ef44441a}.reputation-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;font-size:.75rem;font-weight:600;border-radius:9999px}@media(max-width:480px){.auth-modal{padding:1.5rem}.auth-header h2{font-size:1.25rem}.google-signin-btn{padding:.75rem;font-size:.9rem}}.community-hub{min-height:100vh;padding-bottom:2rem;background:var(--bg-primary)}.community-hero{background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);padding:3rem 2rem;border-radius:16px;margin-bottom:2rem;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;box-shadow:var(--shadow-lg)}.hero-content h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.hero-content p{font-size:1.1rem;opacity:.9;margin-bottom:1.5rem}.hero-actions{display:flex;gap:1rem}.hero-user-welcome{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.hero-user-welcome span{font-size:1.1rem}.hero-stats{display:flex;gap:2rem}.stat-item{text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700}.stat-label{font-size:.9rem;opacity:.9}.btn-primary{padding:.75rem 1.5rem;background:#fff;color:var(--primary);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.btn-secondary{padding:.75rem 1.5rem;background:transparent;color:#fff;border:2px solid white;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#ffffff1a}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:2rem}.action-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:12px;text-decoration:none;transition:all .2s ease;box-shadow:var(--shadow-sm)}.action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary)}.action-icon{font-size:2rem}.action-text h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.action-text p{font-size:.85rem;color:var(--text-secondary)}.community-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem}@media(max-width:1024px){.community-grid{grid-template-columns:1fr}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.section-header a{font-size:.9rem;color:var(--primary);text-decoration:none}.section-header a:hover{text-decoration:underline}.featured-section,.trending-section,.leaderboard-section,.categories-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.featured-list{display:flex;flex-direction:column;gap:1rem}.featured-card{padding:1rem;background:var(--bg-tertiary);border-radius:8px;text-decoration:none;transition:all .2s ease}.featured-card:hover{transform:translate(4px);background:var(--bg-hover)}.featured-header{display:flex;gap:.5rem;margin-bottom:.5rem}.difficulty-badge{font-size:.75rem;font-weight:600;text-transform:capitalize}.category-tag{font-size:.75rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.125rem .5rem;border-radius:4px}.featured-card h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.featured-card p{font-size:.85rem;color:var(--text-secondary);margin-bottom:.75rem}.featured-stats{display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary)}.trending-list{display:flex;flex-direction:column;gap:.5rem}.trending-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:8px;text-decoration:none;transition:all .2s ease}.trending-item:hover{background:var(--bg-hover)}.trending-rank{font-size:.85rem;font-weight:600;color:var(--text-secondary);min-width:30px}.trending-info{flex:1;min-width:0}.trending-info h4{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trending-meta{display:flex;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.trending-votes{font-size:.85rem;color:var(--text-secondary)}.leaderboard-list{display:flex;flex-direction:column;gap:.5rem}.leaderboard-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:8px;text-decoration:none;transition:all .2s ease}.leaderboard-item:hover{background:var(--bg-hover)}.rank{font-size:1.25rem;min-width:40px;text-align:center}.rank-1,.rank-2,.rank-3{font-size:1.5rem}.user-info{display:flex;align-items:center;gap:.5rem;flex:1}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;font-size:.85rem}.user-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.user-reputation{font-size:.85rem;font-weight:600;color:var(--warning)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}.category-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-tertiary);border-radius:8px;text-decoration:none;transition:all .2s ease}.category-card:hover{transform:translateY(-2px);background:var(--bg-hover)}.category-icon{font-size:1.5rem}.category-name{font-size:.85rem;font-weight:500;color:var(--text-primary)}.loading-skeleton{display:flex;flex-direction:column;gap:.75rem}.skeleton-card{height:120px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-row{height:48px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.empty-state{text-align:center;padding:2rem}.empty-state p{color:var(--text-secondary);margin-bottom:1rem}@media(max-width:768px){.community-hero{padding:2rem 1.5rem;flex-direction:column;text-align:center}.hero-content h1{font-size:1.75rem}.hero-actions{justify-content:center}.hero-stats{width:100%;justify-content:center}.quick-actions{grid-template-columns:1fr}}.problem-library{padding-bottom:2rem}.library-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.library-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.submit-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s ease}.submit-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.filters-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px}.search-box{display:flex;align-items:center;gap:.5rem;flex:1;min-width:200px;padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px}.search-box svg{color:var(--text-secondary);flex-shrink:0}.search-box input{flex:1;background:transparent;border:none;font-size:.95rem;color:var(--text-primary)}.search-box input:focus{outline:none}.search-box input::placeholder{color:var(--text-secondary)}.filter-group{display:flex;flex-wrap:wrap;gap:.5rem}.filter-group select{padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;color:var(--text-primary);cursor:pointer}.filter-group select:focus{outline:none;border-color:var(--primary)}.clear-filters{padding:.5rem 1rem;background:transparent;color:var(--text-secondary);border:1px dashed var(--border-color);border-radius:8px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.clear-filters:hover{color:var(--danger);border-color:var(--danger)}.results-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem}.results-info span{font-size:.9rem;color:var(--text-secondary)}.refresh-btn{padding:.375rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.refresh-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.problem-card{display:flex;justify-content:space-between;gap:1.5rem;padding:1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;text-decoration:none;transition:all .2s ease}.problem-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000001a}.problem-main{flex:1;min-width:0}.problem-header{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.difficulty-badge{padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:600;color:#fff;text-transform:capitalize}.category-badge{padding:.25rem .625rem;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem;font-weight:500;color:var(--text-secondary)}.type-badge{padding:.25rem .625rem;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.problem-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.problem-description{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.75rem}.problem-tags{display:flex;flex-wrap:wrap;gap:.375rem}.tag{padding:.125rem .5rem;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.tag.more{background:var(--primary);color:#fff}.problem-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;min-width:140px}.problem-stats{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.stat{font-size:.85rem;color:var(--text-secondary)}.problem-author{text-align:right;font-size:.85rem;color:var(--text-secondary)}.problem-author .date{display:block;font-size:.75rem;margin-top:.25rem}.bookmark-btn{padding:.5rem;background:var(--bg-tertiary);border:none;border-radius:8px;font-size:1.25rem;cursor:pointer;transition:all .2s ease}.bookmark-btn:hover{transform:scale(1.1)}.bookmark-btn.active{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.problem-card-skeleton{height:160px;background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:12px}.empty-state{text-align:center;padding:3rem;background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:12px}.empty-icon{display:block;font-size:3rem;margin-bottom:1rem}.empty-state h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}.load-more-btn{padding:.875rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .2s ease;margin:1rem auto 0;display:block}.load-more-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary)}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.library-header{flex-direction:column;gap:1rem;align-items:stretch;text-align:center}.filters-bar{flex-direction:column;align-items:stretch}.filter-group{justify-content:center}.problem-card{flex-direction:column}.problem-meta{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;min-width:100%}.problem-author{text-align:left}}.submit-problem{max-width:900px;margin:0 auto;padding-bottom:2rem}.auth-required{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px}.auth-buttons{display:flex;gap:1rem;justify-content:center}.submit-header{text-align:center;margin-bottom:2rem}.submit-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.submit-header p{color:var(--text-secondary)}.submit-form{display:flex;flex-direction:column;gap:2rem}.form-error{padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444}.form-section{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm)}.form-section h2{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-secondary)}.section-note{font-size:.85rem;color:var(--text-tertiary);margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:8px;font-size:.95rem;color:var(--text-primary);transition:all .2s ease}.form-group select{-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' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}.form-group select option{background:var(--bg-card);color:var(--text-primary);padding:.75rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.code-input{font-family:Consolas,Monaco,monospace;font-size:.9rem;background:var(--bg-tertiary);border-color:var(--border-primary)}.char-count{display:block;text-align:right;font-size:.75rem;color:var(--text-tertiary);margin-top:.25rem}.helper-text{display:block;font-size:.8rem;color:var(--text-tertiary);margin-top:.25rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.checkbox-label{display:flex!important;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary)}.choices-section{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px}.choice-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.choice-row input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}.choice-row input[type=text]{flex:1;padding:.625rem 1rem;background:var(--bg-input);border:1px solid var(--border-primary);color:var(--text-primary)}.test-case{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem;margin-bottom:1rem}.test-case-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:500;color:var(--text-secondary)}.remove-btn{background:transparent;border:none;color:var(--danger);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background .2s ease}.remove-btn:hover{background:#ef44441a}.test-case-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.test-case-fields .form-group:last-child{grid-column:1 / -1}.add-test-case-btn{display:block;width:100%;padding:.75rem;background:transparent;border:1px dashed var(--border-primary);border-radius:8px;color:var(--primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.add-test-case-btn:hover{background:var(--primary-light);border-color:var(--primary)}.form-actions{display:flex;justify-content:flex-end;gap:1rem}.btn-primary{padding:.875rem 2rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.875rem 2rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-primary);color:var(--text-primary)}@media(max-width:768px){.submit-problem{padding:0 1rem 2rem}.form-row,.test-case-fields{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.problem-detail{max-width:900px;margin:0 auto;padding-bottom:2rem}.problem-detail.loading,.problem-detail.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.problem-header{margin-bottom:1.5rem}.problem-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.problem-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.problem-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--text-secondary);font-size:.9rem}.author-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text-primary)}.author-link:hover{color:var(--primary)}.author-avatar-small{width:24px;height:24px;border-radius:50%;object-fit:cover}.author-avatar-small-placeholder{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:600}.meta-divider{color:var(--border-color)}.problem-actions-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem}.rating-section{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.rating-label{font-size:.9rem;color:var(--text-secondary)}.rating-stars{display:flex;gap:.25rem}.star-btn{background:none;border:none;font-size:1.75rem;cursor:pointer;color:var(--border-color);transition:all .15s ease;padding:.125rem;line-height:1}.star-btn:hover,.star-btn.hovered{color:#fbbf24;transform:scale(1.15)}.star-btn.active{color:#f59e0b}.star-btn:disabled{cursor:not-allowed;opacity:.7}.rating-info{font-size:.85rem;color:var(--text-secondary);margin-left:.5rem}.action-buttons{display:flex;gap:.5rem}.bookmark-btn,.share-btn{padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.bookmark-btn:hover,.share-btn:hover{background:var(--bg-hover)}.bookmark-btn.active{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;border-color:transparent}.delete-problem-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#dc2626,#b91c1c);border:1px solid transparent;border-radius:8px;font-size:.9rem;color:#fff;cursor:pointer;transition:all .2s ease}.delete-problem-btn:hover{background:linear-gradient(135deg,#ef4444,#dc2626);transform:translateY(-1px)}.delete-problem-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.problem-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.content-section{margin-bottom:1.5rem}.content-section:last-child{margin-bottom:0}.content-section h2{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.description-text{font-size:.95rem;line-height:1.7;color:var(--text-primary);white-space:pre-wrap}.code-block{background:var(--bg-tertiary);border-radius:8px;padding:1rem;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:.9rem;line-height:1.5}.code-block code{color:var(--text-primary)}.test-case-display{background:var(--bg-tertiary);border-radius:8px;padding:1rem;margin-bottom:.75rem}.test-case-row{display:flex;gap:.75rem;margin-bottom:.5rem}.test-case-row:last-child{margin-bottom:0}.test-case-row strong{min-width:80px;color:var(--text-secondary)}.test-case-row code{background:var(--bg-secondary);padding:.125rem .5rem;border-radius:4px;font-size:.9rem}.choices-display{display:flex;flex-direction:column;gap:.75rem}.choice-option{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;transition:all .2s ease}.choice-option.correct{background:#22c55e1a;border-color:var(--success)}.choice-letter{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;font-weight:600;color:var(--text-secondary)}.choice-option.correct .choice-letter{background:var(--success);color:#fff}.solution-section{border:1px solid var(--border-color);border-radius:8px;padding:1rem;background:var(--bg-tertiary)}.solution-header{display:flex;justify-content:space-between;align-items:center}.solution-header h2{border:none;padding:0;margin:0}.toggle-solution-btn{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.toggle-solution-btn:hover{background:var(--bg-hover)}.solution-content{margin-top:1rem}.problem-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.tag{padding:.375rem .75rem;background:var(--bg-tertiary);border-radius:9999px;font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:all .2s ease}.tag:hover{background:var(--primary);color:#fff}.comments-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.comments-section h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:1.5rem}.add-comment{margin-bottom:2rem}.add-comment textarea{width:100%;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;color:var(--text-primary);resize:vertical;margin-bottom:.75rem}.add-comment textarea:focus{outline:none;border-color:var(--primary)}.auth-prompt{padding:2rem;text-align:center;background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:8px}.auth-prompt p{color:var(--text-secondary);margin-bottom:1rem}.comment-error{padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;margin-bottom:.75rem;font-size:.9rem}.comments-list{display:flex;flex-direction:column;gap:1rem}.loading-comments,.no-comments{text-align:center;padding:2rem;color:var(--text-secondary)}.comment{padding:1rem;background:var(--bg-tertiary);border-radius:8px;border-left:3px solid transparent}.comment.best-answer{border-left-color:var(--success);background:#22c55e0d}.comment.reply{margin-left:2rem;margin-top:.75rem;border-left:2px solid var(--border-color)}.best-answer-badge{display:inline-block;padding:.25rem .75rem;background:var(--success);color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;margin-bottom:.75rem}.comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.comment-author{display:flex;align-items:center;gap:.75rem}.author-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.author-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.author-info{display:flex;flex-direction:column}.author-name{font-weight:600;color:var(--text-primary)}.author-reputation{font-size:.75rem;color:var(--warning)}.comment-date{font-size:.8rem;color:var(--text-secondary)}.comment-content{font-size:.95rem;line-height:1.6;color:var(--text-primary);margin-bottom:.75rem;white-space:pre-wrap}.comment-code{background:var(--bg-secondary);border-radius:8px;padding:1rem;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:.85rem;margin-bottom:.75rem}.comment-actions{display:flex;align-items:center;gap:1rem}.vote-buttons{display:flex;gap:.5rem}.reply-btn,.mark-best-btn,.delete-btn{padding:.375rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.reply-btn:hover,.mark-best-btn:hover,.delete-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.mark-best-btn:hover{border-color:var(--success);color:var(--success)}.delete-btn:hover{border-color:var(--danger);color:var(--danger);background:#ef44441a}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.reply-input{margin-top:1rem;padding:1rem;background:var(--bg-secondary);border-radius:8px}.reply-input textarea{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;color:var(--text-primary);resize:vertical;margin-bottom:.75rem}.reply-input textarea:focus{outline:none;border-color:var(--primary)}.reply-actions{display:flex;justify-content:flex-end;gap:.5rem}.replies{margin-top:.75rem}@media(max-width:768px){.problem-actions-bar{flex-direction:column;gap:1rem;align-items:stretch}.vote-section,.action-buttons{justify-content:center}.comment.reply{margin-left:1rem}.comment-header{flex-direction:column;gap:.5rem}}.leaderboard-page{max-width:1000px;margin:0 auto;padding:2rem}.leaderboard-header{text-align:center;margin-bottom:2rem}.leaderboard-header h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--text-primary)}.leaderboard-header p{color:var(--text-secondary)}.period-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem}.period-tab{padding:.75rem 1.5rem;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:.95rem}.period-tab:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.period-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.podium{display:flex;justify-content:center;align-items:flex-end;gap:1rem;margin-bottom:3rem;padding:2rem 0}.podium-place{display:flex;flex-direction:column;align-items:center;padding:1.5rem;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-primary);transition:all .3s ease;box-shadow:var(--shadow-sm)}.podium-place:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.podium-place.first{order:2;padding:2rem;background:linear-gradient(145deg,rgba(255,215,0,.15),var(--bg-card));border-color:#ffd70066}.podium-place.second{order:1;background:linear-gradient(145deg,rgba(192,192,192,.15),var(--bg-card));border-color:#c0c0c066}.podium-place.third{order:3;background:linear-gradient(145deg,rgba(205,127,50,.15),var(--bg-card));border-color:#cd7f3266}.podium-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;margin-bottom:.75rem}.podium-place.first .podium-avatar{width:100px;height:100px;box-shadow:0 0 20px #ffd7004d}.podium-avatar img{width:100%;height:100%;object-fit:cover}.podium-avatar .avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:2rem;font-weight:700}.podium-rank{font-size:2rem;margin-bottom:.5rem}.podium-place.first .podium-rank{font-size:2.5rem}.podium-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.podium-score{color:var(--primary);font-size:.9rem;font-weight:600}.leaderboard-table{background:var(--bg-card);border-radius:12px;overflow:hidden;border:1px solid var(--border-primary);box-shadow:var(--shadow-sm)}.table-header{display:grid;grid-template-columns:80px 1fr 120px 100px 120px 120px;padding:1rem 1.5rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);font-size:.85rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.table-row{display:grid;grid-template-columns:80px 1fr 120px 100px 120px 120px;padding:1rem 1.5rem;border-bottom:1px solid var(--border-secondary);text-decoration:none;color:inherit;transition:background .2s ease}.table-row.top-1{background:#ffd70014}.table-row.top-2{background:#c0c0c014}.table-row.top-3{background:#cd7f3214}.col-rank{display:flex;align-items:center;font-weight:600;color:var(--text-primary)}.col-user{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.9rem}.user-name{color:var(--text-primary);font-weight:500}.col-reputation{display:flex;align-items:center;gap:.25rem}.reputation-value{font-weight:600;color:var(--primary)}.reputation-label{color:var(--text-tertiary);font-size:.85rem}.col-problems,.col-answers{display:flex;align-items:center;color:var(--text-secondary)}.col-badges{display:flex;align-items:center;gap:.25rem}.badge-icon{font-size:1.1rem;cursor:default}.badge-more{font-size:.75rem;color:var(--text-tertiary);padding:.2rem .4rem;background:var(--bg-tertiary);border-radius:4px}.loading-state{display:flex;flex-direction:column;gap:1rem}.leaderboard-skeleton{height:60px;background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-card);border-radius:12px;border:1px dashed var(--border-primary)}.empty-icon{font-size:4rem;display:block;margin-bottom:1rem}.empty-state h3{margin-bottom:.5rem;color:var(--text-primary)}.empty-state p{color:var(--text-secondary);margin-bottom:1.5rem}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s ease}@media(max-width:900px){.table-header,.table-row{grid-template-columns:60px 1fr 100px 80px}.col-answers,.col-badges{display:none}}@media(max-width:600px){.leaderboard-page{padding:1rem}.podium{flex-direction:column;align-items:center}.podium-place{width:100%;max-width:280px}.podium-place.first,.podium-place.second,.podium-place.third{order:unset}.table-header,.table-row{grid-template-columns:50px 1fr 80px}.col-problems{display:none}.period-tabs{flex-wrap:wrap}.period-tab{padding:.5rem 1rem;font-size:.85rem}}.user-profile-page{max-width:1000px;margin:0 auto;padding:2rem}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.loading-spinner{width:50px;height:50px;border:3px solid var(--border-primary);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.profile-loading p{color:var(--text-secondary)}.profile-not-found{text-align:center;padding:4rem 2rem;background:var(--bg-card);border-radius:12px;border:1px solid var(--border-primary)}.not-found-icon{font-size:4rem;display:block;margin-bottom:1rem}.profile-not-found h2{margin-bottom:.5rem;color:var(--text-primary)}.profile-not-found p{color:var(--text-secondary);margin-bottom:1.5rem}.btn-back{display:inline-block;padding:.75rem 1.5rem;background:var(--bg-tertiary);color:var(--text-primary);text-decoration:none;border-radius:8px;transition:all .2s ease;border:1px solid var(--border-primary)}.btn-back:hover{background:var(--bg-hover)}.profile-header{display:flex;gap:2rem;padding:2rem;background:var(--bg-card);border-radius:16px;border:1px solid var(--border-primary);margin-bottom:2rem;box-shadow:var(--shadow-sm)}.profile-avatar{flex-shrink:0;position:relative}.profile-avatar img{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid var(--primary)}.profile-avatar .avatar-placeholder{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700;color:#fff}.special-rank-badge{position:absolute;bottom:0;right:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;border:3px solid var(--bg-card);box-shadow:0 2px 8px #0003}.profile-info{flex:1}.profile-name-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.profile-name-row h1{font-size:2rem;margin:0;color:var(--text-primary)}.role-badge{padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.user-rank{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600}.rank-icon{font-size:1.25rem}.rank-title{font-size:1rem}.rank-reputation{font-size:.85rem;opacity:.8;font-weight:400}.rank-progress{margin-bottom:1rem;max-width:300px}.progress-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:.25rem}.progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.progress-text{font-size:.75rem;color:var(--text-tertiary)}.profile-bio{color:var(--text-secondary);margin-bottom:1rem;line-height:1.6}.profile-meta{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.meta-item{color:var(--text-tertiary);font-size:.9rem}.btn-edit-profile{display:inline-block;padding:.5rem 1rem;background:transparent;border:1px solid var(--primary);color:var(--primary);text-decoration:none;border-radius:6px;font-size:.9rem;transition:all .2s ease}.btn-edit-profile:hover{background:var(--primary-light)}.profile-reputation{display:flex;align-items:center;justify-content:center}.reputation-circle{width:100px;height:100px;border-radius:50%;background:var(--primary-light);border:2px solid var(--primary);display:flex;flex-direction:column;align-items:center;justify-content:center}.reputation-circle .reputation-value{font-size:1.5rem;font-weight:700;color:var(--primary)}.reputation-circle .reputation-label{font-size:.75rem;color:var(--text-tertiary)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);padding:1.5rem;border-radius:12px;border:1px solid var(--border-primary);display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .2s ease;box-shadow:var(--shadow-sm)}.stat-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{font-size:1.5rem;margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.stat-label{font-size:.85rem;color:var(--text-tertiary)}.profile-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border-primary);margin-bottom:1.5rem}.profile-tab{padding:1rem 1.5rem;background:transparent;border:none;color:var(--text-tertiary);font-size:1rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.profile-tab:hover{color:var(--text-secondary)}.profile-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{min-height:300px}.empty-tab{text-align:center;padding:4rem 2rem;background:var(--bg-card);border-radius:12px;border:1px dashed var(--border-primary)}.empty-tab .empty-icon{font-size:3rem;display:block;margin-bottom:1rem}.empty-tab p{color:var(--text-secondary);margin-bottom:1rem}.empty-hint{font-size:.85rem;color:var(--text-tertiary)}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;text-decoration:none;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.problems-list{display:flex;flex-direction:column;gap:1rem}.problem-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:10px;text-decoration:none;color:inherit;transition:all .2s ease;box-shadow:var(--shadow-sm)}.problem-item:hover{background:var(--bg-hover);border-color:var(--primary);box-shadow:var(--shadow-md)}.problem-main h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.05rem}.problem-main p{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.problem-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.difficulty-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;text-transform:capitalize}.difficulty-easy{background:#22c55e26;color:#16a34a}.difficulty-medium{background:#eab30826;color:#ca8a04}.difficulty-hard{background:#ef444426;color:#dc2626}.problem-stats{font-size:.85rem;color:var(--text-tertiary)}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-secondary);text-decoration:none;color:inherit;transition:background .2s ease}.activity-item:hover{background:var(--bg-hover)}.activity-item:last-child{border-bottom:none}.activity-icon{font-size:1.25rem}.activity-content{display:flex;flex-direction:column}.activity-title{color:var(--text-secondary)}.activity-date{font-size:.85rem;color:var(--text-tertiary)}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.badge-card{padding:1.5rem;border-radius:12px;text-align:center;border:1px solid var(--border-primary);background:var(--bg-card);transition:all .2s ease;box-shadow:var(--shadow-sm)}.badge-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.badge-emoji{font-size:2.5rem;display:block;margin-bottom:.75rem}.badge-card h4{color:var(--text-primary);margin-bottom:.5rem}.badge-card p{font-size:.85rem;color:var(--text-secondary);margin-bottom:.75rem}.badge-rarity{display:inline-block;padding:.2rem .6rem;border-radius:20px;font-size:.75rem;text-transform:uppercase;font-weight:600}.badge-common{background:#8080801a;border-color:#8080804d}.badge-common .badge-rarity{background:#80808033;color:#6b7280}.badge-rare{background:#3b82f61a;border-color:#3b82f64d}.badge-rare .badge-rarity{background:#3b82f633;color:#2563eb}.badge-epic{background:#8b5cf61a;border-color:#8b5cf64d}.badge-epic .badge-rarity{background:#8b5cf633;color:#7c3aed}.badge-legendary{background:#ffd7001a;border-color:#ffd7004d}.badge-legendary .badge-rarity{background:#ffd70033;color:#ca8a04}@media(max-width:768px){.user-profile-page{padding:1rem}.profile-header{flex-direction:column;align-items:center;text-align:center}.profile-meta{justify-content:center}.profile-reputation{margin-top:1rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.profile-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.profile-tab{flex-shrink:0;padding:.75rem 1rem}.problem-item{flex-direction:column}.problem-meta{flex-direction:row;align-items:center;width:100%}.badges-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.profile-avatar img,.profile-avatar .avatar-placeholder{width:80px;height:80px;font-size:2rem}.profile-info h1{font-size:1.5rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem}.stat-card{padding:1rem}.stat-value{font-size:1.25rem}}.image-upload{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-area{width:150px;height:150px;border-radius:50%;border:2px dashed var(--border-primary);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.upload-area:hover{border-color:var(--primary);background:var(--primary-light)}.upload-area:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.upload-area.drag-active{border-color:var(--primary);background:var(--primary-light);transform:scale(1.02)}.upload-area.loading{cursor:wait;opacity:.8}.file-input{display:none}.upload-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--primary);font-size:.85rem}.upload-spinner{width:32px;height:32px;border:3px solid var(--border-primary);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.current-image{width:100%;height:100%;position:relative}.current-image img{width:100%;height:100%;object-fit:cover}.image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;color:#fff;font-size:.9rem}.upload-area:hover .image-overlay{opacity:1}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem}.placeholder-initial{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;color:#fff;margin-bottom:.75rem}.placeholder-text{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-tertiary)}.placeholder-icon{font-size:1.25rem}.upload-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:var(--danger);font-size:.85rem;max-width:280px;text-align:center}.error-icon{flex-shrink:0}.upload-info{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-tertiary)}.remove-image-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.remove-image-btn:hover{background:#ef44441a}.profile-settings{max-width:900px;margin:0 auto;padding:2rem}.auth-required{text-align:center;padding:4rem 2rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:16px}.auth-icon{font-size:4rem;display:block;margin-bottom:1rem}.auth-required h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:.5rem}.auth-required p{color:var(--text-secondary);margin-bottom:1.5rem}.settings-header{text-align:center;margin-bottom:2rem}.settings-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.settings-header p{color:var(--text-secondary)}.message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.message.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#16a34a}.message.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#dc2626}.settings-grid{display:flex;flex-direction:column;gap:1.5rem}.settings-section{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm)}.settings-section h2{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.section-description{font-size:.9rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.picture-preview{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-tertiary);border-radius:8px}.preview-info{display:flex;flex-direction:column}.preview-name{font-weight:600;color:var(--text-primary)}.preview-email{font-size:.85rem;color:var(--text-tertiary)}.settings-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.form-group input[type=text],.form-group textarea{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:8px;font-size:.95rem;color:var(--text-primary);transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.form-group textarea{resize:vertical;min-height:100px}.char-count{align-self:flex-end;font-size:.75rem;color:var(--text-tertiary);margin-top:.25rem}.btn-save{align-self:flex-start;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.btn-save:hover:not(:disabled){box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-save:disabled{opacity:.6;cursor:not-allowed}.account-info{background:var(--bg-tertiary)}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-secondary)}.info-row:last-child{border-bottom:none}.info-label{font-size:.9rem;color:var(--text-tertiary)}.info-value{font-size:.9rem;color:var(--text-secondary);font-weight:500}.info-value.reputation{color:var(--primary)}.info-value.role-badge{padding:.25rem .75rem;border-radius:12px;font-weight:600}.info-value.role-badge.creator,.info-value.role-badge.admin{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937}.info-value.role-badge.moderator{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.info-value.role-badge.user{background:var(--bg-tertiary);color:var(--text-secondary)}.settings-footer{margin-top:2rem;text-align:center}.btn-view-profile{display:inline-block;padding:.75rem 1.5rem;background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);text-decoration:none;border-radius:8px;font-size:.95rem;transition:all .2s ease}.btn-view-profile:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;text-decoration:none;border-radius:8px;font-weight:600;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary)}.btn-sync-avatar{width:100%;padding:.75rem 1rem;margin-top:1rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-sync-avatar:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--primary)}.btn-sync-avatar:disabled{opacity:.6;cursor:not-allowed}.sync-hint{font-size:.8rem;color:var(--text-tertiary);margin-top:.5rem;text-align:center}@media(max-width:768px){.profile-settings{padding:1rem}.picture-preview{flex-direction:column;text-align:center}.btn-save{width:100%}.info-row{flex-direction:column;align-items:flex-start;gap:.25rem}}.admin-panel{max-width:1200px;margin:0 auto;padding:2rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:16px;box-shadow:var(--shadow-sm)}.admin-title{display:flex;align-items:center;gap:1rem}.admin-icon{font-size:2.5rem}.admin-title h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.admin-title p{font-size:.9rem;color:var(--text-secondary);margin:0}.admin-role-badge{padding:.5rem 1rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-weight:600;border-radius:20px;font-size:.9rem}.admin-message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.admin-message.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#16a34a}.admin-message.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#dc2626}.message-icon{font-size:1.1rem}.message-close{margin-left:auto;background:transparent;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.7}.message-close:hover{opacity:1}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;background:var(--bg-tertiary);border-radius:12px;width:fit-content}.admin-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-radius:8px;font-size:.95rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.admin-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-tab.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.admin-content{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm)}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.admin-loading p{color:var(--text-secondary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.section-header .count{font-size:.9rem;color:var(--text-tertiary);background:var(--bg-tertiary);padding:.25rem .75rem;border-radius:20px}.users-table,.problems-table{border:1px solid var(--border-primary);border-radius:12px;overflow:hidden}.table-header{display:grid;padding:1rem 1.5rem;background:var(--bg-tertiary);font-size:.85rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-primary)}.users-table .table-header{grid-template-columns:2fr 2fr 100px 120px 100px 80px}.problems-table .table-header{grid-template-columns:2fr 1fr 100px 120px 100px 120px}.table-row{display:grid;padding:1rem 1.5rem;align-items:center;border-bottom:1px solid var(--border-secondary);transition:background .2s ease}.users-table .table-row{grid-template-columns:2fr 2fr 100px 120px 100px 80px}.problems-table .table-row{grid-template-columns:2fr 1fr 100px 120px 100px 120px}.table-row:hover{background:var(--bg-hover)}.table-row:last-child{border-bottom:none}.user-cell{display:flex;align-items:center;gap:.75rem}.user-name{font-weight:500;color:var(--text-primary);text-decoration:none}.user-name:hover{color:var(--primary)}.email-cell{font-size:.9rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reputation-cell{font-weight:600;color:var(--primary)}.role-select{padding:.375rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:6px;font-size:.85rem;color:var(--text-primary);cursor:pointer}.role-select:disabled{opacity:.5;cursor:not-allowed}.role-select.admin{border-color:#f59e0b;color:#f59e0b}.role-select.moderator{border-color:#3b82f6;color:#3b82f6}.role-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:capitalize}.role-badge.admin{background:#f59e0b26;color:#f59e0b}.role-badge.moderator{background:#3b82f626;color:#3b82f6}.role-badge.user{background:var(--bg-tertiary);color:var(--text-tertiary)}.date-cell{font-size:.85rem;color:var(--text-tertiary)}.title-cell{display:flex;align-items:center;gap:.5rem}.problem-title{font-weight:500;color:var(--text-primary);text-decoration:none}.problem-title:hover{color:var(--primary)}.featured-badge{font-size:.7rem;padding:.125rem .5rem;background:#f59e0b26;color:#f59e0b;border-radius:4px}.author-cell a{color:var(--text-secondary);text-decoration:none;font-size:.9rem}.author-cell a:hover{color:var(--primary)}.difficulty-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:capitalize}.difficulty-badge.easy{background:#22c55e26;color:#16a34a}.difficulty-badge.medium{background:#eab30826;color:#ca8a04}.difficulty-badge.hard{background:#ef444426;color:#dc2626}.stats-cell{display:flex;gap:.75rem;font-size:.85rem;color:var(--text-secondary)}.actions-cell{display:flex;gap:.5rem}.action-btn{padding:.375rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.action-btn:hover{background:var(--bg-hover)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.delete:hover{background:#ef44441a;border-color:var(--danger)}.action-btn.feature:hover{background:#f59e0b1a;border-color:#f59e0b}.stats-overview{padding:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:12px}.stat-card .stat-icon{font-size:2rem}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.stat-label{font-size:.9rem;color:var(--text-tertiary)}.recent-activity h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.quick-actions{display:flex;flex-wrap:wrap;gap:1rem}.quick-action-btn{padding:.75rem 1.25rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);text-decoration:none;font-weight:500;transition:all .2s ease}.quick-action-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}@media(max-width:1024px){.users-table .table-header,.users-table .table-row{grid-template-columns:2fr 1fr 100px 80px}.email-cell,.date-cell{display:none}.problems-table .table-header,.problems-table .table-row{grid-template-columns:2fr 100px 100px 100px}.author-cell{display:none}}@media(max-width:768px){.admin-panel{padding:1rem}.admin-header{flex-direction:column;gap:1rem;text-align:center}.admin-title{flex-direction:column}.admin-tabs{width:100%;overflow-x:auto}.users-table .table-header,.users-table .table-row{grid-template-columns:1fr 100px 60px}.reputation-cell{display:none}.problems-table .table-header,.problems-table .table-row{grid-template-columns:1fr 80px 100px}.stats-cell{display:none}}
