:root{--ink: #17130e;--muted: #74685d;--paper: #f5ecdc;--panel: rgba(255, 248, 236, .86);--line: #ddcab0;--accent: #d35f2d;--danger: #9d2f23;--safe: #245c43;--shadow: rgba(50, 32, 15, .1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at top left,rgba(211,95,45,.24),transparent 36rem),radial-gradient(circle at 80% 10%,rgba(36,92,67,.16),transparent 26rem),linear-gradient(135deg,#f7efe2,#ead9bf);font-family:Georgia,Times New Roman,serif}button,input,select,textarea{font:inherit}button{border:0;border-radius:999px;background:var(--ink);color:#fff8ec;padding:10px 16px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.danger{background:var(--danger)}button.safe{background:var(--safe)}.shell{width:min(1440px,calc(100vw - 32px));margin:0 auto;padding:48px 0}.hero{max-width:980px}.app-layout{display:grid;grid-template-columns:172px minmax(0,1fr);gap:18px;align-items:start;margin-top:42px}.app-content{min-width:0}.side-nav{position:sticky;top:12px;display:grid;gap:6px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 18px 60px var(--shadow);padding:10px}.side-nav a{border-radius:999px;color:var(--muted);font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;padding:9px 10px;text-decoration:none;text-transform:uppercase}.side-nav a:hover,.side-nav a:focus{background:#d35f2d1f;color:var(--ink);outline:none}.auth-shell{min-height:100vh;display:grid;align-items:center}.auth-panel{width:min(520px,100%)}.auth-form{margin-top:24px;max-width:420px}.eyebrow{color:var(--accent);font:700 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;max-width:920px;font-size:clamp(44px,7vw,92px);line-height:.9;letter-spacing:-.06em}.lede{max-width:820px;color:var(--muted);font-size:21px;line-height:1.45}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.notice,.error{display:inline-block;margin:18px 0 0;border-radius:999px;padding:10px 14px;font:700 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.notice{background:#245c431f;color:var(--safe)}.error{background:#9d2f231f;color:var(--danger)}.state-banner,.panel-state{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;align-items:start;border:1px solid var(--line);background:#fff8ecdb}.state-banner{grid-template-columns:auto minmax(0,1fr) auto;border-radius:18px;box-shadow:0 18px 60px var(--shadow);margin:18px 0 0;padding:12px 14px}.panel-state{border-style:dashed;border-radius:18px;padding:14px}.dashboard-state{margin-bottom:16px}.state-copy strong,.state-copy span{display:block;overflow-wrap:anywhere}.state-copy strong{line-height:1.15}.state-copy span{color:var(--muted);font-size:14px;margin-top:3px}.state-actions{grid-column:2}.state-mark{width:11px;height:11px;border-radius:999px;background:var(--muted);margin-top:4px}.state-error{border-color:#9d2f238c}.state-error .state-mark{background:var(--danger)}.state-loading{border-color:#d35f2d80}.state-loading .state-mark{width:14px;height:14px;border:2px solid rgba(211,95,45,.24);border-top-color:var(--accent);background:transparent;animation:state-spin .8s linear infinite}.state-empty .state-mark{background:var(--line)}.kpis-loading{opacity:.95}.kpi-skeleton{overflow:hidden}.skeleton-line{display:block;border-radius:999px;background:linear-gradient(90deg,#74685d1f,#fffaf1e0,#74685d1f);background-size:220% 100%;animation:skeleton-sweep 1.4s ease-in-out infinite}.skeleton-value{width:58%;height:40px;margin-bottom:14px}.skeleton-label{width:72%;height:14px}@keyframes state-spin{to{transform:rotate(360deg)}}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-region{position:fixed;top:16px;right:16px;z-index:20;display:grid;gap:10px;width:min(420px,calc(100vw - 32px))}.toast{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid var(--line);border-radius:16px;background:#fff8ecf5;box-shadow:0 18px 60px var(--shadow);padding:12px}.toast strong,.toast span{display:block;overflow-wrap:anywhere}.toast span{margin-top:3px;color:var(--muted);font-size:14px}.toast button{padding:7px 10px;font-size:13px}.toast-success{border-color:#245c4373}.toast-error{border-color:#9d2f238c}.toast-warning{border-color:#d35f2d94}.toast-info{border-color:#d35f2d73}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:0 0 16px}.kpis,.grid{scroll-margin-top:24px}.kpi,.panel,.global-status{border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 60px var(--shadow)}.kpi{min-height:126px;border-radius:28px;padding:18px}.kpi strong{display:block;font-size:42px;line-height:1;letter-spacing:-.05em}.kpi span,.muted{color:var(--muted)}.global-status{position:sticky;top:12px;z-index:5;display:grid;grid-template-columns:minmax(220px,auto) 1fr;gap:10px 16px;align-items:center;border-radius:18px;padding:12px 14px;margin-bottom:16px;color:var(--muted)}.global-status.is-clear{border-color:#245c4361}.global-status.is-attention{border-color:#d35f2d8f}.global-status.is-blocked{border-color:#9d2f238f}.global-status-primary strong,.global-status-primary span,.global-status-items span{display:block}.global-status-primary strong{color:var(--ink);font-size:17px;line-height:1.1}.global-status-primary span,.global-status-items{font:700 12px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.global-status-items{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.global-status-items span{border:1px solid var(--line);border-radius:999px;padding:6px 8px;background:#fff8ec9e}.grid{display:grid;gap:16px;margin-top:16px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.panel{border-radius:30px;padding:22px;min-width:0}.panel h2{margin:0 0 18px;font-size:28px;line-height:1;letter-spacing:-.04em}.list,.form,.table,.button-grid{display:grid;gap:10px}.button-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pipeline-form{gap:12px}.pipeline-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.pipeline-result{display:grid;gap:10px;margin-top:14px}.pipeline-stage-table{margin-top:4px}.row,.table-row{display:grid;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.row{grid-template-columns:1fr auto}.row strong,.row span{display:block}.row span{color:var(--muted);font-size:14px}.health-panel,.provider-list{display:grid;gap:12px}.health-summary{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:700 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.health-summary strong{color:var(--ink)}.provider-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 10px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.provider-row.has-action{grid-template-columns:minmax(0,1fr) auto auto auto auto}.provider-name{min-width:0}.provider-name strong,.provider-name span{display:block;overflow-wrap:anywhere}.provider-name span,.latency,.provider-error{color:var(--muted);font-size:14px}.bar-chart{display:grid;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}.bar-chart-row{display:grid;gap:5px}.bar-chart-label{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.bar-chart-label strong{color:var(--ink)}.bar-chart-track{height:8px;border-radius:999px;background:#74685d24;overflow:hidden}.bar-chart-fill{display:block;height:100%;border-radius:inherit;background:var(--muted)}.bar-chart-fill.is-ok{background:var(--safe)}.bar-chart-fill.is-warning{background:var(--accent)}.bar-chart-fill.is-danger{background:var(--danger)}.provider-error{grid-column:1 / -1;color:var(--danger);overflow-wrap:anywhere}.status-pill{border-radius:999px;padding:6px 9px;font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;white-space:nowrap}.status-pill.is-ok{background:#245c431f;color:var(--safe)}.status-pill.is-failed{background:#9d2f231f;color:var(--danger)}.status-pill.is-warning{background:#d35f2d24;color:var(--accent)}.status-pill.is-muted{background:#74685d1f;color:var(--muted)}.status-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.form label{display:grid;gap:4px}.form label span,.check{color:var(--muted);font-size:14px}.check{display:flex!important;grid-template-columns:unset!important;align-items:center;gap:8px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:16px;background:#fffaf1;color:var(--ink);padding:11px 12px}textarea{min-height:92px;resize:vertical}.table{overflow-x:auto}.data-table{gap:0}.table-header{display:grid;gap:10px;align-items:center;min-width:max-content;border-bottom:1px solid var(--line);color:var(--ink);font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;padding:0 0 9px;text-transform:uppercase}.table-controls{display:grid;grid-template-columns:minmax(140px,1fr) minmax(120px,auto) minmax(120px,auto) auto;gap:8px;align-items:center;margin-bottom:12px}.table-controls.review-controls{grid-template-columns:minmax(170px,1.7fr) minmax(110px,auto) minmax(160px,auto) minmax(120px,auto) minmax(130px,auto) auto}.table-count{color:var(--muted);font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right;white-space:nowrap}.table-row{grid-template-columns:repeat(6,minmax(80px,1fr));color:var(--muted);font-size:14px;min-width:max-content}.table-header span,.table-row span{overflow-wrap:anywhere}.table-header span{white-space:nowrap}.table-row-button{width:100%;border-radius:0;background:transparent;color:var(--muted);padding:12px 0 0;text-align:left}.table-row-button:hover,.table-row-button.is-selected{color:var(--ink)}.table-row-button.is-selected{border-top-color:var(--accent);background:#d35f2d14}.detail-panel,.detail-empty{margin-top:16px}.selectable-table+.panel-state{margin-top:16px}.detail-panel{border-top:1px solid var(--line);padding-top:14px}.detail-panel h3{margin:14px 0 8px;font-size:16px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0}.detail-item{min-width:0}.detail-item dt{color:var(--muted);font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.detail-item dd{margin:3px 0 0;overflow-wrap:anywhere}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.readiness-card{border:1px solid var(--line);border-radius:18px;background:#fff8ec94;padding:14px}.readiness-card .detail-grid{margin-top:8px}.readiness-heading{display:block;margin-top:12px;font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.readiness-list{display:grid;gap:6px;margin:8px 0 0;padding-left:20px;color:var(--muted);font-size:14px}.detail-copy,.json-block{margin:0;border:1px solid var(--line);border-radius:16px;background:#fffaf1;padding:12px;overflow-wrap:anywhere}.json-block{overflow-x:auto;white-space:pre-wrap;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.artifact-list{display:grid;gap:12px}.artifact-item{border-top:1px solid var(--line);padding-top:10px}.artifact-line{display:grid;grid-template-columns:minmax(84px,.8fr) minmax(132px,1fr) minmax(0,1.4fr);gap:10px;align-items:center;margin-bottom:8px;overflow-wrap:anywhere}.artifact-line span{color:var(--muted)}@media(max-width:1160px){.app-layout{grid-template-columns:1fr}.side-nav{position:static;grid-template-columns:repeat(6,minmax(0,1fr))}.side-nav a{text-align:center}.kpis,.grid.three{grid-template-columns:repeat(2,1fr)}.pipeline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shell{padding:32px 0}.toast-region{position:static;width:100%;margin-bottom:16px}.toast{grid-template-columns:1fr}.state-banner{grid-template-columns:auto minmax(0,1fr)}.state-banner button{grid-column:2;justify-self:start}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis,.grid.two,.grid.three,.pipeline-grid{grid-template-columns:1fr}.global-status{position:static;grid-template-columns:1fr}.global-status-items{justify-content:flex-start}.row,.detail-grid,.artifact-line,.provider-row,.provider-row.has-action,.table-controls{grid-template-columns:1fr}.table-count{text-align:left}}
