*{box-sizing:border-box}
.compiler-main{flex:1;min-height:0;overflow:auto;padding:clamp(18px,3vw,36px) clamp(14px,3vw,36px) 26px;background:var(--bg)}
.compiler-intro,.execution-note,.compiler-layout,.compiler-footer{width:min(1560px,100%);margin-left:auto;margin-right:auto}
.compiler-intro{margin-bottom:16px}
.compiler-intro h1{margin:2px 0 7px;font-size:clamp(1.75rem,4vw,2.7rem);line-height:1.05;letter-spacing:-.045em}
.compiler-intro>p:last-child{max-width:78ch;margin:0;color:var(--ink2);font-size:.92em;line-height:1.65}
.execution-note{margin-bottom:16px;padding:12px 14px;border:1px solid color-mix(in srgb,#b45309 28%,var(--line));border-radius:12px;background:color-mix(in srgb,#b45309 6%,var(--panel));color:var(--ink2);font-size:.78em;line-height:1.55}
.execution-note strong{color:#9a4a00}
html[data-theme="dark"] .execution-note strong{color:#fbbf24}
.compiler-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.8fr);align-items:start;gap:16px}
.editor-panel,.ai-panel{min-width:0;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.panel-heading{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid var(--line)}
.panel-heading .section-kicker{margin:0 0 2px}
.panel-heading h2{margin:0;font-size:1.02em;line-height:1.25;letter-spacing:-.02em}
.editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.text-action{color:var(--blue);font-size:.76em;font-weight:800;text-decoration:none}
.text-action:hover{text-decoration:underline}
.run-button,.ai-submit,.primary-button,.secondary-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border:0;border-radius:9px;font:inherit;font-size:.78em;font-weight:850;text-decoration:none;cursor:pointer;transition:transform .16s ease,opacity .16s ease}
.run-button,.ai-submit,.primary-button{background:var(--blue);color:#fff}
.run-button{background:var(--teal);color:#fff}
.run-button:hover,.ai-submit:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}
.run-button:disabled,.ai-submit:disabled,.secondary-button:disabled,.primary-button[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none}
.editor-frame-wrap{width:100%;height:min(70vh,760px);min-height:540px;background:#111827}
.editor-frame-wrap iframe{display:block;width:100%;height:100%;border:0;background:#111827}
.editor-status{min-height:30px;margin:0;padding:7px 12px;color:var(--muted);font-size:.68em}
.ai-heading{border-bottom:0;padding-bottom:8px}
.ai-badge{width:33px;height:33px;display:grid;place-items:center;border:1px solid var(--blue);border-radius:10px;background:var(--blue-bg);color:var(--blue);font-size:.73em;font-weight:950}
.ai-intro{margin:0;padding:0 15px 9px;color:var(--ink2);font-size:.77em;line-height:1.55}
.ai-tool-link{display:inline-block;margin:0 15px 12px}
.ai-login-gate{margin:8px 14px 16px;padding:22px 18px;border:1px solid var(--line);border-radius:13px;background:var(--bg2);text-align:center}
.ai-login-gate .gate-icon{margin:0 auto 10px}
.ai-login-gate h3{margin:0 0 7px;font-size:1.04em;letter-spacing:-.02em}
.ai-login-gate p{max-width:44ch;margin:0 auto 14px;color:var(--ink2);font-size:.78em;line-height:1.55}
.ai-workbench{padding:0 15px 16px}
.ai-form{display:flex;flex-direction:column;gap:7px}
.ai-form label{margin-top:7px;color:var(--ink);font-size:.75em;font-weight:850}
.ai-form select,.ai-form textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);padding:9px 10px;font:inherit;font-size:.78em;line-height:1.5;outline:none}
.ai-form textarea{resize:vertical;min-height:76px}
.ai-form textarea#code-context{min-height:110px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.73em}
.ai-form select:focus,.ai-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent)}
.ai-form textarea::placeholder{color:var(--muted)}
.field-hint,.privacy-hint{margin:0;color:var(--muted);font-size:.66em;line-height:1.5}
.privacy-hint{padding:8px 9px;border-left:3px solid var(--teal);background:var(--teal-bg);color:var(--ink2)}
.ai-submit{width:100%;margin-top:5px}
.ai-submit span:last-child{font-size:1.1em}
.ai-status{min-height:1.2em;margin:0;color:var(--ink2);font-size:.72em}
.ai-status[data-state="error"]{color:#b42318}
html[data-theme="dark"] .ai-status[data-state="error"]{color:#ffaaa2}
.ai-result{margin-top:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.ai-result h3{margin:0 0 8px;font-size:.92em}
.ai-answer{max-height:280px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink2);font-size:.76em;line-height:1.55}
.generated-code-panel{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.generated-label{margin:0 0 6px;color:var(--ink);font-size:.72em;font-weight:850}
.generated-code-panel pre{max-height:260px;overflow:auto;margin:0 0 9px;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font: .75em/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre}
.generated-code-panel code{font:inherit}
.generated-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.secondary-button{border:1px solid var(--line);background:var(--panel);color:var(--ink2)}
.compiler-footer{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:15px;color:var(--muted);font-size:.69em}
.compiler-footer a{color:var(--ink2);text-decoration:none}
.compiler-footer a:hover{color:var(--blue);text-decoration:underline}
.ai-workbench[hidden],.ai-login-gate[hidden],.ai-result[hidden],.generated-code-panel[hidden]{display:none!important}
.run-button:focus-visible,.ai-submit:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.text-action:focus-visible,.ai-form select:focus-visible,.ai-form textarea:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
@media(max-width:1050px){.compiler-layout{grid-template-columns:minmax(0,1fr)}.editor-frame-wrap{height:65vh;min-height:500px}.ai-panel{max-width:none}}
@media(max-width:560px){.compiler-main{padding:16px 11px 20px}.compiler-intro h1{font-size:1.85rem}.compiler-intro>p:last-child{font-size:.82em}.execution-note{font-size:.72em;padding:10px 11px}.panel-heading{align-items:flex-start;padding:12px;gap:8px}.editor-actions{gap:7px}.text-action{font-size:.69em}.run-button{min-height:35px;padding:7px 9px;font-size:.72em}.editor-frame-wrap{height:64vh;min-height:470px}.ai-workbench{padding:0 11px 12px}.ai-intro{padding-left:12px;padding-right:12px}.ai-tool-link{margin-left:12px}.ai-login-gate{margin-left:11px;margin-right:11px;padding:19px 13px}}
@media(prefers-reduced-motion:reduce){.run-button,.ai-submit,.primary-button,.secondary-button{transition:none}}
