:root,[data-theme=dark]{--bg:#0d1117;--panel:#121820;--panel2:#171e27;--border:#29313d;--text:#d8dee9;--muted:#8b98a8;--accent:#60a5fa;--good:#55c38a;--warn:#e5b567;--bad:#e06c75;--nav-bg:#10161e;--input-bg:#0d1117;--button-bg:#1b2430;--hover:#202a36;--progress-track:#222b36;--toast-bg:#202a36;--quote:#b8c4d2;--tag:#aab6c4;color-scheme:dark}[data-theme=light]{--bg:#f3f3f3;--panel:#ffffff;--panel2:#ececec;--border:#d0d4dc;--text:#1e1e1e;--muted:#6b7280;--accent:#0078d4;--good:#107c10;--warn:#9a6700;--bad:#c42b1c;--nav-bg:#f8f8f8;--input-bg:#ffffff;--button-bg:#ffffff;--hover:#e8e8e8;--progress-track:#e5e7eb;--toast-bg:#ffffff;--quote:#3c3c3c;--tag:#5a5a5a;color-scheme:light}:root{font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);min-height:100%}body{font-size:14px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px}.auth-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--border);padding:28px}.auth-card h1{margin:24px 0 6px}.auth-form{display:grid;grid-gap:16px;gap:16px;margin-top:24px}.auth-form label{display:grid;grid-gap:7px;gap:7px}.auth-form input,.inline-form input{width:100%;border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:9px 10px;border-radius:3px}.auth-row{justify-content:space-between}.auth-form .check,.auth-row{display:flex;align-items:center}.auth-form .check{grid-template-columns:auto 1fr}.auth-form .check input{width:auto}.password-field{display:flex}.password-field input{border-radius:3px 0 0 3px}.password-field button{border-radius:0 3px 3px 0}.form-error{color:var(--bad)}.account-menu{margin-left:auto;position:relative}.account-menu summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer}.avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700}.account-menu>div{position:absolute;right:0;top:36px;z-index:30;width:180px;background:var(--panel);border:1px solid var(--border);box-shadow:0 8px 24px #0005;display:grid;padding:5px}.account-menu a,.account-menu button{padding:8px;text-align:left;background:none;border:0}.verification-banner{min-height:38px;display:flex;align-items:center;justify-content:center;gap:12px;background:#3a2f16;color:#f4d58d;border-bottom:1px solid #705b25}.account-page{display:grid;grid-template-columns:190px 1fr;grid-gap:24px;gap:24px}.account-page aside{display:grid;align-content:start;border-right:1px solid var(--border)}.account-page aside a{padding:10px}.account-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border)}.account-grid>div{background:var(--panel);padding:16px}.account-grid dt{color:var(--muted)}.account-grid dd{font-size:18px;margin:7px 0}.dense-list{display:grid;grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border)}.dense-list article{background:var(--panel);padding:12px;display:flex;justify-content:space-between;align-items:center}.dense-list p{margin:5px 0 0;color:var(--muted)}.inline-form{display:flex;gap:8px}.section-actions{display:flex;justify-content:flex-end;margin-bottom:12px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.button,button{border:1px solid var(--border);background:var(--button-bg);color:var(--text);padding:7px 11px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.button.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button:hover,button:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}input,select{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:8px;border-radius:4px}.app-nav{height:48px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:24px;background:var(--nav-bg)}.brand{font-weight:700;letter-spacing:.2px}.nav-links{display:flex;gap:18px;color:var(--muted)}.nav-links a:hover{color:var(--text)}.container{max-width:1280px;margin:auto;padding:28px}.page-title{font-size:24px;margin:0 0 5px}.subtitle{color:var(--muted);margin:0 0 24px}.grid{display:grid;grid-gap:14px;gap:14px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:18px}.kpi-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.07em;display:flex;align-items:center;gap:6px}.kpi-value{font-size:27px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:7px}.section-title{font-size:15px;margin:28px 0 12px}.progress{height:6px;background:var(--progress-track);border-radius:3px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent)}.list{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.grow{flex:1 1}.muted{color:var(--muted)}.tag{font-size:11px;border:1px solid var(--border);padding:3px 6px;border-radius:4px;color:var(--tag)}.status-good{color:var(--good)}.status-bad{color:var(--bad)}.workspace{height:calc(100vh - 48px);display:flex;flex-direction:column}.practice-header{height:54px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--border);background:var(--panel);gap:10px;flex-shrink:0}.practice-header .header-metrics{display:flex;gap:8px;align-items:center}.metric{width:88px;flex:0 0 88px;text-align:right}.metric small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.metric strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px}.panes{display:flex;flex:1 1;min-height:0}.explorer{width:270px;min-width:180px;max-width:480px;border-right:1px solid var(--border);background:var(--nav-bg);display:flex;flex-direction:column;flex-shrink:0;position:relative}.explorer.collapsed{width:28px;min-width:28px;max-width:28px}.explorer-head{padding:10px;border-bottom:1px solid var(--border);display:grid;grid-gap:7px;gap:7px;flex-shrink:0}.explorer input,.explorer select{width:100%}.explorer-search{display:flex;align-items:center;gap:6px;color:var(--muted)}.explorer-actions{display:flex;gap:6px;flex-wrap:wrap}.explorer-actions button{padding:4px 8px;font-size:12px}.tree{padding:7px;overflow-x:auto;overflow-y:auto;flex:1 1;min-height:0;min-width:0}.tree-node{min-width:max-content}.tree-row{height:26px;display:grid;grid-template-columns:14px 16px auto 28px;align-items:center;grid-column-gap:5px;column-gap:5px;padding-right:5px;border-radius:3px;cursor:pointer;width:max-content;min-width:100%;box-sizing:border-box}.tree-row.active,.tree-row:hover{background:var(--hover)}.tree-icon,.tree-twist{width:100%;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.tree-label{white-space:nowrap;overflow:visible;text-overflow:clip}.tree-progress,.tree-progress-spacer{width:28px;height:3px;justify-self:end;flex-shrink:0}.tree-progress{background:var(--progress-track);border-radius:2px;overflow:hidden}.tree-progress>span{display:block;height:100%;background:var(--good)}.explorer-resizer{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;z-index:2}.explorer-resizer.active,.explorer-resizer:hover{background:var(--accent)}.explorer-rail{writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center;height:100%;width:100%;cursor:pointer;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:0;border-radius:0;background:var(--nav-bg)}.editors{display:grid;grid-template-columns:1fr 1fr;flex:1 1;min-width:0}.editor-pane{min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:visible}.editor-title{height:34px;display:flex;align-items:center;padding:0 10px;background:var(--panel2);border-bottom:1px solid var(--border);font-size:12px;gap:8px}.editor-host{flex:1 1;min-height:0;overflow:visible;position:relative}.editor-host .monaco-editor .overflowingContentWidgets{z-index:40}.editor-host .suggest-widget{min-height:28px!important}.editor-host .suggest-widget .monaco-list-row{min-height:24px}.reveal-toggle{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.reveal-toggle button{border:0;border-radius:0;padding:3px 8px;font-size:11px;background:transparent}.reveal-toggle button.active{background:var(--hover);color:var(--text)}.toast{position:fixed;right:20px;bottom:20px;background:var(--toast-bg);border:1px solid var(--border);padding:12px 16px;border-radius:5px;z-index:20;box-shadow:0 4px 16px #0004}.dialog-backdrop{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:30}.dialog{width:min(720px,92vw);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--border);padding:24px;border-radius:6px}.dialog h2{margin:0 0 12px}.dialog-insight{margin:14px 0;padding:12px 14px;border-left:3px solid var(--accent);background:var(--panel2);color:var(--text);line-height:1.5}.dialog-meta{display:flex;flex-wrap:wrap;gap:12px 18px;margin:12px 0 16px;font-size:13px}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:6px;gap:6px}.field label,.field>span:first-child{color:var(--muted);font-size:12px}.chart{height:260px}.coming-soon{opacity:.6}.onboarding{max-width:760px;margin:50px auto;padding:0 20px}.onboarding blockquote{border-left:3px solid var(--accent);padding-left:18px;color:var(--quote);line-height:1.6}.toolbar-spacer{flex:1 1}.checkbox-field{display:flex;align-items:center;gap:8px}.checkbox-field input{width:auto}.settings-note{margin-top:18px;padding:14px;border:1px dashed var(--border);border-radius:6px;color:var(--muted);font-size:13px;line-height:1.5}@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}.explorer{display:none}.editors{grid-template-columns:1fr}.reference-pane{display:none}.practice-header{flex-wrap:wrap;height:auto;padding:8px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.project-actions{display:flex;gap:8px;align-items:center;margin-top:14px}.monaco-editor .suggest-widget{min-width:430px!important}.monaco-editor .suggest-widget .monaco-list{min-height:34px!important}.monaco-editor .suggest-widget .monaco-list-row{min-height:26px!important}.java-kind-icon{box-sizing:border-box;width:14px;height:14px;min-width:14px;min-height:14px;display:inline-grid;place-items:center;border-radius:2px;border:1px solid;background:#17202a;font-family:ui-sans-serif,system-ui,sans-serif;font-size:9px;font-weight:800;font-style:normal;line-height:1}.java-kind-icon.class,.java-kind-icon.model{color:#58a6ff}.java-kind-icon.controller{color:#67d8ef}.java-kind-icon.repository{color:#42c9a5}.java-kind-icon.mapper{color:#d78cff}.java-kind-icon.interface{color:#c69cf4;font-style:italic}.java-kind-icon.service-impl{color:#77d68c}.java-kind-icon.dto{color:#e8b86d}.java-kind-icon.exception{color:#ef7b87}.java-kind-icon.configuration{color:#e3d26f}.java-kind-icon.enum{color:#d99bdb}.java-kind-icon.application{color:#70d88b;font-size:8px}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}