:root{color-scheme:light;--ink: #16202a;--muted: #64717d;--paper: #f7f8f6;--surface: #ffffff;--surface-2: #edf4f2;--line: #d8dfdc;--line-strong: #aebbb5;--blue: #165dff;--blue-ink: #0d3eaa;--cyan: #0e8f9d;--green: #177a47;--green-soft: #dff6e9;--amber: #b56a05;--amber-soft: #fff2ce;--red: #b72e2e;--red-soft: #ffe1df;--violet: #6741d9;--shadow: 0 20px 60px rgba(22, 32, 42, .1);--mono: "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--sans: Inter, ui-sans-serif, "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{margin:0;color:var(--ink);font-family:var(--sans)}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:16px;background:linear-gradient(90deg,rgba(22,32,42,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(22,32,42,.035) 1px,transparent 1px),radial-gradient(circle at top left,rgba(14,143,157,.1),transparent 34rem),var(--paper);background-size:24px 24px,24px 24px,auto,auto}.topbar{display:grid;grid-template-columns:minmax(260px,360px) minmax(420px,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:8px;background:#ffffffeb;box-shadow:var(--shadow)}.brand,.top-actions,.panel-title,.inspect-form,.input-wrap,.primary-button,.ghost-button,.icon-button,.mini-button,.chip,.output-actions,.snippet-tabs,.split-title,.chip-line{display:flex;align-items:center}.brand{gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#165dfff5,#0e8f9deb),var(--blue)}.brand h1,.brand p,.rail-section h2,.structure-panel h3,.small-note,.concept-panel figcaption{margin:0}.brand p{color:var(--muted);font-size:.78rem;line-height:1.35}.brand h1{font-size:1.45rem;line-height:1.08;letter-spacing:0}.inspect-form{gap:8px;min-width:0}.inspect-form label{flex:0 0 auto;color:var(--muted);font-size:.82rem;font-weight:700}.input-wrap{min-width:200px;flex:1;gap:8px;height:42px;padding:0 12px;border:1px solid var(--line-strong);border-radius:7px;background:#fff}.input-wrap svg{color:var(--cyan);flex:0 0 auto}.input-wrap input{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent}.top-actions{justify-content:flex-end;gap:8px}.primary-button,.ghost-button,.icon-button,.mini-button,.snippet-tabs button,.policy-mode button{border:1px solid transparent;border-radius:7px;font-weight:800;transition:transform .14s ease,border-color .14s ease,background .14s ease}.primary-button,.ghost-button{gap:8px;height:42px;padding:0 13px}.primary-button{color:#fff;background:var(--blue)}.primary-button:hover,.ghost-button:hover,.mini-button:hover,.icon-button:hover,.snippet-tabs button:hover,.policy-mode button:hover{transform:translateY(-1px)}.primary-button:disabled{opacity:.72;cursor:wait}.ghost-button,.mini-button,.icon-button{color:var(--ink);border-color:var(--line);background:#fff}.icon-button{justify-content:center;width:42px;height:42px;padding:0}.mini-button{gap:6px;min-height:32px;padding:0 10px;font-size:.82rem}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-strip{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:12px 14px;border:1px solid #f0b7b1;border-radius:8px;color:var(--red);background:var(--red-soft)}.workspace-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 360px;gap:14px;margin-top:14px;align-items:start}.left-rail,.panel,.output-band{border:1px solid var(--line);border-radius:8px;background:#fffffff2}.left-rail{padding:14px;box-shadow:var(--shadow)}.panel{padding:14px}.panel-title{gap:8px;min-height:26px;color:var(--ink);font-weight:900}.panel-title svg{color:var(--blue)}.score-ring{display:grid;place-items:center;width:158px;height:158px;margin:18px auto 12px;border-radius:50%;background:radial-gradient(circle,#fff 0 58%,transparent 59%),conic-gradient(var(--blue) var(--score),#dde7e5 0)}.score-ring strong{font-size:2.45rem;line-height:1}.score-ring span{color:var(--muted);font-size:.82rem;font-weight:800}.small-note{color:var(--muted);font-size:.82rem;line-height:1.45}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.metric{min-width:0;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2)}.metric span{display:block;color:var(--muted);font-size:.72rem}.metric strong{display:block;margin-top:4px;font-size:1rem}.rail-section{padding-top:14px;border-top:1px solid var(--line)}.rail-section+.rail-section{margin-top:14px}.rail-section h2,.structure-panel h3{font-size:.92rem}.file-list{display:grid;gap:8px;margin-top:10px}.file-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fff}.file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.file-row strong{font-family:var(--mono);font-size:.78rem}.file-row small{grid-column:2 / -1;color:var(--muted);font-size:.75rem}.status-dot{width:9px;height:9px;border-radius:999px}.dot-good{background:var(--green)}.dot-warn{background:var(--amber)}.dot-bad{background:var(--red)}.recommendations{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.recommendations li{padding:9px 10px;border-left:3px solid var(--blue);border-radius:6px;color:#27313a;background:#f5f8ff;line-height:1.38}.center-stack,.right-rail{display:grid;gap:14px}.editor-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;margin-top:12px}.editor-grid label,.wide-label{display:grid;gap:6px}.editor-grid span,.wide-label span{color:var(--muted);font-size:.78rem;font-weight:800}.wide-label{margin-top:10px}.wide-label em{color:#8b98a3;font-style:normal;font-weight:700}.editor-grid input,.wide-label textarea{width:100%;border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);background:#fff;outline:0}.editor-grid input{height:38px;padding:0 10px}.wide-label textarea{min-height:126px;resize:vertical;padding:10px;font-family:var(--mono);font-size:.84rem;line-height:1.45}.llms-preview,.source-preview{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.code-head,.output-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.code-head{min-height:42px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);background:#f8faf9}.code-head span{color:var(--muted);font-weight:850}pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.82rem;line-height:1.48}.llms-preview pre,.source-preview pre{max-height:240px;overflow:auto;padding:12px;background:#fbfcfd}.source-preview pre{max-height:190px}.split-title{justify-content:space-between;gap:10px}.chip-line{gap:6px;flex-wrap:wrap;justify-content:flex-end}.chip{gap:4px;min-height:26px;padding:0 8px;border-radius:999px;font-size:.76rem;font-weight:900}.chip-good{color:var(--green);background:var(--green-soft)}.chip-warn{color:var(--amber);background:var(--amber-soft)}.chip-bad{color:var(--red);background:var(--red-soft)}.chip-neutral{color:#40505c;background:#e9eef2}.structure-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.85fr);gap:14px;margin-top:12px}.issue-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.issue-list li{display:grid;grid-template-columns:18px 1fr;gap:7px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff}.issue-good svg{color:var(--green)}.issue-warn svg{color:var(--amber)}.issue-bad svg{color:var(--red)}.link-table{display:grid;gap:8px;margin-top:10px}.link-table a{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:6px;align-items:center;min-height:38px;padding:8px;border:1px solid var(--line);border-radius:7px;color:var(--blue-ink);text-decoration:none;background:#fff}.link-table a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850}.link-table a small{color:var(--muted)}.empty-text{margin:10px 0 0;color:var(--muted)}.policy-mode{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.policy-mode button{min-height:34px;color:var(--muted);border-color:var(--line);background:#fff}.policy-mode button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.policy-list{display:grid;gap:8px;margin-top:12px}.policy-row{display:grid;grid-template-columns:minmax(0,1fr) 58px auto;gap:8px;align-items:center;min-height:54px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff}.policy-row strong,.policy-row span{display:block}.policy-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-row span{color:var(--muted);font-size:.75rem}.concept-panel{padding:0;overflow:hidden}.concept-panel img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;border-bottom:1px solid var(--line)}.concept-panel figcaption{padding:12px;color:var(--muted);font-size:.82rem;line-height:1.4}.output-band{margin-top:14px;padding:14px;box-shadow:var(--shadow)}.output-head{flex-wrap:wrap}.output-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.snippet-tabs{gap:5px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f7faf9}.snippet-tabs button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 9px;color:var(--muted);background:transparent}.snippet-tabs button.active{color:#fff;background:var(--violet)}.output-code{max-height:420px;overflow:auto;margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#111822;color:#e8fbff}@media(max-width:1280px){.topbar{grid-template-columns:1fr}.inspect-form{width:100%}.top-actions{justify-content:flex-start}.workspace-grid{grid-template-columns:280px minmax(0,1fr)}.right-rail{grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(280px,420px)}}@media(max-width:880px){.app-shell{padding:10px}.workspace-grid,.right-rail,.structure-grid,.editor-grid{grid-template-columns:1fr}.inspect-form{display:grid;grid-template-columns:1fr}.left-rail{order:0}.metric-row{grid-template-columns:1fr}.policy-row{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.topbar,.left-rail,.panel,.output-band{border-radius:7px}.brand{align-items:flex-start}.top-actions,.output-actions,.snippet-tabs{width:100%}.ghost-button,.primary-button,.snippet-tabs button,.mini-button{justify-content:center;flex:1}.score-ring{width:138px;height:138px}}
