:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f6;color:#18212f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #eef2f6;--panel: #ffffff;--panel-soft: #f8fafc;--text: #18212f;--muted: #667085;--line: #d7dee8;--line-strong: #b8c4d4;--blue: #1f6feb;--blue-soft: #e8f1ff;--green: #16814a;--green-soft: #e8f7ef;--amber: #a15c00;--amber-soft: #fff4df;--red: #bf2b2b;--red-soft: #ffebeb;--shadow: 0 18px 50px rgba(26, 38, 56, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:#111827;color:#e5e7eb;padding:24px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 28px}.brand strong,.brand span{display:block}.brand span{color:#aeb8c7;font-size:13px;margin-top:3px}.nav-label{color:#8d99aa;font-size:12px;font-weight:700;letter-spacing:0;margin:18px 8px 8px;text-transform:uppercase}.nav-item{width:100%;min-height:42px;display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:transparent;color:#d8dee8;padding:10px 12px;text-align:left}.nav-item:hover,.nav-item.active{background:#243044;color:#fff}.nav-item.locked{color:#94a3b8}.step-index{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:999px;background:#344158;color:#d8dee8;font-size:12px;font-weight:700}.main{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.topbar h1{font-size:28px;line-height:1.15;margin:10px 0 0}.env-banner{display:inline-flex;border:1px solid #b7cdf2;background:var(--blue-soft);color:#154b9c;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:700}.locked-message{display:inline-flex;margin-top:10px;border:1px solid #ffd88b;background:var(--amber-soft);color:#6f3f00;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:700}.persistence-message{display:inline-flex;margin-top:10px;border:1px solid #b7cdf2;background:var(--blue-soft);color:#154b9c;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:700}.user-chip{min-height:44px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px;box-shadow:0 8px 20px #1a26380f}.user-chip span,.user-chip strong{white-space:nowrap;font-size:13px}.user-chip strong{color:var(--blue)}.chip-action{min-height:30px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text);padding:5px 9px;font-size:12px;font-weight:800}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:22px}.narrow{max-width:760px}.panel-heading{margin-bottom:18px}.panel-heading.row,.row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel h2,.panel h3{margin:0 0 8px;line-height:1.2}.panel h2{font-size:22px}.panel h3{font-size:17px;margin-top:24px}.panel p{color:var(--muted);margin:0}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.full-width{grid-column:1 / -1}.status-panel{display:flex;gap:16px;min-height:180px}.status-icon{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px}.status-icon svg{width:24px;height:24px}.status-icon.success{background:var(--green-soft);color:var(--green)}.status-icon.warning{background:var(--amber-soft);color:var(--amber)}.status-icon.running{background:var(--blue-soft);color:var(--blue);margin:0 auto 16px}.meta-list{display:grid;gap:10px;margin:18px 0 0}.meta-list div{display:flex;justify-content:space-between;gap:16px}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0;font-weight:700}.safety-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px}.safety-note.warning{border-color:#f1d59c;background:#fffaf0}.safety-note.warning svg{color:var(--amber)}.safety-note.success{border-color:#b8d9c2;background:var(--green-soft)}.safety-note.success svg{color:var(--green)}.option-stack{display:grid;gap:12px}.radio-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel-soft)}.radio-card.selected{border-color:var(--blue);background:var(--blue-soft)}.radio-card span,.radio-card small{display:block}.radio-card small{color:var(--muted);margin-top:3px}.actions{display:flex;gap:12px;justify-content:flex-end;margin-top:22px}.actions.split{justify-content:space-between}.primary,.secondary,.manual-button{border:1px solid transparent;border-radius:8px;min-height:40px;padding:9px 14px;font-weight:800}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;border-color:var(--line-strong);color:var(--text)}.subtle-action{margin-top:10px}.full{width:100%}.inline-status{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);color:var(--text);padding:10px 12px;font-size:14px;line-height:1.4}.search{width:min(320px,100%);min-height:42px;border:1px solid var(--line-strong);border-radius:8px;padding:9px 12px;background:#fff}.admin-form{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(220px,1.2fr) auto;gap:10px;margin-bottom:16px}.admin-main{display:grid;gap:18px}.connection-form{grid-template-columns:minmax(160px,1fr) minmax(130px,.7fr) minmax(120px,.7fr) minmax(180px,1fr) auto}.user-form{grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) minmax(150px,1fr) minmax(120px,.7fr) minmax(110px,.7fr) auto}.login-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:16px}.compact-form{display:grid;gap:10px;margin-top:14px}.admin-form input,.admin-form select,.login-form input,.compact-form input{min-height:42px;border:1px solid var(--line-strong);border-radius:8px;padding:9px 12px;background:#fff}.site-list{display:grid;gap:10px}.site-list.compact{gap:8px}.site-row{width:100%;display:grid;grid-template-columns:minmax(0,1.2fr) auto auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:14px;text-align:left}.site-row.selected{border-color:var(--blue);background:var(--blue-soft)}.site-row.static{cursor:default}.site-row strong,.site-row span{display:block}.site-row span{color:var(--muted);font-size:13px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.tree-panel{min-width:0}.summary-panel{align-self:start;position:sticky;top:28px}.tree{border:1px solid var(--line);border-radius:8px;overflow:hidden}.empty-state{display:grid;gap:4px;padding:18px;background:#fff}.empty-state span{color:var(--muted);font-size:13px}.tree-row{min-height:48px;display:grid;grid-template-columns:28px 22px 24px minmax(0,1fr) auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);background:#fff}.tree-row:last-child{border-bottom:0}.tree-row.partial{background:#f7fbff}.tree-row.checked{background:#f1f8ff}.tree-row.disabled{background:#f8f4f4;color:#7b5960}.icon-button{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted)}.tree-name{min-width:0}.tree-name strong,.tree-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-name span{color:var(--muted);font-size:12px;margin-top:2px}.row-badges,.badge-cell{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800;border:1px solid transparent;white-space:nowrap}.badge.green{color:var(--green);background:var(--green-soft);border-color:#b6e6cc}.badge.amber{color:var(--amber);background:var(--amber-soft);border-color:#ffd88b}.badge.red{color:var(--red);background:var(--red-soft);border-color:#ffbfc0}.badge.blue{color:var(--blue);background:var(--blue-soft);border-color:#b7cdf2}.badge.neutral{color:#475467;background:#eef1f5;border-color:#d4dae4}.manual-button{min-height:30px;padding:5px 8px;color:var(--amber);background:var(--amber-soft);border-color:#ffd88b;font-size:12px}.manual-button.included{color:var(--blue);background:var(--blue-soft);border-color:#b7cdf2}.metric{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel-soft)}.metric span,.metric strong{display:block}.metric span{color:var(--muted);font-size:12px;font-weight:700;margin-bottom:5px}.metric strong{line-height:1.25}.summary-panel .metric{margin-top:12px}.warning-box,.review-warning{display:flex;align-items:flex-start;gap:10px;border:1px solid #ffd88b;border-radius:8px;background:var(--amber-soft);color:#6f3f00;padding:12px;margin-top:14px}.review-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.detail-box{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:12px}.detail-box strong{display:block;margin-bottom:8px}.detail-box ul{margin:0;padding-left:18px;color:var(--muted);font-size:13px}.detail-box p{font-size:13px}.scenario-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;margin-bottom:14px}.scenario-controls span{color:var(--muted);font-size:13px;font-weight:800}.scenario-controls label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.warning-box p{color:#6f3f00}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.data-table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:16px;font-size:14px}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}.data-table th{background:#f2f5f9;color:#4d5b6c;font-size:12px;text-transform:uppercase;letter-spacing:0}.data-table tr:last-child td{border-bottom:0}.data-table.compact{font-size:13px}.progress-panel{text-align:center}.progress-track{height:14px;background:#d8e0eb;border-radius:999px;overflow:hidden;margin:24px 0}.progress-fill{height:100%;background:var(--blue);border-radius:inherit;transition:width .2s ease}.completion-header{display:flex;gap:14px;align-items:flex-start;border-radius:8px;padding:16px;margin-bottom:18px}.completion-header.warning{background:var(--amber-soft);border:1px solid #ffd88b;color:#6f3f00}.completion-header.success{background:var(--green-soft);border:1px solid #b6e6cc;color:var(--green)}.completion-header h2{margin-bottom:4px}.destination-box{display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:14px;margin-top:18px}.destination-box small{color:var(--muted)}.history-row{width:100%;display:grid;grid-template-columns:110px minmax(160px,1fr) minmax(220px,1.2fr) 120px auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:14px;text-align:left}.history-row strong,.history-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-row span{color:var(--muted);font-size:12px;margin-top:3px}.history-row .history-warning{color:var(--warning)}.user-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.user-row:first-of-type{padding-top:0}.user-row span{display:block;color:var(--muted);font-size:13px;margin-top:3px}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.workspace,.grid.two,.metrics-grid,.review-detail-grid{grid-template-columns:1fr}.summary-panel{position:static}.topbar,.panel-heading.row,.safety-note{display:grid}.site-row,.history-row,.admin-form,.login-form{grid-template-columns:1fr}.tree-row{grid-template-columns:28px 22px 24px minmax(0,1fr)}.row-badges{grid-column:4;justify-content:flex-start;padding-bottom:8px}}@media(max-width:640px){.main,.sidebar,.panel{padding:16px}.actions,.actions.split{display:grid;justify-content:stretch}.user-chip{align-items:flex-start;flex-wrap:wrap}.data-table{display:block;overflow-x:auto;white-space:nowrap}}
