.sp-page{display:grid;gap:var(--space-md);max-width:1100px}.sp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.sp-lede{margin:0;font-size:13px;color:var(--color-text-muted);max-width:70ch}.sp-section{display:grid;gap:10px}.sp-section-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.sp-section-title{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary-dark)}.sp-section-note{font-size:12px;color:var(--color-text-muted)}.sp-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.sp-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;display:grid;gap:10px;align-content:start;transition:border-color .15s ease,box-shadow .15s ease}.sp-card:focus-within{border-color:var(--color-primary-light);box-shadow:var(--shadow-card)}.sp-card.is-off{background:var(--color-surface-alt)}.sp-card.is-off .sp-fields{opacity:.55}.sp-card.has-error{border-color:var(--color-critical)}.sp-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.sp-title{font-weight:700;font-size:14px;line-height:1.3}.sp-unit{font-weight:400;color:var(--color-text-muted)}.sp-sub{font-size:11px;color:var(--color-text-muted);margin-top:2px}.sp-sub code{font-size:11px}.sp-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.sp-icon-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-sm);padding:3px 8px;font-size:11px;font-weight:700;line-height:1.6}.sp-icon-btn:hover:not(:disabled){color:var(--color-critical);border-color:var(--color-critical);background:var(--color-critical-bg)}.sp-icon-btn:disabled{opacity:.5;cursor:not-allowed}.sp-send{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.sp-off-tag{padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.02em}.sp-fields{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.sp-field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--color-text-muted)}.sp-field input{width:100%;min-width:0;font-size:14px;font-variant-numeric:tabular-nums}.sp-field.sp-grow{flex:1 1 120px}.sp-dash{align-self:center;padding-bottom:9px;color:var(--color-text-muted);font-weight:700}.sp-band{display:grid;gap:4px}.sp-band-track{position:relative;height:8px;border-radius:999px;background:var(--color-surface-alt);border:1px solid var(--color-border);overflow:hidden}.sp-band-fill{position:absolute;top:0;bottom:0;background:var(--color-accent)}.sp-band-now{position:absolute;top:-3px;width:3px;height:14px;border-radius:2px;background:var(--color-primary-dark)}.sp-band-now.is-out{background:var(--color-critical)}.sp-band-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-muted)}.sp-now-label{font-size:11px;color:var(--color-text-muted)}.sp-now-label strong{color:var(--color-text);font-variant-numeric:tabular-nums}.sp-now-label.is-out strong{color:var(--color-critical)}.sp-hint{font-size:11px;color:var(--color-text-muted);line-height:1.45}.sp-error{font-size:11.5px;padding:6px 10px;border-radius:8px}.sp-bar{position:relative;z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 -4px 14px #1b2a2214}.sp-bar-note{font-size:12px;color:var(--color-text-muted)}.sp-bar-note.is-dirty{color:var(--color-warning);font-weight:700}@media (max-width: 560px){.sp-grid{grid-template-columns:1fr}}:root{--app-header-h: 66px;--app-sidebar-w: 232px;--color-primary: #3f7e36;--color-primary-dark: #2c3d33;--color-primary-light: #5a9b50;--color-accent: #a3c9a8;--color-bg: #f6faf0;--color-surface: #ffffff;--color-surface-alt: #f1f7ec;--color-border: #e3eddb;--color-text: #1b2a22;--color-text-muted: #7c8c83;--color-text-inverse: #ffffff;--color-normal: #3f7e36;--color-normal-bg: #e6f2df;--color-warning: #c98a1b;--color-warning-bg: #fbf1dc;--color-critical: #c0392b;--color-critical-bg: #f9e3e0;--color-running: #3f7e36;--color-stopped: #c0392b;--card-radius: 16px;--card-pad: 16px 18px;--card-chip: 38px;--card-chip-radius: 11px;--card-title: 14px;--card-gap: 14px;--card-accent-w: 3px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-card: 0 2px 10px rgba(35, 52, 42, .06);--shadow-card-hover: 0 6px 20px rgba(35, 52, 42, .12);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--font-sans: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}.btn{border:none;border-radius:var(--radius-sm);padding:10px 16px;font-size:14px;font-weight:600;background:var(--color-primary);color:var(--color-text-inverse);transition:background .15s ease}.btn:hover:not(:disabled){background:var(--color-primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt)}.btn-stop{background:#b3473a}.btn-stop:hover:not(:disabled){background:#9c3b30}.btn-alt{background:#55705d}.btn-alt:hover:not(:disabled){background:#445b4b}.btn.btn-interlocked,.btn.btn-interlocked:disabled{opacity:.45;filter:grayscale(.7);cursor:not-allowed}.btn-danger{background:var(--color-critical)}.btn-danger:hover:not(:disabled){background:#a5322680}.chip-clear{background:var(--color-warning-bg);color:#8a5e10;border:1px solid #e3c789;font-weight:700}.chip-clear:hover:not(:disabled){background:#f6e6c4;border-color:#d4b26a}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}input,select{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}input:focus,select:focus{outline:none;border-color:var(--color-primary-light)}label{font-size:13px;color:var(--color-text-muted);font-weight:600}.filterbar{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;position:sticky;top:0;z-index:20}@media (max-width: 860px){.filterbar{position:static}}@media (max-width: 560px){.filterbar{gap:12px}.filterbar .field{flex:1 1 calc(50% - 6px);min-width:0}.filterbar .field input,.filterbar .field select{width:100%;min-width:0}.filterbar .field.wide,.filterbar .presets{flex-basis:100%}.filterbar .field:has(input[type=datetime-local]){flex-basis:100%}.filterbar select{min-width:0}.filterbar>.btn{flex:1 1 100%}}.filterbar .field{display:flex;flex-direction:column;gap:4px}.filterbar input,.filterbar select,.filterbar .btn{height:38px;box-sizing:border-box;font-size:14px}.filterbar .btn{padding:0 16px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.filterbar select{min-width:150px}.filterbar .presets{display:flex;flex-wrap:wrap;gap:6px}.filterbar .presets .btn{padding:0 14px;font-size:13px}table{border-collapse:collapse;width:100%}.status-normal{color:var(--color-normal);background:var(--color-normal-bg)}.status-warning{color:var(--color-warning);background:var(--color-warning-bg)}.status-critical{color:var(--color-critical);background:var(--color-critical-bg)}.spinner{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--app-header-h);flex:0 0 auto;padding:0 var(--space-lg);background:var(--color-primary);border-bottom:1px solid var(--color-primary-dark)}.app-header .header-select-wrap>span{color:#ffffffc7}.app-header .header-select{color:#fff;background:#0000002e;border-color:#ffffff57}.app-header .header-select option{color:var(--color-text);background:var(--color-surface)}.app-header .header-select:hover{background:#00000042}.app-header .header-select:focus{border-color:#fff}.app-header .icon-btn{color:#fff;background:#00000029;border-color:#fff}.app-header .icon-btn:hover{background:#00000042}.app-header .user-avatar{background:#fff;color:var(--color-primary-dark)}.app-header .header-divider{background:#ffffff47}.app-header .icon-btn:focus-visible,.app-header .header-select:focus-visible,.app-header .user-avatar:focus-visible{outline:2px solid #fff;outline-offset:2px}.app-header .h-title{font-size:19px;font-weight:800;color:#fff;line-height:1.15}.app-header .h-sub{font-size:12px;color:#fffffff5;margin-top:2px}.header-controls{display:flex;align-items:center;gap:12px}.header-select-wrap{display:flex;align-items:center;gap:8px}.header-select-wrap>span{font-size:12px;font-weight:600;color:var(--color-text-muted)}.header-select{font-size:13px;font-weight:600;color:var(--color-text);padding:8px 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);max-width:280px}.header-select:focus{outline:none;border-color:var(--color-primary-light)}.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);display:grid;place-items:center;cursor:pointer;color:var(--color-text);transition:background .12s ease}.icon-btn:hover{background:var(--color-surface-alt)}.header-divider{width:1px;height:28px;background:var(--color-border)}.user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--color-primary);color:#fff;font-weight:700;font-size:15px;flex:0 0 auto}.section-actions{display:flex;align-items:center;justify-content:flex-end;margin-bottom:var(--space-md)}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.app-body{flex:1;display:flex;min-height:0;min-width:0}.app-sidebar a>svg{flex:0 0 auto}.app-sidebar{overflow-y:auto;width:var(--app-sidebar-w);flex:0 0 var(--app-sidebar-w);background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-md);display:flex;flex-direction:column;gap:4px}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.app-content{flex:1;min-height:0;overflow:auto}.app-content-inner{padding:var(--space-lg)}.app-header-left{display:flex;align-items:center;gap:12px;min-width:0}.header-titles{min-width:0}.app-header .h-title,.app-header .h-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-toggle,.nav-backdrop{display:none}.access-grid{display:grid;grid-template-columns:280px 1fr;gap:var(--space-lg);align-items:start;min-width:0}.access-grid>*{min-width:0}.access-intro{display:flex;align-items:center;gap:var(--space-md);padding:14px var(--space-md);font-size:13px;line-height:1.5;color:var(--color-text-muted)}.access-intro-link{flex:0 0 auto;padding:7px 14px;font-size:13px;white-space:nowrap}.access-picker{padding:var(--space-sm);display:flex;flex-direction:column;gap:8px}.access-picker-head{display:flex;align-items:baseline;justify-content:space-between;padding:4px 6px 0;font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-muted)}.access-picker-count{font-weight:600;letter-spacing:0;text-transform:none}.access-picker-search{width:100%}.access-picker-list{overflow-y:auto;max-height:min(62vh,560px);margin:0 -2px;padding:0 2px}.access-picker-none{padding:10px 8px;font-size:12px;color:var(--color-text-muted)}.access-picker-group{padding:12px 8px 4px;margin-top:4px;border-top:1px solid var(--color-border);font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-muted)}.access-picker-list>div:first-child>.access-picker-group{border-top:none;margin-top:0;padding-top:4px}.access-user{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:var(--color-text);cursor:pointer}.access-user:hover{background:var(--color-surface-alt)}.access-user.is-active{background:var(--color-primary);color:#fff}.access-user.is-active:hover{background:var(--color-primary)}.access-user-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px}.access-user-meta{font-size:11px;opacity:.8}.access-user-off{font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:1px 5px;border-radius:999px;color:var(--color-critical-text, #b3261e);background:var(--color-critical-bg, #fdecea)}.access-who{display:flex;align-items:center;flex-wrap:wrap;gap:10px var(--space-md);padding:var(--space-md)}.access-who-main{min-width:0;margin-right:auto}.access-who-name{font-weight:700;font-size:16px}.access-who-sub{font-size:12px;color:var(--color-text-muted)}.access-who-tags{display:flex;flex-wrap:wrap;gap:6px}.access-who-edit{flex:0 0 auto;padding:6px 14px;font-size:13px}.access-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;color:var(--color-primary-dark);background:var(--color-normal-bg)}.access-tag.is-off{color:var(--color-critical-text, #b3261e);background:var(--color-critical-bg, #fdecea)}.access-note{padding:var(--space-lg);font-size:13px;line-height:1.55;color:var(--color-text-muted)}.access-dash{overflow:hidden}.access-dash-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:12px var(--space-md);border-bottom:1px solid var(--color-border);background:var(--color-surface-alt);font-weight:700;font-size:14px}.access-dash-count{font-weight:400;font-size:12px;color:var(--color-text-muted)}.access-dev{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:9px var(--space-md);background:var(--color-surface-alt);font-size:12px;font-weight:700;color:var(--color-text-muted)}.access-dev-name{margin-right:auto}.access-dev-bulk{padding:4px 10px;font-size:12px;font-weight:600}.access-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px var(--space-md) 11px 28px;border-bottom:1px solid var(--color-border)}.access-row:last-child{border-bottom:none}.access-row-text{min-width:0}.access-row-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.access-row-sub{font-size:12px;color:var(--color-text-muted)}.access-row .btn{flex:0 0 auto;padding:6px 14px;font-size:13px;min-width:104px}.access-kind{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--color-surface-alt);color:var(--color-text-muted)}.access-kind.is-control{background:var(--color-primary);color:#fff}@media (max-width: 860px){table .btn,.access-dev-bulk,.access-intro-link,.access-who-edit,.access-row .btn{min-height:36px;padding-top:7px;padding-bottom:7px}.access-intro{flex-direction:column;align-items:stretch}.access-intro-link{align-self:flex-start}.access-picker-list{max-height:none}.access-who-edit{width:100%}.access-row{padding-left:var(--space-md);align-items:stretch;flex-direction:column;gap:8px}.access-row .btn{width:100%}}@media (max-width: 860px){.app-sidebar{position:fixed;top:var(--app-header-h);left:0;bottom:0;z-index:60;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 40px #0000002e}.app-sidebar.open{transform:translate(0)}.nav-backdrop{display:block;position:fixed;top:var(--app-header-h);left:0;right:0;bottom:0;background:#00000059;z-index:55}.nav-toggle{display:grid}:root{--app-header-h: 60px}.app-header{padding:0 var(--space-md);gap:10px}.app-header .h-sub{display:none}.app-content-inner{padding:var(--space-md)}.header-controls{gap:8px}.header-select-wrap>span{display:none}.header-select{max-width:160px}.header-divider,.user-avatar{display:none}.access-grid{grid-template-columns:1fr}}.drawer-backdrop{position:fixed;top:var(--app-header-h);left:var(--app-sidebar-w);right:0;bottom:0;background:#1b2a2242;z-index:40;animation:drawer-fade .18s ease}.drawer{position:fixed;top:var(--app-header-h);right:0;bottom:0;width:min(480px,100%);display:flex;flex-direction:column;background:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:-16px 0 38px #1b2a2229;z-index:41;transform:translate(100%)}.drawer.is-open{animation:drawer-in .22s cubic-bezier(.22,1,.36,1) forwards}.drawer-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border);background:var(--color-surface-alt)}.drawer-titles{min-width:0}.drawer-title{margin:0;font-size:16px;font-weight:800;color:var(--color-primary-dark)}.drawer-sub{margin:3px 0 0;font-size:12px;color:var(--color-text-muted)}.drawer-close{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:14px;line-height:1}.drawer-close:hover{color:var(--color-text);background:var(--color-surface-alt)}.drawer-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 18px 24px}.drawer-body>form.card,.drawer-body>.card{border:none;box-shadow:none;padding:0;background:transparent;max-width:none}.drawer-body input:not([type=checkbox]):not([type=radio]),.drawer-body select,.drawer-body textarea{width:100%;box-sizing:border-box}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@media (max-width: 860px){.drawer-backdrop{left:0}.drawer{width:100%}}@media (prefers-reduced-motion: reduce){.drawer.is-open{animation:none;transform:translate(0)}.drawer-backdrop{animation:none}}@media (max-width: 560px){.app-content-inner{padding:12px}}.contact{display:block}.contact-panel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.contact-brand{padding:34px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.14),transparent 60%),linear-gradient(160deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}.contact-plate{background:#fff;border-radius:14px;padding:16px 20px;width:min(320px,100%);box-shadow:0 10px 26px #14261a38}.contact-plate img{display:block;width:100%;height:auto}.contact-lede{margin:4px 0 0;font-size:13.5px;font-weight:600;color:#ffffffd1}.contact-headline{margin:0;font-size:23px;font-weight:800;line-height:1.22;color:#fff;letter-spacing:-.01em}.contact-offerings{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:6px 0 0;padding:0;list-style:none}.contact-offerings li{padding:5px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#ffffff1a;font-size:12.5px;font-weight:700;color:#fff}.contact-details{padding:30px 32px;display:flex;flex-direction:column}.contact-details-title{margin:0 0 4px;font-size:18px;font-weight:800;color:var(--color-primary-dark)}.contact-row{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--color-border)}.contact-row:last-child{border-bottom:none;padding-bottom:0}.contact-badge{flex:0 0 38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-primary);margin-top:2px}.contact-row-body{min-width:0;display:flex;flex-direction:column;gap:6px}.contact-row-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.contact-address{display:flex;flex-direction:column;gap:2px;font-style:normal;font-size:14px;line-height:1.5;color:var(--color-text)}.contact-address strong{font-weight:700}.contact-maplink{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:13px;font-weight:700;color:var(--color-primary);text-decoration:none}.contact-maplink:hover,.contact-maplink:focus-visible{text-decoration:underline}.contact-links{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.contact-links a{display:inline-block;padding:5px 0;font-size:15px;font-weight:600;color:var(--color-text);text-decoration:none;word-break:break-word}.contact-links a:hover,.contact-links a:focus-visible{color:var(--color-primary);text-decoration:underline}@media (max-width: 860px){.contact-panel{grid-template-columns:1fr}.contact-brand{padding:26px 20px}.contact-details{padding:22px 20px}}@media (max-width: 560px){.contact-brand{padding:20px 14px;gap:11px}.contact-plate{padding:12px 14px;width:min(260px,100%)}.contact-headline{font-size:19px}.contact-lede{font-size:12.5px}.contact-details{padding:18px 14px}.contact-row{gap:11px;padding:15px 0}.contact-badge{flex-basis:34px;height:34px;border-radius:10px}}.export-note{margin-bottom:var(--space-md);padding:10px 14px;border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-surface);font-size:13px;color:var(--color-text)}.export-progress{margin-bottom:var(--space-md);padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.export-progress-head{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--color-text);margin-bottom:8px}.export-progress-pct{font-weight:700;color:var(--color-primary-dark)}.export-bar{height:8px;border-radius:99px;background:var(--color-surface-alt);border:1px solid var(--color-border);overflow:hidden}.export-bar-fill{height:100%;background:var(--color-primary);border-radius:99px;transition:width .2s ease}.export-bar-fill.is-indeterminate{width:35%;animation:export-slide 1.1s ease-in-out infinite}@keyframes export-slide{0%{margin-left:-35%}to{margin-left:100%}}@media (prefers-reduced-motion: reduce){.export-bar-fill.is-indeterminate{animation:none;width:100%;opacity:.45}}.export-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-muted)}.export-cancel{margin-top:10px;padding:6px 14px;font-size:13px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:34px;height:34px;flex:0 0 auto;display:block}.brand-text{min-width:0}.brand-name{font-weight:800;font-size:18px;line-height:1.12}.brand-sub{font-size:11px;line-height:1.25;white-space:nowrap}.app-header .brand{flex:0 0 calc(var(--app-sidebar-w) - var(--space-lg));padding-right:16px;margin-right:12px;border-right:1px solid rgba(255,255,255,.26)}.app-header .brand-plate{display:grid;place-items:center;padding:4px;border-radius:9px;background:#fff;flex:0 0 auto}.app-header .brand-name,.app-header .brand-sub{color:#fff}.app-sidebar .brand{padding:8px 6px 18px}.app-sidebar .brand-name{color:var(--color-primary-dark)}.app-sidebar .brand-sub{color:#5c6b63}.app-sidebar .brand{display:none}@media (max-width: 860px){.app-header .brand{display:none}.app-sidebar .brand{display:flex}}@media (min-width: 861px) and (max-width: 1050px){.app-header .brand-text{display:none}.app-header .brand{flex:0 0 auto;padding-right:12px;margin-right:12px}}.drag-handle{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--color-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.drag-handle:hover{background:var(--color-surface-alt);color:var(--color-text)}.drag-handle:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px;color:var(--color-primary)}.drag-handle:active{cursor:grabbing}tr.is-dragging{background:var(--color-surface-alt);box-shadow:inset 3px 0 0 var(--color-primary)}tr.is-dragging .drag-handle{cursor:grabbing;color:var(--color-primary)}.reorder-pos{width:1%;white-space:nowrap;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.pager{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:var(--space-md)}.pager-count{font-size:13px;color:var(--color-text-muted)}.pager-jump{display:flex;align-items:center;gap:6px;font-size:13px;margin-left:auto}.pager-jump input{width:84px}@media (max-width: 760px){.pager{display:grid;grid-template-columns:repeat(4,1fr)}.pager-count{grid-column:1 / -1;order:-1;text-align:center}.pager>.btn{width:100%;padding-left:4px;padding-right:4px}.pager-jump{grid-column:1 / -1;margin-left:0;justify-content:center}}@media (max-width: 430px){.pager{grid-template-columns:repeat(2,1fr)}}.notif-panel{position:absolute;right:0;top:48px;width:360px;max-height:460px;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 12px 32px #23342a2e;z-index:50;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface-alt);flex:0 0 auto}.notif-list{overflow-y:auto;flex:1 1 auto;min-height:0}@media (max-width: 560px){.notif-panel{position:fixed;top:calc(var(--app-header-h) + 6px);left:8px;right:8px;width:auto;max-height:calc(100vh - var(--app-header-h) - 22px);max-height:calc(100dvh - var(--app-header-h) - 22px)}}@media (max-width: 480px){.header-select{max-width:118px}.app-header .h-title{font-size:17px}}.card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(252px,100%),1fr))}.card-grid.roomy{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}@media (max-width: 560px){.card-grid,.card-grid.roomy{grid-template-columns:1fr;gap:12px}}.section-head{display:flex;align-items:center;gap:10px;margin:2px 0}.section-head-label{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.section-head-count{font-size:11px;font-weight:700;color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:99px;padding:1px 7px}.section-head-rule{flex:1;height:1px;background:var(--color-border)}.scard,.ecard{position:relative;border-radius:var(--card-radius);padding:var(--card-pad);padding-left:calc(18px + var(--card-accent-w));border:1px solid var(--sc-border, var(--ec-border));background:var(--color-surface);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .2s ease}.scard:before,.ecard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--card-accent-w);background:var(--sc-color, var(--ec-color))}.scard:hover,.ecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.scard-top,.ecard-top{display:flex;align-items:flex-start;gap:11px;min-width:0}.icon-chip,.ecard-chip{width:var(--card-chip);height:var(--card-chip);border-radius:var(--card-chip-radius);flex:0 0 var(--card-chip);display:flex;align-items:center;justify-content:center;background:var(--sc-chip, var(--ec-chip))}.scard-title,.ecard-title{font-size:var(--card-title);font-weight:650;line-height:1.25;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.scard{min-height:186px;display:flex;flex-direction:column;gap:10px}.scard.normal{--sc-border: var(--color-border);--sc-color: var(--color-normal);--sc-chip: #e6f2df}.scard.warning{--sc-border: #f0e2bd;--sc-color: var(--color-warning);--sc-chip: #fbf1dc}.scard.critical{--sc-border: #f0d3d0;--sc-color: var(--color-critical);--sc-chip: #f9e3e0}.scard.unknown{--sc-border: var(--color-border);--sc-color: #9aa6a0;--sc-chip: #eef1ea}.scard.warning{background:linear-gradient(180deg,#fdf9ef 0%,var(--color-surface) 62%)}.scard.critical{background:linear-gradient(180deg,#fdf2f1 0%,var(--color-surface) 62%)}.scard-left{display:flex;align-items:flex-start;gap:11px;min-width:0;flex:1}.scard-head-right{display:flex;align-items:center;gap:6px;flex:0 0 auto}.trend{flex:0 0 auto;display:inline-flex}.trend.rise{color:#ef6c3b}.trend.fall{color:#4a90d9}.trend.flat{color:#b3bdb7}.value-row{display:flex;align-items:baseline;gap:6px}.value{font-size:33px;font-weight:800;letter-spacing:-1.1px;line-height:1;color:var(--color-text);font-variant-numeric:tabular-nums}.unit{font-size:14px;color:var(--color-text-muted);font-weight:600}.status{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:3px 9px 3px 7px;border-radius:99px;font-size:11.5px;font-weight:700;color:var(--sc-color);background:var(--sc-chip)}.status .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.range{margin-top:auto;color:var(--sc-color)}.range-track{position:relative;height:5px;border-radius:99px;background:#14281412}.range-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:currentColor;opacity:.28}.range-marker{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:#fff;border:2.5px solid currentColor;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0000002e}.range-labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--color-text-muted);margin-top:5px;font-weight:600}.range.no-range{font-size:11.5px;color:var(--color-text-muted);font-weight:500}.sdt-wrap{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.sdt-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);flex:0 0 auto}.sdt-titlewrap{display:flex;align-items:baseline;gap:10px}.sdt-title{font-size:16px;font-weight:700;color:var(--color-primary-dark)}.sdt-count{font-size:12px;color:var(--color-text-muted)}.sdt-actions{display:flex;gap:8px}.sdt-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid #cfe0c4;background:#fff;color:var(--color-primary);font-size:13px;font-weight:600;padding:7px 12px;border-radius:9px}.sdt-btn:hover:not(:disabled){background:#eaf3e1}.sdt-btn:disabled{opacity:.55;cursor:not-allowed}.sdt-scroll{overflow:auto;max-height:62vh}.sdt-scroll table{border-collapse:collapse;width:100%;font-size:13px}.sdt-scroll th,.sdt-scroll td{padding:8px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid #eef3e8}.sdt-scroll th{position:sticky;top:0;background:var(--color-primary);color:#fff;font-weight:600;font-size:12px;z-index:1}.sdt-scroll th.t,.sdt-scroll td.t{text-align:left;position:sticky;left:0}.sdt-scroll td.t{background:#fbfdf8;color:#586a60}.sdt-scroll th.t{z-index:2}.sdt-scroll tbody tr:nth-child(2n) td{background:#f7fbf3}.sdt-scroll tbody tr:nth-child(2n) td.t{background:#f2f7ec}.ecard{min-height:136px;display:flex;flex-direction:column;gap:11px}.ecard.on{--ec-border: #dcebd2;--ec-color: var(--color-running);--ec-chip: #e6f2df}.ecard.moving{--ec-border: #f0e2bd;--ec-color: var(--color-warning);--ec-chip: #fbf1dc}.ecard.off{--ec-border: var(--color-border);--ec-color: var(--color-stopped);--ec-chip: #f7eceb}.ecard.unknown{--ec-border: var(--color-border);--ec-color: #9aa6a0;--ec-chip: #eef1ea}.ecard.moving{background:linear-gradient(180deg,#fdf9ef 0%,var(--color-surface) 70%)}.ecard-titles{min-width:0;flex:1}.ecard-cat{font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ec-color);opacity:.75;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ecard-rating{font-size:11px;color:var(--color-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ecard-state{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:4px 11px 4px 9px;border-radius:99px;font-size:13px;font-weight:750;letter-spacing:-.2px;color:var(--ec-color);background:var(--ec-chip);white-space:nowrap}.ecard-held{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:650;color:var(--color-warning)}.ecard .btn:disabled,.ecard input:disabled{opacity:.4;filter:grayscale(.55);cursor:not-allowed}.ecard-statusline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}.ecard-foot{font-size:10.5px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ecard-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:currentColor;transition:box-shadow .15s ease,background .2s ease}.ecard.on .ecard-dot{background:var(--color-running);animation:ec-breathe 1.8s ease-in-out infinite}.ecard.moving .ecard-dot{animation:ec-breathe .9s ease-in-out infinite}.ecard.off .ecard-dot{background:var(--color-stopped);box-shadow:0 0 0 3px #c0392b1f;animation:ec-breathe 1.8s ease-in-out infinite}.ecard.off:hover .ecard-dot{box-shadow:0 0 0 4px #c0392b33}.ecard.unknown .ecard-dot{background:#cfd8d2}@keyframes ec-breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.82)}}.ecard-icon{display:block;transform-origin:50% 50%}.ecard-icon.spin{animation:ec-spin 2.6s linear infinite}.ecard.moving .ecard-icon.spin{animation-duration:1.1s}.ecard-icon.pulse{animation:ec-pulse 1.7s ease-in-out infinite}.ecard-icon.travel-open{animation:ec-travel-up 1.2s ease-in-out infinite}.ecard-icon.travel-close{animation:ec-travel-down 1.2s ease-in-out infinite}@keyframes ec-spin{to{transform:rotate(360deg)}}@keyframes ec-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.14);opacity:.7}}@keyframes ec-travel-up{0%,to{transform:translateY(2px)}50%{transform:translateY(-3px)}}@keyframes ec-travel-down{0%,to{transform:translateY(-2px)}50%{transform:translateY(3px)}}.ecard-position{margin-left:8px;padding:1px 7px;border-radius:99px;font-size:.78em;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ec-color, var(--color-text-muted));background:#14281412}.ecard-bar{height:7px;border-radius:99px;background:#14281414;overflow:hidden}.ecard-bar-fill{height:100%;border-radius:99px;background:var(--ec-color);transition:width .6s ease}.ecard.moving .ecard-bar-fill{background-image:linear-gradient(115deg,rgba(255,255,255,.45) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.45) 50%,rgba(255,255,255,.45) 75%,transparent 75%);background-size:16px 16px;animation:ec-stripes .7s linear infinite}@keyframes ec-stripes{to{background-position:16px 0}}@media (prefers-reduced-motion: reduce){.ecard,.ecard *,.ecard-icon,.ecard-dot,.ecard-bar-fill{animation:none!important;transition:none!important}.ecard:hover{transform:none}}.scard-spark{display:block;width:100%;height:30px;margin-top:8px;overflow:visible}.pw-field{position:relative;display:flex}.pw-input{width:100%;padding-right:40px!important}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer}.pw-toggle:hover{color:var(--color-text);background:var(--color-surface-alt)}.pw-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.pw-toggle[aria-pressed=true]{color:var(--color-primary)}
