/* Smartia Control Plane — Technical Cartography. A standalone visual system. */
:root { color-scheme: dark; --cp-font: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif; --cp-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; }
* { box-sizing: border-box; }
html, body { min-height: 100%; }
html { background: #081119; }
body.saas-cartography { margin:0; min-width:320px; background:#081119; color:#e7eef0; font:400 15px/1.5 var(--cp-font); --cp-paper:#0d1921; --cp-panel:rgba(16,31,40,.84); --cp-panel-strong:#142936; --cp-line:rgba(169,208,211,.16); --cp-line-strong:rgba(169,208,211,.30); --cp-ink:#e7eef0; --cp-muted:#98abb3; --cp-cyan:#8ee6dc; --cp-amber:#f5bd69; --cp-red:#fb837b; --cp-blue:#90bfff; }
.saas-cartography button,.saas-cartography input,.saas-cartography textarea { font:inherit; }
.saas-cartography a { color:inherit; }
.cp-skip { position:fixed; left:16px; top:-60px; z-index:50; padding:9px 12px; border-radius:5px; background:var(--cp-cyan); color:#062127; }
.cp-skip:focus { top:16px; outline:3px solid #fff; }
.cp-shell { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:100vh; background:radial-gradient(circle at 80% 0%,rgba(51,132,153,.20),transparent 36rem),#081119; }
.cp-rail { position:sticky; top:0; align-self:start; height:100vh; padding:24px 15px; border-right:1px solid var(--cp-line); background:rgba(7,16,23,.88); backdrop-filter:blur(18px); }
.cp-brand { display:flex; align-items:center; gap:10px; padding:4px 10px 27px; color:#fff; font-weight:760; letter-spacing:-.02em; text-decoration:none; }
.cp-brand-mark { display:grid; width:29px; height:29px; place-items:center; color:#062127; background:var(--cp-cyan); clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%); }
.cp-brand small { display:block; color:var(--cp-muted); font-size:.71rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.cp-nav { display:grid; gap:4px; }
.cp-nav a { display:flex; min-height:40px; align-items:center; gap:11px; padding:9px 10px; border:1px solid transparent; border-radius:5px; color:var(--cp-muted); text-decoration:none; }
.cp-nav a:hover,.cp-nav a:focus-visible,.cp-nav a[aria-current="page"] { border-color:rgba(142,230,220,.22); outline:none; background:rgba(142,230,220,.09); color:var(--cp-ink); }
.cp-nav svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; }
.cp-nav-label { margin-top:26px; padding:0 10px 7px; color:#627780; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.cp-rail-foot { position:absolute; right:15px; bottom:22px; left:15px; padding:12px 10px; border-top:1px solid var(--cp-line); color:var(--cp-muted); font-size:.78rem; }
.cp-main { min-width:0; padding:24px clamp(18px,4vw,62px) 72px; }
.cp-topbar { display:flex; max-width:1500px; align-items:center; justify-content:space-between; gap:16px; margin:0 auto 32px; }
.cp-crumb { color:var(--cp-muted); font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; }
.cp-user { display:flex; align-items:center; gap:10px; color:var(--cp-muted); font-size:.84rem; }
.cp-avatar { display:grid; width:29px; height:29px; place-items:center; border:1px solid var(--cp-line-strong); border-radius:50%; color:var(--cp-cyan); }
.cp-workspace { max-width:1500px; margin:auto; }
.cp-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px; margin-bottom:27px; }
.cp-eyebrow { margin:0 0 8px; color:var(--cp-cyan); font-size:.73rem; font-weight:760; letter-spacing:.13em; text-transform:uppercase; }
.cp-hero h1 { max-width:16ch; margin:0; color:#f4f7f7; font-size:clamp(2rem,4.8vw,4.5rem); line-height:.97; letter-spacing:-.065em; }
.cp-hero p:last-child { max-width:610px; margin:16px 0 0; color:var(--cp-muted); }
.cp-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.cp-button { min-height:39px; padding:9px 13px; border:1px solid var(--cp-line-strong); border-radius:5px; background:transparent; color:var(--cp-ink); cursor:pointer; }
.cp-button:hover { border-color:var(--cp-cyan); color:var(--cp-cyan); }
.cp-button:focus-visible,.cp-nav a:focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }
.cp-button-primary { border-color:var(--cp-cyan); background:var(--cp-cyan); color:#062127; font-weight:730; }
.cp-button-primary:hover { background:#b5f5ed; color:#062127; }
.cp-command { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; margin-bottom:29px; padding:11px 14px; border:1px solid var(--cp-line); border-radius:7px; background:rgba(9,22,29,.75); color:var(--cp-muted); }
.cp-command-wrap { position:relative; margin-bottom:29px; }.cp-command-wrap .cp-command { margin-bottom:0; }.cp-command-results { position:absolute; z-index:20; top:calc(100% + 7px); right:0; left:0; display:grid; max-height:340px; overflow:auto; padding:6px; border:1px solid var(--cp-line-strong); border-radius:7px; background:#10212b; box-shadow:0 18px 38px rgba(0,0,0,.35); }.cp-command-result { display:grid; gap:2px; padding:10px 11px; border:0; border-radius:4px; background:transparent; color:var(--cp-ink); font:inherit; text-align:left; text-decoration:none; cursor:pointer; }.cp-command-result:hover,.cp-command-result:focus-visible { outline:none; background:rgba(142,230,220,.1); }.cp-command-result small,.cp-command-empty { color:var(--cp-muted); font-size:.75rem; }.cp-command-empty { margin:10px; }
.cp-command kbd { padding:2px 5px; border:1px solid var(--cp-line-strong); border-radius:3px; color:var(--cp-muted); font-family:var(--cp-mono); font-size:.72rem; }
.cp-command input { width:100%; border:0; outline:0; background:transparent; color:var(--cp-ink); }.cp-command input::placeholder { color:#71868e; }
body.saas-cartography :is(.cp-inline-button,.cp-command-result,.cp-command input,.cp-dialog input,.cp-dialog select,.cp-dialog textarea):focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }
.cp-map { position:relative; min-height:152px; overflow:hidden; margin-bottom:21px; padding:23px; border:1px solid var(--cp-line); border-radius:8px; background:linear-gradient(135deg,rgba(19,52,61,.45),rgba(12,24,31,.78)); }
.cp-map::before { position:absolute; inset:0; pointer-events:none; content:""; opacity:.4; background:linear-gradient(118deg,rgba(183,200,204,.06),transparent 48%); }.cp-map > * { position:relative; }
.cp-map-header { display:flex; align-items:start; justify-content:space-between; gap:14px; }.cp-map h2,.cp-panel h2 { margin:0; color:#f2f5f4; font-size:1rem; letter-spacing:-.02em; }.cp-map p { max-width:62ch; margin:7px 0 0; color:var(--cp-muted); font-size:.87rem; }
.cp-map-nodes { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }.cp-map-plot { min-height:222px; margin-top:13px; border-top:1px solid rgba(128,167,170,.18); border-bottom:1px solid rgba(128,167,170,.12); }.cp-map-plot svg { display:block; width:100%; height:222px; overflow:visible; }
.cp-graph-links path { fill:none; stroke:rgba(142,230,220,.32); stroke-width:1.25; stroke-dasharray:3 5; }.cp-graph-hubs circle { fill:#163c45; stroke:rgba(142,230,220,.85); stroke-width:1.25; }.cp-graph-hubs text { fill:#dff7f3; font:700 12px var(--cp-font); }.cp-graph-hubs .cp-graph-label { fill:#91aeb1; font:600 10px var(--cp-font); }.cp-graph-hubs .cp-graph-root { fill:#0b2831; stroke:var(--cp-cyan); stroke-width:1.5; }.cp-graph-hubs .cp-graph-root-label { fill:#effcf9; font:780 14px var(--cp-font); letter-spacing:.08em; }.cp-graph-hubs .cp-graph-root-detail { fill:#9ac6c3; font:600 10px var(--cp-font); }
.cp-node { padding:7px 9px; border:1px solid var(--cp-line-strong); border-radius:99px; background:rgba(5,15,21,.65); color:#dbe7e8; font-size:.78rem; }.cp-node::before { display:inline-block; width:6px; height:6px; margin:0 7px 1px 0; border-radius:50%; background:var(--cp-cyan); content:""; }
.cp-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); overflow:hidden; margin-bottom:21px; border:1px solid var(--cp-line); border-radius:8px; }.cp-metric { min-height:109px; padding:17px; border-right:1px solid var(--cp-line); background:var(--cp-panel); }.cp-metric:last-child { border-right:0; }.cp-metric span { display:block; color:var(--cp-muted); font-size:.73rem; letter-spacing:.08em; text-transform:uppercase; }.cp-metric strong { display:block; margin-top:11px; color:#f5f7f6; font-size:2rem; line-height:1; letter-spacing:-.05em; }.cp-metric[data-tone="danger"] strong { color:var(--cp-red); }.cp-metric[data-tone="warning"] strong { color:var(--cp-amber); }.cp-metric[data-tone="signal"] strong { color:var(--cp-cyan); }
.cp-grid { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(290px,.8fr); align-items:start; gap:21px; }.cp-stack { display:grid; gap:21px; }.cp-panel { overflow:hidden; border:1px solid var(--cp-line); border-radius:8px; background:var(--cp-panel); }.cp-panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 17px; border-bottom:1px solid var(--cp-line); }.cp-panel-actions { display:flex; align-items:center; gap:6px; }.cp-panel-head p { margin:4px 0 0; color:var(--cp-muted); font-size:.78rem; }.cp-panel-body { padding:0; }.cp-table-wrap { overflow:auto; }.cp-table { width:100%; min-width:890px; border-collapse:collapse; }.cp-table th { padding:10px 17px; color:#789099; font-size:.68rem; letter-spacing:.09em; text-align:left; text-transform:uppercase; }.cp-table td { padding:12px 17px; border-top:1px solid var(--cp-line); color:#dbe5e7; vertical-align:top; }.cp-table tbody tr:hover { background:rgba(142,230,220,.045); }
.cp-atlas-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px 12px; padding:12px 17px; border-bottom:1px solid var(--cp-line); background:rgba(8,20,27,.3); }.cp-atlas-filter { display:grid; gap:4px; color:#cfe0e1; font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }.cp-atlas-filter select { min-width:150px; min-height:34px; padding:6px 27px 6px 8px; border:1px solid var(--cp-line-strong); border-radius:4px; outline:0; background:#09161d; color:var(--cp-ink); font:500 .8rem var(--cp-font); letter-spacing:normal; text-transform:none; }.cp-atlas-filter select:focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }.cp-atlas-toolbar > .cp-inline-button { min-height:34px; }.cp-atlas-toolbar p { flex:1 1 190px; margin:0 0 6px auto; color:var(--cp-muted); font-size:.76rem; text-align:right; }
.cp-status { display:inline-flex; align-items:center; gap:6px; padding:3px 7px; border:1px solid var(--cp-line); border-radius:99px; color:var(--cp-muted); font-size:.72rem; white-space:nowrap; }.cp-status::before { width:6px; height:6px; border-radius:50%; background:currentColor; content:""; }.cp-status--critical { color:var(--cp-red); }.cp-status--warning { color:var(--cp-amber); }.cp-status--ready { color:var(--cp-cyan); }
.cp-list { margin:0; padding:0; list-style:none; }.cp-list li { padding:14px 17px; border-bottom:1px solid var(--cp-line); }.cp-list li:last-child { border-bottom:0; }#cp-incidents,#cp-inbox { max-height:560px; overflow:auto; }.cp-push-state { margin:0; padding:10px 17px; border-bottom:1px solid var(--cp-line); color:var(--cp-muted); font-size:.76rem; }.cp-list-title { display:flex; align-items:start; justify-content:space-between; gap:9px; color:#ebf0ef; font-weight:650; }.cp-list p { margin:5px 0 0; color:var(--cp-muted); font-size:.82rem; }.cp-list time { display:block; margin-top:5px; color:#6f858c; font-size:.73rem; }.cp-list-actions,.cp-action-controls { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }.cp-inline-button { padding:4px 7px; border:1px solid var(--cp-line-strong); border-radius:4px; background:transparent; color:var(--cp-cyan); cursor:pointer; font-size:.72rem; text-decoration:none; }.cp-inline-button:hover { border-color:var(--cp-cyan); }.cp-inline-button--danger { border-color:rgba(251,131,123,.55); color:var(--cp-red); }.cp-inline-button--danger:hover { border-color:var(--cp-red); background:rgba(251,131,123,.10); }.cp-category { display:inline-block; max-width:180px; color:#cfe0e1; font-size:.76rem; line-height:1.35; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; padding:0; margin:-1px; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.cp-empty { padding:29px 17px; color:var(--cp-muted); text-align:center; }.cp-empty strong { display:block; margin-bottom:5px; color:#dce7e7; }.cp-recovery { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:17px; }.cp-recovery-item { padding:12px; border:1px solid var(--cp-line); border-radius:5px; background:rgba(3,12,17,.2); }.cp-recovery-item strong { display:block; color:#e7efef; }.cp-recovery-item span { display:block; margin-top:4px; color:var(--cp-muted); font-size:.76rem; }.cp-recovery-empty { grid-column:1 / -1; }.cp-hostinger { padding:17px; }.cp-hostinger-status { display:flex; align-items:center; gap:9px; color:var(--cp-muted); }.cp-hostinger-status strong { color:var(--cp-ink); }.cp-rule { height:1px; margin:15px 0; background:var(--cp-line); }
.cp-dialog { width:min(530px,calc(100vw - 32px)); border:1px solid var(--cp-line-strong); border-radius:8px; background:#10212b; color:var(--cp-ink); box-shadow:0 28px 70px rgba(0,0,0,.5); }.cp-dialog::backdrop { background:rgba(1,7,10,.7); }.cp-dialog form { padding:20px; }.cp-dialog h2 { margin:0; }.cp-dialog p { color:var(--cp-muted); }.cp-dialog label { display:grid; gap:6px; margin:14px 0; color:#cfe0e1; font-size:.84rem; }.cp-dialog input,.cp-dialog textarea,.cp-dialog select { width:100%; padding:9px; border:1px solid var(--cp-line-strong); border-radius:4px; background:#09161d; color:var(--cp-ink); }.cp-dialog menu { display:flex; justify-content:flex-end; gap:8px; padding:0; margin:18px 0 0; }.cp-classification-fields { margin:18px 0; padding:0 14px 2px; border:1px solid var(--cp-line); border-radius:6px; }.cp-classification-fields legend { padding:0 6px; color:#dce7e7; font-size:.8rem; font-weight:700; }.cp-field-help { margin:8px 0 2px; font-size:.78rem; line-height:1.45; }
.cp-adapter-list { display:grid; gap:8px; }.cp-adapter { padding:10px; border:1px solid var(--cp-line); border-radius:5px; background:rgba(8,20,27,.48); }.cp-adapter > div { display:flex; align-items:center; justify-content:space-between; gap:8px; }.cp-adapter p { margin:6px 0; color:var(--cp-muted); font-size:.78rem; line-height:1.4; }.cp-adapter small { color:#8ba9ad; font-family:var(--cp-mono); font-size:.67rem; }.cp-subhead { margin:0 17px 10px; color:#dce7e7; font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; }.cp-runbook-list { display:grid; gap:8px; }.cp-runbook { padding:10px; border:1px solid var(--cp-line); background:rgba(8,20,27,.35); }.cp-runbook > div { display:flex; align-items:center; justify-content:space-between; gap:8px; }.cp-runbook p { margin:6px 0 9px; color:var(--cp-muted); font-size:.78rem; line-height:1.4; }.cp-node--root { border-color:var(--cp-cyan); color:#d7f8f5; }.cp-toast { position:fixed; right:22px; bottom:20px; z-index:60; max-width:min(440px,calc(100vw - 44px)); padding:11px 14px; border:1px solid var(--cp-line-strong); border-radius:6px; background:#17313b; color:#eff8f6; box-shadow:0 12px 32px rgba(0,0,0,.3); }
@media (max-width:1050px) { .cp-shell { grid-template-columns:1fr; }.cp-rail { position:relative; height:auto; padding:14px 18px; border-right:0; border-bottom:1px solid var(--cp-line); }.cp-brand { padding:2px 0 13px; }.cp-nav { display:flex; overflow:auto; padding-bottom:2px; }.cp-nav-label,.cp-rail-foot { display:none; }.cp-nav a { white-space:nowrap; }.cp-main { padding-top:20px; }.cp-metrics { grid-template-columns:repeat(3,1fr); }.cp-metric:nth-child(3) { border-right:0; }.cp-metric:nth-child(-n+3) { border-bottom:1px solid var(--cp-line); } }
@media (max-width:700px) { .cp-main { padding:16px 14px 44px; }.cp-topbar { margin-bottom:23px; }.cp-hero { grid-template-columns:1fr; gap:17px; }.cp-actions { justify-content:flex-start; }.cp-command { grid-template-columns:auto minmax(0,1fr); }.cp-command kbd { display:none; }.cp-map-header { display:block; }.cp-metrics { grid-template-columns:1fr 1fr; }.cp-metric { min-height:88px; border-bottom:1px solid var(--cp-line); }.cp-metric:nth-child(2n) { border-right:0; }.cp-metric:last-child { grid-column:span 2; border-bottom:0; }.cp-grid { grid-template-columns:1fr; }.cp-recovery { grid-template-columns:1fr; }.cp-user > span { display:none; }.cp-atlas-toolbar { align-items:stretch; }.cp-atlas-filter { flex:1 1 140px; }.cp-atlas-filter select { width:100%; min-width:0; }.cp-atlas-toolbar p { flex-basis:100%; margin:0; text-align:left; } }
@media (prefers-reduced-motion:reduce) { .saas-cartography *,.saas-cartography *::before,.saas-cartography *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

/* SaaS shell: the rail identifies the system; it does not explain it. */
.cp-shell { background:#141719; }
.cp-rail { background:#101214; }
.cp-brand { align-items:center; min-height:54px; padding:2px 10px 24px; }
.cp-brand > span:last-child { display:grid; gap:3px; min-width:0; }
.cp-brand strong { color:var(--cp-ink); font-size:.94rem; font-weight:720; letter-spacing:-.02em; }
.cp-brand .cp-brand-product { display:block; color:var(--cp-muted); font-size:.63rem; font-weight:650; letter-spacing:.075em; line-height:1.2; text-transform:uppercase; }
.cp-brand-logo { display:none; }
.cp-rail-foot { display:none; }
.cp-eyebrow { display:none !important; }
.cp-hero { align-items:center; }
.cp-hero h1 { max-width:none; font-size:clamp(1.7rem,2.6vw,2.5rem); letter-spacing:-.03em; }
.cp-hero p:last-child { max-width:66ch; margin-top:6px; line-height:1.48; }

/* Executive quiet refinement: fewer effects, clearer operational hierarchy. */
html { background:#141719; }
body.saas-cartography { background:#141719; --cp-paper:#141719; --cp-panel:#1b1f22; --cp-panel-strong:#22272b; --cp-line:rgba(222,230,232,.13); --cp-line-strong:rgba(222,230,232,.22); --cp-ink:#f2f4f5; --cp-muted:#aab5ba; --cp-cyan:#91aab2; --cp-amber:#c9a467; --cp-red:#cd7a73; --cp-blue:#8da5bd; }
.cp-shell { background:#141719; }.cp-rail { background:#101214; backdrop-filter:none; }.cp-brand { gap:12px; padding:2px 8px 29px; }.cp-brand-logo { width:126px; height:34px; object-fit:contain; object-position:left center; }.cp-brand-product { padding-left:11px; border-left:1px solid var(--cp-line); color:var(--cp-muted); font-size:.63rem; font-weight:700; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; }.cp-nav a:hover,.cp-nav a:focus-visible,.cp-nav a[aria-current="page"] { border-color:var(--cp-line-strong); background:#1d2225; color:#f2f4f5; }.cp-rail-foot { color:#7f8a90; }
.cp-main { padding-top:20px; }.cp-topbar { margin-bottom:24px; }.cp-language { min-width:37px; min-height:28px; padding:4px 7px; border:1px solid var(--cp-line-strong); border-radius:4px; background:transparent; color:var(--cp-ink); font-size:.7rem; font-weight:700; letter-spacing:.08em; cursor:pointer; }.cp-language:hover { border-color:var(--cp-cyan); color:var(--cp-cyan); }.cp-language:focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }
.cp-hero { margin-bottom:20px; }.cp-eyebrow { margin-bottom:5px; color:#89969b; font-size:.66rem; letter-spacing:.1em; }.cp-hero h1 { max-width:none; font-size:clamp(1.75rem,3.2vw,2.7rem); font-weight:650; letter-spacing:-.035em; line-height:1.05; }.cp-hero p:last-child { margin-top:7px; color:#aab5ba; font-size:.88rem; }.cp-button,.cp-inline-button { border-radius:4px; }.cp-button-primary { border-color:#a7b8bd; background:#a7b8bd; color:#141719; }.cp-button-primary:hover { background:#c5d0d2; color:#141719; }
.cp-command { margin-bottom:20px; border-radius:5px; background:#191d20; }.cp-command-wrap { margin-bottom:20px; }.cp-command-results,.cp-dialog { border-radius:6px; background:#202529; box-shadow:0 20px 44px rgba(0,0,0,.24); }
.cp-map { min-height:132px; margin-bottom:17px; padding:18px; border-radius:7px; background:#191d20; }.cp-map::before { opacity:.18; }.cp-map p { margin-top:4px; font-size:.78rem; }.cp-map-plot { min-height:188px; margin-top:10px; }.cp-map-plot svg { height:188px; }.cp-graph-links path { stroke:rgba(178,194,199,.28); }.cp-graph-hubs circle { fill:#252c30; stroke:rgba(178,194,199,.65); }.cp-graph-hubs .cp-graph-root { fill:#20272b; stroke:#9aabb1; }.cp-node { background:#202529; color:#d9e0e2; }.cp-node::before { background:#a7b8bd; }
.cp-metrics { margin-bottom:17px; border-radius:7px; }.cp-metric { min-height:86px; padding:14px 16px; background:#1b1f22; }.cp-metric strong { margin-top:8px; font-size:1.7rem; }.cp-metric[data-tone="signal"] strong { color:#d6dfe1; }.cp-metric[data-tone="danger"] strong { color:#cd7a73; }.cp-metric[data-tone="warning"] strong { color:#c9a467; }
.cp-grid,.cp-stack { gap:17px; }.cp-panel { border-radius:7px; background:#1b1f22; }.cp-panel-head { padding:14px 16px; }.cp-panel-head p { margin-top:2px; color:#8e9aa0; }.cp-table th { color:#97a4aa; }.cp-table td { padding:11px 16px; }.cp-table tbody tr:hover { background:#202529; }.cp-atlas-toolbar { padding:10px 16px; background:#191d20; }.cp-atlas-toolbar p { color:#8e9aa0; }.cp-atlas-filter select,.cp-dialog input,.cp-dialog textarea,.cp-dialog select { background:#15181a; }.cp-status--ready,.cp-inline-button { color:#b7c8cc; }.cp-inline-button:hover { border-color:#b7c8cc; color:#e8edef; }.cp-recovery,.cp-hostinger { padding:15px 16px; }.cp-recovery-item,.cp-adapter,.cp-runbook { border-radius:5px; background:#202529; }.cp-adapter,.cp-runbook { border-color:rgba(222,230,232,.1); }.cp-toast { background:#252c30; box-shadow:0 14px 30px rgba(0,0,0,.25); }
@media (max-width:700px) { .cp-brand-logo { width:116px; }.cp-brand-product { display:none; }.cp-user > span:not(.cp-avatar),.cp-user > button { display:inline-grid; }.cp-user .cp-language span { display:inline !important; }.cp-user .cp-avatar { display:grid !important; }.cp-hero p:last-child { display:none; }.cp-map-plot { min-height:145px; }.cp-map-plot svg { height:145px; } }

/* Atlas is a navigable map: every hub has a clear destination and focus state. */
.cp-node { display:inline-flex; text-decoration:none; }.cp-node:hover { border-color:#c8d4d7; background:#2a3034; color:#fff; }.cp-node:focus-visible { outline:3px solid var(--cp-amber); outline-offset:3px; }.cp-graph-link { cursor:pointer; }.cp-graph-link circle { transition:fill .16s ease-out,stroke .16s ease-out,transform .16s ease-out; transform-box:fill-box; transform-origin:center; }.cp-graph-link:hover circle,.cp-graph-link:focus circle { fill:#334047; stroke:#e7edef; transform:scale(1.08); }.cp-graph-link:focus { outline:none; }.cp-graph-link:focus-visible circle { stroke:var(--cp-amber); stroke-width:3; }.cp-status[href] { text-decoration:none; }.cp-status[href]:hover { border-color:var(--cp-cyan); }.cp-status[href]:focus-visible { outline:3px solid var(--cp-amber); outline-offset:3px; }
.cp-metric[href] { color:inherit; text-decoration:none; }.cp-metric[href]:hover { background:#202529; }.cp-metric[href]:focus-visible { position:relative; z-index:1; outline:3px solid var(--cp-amber); outline-offset:-3px; }
.cp-asset-link { color:inherit; text-decoration:none; }.cp-asset-link:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }.cp-asset-link:focus-visible { outline:3px solid var(--cp-amber); outline-offset:3px; }.cp-table tbody tr.cp-asset--selected { background:#252c30; box-shadow:inset 3px 0 0 var(--cp-amber); }.cp-table tbody tr.cp-asset--selected:hover { background:#2a3034; }

/* Taxi is an operational handoff: direct work first, Control Plane evidence on demand. */
.cp-taxi-module { max-width:920px; margin:4px 0 0; }
.cp-module-taxi .cp-hero { align-items:center; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--cp-line); }
.cp-module-taxi .cp-hero h1 { font-size:clamp(2rem,4vw,3.1rem); }
.cp-module-taxi .cp-actions { margin-left:auto; }
.cp-module-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cp-line); border-left:1px solid var(--cp-line); }
.cp-module-actions a { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:76px; padding:17px 18px; border-right:1px solid var(--cp-line); border-bottom:1px solid var(--cp-line); color:#e7edef; text-decoration:none; }
.cp-module-actions a:hover { background:#202529; }
.cp-module-actions a:focus-visible { position:relative; z-index:1; outline:3px solid var(--cp-amber); outline-offset:-3px; }
.cp-module-actions span { font-size:.98rem; font-weight:700; letter-spacing:-.01em; }
.cp-module-actions small { color:var(--cp-muted); font-size:.76rem; white-space:nowrap; }
.cp-taxi-signals { margin-top:18px; border-top:1px solid var(--cp-line); border-bottom:1px solid var(--cp-line); }
.cp-taxi-signals summary { display:flex; align-items:center; justify-content:space-between; padding:13px 2px; color:#dce5e7; cursor:pointer; font-size:.84rem; font-weight:700; list-style:none; }
.cp-taxi-signals summary::-webkit-details-marker { display:none; }
.cp-taxi-signals summary::after { margin-left:8px; color:var(--cp-muted); content:'+'; }
.cp-taxi-signals[open] summary::after { content:'−'; }
.cp-taxi-signals summary strong { margin-left:auto; color:var(--cp-amber); font-family:var(--cp-mono); font-size:.88rem; }
.cp-taxi-signal-list { margin:0; padding:0 0 10px; list-style:none; }
.cp-taxi-signal-list li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--cp-line); color:var(--cp-muted); font-size:.82rem; }
.cp-taxi-signal-list li.cp-empty { display:block; padding:13px 0; text-align:left; }
@media (max-width:700px) { .cp-module-taxi .cp-actions { width:100%; }.cp-module-taxi .cp-actions > * { flex:1; text-align:center; }.cp-module-actions { grid-template-columns:1fr; }.cp-module-actions a { min-height:64px; padding:14px; }.cp-taxi-module { margin-top:0; } }

/* VPS uses progressive disclosure: immediate state first, inspection on demand. */
.cp-vps-workspace { max-width:1480px; }.cp-vps-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:26px 0 18px; border-bottom:1px solid var(--cp-line); }.cp-vps-header h1 { margin:0; font-size:clamp(2rem,4vw,3.25rem); letter-spacing:-.04em; }.cp-vps-header p { margin:6px 0 0; color:var(--cp-muted); }.cp-vps-tabs { display:flex; gap:6px; overflow:auto; padding:16px 0; border-bottom:1px solid var(--cp-line); }.cp-vps-tabs button { flex:0 0 auto; border:1px solid transparent; border-radius:7px; padding:8px 11px; background:transparent; color:var(--cp-muted); font:inherit; font-size:.84rem; font-weight:700; cursor:pointer; }.cp-vps-tabs button:hover { background:#242a2e; color:#fff; }.cp-vps-tabs button[aria-current="page"] { border-color:#515b61; background:#2a3034; color:#fff; }.cp-vps-tabs button:focus-visible,.cp-vps-storage-form input:focus-visible { outline:3px solid var(--cp-amber); outline-offset:3px; }.cp-vps-status { min-height:22px; margin:14px 0 0; color:var(--cp-muted); font-size:.84rem; }.cp-vps-status:empty { display:none; }.cp-vps-status.is-error { color:#ffabab; }
.cp-vps-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; margin:16px 0; border:1px solid var(--cp-line); border-radius:10px; }.cp-vps-measure { min-width:0; padding:16px 18px; border-right:1px solid var(--cp-line); }.cp-vps-measure:last-child { border-right:0; }.cp-vps-measure span { display:block; color:var(--cp-muted); font-size:.76rem; font-weight:700; }.cp-vps-measure strong { display:block; margin-top:7px; color:#fff; font-family:var(--cp-mono); font-size:1.38rem; }.cp-vps-panel { padding-bottom:34px; }.cp-vps-layout { display:grid; gap:14px; }.cp-vps-block { padding:17px 0 2px; border-top:1px solid var(--cp-line); }.cp-vps-block-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:12px; }.cp-vps-block h2 { margin:0; color:#fff; font-size:1rem; }.cp-vps-block p { margin:0; color:var(--cp-muted); font-size:.84rem; }
.cp-vps-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:hidden; margin:0; border:1px solid var(--cp-line); border-radius:8px; }.cp-vps-facts dt,.cp-vps-facts dd { min-width:0; margin:0; padding:10px 12px; border-bottom:1px solid var(--cp-line); }.cp-vps-facts dt { color:var(--cp-muted); font-size:.78rem; }.cp-vps-facts dd { color:#fff; font-family:var(--cp-mono); font-size:.8rem; }.cp-vps-facts dt:nth-last-of-type(-n+1),.cp-vps-facts dd:last-child { border-bottom:0; }.cp-vps-list { overflow:hidden; border:1px solid var(--cp-line); border-radius:8px; }.cp-vps-row { display:grid; grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr); gap:12px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--cp-line); }.cp-vps-row:last-child { border-bottom:0; }.cp-vps-row strong { color:#fff; font-size:.85rem; }.cp-vps-row span { color:var(--cp-muted); font-size:.83rem; overflow-wrap:anywhere; }.cp-vps-badge { display:inline-flex; width:max-content; max-width:100%; padding:3px 7px; border-radius:4px; background:#283236; color:#d8e3e5; font-size:.72rem; font-weight:800; }.cp-vps-badge--ready { background:#163a32; color:#a6e5ce; }.cp-vps-badge--warn { background:#46351e; color:#ffd690; }.cp-vps-badge--danger { background:#45272b; color:#ffb3b3; }
.cp-vps-table-wrap { overflow:auto; border:1px solid var(--cp-line); border-radius:8px; }.cp-vps-table { width:100%; min-width:620px; border-collapse:collapse; }.cp-vps-table th,.cp-vps-table td { padding:10px 12px; border-bottom:1px solid var(--cp-line); text-align:left; vertical-align:top; }.cp-vps-table th { color:var(--cp-muted); font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; }.cp-vps-table td { color:#e5ecee; font-size:.83rem; overflow-wrap:anywhere; }.cp-vps-table tr:last-child td { border-bottom:0; }.cp-vps-storage-form { display:flex; gap:8px; margin-bottom:10px; }.cp-vps-storage-form input { min-width:0; flex:1; border:1px solid var(--cp-line); border-radius:7px; padding:9px 10px; background:#1d2226; color:#fff; font:inherit; }.cp-vps-note { max-width:70ch; margin:0 0 12px !important; }
.cp-vps-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }.cp-vps-actions input { width:min(145px,100%); border:1px solid var(--cp-line); border-radius:7px; padding:6px 8px; background:#1d2226; color:#fff; font:inherit; font-size:.76rem; }.cp-vps-button { min-height:32px; padding:6px 9px; font-size:.76rem; white-space:nowrap; }.cp-vps-button.cp-button-danger { border-color:#8b4348; background:#442428; color:#ffd4d4; }.cp-vps-button:disabled { cursor:not-allowed; opacity:.48; }.cp-vps-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:end; }.cp-vps-field { display:grid; gap:6px; color:var(--cp-muted); font-size:.76rem; font-weight:700; }.cp-vps-field input,.cp-vps-field select,.cp-vps-form textarea,.cp-vps-checks { min-width:0; border:1px solid var(--cp-line); border-radius:7px; padding:9px 10px; background:#1d2226; color:#fff; font:inherit; }.cp-vps-form textarea { resize:vertical; }.cp-vps-checks { display:grid; gap:8px; grid-column:1/-1; }.cp-vps-checks legend { padding:0 5px; color:var(--cp-muted); font-size:.76rem; font-weight:700; }.cp-vps-checks label { display:flex; align-items:center; gap:8px; color:#e5ecee; font-size:.82rem; }.cp-vps-form > .cp-button { justify-self:start; }.cp-vps-selection { color:var(--cp-muted); font-size:.8rem; }
@media (max-width:760px) { .cp-vps-header { align-items:flex-start; flex-direction:column; }.cp-vps-header .cp-actions { width:100%; }.cp-vps-header .cp-actions > * { flex:1; text-align:center; }.cp-vps-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.cp-vps-measure:nth-child(2) { border-right:0; }.cp-vps-measure:nth-child(-n+2) { border-bottom:1px solid var(--cp-line); }.cp-vps-facts { grid-template-columns:1fr 1fr; }.cp-vps-row { grid-template-columns:1fr; gap:4px; }.cp-vps-storage-form { flex-direction:column; }.cp-vps-form { grid-template-columns:1fr; }.cp-vps-form > .cp-button { width:100%; justify-content:center; } }

/* Light mode keeps the Control Plane calm and legible in office use. */
.cp-theme,.cp-language { min-height:28px; padding:4px 7px; border:1px solid var(--cp-line-strong); border-radius:4px; background:transparent; color:var(--cp-ink); font:700 .7rem var(--cp-font); letter-spacing:.08em; cursor:pointer; }
.cp-theme:hover,.cp-language:hover { border-color:var(--cp-cyan); color:var(--cp-cyan); }
.cp-theme:focus-visible,.cp-language:focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }
html[data-theme="light"] { background:#edf2f3; color-scheme:light; }
html[data-theme="light"] body.saas-cartography { background:#edf2f3; color:#132326; --cp-paper:#edf2f3; --cp-panel:#ffffff; --cp-panel-strong:#f6f8f8; --cp-line:rgba(19,35,38,.14); --cp-line-strong:rgba(19,35,38,.24); --cp-ink:#132326; --cp-muted:#3d5358; --cp-cyan:#08746f; --cp-amber:#9a650d; --cp-red:#b42334; --cp-blue:#276f98; }
html[data-theme="light"] .cp-shell { background:#edf2f3; }
html[data-theme="light"] .cp-rail { background:#172427; }
html[data-theme="light"] .cp-brand { color:#fff; }
html[data-theme="light"] .cp-brand-product { color:#b8c7c9; }
html[data-theme="light"] .cp-nav a { color:#bfccce; }
html[data-theme="light"] .cp-nav a:hover,html[data-theme="light"] .cp-nav a:focus-visible,html[data-theme="light"] .cp-nav a[aria-current="page"] { border-color:rgba(255,255,255,.18); background:#203437; color:#fff; }
html[data-theme="light"] .cp-nav-label,html[data-theme="light"] .cp-rail-foot { color:#a8b9bc; }
html[data-theme="light"] .cp-hero h1,html[data-theme="light"] .cp-map h2,html[data-theme="light"] .cp-panel h2,html[data-theme="light"] .cp-list-title,html[data-theme="light"] .cp-recovery-item strong,html[data-theme="light"] .cp-dialog,html[data-theme="light"] .cp-subhead { color:#132326; }
html[data-theme="light"] .cp-command,html[data-theme="light"] .cp-map,html[data-theme="light"] .cp-atlas-toolbar,html[data-theme="light"] .cp-panel,html[data-theme="light"] .cp-metric { background:#fff; }
html[data-theme="light"] .cp-command-results,html[data-theme="light"] .cp-dialog { background:#fff; box-shadow:0 16px 34px rgba(19,35,38,.14); }
html[data-theme="light"] .cp-map::before { opacity:.10; }
html[data-theme="light"] .cp-graph-links path { stroke:rgba(8,116,111,.34); }
html[data-theme="light"] .cp-graph-hubs circle { fill:#f6f8f8; stroke:#5b7479; }
html[data-theme="light"] .cp-graph-hubs .cp-graph-root { fill:#eaf3f2; stroke:#08746f; }
html[data-theme="light"] .cp-graph-hubs text,html[data-theme="light"] .cp-graph-hubs .cp-graph-root-label { fill:#132326; }
html[data-theme="light"] .cp-graph-hubs .cp-graph-label,html[data-theme="light"] .cp-graph-hubs .cp-graph-root-detail { fill:#3d5358; }
html[data-theme="light"] .cp-node,html[data-theme="light"] .cp-recovery-item,html[data-theme="light"] .cp-adapter,html[data-theme="light"] .cp-runbook { background:#f6f8f8; color:#132326; }
html[data-theme="light"] .cp-node:hover,html[data-theme="light"] .cp-metric[href]:hover,html[data-theme="light"] .cp-table tbody tr:hover { background:#eef3f4; color:#132326; }
html[data-theme="light"] .cp-metric strong { color:#132326; }
html[data-theme="light"] .cp-metric[data-tone="signal"] strong,html[data-theme="light"] .cp-status--ready,html[data-theme="light"] .cp-inline-button { color:#08746f; }
html[data-theme="light"] .cp-metric[data-tone="warning"] strong,html[data-theme="light"] .cp-status--warning { color:#9a650d; }
html[data-theme="light"] .cp-metric[data-tone="danger"] strong,html[data-theme="light"] .cp-status--critical { color:#b42334; }
html[data-theme="light"] .cp-table th,html[data-theme="light"] .cp-atlas-filter,html[data-theme="light"] .cp-category,html[data-theme="light"] .cp-dialog label,html[data-theme="light"] .cp-classification-fields legend { color:#3d5358; }
html[data-theme="light"] .cp-table td,html[data-theme="light"] .cp-empty strong,html[data-theme="light"] .cp-taxi-signals summary { color:#132326; }
html[data-theme="light"] .cp-atlas-filter select,html[data-theme="light"] .cp-dialog input,html[data-theme="light"] .cp-dialog textarea,html[data-theme="light"] .cp-dialog select { background:#fff; color:#132326; }
html[data-theme="light"] .cp-button-primary { border-color:#08746f; background:#08746f; color:#fff; }
html[data-theme="light"] .cp-button-primary:hover { background:#065e5a; color:#fff; }
html[data-theme="light"] .cp-toast { background:#172427; color:#fff; box-shadow:0 12px 28px rgba(19,35,38,.20); }
html[data-theme="light"] .cp-asset-link:hover { color:#08746f; }
html[data-theme="light"] .cp-table tbody tr.cp-asset--selected { background:#eaf3f2; box-shadow:inset 3px 0 0 #08746f; }
html[data-theme="light"] .cp-theme { min-width:54px; }
html[data-theme="light"] .cp-vps-tabs button:hover { background:#eef3f4; color:#132326; }
html[data-theme="light"] .cp-vps-tabs button[aria-current="page"] { border-color:#7e979c; background:#e5eeee; color:#132326; }
html[data-theme="light"] .cp-vps-measure strong,html[data-theme="light"] .cp-vps-block h2,html[data-theme="light"] .cp-vps-facts dd,html[data-theme="light"] .cp-vps-row strong { color:#132326; }
html[data-theme="light"] .cp-vps-badge { background:#e8eef0; color:#294448; }
html[data-theme="light"] .cp-vps-badge--ready { background:#e3f2e8; color:#17643f; }
html[data-theme="light"] .cp-vps-badge--warn { background:#fbefd9; color:#805300; }
html[data-theme="light"] .cp-vps-badge--danger { background:#fae6e8; color:#9f2030; }
html[data-theme="light"] .cp-vps-table td,html[data-theme="light"] .cp-vps-checks label { color:#132326; }
html[data-theme="light"] .cp-vps-storage-form input,html[data-theme="light"] .cp-vps-actions input,html[data-theme="light"] .cp-vps-field input,html[data-theme="light"] .cp-vps-field select,html[data-theme="light"] .cp-vps-form textarea,html[data-theme="light"] .cp-vps-checks { background:#fff; color:#132326; }
html[data-theme="light"] .cp-vps-button.cp-button-danger { border-color:#b42334; background:#fff; color:#b42334; }

/* Dedicated unauthenticated entrypoint: Control Plane remains the visible system home. */
.cp-login-page { display:grid; min-height:100vh; place-items:center; padding:24px; background:radial-gradient(circle at 76% 10%,rgba(111,143,151,.20),transparent 32rem),#141719; }
.cp-login-shell { width:min(100%,460px); }
.cp-login-brand { display:flex; align-items:center; gap:12px; margin-bottom:26px; color:#f2f4f5; text-decoration:none; }
.cp-login-brand > span:last-child { display:grid; gap:3px; }
.cp-login-brand strong { color:inherit; font-size:.94rem; letter-spacing:-.02em; }
.cp-login-brand small { color:var(--cp-muted); font-size:.66rem; font-weight:650; letter-spacing:.075em; text-transform:uppercase; }
.cp-login-card { padding:26px; border:1px solid var(--cp-line-strong); border-radius:8px; background:var(--cp-panel); box-shadow:0 24px 58px rgba(0,0,0,.28); }
.cp-login-card h1 { margin:0; color:var(--cp-ink); font-size:clamp(1.85rem,5vw,2.45rem); letter-spacing:-.045em; }
.cp-login-card p { margin:8px 0 0; color:var(--cp-muted); }
.cp-login-form { display:grid; gap:15px; margin-top:24px; }
.cp-login-form label { display:grid; gap:6px; color:var(--cp-muted); font-size:.77rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.cp-login-form input { width:100%; min-height:43px; padding:9px 11px; border:1px solid var(--cp-line-strong); border-radius:5px; background:#15181a; color:var(--cp-ink); font:inherit; letter-spacing:normal; text-transform:none; }
.cp-login-form input:focus-visible { outline:3px solid var(--cp-amber); outline-offset:2px; }
.cp-login-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:4px; }
.cp-login-status { min-height:22px; margin:14px 0 0; color:var(--cp-muted); font-size:.82rem; }
.cp-login-status[data-tone="error"] { color:var(--cp-red); }.cp-login-status[data-tone="success"] { color:var(--cp-cyan); }
html[data-theme="light"] .cp-login-page { background:radial-gradient(circle at 76% 10%,rgba(8,116,111,.12),transparent 32rem),#edf2f3; }
html[data-theme="light"] .cp-login-card { background:#fff; box-shadow:0 20px 46px rgba(19,35,38,.14); }
html[data-theme="light"] .cp-login-brand { color:#172427; }.cp-login-brand small { color:#63787c; }
html[data-theme="light"] .cp-login-form input { background:#fff; color:#132326; }

@media (max-width:700px) { .cp-rail,.cp-nav,.cp-brand,.cp-crumb,.cp-vps-workspace,.cp-vps-panel,.cp-vps-layout,.cp-vps-block,.cp-vps-block-head,.cp-vps-facts,.cp-vps-list,.cp-vps-table-wrap { min-width:0; }.cp-rail { overflow:hidden; }.cp-nav { overflow-x:auto; overflow-y:hidden; }.cp-crumb { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.cp-user > span:not(.cp-avatar) { display:none; }.cp-user > button,.cp-user .cp-avatar { display:inline-grid; }.cp-vps-facts { width:100%; } }

/* Dispatch Ledger convergence: Atlas and VPS keep their operational data model,
   while sharing the SaaS shell, density and action language used by every module. */
:root { --cp-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --cp-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace; }
html { background:#101820; }
body.saas-cartography { background:#101820; --cp-paper:#101820; --cp-panel:#17212b; --cp-panel-strong:#1d2935; --cp-line:rgba(207,221,236,.14); --cp-line-strong:rgba(207,221,236,.24); --cp-ink:#edf4fb; --cp-muted:#a8bbcd; --cp-cyan:#3565c5; --cp-amber:#ffc06e; --cp-red:#c54545; --cp-blue:#9bbcff; }
.cp-shell { grid-template-columns:248px minmax(0,1fr); background:#101820; }
.cp-rail { padding:18px 10px; border-right-color:rgba(237,244,251,.13); background:#101820; }
.cp-brand { min-height:70px; padding:18px 8px 16px; border-bottom:1px solid rgba(237,244,251,.13); }
.cp-brand-mark { width:30px; height:30px; border-radius:8px; color:#fff; background:#3565c5; clip-path:none; font-size:.82rem; }
.cp-brand strong { color:#edf4fb; font-size:1rem; font-weight:720; }
.cp-brand .cp-brand-product { padding-left:0; border-left:0; color:#a8bbcd; font-size:.67rem; letter-spacing:.055em; }
.cp-nav { gap:2px; padding:14px 0; }
.cp-nav a { min-height:42px; border-radius:8px; color:#a8bbcd; font-size:.86rem; }
.cp-nav a:hover,.cp-nav a:focus-visible,.cp-nav a[aria-current="page"] { border-color:transparent; background:rgba(53,101,197,.22); color:#fff; }
.cp-nav a[aria-current="page"]::after { width:5px; height:5px; margin-left:auto; border-radius:50%; background:#3565c5; content:""; }
.cp-nav-label { margin-top:17px; padding:0 10px 7px; color:#7990a5; }
.cp-main { padding:28px 32px 56px; }
.cp-topbar { margin-bottom:24px; }
.cp-hero { gap:18px; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--cp-line); }
.cp-hero h1,.cp-vps-header h1 { font-size:clamp(1.8rem,3vw,2.65rem); font-weight:720; letter-spacing:-.04em; }
.cp-hero p:last-child,.cp-vps-header p { color:var(--cp-muted); }
.cp-button,.cp-inline-button,.cp-theme,.cp-language { border-radius:8px; }
.cp-button-primary { border-color:#3565c5; background:#3565c5; color:#fff; }
.cp-button-primary:hover { background:#2a55aa; color:#fff; }
.cp-command { border-radius:10px; background:#17212b; }
.cp-command-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.cp-map,.cp-panel,.cp-metrics,.cp-vps-summary,.cp-vps-facts,.cp-vps-list,.cp-vps-table-wrap { border-radius:12px; background:#17212b; box-shadow:none; }
.cp-map { background:#17212b; }
.cp-map::before { display:none; }
.cp-map-plot { border-color:var(--cp-line); }
.cp-graph-links path { stroke:rgba(155,188,255,.4); }
.cp-graph-hubs circle { fill:#1d2935; stroke:#9bbcff; }
.cp-graph-hubs .cp-graph-root { fill:#1d345d; stroke:#9bbcff; }
.cp-metric { background:#17212b; }
.cp-panel,.cp-metric,.cp-map,.cp-vps-measure { border-color:var(--cp-line); }
.cp-inline-button { color:#9bbcff; }
.cp-inline-button:hover { border-color:#9bbcff; color:#d8e5ff; }
.cp-status--ready,.cp-metric[data-tone="signal"] strong { color:#54d4a5; }
.cp-toast { background:#1d2935; }
html[data-theme="light"] { background:#f4f6f8; }
html[data-theme="light"] body.saas-cartography { background:#f4f6f8; --cp-paper:#f4f6f8; --cp-panel:#fff; --cp-panel-strong:#eef2f6; --cp-line:rgba(27,39,53,.14); --cp-line-strong:rgba(27,39,53,.24); --cp-ink:#182433; --cp-muted:#5e7187; --cp-cyan:#3565c5; --cp-amber:#9a650d; --cp-red:#b23d47; --cp-blue:#3565c5; }
html[data-theme="light"] .cp-shell { background:#f4f6f8; }
html[data-theme="light"] .cp-rail { background:#101820; }
html[data-theme="light"] .cp-brand strong { color:#edf4fb; }
html[data-theme="light"] .cp-brand-product,html[data-theme="light"] .cp-nav a { color:#a8bbcd; }
html[data-theme="light"] .cp-nav a:hover,html[data-theme="light"] .cp-nav a:focus-visible,html[data-theme="light"] .cp-nav a[aria-current="page"] { border-color:transparent; background:rgba(53,101,197,.22); color:#fff; }
html[data-theme="light"] .cp-nav-label { color:#7990a5; }
html[data-theme="light"] .cp-command,html[data-theme="light"] .cp-map,html[data-theme="light"] .cp-atlas-toolbar,html[data-theme="light"] .cp-panel,html[data-theme="light"] .cp-metric,html[data-theme="light"] .cp-vps-summary,html[data-theme="light"] .cp-vps-facts,html[data-theme="light"] .cp-vps-list,html[data-theme="light"] .cp-vps-table-wrap { background:#fff; }
html[data-theme="light"] .cp-button-primary { border-color:#3565c5; background:#3565c5; color:#fff; }
html[data-theme="light"] .cp-button-primary:hover { background:#2a55aa; color:#fff; }
html[data-theme="light"] .cp-status--ready,html[data-theme="light"] .cp-metric[data-tone="signal"] strong { color:#237a5a; }
@media (max-width:1050px) { .cp-main { padding:22px 20px 48px; }.cp-rail { padding:14px 18px; }.cp-brand { min-height:auto; padding:4px 0 13px; border-bottom:0; } }
@media (max-width:700px) { .cp-main { padding:16px 14px 44px; }.cp-hero { align-items:flex-start; }.cp-actions { width:100%; }.cp-actions > * { flex:1 1 auto; text-align:center; } }

/* One persisted Smartia theme powers this operational surface and the standard SaaS modules. */
body.saas-cartography { --cp-paper:var(--saas-bg); --cp-panel:var(--saas-surface); --cp-panel-strong:var(--saas-surface-alt); --cp-line:var(--saas-line); --cp-line-strong:var(--saas-line-strong); --cp-ink:var(--saas-text); --cp-muted:var(--saas-muted); --cp-cyan:var(--saas-primary); --cp-amber:var(--saas-warning); --cp-red:var(--saas-danger); --cp-blue:var(--saas-info); }
.cp-shell { background:var(--saas-bg); }
.cp-rail { background:var(--saas-nav); border-right-color:color-mix(in srgb,var(--saas-nav-text) 13%,transparent); }
.cp-brand strong { color:var(--saas-nav-text); }
.cp-brand .cp-brand-product,.cp-nav a { color:var(--saas-nav-muted); }
.cp-nav a:hover,.cp-nav a:focus-visible,.cp-nav a[aria-current="page"] { background:color-mix(in srgb,var(--saas-primary) 22%,transparent); color:#fff; }
.cp-nav-label { color:color-mix(in srgb,var(--saas-nav-muted) 76%,transparent); }
.cp-map,.cp-panel,.cp-metrics,.cp-vps-summary,.cp-vps-facts,.cp-vps-list,.cp-vps-table-wrap { background:var(--saas-surface); }

/* One SaaS shell: Control Plane keeps its operational content, never its own
   palette, rail or theme implementation. */
body.saas-cartography { font-family:var(--saas-font); background:var(--saas-bg) !important; color:var(--saas-text) !important; }
body.saas-cartography .cp-shell { display:grid; grid-template-columns:var(--saas-sidebar) minmax(0,1fr); min-height:100vh; background:var(--saas-bg) !important; }
body.saas-cartography .cp-shell > .saas-desktop-sidebar.cp-rail { position:fixed; inset:0 auto 0 0; width:var(--saas-sidebar); padding:0; background:var(--saas-nav) !important; border-right:1px solid color-mix(in srgb,var(--saas-nav-text) 13%,transparent); }
body.saas-cartography .cp-rail .saas-sidebar-brand { min-height:70px; padding:18px; color:var(--saas-nav-text); text-decoration:none; }
body.saas-cartography .cp-rail .cp-nav { gap:2px; padding:14px 10px; }
body.saas-cartography .cp-rail .cp-nav a { min-height:42px; padding:0 10px; border:1px solid transparent; border-radius:8px; color:var(--saas-nav-muted); font:580 .81rem/1.25 var(--saas-font); }
body.saas-cartography .cp-rail .cp-nav a:hover,body.saas-cartography .cp-rail .cp-nav a:focus-visible,body.saas-cartography .cp-rail .cp-nav a[aria-current="page"] { border-color:transparent; background:color-mix(in srgb,var(--saas-primary) 22%,transparent); color:#fff; }
body.saas-cartography .cp-main { grid-column:2; min-width:0; padding:28px 32px 64px; background:var(--saas-bg) !important; }
body.saas-cartography .cp-topbar { min-height:42px; margin:0 0 22px; border-bottom:1px solid var(--saas-line); }
body.saas-cartography .cp-crumb { color:var(--saas-muted); font-size:.78rem; letter-spacing:.055em; text-transform:uppercase; }
body.saas-cartography .cp-user { color:var(--saas-muted); }
body.saas-cartography .cp-account-menu { position:relative; }
body.saas-cartography .cp-account-trigger { display:flex; align-items:center; gap:8px; min-height:40px; padding:0 0 0 8px; border:0; border-radius:8px; color:var(--saas-muted); cursor:pointer; list-style:none; }
body.saas-cartography .cp-account-trigger::-webkit-details-marker { display:none; }
body.saas-cartography .cp-account-trigger:hover,body.saas-cartography .cp-account-menu[open] .cp-account-trigger { color:var(--saas-text); }
body.saas-cartography .cp-account-trigger:focus-visible { outline:3px solid var(--saas-focus); outline-offset:2px; }
body.saas-cartography .cp-account-popover { position:absolute; top:calc(100% + 8px); right:0; z-index:70; display:grid; width:190px; gap:4px; padding:6px; border:1px solid var(--saas-line-strong); border-radius:8px; background:var(--saas-surface); box-shadow:var(--saas-shadow-menu); }
body.saas-cartography .cp-account-action { display:flex; width:100%; min-height:38px; align-items:center; gap:9px; padding:0 10px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--saas-text); font:580 .8rem/1 var(--saas-font); text-align:left; cursor:pointer; }
body.saas-cartography .cp-account-action:hover { border-color:var(--saas-line-strong); background:var(--saas-surface-alt); }
body.saas-cartography .cp-account-action:focus-visible { outline:3px solid var(--saas-focus); outline-offset:2px; }
body.saas-cartography .cp-account-action--logout:hover { border-color:color-mix(in srgb,var(--saas-danger) 45%,var(--saas-line)); color:var(--saas-danger); }
body.saas-cartography .cp-language,body.saas-cartography .cp-button,body.saas-cartography .cp-inline-button,body.saas-cartography .cp-vps-button { min-height:40px; border-radius:8px; border-color:var(--saas-line-strong); background:transparent; color:var(--saas-text); font-family:var(--saas-font); }
body.saas-cartography .cp-button-primary { border-color:var(--saas-primary); background:var(--saas-primary); color:#fff; }
body.saas-cartography .cp-button-primary:hover { background:var(--saas-primary-hover); color:#fff; }
body.saas-cartography .cp-hero,body.saas-cartography .cp-vps-header { border-color:var(--saas-line); }
body.saas-cartography .cp-hero h1,body.saas-cartography .cp-vps-header h1 { color:var(--saas-text); font-weight:720; }
body.saas-cartography :is(.cp-command,.cp-map,.cp-panel,.cp-metric,.cp-metrics,.cp-vps-summary,.cp-vps-facts,.cp-vps-list,.cp-vps-table-wrap,.cp-dialog) { background:var(--saas-surface) !important; border-color:var(--saas-line); box-shadow:none; }
body.saas-cartography :is(.cp-command input,.cp-atlas-filter select,.cp-dialog input,.cp-dialog textarea,.cp-dialog select,.cp-vps-storage-form input,.cp-vps-actions input,.cp-vps-field input,.cp-vps-field select,.cp-vps-form textarea,.cp-vps-checks) { background:var(--saas-surface) !important; color:var(--saas-text) !important; border-color:var(--saas-line-strong); }
body.saas-cartography :is(.cp-map,.cp-panel,.cp-metrics,.cp-vps-summary,.cp-vps-facts,.cp-vps-list,.cp-vps-table-wrap) { border-radius:var(--saas-radius-card); }
body.saas-cartography :is(.cp-panel-head p,.cp-hero p:last-child,.cp-vps-header p,.cp-vps-status,.cp-vps-block p,.cp-vps-row span,.cp-vps-field,.cp-vps-measure span,.cp-vps-facts dt,.cp-table th) { color:var(--saas-muted) !important; }
body.saas-cartography :is(.cp-vps-measure strong,.cp-vps-block h2,.cp-vps-facts dd,.cp-vps-row strong,.cp-vps-table td,.cp-module-actions a,.cp-taxi-signals summary) { color:var(--saas-text) !important; }
body.saas-cartography .cp-vps-tabs button { border-radius:8px; color:var(--saas-muted); }
body.saas-cartography .cp-vps-tabs button:hover,body.saas-cartography .cp-vps-tabs button[aria-current="page"] { background:var(--saas-primary-soft); border-color:var(--saas-line-strong); color:var(--saas-text); }
body.saas-cartography .cp-vps-badge { background:var(--saas-surface-alt); color:var(--saas-text); }
body.saas-cartography .cp-vps-badge--ready { background:var(--saas-success-soft); color:var(--saas-success); }
body.saas-cartography .cp-vps-badge--warn { background:var(--saas-warning-soft); color:var(--saas-warning); }
body.saas-cartography .cp-vps-badge--danger { background:var(--saas-danger-soft); color:var(--saas-danger); }
body.saas-cartography .cp-status--ready,body.saas-cartography .cp-metric[data-tone="signal"] strong { color:var(--saas-success) !important; }
body.saas-cartography .cp-metric[data-tone="warning"] strong { color:var(--saas-warning) !important; }
body.saas-cartography .cp-metric[data-tone="danger"] strong,body.saas-cartography .cp-vps-status.is-error { color:var(--saas-danger) !important; }
@media (max-width:700px) { body.saas-cartography .cp-shell { grid-template-columns:1fr; } body.saas-cartography .cp-main { grid-column:1; padding:18px 14px 88px; } body.saas-cartography .cp-topbar { margin-bottom:18px; } body.saas-cartography .cp-account-name { display:none; } }

/* Atlas is a working ledger: the registry owns its own scroll rather than
   extending the entire Control Plane below the adjacent infrastructure. */
@media (min-width:1051px) {
  /* Atlas is the primary work surface. Keep Infrastructure readable without
     stealing enough width to turn the operational ledger into word soup. */
  body.saas-cartography .cp-grid { grid-template-columns:minmax(0,1.7fr) minmax(19rem,.7fr); }
  body.saas-cartography #atlas {
    display:flex;
    flex-direction:column;
    height:clamp(34rem, 68vh, 48rem);
    min-height:0;
  }
  body.saas-cartography #atlas .cp-table-wrap {
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable both-edges;
  }
  body.saas-cartography #atlas .cp-table thead th {
    position:sticky;
    top:0;
    z-index:3;
    background:var(--saas-surface-alt);
  }
  /* Atlas is a decision ledger, not a raw VPS export. Runtime and provenance
     stay available in the classification detail instead of forcing a horizontal
     scan before an operator can see ownership, state, coverage and action. */
  body.saas-cartography #atlas .cp-table :is(th:nth-child(2),td:nth-child(2),th:nth-child(4),td:nth-child(4),th:nth-child(6),td:nth-child(6),th:nth-child(7),td:nth-child(7)) { display:none; }
  body.saas-cartography #atlas .cp-table { min-width:0; table-layout:fixed; }
  body.saas-cartography #atlas .cp-table :is(th,td) { padding-right:10px; padding-left:10px; overflow-wrap:anywhere; }
  body.saas-cartography #atlas .cp-table :is(th:nth-child(1),td:nth-child(1)) { width:29%; }
  body.saas-cartography #atlas .cp-table :is(th:nth-child(3),td:nth-child(3)) { width:14%; }
  body.saas-cartography #atlas .cp-table :is(th:nth-child(5),td:nth-child(5)) { width:24%; }
  body.saas-cartography #atlas .cp-table :is(th:nth-child(8),td:nth-child(8)) { width:21%; }
  body.saas-cartography #atlas .cp-table :is(th:last-child,td:last-child) {
    position:sticky;
    right:0;
    z-index:2;
    width:12%;
    min-width:7.1rem;
    background:var(--saas-surface);
    box-shadow:-12px 0 18px -20px rgba(0,0,0,.78);
  }
  body.saas-cartography #atlas .cp-inline-button { min-height:36px; padding:0 9px; font-size:.76rem; white-space:nowrap; }
  body.saas-cartography #atlas .cp-status { max-width:100%; padding:4px 7px; font-size:.67rem; line-height:1.15; white-space:nowrap; }
  body.saas-cartography #atlas .cp-table th:last-child { z-index:4; background:var(--saas-surface-alt); }
  body.saas-cartography #infrastructure {
    position:sticky;
    top:1.25rem;
    max-height:calc(100vh - 2.5rem);
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}
body.saas-cartography #atlas .cp-table-wrap:focus-visible { outline:3px solid var(--saas-primary); outline-offset:-3px; }
