:root{--window-bg:#1e1e1e;--titlebar-bg:#181818;--activitybar-bg:#333;--sidebar-bg:#252526;--panel-bg:#2d2d30;--tabs-bg:#252526;--tab-bg:#2d2d2d;--editor-bg:#1e1e1e;--border:#3c3c3c;--selection-bg:#094771;--text:#ccc;--muted:#8b8b8b;--accent:#007acc;--char-pending:#6a9955;--char-correct:#d4d4d4;--char-incorrect:#f48771;--char-incorrect-bg:#f4877126;--char-current-bg:#007acc38;--line-number:#858585;--sans:"Segoe UI", "IBM Plex Sans", sans-serif;--mono:"Cascadia Code", "JetBrains Mono", "Consolas", monospace;font-family:var(--sans);color:var(--text);background:var(--window-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden}button,input,textarea{font:inherit}h1,h2,h3,p{margin:0}button{appearance:none}button:focus-visible,textarea:focus-visible{outline-offset:-1px;outline:1px solid #fff}#root{height:100vh;overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#424242}::-webkit-scrollbar-track{background:0 0}.app-shell{grid-template-rows:30px minmax(0,1fr) 22px;height:100%;display:grid;overflow:hidden}.titlebar{background:var(--titlebar-bg);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;justify-content:flex-start;align-items:center;gap:12px;padding:0 12px;display:flex}.titlebar-left,.sidebar-title-row,.sidebar-summary,.statusbar-left,.statusbar-right,.code-line,.tree-item{align-items:center;display:flex}.titlebar-left,.statusbar-left,.statusbar-right{gap:8px;min-width:0}.window-dot{border-radius:50%;width:10px;height:10px}.window-dot-close{background:#ff5f57}.window-dot-minimize{background:#ffbd2e}.window-dot-maximize{background:#28c840}.titlebar-app,.titlebar-project,.summary-pill,.tree-badge,.statusbar span,.jump-button{font-size:12px}.titlebar-app,.titlebar-project{color:var(--text)}.titlebar-separator,.sidebar-context,.sidebar-message,.surface-message,.insight-grid dt,.insight-list,.insights-kicker,.insights-path,.primary-metric-label,.primary-metric-note{color:var(--muted)}.summary-pill,.tree-badge,.jump-button{border:1px solid var(--border);background:var(--panel-bg);color:var(--text);border-radius:2px;padding:2px 8px}.workbench{grid-template-columns:48px 272px minmax(0,1fr) 328px;min-height:0;display:grid;overflow:hidden}.activitybar{background:var(--activitybar-bg);border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:8px;padding-top:10px;display:flex}.activity-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-left:2px solid #0000}.activity-button-active{color:var(--text);border-left-color:var(--accent)}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);grid-template-rows:auto auto minmax(0,1fr);min-height:0;display:grid}.sidebar-header,.sidebar-summary,.status-banner,.insights-header,.insights-section{border-bottom:1px solid var(--border)}.sidebar-header{padding:10px 12px 8px}.sidebar-actions{gap:8px;margin-top:10px;display:flex}.sidebar-action-button,.sidebar-secondary-button{border:1px solid var(--border);background:var(--panel-bg);min-height:24px;color:var(--text);cursor:pointer;border-radius:2px;padding:2px 8px;font-size:12px}.sidebar-action-button-active{color:#cfe9ff;border-color:#007acc99}.sidebar-action-button:disabled,.sidebar-secondary-button:disabled{opacity:.5;cursor:default}.sidebar-create-message{border:1px solid var(--border);border-radius:2px;margin-top:10px;padding:8px;font-size:12px}.sidebar-create-message-success{color:#4ec9b0;background:#4ec9b01f}.sidebar-create-message-error{color:#f48771;background:#f487711f}.sidebar-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-size:11px}.sidebar-context{text-transform:uppercase;letter-spacing:.06em;margin-left:auto;font-size:11px}.sidebar-summary{flex-wrap:wrap;gap:8px;padding:8px 12px}.explorer-panel{min-height:0;overflow:hidden}.tree-list{height:100%;min-height:0;padding:4px 0 16px;overflow:auto}.tree-item{width:100%;min-height:22px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;gap:6px;padding:2px 10px 2px 0}.tree-item:hover,.jump-button:hover{background:#ffffff0f}.tree-create-form{align-items:center;gap:6px;min-height:24px;padding:2px 10px 2px 0;display:flex}.tree-create-icon{text-align:center;width:14px;color:var(--muted);flex:none}.tree-create-input{min-width:0;height:22px;color:var(--text);font:inherit;background:#1f1f1f;border:1px solid #007acca6;border-radius:2px;flex:auto;padding:0 6px}.tree-create-input:focus{outline-offset:0;outline:1px solid #007acc73}.tree-create-hint{color:var(--muted);white-space:nowrap;flex:none;font-size:10px}.explorer-context-menu{z-index:40;border:1px solid var(--border);background:#252526;border-radius:4px;min-width:148px;padding:6px;position:fixed;box-shadow:0 10px 24px #00000047}.explorer-context-menu-item{width:100%;min-height:28px;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 10px}.explorer-context-menu-item:hover{background:#ffffff14}.tree-folder{font-weight:500}.tree-caret,.tree-file-dot{text-align:center;width:14px;color:var(--muted);flex:none}.tree-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:13px;overflow:hidden}.tree-file-active{background:var(--selection-bg)}.tree-badge{color:var(--muted);margin-left:auto}.tree-badge-done{color:#4ec9b0;border-color:#4ec9b04d}.tree-badge-progress{color:#569cd6;border-color:#569cd64d}.tree-badge-review{color:#ffd666;border-color:#ffd6664d}.editor-area{background:var(--editor-bg);border-right:1px solid var(--border);grid-template-rows:35px minmax(0,1fr);min-width:0;min-height:0;display:grid}.editor-tabs{background:var(--tabs-bg);border-bottom:1px solid var(--border);align-items:flex-end;display:flex}.editor-tab{border-right:1px solid var(--border);background:var(--tab-bg);height:35px;color:var(--muted);align-items:center;padding:0 14px;font-size:13px;display:flex}.editor-tab-active{background:var(--editor-bg);color:var(--text)}.editor-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.status-banner{padding:6px 12px;font-size:12px}.status-banner-error{color:#f48771;background:#f487711f}.status-banner-success{color:#4ec9b0;background:#4ec9b01f}.typing-surface{background:var(--editor-bg);min-height:0;position:relative;overflow:hidden}.typing-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;inset:0}.code-scroll{height:100%;padding:8px 0 24px;overflow:auto}.code-line{align-items:flex-start;gap:12px;padding:0 16px 0 0}.line-number{text-align:right;width:52px;font-family:var(--mono);color:var(--line-number);-webkit-user-select:none;user-select:none;flex:none;padding-right:12px;font-size:13px;line-height:22px}.line-content{--syntax-plain:#abb2bf;--syntax-comment:#5c6370;--syntax-string:#98c379;--syntax-number:#d19a66;--syntax-keyword:#c678dd;--syntax-builtin:#56b6c2;--syntax-function:#61afef;--syntax-class-name:#e5c07b;--syntax-decorator:#e06c75;--syntax-operator:#56b6c2;--syntax-punctuation:#abb2bf;min-width:0;font-family:var(--mono);white-space:pre;color:var(--syntax-plain);font-size:13px;line-height:22px}.char{color:var(--syntax-plain);text-underline-offset:.18em;border-radius:2px;text-decoration-thickness:1.5px}.char-pending{opacity:.42}.char-correct{opacity:1}.char-incorrect{opacity:1;color:#ff7b72;text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:#ff7b72}.char-current{background:var(--char-current-bg);outline-offset:-1px;outline:1px solid #007acc73}.char-current.char-pending{opacity:1}.char-break{min-width:.55ch;display:inline-block}.syntax-plain,.syntax-punctuation{color:var(--syntax-plain)}.syntax-comment{color:var(--syntax-comment);font-style:italic}.syntax-string{color:var(--syntax-string)}.syntax-number{color:var(--syntax-number)}.syntax-keyword,.syntax-boolean{color:var(--syntax-keyword)}.syntax-builtin,.syntax-constant,.syntax-interpolation,.syntax-f-string{color:var(--syntax-builtin)}.syntax-function{color:var(--syntax-function)}.syntax-class-name,.syntax-namespace{color:var(--syntax-class-name)}.syntax-decorator{color:var(--syntax-decorator)}.syntax-operator{color:var(--syntax-operator)}.char.char-incorrect{color:#ff7b72}.char-empty{min-width:.4ch;display:inline-block}.surface-message,.sidebar-message{padding:8px 12px;font-size:12px}.insights-panel{background:var(--sidebar-bg);min-height:0;overflow:auto}.insights-header{padding:10px 12px 8px}.insights-header-copy{gap:3px;min-width:0;display:grid}.insights-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:9px}.insights-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:600;line-height:1.25;overflow:hidden}.insights-path{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:10px;line-height:1.3;overflow:hidden}.insights-actions{grid-template-columns:repeat(3,minmax(0,1fr));place-content:start stretch;gap:6px;display:grid}.insights-actions .jump-button:last-child{grid-column:1/-1}.insights-section{padding:9px 12px}.insights-section-primary{padding-top:8px}.insights-section-grow{min-height:0}.insights-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:9px}.progress-panel{border:1px solid var(--border);background:#ffffff05;border-radius:3px;gap:7px;padding:8px;display:grid}.progress-header-row,.progress-meta-row,.metric-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.progress-value,.progress-eta,.compact-metric strong{color:var(--text)}.progress-value{font-size:15px;font-weight:600;line-height:1.1}.progress-eta,.progress-meta-row{font-size:10px}.progress-track{border:1px solid var(--border);background:linear-gradient(90deg,#ffffff0d,#ffffff05),repeating-linear-gradient(90deg,#ffffff0a 0 18px,#ffffff04 18px 36px);border-radius:999px;width:100%;height:10px;position:relative}.progress-fill{background:linear-gradient(90deg,#007accf2,#2d9cdbe6);border-radius:999px;height:100%}.progress-thumb{background:#d7ecff;border:1px solid #00000073;border-radius:2px;width:16px;height:8px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 0 1px #007acc2e}.progress-thumb:before,.progress-thumb:after{content:"";background:#1e1e1e;border:1px solid #ffffff2e;border-radius:50%;width:4px;height:4px;position:absolute;bottom:-4px}.progress-thumb:before{left:1px}.progress-thumb:after{right:1px}.primary-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px;display:grid}.primary-metric-card{border:1px solid var(--border);background:#ffffff05;border-radius:3px;gap:3px;min-width:0;padding:7px 8px;display:grid}.primary-metric-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:9px}.primary-metric-value{color:var(--text);font-size:16px;font-weight:600;line-height:1.1}.metric-rows{gap:6px;margin-top:8px;display:grid}.compact-metric{border:1px solid var(--border);background:#ffffff05;border-radius:3px;flex:1 1 0;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:7px 8px;display:flex}.compact-metric span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:9px}.compact-metric strong{font-size:12px;font-weight:600;line-height:1.2}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin:0;display:grid}.insight-grid div{min-width:0}.insight-grid dt{text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px;font-size:9px}.insight-grid dd{color:var(--text);margin:0;font-size:11px}.jump-button{cursor:pointer;width:100%;min-height:24px;padding:2px 6px;font-size:10px}.jump-button:disabled{opacity:.4;cursor:default}.insight-list{margin:0;padding-left:16px;font-size:11px;line-height:1.4}.insight-list li+li{margin-top:6px}.statusbar{background:var(--accent);color:#fff;justify-content:space-between;align-items:center;gap:12px;padding:0 10px;font-size:12px;display:flex}@media (width<=1360px){.workbench{grid-template-columns:48px 252px minmax(0,1fr) 300px}.insights-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-header-row,.progress-meta-row,.metric-row{flex-direction:column;align-items:stretch}}@media (width<=1180px){.workbench{grid-template-columns:48px 260px minmax(0,1fr)}.insights-panel{display:none}}@media (width<=960px){.statusbar-right{display:none}}@media (width<=840px){.workbench{grid-template-columns:40px 1fr}.sidebar{display:none}.editor-area{border-right:0;grid-column:2}}
