:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--bg:oklch(10.5% 0 0);--surface:oklch(14.5% .006 150);--surface-raised:oklch(18% .008 150);--surface-hover:oklch(21.5% .01 150);--editor:oklch(12.8% .004 150);--ink:oklch(96% .004 150);--muted:oklch(70% .015 150);--faint:oklch(54% .014 150);--line:oklch(27% .01 150);--line-strong:oklch(36% .018 150);--primary:oklch(62% .155 150);--primary-hover:oklch(68% .16 150);--primary-soft:oklch(23% .055 150);--accent:oklch(82% .13 82);--danger:oklch(65% .2 25);--danger-soft:oklch(22% .06 25);--warning:oklch(78% .15 78);--info:oklch(72% .13 245);--radius-sm:6px;--radius-md:9px;--transition:.18s cubic-bezier(.22, 1, .36, 1);--z-sticky:20;--z-tooltip:50;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:960px;min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);overflow:hidden}button,input,textarea{font:inherit}button:focus-visible,[role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition), transform 90ms ease-out;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button--md{height:36px;padding:0 13px}.button--sm{height:30px;padding:0 10px}.button--icon{width:32px;height:32px;padding:0}.button--primary{background:var(--primary);color:oklch(99% 0 0)}.button--primary:hover:not(:disabled){background:var(--primary-hover)}.button--secondary{background:var(--surface-raised);border-color:var(--line);color:var(--ink)}.button--secondary:hover:not(:disabled),.button--ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--line-strong)}.button--ghost{color:var(--muted);background:0 0}.button--danger{background:var(--danger);color:oklch(99% 0 0)}.app-shell{background:var(--bg);height:100vh;padding:8px}.topbar{align-items:center;height:48px;padding:0 10px 8px;display:flex}.brand{align-items:center;gap:9px;display:flex}.brand__mark{background:var(--primary);color:oklch(99% 0 0);letter-spacing:-.02em;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:inline-flex}.brand__name{letter-spacing:-.015em;font-size:15px;font-weight:700}.topbar__context{border-left:1px solid var(--line);color:var(--muted);align-items:center;gap:7px;margin-left:20px;padding-left:20px;font-size:12px;display:flex}.topbar__context strong{background:var(--primary-soft);color:oklch(84% .12 150);border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;display:inline-flex}.topbar__actions{align-items:center;gap:12px;margin-left:auto;display:flex}.library-count{color:var(--faint);font-size:12px}.workspace{grid-template-columns:minmax(390px,.84fr) minmax(560px,1.16fr);gap:8px;height:calc(100vh - 64px);display:grid}.problem-panel,.code-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);min-height:0;overflow:hidden}.tabs-root{flex-direction:column;height:100%;display:flex}.panel-toolbar,.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex:0 0 42px;justify-content:space-between;align-items:center;padding:0 10px;display:flex}.tabs-list{align-self:stretch;align-items:stretch;gap:2px;display:flex}.tab-trigger{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:12px;font-weight:600;position:relative}.tab-trigger[data-state=active]{color:var(--ink)}.tab-trigger[data-state=active]:after{background:var(--primary);content:"";border-radius:999px 999px 0 0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.difficulty{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:650}.difficulty--easy{background:var(--primary-soft);color:oklch(84% .12 150)}.difficulty--medium{color:var(--warning);background:oklch(24% .055 78)}.difficulty--hard{background:var(--danger-soft);color:oklch(80% .14 25)}.problem-scroll{flex:1;min-height:0;padding:30px 34px 64px;overflow:auto}.problem-heading{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:24px}.problem-heading__index{color:var(--muted);margin-bottom:9px;font-size:12px}.problem-heading h1{letter-spacing:-.025em;text-wrap:balance;margin:0 0 16px;font-size:24px;line-height:1.25}.topic-list{flex-wrap:wrap;gap:6px;display:flex}.topic-list span{background:var(--surface-raised);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.markdown-body{color:oklch(86% .008 150);max-width:70ch;font-size:14px;line-height:1.72}.markdown-body h2,.markdown-body h3{color:var(--ink);letter-spacing:-.015em;text-wrap:balance;margin:28px 0 10px;line-height:1.35}.markdown-body h2:first-child{display:none}.markdown-body h3{font-size:15px}.markdown-body p{text-wrap:pretty;margin:0 0 14px}.markdown-body ul{margin:8px 0 18px;padding-left:20px}.markdown-body li{margin:7px 0;padding-left:3px}.markdown-body :not(pre)>code,.contract-block code{background:var(--surface-raised);border:1px solid var(--line);color:oklch(84% .11 150);border-radius:4px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.markdown-body pre{background:var(--editor);border:1px solid var(--line);border-radius:var(--radius-sm);margin:12px 0 18px;padding:15px 16px;overflow:auto}.markdown-body pre code{color:oklch(86% .03 150);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.contract-block{background:var(--editor);border:1px solid var(--line);border-radius:var(--radius-md);align-items:flex-start;gap:12px;padding:16px;display:flex}.contract-block svg{color:var(--primary)}.contract-block div{gap:8px;display:grid}.contract-block span{color:var(--muted);font-size:11px}.details-list{margin:24px 0 0}.details-list div{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;padding:13px 0;display:grid}.details-list dt{color:var(--faint);font-size:12px}.details-list dd{color:var(--ink);margin:0;font-size:13px}.code-panel{grid-template-rows:42px minmax(260px,1fr) auto 52px;display:grid}.file-tab{color:var(--muted);align-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:flex}.file-tab svg{color:var(--info)}.file-state{background:var(--primary);border-radius:50%;width:5px;height:5px}.editor-wrap{background:var(--editor);min-height:0}.editor-loading{color:var(--faint);padding:20px;font-size:12px}.result-panel{background:var(--surface);border-top:1px solid var(--line);max-height:250px;overflow:auto}.result-panel__header{color:var(--faint);justify-content:space-between;align-items:center;height:40px;padding:0 14px;font-size:11px;display:flex}.result-title{color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.result-panel--open .result-title svg{color:var(--primary)}.test-list{border-top:1px solid var(--line)}.test-row{grid-template-columns:9px 1fr auto;align-items:start;gap:10px;padding:10px 14px;display:grid}.test-row+.test-row{border-top:1px solid oklch(23% .008 150)}.test-row strong{color:oklch(84% .008 150);font-size:11px;font-weight:550;display:block}.test-row>span:last-child{color:var(--faint);font-size:10px}.test-row pre{color:oklch(78% .08 25);white-space:pre-wrap;max-width:80ch;margin:7px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.5;overflow:auto}.status-dot{border-radius:50%;width:7px;height:7px;margin-top:3px}.status-dot--passed{background:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.status-dot--failed,.status-dot--error{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.review-row{background:var(--primary-soft);border-top:1px solid oklch(31% .065 150);justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.review-row>span{color:oklch(86% .06 150);font-size:11px;font-weight:600}.review-row>div{gap:6px;display:flex}.review-row .button{align-items:baseline}.review-row small{opacity:.72;font-size:9px;font-weight:500}.error-banner{background:var(--danger-soft);color:oklch(84% .11 25);border-top:1px solid oklch(36% .09 25);padding:10px 14px;font-size:11px}.runbar{background:var(--surface-raised);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 10px 0 14px;display:flex}.runbar>span{color:var(--faint);font-size:10px}kbd{background:var(--surface);border:1px solid var(--line-strong);color:var(--muted);text-align:center;border-radius:4px;min-width:19px;margin-right:3px;padding:2px 4px;font-family:inherit;font-size:9px;display:inline-block}.spin{animation:.8s linear infinite spin}.loading-screen,.empty-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100vh;display:flex}.empty-screen h1{margin:20px 0 0;font-size:22px}.empty-screen p{color:var(--muted);margin:0 0 8px;font-size:13px}.loading-line{background:var(--surface-raised);border-radius:999px;width:180px;height:3px;position:relative;overflow:hidden}.loading-line:after{background:var(--primary);border-radius:inherit;content:"";width:55%;animation:1.2s ease-in-out infinite loading;position:absolute;inset:0;transform:translate(-70%)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes loading{50%{transform:translate(120%)}to{transform:translate(220%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
