.sql-lab{--font-sans:var(--font-body), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:var(--font-heading), "Instrument Serif", Georgia, serif;--font-mono:ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;--code-bg:#f9f7f5;--code-fg:#2e2924;--code-line:#e6e3e0;--code-gutter:#e0dbd7;--code-active:#f1edea;--code-tooltip:#fbfaf9;--sql-keyword:#386d8a;--sql-string:#b65c20;--sql-number:#6c43b1;--sql-comment:#988c81;--sql-operator:#467691;--sql-punctuation:#7e7367;--sql-function:#3a8288;--sql-type:#317249;--sql-property:#43709d;--sql-label:#dc6718;--success:#34794d;--success-soft:#e5f5eb;--success-line:#b6d8c2;--warning:#ad7e1f;--warning-soft:#fcf4e3;--warning-line:#ebd6ad;--danger:#bf2222;--danger-soft:#fce8e8;--danger-line:#e8baba;min-height:100vh;color:hsl(var(--foreground));background:hsl(var(--background));font-synthesis:none;text-rendering:optimizelegibility}.dark .sql-lab{--code-bg:#1e1c1a;--code-fg:#e9e6e2;--code-line:#322e2a;--code-gutter:#37332f;--code-active:#292623;--code-tooltip:#24211e;--sql-keyword:#85c0e0;--sql-string:#f7c96e;--sql-number:#c2a8f0;--sql-comment:#7e7367;--sql-operator:#7cbcde;--sql-punctuation:#a89e94;--sql-function:#7cd8de;--sql-type:#7dd49d;--sql-property:#8ebdeb;--sql-label:#f8ab77;--success:#66cc8b;--success-soft:#183924;--success-line:#3d7150;--warning:#f5bb47;--warning-soft:#3d3014;--warning-line:#796234;--danger:#ef6c6c;--danger-soft:#3d1414;--danger-line:#883a3a}.sql-lab button,.sql-lab input{font:inherit}.sql-lab button{color:inherit}.sql-lab button:focus-visible,.sql-lab a:focus-visible{outline:3px solid hsl(var(--accent) / .5);outline-offset:2px}.sql-lab button:disabled{opacity:.45;cursor:not-allowed}.sql-lab a{color:inherit}.sql-lab .app-header{z-index:50;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background) / .9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 34px;display:grid;position:sticky;top:0}.sql-lab .brand-button{cursor:pointer;background:0 0;border:0;width:max-content;padding:0;text-decoration:none}.sql-lab .brand{text-align:left;align-items:center;gap:11px;display:flex}.sql-lab .brand-mark{width:36px;height:36px;color:hsl(var(--accent-foreground));background:hsl(var(--accent));font:600 13px var(--font-sans);border-radius:10px;place-items:center;display:grid}.sql-lab .brand>span:last-child{flex-direction:column;display:flex}.sql-lab .brand strong{font:600 14px var(--font-sans);letter-spacing:-.01em}.sql-lab .brand small{font:500 11px var(--font-sans);color:hsl(var(--muted-foreground));margin-top:1px}.sql-lab .app-header nav{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:12px;gap:3px;padding:4px;display:flex}.sql-lab .app-header nav a,.sql-lab .app-header nav button{color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.sql-lab .app-header nav a:hover{color:hsl(var(--foreground))}.sql-lab .app-header nav a.active{background:hsl(var(--secondary));color:hsl(var(--foreground))}.sql-lab .database-status{font:500 11px var(--font-sans);color:hsl(var(--muted-foreground));background:0 0;border:0;border-radius:999px;justify-self:end;align-items:center;gap:7px;padding:6px 10px;display:flex}.sql-lab .database-status i{background:hsl(var(--muted-foreground) / .4);border-radius:50%;width:7px;height:7px}.sql-lab .database-status.ready i{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 18%, transparent)}.sql-lab .database-status.error i{background:var(--danger)}.sql-lab .database-status:disabled{opacity:1;cursor:default}.sql-lab .database-status.error{cursor:pointer}.sql-lab .page-enter{animation:.35s ease-out both enter}@keyframes enter{0%{opacity:0;transform:translateY(5px)}}.sql-lab .eyebrow{font:600 11px var(--font-sans);color:hsl(var(--muted-foreground));letter-spacing:.06em;text-transform:uppercase}.sql-lab .dashboard,.sql-lab .sources-page{max-width:1260px;margin:0 auto;padding:62px 32px 80px}.sql-lab .hero-grid{grid-template-columns:1.35fr .65fr;align-items:stretch;gap:40px;display:grid}.sql-lab .hero-copy{padding:32px 0 40px}.sql-lab .hero-copy h1,.sql-lab .sources-hero h1{font-family:var(--font-serif);letter-spacing:-.02em;color:hsl(var(--foreground));margin:22px 0;font-size:clamp(46px,6vw,78px);font-weight:400;line-height:1.02}.sql-lab .hero-copy h1 em,.sql-lab .sources-hero h1 em{color:hsl(var(--accent));font-style:italic}.sql-lab .hero-copy>p,.sql-lab .sources-hero>p{color:hsl(var(--muted-foreground));max-width:620px;font-size:17px;line-height:1.65}.sql-lab .hero-actions{flex-wrap:wrap;gap:10px;margin-top:33px;display:flex}.sql-lab .primary-button,.sql-lab .secondary-button{border:1px solid hsl(var(--border));cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 18px;font-size:14px;font-weight:600;transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out,background .18s ease-out;display:inline-flex}.sql-lab .primary-button{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 8px 22px hsl(var(--accent) / .18);border-color:#0000}.sql-lab .primary-button:hover{box-shadow:0 12px 30px hsl(var(--accent) / .26);transform:translateY(-1px)}.sql-lab .secondary-button{background:hsl(var(--card));color:hsl(var(--foreground))}.sql-lab .secondary-button:hover{background:hsl(var(--accent) / .06);border-color:hsl(var(--accent) / .4)}.sql-lab .primary-button.compact,.sql-lab .secondary-button.compact{min-height:36px;padding:0 14px;font-size:13px}.sql-lab .mission-card{background:hsl(var(--card));border:1px solid hsl(var(--border));color:hsl(var(--foreground));min-height:410px;box-shadow:0 10px 34px hsl(var(--accent) / .08);border-radius:20px;flex-direction:column;padding:26px;display:flex;position:relative;overflow:hidden}.sql-lab .mission-card:after{content:"";background:radial-gradient(circle, hsl(var(--accent) / .14), transparent 65%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-110px;right:-110px}.sql-lab .mission-topline{font:500 11px var(--font-sans);letter-spacing:.02em;color:hsl(var(--muted-foreground));justify-content:space-between;display:flex}.sql-lab .mission-ring{--progress:0deg;background:conic-gradient(hsl(var(--accent)) var(--progress), hsl(var(--muted)) 0);border-radius:50%;width:168px;height:168px;margin:48px auto 32px;padding:7px}.sql-lab .mission-ring>div{background:hsl(var(--card));text-align:center;border-radius:50%;grid-template-columns:auto auto;place-content:center;align-items:baseline;width:100%;height:100%;display:grid}.sql-lab .mission-ring strong{font-family:var(--font-serif);font-size:46px;font-weight:400}.sql-lab .mission-ring span{color:hsl(var(--muted-foreground));font-size:14px}.sql-lab .mission-ring small{font:500 10px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--accent));grid-column:1/-1;margin-top:4px}.sql-lab .mission-card>p{color:hsl(var(--muted-foreground));font:500 11px var(--font-sans);text-transform:uppercase;letter-spacing:.06em;margin:auto 0 4px}.sql-lab .mission-card>strong{font-family:var(--font-serif);font-size:21px;font-weight:400;line-height:1.25}.sql-lab .mission-card>span{color:hsl(var(--muted-foreground));margin-top:8px;font-size:13px}.sql-lab .metric-grid{border:1px solid hsl(var(--border));background:hsl(var(--card));box-shadow:0 6px 22px hsl(var(--accent) / .06);border-radius:18px;grid-template-columns:repeat(4,1fr);margin:34px 0;display:grid;overflow:hidden}.sql-lab .metric-grid article{border-right:1px solid hsl(var(--border));grid-template-columns:auto 1fr;gap:4px 12px;padding:22px 24px;display:grid}.sql-lab .metric-grid article:last-child{border:0}.sql-lab .metric-grid svg{color:hsl(var(--accent));grid-row:span 2}.sql-lab .metric-grid span{font:500 11px var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.sql-lab .metric-grid strong{font-family:var(--font-serif);font-size:26px;font-weight:400}.sql-lab .metric-grid small{font-family:var(--font-sans);color:hsl(var(--muted-foreground));font-size:13px}.sql-lab .dashboard-grid{grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:18px;display:grid}.sql-lab .section-card{background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:0 6px 22px hsl(var(--accent) / .06);border-radius:18px;padding:26px}.sql-lab .section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.sql-lab .section-heading h2,.sql-lab .panel-title-row h2{font-family:var(--font-serif);letter-spacing:-.01em;margin:4px 0 0;font-size:21px;font-weight:400}.sql-lab .daily-progress{font-family:var(--font-serif);color:hsl(var(--muted-foreground));font-size:19px}.sql-lab .assignment-list{border-top:1px solid hsl(var(--border))}.sql-lab .assignment-list>button{border:0;border-bottom:1px solid hsl(var(--border));text-align:left;cursor:pointer;background:0 0;border-radius:0;grid-template-columns:26px 46px 1fr auto 20px;align-items:center;gap:10px;width:100%;min-height:56px;display:grid}.sql-lab .assignment-list>button:hover{background:hsl(var(--accent) / .05)}.sql-lab .status-dot{border:1px solid hsl(var(--border));width:22px;height:22px;color:hsl(var(--muted-foreground));border-radius:50%;place-items:center;display:grid}.sql-lab .status-dot.solved{border-color:var(--success);background:var(--success);color:hsl(var(--background))}.sql-lab .status-dot.attempted{border-color:var(--warning);color:var(--warning)}.sql-lab .assignment-id{font-family:var(--font-mono);color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .assignment-title{font-size:14px;font-weight:500}.sql-lab .difficulty{border:1px solid hsl(var(--border));font:500 11px var(--font-sans);color:hsl(var(--muted-foreground));border-radius:999px;padding:3px 9px}.sql-lab .difficulty.advanced,.sql-lab .difficulty.stretch{border-color:var(--danger-line);color:var(--danger);background:var(--danger-soft)}.sql-lab .difficulty.intermediate{border-color:var(--success-line);color:var(--success);background:var(--success-soft)}.sql-lab .skill-list{flex-direction:column;gap:18px;display:flex}.sql-lab .skill-list>div>div:first-child{justify-content:space-between;margin-bottom:8px;font-size:13px;font-weight:500;display:flex}.sql-lab .skill-list small{color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .progress-line{background:hsl(var(--muted));border-radius:999px;height:6px;overflow:hidden}.sql-lab .progress-line i{background:hsl(var(--accent));border-radius:999px;height:100%;transition:width .3s;display:block}.sql-lab .catalog-card{padding-bottom:30px}.sql-lab .text-button{cursor:pointer;color:hsl(var(--accent));background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:6px;font-size:13px;font-weight:600;display:inline-flex}.sql-lab .text-button:hover{background:hsl(var(--accent) / .08)}.sql-lab .danger-text{color:var(--danger)}.sql-lab .track-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.sql-lab .track-grid article{border:1px solid hsl(var(--border));background:hsl(var(--background) / .5);border-radius:14px;flex-direction:column;min-height:150px;padding:18px;display:flex}.sql-lab .track-grid article>span{font:500 11px var(--font-sans);text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--accent))}.sql-lab .track-grid h3{color:hsl(var(--muted-foreground));font-size:13px;font-weight:400;line-height:1.45}.sql-lab .track-grid article>div{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.sql-lab .track-grid button{border:1px solid hsl(var(--border));background:hsl(var(--card));width:27px;height:27px;font:500 10px var(--font-mono);cursor:pointer;border-radius:8px;place-items:center;display:grid}.sql-lab .track-grid button:hover{border-color:hsl(var(--accent));background:hsl(var(--accent) / .08)}.sql-lab .track-grid button.solved{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-color:hsl(var(--accent))}.sql-lab .track-grid button.attempted{border-color:var(--warning);color:var(--warning)}.sql-lab .workspace{background:hsl(var(--background));grid-template-columns:272px minmax(0,1fr);min-height:calc(100vh - 64px);display:grid}.sql-lab .schema-panel{background:hsl(var(--sidebar));color:hsl(var(--sidebar-foreground));border-right:1px solid hsl(var(--sidebar-border));height:calc(100vh - 64px);padding:24px 16px;position:sticky;top:64px;overflow-y:auto}.sql-lab .panel-heading{justify-content:space-between;align-items:flex-start;padding:0 6px;display:flex}.sql-lab .panel-heading h2{font-family:var(--font-serif);margin:4px 0 0;font-size:18px;font-weight:400}.sql-lab .live-badge{font:500 10px var(--font-sans);color:hsl(var(--muted-foreground));align-items:center;gap:6px;display:flex}.sql-lab .live-badge i{background:var(--success);width:6px;height:6px;box-shadow:0 0 7px color-mix(in srgb, var(--success) 60%, transparent);border-radius:50%}.sql-lab .schema-note{color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--sidebar-border));margin:0 0 9px;padding:16px 6px 18px;font-size:11px}.sql-lab .schema-table{border-bottom:1px solid hsl(var(--sidebar-border));border-left:2px solid #0000;border-radius:8px}.sql-lab .schema-table.relevant{border-left-color:hsl(var(--accent));background:hsl(var(--accent) / .07)}.sql-lab .schema-table-row{align-items:center;display:flex}.sql-lab .schema-table-row>button:first-child{color:hsl(var(--sidebar-foreground));font:500 12px var(--font-mono);cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:11px 5px;display:flex}.sql-lab .schema-table-row>button:first-child small{background:hsl(var(--accent));color:hsl(var(--accent-foreground));font:600 9px var(--font-sans);letter-spacing:.04em;border-radius:4px;margin-left:auto;padding:2px 5px}.sql-lab .icon-button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:6px;display:grid}.sql-lab .schema-table-row .icon-button{color:hsl(var(--muted-foreground))}.sql-lab .schema-table-row .icon-button:hover{color:hsl(var(--foreground));background:hsl(var(--accent) / .1)}.sql-lab .schema-columns{padding:0 8px 12px 28px}.sql-lab .schema-columns p{color:hsl(var(--muted-foreground));margin:0 0 10px;font-size:11px;line-height:1.5}.sql-lab .schema-columns span{color:hsl(var(--sidebar-foreground));font:400 10px var(--font-mono);grid-template-columns:11px minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:3px 0;display:grid}.sql-lab .schema-columns span i{width:11px}.sql-lab .schema-columns span b{text-overflow:ellipsis;font-weight:400;overflow:hidden}.sql-lab .schema-columns span em{color:hsl(var(--muted-foreground));font-size:9px;font-style:normal}.sql-lab .schema-columns span small{color:hsl(var(--accent));font:600 9px var(--font-sans)}.sql-lab .schema-columns svg{color:hsl(var(--accent))}.sql-lab .workspace-main{min-width:0}.sql-lab .workspace-toolbar{z-index:20;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background) / .94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;height:57px;padding:0 25px;display:flex;position:sticky;top:64px}.sql-lab .back-button{cursor:pointer;color:hsl(var(--foreground));background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:6px;font-size:13px;font-weight:600;display:flex}.sql-lab .back-button:hover{background:hsl(var(--accent) / .08)}.sql-lab .workspace-controls{align-items:center;gap:8px;display:flex}.sql-lab .mode-toggle{border:1px solid hsl(var(--border));background:hsl(var(--card));cursor:pointer;border-radius:10px;align-items:center;gap:6px;min-height:30px;padding:0 10px;font-size:12px;font-weight:500;display:flex}.sql-lab .mode-toggle.active{color:var(--warning);border-color:var(--warning-line);background:var(--warning-soft)}.sql-lab .timer{min-width:67px;font-family:var(--font-mono);align-items:center;gap:5px;font-size:12px;display:flex}.sql-lab .timer.expired{color:var(--danger)}.sql-lab .nav-arrow{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:8px}.sql-lab .challenge-count{color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .workspace-scroll{max-width:1030px;margin:0 auto;padding:34px 30px 80px}.sql-lab .prompt-panel{border-left:3px solid hsl(var(--accent));margin-bottom:28px;padding:4px 0 8px 24px}.sql-lab .prompt-meta{color:hsl(var(--muted-foreground));align-items:center;gap:8px;font-size:12px;display:flex}.sql-lab .challenge-id{background:hsl(var(--accent));color:hsl(var(--accent-foreground));font-family:var(--font-mono);border-radius:6px;padding:3px 7px;font-size:12px;font-weight:600}.sql-lab .prompt-panel h1{font-family:var(--font-serif);letter-spacing:-.02em;margin:18px 0 9px;font-size:clamp(29px,4vw,42px);font-weight:400;line-height:1.05}.sql-lab .prompt-panel>p{color:hsl(var(--muted-foreground));max-width:820px;margin:0;font-size:15px;line-height:1.65}.sql-lab .prompt-panel code{font-family:var(--font-mono);background:hsl(var(--muted));color:hsl(var(--foreground));border-radius:5px;padding:2px 5px;font-size:13px}.sql-lab .prompt-schema{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:16px;margin-top:20px;overflow:hidden}.sql-lab .prompt-schema-heading{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:flex-start;gap:18px;padding:14px 16px;display:flex}.sql-lab .prompt-schema-heading h2{font-family:var(--font-serif);letter-spacing:-.01em;margin:3px 0 0;font-size:18px;font-weight:400}.sql-lab .prompt-schema-heading>span{color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .prompt-table-grid{background:hsl(var(--border));grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1px;display:grid}.sql-lab .prompt-table{background:hsl(var(--card));min-width:0;padding:14px 16px}.sql-lab .prompt-table header{align-items:center;gap:9px;margin-bottom:6px;display:flex}.sql-lab .prompt-table header span{background:hsl(var(--accent));color:hsl(var(--accent-foreground));font:600 10px var(--font-sans);letter-spacing:.04em;border-radius:5px;padding:3px 6px}.sql-lab .prompt-table h3{color:hsl(var(--foreground));font-family:var(--font-mono);margin:0;font-size:14px;font-weight:600}.sql-lab .prompt-table>p{min-height:32px;color:hsl(var(--muted-foreground));margin:0 0 9px;font-size:11px;line-height:1.5}.sql-lab .prompt-table ul{border-top:1px solid hsl(var(--border));margin:0;padding:0;list-style:none}.sql-lab .prompt-table li{border-bottom:1px solid hsl(var(--border));min-height:26px;font-family:var(--font-mono);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:7px;display:grid}.sql-lab .prompt-table li code{color:hsl(var(--foreground));text-overflow:ellipsis;background:0 0;padding:0;font-size:10px;overflow:hidden}.sql-lab .prompt-table li span{color:hsl(var(--muted-foreground));font-size:9px}.sql-lab .prompt-table li small,.sql-lab .prompt-table li b{border-radius:4px;padding:2px 4px;font-size:8px;font-weight:600}.sql-lab .prompt-table li small{color:var(--warning);background:var(--warning-soft)}.sql-lab .prompt-table li b{color:var(--sql-type);background:var(--success-soft)}.sql-lab .coach-wrap{padding-bottom:4px}.sql-lab .coach-panel .muted-copy{padding:0 18px 16px}.sql-lab .coach-error{color:var(--danger);margin:0 18px 16px;font-size:13px}.sql-lab .coach-hint{border:1px solid hsl(var(--border));background:hsl(var(--accent) / .05);border-radius:12px;margin:0 18px 16px;padding:14px}.sql-lab .coach-hint p{color:hsl(var(--foreground));align-items:flex-start;gap:7px;margin:0 0 8px;font-size:13px;line-height:1.55;display:flex}.sql-lab .coach-hint span{color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .coach-hint code{background:hsl(var(--muted));color:hsl(var(--foreground));font-family:var(--font-mono);border-radius:4px;padding:1px 5px}.sql-lab .prompt-relationships{border-top:1px solid hsl(var(--border));background:hsl(var(--muted) / .5);grid-template-columns:170px minmax(0,1fr);align-items:start;gap:12px;padding:12px 16px;display:grid}.sql-lab .prompt-relationships>span{color:hsl(var(--foreground));align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.sql-lab .prompt-relationships>div{flex-wrap:wrap;gap:6px;display:flex}.sql-lab .prompt-relationships code{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground));font-family:var(--font-mono);border-radius:6px;padding:4px 8px;font-size:10px}.sql-lab .prompt-relationships code b{color:hsl(var(--accent));margin:0 7px;font-weight:600}.sql-lab .interview-notice{color:var(--warning);align-items:center;gap:8px;margin-top:14px;font-size:13px;font-weight:500;display:flex}.sql-lab .query-panel,.sql-lab .results-panel,.sql-lab .help-panel{background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:0 6px 22px hsl(var(--accent) / .05);border-radius:16px;margin-bottom:14px;overflow:hidden}.sql-lab .panel-title-row{justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.sql-lab .editor-shell{background:var(--code-bg);border-top:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border))}.sql-lab .query-actions{justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.sql-lab .query-actions>span{color:hsl(var(--muted-foreground));font-size:12px}.sql-lab kbd{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground));font-family:var(--font-sans);border-bottom-width:2px;border-radius:6px;margin-right:3px;padding:2px 6px;font-size:11px;line-height:1}.sql-lab .query-actions>div{gap:7px;display:flex}.sql-lab .results-empty{min-height:120px;color:hsl(var(--muted-foreground));border-top:1px solid hsl(var(--border));justify-content:center;align-items:center;gap:9px;font-size:13px;display:flex}.sql-lab .loader{border:2px solid hsl(var(--border));border-top-color:hsl(var(--accent));border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sql-lab .result-wrap{border-top:1px solid hsl(var(--border))}.sql-lab .result-meta{background:hsl(var(--muted) / .5);border-bottom:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));gap:17px;padding:8px 14px;font-size:12px;display:flex}.sql-lab .table-scroll{max-width:100%;max-height:370px;overflow:auto}.sql-lab table{border-collapse:collapse;min-width:100%;font-family:var(--font-mono);font-size:12px}.sql-lab th{z-index:2;background:hsl(var(--muted));color:hsl(var(--muted-foreground));text-align:left;font-weight:600;position:sticky;top:0}.sql-lab th,.sql-lab td{border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));white-space:nowrap;padding:9px 12px}.sql-lab tbody tr:nth-child(2n){background:hsl(var(--muted) / .35)}.sql-lab tbody tr:hover{background:hsl(var(--accent) / .07)}.sql-lab .row-number{color:hsl(var(--muted-foreground));text-align:right;width:42px}.sql-lab th.row-number{color:hsl(var(--muted-foreground))}.sql-lab .null-value{color:hsl(var(--muted-foreground));font-style:italic}.sql-lab .result-limit{color:hsl(var(--muted-foreground));padding:0 14px;font-size:12px}.sql-lab .query-error{border-top:1px solid var(--danger-line);background:var(--danger-soft);min-height:110px;color:var(--danger);align-items:flex-start;gap:10px;margin:0;padding:22px;display:flex}.sql-lab .query-error strong{font-size:13px}.sql-lab .query-error pre{white-space:pre-wrap;font-family:var(--font-mono);margin:7px 0 0;font-size:11px;line-height:1.6}.sql-lab .grade-banner{border:1px solid;border-radius:14px;align-items:flex-start;gap:11px;margin-bottom:14px;padding:15px 17px;display:flex}.sql-lab .grade-banner.passed{color:var(--success);border-color:var(--success-line);background:var(--success-soft)}.sql-lab .grade-banner.failed{color:var(--warning);border-color:var(--warning-line);background:var(--warning-soft)}.sql-lab .grade-banner strong{font-size:14px}.sql-lab .grade-banner p{margin:3px 0 0;font-size:13px;line-height:1.5}.sql-lab .grade-banner button{cursor:pointer;color:inherit;background:0 0;border:0;align-items:center;gap:6px;margin-left:auto;font-size:13px;font-weight:600;display:flex}.sql-lab .help-panel{padding-bottom:18px}.sql-lab .help-panel.locked{background:hsl(var(--muted) / .4)}.sql-lab .locked-copy,.sql-lab .muted-copy{color:hsl(var(--muted-foreground));align-items:center;gap:8px;margin:5px 18px 0;font-size:13px;display:flex}.sql-lab .hint{border-top:1px solid hsl(var(--border));grid-template-columns:32px 1fr;gap:12px;margin:0 18px;padding:14px 0;display:grid}.sql-lab .hint span{color:hsl(var(--accent));font-family:var(--font-mono);font-size:12px}.sql-lab .hint p{margin:0;font-size:13px;line-height:1.55}.sql-lab .solution-toggle{border:1px solid hsl(var(--border));background:hsl(var(--card));cursor:pointer;border-radius:10px;margin:10px 18px 0;padding:8px 12px;font-size:12px;font-weight:600}.sql-lab .solution-toggle:hover{border-color:hsl(var(--accent) / .4)}.sql-lab .solution-block{margin:16px 18px 0}.sql-lab .solution-block pre{background:var(--code-bg);color:var(--code-fg);border:1px solid hsl(var(--border));font-family:var(--font-mono);border-radius:12px;padding:18px;font-size:12px;line-height:1.6;overflow:auto}.sql-lab .solution-block>p,.sql-lab .explanation p{color:hsl(var(--muted-foreground));font-size:13px;line-height:1.6}.sql-lab .explanation{border-left:2px solid var(--success);margin:14px 18px 0;padding:3px 12px}.sql-lab .explanation strong{font-size:13px}.sql-lab .explanation p{margin:4px 0 0}.sql-lab .preview-modal{z-index:100;background:#1614128c;place-items:center;padding:25px;display:grid;position:fixed;inset:0}.sql-lab .preview-card{background:hsl(var(--card));width:min(1000px,90vw);max-height:80vh;color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:16px;overflow:hidden;box-shadow:0 30px 80px #16141266}.sql-lab .preview-head{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:center;padding:18px;display:flex}.sql-lab .preview-head h2{font-family:var(--font-serif);margin:3px 0 0;font-size:20px;font-weight:400}.sql-lab .preview-card .results-empty{min-height:260px}.sql-lab .sources-page{max-width:1060px}.sql-lab .sources-hero{padding:35px 0 45px}.sql-lab .sources-hero h1{font-size:clamp(46px,6.4vw,72px)}.sql-lab .sources-hero>p{max-width:700px}.sql-lab .principles-grid{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:18px;grid-template-columns:repeat(3,1fr);margin-bottom:24px;display:grid;overflow:hidden}.sql-lab .principles-grid article{border-right:1px solid hsl(var(--border));padding:22px}.sql-lab .principles-grid article:last-child{border:0}.sql-lab .principles-grid svg{color:hsl(var(--accent))}.sql-lab .principles-grid strong{font-family:var(--font-serif);margin:12px 0 4px;font-size:16px;font-weight:400;display:block}.sql-lab .principles-grid p{color:hsl(var(--muted-foreground));margin:0;font-size:13px;line-height:1.5}.sql-lab .source-list{border-top:1px solid hsl(var(--border))}.sql-lab .source-list a{border-bottom:1px solid hsl(var(--border));border-radius:12px;grid-template-columns:50px 1fr auto;gap:16px;padding:25px 8px;text-decoration:none;display:grid}.sql-lab .source-list a:hover{background:hsl(var(--accent) / .05)}.sql-lab .source-list>a>span{font-family:var(--font-mono);color:hsl(var(--muted-foreground));font-size:12px}.sql-lab .source-list small{color:hsl(var(--accent));font:500 11px var(--font-sans);text-transform:uppercase;letter-spacing:.05em}.sql-lab .source-list h2{font-family:var(--font-serif);margin:5px 0;font-size:21px;font-weight:400}.sql-lab .source-list p{color:hsl(var(--muted-foreground));max-width:730px;margin:0;font-size:13px;line-height:1.55}.sql-lab .disclaimer{color:hsl(var(--muted-foreground));max-width:780px;margin-top:28px;font-size:12px;line-height:1.7}@media (max-width:900px){.sql-lab .app-header{grid-template-columns:1fr auto;padding:0 18px}.sql-lab .app-header nav{display:none}.sql-lab .hero-grid,.sql-lab .dashboard-grid{grid-template-columns:1fr}.sql-lab .mission-card{min-height:370px}.sql-lab .metric-grid{grid-template-columns:repeat(2,1fr)}.sql-lab .metric-grid article:nth-child(2){border-right:0}.sql-lab .metric-grid article:nth-child(-n+2){border-bottom:1px solid hsl(var(--border))}.sql-lab .track-grid{grid-template-columns:repeat(2,1fr)}.sql-lab .workspace{grid-template-columns:1fr}.sql-lab .schema-panel{display:none}.sql-lab .workspace-scroll{padding-inline:18px}}@media (max-width:600px){.sql-lab .app-header{height:56px}.sql-lab .database-status span{display:none}.sql-lab .dashboard,.sql-lab .sources-page{padding:40px 16px 60px}.sql-lab .hero-copy{padding-top:10px}.sql-lab .hero-copy h1,.sql-lab .sources-hero h1{font-size:42px}.sql-lab .metric-grid article{padding:16px 12px}.sql-lab .track-grid{grid-template-columns:1fr}.sql-lab .assignment-list>button{grid-template-columns:24px 35px 1fr 17px}.sql-lab .assignment-list .difficulty{display:none}.sql-lab .section-card{padding:18px}.sql-lab .workspace-toolbar{padding:0 12px;top:56px}.sql-lab .back-button{font-size:0}.sql-lab .back-button svg{width:19px;height:19px}.sql-lab .mode-toggle{font-size:0}.sql-lab .prompt-panel{padding-left:15px}.sql-lab .prompt-meta>span:last-child,.sql-lab .query-actions>span{display:none}.sql-lab .query-actions{justify-content:flex-end}.sql-lab .principles-grid{grid-template-columns:1fr}.sql-lab .principles-grid article{border-right:0;border-bottom:1px solid hsl(var(--border))}.sql-lab .source-list a{grid-template-columns:34px 1fr auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
