:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--gcp-blue:#1a73e8;--gcp-blue-hover:#1765cc;--gcp-blue-soft:#e8f0fe;--gcp-green:#1e8e3e;--gcp-green-soft:#e6f4ea;--gcp-yellow:#f9ab00;--gcp-yellow-soft:#fef7e0;--gcp-red:#d93025;--gcp-red-soft:#fce8e6;--bg-dark:#f8f9fa;--bg-card:#fff;--bg-card-hover:#f1f3f4;--bg-input:#fff;--bg-subtle:#f1f3f4;--text-primary:#202124;--text-secondary:#5f6368;--text-muted:#80868b;--border-color:#dadce0;--border-strong:#bdc1c6;--border-active:#1a73e8;--shadow-sm:0 1px 2px #3c40431f;--shadow-lg:0 1px 3px #3c404329, 0 4px 8px #3c404314;--radius:8px;--radius-lg:12px;--radius-control:4px;--transition:all .15s cubic-bezier(.4, 0, .2, 1);--font-sans:"Google Sans", "Google Sans Text", Roboto, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;--font-mono:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sidebar-w:268px;--header-h:60px}@media screen and (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gcp-blue:#8ab4f8;--gcp-blue-hover:#aecbfa;--gcp-blue-soft:#1f3350;--gcp-green:#81c995;--gcp-green-soft:#1e3325;--gcp-yellow:#fdd663;--gcp-yellow-soft:#332c14;--gcp-red:#f28b82;--gcp-red-soft:#3b2220;--bg-dark:#202124;--bg-card:#292a2d;--bg-card-hover:#35363a;--bg-input:#202124;--bg-subtle:#35363a;--text-primary:#e8eaed;--text-secondary:#9aa0a6;--text-muted:#80868b;--border-color:#3c4043;--border-strong:#5f6368;--border-active:#8ab4f8;--shadow-sm:0 1px 2px #00000080;--shadow-lg:0 1px 3px #00000080, 0 4px 10px #0000004d}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-dark);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px;line-height:1.6}a{color:var(--gcp-blue)}.ui-icon{flex:none;display:block}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:30;height:var(--header-h);background:var(--bg-card);border-bottom:1px solid var(--border-color);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1600px;height:100%;margin:0 auto;padding:0 24px;display:flex}.header-brand{align-items:center;gap:12px;display:flex}.brand-icon{background:var(--gcp-blue);color:#fff;border-radius:6px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:15px;font-weight:700;display:grid}@media screen and (prefers-color-scheme:dark){.brand-icon{color:#202124}}.brand-title{color:var(--text-primary);font-size:15px;font-weight:600;line-height:1.3}.brand-subtitle{color:var(--text-muted);font-size:11px;line-height:1.3}.global-progress{align-items:center;gap:16px;display:flex}.progress-label{color:var(--text-secondary);white-space:nowrap;font-size:11.5px}.progress-track{background:var(--border-color);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:var(--gcp-blue);height:100%;transition:width .3s}.main-layout{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);flex:1;align-items:start;width:100%;max-width:1600px;margin:0 auto;display:grid}.sidebar{top:var(--header-h);height:calc(100vh - var(--header-h));border-right:1px solid var(--border-color);background:var(--bg-dark);flex-direction:column;padding:20px 12px;display:flex;position:sticky}.sidebar-label{letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:0 12px 10px;font-size:10.5px;font-weight:700}.step-nav{flex:1;list-style:none;overflow-y:auto}.step-nav-item{color:var(--text-secondary);cursor:pointer;transition:var(--transition);border-radius:0 20px 20px 0;align-items:center;gap:12px;margin-bottom:2px;padding:9px 12px;display:flex}.step-nav-item:hover{background:var(--bg-card-hover);color:var(--text-primary)}.step-nav-item.active{background:var(--gcp-blue-soft);color:var(--gcp-blue);font-weight:600}.step-nav-item.completed .step-icon{color:var(--gcp-green)}.step-nav-item .step-icon{color:inherit;place-items:center;display:grid}.step-nav-text{flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.step-nav-text>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.step-counter{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.step-nav-item.active .step-counter{color:var(--gcp-blue)}.step-nav-divider{background:var(--border-color);height:1px;margin:10px 12px}.sidebar-footer{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:6px;padding-top:14px;display:flex}.sidebar-btn{color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-control);cursor:pointer;transition:var(--transition);background:0 0;align-items:center;gap:6px;padding:6px 10px;font-family:inherit;font-size:12px;display:inline-flex}.sidebar-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.sidebar-btn.danger:hover{color:var(--gcp-red);border-color:var(--gcp-red)}.content-area{min-width:0;padding:28px 32px 64px}.main-layout.is-document{grid-template-columns:minmax(0,1fr)}.main-layout.is-document .sidebar{display:none}.document-topbar{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.btn{border-radius:var(--radius-control);cursor:pointer;transition:var(--transition);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gcp-blue);color:#fff}.btn-primary:hover{background:var(--gcp-blue-hover);box-shadow:var(--shadow-sm)}@media screen and (prefers-color-scheme:dark){.btn-primary{color:#202124}}.btn-secondary{color:var(--gcp-blue);border-color:var(--border-color);background:0 0}.btn-secondary:hover{background:var(--gcp-blue-soft);border-color:var(--border-active)}.btn-success{background:var(--gcp-green);color:#fff}.btn-success:hover{filter:brightness(.94)}@media screen and (prefers-color-scheme:dark){.btn-success{color:#202124}}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-sm{padding:5px 12px;font-size:12.5px}.btn-lg{padding:11px 24px;font-size:15px}.welcome-screen{flex:1;justify-content:center;padding:48px 24px 72px;display:flex}.welcome-card{width:100%;max-width:940px}.welcome-glow{display:none}.welcome-title{letter-spacing:-.4px;color:var(--text-primary);margin-bottom:12px;font-size:30px;font-weight:600;line-height:1.3}.welcome-desc{color:var(--text-secondary);margin-bottom:26px;font-size:14.5px;line-height:1.7}.welcome-pillars{flex-wrap:wrap;gap:8px;margin-bottom:30px;display:flex}.pillar-chip{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;align-items:center;gap:7px;padding:6px 13px;font-size:12.5px;display:inline-flex}.pillar-chip .ui-icon{color:var(--gcp-blue)}.welcome-actions{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.welcome-tools{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.welcome-footer{color:var(--text-muted);margin-top:26px;font-size:12.5px}.welcome-footer a{text-decoration:none}.welcome-footer a:hover{text-decoration:underline}.welcome-footer p{align-items:center;gap:7px;display:flex}.sample-gallery{border-top:1px solid var(--border-color);margin-top:36px;padding-top:28px}.sample-gallery-head h2{margin-bottom:6px;font-size:16px;font-weight:600}.sample-gallery-head p{color:var(--text-secondary);margin-bottom:18px;font-size:13px}.sample-grid{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:14px;display:grid}.sample-card{text-align:left;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:var(--transition);flex-direction:column;gap:9px;padding:18px;font-family:inherit;display:flex}.sample-card:hover{border-color:var(--border-active);box-shadow:var(--shadow-lg)}.sample-card-icon{color:var(--gcp-blue);display:block}.sample-card-title{color:var(--text-primary);font-size:14px;font-weight:600}.sample-card-summary{color:var(--text-secondary);font-size:12.5px;line-height:1.6}.sample-card-tags{flex-wrap:wrap;gap:5px;margin-top:2px;display:flex}.sample-tag{color:var(--gcp-blue);background:var(--gcp-blue-soft);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.sample-banner{background:var(--gcp-yellow-soft);border:1px solid var(--border-color);border-left:4px solid var(--gcp-yellow);border-radius:var(--radius-control);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:14px 18px;display:flex}.sample-banner strong{color:var(--text-primary);margin-bottom:2px;font-size:13.5px;display:block}.sample-banner span{color:var(--text-secondary);font-size:12.5px;line-height:1.6}.step-header{margin-bottom:26px}.step-badge{letter-spacing:.6px;color:var(--gcp-blue);background:var(--gcp-blue-soft);border-radius:10px;margin-bottom:10px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.step-title{letter-spacing:-.2px;color:var(--text-primary);align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.step-title .ui-icon{color:var(--gcp-blue)}.step-description{color:var(--text-secondary);margin-top:6px;font-size:13.5px}.step-mini-progress{align-items:center;gap:10px;margin-top:16px;display:flex}.step-mini-label{color:var(--text-muted);white-space:nowrap;font-size:11.5px}.step-mini-track{background:var(--border-color);border-radius:2px;flex:1;max-width:240px;height:4px;overflow:hidden}.step-mini-fill{background:var(--gcp-blue);height:100%;transition:width .3s}.question-group{margin-bottom:26px}.group-title{letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;font-size:13px;font-weight:700;display:flex}.q-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);transition:var(--transition);margin-bottom:12px;padding:18px 20px}.q-card.answered{border-left:3px solid var(--gcp-green)}.q-label{color:var(--text-primary);align-items:center;gap:7px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.q-answered-mark{color:var(--gcp-green)}.q-input{width:100%;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-control);outline:none;padding:9px 12px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.q-input:focus{border-color:var(--border-active);box-shadow:0 0 0 1px var(--border-active)}textarea.q-input{resize:vertical;min-height:92px;line-height:1.6}select.q-input{cursor:pointer}.q-help{color:var(--text-muted);align-items:flex-start;gap:7px;margin-top:10px;font-size:12px;line-height:1.6;display:flex}.q-help .ui-icon{color:var(--gcp-yellow);margin-top:1px}.option-grid{grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:8px;display:grid}.option-item{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-control);cursor:pointer;transition:var(--transition);align-items:center;gap:10px;padding:10px 13px;font-size:13.5px;display:flex}.option-item:hover{background:var(--bg-card-hover);border-color:var(--border-strong)}.option-item.selected{background:var(--gcp-blue-soft);border-color:var(--border-active);color:var(--gcp-blue);font-weight:600}.q-check{accent-color:var(--gcp-blue);cursor:pointer;flex:0 0 15px;width:15px;height:15px}.nav-buttons{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:20px;display:flex}.action-bar{flex-wrap:wrap;gap:10px;display:flex}.review-container{max-width:1080px}.review-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:26px;display:grid}.review-stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:16px 18px}.review-stat-value{color:var(--gcp-blue);font-size:24px;font-weight:600;line-height:1.2;display:block}.review-stat-label{color:var(--text-secondary);font-size:12px}.review-step-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.review-step-header{border-bottom:1px solid var(--border-color);background:var(--bg-subtle);justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.review-step-left{align-items:center;gap:10px;min-width:0;display:flex}.review-step-icon{color:var(--gcp-blue);place-items:center;display:grid}.review-step-icon.done{color:var(--gcp-green)}.review-step-title{color:var(--text-primary);font-size:14px;font-weight:600}.review-step-count{color:var(--text-muted);font-size:12px}.review-edit-btn{color:var(--gcp-blue);border:1px solid var(--border-color);border-radius:var(--radius-control);cursor:pointer;transition:var(--transition);background:0 0;align-items:center;gap:6px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.review-edit-btn:hover{background:var(--gcp-blue-soft);border-color:var(--border-active)}.review-answers-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;display:grid}.review-answer-item{border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);padding:13px 18px}.review-answer-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.review-answer-value{color:var(--text-primary);overflow-wrap:anywhere;font-size:13.5px}.review-answer-value.empty{color:var(--text-muted);font-style:italic}.review-pre{font-family:var(--font-mono);white-space:pre-wrap;font-size:12.5px}.review-tag{color:var(--gcp-blue);background:var(--gcp-blue-soft);border-radius:10px;margin:2px 4px 2px 0;padding:2px 9px;font-size:12px;display:inline-block}.proposal-container{max-width:1560px;margin:0 auto}.proposal-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:18px;padding:24px}.proposal-section h3{color:var(--text-primary);align-items:center;gap:9px;margin-bottom:16px;font-size:17px;font-weight:600;display:flex}.proposal-section h3 .ui-icon{color:var(--gcp-blue)}.proposal-section>p{color:var(--text-secondary);font-size:13.5px;line-height:1.75}.proposal-table{border-collapse:collapse;width:100%;font-size:13.5px}.proposal-table th,.proposal-table td{text-align:left;border-bottom:1px solid var(--border-color);vertical-align:top;padding:11px 14px}.proposal-table th{width:180px;color:var(--text-muted);font-weight:500}.proposal-table td{color:var(--text-primary)}.proposal-table tr:last-child th,.proposal-table tr:last-child td{border-bottom:0}.recommendation-card{background:var(--bg-subtle);border-left:3px solid var(--gcp-blue);border-radius:0 var(--radius-control) var(--radius-control) 0;margin-bottom:10px;padding:14px 16px}.recommendation-card h4{color:var(--text-primary);margin-bottom:5px;font-size:13.5px;font-weight:600}.recommendation-card p{color:var(--text-secondary);font-size:13px;line-height:1.7}.arch-diagram{margin:4px -24px 0}.generation-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);max-width:760px;padding:28px}.generation-head{align-items:flex-start;gap:14px;margin-bottom:24px;display:flex}.generation-head .ui-icon{color:var(--gcp-blue);margin-top:3px;animation:2.4s linear infinite dg-spin}.generation-head h2{margin-bottom:5px;font-size:18px;font-weight:600}.generation-head p{color:var(--text-secondary);font-size:13px;line-height:1.7}.generation-stages{flex-direction:column;gap:2px;margin-bottom:22px;list-style:none;display:flex}.generation-stage{border-radius:var(--radius-control);align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.generation-stage strong{color:var(--text-secondary);font-size:13.5px;font-weight:600;display:block}.generation-stage span:last-child{color:var(--text-muted);font-size:12px;line-height:1.6}.generation-stage-mark{border:1px solid var(--border-color);height:22px;color:var(--text-muted);border-radius:50%;flex:0 0 22px;place-items:center;font-size:11px;font-weight:700;display:grid}.generation-stage.is-active{background:var(--gcp-blue-soft)}.generation-stage.is-active strong{color:var(--gcp-blue)}.generation-stage.is-active .generation-stage-mark{border-color:var(--gcp-blue);color:var(--gcp-blue)}.generation-stage.is-done strong{color:var(--text-primary)}.generation-stage.is-done .generation-stage-mark{border-color:var(--gcp-green);background:var(--gcp-green-soft);color:var(--gcp-green)}.generation-stage.is-todo{opacity:.6}.generation-timing{margin-bottom:20px}.generation-bar{background:var(--bg-subtle);border-radius:3px;height:5px;margin-bottom:10px;overflow:hidden}.generation-bar-fill{background:var(--gcp-blue);height:100%;transition:width .6s}.generation-timing p{color:var(--text-secondary);font-size:12.5px;line-height:1.7}.generation-slow{color:var(--gcp-yellow)}.generation-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.generation-note{color:var(--text-muted);margin-top:8px;font-size:12px;line-height:1.7}.generation-note code{font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-subtle);border-radius:var(--radius-control);overflow-wrap:anywhere;margin-top:6px;padding:7px 10px;font-size:11.5px;display:block}.running-chip{color:var(--gcp-blue);background:var(--gcp-blue-soft);border:1px solid var(--border-active);cursor:pointer;border-radius:14px;align-items:center;gap:7px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.running-dot{background:var(--gcp-blue);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite running-pulse}@keyframes running-pulse{0%,to{opacity:1}50%{opacity:.25}}.job-error{color:var(--gcp-red);background:var(--gcp-red-soft);border:1px solid var(--border-color);border-left:3px solid var(--gcp-red);border-radius:var(--radius-control);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:12px 16px;font-size:13px;display:flex}.notify-field{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);max-width:520px;margin:24px 0 4px;padding:18px}.notify-field label{margin-bottom:8px;font-size:13.5px;font-weight:600;display:block}.notify-field label span{color:var(--text-muted);font-weight:400}.notify-field p{color:var(--text-muted);margin-top:8px;font-size:12px;line-height:1.7}.proposal-timestamp{color:var(--text-muted);margin-top:8px;font-size:12px}.view-toggle{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.view-toggle-btn{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);cursor:pointer;transition:var(--transition);padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600}.view-toggle-btn:first-of-type{border-radius:var(--radius-control) 0 0 var(--radius-control)}.view-toggle-btn:last-of-type{border-radius:0 var(--radius-control) var(--radius-control) 0;margin-left:-1px}.view-toggle-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.view-toggle-btn.is-active{z-index:1;color:var(--gcp-blue);background:var(--gcp-blue-soft);border-color:var(--border-active)}.view-toggle-hint{color:var(--text-muted);font-size:12px}.section-summary{color:var(--text-secondary);font-size:13.5px;line-height:1.75}.recommendation-list{margin-top:18px}.recommendation-list>h4{color:var(--gcp-blue);align-items:center;gap:7px;margin-bottom:10px;font-size:12.5px;font-weight:700;display:flex}.exec-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.exec-card{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius);padding:18px}.exec-card h4{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.exec-card h4 .ui-icon{color:var(--gcp-blue)}.exec-card p{color:var(--text-secondary);font-size:13px;line-height:1.7}.exec-card-lead{border-top:1px solid var(--border-color);color:var(--text-primary);margin-top:12px;padding-top:10px;font-size:12.5px;font-weight:600}.exec-card-lead span{letter-spacing:.7px;color:var(--text-muted);margin-bottom:3px;font-size:10px;font-weight:800;display:block}.roadmap-list{flex-direction:column;gap:8px;list-style:none;display:flex}.roadmap-list li{color:var(--text-primary);background:var(--bg-subtle);border-left:3px solid var(--gcp-green);border-radius:0 var(--radius-control) var(--radius-control) 0;align-items:flex-start;gap:12px;padding:12px 16px;font-size:13.5px;line-height:1.65;display:flex}.roadmap-body{flex-direction:column;gap:3px;min-width:0;display:flex}.roadmap-phase{letter-spacing:.4px;color:var(--gcp-green);font-size:11px;font-weight:800}.roadmap-number{background:var(--gcp-green-soft);height:20px;color:var(--gcp-green);border-radius:50%;flex:0 0 20px;place-items:center;font-size:11px;font-weight:800;display:grid}.source-details{margin-top:12px}.source-details summary{color:var(--gcp-blue);cursor:pointer;font-size:12.5px}.source-list{flex-direction:column;gap:7px;margin-top:10px;list-style:none;display:flex}.source-list li{font-size:13px}.source-list a{text-decoration:none}.source-list a:hover{text-decoration:underline}.source-list span{color:var(--text-muted);margin-left:8px;font-size:11.5px}.proposal-note{color:var(--text-muted);margin-top:12px;font-size:12px}.tag{border-radius:10px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.tag-blue{color:var(--gcp-blue);background:var(--gcp-blue-soft)}.tag-green{color:var(--gcp-green);background:var(--gcp-green-soft)}.tag-yellow{color:var(--gcp-yellow);background:var(--gcp-yellow-soft)}.tag-red{color:var(--gcp-red);background:var(--gcp-red-soft)}.loading-container{text-align:center;place-items:center;gap:6px;display:grid}.loading-container .ui-icon{color:var(--gcp-blue);animation:2.4s linear infinite dg-spin}.loading-container h3{color:var(--text-primary);font-size:17px;font-weight:600}.loading-container p{color:var(--text-secondary);font-size:13.5px}@keyframes dg-spin{to{transform:rotate(360deg)}}@media (width<=1024px){.main-layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border-color);flex-direction:row;align-items:center;gap:10px;height:auto;padding:10px 14px;position:static;overflow-x:auto}.sidebar-label,.sidebar-footer,.step-counter{display:none}.step-nav{flex:1;gap:6px;display:flex}.step-nav-item{white-space:nowrap;border-radius:16px;margin-bottom:0}.step-nav-divider{display:none}.content-area{padding:22px 18px 56px}}@media (width<=640px){.header-inner{padding:0 14px}.brand-subtitle,.progress-label{display:none}.welcome-screen{padding:30px 16px 56px}.welcome-title{font-size:24px}.review-answer-item{border-right:0}}@media print{.app-header,.sidebar,.nav-buttons,.action-bar,.sample-banner,.document-topbar,.diagram-toolbar,.transform-controls,.view-toggle-btn{display:none!important}.main-layout{display:block}.content-area{padding:0}body{background:#fff}.proposal-container{max-width:none}.proposal-section{border-color:#dadce0}.arch-diagram{margin:4px 0 0}.custom-diagram-wrapper{break-inside:avoid;overflow:visible!important}.dg-viewport{height:auto!important;overflow:visible!important}.dg-content,.react-transform-component{transform:none!important}.dg-svg{width:100%!important;height:auto!important}.proposal-section-diagram{page:diagram-page}.exec-card,.roadmap-list li,.proposal-table tr,.recommendation-card,.review-step-section,.proposal-section h3,.diagram-flowlist{break-inside:avoid}.proposal-section h3{break-after:avoid}}@page{margin:14mm}@page diagram-page{size:A4 landscape;margin:10mm}.dg-svg{--dg-canvas:#fff;--dg-grid:#e6eaf1;--dg-cloud-stroke:#4285f4;--dg-cloud-label:#1558d6;--dg-vpc-stroke:#1e8e3e;--dg-vpc-fill:#34a8530d;--dg-vpc-label:#186a35;--dg-sublabel:#808ca0;--dg-band-fill:#f6f8fb;--dg-band-stroke:#dfe4ec;--dg-band-security:#fff6f5;--dg-band-security-stroke:#f2c9c5;--dg-band-network:#f3f7ff;--dg-band-network-stroke:#cddcf8;--dg-band-compute:#f4f8ff;--dg-band-compute-stroke:#d3e0f7;--dg-band-data:#f3faf6;--dg-band-data-stroke:#c9e6d3;--dg-band-eyebrow:#8b97a9;--dg-band-title:#2b3850;--dg-node-bg:#fff;--dg-node-stroke:#d6dde8;--dg-node-text:#22304a;--dg-edge:#6b7a92;--dg-badge-bg:#fff;--dg-badge-text:#33415c;--dg-rail-bg:#fffaea;--dg-rail-stroke:#f0d78a;--dg-rail-title:#8a7526;--dg-rail-item:#6d5f2a;--dg-icon-1:#1a73e8;--dg-icon-2:#aecbfa;--dg-icon-contrast:#fff;--dg-accent-neutral:#7e8ba1;--dg-accent-security:#ea4335;--dg-accent-network:#4285f4;--dg-accent-compute:#1a73e8;--dg-accent-data:#34a853;--dg-accent-operations:#f9ab00}@media screen and (prefers-color-scheme:dark){.dg-svg{--dg-canvas:#101a2a;--dg-grid:#22304a;--dg-cloud-stroke:#6ba1ff;--dg-cloud-label:#9dc0ff;--dg-vpc-stroke:#57c47c;--dg-vpc-fill:#34a85317;--dg-vpc-label:#8bdba6;--dg-sublabel:#8697ae;--dg-band-fill:#16223a;--dg-band-stroke:#2c3c58;--dg-band-security:#17203a;--dg-band-security-stroke:#4d3644;--dg-band-network:#16223a;--dg-band-network-stroke:#2f4772;--dg-band-compute:#16223a;--dg-band-compute-stroke:#2c456e;--dg-band-data:#16223a;--dg-band-data-stroke:#2d5642;--dg-band-eyebrow:#8697ae;--dg-band-title:#dbe5f4;--dg-node-bg:#1b2740;--dg-node-stroke:#33456a;--dg-node-text:#e2eaf7;--dg-edge:#8fa0bb;--dg-badge-bg:#22314e;--dg-badge-text:#dbe5f4;--dg-rail-bg:#2a2513;--dg-rail-stroke:#6a5a22;--dg-rail-title:#d8bf62;--dg-rail-item:#e2cf87;--dg-icon-1:#8ab4f8;--dg-icon-2:#3c5b8c;--dg-icon-contrast:#101a2a}}.dg-canvas{fill:var(--dg-canvas)}.dg-grid-dot{fill:var(--dg-grid)}.dg-frame-box{fill:none;stroke-width:1.6px}.frame-cloud .dg-frame-box{stroke:var(--dg-cloud-stroke);stroke-dasharray:7 5}.frame-vpc .dg-frame-box{stroke:var(--dg-vpc-stroke);stroke-dasharray:4 4;fill:var(--dg-vpc-fill)}.dg-frame-label{fill:var(--dg-cloud-label);font-size:13px;font-weight:700}.frame-vpc .dg-frame-label{fill:var(--dg-vpc-label)}.dg-frame-sublabel{fill:var(--dg-sublabel);font-size:10px;font-weight:400}.dg-band-box{fill:var(--dg-band-fill);stroke:var(--dg-band-stroke);stroke-width:1px}.band-security .dg-band-box{fill:var(--dg-band-security);stroke:var(--dg-band-security-stroke)}.band-network .dg-band-box{fill:var(--dg-band-network);stroke:var(--dg-band-network-stroke)}.band-compute .dg-band-box{fill:var(--dg-band-compute);stroke:var(--dg-band-compute-stroke)}.band-data .dg-band-box{fill:var(--dg-band-data);stroke:var(--dg-band-data-stroke)}.dg-band-title{fill:var(--dg-band-title);font-size:12.5px;font-weight:700}.dg-node-box{fill:var(--dg-node-bg);stroke:var(--dg-node-stroke);stroke-width:1px}.dg-node-accent{fill:var(--dg-accent-neutral)}.tone-security .dg-node-accent{fill:var(--dg-accent-security)}.tone-network .dg-node-accent{fill:var(--dg-accent-network)}.tone-compute .dg-node-accent{fill:var(--dg-accent-compute)}.tone-data .dg-node-accent{fill:var(--dg-accent-data)}.tone-operations .dg-node-accent{fill:var(--dg-accent-operations)}.dg-node-label{fill:var(--dg-node-text);text-anchor:middle;font-size:12.5px;font-weight:600}.dg-edge-line{fill:none;stroke:var(--dg-edge);stroke-width:1.5px;stroke-linejoin:round}.dg-arrow-head{fill:var(--dg-edge)}.dg-edge-badge{fill:var(--dg-badge-bg);stroke:var(--dg-edge);stroke-width:1.2px}.dg-edge-number{fill:var(--dg-badge-text);text-anchor:middle;font-size:10.5px;font-weight:800}.dg-rail-box{fill:var(--dg-rail-bg);stroke:var(--dg-rail-stroke);stroke-width:1px}.dg-rail-title{letter-spacing:.7px;fill:var(--dg-rail-title);font-size:9px;font-weight:800}.dg-rail-item{fill:var(--dg-rail-item);font-size:10px;font-weight:700}.gcp-icon .i1{fill:var(--dg-icon-1)}.gcp-icon .i2,.gcp-icon .i2-fill{fill:var(--dg-icon-2)}.gcp-icon .stroke{fill:none;stroke:var(--dg-icon-1);stroke-width:1.6px;stroke-linecap:round}.gcp-icon .stroke-white{fill:none;stroke:var(--dg-icon-contrast);stroke-width:1.6px;stroke-linecap:round}.gcp-icon .stroke-accent{fill:none;stroke:var(--dg-icon-1);stroke-width:1.8px;stroke-linecap:round}.gcp-icon .dashed{fill:none;stroke:var(--dg-icon-1);stroke-width:1.4px;stroke-dasharray:3 3}.custom-diagram-wrapper{--dg-aspect:2 / 1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;position:relative;overflow:hidden}.custom-diagram-wrapper.is-fullscreen{border-radius:0;flex-direction:column;display:flex}.custom-diagram-wrapper.is-fullscreen .dg-viewport{aspect-ratio:auto;flex:1;max-height:none}.diagram-toolbar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.diagram-heading{flex-direction:column;gap:2px;display:flex}.diagram-heading strong{color:var(--text-primary);font-size:13px}.diagram-kicker{letter-spacing:1.2px;color:var(--text-muted);font-size:9px;font-weight:800}.diagram-toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.diagram-legend-keys{color:var(--text-muted);white-space:nowrap;gap:12px;font-size:10.5px;display:flex}.diagram-legend-keys span{align-items:center;gap:6px;display:flex}.diagram-legend-keys i{border-radius:2px;width:16px;height:9px;display:inline-block}.legend-cloud{border:1.5px dashed #4285f4}.legend-vpc{background:#34a85314;border:1.5px dashed #1e8e3e}.diagram-action{color:var(--gcp-blue);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;padding:5px 11px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .15s,border-color .15s}.diagram-action:hover{background:var(--bg-card-hover);border-color:var(--border-active)}.transform-controls{z-index:6;border:1px solid var(--border-color);background:var(--bg-card);border-radius:4px;display:flex;position:absolute;top:62px;right:12px;overflow:hidden}.transform-controls button{border:0;border-right:1px solid var(--border-color);min-width:34px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0 8px;font-family:inherit;font-size:11.5px;font-weight:700}.transform-controls button:last-child{border-right:0}.transform-controls button:hover{background:var(--bg-card-hover);color:var(--gcp-blue)}.dg-viewport{aspect-ratio:var(--dg-aspect,2 / 1);cursor:grab;background:#fff;max-height:80vh;width:100%!important;height:auto!important;overflow:hidden!important}@media screen and (prefers-color-scheme:dark){.dg-viewport{background:#101a2a}}.dg-viewport:active{cursor:grabbing}.dg-content{display:block;width:100%!important;height:100%!important}.dg-svg{width:100%;height:100%;display:block}.diagram-flowlist{border-top:1px solid var(--border-color);padding:12px 16px}.diagram-flowlist-title{letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:9px;font-weight:800;display:block}.diagram-flowlist ol{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:6px 20px;margin:0;padding:0;list-style:none;display:grid}.diagram-flowlist li{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;display:flex}.flow-number{border:1px solid var(--border-color);height:17px;color:var(--text-primary);border-radius:50%;flex:0 0 17px;place-items:center;margin-top:1px;font-size:9.5px;font-weight:800;display:grid}.diagram-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.diagram-caption{border-top:1px solid var(--border-color);color:var(--text-secondary);padding:10px 16px;font-size:11.5px}.diagram-error{color:var(--gcp-red)}@media (width<=720px){.dg-viewport{height:340px!important}.diagram-legend-keys{display:none}}.admin-shell{max-width:1200px;margin:0 auto;padding:32px 24px}.admin-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;padding-bottom:20px;display:flex}.admin-header h1{font-size:24px;font-weight:700}.admin-header p{color:var(--text-secondary);font-size:14px}.admin-tabs{border-bottom:1px solid var(--border-color);gap:4px;margin-bottom:24px;display:flex;overflow-x:auto}.admin-tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600}.admin-tab:hover{color:var(--text-primary)}.admin-tab.is-active{color:var(--gcp-blue);border-bottom-color:var(--gcp-blue)}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start;gap:20px;display:grid}.admin-stack{flex-direction:column;gap:20px;display:flex}.admin-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px}.admin-card h2{margin-bottom:16px;font-size:17px;font-weight:700}.admin-card h3{margin-bottom:8px;font-size:14px;font-weight:700}.admin-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-card-head h2{margin-bottom:0}.admin-dl>div{border-bottom:1px dashed var(--border-color);gap:12px;padding:8px 0;font-size:13.5px;display:flex}.admin-dl>div:last-child{border-bottom:none}.admin-dl dt{width:120px;color:var(--text-muted);flex-shrink:0}.admin-dl dd{color:var(--text-primary);word-break:break-word;min-width:0}.admin-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.admin-inline-note{color:var(--text-muted);font-size:12.5px;font-weight:400}.admin-warn{color:var(--gcp-yellow);margin-top:4px;display:block}.admin-stat-row{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.admin-stat{text-align:center;background:var(--bg-input);border-radius:var(--radius);flex:1;min-width:90px;padding:12px}.admin-stat strong{color:var(--gcp-blue);font-size:22px;font-weight:700;display:block}.admin-stat span{color:var(--text-muted);font-size:12px}.admin-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.admin-badge-ok{background:var(--gcp-green-soft);color:var(--gcp-green)}.admin-badge-warn{background:var(--gcp-yellow-soft);color:var(--gcp-yellow)}.admin-badge-error{background:var(--gcp-red-soft);color:var(--gcp-red)}.admin-badge-muted{background:var(--bg-input);color:var(--text-muted)}.admin-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-alert{border-radius:var(--radius);margin-bottom:16px;padding:12px 16px;font-size:13.5px}.admin-alert-error{background:var(--gcp-red-soft);border:1px solid var(--border-color);border-left:3px solid var(--gcp-red);color:var(--gcp-red)}.admin-progress{background:var(--bg-input);border-radius:999px;height:8px;margin-bottom:8px;overflow:hidden}.admin-progress-bar{background:linear-gradient(to right, var(--gcp-blue), var(--gcp-green));height:100%;transition:width .3s}.admin-progress-text{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.admin-result-list{flex-direction:column;gap:4px;max-height:320px;margin-top:12px;list-style:none;display:flex;overflow-y:auto}.admin-result-list li{border-radius:var(--radius);background:var(--bg-input);justify-content:space-between;gap:12px;padding:6px 10px;font-size:12.5px;display:flex}.admin-result-list li span:last-child{color:var(--text-muted);flex-shrink:0}.admin-result-list li.is-ok{border-left:3px solid var(--gcp-green)}.admin-result-list li.is-error{border-left:3px solid var(--gcp-red)}.admin-model-list{margin-top:16px}.admin-model-list ul{flex-direction:column;gap:4px;list-style:none;display:flex}.admin-model-list li{color:var(--text-secondary);background:var(--bg-input);border-radius:var(--radius);justify-content:space-between;gap:12px;padding:6px 10px;font-size:12.5px;display:flex}.admin-model-list li.is-active{color:var(--text-primary);outline:1px solid var(--border-active);font-weight:600}.admin-category{margin-bottom:20px}.admin-category-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.admin-link{color:var(--gcp-blue);cursor:pointer;word-break:break-all;background:0 0;border:none;padding:0;font-family:inherit;font-size:12.5px;text-decoration:none}.admin-link:hover{text-decoration:underline}.admin-doc-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.admin-doc{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:var(--transition);align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.admin-doc:hover{border-color:var(--border-active);background:var(--bg-card-hover)}.admin-doc.is-indexed{opacity:.72}.admin-doc input{accent-color:var(--gcp-blue);flex-shrink:0}.admin-doc-title{overflow-wrap:break-word;flex:1;min-width:0;font-weight:600}.admin-field{flex-direction:column;gap:6px;margin-top:16px;display:flex}.admin-field label{color:var(--text-secondary);font-size:13px;font-weight:600}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:10px;font-size:12px;font-weight:700}.admin-table td{vertical-align:top;border-bottom:1px solid var(--border-color);padding:12px 10px}.admin-danger{color:var(--gcp-red)}.admin-search{gap:8px;margin:12px 0 16px;display:flex}.admin-search input{flex:1}.admin-search-result{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:10px;padding:14px}.admin-search-result header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.admin-search-result p{color:var(--text-secondary);white-space:pre-wrap;max-height:180px;margin-top:8px;font-size:13px;overflow-y:auto}.admin-gate{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.admin-gate-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:32px;display:flex}.admin-gate-card h1{font-size:20px;font-weight:700}.admin-gate-card p{color:var(--text-secondary);font-size:13.5px;line-height:1.6}.admin-gate-back{color:var(--text-muted);justify-content:center;align-items:center;gap:5px;font-size:13px;text-decoration:none;display:flex}.admin-gate-back:hover{color:var(--text-primary)}.admin-shell input[type=text],.admin-shell input[type=password],.admin-shell select,.admin-shell textarea,.admin-gate-card input[type=password]{width:100%;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);box-sizing:border-box;outline:none;padding:10px 12px;font-family:inherit;font-size:13.5px;transition:border-color .2s}.admin-shell select{width:auto}.admin-shell textarea{resize:vertical;min-height:110px;line-height:1.5}.admin-shell input:focus,.admin-shell select:focus,.admin-shell textarea:focus,.admin-gate-card input:focus{border-color:var(--border-active)}@media (width<=640px){.admin-shell{padding:20px 14px}.admin-header{flex-direction:column}.admin-dl>div{flex-direction:column;gap:2px}.admin-dl dt{width:auto}}
