:root{--lab-navy:#071829;--lab-blue:#155eef;--lab-cyan:#0c91a6;--lab-gold:#f2c94c;--lab-ink:#102a4c;--lab-muted:#61728a;--lab-line:#d7e2ef;--lab-pale:#f1f6fb;--lab-green:#087f5b;--lab-red:#b42318}*{box-sizing:border-box}.core-lab-page,.core-solve-page{margin:0;background:#edf3f8;color:var(--lab-ink)}.core-lab-main,.core-solve-main{width:min(1500px,100%);min-height:72vh;margin:auto;padding:1rem 1.15rem 2.2rem}.core-lab-breadcrumb{display:flex;align-items:center;gap:.5rem;margin:.15rem 0 .9rem;color:var(--lab-muted);font-size:.86rem}.core-lab-breadcrumb a{color:var(--lab-blue);font-weight:850;text-decoration:none}.core-lab-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(25rem,.7fr);gap:1.2rem;padding:1.65rem;border-radius:1.05rem;background:radial-gradient(circle at 82% 5%,rgba(242,201,76,.24),transparent 22rem),linear-gradient(125deg,var(--lab-navy),#103c6d);color:#fff;box-shadow:0 16px 36px rgba(7,24,41,.18)}.core-lab-hero small,.core-lab-controls>small,.core-lab-library>header small,.core-solve-commandbar small,.core-answer-card>header small{color:var(--lab-gold);font-size:.72rem;font-weight:900;letter-spacing:.1em}.core-lab-hero h1{margin:.3rem 0;font:700 clamp(2rem,3.4vw,3rem)/1.1 Georgia,serif}.core-lab-hero-copy>p{max-width:57rem;margin:.45rem 0;color:#cbd9e8;font-size:1rem;line-height:1.65}.core-lab-hero-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.core-lab-hero-links a{padding:.7rem .9rem;border:1px solid #6f86a0;border-radius:.55rem;color:#fff;font-weight:900;text-decoration:none}.core-lab-hero-links a:first-child{border-color:var(--lab-gold);background:var(--lab-gold);color:#172033}.core-lab-statboard{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;align-self:center;padding:1rem;border:1px solid rgba(255,255,255,.16);border-radius:.85rem;background:rgba(5,20,37,.52)}.core-lab-statboard article{display:grid;padding:.65rem;border-radius:.6rem;background:rgba(255,255,255,.07);text-align:center}.core-lab-statboard strong{color:var(--lab-gold);font:800 1.45rem Georgia,serif}.core-lab-statboard span{color:#d5e3f1;font-size:.66rem}.core-lab-statboard p{grid-column:1/-1;margin:.25rem 0 0;color:#aec5dc;font-size:.72rem;line-height:1.5}.core-lab-path{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1rem 0}.core-lab-path article{display:flex;gap:.75rem;padding:.9rem;border:1px solid var(--lab-line);border-radius:.75rem;background:#fff}.core-lab-path b{display:grid;width:2.2rem;height:2.2rem;flex:none;place-items:center;border-radius:50%;background:var(--lab-navy);color:var(--lab-gold);font-size:.72rem}.core-lab-path strong,.core-lab-path span{display:block}.core-lab-path strong{font-size:.85rem}.core-lab-path span{margin-top:.2rem;color:var(--lab-muted);font-size:.73rem;line-height:1.45}.core-lab-layout{display:grid;grid-template-columns:22rem minmax(0,1fr);gap:1rem}.core-lab-controls,.core-lab-library{border:1px solid var(--lab-line);border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(15,35,60,.05)}.core-lab-controls{position:sticky;top:1rem;align-self:start;padding:1.15rem}.core-lab-controls h2{margin:.25rem 0 1rem;font-size:1.3rem}.core-lab-controls form{display:grid;gap:.45rem}.core-lab-controls label{margin-top:.4rem;color:#354965;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.core-lab-controls select,.core-lab-controls input{width:100%;min-height:2.75rem;padding:.55rem .65rem;border:1px solid #b9c8da;border-radius:.55rem;background:#fff;color:var(--lab-ink);font:inherit;font-size:.84rem}.core-lab-controls form>button{min-height:2.8rem;margin-top:.6rem;border:0;border-radius:.55rem;background:var(--lab-blue);color:#fff;font:900 .9rem inherit;cursor:pointer}.core-lab-controls button:disabled{opacity:.55;cursor:wait}.core-lab-filter-note,.core-lab-account{margin-top:1rem;padding:.8rem;border-radius:.65rem;font-size:.73rem;line-height:1.5}.core-lab-filter-note{border:1px solid #ead175;background:#fff9e6;color:#66541a}.core-lab-filter-note p{margin:.25rem 0 0}.core-lab-account{border:1px solid #bcd2ed;background:#f0f6ff;color:#315170}.core-lab-library{min-height:45rem;padding:1.2rem}.core-lab-library>header{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--lab-line)}.core-lab-library>header h2{margin:.2rem 0;font-size:1.4rem}.core-lab-library>header p{margin:0;color:var(--lab-muted)}.core-lab-library>header>a{flex:none;color:var(--lab-blue);font-size:.82rem;font-weight:900;text-decoration:none}.core-lab-empty,.core-lab-loading{display:flex;min-height:32rem;flex-direction:column;align-items:center;justify-content:center;text-align:center}.core-lab-empty>span{display:grid;width:4.5rem;height:4.5rem;place-items:center;border-radius:1rem;background:#e7f0ff;color:var(--lab-blue);font:900 1.2rem Georgia,serif}.core-lab-empty h3{margin:1rem 0 .4rem;font-size:1.35rem}.core-lab-empty p{max-width:40rem;margin:0;color:var(--lab-muted);line-height:1.6}.core-lab-loading>span,.core-solve-spinner{width:2.7rem;height:2.7rem;border:.3rem solid #dbe9fb;border-top-color:var(--lab-blue);border-radius:50%;animation:lab-spin .75s linear infinite}.core-lab-loading strong{margin-top:1rem}@keyframes lab-spin{to{transform:rotate(360deg)}}.core-lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:1rem}.core-problem-card{display:flex;min-height:16rem;flex-direction:column;padding:1rem;border:1px solid var(--lab-line);border-radius:.8rem;background:linear-gradient(145deg,#fff,#f8fbfe)}.core-problem-card.is-solved{border-color:#76c9a6;box-shadow:inset 4px 0 var(--lab-green)}.core-problem-card.is-attempted:not(.is-solved){box-shadow:inset 4px 0 #e0a62b}.core-problem-card-head{display:flex;align-items:start;justify-content:space-between;gap:.7rem}.core-problem-badges{display:flex;flex-wrap:wrap;gap:.35rem}.core-problem-badges span,.core-solve-meta span{padding:.28rem .5rem;border-radius:999px;background:#e8f1ff;color:#1752aa;font-size:.64rem;font-weight:900;text-transform:uppercase}.core-problem-badges .difficulty,.core-solve-meta .difficulty{background:#fff2cb;color:#7a5a00}.core-problem-badges .points,.core-solve-meta .points{background:#e5f8ef;color:#087454}.core-problem-card-head>b{color:#8493a7;font-size:.7rem}.core-problem-card h3{margin:.75rem 0 .35rem;font-size:1.05rem}.core-problem-card .subtopic{margin:0;color:var(--lab-cyan);font-size:.7rem;font-weight:900;text-transform:uppercase}.core-problem-card .scenario-preview{display:-webkit-box;margin:.65rem 0;color:#51647d;font-size:.82rem;line-height:1.55;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.core-problem-card footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:auto;padding-top:.75rem;border-top:1px solid #e6edf5}.core-problem-card footer span{color:var(--lab-muted);font-size:.7rem}.core-problem-card footer a{padding:.55rem .72rem;border-radius:.5rem;background:var(--lab-navy);color:#fff;font-size:.76rem;font-weight:900;text-decoration:none}.core-lab-pagination{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1rem}.core-lab-pagination button{min-height:2.5rem;padding:.5rem .8rem;border:1px solid #b9c8da;border-radius:.5rem;background:#fff;color:var(--lab-ink);font-weight:850}.core-lab-pagination button:disabled{opacity:.45}.core-lab-pagination span{color:var(--lab-muted);font-size:.8rem}.core-lab-error,.core-submit-error{color:var(--lab-red);font-size:.8rem;font-weight:750}.core-lab-error:empty,.core-submit-error:empty{display:none}
.core-solve-main{max-width:1440px}.core-solve-state{display:grid;min-height:36rem;padding:2rem;place-content:center;justify-items:center;text-align:center;border:1px solid var(--lab-line);border-radius:1rem;background:#fff}.core-solve-state h1{margin:1rem 0 .35rem;font:700 2rem Georgia,serif}.core-solve-state p{max-width:43rem;margin:0;color:var(--lab-muted)}.core-solve-error>span{display:grid;width:4rem;height:4rem;place-items:center;border-radius:1rem;background:#fff0ef;color:var(--lab-red);font-size:2rem;font-weight:900}.core-solve-error a{margin-top:1rem;padding:.7rem .9rem;border-radius:.5rem;background:var(--lab-blue);color:#fff;font-weight:900;text-decoration:none}.core-solve-workspace{display:grid;gap:.7rem}.core-solve-commandbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.2rem;border-radius:.9rem .9rem 0 0;background:linear-gradient(120deg,var(--lab-navy),#123c6b);color:#fff}.core-solve-commandbar h1{margin:.2rem 0 0;font-size:1.3rem}.core-solve-nav{display:flex;gap:.4rem}.core-solve-nav a{padding:.55rem .68rem;border:1px solid #58728f;border-radius:.45rem;color:#fff;font-size:.75rem;font-weight:850;text-decoration:none}.core-solve-nav a.is-disabled{opacity:.38;pointer-events:none}.core-solve-meta{display:flex;flex-wrap:wrap;gap:.4rem;padding:.15rem .1rem}.core-solve-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(29rem,1.1fr);gap:1rem;align-items:start}.core-scenario-card,.core-answer-card{border:1px solid var(--lab-line);border-radius:.9rem;background:#fff;box-shadow:0 8px 24px rgba(15,35,60,.05)}.core-scenario-card{position:sticky;top:1rem;padding:1.25rem}.core-scenario-label{display:flex;align-items:center;justify-content:space-between;gap:1rem}.core-scenario-label span,.core-scenario-card section small,.core-result small{color:#967200;font-size:.68rem;font-weight:900;letter-spacing:.08em}.core-scenario-label b{color:var(--lab-muted);font-size:.72rem}.core-scenario{margin:1rem 0;padding:1.1rem;border-left:4px solid var(--lab-cyan);border-radius:.3rem .7rem .7rem .3rem;background:#f1f9fb;font:700 1.15rem/1.65 Georgia,serif}.core-scenario-card section{margin-top:.85rem;padding:.85rem;border:1px solid var(--lab-line);border-radius:.65rem}.core-scenario-card section p{margin:.3rem 0 0;line-height:1.55}.core-scenario-integrity{margin-top:1rem;padding:.8rem;border:1px solid #d6c36c;border-radius:.65rem;background:#fff9e5}.core-scenario-integrity strong{font-size:.77rem}.core-scenario-integrity p{margin:.25rem 0 0;color:#6c5d27;font-size:.7rem;line-height:1.5}.core-answer-card{padding:1.2rem}.core-answer-card>header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--lab-line)}.core-answer-card>header h2{margin:.2rem 0;font-size:1.3rem}.core-answer-card>header>span{padding:.35rem .55rem;border-radius:999px;background:#eff4fa;color:#51637b;font-size:.67rem;font-weight:900}.core-answer-card form{display:grid;margin-top:1rem}.core-answer-card label{font-size:.78rem;font-weight:900}.core-answer-card textarea{width:100%;margin-top:.4rem;padding:.85rem;border:1px solid #aebfd3;border-radius:.65rem;background:#fbfdff;color:var(--lab-ink);font:inherit;line-height:1.5;resize:vertical}.core-answer-card textarea:focus{outline:3px solid rgba(21,94,239,.15);border-color:var(--lab-blue)}.core-answer-tip{margin:.4rem 0;color:var(--lab-muted);font-size:.7rem}.core-hint-actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:.8rem}.core-hint-actions button,.core-result-actions button{padding:.6rem .75rem;border:1px solid #b7c6d8;border-radius:.5rem;background:#fff;color:var(--lab-ink);font-weight:850}.core-hint-actions span{color:var(--lab-muted);font-size:.68rem}.core-hints{display:grid;gap:.5rem;margin-top:.65rem}.core-hints article{padding:.75rem;border:1px solid #ead177;border-radius:.55rem;background:#fff9e7}.core-hints strong{display:block;color:#826000;font-size:.7rem}.core-hints p{margin:.25rem 0 0;color:#655623;font-size:.78rem;line-height:1.5}.core-submit{min-height:3rem;margin-top:1rem;border:0;border-radius:.55rem;background:var(--lab-blue);color:#fff;font:900 .95rem inherit}.core-submit:disabled,.core-hint-actions button:disabled{opacity:.55}.core-result{margin-top:1.1rem;padding-top:1.1rem;border-top:2px solid var(--lab-line)}.core-result>header{display:flex;align-items:center;gap:.8rem;padding:.9rem;border-radius:.7rem;background:#ebfaf3}.core-result.is-wrong>header{background:#fff0ef}.core-result>header>span{display:grid;width:2.7rem;height:2.7rem;place-items:center;border-radius:50%;background:var(--lab-green);color:#fff;font-size:1.2rem;font-weight:900}.core-result.is-wrong>header>span{background:var(--lab-red)}.core-result>header h2{margin:.15rem 0;font-size:1.2rem}.core-result>header p{margin:0;color:var(--lab-muted);font-size:.75rem}.core-result>div:not(.core-result-actions){margin-top:.75rem;padding:.85rem;border:1px solid var(--lab-line);border-radius:.65rem}.core-result-answer strong{display:block;margin-top:.3rem;color:#0b4d3b;font-size:1.1rem}.core-result-explanation p,.core-correction-rule p{margin:.35rem 0 0;line-height:1.55}.core-result ol{margin:.55rem 0 0;padding-left:1.3rem}.core-result li{margin:.4rem 0;line-height:1.5}.core-correction-rule{border-color:#ead177!important;background:#fff9e7}.core-result-actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1rem}.core-result-actions a{padding:.65rem .78rem;border-radius:.5rem;background:var(--lab-navy);color:#fff;font-weight:900;text-decoration:none}
[hidden]{display:none!important}@media(max-width:1050px){.core-lab-hero{grid-template-columns:1fr}.core-lab-layout{grid-template-columns:1fr}.core-lab-controls,.core-scenario-card{position:static}.core-lab-controls form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.core-solve-layout{grid-template-columns:1fr}.core-lab-statboard{max-width:35rem}.core-lab-path{grid-template-columns:1fr}}@media(max-width:720px){.core-lab-main,.core-solve-main{padding:.65rem}.core-lab-hero{padding:1.1rem}.core-lab-statboard{grid-template-columns:1fr}.core-lab-statboard p{grid-column:auto}.core-lab-controls form,.core-lab-grid{grid-template-columns:1fr}.core-lab-library{padding:.85rem}.core-lab-library>header,.core-solve-commandbar,.core-answer-card>header,.core-hint-actions,.core-result-actions{align-items:flex-start;flex-direction:column}.core-solve-nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.core-solve-nav a{text-align:center}.core-scenario-card,.core-answer-card{padding:.9rem}.core-scenario{font-size:1rem}.core-result-actions a,.core-result-actions button{width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){.core-lab-loading>span,.core-solve-spinner{animation:none}}
