:root{--bg:#1a1a1a;--surface:#242424;--surface-raised:#2e2e2e;--border:#3a3a3a;--border-subtle:#2a2a2a;--text:#f0ede8;--text-muted:#a09890;--text-dim:#6b6460;--accent:#e8622a;--accent-hover:#d45520;--accent-dim:#e8622a26;--success:#5cad6e;--success-dim:#5cad6e1f;--error:#e05a5a;--error-dim:#e05a5a1f;--warning:#e8a230;--radius:6px;--radius-sm:4px;--shadow:0 4px 24px #0009}html.light{--bg:#f5efe4;--surface:#fffaf0;--surface-raised:#efe4d0;--border:#d8c9b0;--border-subtle:#e8dcc8;--text:#2a2118;--text-muted:#6f6253;--text-dim:#9b8f82;--accent:#c4572a;--accent-hover:#aa461c;--accent-dim:#c4572a24;--success:#2f7d51;--success-dim:#2f7d511f;--error:#b54b4b;--error-dim:#b54b4b1f;--warning:#b87b15;--shadow:0 10px 30px #5a44291f}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.6;transition:background .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text);margin-top:0;font-weight:600}.navbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;align-items:center;height:60px;padding:0 1.5rem;display:flex;position:sticky;top:0}.brand-link{color:var(--text);letter-spacing:-.01em;align-items:center;gap:.6rem;margin-right:2rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.brand-link img{height:30px}.brand-link:hover{color:var(--accent);text-decoration:none}.brand-text{color:inherit}.nav-links{align-items:center;gap:.25rem;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.nav-item{position:relative}.nav-item>a,.nav-item>span{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;padding:.4rem .75rem;font-size:.9rem;text-decoration:none;transition:color .15s,background .15s;display:block}.nav-item>a:hover,.nav-item:hover>a{color:var(--text);background:var(--surface-raised);text-decoration:none}.nav-item.sign-out>a{color:var(--error)}.nav-item.sign-out>a:hover{background:var(--error-dim)}.nav-item.sign-in>a{color:var(--accent)}.nav-item.sign-in>a:hover{background:var(--accent-dim)}.nav-theme{margin-right:.25rem}.theme-toggle-btn{background:var(--surface-raised);border:1px solid var(--border);min-width:74px;color:var(--text-muted);padding:.4rem .8rem}.theme-toggle-btn:hover{background:var(--surface);color:var(--text)}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow);z-index:200;padding:.75rem .5rem .5rem;display:none;position:absolute;top:100%;left:0}.dropdown-menu:before{content:"";height:8px;position:absolute;top:-8px;left:0;right:0}.nav-item:hover .dropdown-menu{display:block}.dropdown-link{color:var(--text-muted);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.875rem;transition:color .15s,background .15s;display:block}.dropdown-link:hover{color:var(--text);background:var(--surface-raised);text-decoration:none}.dropdown-level{position:relative}.dropdown-level>span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;padding:.4rem .75rem;font-size:.75rem;font-weight:600;display:block}.dropdown-level:hover>ul{display:block}.dropdown-level>ul{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow);margin:0 0 0 -2px;padding:.5rem;list-style:none;display:none;position:absolute;top:-.5rem;left:100%}.dropdown-level>ul li a{color:var(--text-muted);border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:.875rem;transition:color .15s,background .15s;display:block}.dropdown-level>ul li a:hover{color:var(--text);background:var(--surface-raised);text-decoration:none}.container{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}@media (min-width:901px){.challenge-page.lessons-open{max-width:none;margin-left:max(0px,50vw - 550px);margin-right:0;padding-right:1.5rem}}.page-header{margin-bottom:2rem}.page-header h1{margin-bottom:.25rem;font-size:1.6rem}.page-header p{color:var(--text-muted);margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}button,.btn{border-radius:var(--radius-sm);cursor:pointer;background:var(--surface-raised);color:var(--text);border:none;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}button:hover{background:var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0f172a;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:var(--error-dim);color:var(--error)}.btn-danger:hover{background:#f8717133}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-muted);margin-bottom:.35rem;font-size:.875rem;font-weight:500;display:block}input[type=text],input[type=email],input[type=password],textarea,select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.password-row{align-items:center;gap:.75rem;display:flex}.password-row input{flex:1}.password-row label{color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.password-row input[type=checkbox]{width:auto}.auth-wrapper{justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:2rem 1rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);padding:2.5rem}.auth-card h1{margin-bottom:.25rem;font-size:1.5rem}.auth-card .auth-subtitle{color:var(--text-muted);margin-bottom:1.75rem;font-size:.9rem}.auth-card .form-group{margin-bottom:1rem}.auth-card .btn-primary{width:100%;margin-top:.5rem;padding:.65rem;font-size:.95rem}.auth-footer{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.875rem}.auth-footer a{color:var(--accent)}.alert{border-radius:var(--radius-sm);margin-top:.75rem;padding:.65rem .9rem;font-size:.875rem}.alert-error{background:var(--error-dim);color:var(--error);border:1px solid #f8717140}.alert-success{background:var(--success-dim);color:var(--success);border:1px solid #22c55e40}.alert-warning{color:var(--warning);background:#e8a2301f;border:1px solid #e8a2304d}.home-page{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;min-height:calc(100vh - 60px);padding:3rem 1.5rem;display:flex}.home-logo{width:96px;margin-bottom:1.5rem}.home-page h1{letter-spacing:-.02em;margin-bottom:.75rem;font-size:2.4rem;font-weight:700}.home-tagline{color:var(--text-muted);max-width:480px;margin-bottom:2rem;font-size:1.1rem}.home-actions{gap:.75rem;display:flex}.get-started{background:var(--accent);color:#0f172a;border-radius:var(--radius-sm);align-items:center;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.get-started:hover{background:var(--accent-hover);text-decoration:none}.home-features{grid-template-columns:repeat(3,1fr);gap:1rem;max-width:680px;margin-top:3rem;margin-bottom:4rem;display:grid}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;padding:1.25rem}.feature-card .feature-icon{margin-bottom:.5rem;font-size:1.5rem}.feature-card h3{margin-bottom:.25rem;font-size:.9rem}.feature-card p{color:var(--text-muted);margin:0;font-size:.8rem}.contact-section{text-align:left;grid-template-columns:minmax(260px,320px) minmax(0,1fr);align-items:start;gap:1.5rem;width:min(960px,100%);display:grid}.contact-copy{padding:1.25rem 0}.contact-eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:inline-block}.contact-copy h2{margin-bottom:.75rem;font-size:1.8rem}.contact-copy p{color:var(--text-muted);margin:0 0 1rem}.contact-note{font-size:.9rem}.contact-form{width:100%}.contact-honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-verification{margin:1rem 0 .75rem}.contact-submit{width:100%;margin-top:.25rem;padding:.75rem 1rem}.dashboard-stats{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem}.stat-value{color:var(--accent);margin-bottom:.25rem;font-size:2rem;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);font-size:.85rem}.level-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;padding:1.25rem 1.5rem}.level-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.level-title{font-size:.95rem;font-weight:600}.level-count{color:var(--text-muted);font-size:.85rem}.progress-track{background:var(--bg);border-radius:99px;height:8px;margin-bottom:.75rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-hover));border-radius:99px;height:100%;transition:width .4s}.progress-fill.full{background:linear-gradient(90deg, var(--success), #16a34a)}.challenge-dots{flex-wrap:wrap;gap:5px;display:flex}.challenge-dot{border:1px solid var(--border);border-radius:4px;width:22px;height:22px;text-decoration:none;transition:transform .1s;display:inline-block}.challenge-dot:hover{text-decoration:none;transform:scale(1.15)}.challenge-dot.completed{background:var(--success);border-color:var(--success)}.challenge-dot.attempted{background:var(--warning);border-color:var(--warning)}.challenge-dot.unattempted{background:0 0}.accordion{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.5rem;overflow:hidden}.accordion summary{cursor:pointer;align-items:center;gap:.5rem;padding:1rem 1.25rem;font-weight:600;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary:before{content:"▶";color:var(--text-dim);font-size:.65rem;transition:transform .2s}details[open] summary:before{transform:rotate(90deg)}.accordion-body{padding:0 1.25rem 1rem}.challenge-link{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.5rem;padding:.4rem 0;font-size:.9rem;display:flex}.challenge-link:last-child{border-bottom:none}.challenge-link a{color:var(--text-muted);transition:color .15s}.challenge-link a:hover{color:var(--text);text-decoration:none}.challenge-layout{grid-template-columns:1fr 320px;align-items:start;gap:1.5rem;display:grid}.challenge-layout.no-sidebar{grid-template-columns:1fr}.challenge-main{min-width:0}.challenge-badge{background:var(--accent-dim);color:var(--accent);border-radius:99px;align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.25rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.challenge-description{color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);margin-bottom:1.25rem;padding:1rem 1.25rem;font-size:1rem;line-height:1.7}.challenge-query-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;transition:background .15s,border-color .15s,box-shadow .15s}.challenge-query-card.correct{background:#3f7a4d;border-color:#58aa6b;box-shadow:0 0 0 1px #58aa6b40}.sql-editor{border:1px solid var(--border);border-radius:var(--radius-sm);color:#e2e8f0;resize:vertical;background:#111;outline:none;width:100%;min-height:130px;padding:.85rem 1rem;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.9rem;line-height:1.7;transition:border-color .15s,box-shadow .15s}.challenge-query-card.correct .sql-editor{color:#f7fafc;background:#11111138;border-color:#fff3}.sql-editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.sql-editor.correct{border-color:var(--success);box-shadow:0 0 0 3px var(--success-dim)}.editor-toolbar{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.status-badge{border-radius:99px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge.correct{background:var(--success-dim);color:var(--success)}.status-badge.incorrect{background:var(--error-dim);color:var(--error)}.challenge-query-card.correct .status-badge.correct{color:#fff;background:#ffffff29}.nav-buttons{gap:.5rem;display:flex}.result-wrapper{margin-top:1.25rem;overflow-x:auto}.result-feedback,.result-hint{border-radius:var(--radius-sm);margin-top:1rem;padding:.8rem .95rem;font-size:.9rem}.result-feedback.correct{background:var(--success-dim);color:var(--text);border:1px solid #5cad6e33}.result-feedback.incorrect,.result-hint{color:var(--text);background:#e8a2301f;border:1px solid #e8a23033}.result{border-collapse:collapse;width:100%;font-size:.875rem}.result th{background:var(--surface);color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;padding:.5rem .85rem;font-size:.8rem;font-weight:600}.result td{border-bottom:1px solid var(--border-subtle);color:var(--text-muted);padding:.5rem .85rem}.challenge-query-card.correct .result th{color:#ffffffd1;background:#1111112e;border-bottom-color:#ffffff29}.challenge-query-card.correct .result td{color:#f7fafc;border-bottom-color:#ffffff1f}.result tr:last-child td{border-bottom:none}.result tbody tr:hover td{background:var(--surface);color:var(--text)}.challenge-query-card.correct .result tbody tr:hover td{color:#fff;background:#11111124}.challenge-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 100px);padding:1.25rem;position:sticky;top:76px;overflow-y:auto}.challenge-sidebar h2{margin-bottom:1rem;font-size:1rem}.lesson-item{margin-bottom:1.25rem}.lesson-item h3{color:var(--accent);margin-bottom:.5rem;font-size:.9rem}.lesson-content pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:pre-wrap;word-wrap:break-word;padding:.75rem;font-size:.8rem;overflow-x:auto}.lesson-content code{color:var(--warning);font-family:monospace}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.875rem}.admin-table th{background:var(--surface);color:var(--text-muted);text-align:left;border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.04em;padding:.65rem 1rem;font-size:.8rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:.65rem 1rem}.admin-table tr:hover td{background:var(--surface)}.admin-table code{background:var(--bg);color:var(--text-muted);border-radius:3px;padding:.15rem .4rem;font-family:monospace;font-size:.8rem}.diagram-image{border-radius:var(--radius);border:1px solid var(--border);max-width:100%;height:auto}.error{color:var(--error);margin-top:.5rem;font-size:.875rem}@media (max-width:900px){.challenge-layout{grid-template-columns:1fr}.challenge-sidebar{max-height:none;position:static}.home-features,.contact-section{grid-template-columns:1fr}.contact-copy{padding:0}.dashboard-stats{grid-template-columns:1fr 1fr}.challenge-query-card .editor-toolbar{flex-direction:column;align-items:stretch}.challenge-query-card .editor-toolbar>*{width:100%}.challenge-query-card .editor-toolbar>:first-child{justify-content:space-between}.nav-buttons{justify-content:space-between;width:100%}}@media (max-width:600px){.auth-card{padding:1.75rem 1.25rem}.dashboard-stats{grid-template-columns:1fr}.navbar{padding:0 1rem}}
