:root{color-scheme:light;--bg: #f6fbf7;--bg-2: #eaf6ec;--card: rgba(255, 255, 255, .88);--card-strong: #ffffff;--border: #d8e8db;--text: #203c29;--muted: #69806f;--primary: #34955a;--primary-2: #7acb70;--shadow: 0 18px 42px rgba(53, 98, 65, .1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45;color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at top left,rgba(122,203,112,.18),transparent 30%),radial-gradient(circle at top right,rgba(245,169,127,.14),transparent 24%),linear-gradient(180deg,var(--bg),var(--bg-2))}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app.wrap{max-width:1440px;margin:0 auto;padding:22px 18px 48px;min-height:100vh;display:flex;flex-direction:column}.app-header{display:grid;gap:16px}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 18px;border:1px solid var(--border);border-radius:18px;background:#ffffffbd;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.console-topbar .brand{display:grid;gap:4px}.console-topbar .brand strong{margin:0;font-size:1.15rem;font-weight:700;color:var(--text)}.console-topbar .brand span{margin:0;font-size:.875rem;color:var(--muted);line-height:1.45;max-width:42rem}.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.chip,.home-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:#ffffffd1;color:var(--text);font-size:.875rem;font-weight:600;text-decoration:none}.home-link:hover{background:#3a9d5514;border-color:#3a9d5524;text-decoration:none}.nav .nav-link-active{border-color:#3a9d556b;background:#3a9d551f;box-shadow:0 0 0 1px #3a9d5514}.banner.ok{border-color:#3a9d5559;background:#3a9d5514;color:var(--text)}.app-toast{position:fixed;top:.85rem;right:.85rem;left:auto;z-index:10000;max-width:min(440px,94vw);margin:0;padding:.65rem .85rem;border:1px solid rgba(58,157,85,.22);border-radius:16px;box-shadow:0 6px 24px #00000024}.llm-nav-btn{cursor:pointer;font:inherit}.llm-nav-btn[aria-expanded=true]{border-color:#3a9d5559;background:#3a9d551f}.llm-config-region{margin-top:2px}.llm-config-panel{padding:16px 18px 18px;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.legacy-embed-body{padding:0}.llm-config-title{margin:0 0 .35rem;font-size:1.05rem;color:var(--text)}.llm-config-note{margin:0 0 1rem;font-size:.82rem;line-height:1.45}.llm-config-note code{font-size:.85em}.llm-config-form{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.llm-field.llm-field-grow{flex:1 1 240px}.llm-field.llm-field-grow input{min-width:260px}.llm-apikey-wrap{flex:1 1 100%}.llm-apikey-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch}.llm-apikey-row input{flex:1 1 220px;min-width:200px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffe6;color:var(--text);font-size:.9rem}.llm-toggle-key{flex:0 0 auto;white-space:nowrap}.llm-masked-hint{margin:.35rem 0 0;font-size:.78rem}.llm-masked-hint strong{font-weight:650;letter-spacing:.02em}.llm-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;flex:1 1 100%;margin-top:.25rem}.llm-banner{margin-top:.75rem;margin-bottom:0}.llm-test-result{margin-top:.85rem;padding:.65rem .85rem;border-radius:16px;font-size:.88rem}.llm-test-result.ok{background:#7acb701f;border:1px solid rgba(58,157,85,.22);color:#203c29}.llm-test-result.err{background:#db5f5f1f;border:1px solid rgba(219,95,95,.22);color:#8f2a2a}.llm-test-label{font-weight:700;margin-bottom:.35rem}.llm-test-body{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.45;max-height:200px;overflow:auto}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.toolbar-field{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.toolbar-field span{font-weight:600}.toolbar-field input,.toolbar-field select{min-width:220px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffe6;color:var(--text);font-size:.9rem}.btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;border:1px solid rgba(58,157,85,.18);background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-size:.9rem;font-weight:600}.btn.secondary{background:#ffffffd1;color:var(--text);border:1px solid var(--border)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{padding:6px 10px;font-size:.8rem;margin-right:.35rem}.app-main{flex:1;margin-top:18px}.banner.error{background:#db5f5f24;border:1px solid rgba(219,95,95,.22);color:#8f2a2a;padding:.65rem .85rem;border-radius:16px;margin-bottom:.75rem;font-size:.9rem}.banner.hint{background:#7acb701f;border:1px solid rgba(58,157,85,.22);color:#203c29;padding:.65rem .85rem;border-radius:16px;margin-bottom:.75rem;font-size:.85rem}.banner.hint code{font-size:.8em;margin-left:.25rem}.empty-hint{color:var(--muted);padding:1rem;background:var(--card);border:1px dashed var(--border);border-radius:16px}.table-wrap{overflow-x:auto;overflow:auto;border:1px solid var(--border);border-radius:16px;background:#ffffffd1}.project-card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.project-card__head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.project-card__title-wrap{min-width:0}.project-card__name{margin:0;font-size:1.05rem;line-height:1.3;color:var(--text)}.project-card__meta{margin:4px 0 0;font-size:.8rem;color:var(--muted)}.project-card__code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.project-card__dot{margin:0 4px}.project-card__status-wrap{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot--running{background:#3a9d55;animation:status-dot-blink 1.2s ease-in-out infinite}.status-dot--stopped{background:#db5f5f}.status-dot--pending{background:#9aaa9f;animation:runtime-pulse 1.4s ease-in-out infinite}.status-dot--unknown{background:#b8c4bc}@keyframes status-dot-blink{0%,to{opacity:.35;transform:scale(.88)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.status-dot--running,.status-dot--pending,.badge.runtime-pending{animation:none}.status-dot--running{opacity:1}}.project-card__status{flex-shrink:0;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:#ffffffe6;font-size:.75rem;font-weight:600;text-transform:lowercase}.project-card__status--active{color:#2d7a41;border-color:#3a9d553d;background:#3a9d551a}.project-card__body{display:grid;gap:10px}.project-card__row{display:grid;gap:4px}.project-card__label{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.project-card__runtime{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.badge.runtime-pending{color:var(--muted);border-style:dashed;animation:runtime-pulse 1.4s ease-in-out infinite}@keyframes runtime-pulse{0%,to{opacity:.55}50%{opacity:1}}.project-card__link{font-size:.82rem;word-break:break-all}.project-card__actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto;padding-top:4px;border-top:1px solid rgba(216,232,219,.8)}.project-card__action-slot{display:inline-flex;align-items:center}.project-card__confirm{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center;padding:4px 8px;border-radius:10px;border:1px solid rgba(216,232,219,.95);background:#fffffff2;box-shadow:0 2px 8px #1f3b2c14}.project-card__confirm-text{font-size:.78rem;font-weight:600;color:var(--text);white-space:nowrap}.home-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#ffffffd1}.home-toolbar__field{display:grid;gap:4px;font-size:.78rem;color:var(--muted)}.home-toolbar__field input,.home-toolbar__field select{min-width:160px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;font:inherit;color:var(--text);background:#fff}.home-toolbar__count{margin-left:auto;font-size:.82rem;color:var(--muted)}.home-main{margin-top:4px}.project-table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:840px}.project-table th,.project-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e6f0e7;vertical-align:top}.project-table th{position:sticky;top:0;background:#f2fbf3;font-weight:600;white-space:nowrap}.project-table tbody tr:hover{background:#3a9d550f}.cell-url{max-width:220px;word-break:break-all}.cell-url a{color:var(--primary)}.runtime-cell{display:grid;gap:6px;min-width:120px}.runtime-ports{display:flex;flex-wrap:wrap;gap:5px}.runtime-port{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border-radius:999px;border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;line-height:1;background:#ffffffe6}.runtime-port.on{color:#2d7a41;border-color:#3a9d553d;background:#3a9d551a}.runtime-port.off{color:#b23d3d;border-color:#db5f5f38;background:#db5f5f1a}.runtime-muted{color:var(--muted);font-size:.78rem}.cell-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.app-footer{margin-top:1.5rem}.app-footer-stack{display:grid;gap:1.25rem}.chat-agent-panel{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:1rem 1.1rem 1.15rem}.chat-agent-title{margin:0 0 .35rem;font-size:1.05rem;color:var(--text)}.chat-agent-note{margin:0 0 .85rem;font-size:.82rem;line-height:1.45}.chat-agent-config-hint{margin-bottom:.75rem}.chat-context-controls{display:grid;gap:.75rem;margin-bottom:.85rem}.chat-context-toggles{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;font-size:.85rem;color:var(--text)}.chat-toggle{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.chat-toggle input{accent-color:var(--primary)}.chat-user-notes{display:grid;gap:.35rem;font-size:.8rem;color:var(--muted)}.chat-user-notes span{font-weight:600}.chat-user-notes textarea{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffe6;color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical;min-height:72px}.chat-thread{border:1px solid var(--border);border-radius:16px;background:#ffffffb8;min-height:140px;max-height:360px;overflow:auto;padding:.65rem .75rem;margin-bottom:.75rem}.chat-thread-empty{margin:.5rem .25rem}.chat-messages{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.chat-msg{border-radius:14px;padding:.5rem .65rem;border:1px solid rgba(58,157,85,.12)}.chat-msg-user{background:#3a9d5514}.chat-msg-assistant{background:#ffffffeb}.chat-msg-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.35rem}.chat-msg-body{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.45}.chat-input-row{display:grid;gap:.55rem}.chat-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffe6;color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical}.chat-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.chat-agent-error{margin-top:.65rem;margin-bottom:0}.plan-agent-panel{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:1rem 1.1rem 1.15rem}.plan-agent-title{margin:0 0 .35rem;font-size:1.05rem;color:var(--text)}.plan-agent-note{margin:0 0 .85rem;font-size:.82rem;line-height:1.45}.plan-agent-note code{font-size:.85em}.plan-agent-config-hint{margin-bottom:.75rem}.plan-output{min-height:160px;max-height:420px}.plan-markdown-body{margin:0;max-height:none}.plan-scan-hint{margin:0;font-size:.78rem}.plan-save-hint,.plan-agent-error{margin-top:.65rem;margin-bottom:0}.exec-agent-note{margin:0 0 .85rem;font-size:.82rem;line-height:1.45}.exec-agent-controls{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;margin-bottom:.75rem}.exec-agent-field{display:grid;gap:.25rem;font-size:.78rem;color:var(--muted)}.exec-agent-field span{font-weight:600}.exec-agent-field select,.exec-agent-field input[type=number]{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#ffffffeb;color:var(--text);font-size:.88rem;min-width:220px}.exec-agent-field-num input{min-width:72px;width:72px}.exec-agent-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer}.exec-agent-toggle input{accent-color:var(--primary)}.exec-agent-output{max-height:480px}.exec-agent-loading{display:flex;align-items:center;gap:.35rem;margin-bottom:.5rem;font-size:.82rem;color:var(--muted)}.exec-agent-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:exec-dot 1s ease-in-out infinite}.exec-agent-loading-dot:nth-child(2){animation-delay:.15s}.exec-agent-loading-dot:nth-child(3){animation-delay:.3s}@keyframes exec-dot{0%,to{opacity:.25;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}.exec-agent-iteration{border:1px solid var(--border);border-radius:14px;padding:.55rem .65rem;margin-bottom:.6rem;background:#ffffff8c}.exec-agent-iteration--current{border-color:#3a9d5573;box-shadow:0 0 0 1px #3a9d551f;background:#3a9d550f}.exec-agent-iter-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.45rem;font-size:.88rem}.exec-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px}.exec-badge-ok{background:#3a9d5529;color:var(--primary)}.exec-badge-fail{background:#c8505024;color:#a33}.exec-badge-run{background:#788cc82e;color:#415}.exec-agent-block{margin-top:.4rem}.exec-agent-block-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem}.exec-patch-summary{margin:0 0 .35rem;font-size:.82rem}.exec-changes{margin:0;padding-left:1.1rem;font-size:.8rem}.exec-pre{margin:0;padding:.45rem .5rem;border-radius:10px;background:#0000000a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;line-height:1.35;overflow:auto;max-height:200px}.exec-pre-warn{background:#c878281a;color:#642}.exec-diff-stack{display:grid;gap:.5rem}.exec-diff-file{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#ffffffa6}.exec-diff-file>summary{cursor:pointer;padding:.45rem .65rem;font-size:.82rem;font-weight:600;list-style:none}.exec-diff-file>summary::-webkit-details-marker{display:none}.exec-diff-pair{display:grid;gap:0;border-top:1px solid var(--border);font-size:.74rem;line-height:1.38}.exec-diff-before,.exec-diff-after{margin:0;padding:.45rem .55rem;overflow:auto;max-height:220px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.exec-diff-before{background:#64646417;color:#3d3d3d}.exec-diff-after{background:#3a9d551c;color:var(--text)}.exec-risk-hint{margin:0;font-size:.8rem;color:#8a5a1c}.exec-final{margin-top:.65rem}.exec-agent-error{margin-top:.65rem;margin-bottom:0}.result-card{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:1rem 1.1rem}.result-card h2{margin:0 0 .5rem;font-size:1.05rem;color:var(--text)}.result-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.muted{color:var(--muted);font-size:.85rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:650;text-transform:uppercase}.badge.ok{color:#2d7a41;background:#3a9d551f;border:1px solid rgba(58,157,85,.22)}.badge.bad{color:#b23d3d;background:#db5f5f24;border:1px solid rgba(219,95,95,.22)}.result-dl{margin:0;display:grid;grid-template-columns:140px 1fr;gap:.35rem .75rem;font-size:.875rem}.result-dl dt{margin:0;font-weight:600;color:var(--muted)}.result-dl dd{margin:0}.err-text{color:#b23d3d;word-break:break-word}.json-block{margin:0;padding:.5rem .65rem;background:#1a2820;color:#e8f4eb;border-radius:14px;overflow-x:auto;font-size:.78rem;line-height:1.4;max-height:280px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.scan-panel{margin-top:1.25rem;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.scan-panel--empty{background:#ffffff8c}.scan-panel__hint{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}.scan-panel__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.scan-panel__title{margin:0;font-size:1.05rem;font-weight:700}.scan-panel__meta{font-weight:500;font-size:.82rem;color:var(--muted)}.scan-panel__actions{display:flex;flex-wrap:wrap;gap:8px}.scan-panel__tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.scan-panel__tab{border:1px solid var(--border);background:#ffffffa6;color:var(--text);border-radius:999px;padding:6px 14px;font-size:.86rem;font-weight:600;cursor:pointer}.scan-panel__tab:hover{border-color:#34955a73}.scan-panel__tab--active{background:#34955a24;border-color:#34955a80;color:var(--primary)}.scan-panel__body--flush{border-style:solid}.startup-env-panel{display:flex;flex-direction:column;gap:12px}.startup-env-status{margin:0;font-size:.86rem;line-height:1.45}.startup-env-status__row{margin:.15rem 0}.startup-env-status__detail{font-size:.82rem}.startup-env-hint{display:inline-block;margin-left:.25rem;padding:.15rem .55rem;border-radius:8px;font-size:.8rem;font-weight:600}.startup-env-hint--ok{color:#2d7a41;background:#3a9d551f}.startup-env-hint--warm{color:#7a5a12;background:#f5b4502e}.startup-env-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px 16px}.startup-env-field{display:flex;flex-direction:column;gap:6px;margin:0;font-size:.82rem}.startup-env-field__label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted)}.startup-env-field__badge{font-size:.72rem;font-weight:650;color:var(--primary)}.startup-env-field__input{width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border);font-size:.86rem;background:#ffffffeb}.startup-env-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.startup-env-preview{margin:0;border:1px dashed rgba(56,118,76,.3);border-radius:12px;padding:10px 12px;background:#ffffff73}.startup-env-preview summary{cursor:pointer;font-weight:600;color:var(--primary)}.startup-env-preview__pre{margin:10px 0 0;padding:.65rem .75rem;background:#1a2820;color:#e8f4eb;border-radius:12px;overflow:auto;font-size:.78rem;max-height:360px}.startup-env-editor-wrap{padding:12px 14px;margin-bottom:12px;border:1px solid var(--border);border-radius:16px;background:#ffffff8c;display:flex;flex-direction:column;gap:10px}.startup-env-editor{width:100%;min-height:220px;max-height:480px;resize:vertical;margin:0;padding:.65rem .75rem;border:1px solid rgba(56,118,76,.35);border-radius:12px;background:#1a2820;color:#e8f4eb;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1.45}.startup-env-editor:focus{outline:2px solid rgba(52,149,90,.45);outline-offset:1px}.startup-env-target{padding:12px 14px;margin-bottom:12px;border:1px solid var(--border);border-radius:16px;background:#ffffff8c;display:flex;flex-direction:column;gap:10px}.startup-env-target__pick{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.startup-env-target__empty{margin:0;max-width:40rem;line-height:1.45;font-size:.82rem}.startup-env-target__select{min-width:10rem;flex:0 0 auto}.startup-env-resolved-path{flex:1 1 220px;font-size:.78rem;line-height:1.35;min-width:0}.startup-env-resolved-path code{word-break:break-all;font-size:.76rem;color:var(--text);background:#ffffffb3;padding:2px 6px;border-radius:6px;border:1px solid rgba(56,118,76,.2)}.startup-env-resolved-path__badge{margin-left:6px;font-size:.74rem;color:var(--muted)}.startup-env-resolved-path__fail{font-size:.8rem}.startup-env-save-hint{border-left:3px solid rgba(52,149,90,.45);padding-left:10px;margin-top:4px}.startup-env-sync-notice{width:min(420px,100%);max-height:none;text-align:left}.startup-env-sync-notice .modal-dialog__title{margin-bottom:10px}.startup-env-sync-notice__msg{margin:0 0 10px;line-height:1.45}.startup-env-sync-notice__path{margin:0 0 14px;padding:8px 10px;font-size:.74rem;word-break:break-all;white-space:pre-wrap;background:#1a282014;border-radius:10px;border:1px solid var(--border)}.startup-env-sync-notice__btn{width:100%}.startup-env-target .startup-env-field__input.startup-env-presets__select{width:auto;max-width:100%;min-width:11rem;align-self:flex-start;flex:0 0 auto}.startup-env-actions--inline{margin-bottom:10px}.startup-env-add-key{padding:12px 14px;margin-bottom:12px;border:1px dashed var(--border);border-radius:16px;background:#ffffff59;display:flex;flex-direction:column;gap:10px}.startup-env-add-key__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.startup-env-radio{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;cursor:pointer}.startup-env-scope{font-size:.72rem;font-weight:600;padding:2px 6px;border-radius:6px;background:#1e78501f;color:#1a5c40}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f1e1673}.modal-dialog{width:min(560px,100%);max-height:min(88vh,720px);overflow:auto;background:var(--card-bg, #f6faf7);border-radius:18px;border:1px solid var(--border);box-shadow:0 12px 40px #00000026;padding:16px 18px 20px}.modal-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.modal-dialog__title{margin:0;font-size:1.1rem}.project-urls-dialog.modal-dialog{width:min(720px,100%)}.project-urls-dialog__sub{margin:0 0 10px;font-size:.82rem;line-height:1.5}.project-urls-dialog__link{margin-left:8px;white-space:nowrap}.project-urls-dialog__toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}.project-urls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.project-urls-card{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#ffffff8c}.project-urls-card__label{font-size:.72rem;font-weight:600;color:var(--muted);margin-bottom:6px}.project-urls-card__value{font-size:.88rem;word-break:break-all}.project-urls-form{display:flex;flex-direction:column;gap:12px;margin-top:4px}.project-urls-form label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600}.project-urls-dialog__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.startup-env-presets{padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:#ffffff8c;display:flex;flex-direction:column;gap:10px}.startup-env-presets__title{margin:0;font-size:1rem;font-weight:700;color:var(--text)}.startup-env-presets__note{margin:0;font-size:.82rem;line-height:1.45}.startup-env-presets__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.startup-env-presets__select{flex:1 1 200px;min-width:180px}.scan-panel__env-hint{margin:0 0 .35rem;font-size:.82rem;line-height:1.45}.scan-env-table-wrap{margin-top:6px}.scan-env-table{min-width:420px}.scan-panel__body{margin:0;border:1px dashed rgba(56,118,76,.25);border-radius:12px;padding:10px 12px;background:#ffffff80}.scan-panel__summary{cursor:pointer;font-weight:600;color:var(--primary)}.scan-panel__status,.scan-panel__err,.scan-panel__muted{margin:.5rem 0 0;font-size:.88rem}.scan-panel__err{color:#b23d3d}.scan-panel__muted,.muted{color:var(--muted)}.scan-panel__timestamp{margin:0 0 .35rem;font-size:.88rem}.scan-panel__path{margin:0 0 .75rem;font-size:.82rem}.scan-root-path,.scan-file{font-size:.8rem}.scan-panel__content h3{margin:.85rem 0 .35rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.scan-panel__content h3:first-child{margin-top:.25rem}.scan-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.scan-tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:#3a9d551f;border:1px solid rgba(58,157,85,.22);color:#2d5c3a}.scan-list{margin:0;padding-left:1.1rem;font-size:.88rem}.scan-risks{list-style:none;margin:0;padding:0;display:grid;gap:6px}.scan-risk{padding:6px 10px;border-radius:10px;font-size:.86rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}.scan-risk--warn{background:#db5f5f1f;border:1px solid rgba(219,95,95,.28);color:#6b2a2a}.scan-risk--info{background:#646e781a;border:1px solid rgba(100,110,120,.2);color:var(--text)}.scan-risk__level{font-size:.72rem;font-weight:700;text-transform:uppercase;opacity:.85}.scan-risk__code{font-size:.78rem}.scan-risk__msg{flex:1 1 100%}.exec-agent-panel{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:1rem 1.1rem 1.15rem}.exec-agent-title{margin:0 0 .35rem;font-size:1.05rem;color:var(--text)}.exec-agent-note{margin:0 0 .75rem;font-size:.82rem;line-height:1.45}.exec-agent-note code{font-size:.85em}.exec-agent-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem}.exec-agent-paste-label{display:grid;gap:.35rem;font-size:.78rem;color:var(--muted);margin-bottom:.65rem}.exec-agent-paste{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffe6;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;resize:vertical}.exec-agent-error,.exec-agent-loading{margin-bottom:.65rem}.exec-agent-empty{margin:.35rem 0 0}.exec-final-banner{padding:.55rem .75rem;border-radius:12px;font-weight:700;font-size:.92rem;margin-bottom:.75rem}.exec-final-banner--ok{background:#3a9d5524;border:1px solid rgba(58,157,85,.35);color:#1e5c2e}.exec-final-banner--fail{background:#db5f5f1f;border:1px solid rgba(219,95,95,.32);color:#6b2a2a}.exec-final-instruction{font-weight:500}.exec-iterations-list{display:grid;gap:.65rem}.exec-iteration-card{border-radius:14px;border:1px solid var(--border);background:#ffffffd1;overflow:hidden}.exec-iteration-card--current{box-shadow:0 0 0 2px #0b57d047}.exec-iteration-card--ok{border-left:4px solid #3a9d55}.exec-iteration-card--fail{border-left:4px solid #db5f5f}.exec-iteration-card__header-btn{width:100%;display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;color:var(--text)}.exec-iteration-card__header-btn:hover{background:#00000008}.exec-iteration-card__title{font-weight:700;flex:1 1 auto}.exec-iteration-card__chevron{font-size:.75rem;color:var(--muted)}.exec-iteration-card__body{padding:0 .85rem .85rem;border-top:1px solid var(--border)}.exec-iter-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;padding:.12rem .45rem;border-radius:999px}.exec-iter-badge--ok{background:#3a9d5526;color:#1e5c2e}.exec-iter-badge--fail{background:#db5f5f29;color:#8c2a2a}.exec-iter-banner{padding:.45rem .55rem;border-radius:8px;font-size:.8rem;margin:.65rem 0 .35rem}.exec-iter-banner--err{background:#db5f5f1a;border:1px solid rgba(219,95,95,.25);color:#6b2a2a}.exec-iter-banner--warn{background:#c88c281f;border:1px solid rgba(200,140,40,.28);color:#5c4818}.exec-iter-section{margin-top:.65rem}.exec-iter-section__title{margin:0 0 .35rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.exec-iter-pre{margin:0;padding:.5rem .55rem;border-radius:8px;font-size:.78rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:240px}.exec-iter-pre--text{background:#0000000a;border:1px solid var(--border)}.exec-iter-pre--before{background:#646e781a;border:1px solid rgba(100,110,120,.2);color:#444;flex:1 1 45%;min-width:120px}.exec-iter-pre--after{background:#3a9d551a;border:1px solid rgba(58,157,85,.28);color:#1a3d24;flex:1 1 45%;min-width:120px}.exec-iter-pre--stderr{background:#db5f5f14;border:1px solid rgba(219,95,95,.22)}.exec-iter-empty{margin:.25rem 0;font-size:.82rem}.exec-iter-files{margin:0;padding-left:1.15rem;font-size:.82rem}.exec-iter-apply-skip{margin:.35rem 0 0;font-size:.78rem}.exec-iter-diff-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;background:#ffffffe6;cursor:pointer;font-size:.82rem;margin-bottom:.35rem}.exec-iter-diff-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.exec-iter-diff-path{font-size:.8rem;font-weight:600;margin-bottom:.35rem}.exec-iter-diff-pair{display:flex;flex-wrap:wrap;gap:.5rem}.exec-verify-status{margin:0 0 .35rem;font-weight:650;font-size:.88rem}.exec-verify-ok{color:#1e5c2e}.exec-verify-fail{color:#8c2a2a}.exec-verify-cmds{margin:0 0 .35rem;padding-left:1.15rem;font-size:.8rem}.exec-verify-output{display:grid;gap:.35rem}.restore-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#203c2961}.restore-dialog{width:min(100%,520px);max-height:min(80vh,480px);display:flex;flex-direction:column;gap:12px;padding:18px 20px;border-radius:16px;border:1px solid var(--border);background:var(--card-strong);box-shadow:var(--shadow)}.restore-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.restore-dialog-head h2{margin:0;font-size:1.05rem}.restore-dialog-hint{margin:0;font-size:.86rem;line-height:1.45}.restore-dialog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;overflow:auto;max-height:min(52vh,320px)}.restore-dialog-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffffb8}.restore-dialog-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.restore-dialog-meta strong{font-size:.92rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:min(460px,100%);border:1px solid var(--border);border-radius:20px;background:var(--card);box-shadow:var(--shadow);padding:20px;display:grid;gap:12px}.login-card h1{margin:0;font-size:1.2rem}.login-sub{margin:0;color:var(--muted);font-size:.88rem}.login-mode-switch{display:flex;gap:8px}.login-form{display:grid;gap:10px}.login-form .toolbar-field input{min-width:0}@media(max-width:760px){.console-topbar{flex-direction:column;align-items:stretch}.nav{justify-content:flex-start}}
