:root{
  --bg:#05080d;--bg2:#09111c;--panel:#0b121d;--panel2:#111a26;--line:rgba(224,181,74,.28);
  --gold:#f1d58c;--gold2:#bd8733;--text:#f7f1e2;--muted:#9fa9b8;
  --green:#68e285;--orange:#ffad35;--red:#ff5f58;--blue:#6ca9ff;--cyan:#61e2d3;--neutral:#82a7c9;
  --shadow:0 20px 55px rgba(0,0,0,.42);--radius:20px;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
body{background:radial-gradient(circle at 50% -15%,rgba(229,170,55,.13),transparent 30rem),radial-gradient(circle at 100% 40%,rgba(47,115,190,.08),transparent 36rem),linear-gradient(180deg,#060a10,#030508 100%)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:30px 30px}
button,a{font:inherit}.app{min-height:100vh}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;padding:12px 18px;background:rgba(5,9,15,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img{width:54px;height:54px;object-fit:contain;border-radius:13px;border:1px solid rgba(241,213,140,.2);background:#0a1017}.brand-copy strong{display:block;color:var(--gold);font-family:Georgia,serif;font-size:1.24rem;letter-spacing:.03em}.brand-copy span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}
.head-center{flex:1;text-align:center}.head-center h1{margin:0;font-size:clamp(1.35rem,2.2vw,2.25rem);color:var(--gold);font-family:Georgia,serif}.head-center p{margin:4px 0 0;color:#c9c0ad;font-size:.82rem}.head-actions{display:flex;align-items:center;gap:9px}.clock{padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:#0a1017;min-width:142px;text-align:center}.clock b{display:block;color:var(--gold);font-size:1.05rem}.clock small{color:var(--muted)}
.btn{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#151d28,#0c121a);color:var(--text);padding:10px 13px;font-weight:800;cursor:pointer}.btn.primary{background:linear-gradient(135deg,#9a6724,#f0cf78);color:#1b1307;border-color:#ffdd88}.btn:disabled{opacity:.55;cursor:wait}
.btn.repair{border-color:rgba(104,226,133,.5);color:#bff7cd;background:linear-gradient(180deg,#12301e,#0a1710);box-shadow:0 0 18px rgba(104,226,133,.08)}
.footprint-scanner-state.scan-ready{border-color:rgba(104,226,133,.35);background:rgba(104,226,133,.07);color:#c8f6d2}.footprint-scanner-state.scan-error{border-color:rgba(240,197,107,.4);background:rgba(240,197,107,.08);color:#ffe2a3}
.layout{display:grid;grid-template-columns:270px minmax(0,1fr) 300px;gap:12px;padding:12px;max-width:1920px;margin:0 auto}.panel{background:linear-gradient(180deg,rgba(14,20,29,.96),rgba(7,11,17,.98));border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:13px 15px;color:var(--gold);font-weight:900;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.side-inner{padding:12px}.metric{padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:15px;background:rgba(255,255,255,.025);margin-bottom:10px}.metric .lab{display:flex;align-items:center;justify-content:space-between;color:#d7d0c2;font-size:.78rem}.metric strong{display:block;margin-top:5px;color:var(--green);font-size:1.45rem}.mini-line{height:26px;width:90px}.checks{display:grid;gap:8px;margin-top:12px}.checkrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);font-size:.76rem}.state-dot{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 12px currentColor}.s-online{color:var(--green)}.s-warning{color:var(--orange)}.s-unconfigured{color:var(--neutral)}.s-planned{color:#d3b05e}.s-offline{color:var(--red)}
.maincol{min-width:0}.tabs{display:flex;gap:8px;margin-bottom:10px;overflow:auto}.tab{border:1px solid var(--line);border-radius:999px;background:#0a111b;color:var(--muted);padding:9px 13px;font-weight:800;white-space:nowrap;cursor:pointer}.tab.active{color:#211600;background:linear-gradient(135deg,#b47a29,#f3d991);border-color:#f0cf77}.canvas-wrap{position:relative;overflow:hidden;border-radius:20px}.canvas{position:relative;width:100%;min-width:0;height:auto;aspect-ratio:1480/980;background:linear-gradient(180deg,#142217,#08110c);border:1px solid var(--line);border-radius:20px;overflow:hidden}.edges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.city-ground{position:absolute;inset:0;z-index:0;background:
radial-gradient(circle at 4% 18%,#244c2a 0 10px,transparent 11px),radial-gradient(circle at 13% 36%,#1f4829 0 9px,transparent 10px),radial-gradient(circle at 22% 13%,#315e31 0 11px,transparent 12px),radial-gradient(circle at 35% 34%,#234c2a 0 8px,transparent 9px),radial-gradient(circle at 58% 15%,#2d5d34 0 11px,transparent 12px),radial-gradient(circle at 77% 38%,#27582f 0 9px,transparent 10px),radial-gradient(circle at 95% 16%,#2e6235 0 12px,transparent 13px),radial-gradient(circle at 92% 58%,#244c2a 0 10px,transparent 11px),radial-gradient(circle at 5% 84%,#2a5a31 0 12px,transparent 13px),radial-gradient(circle at 62% 91%,#244d2c 0 9px,transparent 10px),linear-gradient(25deg,rgba(255,255,255,.025) 25%,transparent 25% 75%,rgba(255,255,255,.025) 75%),linear-gradient(155deg,#192d1d,#0a1510)}
.city-ground:before{content:"";position:absolute;inset:25px;opacity:.48;background:linear-gradient(90deg,transparent 0 9%,rgba(133,166,115,.16) 9% 9.4%,transparent 9.4% 29%,rgba(133,166,115,.14) 29% 29.4%,transparent 29.4% 49%,rgba(133,166,115,.13) 49% 49.4%,transparent 49.4% 69%,rgba(133,166,115,.15) 69% 69.4%,transparent 69.4% 89%,rgba(133,166,115,.13) 89% 89.4%,transparent 89.4%),linear-gradient(0deg,transparent 0 18%,rgba(133,166,115,.12) 18% 18.5%,transparent 18.5% 39%,rgba(133,166,115,.13) 39% 39.5%,transparent 39.5% 60%,rgba(133,166,115,.12) 60% 60.5%,transparent 60.5% 80%,rgba(133,166,115,.13) 80% 80.5%,transparent 80.5%)}
.city-ground:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 47%,transparent 10%,rgba(0,0,0,.22) 100%)}
.building{--building-accent:#f1d58c;position:absolute;transform:translate(-50%,-50%);z-index:4;width:146px;height:104px;padding:0;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left;filter:drop-shadow(0 13px 12px rgba(0,0,0,.42));transition:transform .2s ease,filter .2s ease}
.building:hover,.building:focus-visible{transform:translate(-50%,-50%) scale(1.08);z-index:12;filter:drop-shadow(0 17px 18px rgba(0,0,0,.58))}
.building-lot{position:absolute;left:2px;right:2px;bottom:0;height:62px;border:1px solid rgba(177,209,151,.2);border-radius:45% 42% 18% 22%;background:radial-gradient(circle at 12% 30%,#467145 0 5px,transparent 6px),radial-gradient(circle at 88% 35%,#3c663d 0 6px,transparent 7px),linear-gradient(155deg,#264328,#152919)}
.building-shell{position:absolute;left:12px;right:12px;top:3px;bottom:13px;display:block;filter:drop-shadow(7px 10px 4px rgba(0,0,0,.35))}
.building-roof{position:absolute;left:10px;right:8px;top:0;height:49px;display:grid;place-items:center;clip-path:polygon(50% 0,100% 38%,83% 100%,17% 100%,0 38%);background:linear-gradient(145deg,color-mix(in srgb,var(--building-accent) 82%,#203040),color-mix(in srgb,var(--building-accent) 44%,#111923));border-bottom:3px solid color-mix(in srgb,var(--building-accent) 65%,#080b0f)}
.building-front{position:absolute;left:18px;right:16px;top:43px;min-height:43px;padding:7px 8px 6px;border-left:3px solid color-mix(in srgb,var(--building-accent) 65%,#0c1318);border-bottom:3px solid #05080c;border-radius:0 0 5px 5px;background:linear-gradient(90deg,#1a232b,#0c1218);box-shadow:inset -8px 0 0 rgba(0,0,0,.14)}
.roof-mark{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:1.12rem;background:rgba(4,8,12,.68);border:2px solid rgba(255,255,255,.35);box-shadow:0 2px 8px rgba(0,0,0,.42)}
.building-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:900;color:#f8f3e7;text-shadow:0 1px 2px #000}
.building-meta{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:.62rem;color:#b9c2cb;white-space:nowrap}.building-meta .state-dot{width:7px;height:7px}
.building.online .building-roof{box-shadow:0 0 0 2px rgba(104,226,133,.24),0 0 20px rgba(104,226,133,.12)}
.building.warning .building-roof{box-shadow:0 0 0 2px rgba(255,173,53,.5),0 0 22px rgba(255,173,53,.18)}
.building.unconfigured .building-roof{box-shadow:0 0 0 2px rgba(130,167,201,.55),0 0 20px rgba(130,167,201,.16);filter:saturate(.72)}
.building.offline .building-roof{box-shadow:0 0 0 2px rgba(255,95,88,.7),0 0 24px rgba(255,95,88,.22);filter:saturate(.38)}
.building.planned{opacity:.72;filter:grayscale(.5) drop-shadow(0 11px 10px rgba(0,0,0,.4))}.building.planned .building-roof{background:repeating-linear-gradient(135deg,#3f4447 0 8px,#292d31 8px 16px);box-shadow:0 0 0 2px rgba(255,173,53,.45)}
.building-warehouse .building-roof{clip-path:polygon(5% 14%,95% 14%,100% 100%,0 100%);background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--building-accent) 54%,#26323b) 0 12px,color-mix(in srgb,var(--building-accent) 38%,#151d24) 12px 20px)}
.building-infra .building-shell,.building-civic .building-shell{left:7px;right:7px}.building-infra .building-roof,.building-civic .building-roof{clip-path:polygon(18% 5%,82% 5%,100% 100%,0 100%);height:52px}
.building-garage .building-roof{clip-path:polygon(8% 20%,92% 20%,100% 100%,0 100%)}.building-restaurant .building-front{background:linear-gradient(90deg,#281b16,#11171c)}
.road-bed{fill:none;stroke:#080c10;stroke-width:21;stroke-linecap:round;stroke-linejoin:round;opacity:.96}.road-lane{fill:none;stroke:#39434a;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.route-identity{fill:none;stroke-width:2.8;stroke-linecap:round;filter:drop-shadow(0 0 3px currentColor)}.route-warning{stroke-dasharray:8 6}.route-unconfigured{stroke-dasharray:3 7;opacity:.72}.route-offline{stroke-dasharray:4 7}.route-label{font-size:10px;font-weight:800;paint-order:stroke;stroke:#07100b;stroke-width:5px;stroke-linejoin:round}.flow-car{filter:drop-shadow(0 0 5px rgba(0,0,0,.8))}.flow-car-warning{opacity:.82}.flow-car-unconfigured{opacity:.52}.flow-car-offline{opacity:.58}.road-barrier rect{fill:#ff5f58;stroke:#fff;stroke-width:1}.road-barrier line{stroke:#ff5f58;stroke-width:3;stroke-linecap:round}
.road-sample{width:38px;height:12px;border-radius:10px;background:linear-gradient(#39434a,#39434a) padding-box;box-shadow:inset 0 5px 0 #39434a,inset 0 -5px 0 #39434a;position:relative}.road-sample:after{content:"";position:absolute;left:3px;right:3px;top:5px;height:2px;background:#f0b03d}.car-sample{position:relative;width:25px;height:12px;border-radius:4px;background:#f0b03d;border:1px solid #fff}.car-sample:before{content:"";position:absolute;left:6px;right:6px;top:2px;bottom:2px;border-radius:2px;background:#16202c}
.legend{display:flex;flex-wrap:wrap;gap:12px;padding:10px 12px;margin-top:8px;background:#080d14;border:1px solid var(--line);border-radius:15px;font-size:.72rem;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.line-sample{width:34px;height:3px;border-radius:2px;background:var(--green)}.line-sample.client{background:var(--gold)}.line-sample.monitor{background:var(--blue)}.line-sample.accounting{background:var(--orange)}
.summary-boxes{display:grid;gap:8px;padding:12px}.sum{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-radius:13px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025)}.sum b{font-size:1.15rem}.sum.online{color:var(--green)}.sum.warning{color:var(--orange)}.sum.unconfigured{color:var(--neutral)}.sum.planned{color:#d3b05e}.sum.offline{color:var(--red)}
.module-list{max-height:390px;overflow:auto;padding:0 10px 10px}.modrow{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 7px;border-bottom:1px solid rgba(255,255,255,.05);font-size:.73rem}.modrow small{color:var(--muted)}.route-list{padding:0 10px 12px}.route{padding:10px;border:1px solid rgba(255,255,255,.06);border-radius:13px;margin-top:8px;background:rgba(255,255,255,.02)}.route strong{display:block;font-size:.77rem}.route small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}.route.online{border-color:rgba(104,226,133,.3)}.route.warning{border-color:rgba(255,173,53,.35)}.route.offline{border-color:rgba(255,95,88,.35)}
.detailbar{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}.critical{padding:12px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,#111820,#090d12)}.critical b{color:var(--gold);font-size:.83rem}.critical p{margin:7px 0 0;color:var(--muted);font-size:.7rem;line-height:1.4}.critical .flow{margin-top:8px;color:var(--green);font-weight:800}
.drawer{position:fixed;inset:0;z-index:80;display:none;background:rgba(0,0,0,.58);backdrop-filter:blur(4px)}.drawer.open{display:block}.drawer-card{position:absolute;right:0;top:0;bottom:0;width:min(520px,96vw);padding:18px;background:linear-gradient(180deg,#101823,#070b11);border-left:1px solid var(--line);overflow:auto;box-shadow:-20px 0 60px rgba(0,0,0,.45)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.drawer h2{margin:14px 0 5px;color:var(--gold);font-family:Georgia,serif}.drawer a{color:#9cc8ff;word-break:break-all}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.detail{padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:rgba(255,255,255,.025)}.detail small{color:var(--muted);display:block}.detail b{display:block;margin-top:4px}.events{margin-top:16px}.events pre{white-space:pre-wrap;font-size:.72rem;color:#c6d0dd;background:#06090e;border:1px solid rgba(255,255,255,.06);padding:10px;border-radius:12px}
.recommended-action{margin-top:14px;padding:12px;border:1px solid rgba(108,169,255,.32);border-radius:13px;background:rgba(108,169,255,.07)}.recommended-action b{color:#b8d6ff}.recommended-action p{margin:5px 0 0;color:#d7e5f8}.action-cell{min-width:210px;color:#c9d8ea!important}
.repair-modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:18px;background:rgba(0,0,0,.7);backdrop-filter:blur(6px)}.repair-modal.open{display:grid}.repair-card{width:min(680px,96vw);max-height:92vh;overflow:auto;padding:20px;border:1px solid rgba(241,213,140,.4);border-radius:22px;background:linear-gradient(180deg,#101923,#070b11);box-shadow:0 30px 90px rgba(0,0,0,.65)}.repair-card h2{margin:3px 0 0;color:var(--gold);font-family:Georgia,serif}.eyebrow{color:var(--green);font-size:.66rem;font-weight:900;letter-spacing:.12em}.repair-intro{color:#cbd4df;line-height:1.5}.repair-result{display:grid;gap:8px;margin:15px 0}.repair-item{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:rgba(255,255,255,.025)}.repair-item>span{color:var(--green);font-weight:900}.repair-item b{color:#edf5ee}.repair-item p,.repair-summary p,.repair-error p{margin:4px 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}.repair-item.protected{border-color:rgba(108,169,255,.3)}.repair-summary,.repair-error,.repair-done{padding:12px;border-radius:13px;border:1px solid rgba(241,213,140,.26);background:rgba(241,213,140,.05)}.repair-summary.success,.repair-done{border-color:rgba(104,226,133,.38);background:rgba(104,226,133,.08);color:#bff7cd}.repair-error{border-color:rgba(255,95,88,.4);color:#ff9d98}.repair-loading{padding:18px;text-align:center;color:var(--gold)}.repair-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.repair-code{display:grid;gap:6px;color:var(--gold);font-size:.76rem;font-weight:800}.repair-code input{padding:11px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:#070b11}
.empty-tab{display:none;padding:16px;border:1px solid var(--line);border-radius:20px;background:#0a1018}.status-note{margin:12px 0;padding:10px 12px;border:1px solid rgba(130,167,201,.28);border-radius:13px;background:rgba(130,167,201,.07);color:#cbd9e7;font-size:.75rem;line-height:1.45}.status-note b{color:#e5f1fc}.table-wrap{overflow:auto}.status-table{width:100%;border-collapse:collapse;min-width:1280px}.status-table th,.status-table td{text-align:left;padding:10px;border-bottom:1px solid rgba(255,255,255,.06);font-size:.75rem}.status-table th{color:var(--gold);position:sticky;top:0;background:#0b1119}.status-table td{color:#d8dde5}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;border:1px solid currentColor;font-weight:800;font-size:.67rem}.version-badge{display:inline-flex;padding:5px 8px;border-radius:999px;border:1px solid currentColor;font-weight:800;font-size:.67rem;white-space:nowrap}.version-current{color:var(--green);background:rgba(104,226,133,.07)}.version-mismatch{color:var(--orange);background:rgba(255,173,53,.08)}.version-unknown{color:var(--neutral);background:rgba(130,167,201,.08)}.version-not_published{color:var(--muted);background:rgba(159,169,184,.07)}
.footer{padding:12px 18px 22px;color:var(--muted);text-align:center;font-size:.7rem}
@media(max-width:1450px){.layout{grid-template-columns:230px minmax(0,1fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.right .panel{height:100%}.detailbar{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.topbar{align-items:flex-start;flex-wrap:wrap}.head-center{order:3;flex-basis:100%}.clock{display:none}.layout{grid-template-columns:1fr;padding:8px}.left{order:2}.maincol{order:1}.right{order:3;grid-template-columns:1fr}.side-inner.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric{margin:0}.detailbar{grid-template-columns:1fr}.canvas-wrap{overflow:auto}.canvas{width:980px;min-width:980px;height:649px;aspect-ratio:auto}.btn .txt{display:none}}
@media(prefers-reduced-motion:reduce){.building{transition:none}.flow-car animateMotion{display:none}}

/* Poste de commande v0.3.2 — serveur unique dinoburger.be */
.btn.command-links{border-color:rgba(108,169,255,.5);color:#c7dcff;background:linear-gradient(180deg,#142943,#0a1522);box-shadow:0 0 18px rgba(108,169,255,.08)}
body[data-active-tab="command"] .layout,body[data-active-tab="links"] .layout,body[data-active-tab="migration"] .layout,body[data-active-tab="footprint"] .layout,body[data-active-tab="history"] .layout{grid-template-columns:minmax(0,1fr);max-width:1760px}
body[data-active-tab="command"] .layout>.left,body[data-active-tab="command"] .layout>.right,body[data-active-tab="links"] .layout>.left,body[data-active-tab="links"] .layout>.right,body[data-active-tab="migration"] .layout>.left,body[data-active-tab="migration"] .layout>.right,body[data-active-tab="footprint"] .layout>.left,body[data-active-tab="footprint"] .layout>.right,body[data-active-tab="history"] .layout>.left,body[data-active-tab="history"] .layout>.right{display:none}
.command-home{padding:0;background:transparent;border:0}.command-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:24px;border:1px solid rgba(241,213,140,.38);border-radius:22px;background:radial-gradient(circle at 85% 0,rgba(241,197,107,.16),transparent 22rem),linear-gradient(135deg,#111b26,#080d13 68%);box-shadow:var(--shadow)}
.command-hero h2,.manager-head h2{margin:4px 0 7px;color:var(--gold);font-family:Georgia,serif;font-size:clamp(1.3rem,2.2vw,2rem)}.command-hero p,.manager-head p{max-width:900px;margin:0;color:#c8d0db;line-height:1.5}.registry-revision{min-width:180px;padding:16px;border:1px solid var(--line);border-radius:18px;text-align:center;background:rgba(4,7,11,.7)}.registry-revision small,.registry-revision span{display:block;color:var(--muted)}.registry-revision b{display:block;margin:4px 0;color:var(--green);font-size:2rem}.registry-revision .has-draft{color:var(--orange);font-weight:800}
.command-toolbar{position:sticky;top:82px;z-index:30;display:flex;align-items:center;gap:12px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(7,12,19,.94);backdrop-filter:blur(15px)}.command-search{display:flex;align-items:center;gap:9px;flex:1;min-width:240px;padding:0 13px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#070b11}.command-search span{font-size:1.4rem;color:var(--gold)}.command-search input{width:100%;padding:12px 0;border:0;outline:0;background:transparent;color:var(--text);font-size:.92rem}.environment-filters{display:flex;gap:7px;overflow:auto}.env-filter{padding:8px 11px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0c141e;color:var(--muted);font-weight:800;white-space:nowrap;cursor:pointer}.env-filter.active{border-color:var(--gold2);color:#211600;background:linear-gradient(135deg,#b47a29,#f3d991)}
.command-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:14px}.command-summary>div{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:linear-gradient(180deg,#111923,#090e15)}.command-summary small{display:block;color:var(--muted)}.command-summary b{display:block;margin-top:4px;color:#dce8f5;font-size:1.35rem}.command-summary .good b{color:var(--green)}.command-summary .attention b{color:var(--orange)}
.command-categories{display:grid;gap:18px}.command-category{padding:16px;border:1px solid rgba(255,255,255,.07);border-radius:20px;background:rgba(9,14,21,.72)}.command-category-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.command-category-head h2{margin:0;color:var(--gold);font-family:Georgia,serif}.command-category-head span{color:var(--muted);font-size:.76rem}.command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.command-card{display:flex;flex-direction:column;min-width:0;padding:15px;border:1px solid rgba(255,255,255,.08);border-left:4px solid var(--neutral);border-radius:17px;background:linear-gradient(160deg,#121b26,#080d13 72%);box-shadow:0 12px 24px rgba(0,0,0,.25);transition:transform .18s ease,border-color .18s ease}.command-card:hover{transform:translateY(-2px);border-color:rgba(241,213,140,.34)}.command-card.state-online{border-left-color:var(--green)}.command-card.state-warning{border-left-color:var(--orange)}.command-card.state-offline{border-left-color:var(--red)}.command-card.state-planned{border-left-color:#d3b05e}.command-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px}.command-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(241,213,140,.3);border-radius:13px;background:#080d13;font-size:1.35rem}.command-card h3{margin:1px 0 5px;color:#f6f0e4;font-size:.98rem}.command-card>p{min-height:38px;margin:10px 0;color:#aeb9c7;font-size:.76rem;line-height:1.45}.command-badges{display:flex;flex-wrap:wrap;gap:5px}.mini-badge{padding:3px 6px;border:1px solid rgba(255,255,255,.11);border-radius:999px;color:var(--muted);font-size:.58rem;font-weight:900;text-transform:uppercase}.mini-badge.public{color:var(--gold);border-color:rgba(241,213,140,.36)}.mini-badge.migration-migrated,.mini-badge.migration-embedded{color:var(--green);border-color:rgba(104,226,133,.3)}.mini-badge.migration-to_migrate,.mini-badge.migration-building,.mini-badge.migration-on_dinoburger_to_verify{color:var(--orange);border-color:rgba(255,173,53,.3)}.selected-link-state{min-width:0;margin-bottom:10px;padding:8px 9px;border:1px solid rgba(108,169,255,.16);border-radius:11px;background:rgba(108,169,255,.045)}.selected-link-state b{display:block;color:#cce0ff;font-size:.69rem}.selected-link-state small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;color:#77899f;font-size:.61rem;white-space:nowrap}.command-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.command-open{display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 9px;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:#101a26;color:#e4edf7;font-size:.69rem;font-weight:900;text-decoration:none;cursor:pointer}.command-open i{font-style:normal;color:var(--green);font-size:.55rem;text-transform:uppercase}.command-open.selected{box-shadow:inset 0 0 0 1px var(--green)}.command-open.env-production{border-color:rgba(104,226,133,.28)}.command-open.env-test{border-color:rgba(108,169,255,.3)}.command-open.env-archive{border-color:rgba(159,169,184,.25)}.command-open.primary-action{border-color:rgba(241,213,140,.45);background:linear-gradient(135deg,#7b501e,#c99b45);color:#100b04}.command-open.disabled{opacity:.55;cursor:not-allowed}.command-card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:11px;padding-top:9px;border-top:1px solid rgba(255,255,255,.06)}.command-card-foot span{color:#768598;font-size:.61rem;line-height:1.35}.command-card-foot button{border:0;background:transparent;color:#8fbdf6;font-size:.66rem;font-weight:800;cursor:pointer}.command-loading,.command-empty,.command-error{padding:30px;border:1px dashed rgba(255,255,255,.15);border-radius:17px;color:var(--muted);text-align:center}.command-error{color:#ffaca7;border-color:rgba(255,95,88,.4)}
.manager-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.manager-head h2{margin-top:3px}.manager-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.lock-state{padding:8px 10px;border:1px solid rgba(255,173,53,.3);border-radius:999px;color:var(--orange);font-size:.7rem;font-weight:900}.lock-state.unlocked{border-color:rgba(104,226,133,.35);color:var(--green)}.link-editor-table{min-width:1750px}.link-editor-table td{vertical-align:top}.link-editor-table td:first-child{min-width:240px}.link-editor-table td:first-child small,.link-editor-table td:first-child em{display:block;max-width:300px;margin-top:5px;color:var(--muted);font-size:.66rem;line-height:1.35}.link-editor-table td:first-child em{color:var(--gold);font-style:normal}.link-field{display:grid;grid-template-columns:130px minmax(240px,1fr);gap:6px;min-width:390px}.link-field input,.link-field select,.link-editor-table>tbody>tr>td>select{min-width:0;padding:8px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:#080d13;color:#e5edf7;font-size:.7rem}.link-field input[data-field="note"]{grid-column:1/-1;color:#aeb9c7}.link-field input:disabled,.link-field select:disabled,.link-editor-table select:disabled{opacity:.62}.link-focus{outline:2px solid var(--gold);outline-offset:-2px;background:rgba(241,213,140,.08)}
.migration-checklist{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 16px}.migration-checklist span{padding:7px 9px;border:1px solid rgba(104,226,133,.22);border-radius:999px;color:#bde7c7;background:rgba(104,226,133,.04);font-size:.69rem;font-weight:800}.migration-matrix{display:grid;gap:8px}.migration-row{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(250px,1.35fr) minmax(250px,1.35fr) minmax(210px,1fr);align-items:center;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.08);border-left:4px solid var(--neutral);border-radius:15px;background:linear-gradient(90deg,#101822,#090e14)}.migration-row.good{border-left-color:var(--green)}.migration-row.attention{border-left-color:var(--orange)}.migration-row.test{border-left-color:var(--blue)}.migration-row.planned{border-left-color:#d3b05e}.migration-row small{display:block;color:var(--muted);font-size:.64rem}.migration-row b{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;color:#dce5ef;font-size:.71rem;white-space:nowrap}.migration-name{display:flex;align-items:center;gap:9px}.migration-name>span{font-size:1.25rem}.migration-status{display:inline-flex;padding:5px 8px;border:1px solid currentColor;border-radius:999px;color:var(--gold);font-size:.65rem;font-weight:900}.migration-row.good .migration-status{color:var(--green)}.migration-row.attention .migration-status{color:var(--orange)}.migration-row.test .migration-status{color:var(--blue)}
.history-list{display:grid;gap:9px}.history-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:#0a111a}.history-entry>div{display:flex;align-items:center;gap:12px}.history-entry>div>span{display:grid;place-items:center;width:50px;height:42px;border:1px solid var(--line);border-radius:12px;color:var(--gold);font-weight:900}.history-entry b,.history-entry small{display:block}.history-entry small{margin-top:4px;color:var(--muted)}.command-toast{position:fixed;right:18px;bottom:18px;z-index:150;max-width:420px;padding:13px 16px;border:1px solid rgba(104,226,133,.4);border-radius:14px;background:#10251a;color:#c7f6d2;box-shadow:var(--shadow);opacity:0;transform:translateY(18px);pointer-events:none;transition:.22s}.command-toast.show{opacity:1;transform:none}.command-toast.error{border-color:rgba(255,95,88,.45);background:#301313;color:#ffc1bd}.command-toast.info{border-color:rgba(108,169,255,.4);background:#101f32;color:#c9ddff}

@media(max-width:1150px){.command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.command-summary{grid-template-columns:repeat(3,1fr)}.migration-row{grid-template-columns:1fr 1fr}.command-toolbar{align-items:stretch;flex-direction:column;top:76px}}
@media(max-width:680px){.command-hero{grid-template-columns:1fr;padding:16px}.registry-revision{min-width:0}.command-grid,.command-summary,.migration-row{grid-template-columns:1fr}.command-category{padding:10px}.command-toolbar{position:relative;top:auto}.command-search{min-width:0}.manager-head,.history-entry{align-items:stretch;flex-direction:column}.manager-actions{justify-content:flex-start}.command-card>p{min-height:0}.command-open{flex:1 1 42%}}
@media print{.topbar,.tabs,.command-toolbar,.layout>.left,.layout>.right,.manager-actions,.footer{display:none!important}.layout{display:block!important}.empty-tab{border:0!important}.migration-row{break-inside:avoid;color:#000;background:#fff}.migration-row b,.migration-row small,.migration-status{color:#000!important}}
