:root,[data-theme=light]{--bg:#f5f5f5;--surface:#fff;--border:#d0d0d0;--text:#1a1a1a;--muted:#6b6b6b;--accent:#7e14ff;--accent-text:#fff;--hover:#eceef1;--active:#e2e5ea}[data-theme=dark]{--bg:#0d1117;--surface:#161b22;--border:#30363d;--text:#e6edf3;--muted:#8b949e;--accent:#a371ff;--accent-text:#fff;--hover:#21262d;--active:#2d333b}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);height:100dvh;font-family:system-ui,sans-serif;overflow:hidden}.app-shell{background:var(--bg);grid-template:"topbar topbar topbar"40px"toolrail toolbox sidepanel""toolrail canvas sidepanel"1fr"toolrail statusbar sidepanel"24px/48px 1fr 240px;height:100dvh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--border);grid-area:topbar;align-items:center;padding:0 12px;display:flex}.brand{color:var(--accent);letter-spacing:-.01em;font-size:14px;font-weight:700}.tb-btn{font:inherit;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 10px;font-size:13px;line-height:1;transition:background .12s,border-color .12s,color .12s}.tb-btn:hover:not(:disabled){background:var(--hover);border-color:var(--border)}.tb-btn:active:not(:disabled){background:var(--active)}.tb-btn:disabled{opacity:.4;cursor:default}.tb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tb-btn.icon{justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:16px;display:inline-flex}.tb-btn.ai-btn:not(:disabled){color:var(--accent);font-weight:600}.tb-btn.ai-btn:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.toolrail{background:var(--surface);border-right:1px solid var(--border);grid-area:toolrail}.toolbox{background:var(--surface);border-bottom:1px solid var(--border);border-right:1px solid var(--border);grid-area:toolbox}.canvas-area{background:var(--bg);grid-area:canvas;position:relative;overflow:hidden}.sidepanel{background:var(--surface);border-left:1px solid var(--border);grid-area:sidepanel}.statusbar{background:var(--surface);border-top:1px solid var(--border);border-right:1px solid var(--border);color:var(--muted);grid-area:statusbar;align-items:center;padding:0 8px;font-size:11px;display:flex}.pwa-toast{z-index:1200;max-width:320px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;animation:.18s ease-out pwa-toast-in;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 24px #0000002e}.pwa-toast>span:first-child{color:var(--accent);font-weight:700}@keyframes pwa-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-panel{z-index:1100;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;width:360px;max-width:92vw;animation:.18s ease-out ai-panel-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 28px #0000002e}@keyframes ai-panel-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.ai-panel-head{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.ai-panel-body{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.ai-settings summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:12px}.ai-field{color:var(--muted);flex-direction:column;gap:4px;margin-top:10px;font-size:12px;display:flex}.ai-field select,.ai-field input,.ai-prompt{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px;font-size:13px}.ai-field select:focus,.ai-field input:focus,.ai-prompt:focus{outline:2px solid var(--accent);outline-offset:0}.ai-note{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.4}.ai-prompt{resize:vertical;width:100%}.ai-error{color:#e5484d;background:#e5484d1f;border:1px solid #e5484d59;border-radius:6px;padding:8px 10px;font-size:12px}.ai-output{color:var(--text);white-space:pre-wrap;font-size:13px;line-height:1.45}.ai-thinking summary{cursor:pointer;color:var(--muted);font-size:12px}.ai-thinking pre{color:var(--muted);white-space:pre-wrap;word-break:break-word;margin-top:6px;font-size:11px;line-height:1.4}.ai-log{flex-direction:column;gap:4px;font-size:11px;list-style:none;display:flex}.ai-log li{background:var(--bg);border-left:2px solid var(--border);border-radius:5px;align-items:baseline;gap:6px;padding:4px 6px;display:flex}.ai-log li[data-status=ok]{border-left-color:#2fae4e}.ai-log li[data-status=error]{border-left-color:#e5484d}.ai-log li[data-status=running]{border-left-color:var(--accent)}.ai-log code{color:var(--accent);flex-shrink:0;font-weight:600}.ai-log span{color:var(--muted);word-break:break-word}
