#root{min-height:100vh}:root{color:#18202c;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{overflow-x:hidden}*{box-sizing:border-box}body{background:linear-gradient(#f8f9faf0,#eff2f6f5),url(/icons.svg) 0 0/420px;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit;min-width:0}button{touch-action:manipulation;border:0}a{color:#246bfe;font-weight:700;text-decoration:none}.app-shell{width:min(1500px,100% - 32px);padding:20px 0 max(36px, env(safe-area-inset-bottom));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;padding:8px 0 16px;display:flex}.topbar h1,.section-title h2,.problem-heading h2,.panel h2,.day-card h3{letter-spacing:0;margin:0}.topbar h1{font-size:clamp(1.65rem,2.6vw,2.7rem);line-height:1.05}.eyebrow{color:#657084;letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:.78rem;font-weight:800}.tabbar{z-index:3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f6f7f9eb;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 0 14px;display:grid;position:sticky;top:0}.tabbar button,.chip,.primary-button,.icon-button,.small-button,.done-button,.attempt-actions button,.reveal-button{color:#273244;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;transition:transform .14s,border-color .14s,background .14s;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.58}.tabbar button{white-space:nowrap;padding:8px 10px;font-weight:800}.tabbar button.active,.chip.active,.primary-button,.reveal-button{color:#fff;background:#185a9d;border-color:#185a9d}.tabbar button:hover,.chip:hover,.primary-button:hover,.icon-button:hover,.small-button:hover,.done-button:hover,.attempt-actions button:hover,.reveal-button:hover,.problem-row:hover,.pattern-card:hover,.compact-list button:hover,.mistake-table button:hover{border-color:#9fb0ca;transform:translateY(-1px)}.workspace{gap:14px;min-width:0;display:grid}.two-column{grid-template-columns:minmax(300px,390px) minmax(0,1fr);align-items:start}.dashboard{grid-template-columns:1fr}.dashboard-hero{min-height:calc(100vh - 168px)}.progress-total{color:#185a9d;background:#e8f0fb;border-radius:8px;align-items:center;min-height:34px;padding:5px 10px;display:inline-flex}.panel,.stat-card,.day-card,.test-card{background:#ffffffeb;border:1px solid #dde3ee;border-radius:8px;min-width:0;box-shadow:0 10px 30px #1f2c4112}.panel{padding:18px}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px;display:flex}.section-title>*,.problem-heading>*,.timer-panel>*{min-width:0}.section-title h2,.panel h2{font-size:1.22rem}.section-title p,.panel p,.day-card p,.test-card small,.problem-main small,.compact-list small{color:#637083}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat-card{grid-template-columns:auto 1fr;gap:6px 12px;padding:16px;display:grid}.stat-card div{color:#185a9d;background:#e8f0fb;border-radius:8px;grid-row:span 2;place-items:center;width:42px;height:42px;display:grid}.stat-card span{color:#657084;font-weight:800}.stat-card strong{font-size:1.7rem;line-height:1}.day-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.day-card{padding:13px}.day-card span,.day-card small{color:#657084;font-weight:800}.day-card h3{margin-top:5px;font-size:1rem}.meter{background:#e7ebf1;border-radius:999px;height:8px;margin:10px 0 7px;overflow:hidden}.meter i{background:#26a269;height:100%;display:block}.pattern-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;display:grid}.pattern-card{color:#1f2937;text-align:left;cursor:pointer;background:#fff;border:1px solid #dfe5ee;border-radius:8px;gap:8px;width:100%;min-height:112px;padding:14px;transition:transform .14s,border-color .14s,background .14s;display:grid}.pattern-card.complete{background:#f0fbf4;border-color:#acd8be}.pattern-card-heading{justify-content:space-between;align-items:start;gap:10px;min-width:0;display:flex}.pattern-card-heading strong{overflow-wrap:anywhere}.pattern-card-heading span,.pattern-card small{color:#657084;font-weight:900}.browser-panel{min-width:0;max-height:calc(100vh - 96px);position:sticky;top:74px;overflow:hidden}.searchbox{background:#f7f8fa;border:1px solid #dfe5ee;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;display:flex}.searchbox input,.filter-row select{color:#1f2937;background:0 0;border:0;outline:0;width:100%}.filter-row{grid-template-columns:1fr 120px;gap:8px;margin:10px 0;display:grid}.filter-row.quiz-filter{grid-template-columns:1fr}.filter-row select{background:#fff;border:1px solid #dfe5ee;border-radius:8px;height:38px;padding:0 10px}.problem-list{overscroll-behavior:contain;gap:6px;max-height:calc(100vh - 225px);padding-right:4px;display:grid;overflow:auto}.problem-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:8px;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;width:100%;min-height:56px;padding:9px;display:grid}.problem-row.selected{background:#eef5ff;border-color:#185a9d}.problem-main{gap:3px;min-width:0;display:grid}.problem-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.problem-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dot{background:#aab4c3;border-radius:999px;width:9px;height:9px}.dot.reviewing{background:#e5a50a}.dot.memorized{background:#26a269}.badges,.mode-row,.variant-row,.mistake-tags,.attempt-actions,.code-toolbar{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.problem-heading{justify-content:space-between;align-items:start;gap:16px;margin-bottom:12px;display:flex}.badges span,.problem-row em,.variant-row span{color:#4b5563;overflow-wrap:anywhere;background:#eef1f6;border-radius:999px;align-items:center;min-height:26px;padding:3px 8px;font-size:.78rem;font-style:normal;font-weight:900;display:inline-flex}.easy{color:#147d4f!important;background:#e7f6ee!important}.medium{color:#946200!important;background:#fff3d6!important}.hard{color:#b42318!important;background:#ffebe8!important}.done-button{flex:none;min-width:126px;padding:8px 12px;font-weight:900}.done-button.active{color:#fff;background:#26a269;border-color:#26a269}.info-grid,.split,.complexity{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-panel h3,.cheat-card h3{color:#1f2937;margin:14px 0 8px;font-size:.9rem}.question-card,.pattern-summary,.solution-locked{background:#f7f9fc;border:1px solid #e2e8f2;border-radius:8px;padding:12px}.question-card{gap:8px;margin-bottom:12px;display:grid}.question-card h3,.question-card p{margin:0}.question-card p{font-size:.98rem;line-height:1.68}.pattern-summary{gap:5px;margin-bottom:10px;display:grid}.signature-line{background:#fff;border:1px solid #dfe7f2;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:9px 10px;display:grid}.signature-line span{color:#657084;text-transform:uppercase;font-size:.78rem;font-weight:900}.signature-line code{color:#14365d;font-weight:900;display:block;overflow:auto}.pattern-summary strong{color:#185a9d}.model-answer{counter-reset:answer-step;gap:8px;padding-left:0;list-style:none;display:grid}.model-answer li{counter-increment:answer-step;background:#fffdf7;border:1px solid #eadcb9;border-radius:8px;gap:6px;padding:12px 12px 12px 44px;display:grid;position:relative}.model-answer li:before{color:#fff;content:counter(answer-step);background:#185a9d;border-radius:999px;place-items:center;width:22px;height:22px;font-size:.78rem;font-weight:900;display:grid;position:absolute;top:12px;left:12px}.model-answer strong{color:#1f2937}.model-answer p{margin:0}.qa-list{gap:8px;display:grid}.qa-item{background:#fff;border:1px solid #e4e9f2;border-radius:8px;gap:5px;padding:10px 12px;display:grid}.qa-item strong{color:#1f2937}.qa-item p{margin:0}.detail-panel p,.detail-panel li,.cheat-card li,.large-list li{line-height:1.58}.callout{background:#f4f7fb;border:1px solid #e0e7f2;border-radius:8px;margin:12px 0;padding:12px}.recall-card{background:#fffaf0;border:1px solid #f0d8a8;border-radius:8px;gap:10px;margin:12px 0;padding:12px;display:grid}.recall-card .section-title{margin-bottom:0}.recall-card input,.recall-card textarea{color:#111827;background:#fff;border:1px solid #dcc89f;border-radius:8px;outline:0;width:100%}.recall-card input{min-height:42px;padding:0 12px}.recall-card textarea{resize:vertical;tab-size:4;min-height:220px;padding:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;line-height:1.45}.attempt-checklist,.prompt-list,.constraint-list{margin:0}.attempt-checklist{flex-wrap:wrap;gap:8px;display:flex}.attempt-checklist span{color:#7a5d00;background:#fff3d6;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:900}.attempt-checklist span.done{color:#147d4f;background:#e7f6ee}.prompt-list{padding-left:20px}.constraint-list{background:#f8fafc;border:1px solid #e5ebf3;border-radius:8px;gap:6px;padding:12px 12px 12px 32px;display:grid}code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.callout code{color:#14365d;font-weight:800;display:block;overflow:auto}.test-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.test-card{box-shadow:none;gap:7px;padding:11px;display:grid}.test-card code{color:#185a9d;overflow:auto}.complexity{margin:12px 0}.complexity div{background:#f8fafc;border:1px solid #e5ebf3;border-radius:8px;padding:12px}.code-toolbar{margin:14px 0 10px}.icon-button{width:40px;min-width:40px;padding:0}.icon-button.danger{color:#b42318}.primary-button,.small-button,.done-button,.chip,.attempt-actions button,.reveal-button{padding:7px 12px;font-weight:900}.code-block,.cheat-card pre{color:#eff6ff;white-space:pre;-webkit-overflow-scrolling:touch;background:#101827;border-radius:8px;max-width:100%;margin:0;padding:16px;line-height:1.48;overflow:auto}.solution-locked{color:#657084;align-items:center;gap:9px;font-weight:800;display:flex}.timer-panel{background:#f7fbff;border:1px solid #dce9fa;border-radius:8px;grid-template-columns:minmax(116px,auto) minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:12px;padding:12px;display:grid}.timer-panel.expired{background:#fff1ef;border-color:#ffc7bf}.timer-panel p,.timer-panel strong{margin:0}.timer-panel strong{font-size:2rem;display:block}.phase-list{grid-auto-flow:column;gap:6px;margin:0;padding:0;list-style:none;display:grid}.phase-list li{color:#4b5563;background:#fff;border:1px solid #dfe5ee;border-radius:8px;font-size:.76rem;font-weight:900;overflow:hidden}.phase-list li.active{border-color:#185a9d;box-shadow:inset 0 0 0 1px #185a9d}.phase-list button{width:100%;min-height:44px;color:inherit;text-align:left;cursor:pointer;background:0 0;padding:6px 8px;display:grid}.phase-list small{color:#637083;font-size:.68rem;font-weight:800}.score-panel{margin-top:14px}.confidence{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:12px;font-weight:900;display:grid}.rubric-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:12px;display:grid}.rubric-grid label{background:#f8fafc;border:1px solid #e5ebf3;border-radius:8px;grid-template-columns:minmax(90px,1fr) minmax(80px,1.1fr) auto;align-items:center;gap:8px;padding:10px;font-size:.84rem;font-weight:900;display:grid}.nudge{margin:8px 0 0;font-weight:800;color:#7a5d00!important}.attempt-actions{margin-top:12px}.compact-list{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:8px;display:grid}.compact-list button,.mistake-table button{color:#1f2937;text-align:left;cursor:pointer;background:#fff;border:1px solid #dfe5ee;border-radius:8px;gap:3px;min-height:58px;padding:10px;display:grid}.cheat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.cheat-card{background:#fff;border:1px solid #dfe5ee;border-radius:8px;align-self:start;padding:14px}.cheat-card h2{margin-bottom:10px}.cheat-card pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font-size:.84rem;overflow-x:auto}.mistake-table{gap:8px;display:grid}.mistake-table button{grid-template-columns:minmax(220px,1fr) minmax(180px,.5fr) minmax(160px,.6fr);align-items:center}.mistake-table em{color:#b42318;font-style:normal;font-weight:900}.final-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}.large-list{padding-left:20px}@media (width<=1180px){.day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cheat-grid{grid-template-columns:1fr}}@media (width<=940px){.two-column,.final-layout{grid-template-columns:1fr}.browser-panel{max-height:none;position:static}.problem-list{max-height:340px}.timer-panel{grid-template-columns:1fr}.phase-list{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row}}@media (width<=760px){.app-shell{width:min(100% - 20px,1500px);padding-top:10px}.section-title,.problem-heading{flex-direction:column;align-items:start}.topbar{align-items:flex-start}.tabbar{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:8px;margin:0 -10px;padding:8px 10px 10px;scroll-padding-inline:10px;display:flex;overflow-x:auto}.tabbar button{scroll-snap-align:start;flex:none;min-height:44px}.tabbar::-webkit-scrollbar{display:none}.mode-row::-webkit-scrollbar{display:none}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{grid-template-columns:34px 1fr;gap:4px 10px;padding:12px}.stat-card div{width:34px;height:34px}.stat-card strong{font-size:1.35rem}.info-grid,.split,.complexity,.test-grid,.day-grid,.compact-list,.cheat-grid{grid-template-columns:1fr}.filter-row{grid-template-columns:minmax(0,1fr) 112px}.confidence,.rubric-grid label,.mistake-table button{grid-template-columns:1fr}.panel{padding:14px}.browser-panel{overflow:visible}.problem-list{max-height:260px}.problem-row{grid-template-columns:10px minmax(0,1fr) auto;min-height:52px}.problem-main strong,.problem-main small{text-overflow:clip;white-space:normal;overflow:visible}.problem-row em{text-align:center;justify-self:end;max-width:100%}.mode-row{flex-wrap:nowrap;margin-inline:-2px;padding:0 2px 2px;overflow-x:auto}.mode-row .chip{flex:none}.badges{align-items:flex-start}.phase-list{grid-template-columns:repeat(2,minmax(0,1fr))}.code-toolbar .primary-button{flex:180px}.code-block,.cheat-card pre{padding:12px;font-size:.78rem;line-height:1.55}.recall-card textarea{min-height:180px;font-size:.86rem}}@media (width<=480px){.filter-row,.timer-panel,.phase-list{grid-template-columns:1fr}.problem-row{grid-template-columns:10px minmax(0,1fr)}.problem-row em{grid-column:2;justify-self:start}}@media (width<=340px){.stat-grid{grid-template-columns:1fr}}@media (hover:none){.tabbar button,.chip,.primary-button,.icon-button,.small-button,.done-button,.attempt-actions button,.reveal-button{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
