@font-face{font-family:Inter;src:url('/fonts/inter-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('/fonts/inter-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('/fonts/inter-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url('/fonts/inter-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{font-family:Inter,system-ui,sans-serif;color:#f1f1f1;background:#0d0d0d;color-scheme:dark;font-synthesis:none;-webkit-font-smoothing:antialiased;--bg:#0d0d0d;--panel:#151515;--raised:#1e1e1e;--line:#ffffff0d;--line-strong:#ffffff19;--muted:#979797;--dim:#787878;--mint:#34d399;--purple:#c084fc;--cyan:#60a5fa;--amber:#fb923c;--red:#fb7185;--radius:16px;--sidebar:228px}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}a{color:inherit;text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button svg,a svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button,a{transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}button:active{transform:translateY(1px)}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1.1px;font-weight:600;line-height:1.3}h2{font-size:16px;letter-spacing:-.3px;font-weight:500}h3{font-size:16px;font-weight:500}p{font-size:14px;line-height:1.65}small{font-size:12px;line-height:1.5}::selection{color:#fff;background:#94949460}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#3f3f3f;border-radius:9px}.muted{color:var(--muted)}.dim{color:var(--dim)}.mint{color:var(--mint)}.purple{color:var(--purple)}.cyan{color:var(--cyan)}.amber{color:var(--amber)}.danger{color:var(--red)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:var(--mint);color:#1c1c1c;padding:12px;border-radius:6px}.skip-link:focus{top:12px}.boot{display:grid;place-content:center;gap:24px;min-height:100vh;text-align:center;color:var(--muted)}.boot-mark{color:#f4f4f4;font-size:72px;letter-spacing:-7px;font-weight:700}.boot-mark span{font-size:15px;letter-spacing:0;vertical-align:top;color:var(--mint)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#141414,#111111);border-right:1px solid var(--line-strong);z-index:40;display:flex;flex-direction:column;padding:29px 18px 17px;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 12px;margin-bottom:35px}.brand-symbol{font-weight:700;font-size:32px;line-height:1;letter-spacing:-3px}.brand-symbol i{font-style:normal;color:var(--mint);font-size:29px;margin-left:2px}.brand-word{font-size:14px;font-weight:500;letter-spacing:3.5px;margin-top:5px}.workspace{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);background:#ffffff03;border-radius:10px;padding:11px;margin-bottom:28px}.workspace-symbol{display:grid;place-items:center;width:30px;height:30px;background:#d3d3d311;border:1px solid #d4d4d41a;border-radius:7px;color:#d4d4d4}.workspace-text{flex:1;line-height:1.2}.workspace-text strong{font-size:13px;font-weight:500}.workspace-text small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.workspace>svg{color:var(--dim)}.nav-section-label{font-size:10px;letter-spacing:1.8px;font-weight:600;color:#828282;padding:0 13px;margin-bottom:11px}.nav-list{display:grid;gap:4px}.nav-link{display:flex;gap:12px;align-items:center;text-align:left;min-height:41px;padding:10px 12px;border-radius:8px;color:#9e9e9e;font-size:13px;font-weight:400;border:1px solid transparent;position:relative}.nav-link:hover{color:#eaeaea;background:#ffffff04}.nav-link.active{color:#f2f2f2;border-color:#34d39918;background:linear-gradient(95deg,#34d39915,#34d39905);box-shadow:inset 2px 0 0 #34d399}.nav-link.active svg{color:var(--mint)}.nav-link .nav-count{margin-left:auto;background:#fb923c19;color:var(--amber);font-size:10px;min-width:18px;padding:2px 5px;border-radius:4px;text-align:center}.sidebar-projects{margin-top:28px}.project-nav{display:flex;align-items:center;gap:11px;font-size:13px;color:#9f9f9f;width:100%;padding:10px 13px;text-align:left;border-radius:7px}.project-nav:hover{background:#ffffff06;color:white}.project-dot{width:8px;height:8px;border-radius:3px;background:currentColor;box-shadow:0 0 12px #34d39916}.project-nav svg{margin-left:auto;opacity:.45}.sidebar-bottom{margin-top:auto;padding-top:25px}.local-card{border:1px solid #34d39915;border-radius:10px;background:linear-gradient(120deg,#34d3990a,transparent);padding:14px;margin-bottom:19px;position:relative;overflow:hidden}.local-card:after{content:'';position:absolute;inset:auto -40px -80px auto;width:170px;height:120px;background:#34d3990b;filter:blur(30px);pointer-events:none}.local-card-top{display:flex;align-items:center;gap:7px;font-size:12px;color:#e5e5e5}.status-light{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px #34d39945}.local-card p{font-size:11px;color:var(--muted);margin-top:7px}.local-card .mono{font-size:10px;color:#8e8e8e;margin-top:12px}.profile{display:flex;gap:11px;align-items:center;border-top:1px solid var(--line);padding:17px 8px 0}.avatar{display:grid;place-items:center;width:32px;height:32px;border:1px solid #d8d8d82b;border-radius:50%;background:radial-gradient(ellipse at top right,#34d39925,#3e3e3e30);color:#e5e5e5;font-weight:500;font-size:13px;flex-shrink:0}.profile strong{display:block;font-size:12px;font-weight:500}.profile small{color:var(--muted);font-size:11px}.profile>svg{margin-left:auto;color:var(--dim)}
.shell{margin-left:var(--sidebar);min-height:100vh;background:radial-gradient(ellipse at 55% -30%,#86868610,transparent 55%)}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);gap:20px}.breadcrumb{display:flex;align-items:center;gap:13px;font-size:12px;color:var(--muted)}.breadcrumb .slash{color:#525252}.breadcrumb .current{color:#e0e0e0}.top-actions{display:flex;align-items:center;gap:15px}.search-button{display:flex;align-items:center;gap:9px;color:#898989;font-size:12px;margin-right:15px}.search-button kbd{font-size:10px;border:1px solid var(--line-strong);border-radius:4px;padding:3px 5px;font-family:inherit;margin-left:14px}.icon-button{height:34px;width:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:var(--muted);position:relative}.icon-button:hover{background:#ffffff07;color:#ececec}.notification-count{position:absolute;right:5px;top:4px;width:5px;height:5px;border-radius:50%;background:var(--amber);border:1px solid var(--bg)}.top-separator{height:22px;width:1px;background:var(--line-strong)}.private-label{display:flex;gap:6px;align-items:center;font-size:11px;color:#a2a2a2}.mobile-menu{display:none}.main{padding:31px 34px 20px;max-width:1740px;margin:auto;outline:none}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{color:#979797;letter-spacing:2px;font-size:10px;font-weight:500;margin-bottom:9px;display:flex;align-items:center;gap:7px}.eyebrow span{color:#555555}.page-head p{font-size:13px;color:var(--muted);margin-top:7px}.page-tools{display:flex;align-items:center;gap:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;padding:8px 13px;border:1px solid var(--line-strong);background:#ffffff03;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap}.button:hover{background:#ffffff08;border-color:#ffffff30}.button.primary{position:relative;background:#34d399;color:#222222;border-color:#ebebeb50;box-shadow:0 0 15px #34d39909,inset 0 1px 0 #ffffff33;overflow:hidden}.button.primary:before{content:'';position:absolute;inset:-60px;background:linear-gradient(110deg,transparent 30%,#fff6 45%,#60a5fa77 50%,transparent 60%);transform:translateX(-100%);animation:button-sheen 8s ease-in-out infinite;pointer-events:none}.button.primary:hover{background:#ededed;box-shadow:0 0 18px #34d39924}.button svg,.button span{position:relative}.button.text{border-color:transparent;background:none;padding:5px 0;color:#ababab;min-height:30px}.button.text:hover{color:var(--mint)}.button.danger{color:var(--red);border-color:#fb718530;background:#fb718508}.select-wrap{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:8px;background:#ffffff03;position:relative;padding-left:11px;color:var(--muted)}.select-wrap>svg{position:absolute;right:10px;pointer-events:none}.select-wrap select{padding:9px 31px 9px 1px;border:0;background:transparent;color:#dbdbdb;font-size:12px;outline-offset:2px;min-height:35px;cursor:pointer}.select-wrap option{background:#1b1b1b;color:#e6e6e6}.data-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #cdcdcd18;border-radius:8px;background:linear-gradient(90deg,#34d39909,#34d39902);padding:9px 13px;margin-bottom:22px;min-height:37px}.data-banner .banner-copy{display:flex;align-items:center;gap:8px;font-size:11px;color:#a4a4a4;line-height:1.5}.data-banner .banner-copy strong{font-weight:500;color:#d2d2d2}.data-banner button{font-size:11px;color:#cecece;display:flex;align-items:center;gap:7px;white-space:nowrap}.data-banner.live{border-color:#34d3991c;background:#34d39905}.data-banner.error{border-color:#fb718535;color:var(--red)}.mode-dot{width:5px;height:5px;border-radius:50%;background:#bbbbbb;flex-shrink:0}
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.metric{border:1px solid var(--line-strong);border-radius:var(--radius);padding:19px 20px 16px;background:linear-gradient(140deg,#1b1b1ba8,#151515a8);position:relative;overflow:hidden;min-height:142px;transition:border-color .2s,transform .2s}.metric:hover{border-color:#cbcbcb2c;transform:translateY(-2px)}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#ababab;font-size:12px}.metric-top svg{color:#8f8f8f}.metric-value{font-size:31px;line-height:1.15;letter-spacing:-1px;font-weight:500;margin-top:15px;font-variant-numeric:tabular-nums;position:relative;z-index:1}.metric-value small{font-size:16px;color:#8f8f8f;letter-spacing:-.5px}.metric-foot{display:flex;align-items:center;gap:6px;font-size:10px;color:#8f8f8f;margin-top:13px;position:relative;z-index:1}.trend{color:var(--mint);display:flex;align-items:center;gap:2px;font-weight:500}.spark{position:absolute;right:17px;bottom:16px;width:92px;height:31px;opacity:.65;mask-image:linear-gradient(90deg,transparent,#000 35%)}.metric:last-child .spark{opacity:.4}.overview-row{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(280px,1fr);gap:20px;margin-bottom:24px}.panel{border:1px solid var(--line-strong);border-radius:var(--radius);background:linear-gradient(160deg,#181818c9,#141414e0);overflow:hidden;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 22px 0}.panel-head p{font-size:11px;color:var(--muted);margin-top:5px}.panel-head .head-label{display:flex;align-items:center;gap:8px;font-size:12px}.panel-head .head-label svg{color:#8d8d8d}.panel-body{padding:22px}.panel-head .button.text{font-size:11px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;line-height:1.3;min-height:22px;padding:4px 7px;border-radius:5px;color:#aeaeae;background:#ffffff06;border:1px solid #ffffff08;white-space:nowrap}.badge.success{color:var(--mint);background:#34d39908;border-color:#34d39912}.badge.warning{color:var(--amber);background:#fb923c0a;border-color:#fb923c17}.badge.danger{color:var(--red);background:#fb71850a;border-color:#fb718514}.badge.purple{color:var(--purple);background:#c084fc0a;border-color:#c084fc15}.badge .dot{width:4px;height:4px;background:currentColor;border-radius:50%}.segment{display:inline-flex;gap:2px;background:#09090940;border:1px solid var(--line);padding:3px;border-radius:7px}.segment button{padding:5px 9px;border-radius:5px;font-size:10px;color:#8f8f8f;min-width:30px}.segment button.active{background:#d8d8d80d;color:#e2e2e2;box-shadow:0 1px 4px #0003}.segment button:hover{color:#e2e2e2}.chart-metrics{display:flex;align-items:center;gap:27px;padding:21px 22px 8px}.chart-metric-label{display:flex;align-items:center;gap:6px;color:#a7a7a7;font-size:11px}.legend-dot{width:6px;height:6px;border-radius:2px;background:currentColor;display:inline-block}.chart-metric-value{font-size:22px;font-weight:500;letter-spacing:-.6px;margin:7px 0 0 12px;font-variant-numeric:tabular-nums}.chart-divider{height:37px;width:1px;background:var(--line-strong)}.chart{height:210px;margin:4px 18px 2px;position:relative}.chart svg{height:100%;width:100%;overflow:visible}.chart .chart-grid{stroke:#c3c3c310;stroke-dasharray:3 4;stroke-width:1}.chart text{fill:#898989;font-family:Inter,sans-serif;font-size:11px}.chart .chart-line{fill:none;stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1600;stroke-dashoffset:1600;animation:chart-enter 1.7s cubic-bezier(.2,.7,.1,1) forwards}.chart .chart-point{transition:opacity .2s;cursor:crosshair}.chart-tooltip{position:absolute;z-index:5;pointer-events:none;background:#212121eb;border:1px solid #c2c2c22e;box-shadow:0 10px 35px #0005;padding:10px 12px;border-radius:8px;font-size:11px;min-width:150px;backdrop-filter:blur(12px);line-height:1.8;opacity:0;transition:opacity .1s}.chart-tooltip.visible{opacity:1}.chart-tooltip b{font-weight:500}.chart-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 22px 17px;border-top:1px solid var(--line);font-size:10px;color:#8b8b8b}.chart-bottom span{display:flex;align-items:center;gap:5px}.budget-top{display:flex;align-items:baseline;gap:7px}.budget-top strong{font-size:22px;font-weight:500;letter-spacing:-.7px}.budget-top span{font-size:11px;color:var(--muted)}.budget-visual{display:flex;align-items:center;justify-content:center;position:relative;height:163px;margin-top:5px}.budget-visual svg{width:156px;height:156px;transform:rotate(-90deg)}.budget-visual circle{fill:none;stroke-width:8;stroke-linecap:round}.donut-inner{position:absolute;text-align:center}.donut-inner strong{font-size:29px;letter-spacing:-1px;font-weight:500;display:block}.donut-inner span{font-size:10px;color:var(--muted);display:block;margin-top:5px}.budget-legend{padding:0 23px 18px;display:grid;gap:10px}.budget-line{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#a8a8a8}.budget-line span{display:flex;align-items:center;gap:8px}.budget-line b{font-size:12px;font-weight:400;color:#e7e7e7}.budget-footer{display:flex;justify-content:space-between;gap:10px;margin:0 21px;padding:13px 0 17px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.budget-footer b{font-weight:500;color:var(--mint)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{font-size:15px;display:flex;gap:9px;align-items:center}.section-heading h2 .count{font-size:11px;font-weight:400;color:#909090;border:1px solid var(--line-strong);padding:2px 6px;border-radius:5px}.section-heading .button.text{font-size:11px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.project-card{position:relative;border:1px solid #34d39920;border-radius:var(--radius);background:linear-gradient(135deg,#1f1f1f,#151515 68%);padding:21px 22px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.project-card.purple-card{border-color:#c084fc22;background:linear-gradient(135deg,#1d1d1d,#151515 68%)}.project-card:after{content:'';position:absolute;pointer-events:none;width:250px;height:200px;right:-130px;top:-115px;border-radius:50%;background:#34d39909;filter:blur(10px)}.purple-card:after{background:#c084fc0c}.project-card:hover{border-color:#34d39940;box-shadow:0 5px 40px #0002}.purple-card:hover{border-color:#c084fc40}.project-header{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.project-logo{width:43px;height:43px;border:1px solid #34d39935;background:radial-gradient(ellipse at top,#34d39920,#34d39902);box-shadow:inset 0 1px 0 #f5f5f512;border-radius:11px;display:flex;align-items:center;justify-content:center;color:var(--mint);flex-shrink:0}.purple-card .project-logo,.project-logo.purple{color:var(--purple);border-color:#c084fc30;background:radial-gradient(ellipse at top,#c084fc21,#c084fc02)}.project-logo .cz-glyph{font-size:20px;font-weight:700;letter-spacing:-1.8px;padding-right:2px}.project-title{flex:1;min-width:0}.project-title h3{font-size:16px;letter-spacing:-.3px}.project-title p{font-size:10px;color:#959595;margin-top:4px}.purple-card .project-title p{color:#939393}.project-header>.icon-button{align-self:flex-start;margin:-3px -6px 0 0}.project-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:23px 0 20px}.project-kpi strong{font-size:23px;font-weight:500;letter-spacing:-.5px;font-variant-numeric:tabular-nums;display:block}.project-kpi small{font-size:10px;color:#999999;display:block;margin-bottom:7px}.purple-card .project-kpi small{color:#939393}.project-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #34d39910;padding-top:13px}.purple-card .project-bottom{border-color:#c084fc12}.project-domain{font-size:10px;color:#9d9d9d;display:flex;gap:6px;align-items:center}.purple-card .project-domain{color:#959595}.project-bottom .button.text{font-size:10px;min-height:24px}.project-bottom .badge{min-height:20px;font-size:9px}.bottom-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:20px;margin-bottom:22px}.server-list{padding:3px 21px 10px}.server-row{display:grid;grid-template-columns:1fr 68px 68px 73px;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.server-row:last-child{border-bottom:0}.server-name{display:flex;align-items:center;gap:11px;min-width:0}.server-icon{width:34px;height:34px;border:1px solid var(--line-strong);background:#ffffff03;border-radius:8px;display:grid;place-items:center;color:#b0b0b0;flex-shrink:0}.server-name strong{font-size:11px;font-weight:500;display:block;white-space:nowrap}.server-name small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.resource-label{display:flex;justify-content:space-between;gap:4px;font-size:9px;color:#8f8f8f;margin-bottom:7px}.resource-label b{font-size:10px;color:#cacaca;font-weight:400}.progress-track{height:3px;background:#b5b5b510;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--mint);border-radius:2px;box-shadow:0 0 6px #34d39933;transition:width .7s}.progress-fill.warning{background:var(--amber);box-shadow:0 0 6px #fb923c33}.progress-fill.purple{background:var(--purple)}.server-footer{display:flex;justify-content:space-between;gap:10px;padding:12px 22px;border-top:1px solid var(--line);font-size:10px;color:#9a9a9a}.server-footer span{display:flex;gap:6px;align-items:center}.activity-list{padding:11px 22px 17px}.activity-item{display:flex;align-items:flex-start;gap:10px;padding:11px 0;position:relative}.activity-item:not(:last-child):after{content:'';position:absolute;top:30px;left:10px;bottom:-8px;width:1px;background:var(--line-strong)}.activity-icon{width:22px;height:22px;display:grid;place-items:center;flex-shrink:0;border:1px solid #34d3991a;border-radius:50%;background:#34d39908;color:var(--mint);position:relative;z-index:1}.activity-icon.warning{color:var(--amber);background:#fb923c08;border-color:#fb923c20}.activity-icon.info{color:var(--purple);background:#c084fc08;border-color:#c084fc20}.activity-icon.danger{color:var(--red);background:#fb718508;border-color:#fb718520}.activity-text{flex:1;min-width:0}.activity-text strong{display:block;font-size:11px;font-weight:400;line-height:1.6;color:#cfcfcf}.activity-text p{font-size:10px;color:#8f8f8f;margin-top:2px;line-height:1.5}.activity-item time{font-size:9px;color:#828282;margin-top:4px;white-space:nowrap}.footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:18px 0 3px;font-size:10px;color:#787878}.footer-left{display:flex;align-items:center;gap:8px}.footer .mono{font-size:9px;letter-spacing:.5px}.footer .footer-brand{font-weight:600;color:#a6a6a6}.view-enter{animation:view-enter .35s ease both}.metrics-grid .metric:nth-child(2){animation-delay:40ms}.metrics-grid .metric:nth-child(3){animation-delay:80ms}.metrics-grid .metric:nth-child(4){animation-delay:120ms}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:45px 20px;min-height:200px;text-align:center}.empty-state>svg{color:#8b8b8b;margin-bottom:3px}.empty-state h3{font-size:15px}.empty-state p{font-size:12px;color:var(--muted);max-width:370px}.empty-state .button{margin-top:6px}.details-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.table-scroll{overflow:auto}.details-table th{color:#9c9c9c;font-weight:400;font-size:11px;padding:14px 20px;background:#0a0a0a28;border-bottom:1px solid var(--line-strong);white-space:nowrap}.details-table td{padding:16px 20px;border-bottom:1px solid var(--line);color:#cfcfcf;white-space:nowrap}.details-table tr:last-child td{border-bottom:0}.details-table tbody tr:hover{background:#cacaca04}.details-table .row-name{font-size:12px;color:#e9e9e9}.details-table .row-meta{display:block;font-size:10px;color:#8e8e8e;margin-top:5px}.details-table .amount{font-variant-numeric:tabular-nums;font-size:13px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 21px}.table-toolbar h2{font-size:15px}.table-toolbar input{max-width:230px}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:22px}.full-width{grid-column:1/-1}.stack{display:grid;gap:20px}.spacing-top{margin-top:22px}.note{font-size:11px;color:#a1a1a1;line-height:1.8;border:1px solid var(--line-strong);background:#d3d3d303;padding:13px 15px;border-radius:9px;display:flex;gap:9px;align-items:flex-start}.note svg{flex-shrink:0;margin-top:2px;color:#b6b6b6}.note.warning{border-color:#fb923c1c;color:#a7a7a7;background:#fb923c04}.inline-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}.inline-stats>div{padding-right:12px;border-right:1px solid var(--line-strong)}.inline-stats>div:last-child{border:0}.inline-stats small{font-size:10px;color:var(--muted);display:block}.inline-stats strong{display:block;font-size:23px;font-weight:500;margin-top:8px;letter-spacing:-.5px}.server-card{padding:23px}.server-card .server-name strong{font-size:14px}.server-card .server-name small{font-size:11px}.server-card .server-name .badge{margin-left:auto}.server-card .resources{display:grid;gap:21px;margin:26px 0}.server-card .resource-label{font-size:11px}.server-card .resource-label b{font-size:12px}.server-card .progress-track{height:5px}.server-card-foot{border-top:1px solid var(--line-strong);padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.server-card.local{border-color:#34d39925}.server-card.local .server-icon{color:var(--mint);border-color:#34d39920}.site-card{padding:22px}.site-card-head{display:flex;gap:12px;align-items:center;margin-bottom:19px}.site-card-head h3{font-size:15px;margin-bottom:6px}.site-card-head p{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.site-card .site-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:21px;padding-top:16px;border-top:1px solid var(--line-strong)}.site-card .button{font-size:11px;min-height:33px}.connector-icon{width:44px;height:44px;border:1px solid #d7d7d71c;border-radius:11px;background:linear-gradient(135deg,#d3d3d312,#34d39903);display:grid;place-items:center;color:#c7c7c7;margin-bottom:20px}.connector-card{padding:24px;display:flex;flex-direction:column}.connector-card h3{font-size:16px;margin-bottom:9px}.connector-card p{font-size:12px;color:var(--muted);min-height:55px}.connector-card .badge{align-self:flex-start;margin-top:17px}.connector-card .button{margin-top:20px;width:100%}.connector-card.connected{border-color:#34d39929;background:radial-gradient(ellipse at top right,#34d3990b,transparent 75%),var(--panel)}.alert-tabs{display:flex;gap:20px;margin-bottom:22px;border-bottom:1px solid var(--line-strong)}.alert-tabs button{padding:0 0 13px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent;display:flex;align-items:center;gap:7px}.alert-tabs button.active{color:var(--mint);border-color:var(--mint)}.alert-row{display:flex;align-items:center;gap:15px;padding:22px;border-bottom:1px solid var(--line)}.alert-row:last-child{border:0}.alert-row .activity-icon{width:34px;height:34px}.alert-row .alert-copy{flex:1;min-width:0}.alert-row h3{font-size:13px;margin-bottom:5px}.alert-row p{font-size:12px;color:var(--muted)}.alert-row small{display:block;font-size:10px;color:#8d8d8d;margin-top:9px}.alert-row .button{font-size:11px;min-height:32px}.alert-row.resolved{opacity:.65}.settings-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.settings-row h3{font-size:13px;margin-bottom:5px}.settings-row p{font-size:11px;color:var(--muted)}.switch{width:38px;height:22px;background:#4f4f4f;border:1px solid #bdbdbd2d;border-radius:15px;position:relative;flex-shrink:0}.switch:after{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:var(--mint);top:3px;right:3px;transition:transform .2s}.switch[aria-checked=false]{background:#2c2c2c;border-color:#ffffff10}.switch[aria-checked=false]:after{background:#8a8a8a;transform:translateX(-16px)}
input,textarea,select.field{background:#0d0d0d;border:1px solid #b5b5b523;border-radius:8px;color:#e7e7e7;min-height:40px;padding:10px 12px;font-size:13px;width:100%;transition:border-color .2s}input::placeholder,textarea::placeholder{color:#808080}input:hover,textarea:hover{border-color:#b5b5b543}input:focus,textarea:focus{border-color:#d5d5d575;outline:0;box-shadow:0 0 0 2px #34d3990a}label.field-label{display:block;font-size:12px;color:#c0c0c0;margin-bottom:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-field.full{grid-column:1/-1}.form-help{font-size:10px;color:#8a8a8a;margin-top:8px;line-height:1.6}.form-error{font-size:12px;color:var(--red);line-height:1.6;min-height:20px;margin-top:15px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:19px;border-top:1px solid var(--line-strong)}.form-actions .button{min-height:39px;padding:10px 16px}dialog{color:#f1f1f1;border:1px solid #bfbfbf2e;background:radial-gradient(ellipse at top right,#aeaeae0b,transparent 80%),#191919;border-radius:18px;width:min(560px,calc(100vw - 32px));padding:28px;box-shadow:0 40px 100px #0009;max-height:calc(100dvh - 40px);overflow:auto}dialog::backdrop{background:#070707a8;backdrop-filter:blur(8px)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:26px}.modal-head h2{font-size:20px;font-weight:500;letter-spacing:-.5px}.modal-head p{font-size:12px;color:var(--muted);margin-top:8px}.modal-head .icon-button{margin:-6px -8px 0 0;flex-shrink:0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:11px;color:#d5d5d5;background:#0b0b0b;padding:16px;border:1px solid var(--line-strong);border-radius:9px;line-height:1.8;max-height:300px;overflow:auto}.modal-copy{font-size:13px;line-height:1.8;color:#b6b6b6}.modal-copy p{font-size:13px;margin-bottom:14px}.modal-copy ul{padding-left:18px;line-height:2}.search-results{display:grid;gap:5px;margin-top:15px}.search-result{padding:13px 12px;border-radius:8px;display:flex;gap:12px;align-items:center;text-align:left;border:1px solid transparent}.search-result:hover,.search-result:focus-visible{background:#cfcfcf09;border-color:#cfcfcf20}.search-result>svg{color:#afafaf}.search-result strong{font-size:13px;font-weight:500;display:block}.search-result small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.search-result .search-key{margin-left:auto;color:#6c6c6c;font-size:10px}#toast{position:fixed;left:calc(50% + var(--sidebar)/2);bottom:27px;transform:translate(-50%,20px);padding:12px 19px;border-radius:10px;background:#2d2d2df5;border:1px solid #34d3993a;color:#eaeaea;box-shadow:0 10px 30px #0004;z-index:100;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 32px);line-height:1.6}#toast.visible{opacity:1;transform:translate(-50%,0)}#toast.error{border-color:#fb718540;background:#272727;color:#fb7185}.connection-state{display:flex;align-items:center;gap:8px}.loading-icon{animation:spin .8s linear infinite}.sidebar-overlay{display:none}.big-number{font-size:39px;font-weight:500;letter-spacing:-1.5px;line-height:1.3}.price-caption{font-size:11px;color:var(--muted);margin-top:5px}.cost-summary{padding:25px}.cost-summary .cost-summary-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#aaaaaa;margin-bottom:16px}.budget-progress{margin:20px 0 12px}.budget-progress .resource-label{font-size:11px;margin-bottom:12px}.budget-progress .progress-track{height:6px}.cost-breakdown{display:grid;gap:16px;margin-top:22px}.cost-breakdown .budget-line{font-size:12px}.total-row td{background:#c0c0c004;color:#efefef!important}.code-badge{font-size:10px;border:1px solid var(--line-strong);padding:4px 7px;border-radius:5px;color:#b5b5b5;background:#09090940}.chart-table{padding-top:10px}.table-details{padding:0 22px 14px}.table-details summary{font-size:10px;color:#9c9c9c;cursor:pointer;padding:7px 0}.table-details .details-table td,.table-details .details-table th{padding:9px 10px;font-size:10px}.detail-hero{display:flex;align-items:center;gap:17px;padding:24px}.detail-hero .project-logo{width:58px;height:58px;border-radius:14px}.detail-hero h2{font-size:22px;margin-bottom:7px}.detail-hero p{font-size:12px;color:var(--muted)}.detail-hero .project-actions{margin-left:auto;display:flex;gap:8px}.project-subtabs{display:flex;gap:20px;padding:0 24px;border-top:1px solid var(--line)}.project-subtabs span{font-size:11px;padding:16px 0;color:#ababab}.project-subtabs span:first-child{color:var(--mint);border-bottom:2px solid var(--mint)}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:24px}.kpi-strip>div{border-right:1px solid var(--line-strong)}.kpi-strip>div:last-child{border-right:0}.kpi-strip small{display:block;font-size:11px;color:var(--muted);margin-bottom:12px}.kpi-strip strong{font-size:27px;font-weight:500;letter-spacing:-.8px}.source-detail{font-size:11px;color:#989898;line-height:1.9;margin-top:18px}.source-detail b{font-weight:500;color:#c6c6c6}
@keyframes chart-enter{to{stroke-dashoffset:0}}@keyframes view-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes button-sheen{0%,65%{transform:translateX(-100%) rotate(-10deg)}85%,100%{transform:translateX(100%) rotate(-10deg)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.main{padding:36px 46px 22px}.topbar{padding:0 46px}.metric{padding:23px 25px 20px;min-height:158px}.metric-value{font-size:35px}.chart{height:230px}.project-card{padding:25px}.project-kpis{margin:27px 0 24px}.project-kpi strong{font-size:27px}.overview-row{grid-template-columns:2.1fr 1fr}}
@media(max-width:1250px){:root{--sidebar:208px}.sidebar{padding-left:12px;padding-right:12px}.main{padding:26px 24px 18px}.topbar{padding:0 24px}.overview-row{grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr)}.bottom-row{grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr)}.metric{padding:17px 15px 15px}.metric-value{font-size:28px}.spark{width:62px;opacity:.45}.server-row{grid-template-columns:1fr 50px 50px;gap:12px}.server-row>.badge{display:none}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-button{margin-right:0}.search-button span{display:none}.page-tools{gap:7px}.project-card{padding:19px}.chart{height:208px}.project-domain{font-size:9px}}
@media(max-width:1050px){:root{--sidebar:190px}.brand{gap:9px;padding-left:10px}.brand-word{font-size:12px;letter-spacing:2px}.nav-link{font-size:12px;gap:10px}.page-head{align-items:flex-start}.page-tools{flex-wrap:wrap;justify-content:flex-end;max-width:275px}.metric-value{font-size:24px}.metric-foot{font-size:9px}.metric-top{font-size:11px}.metric-top svg{width:15px}.overview-row{grid-template-columns:1fr}.budget-panel{display:grid;grid-template-columns:1fr 150px 1.1fr}.budget-panel .panel-head{grid-column:1/-1;padding-bottom:6px}.budget-panel .budget-visual{height:142px;grid-column:2;grid-row:2/4;margin:0}.budget-panel .budget-visual svg{width:130px;height:130px}.budget-panel .budget-top{padding-left:22px;align-self:center}.budget-panel .budget-legend{grid-column:3;grid-row:2/4;align-self:center;padding:14px 22px}.budget-panel .budget-footer{grid-column:1;grid-row:3;margin:0 0 0 22px;padding-right:12px;flex-wrap:wrap;align-self:start;border:0}.bottom-row{grid-template-columns:1fr}.server-row{grid-template-columns:1fr 85px 85px 80px}.server-row>.badge{display:inline-flex;justify-self:end}.project-kpis{gap:7px}.project-kpi strong{font-size:21px}.project-bottom{flex-wrap:wrap}.settings-grid{grid-template-columns:1fr}.chart{height:230px}.private-label{display:none}}
@media(max-width:800px){:root{--sidebar:0px}.sidebar{width:238px;transform:translateX(-100%);transition:transform .25s;box-shadow:20px 0 50px #0005}.sidebar.open{transform:translateX(0)}.sidebar.open+.sidebar-overlay{position:fixed;inset:0;background:#0007;display:block;z-index:35;backdrop-filter:blur(3px)}.mobile-menu{display:inline-flex}.topbar{height:62px;padding:0 20px}.breadcrumb{font-size:11px;gap:10px}.top-actions{gap:10px}.search-button kbd{display:none}.main{padding:24px 20px 16px}.page-head{margin-bottom:20px}.page-head h1{font-size:26px}.page-head p{font-size:12px}.eyebrow{font-size:9px}.page-tools{max-width:none}.page-tools .export-label{display:none}.metrics-grid{gap:12px}.metric{min-height:133px}.metric-value{font-size:26px}.metric-foot{font-size:9px;max-width:100px;flex-wrap:wrap;line-height:1.5}.spark{width:50px;height:25px}.project-domain{font-size:10px}.project-kpi strong{font-size:23px}.metric-top{font-size:10px}.data-banner .banner-copy{font-size:10px}.data-banner .banner-explanation{display:none}.data-banner button{font-size:10px}.data-banner{padding:9px 11px;margin-bottom:18px}.topbar .avatar{width:29px;height:29px}.topbar .top-separator{display:none}.footer{font-size:9px}.footer .mono{font-size:8px}.cards-grid{gap:15px}.detail-hero{flex-wrap:wrap}.detail-hero .project-actions{margin-left:0}.kpi-strip{gap:12px}.kpi-strip strong{font-size:23px}#toast{left:50%}}
@media(max-width:600px){.main{padding:23px 16px 16px}.topbar{padding:0 13px}.breadcrumb{gap:8px}.breadcrumb .workspace-crumb{display:none}.breadcrumb .slash{display:none}.top-actions{gap:7px}.topbar .search-button{padding:7px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:18px}.page-head h1{font-size:27px}.page-tools{justify-content:flex-start;width:100%}.page-tools .select-wrap{flex:1}.page-tools .select-wrap select{width:100%}.page-tools .button{min-height:36px}.metrics-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.metric{min-height:137px;padding:16px}.metric-top{font-size:11px}.metric-value{font-size:28px;margin-top:17px}.metric-foot{font-size:9px;max-width:unset}.spark{width:58px;opacity:.5}.overview-row{gap:18px;margin-bottom:22px}.panel-head{padding:18px 18px 0}.panel-head h2{font-size:14px}.chart-metrics{padding:22px 18px 9px;gap:22px}.chart{height:205px;margin-left:12px;margin-right:12px}.chart text{font-size:11px}.chart-bottom{padding:9px 17px 15px;font-size:9px}.chart-bottom>span{max-width:65%;line-height:1.5}.chart-bottom .button{font-size:10px}.chart-metric-value{font-size:21px}.budget-panel{grid-template-columns:1fr 1fr}.budget-panel .panel-head{grid-column:1/-1}.budget-panel .budget-top{padding-left:18px;grid-column:1;grid-row:2;align-self:end;padding-top:17px}.budget-panel .budget-visual{grid-column:2;grid-row:2/4;align-self:center;margin:10px 0}.budget-panel .budget-legend{grid-column:1/-1;grid-row:4;padding:6px 18px 18px}.budget-panel .budget-footer{grid-column:1;grid-row:3;margin-left:18px;align-self:start;padding-top:12px;gap:5px}.projects-grid{grid-template-columns:1fr;gap:16px;margin-bottom:23px}.project-card{padding:20px}.project-title p{font-size:11px}.project-kpi small{font-size:11px}.project-kpi strong{font-size:25px}.project-kpis{margin:23px 0 21px;gap:14px}.project-bottom .button.text{font-size:11px}.project-domain{font-size:10px}.bottom-row{gap:18px}.server-list{padding:3px 17px 8px}.server-row{grid-template-columns:1fr 61px 61px;gap:13px}.server-row>.badge{display:none}.server-name strong{font-size:11px}.server-name small{font-size:9px}.server-icon{width:30px;height:30px}.server-footer{padding:12px 17px;font-size:9px}.activity-list{padding:11px 18px 17px}.activity-text strong{font-size:12px}.activity-text p{font-size:11px}.activity-item time{font-size:10px}.activity-item{padding:12px 0}.footer{align-items:flex-start;line-height:1.7}.footer-right{max-width:125px;text-align:right}.cards-grid,.settings-grid{grid-template-columns:1fr}.panel-body{padding:18px}.table-toolbar{padding:17px;flex-wrap:wrap}.table-toolbar input{max-width:none}.details-table th,.details-table td{padding:14px 17px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:1}.alert-row{padding:18px;flex-wrap:wrap;gap:12px}.alert-row .alert-copy{width:calc(100% - 50px);flex:initial}.alert-row>.button{margin-left:46px}.settings-row{gap:15px}.data-banner button svg{display:none}.detail-hero{padding:20px}.detail-hero .project-logo{width:48px;height:48px}.detail-hero h2{font-size:21px}.project-subtabs{padding:0 20px;gap:17px;flex-wrap:wrap}.project-subtabs span{font-size:10px}.kpi-strip{grid-template-columns:1fr 1fr;padding:21px;gap:23px}.kpi-strip>div:nth-child(2){border:0}.kpi-strip strong{font-size:28px}.kpi-strip small{font-size:11px}.inline-stats{gap:11px}.inline-stats strong{font-size:22px}.server-card{padding:22px}.source-detail{font-size:11px}.note{font-size:11px}.table-details{padding:0 18px 12px}dialog{padding:23px}.modal-head h2{font-size:19px}.alert-tabs{gap:17px}.alert-tabs button{font-size:11px}.section-heading h2{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.chart .chart-line{stroke-dashoffset:0}.button.primary:before{display:none}}
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}html[data-motion=off] .chart .chart-line{stroke-dashoffset:0}html[data-motion=off] .button.primary:before{display:none}

/* Shared CZ typography, with readable working labels at every viewport. */
.workspace-symbol{flex-shrink:0}.workspace-text strong{font-size:13px;white-space:nowrap}.workspace-text small{font-size:12px}.workspace{padding:10px;gap:9px;min-height:55px}.workspace-text{min-width:0}.workspace>svg{flex-shrink:0}
.nav-link,.project-nav{font-size:14px}.nav-link{gap:10px}.sidebar .brand{margin-bottom:25px}.nav-section-label{font-size:11px;letter-spacing:1.5px}.sidebar-projects{margin-top:22px}.local-card p,.local-card .mono,.profile small{font-size:12px}.profile strong{font-size:14px}
.metric-top{font-size:14px}.metric-foot{font-size:12px;line-height:1.5;min-height:18px;flex-wrap:wrap;gap:4px}.metric .spark{bottom:46px;width:76px;opacity:.35}.metric-value{margin-top:15px}.metric{min-height:151px;padding-bottom:16px}.metric-top svg{opacity:.7}.metric-foot:has(.trend){padding-right:0}.metric-foot>span:last-child{font-size:11px}.metric-value{font-size:32px}
.button,.select-wrap select{font-size:13px}.panel-head h2,.section-heading h2{font-size:16px}.panel-head p,.chart-metric-label,.chart-bottom,.budget-line,.budget-footer,.project-title p,.project-kpi small,.project-domain,.project-bottom .button.text,.project-bottom .badge{font-size:12px}.badge{font-size:12px}.panel-head .button.text,.section-heading .button.text{font-size:12px}.chart-metric-value{font-size:25px}.chart-divider{height:44px}.segment button{font-size:12px;padding:5px 10px}.budget-top span{font-size:12px}.donut-inner span{font-size:12px}.project-kpi strong{font-size:26px}.project-kpis{margin:25px 0 21px}.project-title h3{font-size:18px}.project-logo{width:46px;height:46px}.project-domain{font-size:11px}.project-bottom{flex-wrap:wrap}.project-bottom .badge{font-size:10px}.project-card{background:radial-gradient(ellipse at 5% 0%,#34d3990c,transparent 65%),#151515}.project-card.purple-card{background:radial-gradient(ellipse at 5% 0%,#c084fc0b,transparent 65%),#161616}.project-card:before{content:'';position:absolute;top:0;left:22px;right:22px;height:1px;background:linear-gradient(90deg,#34d39960,transparent 75%);pointer-events:none}.project-card.purple-card:before{background:linear-gradient(90deg,#c084fc65,transparent 75%)}
.server-name strong{font-size:13px}.server-name small{font-size:11px}.resource-label{font-size:11px}.resource-label b{font-size:12px}.server-row{grid-template-columns:1fr 76px 76px 91px;gap:15px}.server-footer{font-size:11px}.activity-text strong{font-size:13px}.activity-text p{font-size:12px}.activity-item time{font-size:11px}.activity-item{padding:13px 0}.activity-icon{width:24px;height:24px}.activity-item:not(:last-child):after{left:11px;top:33px}.activity-list{padding-top:13px}.footer{font-size:11px}.footer .mono{font-size:10px}
.data-banner .banner-copy,.data-banner button{font-size:12px}.data-banner{padding:10px 13px}.page-head p{font-size:14px}.page-head{margin-bottom:21px}.main{padding-top:27px}.page-head .eyebrow{font-size:11px}.topbar{height:66px}.breadcrumb{font-size:12px}.private-label{font-size:12px}.search-button{font-size:12px}.search-button kbd{font-size:11px}.form-help,.form-error{font-size:12px}.field-label{font-size:14px!important}input,textarea,select.field{font-size:14px}.details-table,.details-table .row-name{font-size:13px}.details-table th{font-size:12px}.details-table .row-meta{font-size:12px}.details-table .amount{font-size:14px}.note,.source-detail{font-size:12px}.connector-card p{font-size:14px;line-height:1.7;min-height:75px}.connector-card .badge{font-size:11px;white-space:normal}.connector-card .button{font-size:13px}.connector-card h3{font-size:18px}.server-card .resource-label,.server-card .resource-label b{font-size:13px}.inline-stats small{font-size:12px}.server-card-foot{font-size:11px}.server-card .server-name small{font-size:12px}.alert-row h3{font-size:14px}.alert-row p{font-size:13px}.alert-row small{font-size:12px}.alert-row .button{font-size:12px}.alert-tabs button{font-size:14px}.settings-row h3{font-size:14px}.settings-row p{font-size:12px}.site-card-head p,.site-card .button{font-size:12px}.site-card-head h3{font-size:17px}.price-caption{font-size:12px}.kpi-strip small{font-size:13px}.detail-hero p{font-size:13px}.table-details summary{font-size:12px}.search-result strong{font-size:14px}.search-result small{font-size:12px}.modal-head p,.modal-copy,.modal-copy p{font-size:14px}.local-card-top{font-size:12px}.nav-link.active{box-shadow:inset 2px 0 0 #34d399,0 0 24px #34d39903}
@media(min-width:1200px){.overview-row{grid-template-columns:minmax(0,2.1fr) minmax(300px,1fr)}.chart{height:195px}.budget-visual{height:151px}.budget-visual svg{height:145px;width:145px}}
@media(max-height:930px) and (min-width:801px){.sidebar{padding-top:24px}.sidebar .workspace{margin-bottom:22px}.sidebar .brand{margin-bottom:22px}.sidebar .local-card{display:none}.sidebar .nav-link{min-height:38px;padding-top:8px;padding-bottom:8px}.sidebar .sidebar-bottom{padding-top:18px}.sidebar .profile{padding-top:14px}.sidebar-projects{margin-top:20px}.sidebar .nav-section-label{margin-bottom:8px}}
@media(max-height:810px) and (min-width:801px){.sidebar .workspace{display:none}.sidebar .brand{margin-bottom:30px}.sidebar-projects{margin-top:22px}.sidebar-bottom .nav-list{margin-bottom:12px!important}}
@media(max-width:1200px){.server-row{grid-template-columns:1fr 70px 70px}.server-row>.badge{display:none}.metric-top{font-size:13px}.metric-value{font-size:29px}.project-bottom .project-domain{font-size:11px}}
@media(max-width:1050px){.metric-top{font-size:12px}.metric-value{font-size:26px}.metric .spark{display:none}.nav-link,.project-nav{font-size:13px}.nav-link{gap:9px}.workspace-text strong{font-size:12px}.sidebar .workspace>svg{display:none}.budget-panel .budget-top{padding-top:14px!important}.metric-foot{font-size:11px}.server-row{grid-template-columns:1fr 90px 90px 95px}.server-row>.badge{display:inline-flex}.project-kpi strong{font-size:23px}}
@media(max-width:800px){.nav-link,.project-nav{font-size:14px}.workspace-text strong{font-size:13px}.sidebar .workspace>svg{display:block}.sidebar .local-card{display:none}.sidebar{padding-top:25px}.sidebar .brand{margin-bottom:25px}.sidebar .workspace{margin-bottom:22px}.sidebar .nav-link{min-height:38px;padding-top:8px;padding-bottom:8px}.sidebar-bottom{padding-top:20px}.topbar{height:62px}.page-head .eyebrow{font-size:10px}.page-head p{font-size:13px}.data-banner .banner-copy,.data-banner button{font-size:11px}.metric-top{font-size:12px}.metric-value{font-size:28px}.metric-foot{font-size:11px}.metric-foot>span:last-child{font-size:10px}.page-tools .select-wrap select{font-size:12px}.project-kpi strong{font-size:26px}.project-kpi small{font-size:12px}}
@media(max-width:600px){.main{padding-top:24px}.metric{min-height:146px;padding:16px 15px}.metric-top{font-size:13px}.metric-value{font-size:29px}.metric-foot{font-size:12px;max-width:none;margin-top:10px}.metric-foot>span:last-child{font-size:10px}.metric-top svg{width:15px}.metric .spark{display:none}.server-row{grid-template-columns:1fr 61px 61px;gap:12px}.server-row>.badge{display:none}.server-name strong{font-size:12px}.server-name small{font-size:10px}.resource-label{font-size:10px}.resource-label b{font-size:11px}.project-card{padding:20px}.project-bottom .button.text{font-size:12px}.project-domain{font-size:11px}.data-banner .banner-copy{font-size:10px}.data-banner button{font-size:10px}.data-banner{padding:10px 11px}.page-head p{font-size:13px}.chart-bottom{font-size:11px}.chart-bottom>span{max-width:75%}.chart-bottom .button{font-size:12px}.chart text{font-size:12px}.chart-metric-label{font-size:12px}.chart-metric-value{font-size:25px}.chart-metrics{gap:23px}.budget-footer{font-size:12px}.activity-text strong{font-size:13px}.activity-text p{font-size:12px}.footer{font-size:10px}.footer .mono{font-size:9px}.site-card .inline-stats{grid-template-columns:1fr 1fr}.site-card .inline-stats>div:last-child{grid-column:1/-1}.inline-stats strong{font-size:23px}.form-grid{gap:17px}.topbar .search-button kbd{display:none}.connector-card p{min-height:0}.panel-head h2,.section-heading h2{font-size:15px}.data-banner .banner-copy strong{font-weight:400}.detail-hero .project-actions{width:100%}}

/* Stable live updates: only user navigation replays entrances. */
#app.quiet-refresh .view-enter{animation:none}
#app.quiet-refresh .chart-line{animation:none;stroke-dashoffset:0}
.source-link{color:var(--mint)!important;margin-top:5px;display:block}
.source-link:hover{text-decoration:underline}
.connector-card p.source-detail{min-height:0;font-size:12px;margin-bottom:18px}
.connector-card .button{margin-top:auto}
.server-card .source-detail{line-height:1.7;margin-top:16px}
.server-card .server-name{min-width:0}.server-card .server-name small{overflow-wrap:anywhere}
.details-table .row-meta{max-width:370px;white-space:normal;line-height:1.6}
.chart-bottom>span{line-height:1.5}
@media(max-height:700px) and (min-width:801px){.sidebar .brand{margin-bottom:22px}.sidebar-projects{margin-top:15px}.sidebar-bottom{padding-top:10px}.sidebar .nav-link{min-height:35px;padding-top:6px;padding-bottom:6px}.sidebar .project-nav{padding-top:8px;padding-bottom:8px}.sidebar .profile{padding-top:11px}}

.table-scroll{position:relative;max-width:100%;contain:inline-size}.panel{min-width:0}

/* Four project accents keep the common graphite / Inter identity. */
.project-card{border-top-color:color-mix(in srgb,var(--project-color,var(--mint)) 24%,transparent)}
.project-card .project-logo{color:var(--project-color,var(--mint));background:color-mix(in srgb,var(--project-color,var(--mint)) 9%,transparent);border-color:color-mix(in srgb,var(--project-color,var(--mint)) 15%,transparent)}
.project-dot.blue{background:#60a5fa}.project-dot.pearl{background:#e1e1e1}.project-logo.blue{color:#60a5fa}.project-logo.pearl{color:#e1e1e1}
.chart-metrics{flex-wrap:wrap;row-gap:18px}.project-kpi strong{overflow-wrap:anywhere}.project-kpi small{line-height:1.5}
@media(min-width:801px) and (max-height:860px){.sidebar-projects{margin-top:14px}.sidebar-projects .nav-section-label{margin-bottom:8px}.project-nav{padding-top:8px;padding-bottom:8px}.sidebar-bottom .nav-list{margin-bottom:10px!important}.local-card{padding:12px}.sidebar .profile{padding-top:12px;margin-top:12px}}

/* V2 — santé de l’écosystème, historiques et vues épurées. */
.status-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line-strong);border-radius:10px;padding:11px 14px;margin-bottom:22px;background:#ffffff03;min-height:46px}
.status-main{display:flex;align-items:center;gap:10px;min-width:0;font-size:13px}.status-main strong{font-weight:500;white-space:nowrap}.status-copy{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-pulse{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #34d39914;flex-shrink:0;animation:pulse 2.4s ease-in-out infinite}
.status-bar.success{border-color:#34d3991f;background:linear-gradient(90deg,#34d39908,transparent 60%)}
.status-bar.warning{border-color:#fb923c26;background:linear-gradient(90deg,#fb923c0a,transparent 60%)}.status-bar.warning .status-pulse{background:var(--amber);box-shadow:0 0 0 4px #fb923c14}
.status-bar.danger{border-color:#fb718530;background:linear-gradient(90deg,#fb71850c,transparent 60%)}.status-bar.danger .status-pulse{background:var(--red);box-shadow:0 0 0 4px #fb718518}
.status-bar.demo .status-pulse{background:var(--purple);box-shadow:0 0 0 4px #c084fc14}
.status-side{display:flex;align-items:center;gap:12px;flex-shrink:0}.status-side>button{font-size:12px;color:#cecece;display:flex;align-items:center;gap:6px}
.status-sources{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.status-sources i{width:6px;height:14px;border-radius:2px;background:#ffffff14}.status-sources i.on{background:var(--mint)}.status-sources i.err{background:var(--red)}.status-sources span{margin-left:6px}.status-sources:hover span{color:#eaeaea}
.button.small{min-height:30px;padding:5px 10px;font-size:12px}
@keyframes pulse{50%{box-shadow:0 0 0 7px transparent}}
.tiles-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:26px}.tiles-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric.tile{display:block;min-height:128px;padding:17px 18px 15px}.metric.tile .metric-value{font-size:29px;margin-top:12px}.metric.tile .metric-value small{font-size:15px;color:#8e8e8e;margin-left:2px}.metric.tile .metric-foot{font-size:12px;margin-top:10px}.metric.tile .spark{bottom:44px;opacity:.5}
.metric.tile.warn{border-color:#fb923c26;background:linear-gradient(140deg,#1c1c1ca8,#131313a8)}.metric.tile:hover{border-color:#cbcbcb40}
.about{margin-top:18px;border:1px solid var(--line);border-radius:9px;background:#ffffff02}.about summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 13px;font-size:12px;color:#9e9e9e}.about summary::-webkit-details-marker{display:none}.about summary:hover{color:#dfdfdf}.about[open] summary{border-bottom:1px solid var(--line)}.about>div{padding:12px 14px 14px;font-size:12px;line-height:1.8;color:#a4a4a4}.about b{font-weight:500;color:#d0d0d0}.panel .about{margin:16px 0 0}.panel>.about{margin:0 22px 20px}
.time-chart{display:grid;grid-template-columns:44px 1fr;grid-template-rows:1fr 20px;margin:10px 20px 14px 10px}.tc-y{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:#7e7e7e;text-align:right;padding-right:8px;margin:-6px 0}.tc-plot{position:relative;min-height:0;border-bottom:1px solid var(--line-strong)}.tc-plot svg{width:100%;height:100%;display:block;overflow:visible}.tc-plot .chart-grid{stroke:#c3c3c310;stroke-dasharray:3 4}.tc-plot .chart-line{fill:none;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:3000;stroke-dashoffset:3000;animation:chart-enter 1.6s cubic-bezier(.2,.7,.1,1) forwards}.tc-x{grid-column:2;display:flex;justify-content:space-between;font-size:10px;color:#7e7e7e;padding-top:6px}
html[data-motion=off] .tc-plot .chart-line{stroke-dashoffset:0}
.panel-body .time-chart{margin:4px 0 0 -8px}
.legend-row{display:flex;flex-wrap:wrap;gap:10px 22px;padding:16px 22px 0;font-size:12px;color:var(--muted)}.legend-row.tight{padding:10px 0 0;gap:8px 16px}.server-card .legend-row.tight{padding:0 0 4px}.legend-row b{font-weight:500;color:#dddddd;margin-left:3px}.legend-row span{display:inline-flex;align-items:center;gap:6px}
.legend-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.legend-item strong{font-weight:500;color:#e2e2e2}
.attention-list{padding:10px 14px 14px}.attention-item{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px}.attention-item:hover{background:#ffffff04}.attention-item>div{flex:1;min-width:0}.attention-item strong{display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-item small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.attention-item .sev{width:3px;align-self:stretch;border-radius:3px;background:var(--dim)}.attention-item.danger .sev{background:var(--red)}.attention-item.warning .sev{background:var(--amber)}.attention-item.info .sev{background:var(--cyan)}.attention-item .icon-button{opacity:.6}.attention-item:hover .icon-button{opacity:1}
.panel-more{font-size:12px;color:var(--muted);padding:0 22px 18px}
.empty-state.compact{min-height:0;padding:30px 20px}
.health-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:4px 9px;border-radius:20px;border:1px solid #ffffff12;color:#aeaeae;white-space:nowrap;align-self:flex-start}.health-chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.health-chip.success{color:var(--mint);border-color:#34d39922;background:#34d39908}.health-chip.warning{color:var(--amber);border-color:#fb923c22;background:#fb923c08}.health-chip.danger{color:var(--red);border-color:#fb718526;background:#fb71850a}
.project-bottom .updated{font-size:11px;color:var(--dim);margin-left:auto}.project-bottom .button.text{margin-left:4px}.site-mini{font-size:10px;margin-left:6px;padding:1px 5px;border-radius:4px;background:#ffffff08;color:var(--muted)}.site-mini.success{color:var(--mint)}.site-mini.danger{color:var(--red)}
.cards-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.server-card .server-name>.badge{margin-left:auto}.server-card .resources{margin:22px 0 18px;gap:16px}.server-card .time-chart{margin:4px 0 8px -8px}.mini-title{font-size:11px;color:var(--dim);letter-spacing:.4px;margin:4px 0 6px}.server-card .inline-stats{margin:18px 0 12px}.small-value{font-size:13px!important;letter-spacing:0!important;margin-top:12px!important;font-weight:500}
.server-card.is-stale .resources,.server-card.is-stale .inline-stats strong{opacity:.55}.server-card.is-stale .progress-fill{background:#787878!important}
.docker-disk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.docker-disk>div{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#ffffff02}.docker-disk span{display:block;font-size:10px;color:var(--muted)}.docker-disk b{display:block;font-size:13px;font-weight:500;margin-top:5px}.docker-disk small{display:block;font-size:10px;color:var(--dim);margin-top:2px}
.cell-bar{position:relative;min-width:120px}.cell-bar span{position:relative;z-index:1}.cell-bar small{color:var(--dim);font-size:11px}.cell-bar i{display:block;height:3px;border-radius:3px;background:var(--mint);opacity:.6;margin-top:6px;min-width:2px;max-width:100%}.cell-bar.mem i{background:var(--cyan)}
.project-tag{font-size:11px;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 25%,transparent);background:color-mix(in srgb,var(--c) 6%,transparent);padding:2px 7px;border-radius:5px}
.details-table tr.stale-row td{color:#898989}.details-table.compact td{padding:12px 20px}.details-table.compact th{padding:11px 20px}
.site-list{display:grid;gap:10px;margin-bottom:8px}.site-row{display:grid;grid-template-columns:minmax(200px,1.1fr) minmax(0,2.4fr) 124px;grid-template-areas:'id metrics actions' 'ticks ticks ticks' 'error error error';align-items:center;gap:14px 22px;padding:16px 20px}
.site-id{grid-area:id;display:flex;align-items:center;gap:12px;min-width:0}.site-id h3{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-id a{font-size:12px;color:var(--muted);display:inline-flex;gap:5px;align-items:center;margin-top:3px;overflow-wrap:anywhere}.site-id a:hover{color:#e2e2e2}.site-id>div{min-width:0}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--dim);flex-shrink:0}.status-dot.success{background:var(--mint);box-shadow:0 0 10px #34d39955}.status-dot.warning{background:var(--amber)}.status-dot.danger{background:var(--red);box-shadow:0 0 10px #fb718566}.status-dot.purple{background:var(--purple)}
.site-metrics{grid-area:metrics;display:grid;grid-template-columns:1.2fr .6fr 1fr .8fr .9fr;gap:14px}.site-metrics small{display:block;font-size:10px;color:var(--dim);margin-bottom:5px;letter-spacing:.3px}.site-metrics strong{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.site-metrics .dim{display:block;font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-ticks{grid-area:ticks;display:flex;gap:2px;height:16px;align-items:stretch}.site-ticks i{flex:1;max-width:12px;border-radius:2px;background:var(--mint);opacity:.75}.site-ticks i.blocked{background:var(--purple)}.site-ticks i.error,.site-ticks i.unknown{background:var(--red);opacity:1}.site-ticks .dim{font-size:11px}
.site-actions{grid-area:actions;display:flex;gap:4px;align-items:center;justify-content:flex-end}.site-error{grid-area:error;font-size:12px;color:var(--red);overflow-wrap:anywhere}
.stack-bar{display:flex;height:9px;border-radius:5px;overflow:hidden;gap:2px;background:#ffffff06}.stack-bar i{display:block;min-width:3px}
.panel-body.tight{padding:6px 22px 20px}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;padding:16px 22px 14px}.stat-chip{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;color:var(--muted);border:1px solid var(--line-strong);border-radius:7px;padding:6px 10px}.stat-chip b{font-size:15px;font-weight:500;color:#e9e9e9}.stat-chip.success b{color:var(--mint)}.stat-chip.danger b{color:var(--red)}.stat-chip.purple b{color:var(--purple)}
.check-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:12px}.check-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;border:1px solid var(--line-strong);color:var(--muted)}.check-chip.ok{color:var(--mint);border-color:#34d39922}.check-chip.ko{color:var(--red);border-color:#fb718526}.check-row .dim{margin-left:auto;font-size:11px}
.auto-tag{font-size:10px;color:var(--cyan);border:1px solid #60a5fa26;border-radius:4px;padding:1px 5px;margin-right:6px}
.small-copy{font-size:12px}
.stack>.panel+.panel{margin-top:0}
@media(max-width:1350px){.tiles-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.site-row{grid-template-columns:1fr auto;grid-template-areas:'id actions' 'metrics metrics' 'ticks ticks' 'error error'}}
@media(max-width:1100px){.cards-grid.two{grid-template-columns:1fr}.status-copy{display:none}}
@media(max-width:800px){.status-bar{flex-wrap:wrap;gap:10px}.status-side{width:100%;justify-content:space-between}.docker-disk{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tiles-grid,.tiles-grid.four{grid-template-columns:1fr 1fr;gap:10px}.metric.tile{min-height:116px;padding:14px}.metric.tile .metric-value{font-size:24px}.metric.tile .metric-foot{font-size:11px}.metric.tile .spark{display:none}.site-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.site-row{padding:14px 16px}.time-chart{margin-right:12px}.legend-row{padding:14px 18px 0}.project-bottom .updated{display:none}.check-row .dim{margin-left:0}.chips-row{padding:14px 18px 12px}.panel-body.tight{padding:6px 18px 18px}.panel>.about{margin:0 18px 18px}}
@media(max-width:600px){.tiles-grid:not(.four)>.tile:last-child{grid-column:1/-1}}
.project-title h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(min-width:601px) and (max-width:1150px){.health-chip .chip-label{display:none}.health-chip{padding:6px}}

/* ==========================================================================
   V3 — régie de nuit. Graphite calme, phosphore pour le normal, ambre pour la
   veille, rouge signal pour l'incident, gris creux pour l'inconnu.
   Profondeur : bordures + décalages de surface. Base 4 px.
   ========================================================================== */
:root{--canvas:#0d0d0d;--surface-1:#131313;--surface-2:#181818;--surface-3:#1e1e1e;--ink:#f2f2f2;--ink-2:#c6c6c6;--ink-3:#969696;--ink-4:#717171;--rule:rgba(255,255,255,.055);--rule-2:rgba(255,255,255,.085);--rule-3:rgba(255,255,255,.14);--phosphor:#34d399;--lavender:#c084fc;--lamp-amber:#fb923c;--signal:#fb7185;--telemetry:#60a5fa;--ease-out:cubic-bezier(.23,1,.32,1);--sidebar:232px;--r-sm:7px;--r-md:12px;--r-lg:16px}
body{background:var(--canvas)}
h1,h2,.hero h1{text-wrap:balance}p{text-wrap:pretty}
.shell{background:none}
/* Surfaces : une seule stratégie, bordures fines et aplats. */
.panel,.metric{background:var(--surface-1);border-color:var(--rule-2);border-radius:var(--r-lg)}
.panel-head h2,.section-heading h2{font-size:15px;font-weight:600;letter-spacing:-.2px}
.panel-head p{font-size:12px;color:var(--ink-3)}
.details-table th{background:transparent;color:var(--ink-4);font-size:11px;font-weight:500;letter-spacing:.3px;text-transform:uppercase}
.details-table td{font-variant-numeric:tabular-nums}
.button{transition:background-color .16s var(--ease-out),border-color .16s var(--ease-out),transform .12s var(--ease-out)}
.button:active,.icon-button:active{transform:scale(.97)}
.button.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.button.ghost:hover{background:#ffffff08}
:focus-visible{outline:2px solid var(--phosphor);outline-offset:3px}

/* Lampes d'état — l'inconnu est un anneau creux, jamais un vert. */
.lamp{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ink-4);vertical-align:middle}
.lamp.ok{background:var(--phosphor);box-shadow:0 0 0 3px #34d39914}
.lamp.warn{background:var(--lamp-amber);box-shadow:0 0 0 3px #fb923c14}
.lamp.bad{background:var(--signal);box-shadow:0 0 0 3px #fb71851c}
.lamp.off{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-4)}
html[data-motion=on] .lamp.bad{animation:lamp-alert 2.2s var(--ease-out) infinite}
@keyframes lamp-alert{0%{box-shadow:0 0 0 0 #fb718566}70%,100%{box-shadow:0 0 0 7px #fb718500}}

/* Shell */
.sidebar.rail{width:max(var(--sidebar),232px);background:var(--canvas);border-right:1px solid var(--rule-2);padding:22px 14px 16px;gap:22px}
.rail-brand{display:flex;align-items:center;gap:10px;padding:2px 10px 6px}
.rail-brand .brand-symbol{font-size:28px}.rail-brand .brand-word{font-size:12px;letter-spacing:3px;color:var(--ink-2)}
.rail-group{display:grid;gap:2px}
.rail-label{font-size:11px;font-weight:500;color:var(--ink-4);padding:0 10px 6px;letter-spacing:.2px}
.rail-link{display:flex;align-items:center;gap:11px;min-height:36px;padding:7px 10px;border-radius:var(--r-sm);color:var(--ink-3);font-size:14px;position:relative;transition:background-color .16s var(--ease-out),color .16s var(--ease-out)}
.rail-link:hover{background:#ffffff06;color:var(--ink)}
.rail-link.active{background:var(--surface-3);color:var(--ink)}
.rail-link.active>svg{color:var(--phosphor)}
.rail-link.active:before{content:'';position:absolute;left:-14px;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--phosphor)}
.rail-link.project.active:before{background:var(--project-color)}
.rail-count{margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums;color:var(--lamp-amber);background:#fb923c14;border-radius:5px;padding:1px 6px}
.rail-swatch{width:8px;height:8px;border-radius:2px;background:var(--project-color);margin:0 5px 0 4px}
.rail-link.project .lamp{margin-left:auto;width:6px;height:6px}
.rail-bottom{margin-top:auto;display:grid;gap:14px}
.rail-account{display:flex;align-items:center;gap:10px;padding:12px 6px 0;border-top:1px solid var(--rule)}
.rail-account>div{flex:1;min-width:0;line-height:1.3}.rail-account strong{display:block;font-size:13px;font-weight:500}.rail-account small{display:block;font-size:11px;color:var(--ink-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar.v3{height:60px;border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--canvas) 86%,transparent);backdrop-filter:blur(12px)}
.topbar.v3 .crumb-root{color:var(--ink-4)}.topbar.v3 .crumb-root:hover{color:var(--ink-2)}
.top-pill{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--rule-2);font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.top-pill .lamp{width:6px;height:6px;box-shadow:none}.top-pill .lamp.off{box-shadow:inset 0 0 0 1.5px var(--ink-4)}
.top-pill span{margin-left:5px}.top-pill.warn{border-color:#fb923c26;color:var(--lamp-amber)}.top-pill:hover{background:#ffffff05}
.topbar.v3 .search-button{height:32px;padding:0 10px;border:1px solid var(--rule-2);border-radius:var(--r-sm);margin:0;color:var(--ink-3)}
.topbar.v3 .search-button kbd{margin-left:8px;border:0;background:#ffffff0a;padding:2px 5px}
.icon-button.bell{position:relative}.bell-count{position:absolute;top:1px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--lamp-amber);color:#151515;font-size:10px;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}.bell-count.bad{background:var(--signal);color:#131313}
.page-head.v3{margin-bottom:24px}.page-head.v3 h1{font-size:28px;font-weight:600;letter-spacing:-.8px;line-height:1.2}.page-head.v3 p{margin-top:6px;color:var(--ink-3)}
.footer{font-size:11px;color:var(--ink-4);padding:24px 0 4px}

/* Hero : l'état de l'écosystème est le point focal. */
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding:8px 0 28px;margin-bottom:24px;border-bottom:1px solid var(--rule)}
.hero-date{font-size:12px;color:var(--ink-4);margin-bottom:10px;font-variant-numeric:tabular-nums}
.hero h1{font-size:40px;font-weight:600;letter-spacing:-1.6px;line-height:1.1;display:flex;align-items:center;gap:16px}
.hero-lamp{width:12px;height:12px;border-radius:50%;flex-shrink:0;background:var(--phosphor);box-shadow:0 0 0 6px #34d39912,0 0 24px #34d39940}
.hero[data-level=warning] .hero-lamp{background:var(--lamp-amber);box-shadow:0 0 0 6px #fb923c12,0 0 24px #fb923c33}
.hero[data-level=danger] .hero-lamp{background:var(--signal);box-shadow:0 0 0 6px #fb718514,0 0 24px #fb718540}
.hero[data-level=demo] .hero-lamp{background:var(--lavender);box-shadow:0 0 0 6px #c084fc12}
.hero-text{margin-top:10px;font-size:14px;color:var(--ink-3);max-width:58ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.readouts{display:flex;border:1px solid var(--rule-2);border-radius:var(--r-lg);background:var(--surface-1);overflow:hidden}
.readout{display:flex;flex-direction:column;gap:6px;padding:14px 18px 15px;min-width:120px;border-left:1px solid var(--rule);position:relative;transition:background-color .16s var(--ease-out)}
.readout:first-child{border-left:0}.readout:hover{background:var(--surface-2)}
.readout:after{content:'';position:absolute;left:18px;right:18px;top:0;height:2px;border-radius:0 0 2px 2px;background:transparent}
.readout.ok:after{background:#34d39966}.readout.warn:after{background:#fb923c88}.readout.bad:after{background:var(--signal)}
.readout-label{font-size:11px;font-weight:500;color:var(--ink-4);letter-spacing:.2px}
.readout-value{font-size:24px;font-weight:600;letter-spacing:-.6px;line-height:1;font-variant-numeric:tabular-nums}.readout-value small{font-size:14px;font-weight:500;color:var(--ink-4);letter-spacing:0}
.readout-meta{font-size:11px;color:var(--ink-3);white-space:nowrap}
.readout.warn .readout-meta{color:var(--lamp-amber)}.readout.bad .readout-meta{color:var(--signal)}

/* Tableau de signaux — la signature du cockpit. */
.board{margin-bottom:24px}
.board-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.board-head h2{font-size:15px;font-weight:600;letter-spacing:-.2px}.board-head p{font-size:12px;color:var(--ink-3);margin-top:4px}
.board-legend{display:flex;gap:14px;font-size:11px;color:var(--ink-4)}.board-legend span{display:inline-flex;align-items:center;gap:6px}.board-legend .lamp{width:6px;height:6px}
.lanes{border:1px solid var(--rule-2);border-radius:var(--r-lg);background:var(--surface-1);overflow:hidden}
.lane{display:grid;grid-template-columns:minmax(200px,1.3fr) minmax(96px,.7fr) minmax(96px,.7fr) repeat(4,minmax(0,1fr)) 20px;align-items:center;gap:20px;padding:16px 18px 16px 20px;border-top:1px solid var(--rule);position:relative;transition:background-color .16s var(--ease-out)}
.lane:first-child{border-top:0}
.lane:before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:0 2px 2px 0;background:var(--project-color);opacity:.7}
.lane:hover{background:var(--surface-2)}.lane:hover .lane-go{color:var(--ink);transform:translateX(2px)}
.lane[data-verdict=bad]{background:linear-gradient(90deg,#fb718508,transparent 40%)}
.lane-id{display:flex;align-items:center;gap:12px;min-width:0}
.lane-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--project-color);background:color-mix(in srgb,var(--project-color) 9%,transparent);border:1px solid color-mix(in srgb,var(--project-color) 22%,transparent);flex-shrink:0}
.lane-id strong{display:block;font-size:14px;font-weight:600;letter-spacing:-.2px}.lane-id small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.4;color:var(--ink-4);margin-top:2px}.lane-id>div{min-width:0}
.lane-kpi b{display:block;font-size:20px;font-weight:600;letter-spacing:-.5px;font-variant-numeric:tabular-nums;line-height:1.1}.lane-kpi small{display:block;font-size:11px;line-height:1.35;color:var(--ink-4);margin-top:4px}
.lane-kpi.secondary b{font-size:16px;color:var(--ink-2)}
.lane-cell{display:grid;gap:3px;min-width:0}
.cell-label{font-size:10px;font-weight:500;color:var(--ink-4);letter-spacing:.4px;text-transform:uppercase}
.cell-value{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.lane-cell[data-state=off] .cell-value,.lane-cell[data-state=na] .cell-value{color:var(--ink-3)}
.lane-cell[data-state=bad] .cell-value{color:var(--signal)}.lane-cell[data-state=warn] .cell-value{color:var(--lamp-amber)}
.cell-meta{font-size:11px;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell-ticks{display:flex;gap:1.5px;height:8px;margin-top:3px}.cell-ticks i{flex:1;max-width:5px;border-radius:1px;background:#34d39980}.cell-ticks i.blocked{background:#c084fc99}.cell-ticks i.error,.cell-ticks i.unknown{background:var(--signal)}
.lane-go{color:var(--ink-4);display:grid;place-items:center;transition:transform .16s var(--ease-out),color .16s var(--ease-out)}

/* Barre d'onglets mobile */
.tabbar{display:none}

/* Mouvement : entrées courtes, en cascade, jamais lors des actualisations silencieuses. */
.view-enter{animation:v3-enter .26s var(--ease-out) both}
@keyframes v3-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#app:not(.quiet-refresh) .lane,#app:not(.quiet-refresh) .readout{animation:v3-enter .3s var(--ease-out) both;animation-delay:calc(var(--i,0)*45ms + 60ms)}
#app:not(.quiet-refresh) .readout:nth-child(2){--i:1}#app:not(.quiet-refresh) .readout:nth-child(3){--i:2}#app:not(.quiet-refresh) .readout:nth-child(4){--i:3}#app:not(.quiet-refresh) .readout:nth-child(5){--i:4}
@media(prefers-reduced-motion:reduce){.lane,.readout,.view-enter{animation:none!important}.lamp.bad{animation:none!important}}

/* Responsive */
@media(max-width:1400px){.lane{grid-template-columns:minmax(180px,1.3fr) minmax(90px,.7fr) repeat(4,minmax(0,1fr)) 18px}.lane-kpi.secondary{display:none}.readout{min-width:104px;padding:13px 14px}}
@media(max-width:1250px){:root{--sidebar:216px}.hero{grid-template-columns:1fr;align-items:start}.readouts{width:100%}.readout{flex:1;min-width:0}}
@media(max-width:1050px){:root{--sidebar:200px}.lane{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:14px}.lane-id{grid-column:1/3;grid-row:1}.lane-kpi{grid-column:3;grid-row:1}.lane-go{grid-column:4;grid-row:1;justify-self:end}.top-pill span{display:none}}
@media(max-width:800px){.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--canvas) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--rule-2)}
.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:48px;justify-content:center;font-size:10px;color:var(--ink-4);border-radius:10px;position:relative}
.tabbar a.active{color:var(--ink)}.tabbar a.active svg{color:var(--phosphor)}.tabbar i{position:absolute;top:4px;left:calc(50% + 6px);font-style:normal;font-size:9px;font-weight:600;min-width:15px;height:15px;border-radius:8px;background:var(--lamp-amber);color:#151515;display:grid;place-items:center;padding:0 3px}
.main{padding-bottom:96px}.topbar.v3{height:56px}.topbar.v3 .search-button{display:none}.top-actions .bell{display:none}
.hero{padding-top:0}.hero h1{font-size:30px;letter-spacing:-1px;gap:12px}.hero-lamp{width:10px;height:10px}
.readouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.readout{border-left:0;border-top:1px solid var(--rule)}.readout:nth-child(-n+2){border-top:0}.readout:nth-child(even){border-left:1px solid var(--rule)}.readout:last-child:nth-child(odd){grid-column:1/-1}
.board-legend{display:none}}
@media(max-width:600px){.lane{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;padding:16px}.lane-id{grid-column:1/-1;padding-right:24px}.lane-kpi{grid-column:1/-1;display:flex;align-items:baseline;gap:8px}.lane-kpi small{margin:0}.lane-go{position:absolute;top:22px;right:14px}.hero h1{font-size:26px}.hero-actions .button{flex:1}.page-head.v3 h1{font-size:24px}}
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:20px;margin-bottom:20px;align-items:start}.duo.wide-first{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
@media(max-width:1100px){.duo,.duo.wide-first{grid-template-columns:1fr}}
.project-head-id{display:flex;align-items:center;gap:16px;min-width:0}.lane-icon.big{width:48px;height:48px;border-radius:13px}
.verdict{display:inline-flex;align-items:center;gap:8px;height:37px;padding:0 12px;border-radius:999px;border:1px solid var(--rule-2);font-size:12px;font-weight:500;color:var(--ink-2)}.verdict.bad{color:var(--signal);border-color:#fb718530}.verdict.warn{color:var(--lamp-amber);border-color:#fb923c28}.verdict.ok{color:var(--phosphor);border-color:#34d39926}
.project-signals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:16px 20px;margin-bottom:20px;border:1px solid var(--rule-2);border-radius:var(--r-lg);background:var(--surface-1)}
.project-signals .lane-cell+.lane-cell{border-left:1px solid var(--rule);padding-left:20px}
@media(max-width:800px){.project-head{flex-direction:column;align-items:flex-start}.project-signals{grid-template-columns:1fr 1fr}.project-signals .lane-cell+.lane-cell{border-left:0;padding-left:0}}
@media(max-width:1250px){.sidebar.rail{width:var(--sidebar)}}
@media(max-width:800px){:root{--sidebar:0px}.sidebar.rail{width:260px}}
@media(max-width:800px){.top-pill{padding:0 10px}.top-pill .lamp{display:none}.top-pill span{display:inline;margin:0}}
@media(max-width:600px){.lane-id,.lane-kpi,.lane-go{grid-row:auto}.lane-kpi{grid-column:1/-1}.hero-actions .button{flex:1 1 auto}.hero-actions .button.primary{flex-basis:100%}}
html{scroll-padding-top:76px}.sidebar.rail{overscroll-behavior:contain}
@media(max-width:800px){html{scroll-padding-bottom:88px}}
.readout:focus-visible,.lane:focus-visible{outline-offset:-3px;border-radius:var(--r-md)}
/* Pas de barres décoratives colorées (demande du propriétaire) ; seules les barres de gravité de « À traiter » restent. */
.lane:before,.readout:after,.rail-link.active:before,.project-card:before,.project-card.purple-card:before{content:none;display:none}
.lane[data-verdict=bad]{background:none}.lane[data-verdict=bad]:hover{background:var(--surface-2)}

/* ==========================================================================
   Palette CZ Dash (frontend/src/styles/tokens.css du dépôt CZticket) :
   gris neutres, CTA blanc, accent gris clair, statuts emerald / orange / rose.
   ========================================================================== */
:root{--canvas:#101010;--surface-1:#171717;--surface-2:#202020;--surface-3:#292929;--ink:#f5f5f5;--ink-2:#b3b3b3;--ink-3:#949494;--ink-4:#808080;--rule:rgba(255,255,255,.07);--rule-2:rgba(255,255,255,.085);--rule-3:rgba(255,255,255,.18);--phosphor:#34d399;--lamp-amber:#fb923c;--signal:#fb7185;--lavender:#c084fc;--telemetry:#60a5fa;--ease-out:cubic-bezier(.22,1,.36,1);--bg:#101010;--panel:#171717;--raised:#202020;--line:rgba(255,255,255,.07);--line-strong:rgba(255,255,255,.085);--muted:#949494;--dim:#808080;--mint:#34d399;--amber:#fb923c;--red:#fb7185;--purple:#c084fc;--cyan:#60a5fa;color:#f5f5f5;background:#101010}
body,.shell,.main{background:var(--canvas)}
:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:#d4d4d4}
/* CTA blanc, comme CZ Dash. */
.button.primary{background:#fafafa;color:#141414;border-color:#fafafa;box-shadow:none}.button.primary:hover{background:#e5e5e5;border-color:#e5e5e5}.button.primary:before{display:none}
.rail-link.active{background:var(--surface-3);color:var(--ink)}.rail-link.active>svg{color:var(--ink)}
/* Tuile signature CZ Dash : dégradé graphite + filet clair. */
.readouts,.metric,.project-card,.project-card.purple-card{background:linear-gradient(140deg,#242424 0%,#181818 100%);border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 36px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.06)}
.project-card:after{display:none}
.readout{border-left-color:rgba(255,255,255,.09)}.readout:hover{background:rgba(255,255,255,.03)}
.lanes,.panel,.project-signals{background:var(--surface-1);border-color:var(--rule-2)}
.lane:hover{background:var(--surface-2)}
.readouts,.lanes,.panel,.metric,.project-card,.project-signals{border-radius:18px}
.lamp.ok{box-shadow:0 0 0 3px rgba(52,211,153,.14)}.lamp.warn{box-shadow:0 0 0 3px rgba(251,146,60,.14)}.lamp.bad{box-shadow:0 0 0 3px rgba(251,113,133,.16)}.lamp.off{box-shadow:inset 0 0 0 1.5px #808080}
.hero-lamp{background:#34d399;box-shadow:0 0 0 6px rgba(52,211,153,.12)}
.hero[data-level=warning] .hero-lamp{background:#fb923c;box-shadow:0 0 0 6px rgba(251,146,60,.12)}
.hero[data-level=danger] .hero-lamp{background:#fb7185;box-shadow:0 0 0 6px rgba(251,113,133,.14)}
.hero[data-level=demo] .hero-lamp{background:#c084fc;box-shadow:0 0 0 6px rgba(192,132,252,.12)}
.hero h1{letter-spacing:-.045em}
.verdict.ok{color:#34d399;border-color:rgba(52,211,153,.32)}.verdict.warn{color:#fb923c;border-color:rgba(251,146,60,.4)}.verdict.bad{color:#fb7185;border-color:rgba(251,113,133,.4)}
.top-pill.warn{border-color:rgba(251,146,60,.35);color:#fb923c}
.bell-count{background:#fb923c;color:#151515}.bell-count.bad{background:#fb7185;color:#151515}.tabbar i,.rail-count{color:#151515;background:#fb923c}
.cell-ticks i{background:rgba(52,211,153,.55)}.cell-ticks i.blocked{background:rgba(192,132,252,.6)}
.topbar.v3{background:rgba(17,17,17,.92);backdrop-filter:blur(20px)}
.tabbar{background:rgba(17,17,17,.92)}
.tabbar a.active svg{color:var(--ink)}
input,textarea,select.field,.select-wrap select{background:#111111;border-color:rgba(255,255,255,.085)}
dialog{background:#1c1c1c;border-color:rgba(255,255,255,.14)}
.brand-symbol i{color:#a3a3a3}
@media(max-width:1050px){.top-pill .lamp{display:none}.top-pill span{display:inline;margin:0}}.board-head{flex-wrap:wrap}
