@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Syne:wght@400;600;700;800&display=swap";:root{--bg: #070910;--panel: #0b0e1c;--panel2: #0f1422;--sidebar: #080b14;--line: #131826;--line2: #1a2035;--text: #dde4f0;--text2: #eef2f8;--muted: #6a7a98;--label: #9aa8bc;--accent: #20d8ef;--purple: #a78bfa;--ok: #34d399;--bad: #f87171;--warn: #f59e0b;--btn-green: #679812;--btn-green-active: #24be4d}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 Syne,-apple-system,BlinkMacSystemFont,sans-serif}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}header{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;z-index:10}header .logo{font-weight:800;font-size:12px;letter-spacing:.1em;margin-right:4px}header .logo em{color:var(--accent);font-style:normal}header .meta{font:500 11px/1 JetBrains Mono,monospace;color:var(--muted);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header .spacer{flex:1}.busy{color:var(--accent);font:600 11px JetBrains Mono,monospace}.shell{display:flex;flex:1;min-height:0;overflow:hidden}.folders{width:220px;min-width:220px;background:var(--sidebar);border-right:1px solid var(--line2);display:flex;flex-direction:column;overflow:hidden}.ctx-banner{margin:8px 8px 0;padding:10px;border-radius:6px;background:#20d8ef0f;border:1px solid rgba(32,216,239,.25)}.ctx-banner .ctx-label{font:800 9px JetBrains Mono,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.ctx-banner p{margin:0;font-size:10px;color:var(--label);line-height:1.45;font-weight:600}.folder-scroll{flex:1;overflow-y:auto;padding:8px 0}.folder-head{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px 6px 12px;background:none;border:none;color:var(--label);font:700 10px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;text-align:left}.folder-head:hover{color:var(--text2)}.folder-head .chev{color:var(--muted);font-size:9px;width:10px}.folder-head .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-head .count{color:var(--muted);font-size:9px}.project-item{display:block;width:calc(100% - 16px);margin:2px 8px 2px 20px;padding:5px 8px;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--label);font:700 10px JetBrains Mono,monospace;text-align:left;cursor:pointer}.project-item:hover{background:var(--panel2);color:var(--text)}.project-item.on{background:#0f2840;border-color:#20d8ef59;color:var(--accent)}.sidebar-foot{padding:10px 8px 12px;border-top:1px solid var(--line2);flex-shrink:0}.sidebar-foot h4{margin:0 0 8px;font:800 9px JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--warn)}.editor{width:300px;min-width:300px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.editor-scroll{flex:1;overflow-y:auto}.panel-block{padding:10px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.panel-block.tight{padding-bottom:8px}.mock-banner{flex-shrink:0;padding:8px 14px;background:#f59e0b1f;border-bottom:1px solid rgba(245,158,11,.35);color:#fcd34d;font-size:12px;line-height:1.45}.mock-banner strong{color:#fbbf24}.mock-banner code{font:600 11px JetBrains Mono,monospace;color:#fde68a}.gen-error-banner{flex-shrink:0;padding:8px 14px;background:#f871711f;border-bottom:1px solid rgba(248,113,113,.35);color:#fecaca;font-size:12px;line-height:1.45}.gen-error-banner strong{color:#f87171}.panel-hint{margin:0 0 8px;font-size:10px;color:var(--muted);line-height:1.4}.mock-inline{margin:0 0 8px;font-size:10px;color:var(--warn);font-weight:700}.panel-label{display:block;margin-bottom:6px;font:800 9px JetBrains Mono,monospace;letter-spacing:.09em;text-transform:uppercase;color:#c8d4e8}.preview-col{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.previewbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line);background:#0b0e1c99;flex-shrink:0}.fmts{display:flex;gap:4px}.fmts button{padding:4px 10px;font:700 10px JetBrains Mono,monospace;background:var(--panel2);border:1px solid var(--line2);border-radius:4px;color:var(--muted);cursor:pointer}.fmts button.on{background:#20d8ef1f;border-color:#20d8ef73;color:var(--accent)}.toggle{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:600}.toggle input{width:auto;margin:0;accent-color:var(--accent)}.stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto;background-color:var(--bg);background-image:radial-gradient(#121728 1px,transparent 1px);background-size:20px 20px}.frame{position:relative;height:min(76vh,680px);border-radius:8px;box-shadow:0 12px 48px #0000008c;border:1px solid var(--line2)}.stage iframe{width:100%;height:100%;border:none;border-radius:8px;background:#fff;display:block}.safezone{position:absolute;border:1.5px dashed rgba(32,216,239,.85);border-radius:4px;pointer-events:none}.safezone span{position:absolute;top:-18px;left:0;font:600 9px JetBrains Mono,monospace;color:var(--accent);background:#070910e6;padding:1px 5px;border-radius:3px}.empty-stage{text-align:center;max-width:360px;padding:24px}.empty-stage h2{margin:0 0 8px;font-size:16px;font-weight:800;color:var(--text2)}.empty-stage p{margin:0;font-size:12px;color:var(--muted);line-height:1.5}input,select,textarea,button{font:inherit;color:var(--text2);background:#090c16;border:1px solid var(--line2);border-radius:5px}input,select,textarea{width:100%;padding:6px 8px;margin-bottom:8px;font:600 12px JetBrains Mono,monospace}input:focus,select:focus,textarea:focus{outline:none;border-color:#20d8ef73}textarea{resize:vertical;line-height:1.4;min-height:72px}button{cursor:pointer;padding:7px 10px}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary,.btn-accent{width:100%;border:none;border-radius:5px;background:var(--btn-green);color:#fff;font:800 11px Syne,sans-serif;padding:8px 10px;transition:background .15s ease}.btn-accent{padding:7px 10px}.btn-primary:hover:not(:disabled),.btn-accent:hover:not(:disabled),.btn-primary:active:not(:disabled),.btn-accent:active:not(:disabled){background:var(--btn-green-active)}.btn-ghost{background:var(--panel2);border:1px solid var(--line2);color:var(--muted);font:700 10px JetBrains Mono,monospace;padding:4px 8px;border-radius:4px}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.gen-progress{width:100%}.gen-progress-lg{max-width:420px}.gen-progress-bar{height:3px;background:var(--line2);border-radius:999px;overflow:hidden;margin-bottom:6px}.gen-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .35s ease}.gen-progress-label{margin:0;font:600 11px JetBrains Mono,monospace;color:var(--text)}.gen-progress-label strong{color:var(--accent)}.gen-progress-detail{margin:4px 0 0;font-size:10px;color:var(--muted)}header .gen-progress{max-width:320px}header .gen-progress-detail{display:none}.gen-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#070910e0;border-radius:8px;z-index:2}.chat-log{max-height:160px;overflow-y:auto;margin-bottom:8px}.msg{padding:6px 8px;border-radius:4px;margin-bottom:4px;background:var(--panel2);font-size:11px;line-height:1.4}.msg .who{display:block;font:700 9px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}.msg.you{background:#a78bfa1a;border:1px solid rgba(167,139,250,.2)}.msg.ai{background:#20d8ef0f;border:1px solid rgba(32,216,239,.15)}.chatinput{display:flex;gap:6px}.chatinput input{margin:0;flex:1;font-size:11px}.chatinput button{width:auto;padding:6px 12px;background:var(--panel2);border:1px solid var(--line2);color:var(--accent);font-weight:800}.meta-section{padding:10px 12px 12px;border-bottom:1px solid var(--line)}.meta-section h4{margin:0 0 8px;font:800 9px JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--label)}.meta-section p,.meta-section small{font-size:11px;color:var(--muted);margin:0}.ok{color:var(--ok);font-size:11px}dl.meta-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:11px}dl.meta-dl dt{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:10px}dl.meta-dl dd{margin:0;color:var(--text)}ul.findings{list-style:none;padding:0;margin:0}ul.findings li{background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:4px;padding:7px 8px;margin-bottom:5px;font-size:11px;line-height:1.4}.fixbtn{margin-top:6px}.brand .swatches{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.brand .swatch{text-align:center}.brand .swatch span{display:block;width:32px;height:32px;border-radius:4px;border:1px solid var(--line2)}.brand .swatch small{color:var(--muted);font:600 9px JetBrains Mono,monospace}.brand .font{padding:6px 8px;background:var(--panel2);border-radius:4px;font-size:11px;margin-bottom:6px;border:1px solid var(--line2)}.brand .badges{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:4px}.badge{font:600 9px JetBrains Mono,monospace;padding:2px 6px;border-radius:10px}.badge.pass{background:#34d3991f;color:var(--ok)}.badge.warn{background:#f871711f;color:var(--bad)}.brandwarn{font-size:11px;color:var(--bad);margin:4px 0}ul.versions{list-style:none;padding:0;margin:0}ul.versions li{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 0;border-bottom:1px solid var(--line2);font-size:11px}ul.versions li span{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:10px}.export .exportctl{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.export .exportctl label{display:flex;flex-direction:column;font:700 9px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);gap:3px}.export .exportctl select,.export .exportctl input[type=number]{margin:0;width:auto;min-width:72px}.export .exportctl label.toggle{flex-direction:row;align-items:center;gap:5px;text-transform:none}ul.artifacts{list-style:none;padding:0;margin:8px 0 0}ul.artifacts li{padding:4px 0;border-bottom:1px solid var(--line2);font-size:11px}ul.artifacts a{color:var(--accent);text-decoration:none}.muted{color:var(--muted);font-size:11px}
