:root{--navy-900:#141c29;--navy-800:#1b2533;--navy-700:#263244;--navy-600:#34425a;--navy-text:#e7ebf1;--navy-muted:#a9b4c4;--ws-bg:#eef0f3;--card:#fff;--border:#d9dee5;--text:#16191f;--text-2:#414d5c;--muted:#5f6b7a;--accent:#f90;--accent-strong:#ec7211;--accent-soft:#fff4e5;--link:#0a5ccc;--error-bg:#fdf0ee;--error:#b42318;--stale-bg:#fff8e6;--radius-card:8px;--radius-ctl:6px;--shadow:0 1px 2px #141c290f, 0 2px 8px #141c290a;color:var(--text);background:var(--ws-bg);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5}*{box-sizing:border-box}body,h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.workbench{grid-template-columns:320px minmax(0,1fr) 340px;height:100dvh;display:grid}.sidebar,.workspace,.assistant{min-height:0;overflow-y:auto}.sidebar{background:var(--navy-900);color:var(--navy-text);flex-direction:column;gap:20px;padding:20px 18px 28px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{border-radius:var(--radius-ctl);background:var(--accent);width:36px;height:36px;color:var(--navy-900);letter-spacing:.02em;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.brand h1{font-size:15px;font-weight:700;line-height:1.25}.brand p{color:var(--navy-muted);font-size:12.5px}.side-heading{color:var(--navy-text);font-size:13px;font-weight:700}.side-section{flex-direction:column;gap:8px;display:flex}.side-note{color:var(--navy-muted);margin-top:-4px;font-size:12px}.scenario-list{gap:6px;display:grid}.scenario{text-align:left;background:var(--navy-800);border:1px solid var(--navy-600);border-radius:var(--radius-ctl);cursor:pointer;gap:2px;padding:9px 11px;transition:border-color .15s,background-color .15s;display:grid}.scenario:hover{border-color:var(--navy-muted)}.scenario.is-active{border-color:var(--accent);background:var(--navy-700)}.scenario-name{font-size:13.5px;font-weight:600}.scenario-blurb{color:var(--navy-muted);font-size:12px}.completeness-row{justify-content:space-between;align-items:baseline;display:flex}.completeness-count{color:var(--navy-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.meter{background:var(--navy-700);border-radius:999px;height:6px;overflow:hidden}.meter span{background:var(--accent);height:100%;transition:width .25s;display:block}.meter-note{color:var(--navy-muted);font-size:12px}.meter-note.is-done{color:#9fd8b4}.req-form{flex-direction:column;gap:18px;display:flex}.req-form fieldset{border:0;flex-direction:column;gap:12px;margin:0;padding:0;display:flex}.req-form legend{color:var(--navy-muted);border-bottom:1px solid var(--navy-700);width:100%;margin-bottom:4px;padding:0 0 8px;font-size:12px;font-weight:700}.field{flex-direction:column;gap:5px;display:flex}.field label{justify-content:space-between;gap:8px;font-size:13px;font-weight:600;display:flex}.req-tag,.opt-tag{color:var(--navy-muted);flex:none;font-size:11px;font-weight:500}.term{color:var(--navy-muted);font-weight:400}.field.is-missing .req-tag{color:#ffb84d}.field input,.field select,.field textarea{background:var(--navy-800);border:1px solid var(--navy-600);border-radius:var(--radius-ctl);width:100%;color:var(--navy-text);padding:7px 9px;font-size:13.5px}.field textarea{resize:vertical}.field select option{color:var(--text);background:#fff}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.field.is-missing input,.field.is-missing select,.field.is-missing textarea{border-color:#8a6a3a}.assumed{color:#ffcf8a;font-size:12px;font-weight:600}.hint{color:var(--navy-muted);font-size:11.5px;line-height:1.4}.form-actions{background:var(--navy-900);gap:8px;padding:12px 0 4px;display:flex;position:sticky;bottom:-28px}.sidebar .btn-quiet{color:var(--navy-text);border-color:var(--navy-600)}.btn-primary,.btn-secondary,.btn-quiet{border-radius:var(--radius-ctl);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:8px 14px;font-size:13.5px;font-weight:600;transition:background-color .15s,border-color .15s,transform .1s}.btn-primary{background:var(--accent);color:var(--navy-900)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-secondary{background:var(--card);border-color:var(--text-2);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-strong)}.btn-quiet{border-color:var(--border);color:var(--text-2);background:0 0}.btn-quiet:hover{border-color:var(--muted)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}.link-btn{color:var(--link);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:600}.link-btn:hover{text-decoration:underline}.workspace{flex-direction:column;gap:16px;padding:20px 24px 32px;display:flex}.workspace-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.workspace-head h2{scroll-margin-top:12px;font-size:19px;font-weight:700}.workspace-head h2:focus:not(:focus-visible){outline:none}.head-badges{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mode-badge{color:var(--text-2);background:#e3e8ef;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.mode-badge.is-demo{background:var(--accent-soft);color:#8a4b00}.muted{color:var(--muted);font-size:13px}.plan-area{flex-direction:column;gap:16px;transition:opacity .2s;display:flex}.plan-area.is-loading{opacity:.55}.canvas-card,.details-card,.canvas-empty{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow)}.canvas-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.canvas-label{color:var(--text-2);font-size:13px;font-weight:700}.toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.canvas{background-color:#fbfcfd;background-image:radial-gradient(#dfe4ea 1px,#0000 1px);background-size:18px 18px;min-height:420px;max-height:72vh;padding:16px;overflow:auto}.canvas svg{height:auto;margin:0 auto;display:block;width:var(--diagram-width,100%)!important;max-width:none!important}.canvas.is-fit svg{width:100%!important;max-width:var(--diagram-width,100%)!important}.canvas-loading{color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex}.canvas-error{color:var(--error);background:var(--error-bg);padding:24px}.canvas-scroll-hint{color:var(--text-2);padding:8px 14px 0;font-size:12px;display:none}.canvas-foot{color:var(--muted);border-top:1px solid var(--border);padding:8px 14px 10px;font-size:12px}.mermaid-source{border-top:1px solid var(--border);background:#f6f7f9;max-height:260px;margin:0;padding:12px 14px;font-size:12px;overflow:auto}.canvas-empty{flex-direction:column;justify-content:center;gap:8px;max-width:100%;min-height:420px;padding:48px 32px;display:flex}.canvas-empty h3{font-size:17px}.canvas-empty p{color:var(--muted);max-width:52ch}.start-panel{justify-content:flex-start;gap:22px;min-height:0;padding:32px}.start-intro{gap:8px;display:grid}.start-panel h3{font-size:19px;line-height:1.3}.start-panel p{color:var(--text-2);max-width:64ch;font-size:14.5px}.start-list{color:var(--text-2);gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.start-list li{padding-left:18px;position:relative}.start-list li:before{content:"";background:var(--accent);border-radius:2px;width:7px;height:7px;position:absolute;top:.6em;left:2px}.start-samples{gap:10px;display:grid}.start-samples h4{font-size:14px}.start-sample-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.start-sample{text-align:left;background:var(--card);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius-ctl);cursor:pointer;align-content:start;gap:4px;min-height:88px;padding:12px 14px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:grid}@media (hover:hover){.start-sample:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-soft);box-shadow:var(--shadow)}}.start-sample-name{color:var(--text);font-size:14px;font-weight:700}.start-sample-blurb{color:var(--muted);font-size:13px}.start-own,.start-own .link-btn{font-size:13.5px}.start-where-narrow{display:none}.start-fine{border-top:1px solid var(--border);padding-top:14px;font-size:12.5px;color:var(--muted)!important}.skeleton{flex-direction:column;gap:16px;display:flex}.skeleton-canvas,.skeleton-row{border-radius:var(--radius-card);background:linear-gradient(90deg,#e5e8ec,#f1f3f5,#e5e8ec) 0 0/200% 100%;animation:1.4s infinite shimmer}.skeleton-canvas{height:440px}.skeleton-row{height:180px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.plan-summary ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.summary-item{background:var(--card);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:999px;align-items:baseline;gap:5px;padding:5px 12px;font-size:13px;font-weight:600;transition:border-color .15s,background-color .15s;display:inline-flex}@media (hover:hover){.summary-item:hover{border-color:var(--accent-strong);background:var(--accent-soft)}}.summary-count{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.is-flash{animation:1.4s flash}@keyframes flash{0%,40%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 3px #0000}}.block{border-radius:var(--radius-ctl);scroll-margin-top:16px}.block.is-flash{animation-name:flash-inset}@keyframes flash-inset{0%,40%{box-shadow:0 0 0 2px var(--accent), 0 0 0 8px var(--accent-soft)}to{box-shadow:0 0 0 2px #0000,0 0 0 8px #0000}}.block h3:focus:not(:focus-visible){outline:none}.details-card{scroll-margin-top:16px}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:0 8px;display:flex;overflow-x:auto}.tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 12px 9px;font-size:13.5px;font-weight:600}.tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{background:#e3e8ef;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.tab-panel{padding:16px}.component-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.component{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-ctl);color:var(--text-2);flex-direction:column;gap:4px;padding:10px 12px;font-size:13px;display:flex}.component.kind-external{border-left-color:var(--muted);border-left-style:dashed}.component.kind-actor{border-left-color:var(--navy-700)}.component header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.component h3{color:var(--text);font-size:13.5px}.tier{color:var(--muted);white-space:nowrap;font-size:11px}.svc-name{color:var(--muted);font-size:12px}.flow-list{gap:8px;max-width:80ch;margin:0;padding-left:22px;font-size:14px;display:grid}.note{color:var(--muted);margin-top:12px;font-size:12.5px}.pillars{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px 24px;display:grid}.pillar h3{margin-bottom:6px;font-size:14px}.pillar ul{color:var(--text-2);gap:7px;margin:0;padding-left:18px;font-size:13.5px;display:grid}.badge-assumption{color:#8a4b00;background:var(--accent-soft);border-radius:4px;margin-right:6px;padding:0 5px;font-size:11px;font-weight:700;display:inline-block}.alternatives{gap:12px;display:grid}.alternative{border:1px solid var(--border);border-radius:var(--radius-ctl);gap:8px;padding:12px 14px;display:grid}.alternative h3{font-size:14.5px}.alternative>p{color:var(--text-2);font-size:13.5px}.tradeoffs{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tradeoffs h4{color:var(--muted);margin-bottom:4px;font-size:12.5px}.tradeoffs ul{gap:4px;margin:0;padding-left:18px;font-size:13px;display:grid}.disclaimer{color:var(--muted);max-width:90ch;font-size:12.5px}.chips{vertical-align:middle;flex-wrap:wrap;gap:4px;display:inline-flex}.chip{color:var(--link);white-space:nowrap;text-overflow:ellipsis;background:#eaf2fd;border-radius:999px;max-width:260px;padding:1px 8px;font-size:11px;font-weight:600;text-decoration:none;overflow:hidden}.chip:hover{text-decoration:underline}.assistant{background:var(--card);border-left:1px solid var(--border);flex-direction:column;gap:18px;padding:20px 18px 32px;display:flex}.panel-title{font-size:15px;font-weight:700}.block{flex-direction:column;gap:6px;display:flex}.block h3{font-size:13.5px;font-weight:700}.block>p{color:var(--text-2);font-size:13.5px}.empty{color:var(--text-2);gap:10px;font-size:13.5px;display:grid}.questions{gap:12px;margin:0;padding-left:20px;font-size:13.5px;display:grid}.questions .why{color:var(--muted);font-size:12.5px}.cautions,.assumptions,.plain,.sources{color:var(--text-2);gap:8px;margin:0;padding-left:18px;font-size:13px;display:grid}.cautions{padding:0;list-style:none}.cautions li{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-ctl) var(--radius-ctl) 0;padding:8px 10px}.assumptions{padding:0;list-style:none}.assumptions li{border-left:2px solid var(--border);gap:2px;padding-left:10px;display:grid}.sources a{word-break:break-word}.callout{border-radius:var(--radius-ctl);padding:10px 12px;font-size:13px}.callout.is-error{background:var(--error-bg);color:var(--error)}.callout.is-error p{margin:0}.callout.is-error .btn-secondary{margin-top:8px}.callout.is-error ul{margin:6px 0 0;padding-left:18px}.callout.is-stale{background:var(--stale-bg);color:#7a4a00;border:1px solid #f5d38a}.link-notice{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.link-notice .link-btn{color:var(--error)}.share-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);gap:8px;padding:12px 14px;font-size:13px;display:grid}.share-panel label{font-weight:600}.share-row{gap:8px;min-width:0;display:flex}.share-row input{border:1px solid var(--border);border-radius:var(--radius-ctl);background:#f6f7f9;flex:1;min-width:0;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.share-row input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.share-panel .hint{color:var(--muted)}.req-body{flex-direction:column;gap:20px;display:flex}.req-summary{display:none}.req-summary-text{color:var(--navy-text);font-size:13px}.req-summary .btn-quiet{place-self:flex-start start}.mobile-actions{display:none}@media (width<=1180px){.workbench{grid-template-rows:auto;grid-template-columns:320px minmax(0,1fr);height:auto;min-height:100dvh}.sidebar{grid-row:span 2;max-height:100dvh;position:sticky;top:0}.workspace,.assistant{overflow:visible}.assistant{border-left:0;border-top:1px solid var(--border)}}@media (width<=760px){.workbench{padding-bottom:calc(68px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.sidebar{max-height:none;padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right));position:static;overflow:visible}.sidebar.is-collapsed .req-body{display:none}.sidebar.is-collapsed{gap:14px;padding-bottom:18px}.req-summary{flex-direction:column;gap:6px;display:flex}.form-actions{position:static}.form-actions .form-generate,.head-regenerate{display:none}.mobile-actions{z-index:10;padding:10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));border-top:1px solid var(--border);background:#fffffff5;justify-content:flex-end;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #141c2914}.mobile-actions button{flex:1;min-height:44px}.workspace{padding:16px 14px 24px}.canvas{overscroll-behavior-x:contain;min-height:320px;max-height:none;overflow:auto hidden}.canvas svg{margin:0}.canvas-scroll-hint{display:block}.start-panel{padding:20px 16px}.start-where{display:none}.start-where-narrow{display:inline}.tradeoffs,.component-grid,.pillars{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
