:root{--brand-500: #1e5dff;--brand-600: #1547db;--brand-700: #0f34b7;--brand-100: #dae8ff;--brand-050: #eff5ff;--n-white: #ffffff;--n-025: #fbfcfd;--n-050: #f3f5f8;--n-075: #ebeef3;--n-100: #dee3ea;--n-200: #d2d7e0;--n-300: #c3c9d4;--n-400: #b2bac8;--n-500: #98a4b6;--n-600: #7887a1;--n-700: #536482;--n-800: #354661;--n-900: #1c293f;--n-1000: #0c1525;--info-500: #007aff;--success-500: #27cd41;--success-800: #0f6b26;--success-075: #e2f9e6;--warning-500: #ff9500;--warning-800: #8a5200;--warning-075: #fff2df;--error-500: #ff3b30;--error-800: #a01c1c;--error-075: #ffe7e6;--mono: "IBM Plex Mono", "Consolas", "SF Mono", monospace;--radius-s: .4rem;--radius-m: .5rem;--shadow-panel: 0px 1px 5px 0px rgba(0, 0, 0, .09);--sidebar-w: 15rem;--header-h: 3.5rem}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.55;color:var(--n-900);background:var(--n-075)}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--n-900);color:var(--n-100);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:1rem 1.25rem;font-weight:800;font-size:1.1rem;color:var(--n-white);border-bottom:1px solid var(--n-800);letter-spacing:.02em}.sidebar .brand .accent{color:var(--brand-500)}.sidebar .brand-short{display:none}.sidebar nav{padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px}.sidebar nav a{color:var(--n-300);text-decoration:none;padding:.5rem .75rem;border-radius:var(--radius-s);font-weight:500}.sidebar nav a:hover{background:var(--n-800);color:var(--n-050)}.sidebar nav a.active{background:var(--brand-500);color:#fff}.sidebar .foot{margin-top:auto;padding:1rem 1.25rem;font-size:.8rem;color:var(--n-600)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--header-h);background:var(--n-white);border-bottom:1px solid var(--n-100);display:flex;align-items:center;gap:1rem;padding:0 1.5rem;position:sticky;top:0;z-index:5}.topbar h1{font-size:1.1rem;margin:0;font-weight:600}.topbar .right{margin-left:auto;display:flex;gap:.75rem;align-items:center}.content{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1.25rem}.panel{background:var(--n-white);border-radius:var(--radius-m);box-shadow:var(--shadow-panel)}.panel>.panel-head{padding:.75rem 1rem;border-bottom:1px solid var(--n-075);display:flex;align-items:center;gap:.75rem;font-weight:600}.panel>.panel-head .right{margin-left:auto;display:flex;gap:.5rem;align-items:center}.panel>.panel-body{padding:1rem}.panel>.panel-body.flush{padding:0}.grid{display:grid;gap:1.25rem}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.tiles{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tile{background:var(--n-white);border-radius:var(--radius-m);box-shadow:var(--shadow-panel);padding:.8rem 1rem}.tile .label{color:var(--n-600);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.tile .value{font-size:1.5rem;font-weight:700;margin-top:.15rem}.tile .sub{color:var(--n-600);font-size:.8rem}table.data{width:100%;border-collapse:collapse;font-size:.86rem}table.data th{text-align:left;padding:.5rem .75rem;color:var(--n-600);font-weight:600;border-bottom:1px solid var(--n-100);white-space:nowrap;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--n-white)}table.data td{padding:.45rem .75rem;border-bottom:1px solid var(--n-050);vertical-align:middle}table.data tr:hover td{background:var(--n-025)}table.data tr.clickable{cursor:pointer}.mono{font-family:var(--mono);font-size:.82em}.dim{color:var(--n-600)}.small{font-size:.8rem}.scroll-x{overflow-x:auto}.scroll-y{overflow-y:auto;max-height:420px}.pill{display:inline-flex;align-items:center;gap:.35em;padding:.1rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill.online{background:var(--success-075);color:var(--success-800)}.pill.degraded{background:var(--warning-075);color:var(--warning-800)}.pill.fault{background:var(--error-075);color:var(--error-800)}.pill.offline{background:var(--n-075);color:var(--n-700)}.pill.decommissioned{background:var(--n-075);color:var(--n-500)}.pill.neutral{background:var(--brand-050);color:var(--brand-700)}.pill.plain:before{display:none}label.field{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--n-700);font-weight:500}input,select,textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--n-200);border-radius:var(--radius-s);background:var(--n-white);color:var(--n-900);min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-100);border-color:var(--brand-500)}.row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}button{font:inherit;font-weight:600;padding:.45rem .9rem;border-radius:var(--radius-s);border:1px solid transparent;cursor:pointer;background:var(--brand-500);color:#fff}button:hover{background:var(--brand-600)}button:disabled{background:var(--n-200);color:var(--n-600);cursor:not-allowed}button.secondary{background:var(--n-white);color:var(--n-800);border-color:var(--n-200)}button.secondary:hover{background:var(--n-050)}button.danger{background:var(--error-500)}button.danger:hover{background:#d92c22}button.ghost{background:transparent;color:var(--brand-600);padding:.2rem .4rem}button.ghost:hover{background:var(--brand-050)}.msg{padding:.6rem .9rem;border-radius:var(--radius-s);font-size:.86rem}.msg.error{background:var(--error-075);color:var(--error-800)}.msg.ok{background:var(--success-075);color:var(--success-800)}.msg.info{background:var(--brand-050);color:var(--brand-700)}.empty{padding:2rem;text-align:center;color:var(--n-600)}.spinner{width:16px;height:16px;border:2px solid var(--n-200);border-top-color:var(--brand-500);border-radius:50%;display:inline-block;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--n-900)}.login-card{background:var(--n-white);border-radius:var(--radius-m);padding:2rem 2.25rem;width:340px;display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 35px #00000040}.login-card h1{margin:0;font-size:1.3rem}.login-card h1 span{color:var(--brand-500)}details.section{border:1px solid var(--n-100);border-radius:var(--radius-s);padding:0}details.section>summary{cursor:pointer;padding:.6rem .9rem;font-weight:600}details.section>.inner{padding:.75rem .9rem;border-top:1px solid var(--n-075)}.panel-subtitle{font-weight:400;font-size:.78rem;color:var(--n-600);margin-top:1px}.toast-stack{position:fixed;top:1rem;right:1rem;z-index:100;display:flex;flex-direction:column;gap:.5rem;max-width:380px}.toast{padding:.6rem .9rem;border-radius:var(--radius-s);font-size:.86rem;font-weight:500;box-shadow:0 4px 18px #0000002e;cursor:pointer;animation:toast-in .18s ease-out;background:var(--n-900);color:var(--n-050);border-left:3px solid var(--info-500)}.toast.ok{border-left-color:var(--success-500)}.toast.error{border-left-color:var(--error-500)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c15258c;z-index:90;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{background:var(--n-white);border-radius:var(--radius-m);width:440px;max-width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 35px #00000040;animation:toast-in .15s ease-out}.modal-head{padding:.8rem 1rem;border-bottom:1px solid var(--n-075);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:1rem}.modal-body{padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.modal-foot{padding:.75rem 1rem;border-top:1px solid var(--n-075);display:flex;justify-content:flex-end;gap:.5rem}.menu{position:relative;display:inline-block}.menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:230px;background:var(--n-white);border:1px solid var(--n-100);border-radius:var(--radius-s);box-shadow:0 6px 24px #00000024;padding:.25rem;display:flex;flex-direction:column}.menu-item{background:none;color:var(--n-900);font-weight:500;text-align:left;padding:.45rem .6rem;border-radius:var(--radius-xxs, .25rem);border:none;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.menu-item:hover{background:var(--n-050)}.menu-item.danger-text{color:var(--error-800)}.menu-item.danger-text:hover{background:var(--error-075)}.stepper{display:inline-flex;align-items:center;gap:.4rem}.stepper-label{font-size:.82rem;font-weight:600;color:var(--n-700);margin-right:.15rem}.stepper button{padding:.15rem .6rem;font-size:1rem;line-height:1.3}.stepper-value{min-width:1.6rem;text-align:center;font-weight:600}.daynav{display:inline-flex;align-items:center;gap:.35rem}.daynav button{padding:.3rem .65rem}.daynav-date{position:relative;font-weight:600;font-size:.88rem;padding:.3rem .5rem;border:1px solid var(--n-200);border-radius:var(--radius-s);background:var(--n-white);cursor:pointer;white-space:nowrap}.daynav-date input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;border:0}.icon{width:16px;height:16px;flex-shrink:0}.sidebar nav a{display:flex;align-items:center;gap:.6rem}.sidebar .foot button{background:none;border:none;color:var(--n-500);font-weight:500;padding:0;display:flex;align-items:center;gap:.45rem;cursor:pointer}.sidebar .foot button:hover{color:var(--n-100);background:none}.tile.warn{box-shadow:inset 0 0 0 1px var(--warning-500)}.tile.warn .value{color:var(--warning-800)}.tile.bad{box-shadow:inset 0 0 0 1px var(--error-500)}.tile.bad .value{color:var(--error-800)}.tile.clickable{cursor:pointer;transition:box-shadow .1s}.tile.clickable:hover{box-shadow:0 2px 10px #00000021}table.data tr.day-header td{background:var(--n-050);color:var(--n-700);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .75rem}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tr.selected td{background:var(--brand-050)}table.data tr.detail-row td{background:var(--n-025);border-left:3px solid var(--brand-500);padding:0}table.data tr.detail-row:hover td{background:var(--n-025)}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{background:var(--n-white);border:1px solid var(--n-200);color:var(--n-700);padding:.2rem .7rem;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer}.chip:hover{background:var(--n-050)}.chip.active{background:var(--n-900);border-color:var(--n-900);color:#fff}:focus-visible{outline:2px solid var(--brand-500);outline-offset:1px}@media (max-width: 1000px){.sidebar{width:3.2rem}.sidebar .brand{padding:1rem .6rem;font-size:1rem;text-align:center}.sidebar .brand-full{display:none}.sidebar .brand-short{display:inline}.sidebar nav a span.nav-label,.sidebar .foot .foot-label{display:none}.sidebar nav a{justify-content:center;padding:.55rem 0}.sidebar .foot{padding:1rem .6rem;display:flex;justify-content:center}}
