:root{--bg:oklch(14.5% 0 0);--panel:oklch(20.5% 0 0);--panel-alt:oklch(26.9% 0 0);--border:oklch(100% 0 0/.1);--text:oklch(98.5% 0 0);--text-dim:oklch(70.8% 0 0);--accent:oklch(70% .19 296);--accent-dim:oklch(56% .17 296);--accent-fg:oklch(99% 0 0);--accent-glow:oklch(70% .19 296/.45);--ok:#b4c828;--warn:#d27828;--critical:#ef4444;--unknown:oklch(45% 0 0);--ok-rgb:180, 200, 40;--critical-rgb:239, 68, 68;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-dropdown:0 4px 12px #00000040;--shadow-modal:0 8px 40px #00000026;--sans:"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--text-3xl:28px;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:800}[data-theme=light]{--bg:oklch(100% 0 0);--panel:oklch(100% 0 0);--panel-alt:oklch(97% 0 0);--border:oklch(92.2% 0 0);--text:oklch(14.5% 0 0);--text-dim:oklch(55.6% 0 0);--accent:oklch(50% .2 300);--accent-dim:oklch(40% .18 300);--accent-fg:oklch(99% 0 0);--accent-glow:oklch(50% .2 300/.35);--ok:#7a8a00;--warn:#a05800;--critical:#dc2626;--unknown:oklch(65% 0 0);--ok-rgb:122, 138, 0;--critical-rgb:220, 38, 38}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--text-base);font-weight:var(--weight-medium);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:var(--weight-medium)}button,select,input{font-family:inherit;font-size:inherit;font-weight:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.app__iframe{background:#fff;border:none;flex:1;width:100%;display:block}.app__topbar{background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 16px;display:flex}.app__topbar--fixed{--bg:oklch(14.5% 0 0);--panel:oklch(20.5% 0 0);--panel-alt:oklch(26.9% 0 0);--border:oklch(100% 0 0/.1);--text:oklch(98.5% 0 0);--text-dim:oklch(70.8% 0 0);--accent:oklch(70% .19 296);--accent-dim:oklch(56% .17 296);--accent-fg:oklch(99% 0 0);--accent-glow:oklch(70% .19 296/.45)}.app__brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.app__brand-row{cursor:pointer;opacity:1;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-family:inherit;transition:opacity .15s;display:flex}.app__brand-row:hover{opacity:.8}.app__brand-logo{object-fit:contain;width:auto;height:28px}.app__brand-logo--light,[data-theme=light] .app__brand-logo--dark{display:none}[data-theme=light] .app__brand-logo--light,[data-theme=light] .app__topbar--fixed .app__brand-logo--dark{display:block}[data-theme=light] .app__topbar--fixed .app__brand-logo--light{display:none}.app__brand-text{flex-direction:column;gap:1px;line-height:1;display:flex}.app__brand-noc{font-size:var(--text-md);letter-spacing:.12em;color:var(--accent);font-weight:800}.app__brand-manager{font-size:var(--text-sm);letter-spacing:.28em;color:var(--text-dim);font-weight:600}.top-tabs{flex:1;align-items:center;gap:0;display:flex;overflow-x:auto}.top-tabs__item{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:2px solid #0000;border-right:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;font-size:var(--text-sm);align-items:center;gap:8px;padding:7px 12px;transition:box-shadow .15s,border-color .15s;display:flex}.top-tabs__item:last-child{border-right:none}.top-tabs__item:hover{background:var(--panel-alt);color:var(--text)}.top-tabs__item.is-active{background:var(--panel-alt);border-bottom-color:var(--accent);box-shadow:0 2px 8px -3px var(--accent-glow);color:var(--text)}.top-tabs__edit-btn{color:var(--text-dim);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:0}.top-tabs__edit-btn:hover{color:var(--accent)}.top-tabs__delete-btn{color:#ef4444;cursor:pointer;font-size:var(--text-base);opacity:.7;background:0 0;border:none;padding:0 2px;font-weight:700}.top-tabs__delete-btn:hover{opacity:1;color:#ef4444}.top-tabs__rename-input{background:var(--bg);border:1px solid var(--accent);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);width:160px;padding:2px 6px}.top-tabs__empty{color:var(--text-dim);font-size:var(--text-sm)}.app__topbar-middle{flex:1}.app__subheader{background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:48px;padding:0 16px;display:flex}.app__topbar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.app__hub-btn{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;padding:6px;transition:color .15s,border-color .15s;display:flex}.app__hub-btn:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;padding:6px 12px}.theme-toggle:hover{border-color:var(--accent)}.app__logout-btn{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;padding:6px 12px}.app__logout-btn:hover{border-color:var(--critical);color:var(--critical)}.status-dot{border-radius:50%;flex-shrink:0;width:13px;height:13px}.status-dot--online{background:var(--ok);box-shadow:0 0 0 0 rgba(var(--ok-rgb), .6);animation:2s infinite pulse}.status-dot--offline{background:var(--critical);box-shadow:0 0 0 0 rgba(var(--critical-rgb), .6);animation:1.2s infinite pulse-offline}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--ok-rgb), .5)}70%{box-shadow:0 0 0 6px rgba(var(--ok-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--ok-rgb), 0)}}@keyframes pulse-offline{0%{opacity:1;box-shadow:0 0 0 0 rgba(var(--critical-rgb), .6)}50%{opacity:.4;box-shadow:0 0 0 6px rgba(var(--critical-rgb), 0)}to{opacity:1;box-shadow:0 0 0 0 rgba(var(--critical-rgb), 0)}}.app__body{flex:1;min-height:0;display:flex}.group-sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;padding:16px 0;display:flex}.group-sidebar__title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 8px;padding:0 16px}.group-sidebar__list{flex:1;margin:0;padding:0;list-style:none}.group-sidebar__row{align-items:center;display:flex}.group-sidebar__item{color:var(--text-dim);cursor:pointer;text-align:left;font-weight:500;font-size:var(--text-sm);background:0 0;border:none;border-left:2px solid #0000;flex:1;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.group-sidebar__item:hover{background:var(--panel-alt);color:var(--text)}.group-sidebar__item.is-active{background:var(--panel-alt);border-left-color:var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text)}.group-sidebar__count{font-family:var(--mono);font-size:var(--text-sm);color:var(--text-dim);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);text-align:center;min-width:20px;padding:1px 7px}.group-sidebar__delete{color:var(--text-dim);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:4px 10px 4px 0}.group-sidebar__delete:hover{color:var(--critical)}.group-sidebar__delete-placeholder{flex-shrink:0;width:30px;display:inline-block}.group-sidebar__new{border-top:1px solid var(--border);gap:4px;margin-top:8px;padding:12px 16px 0;display:flex}.group-sidebar__new input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);flex:1;min-width:0;padding:5px 8px}.group-sidebar__new button,.add-target-form button,.login-card__submit,.modal-card__submit{background:var(--accent);color:var(--accent-fg);cursor:pointer;border:none;transition:background-color .15s,box-shadow .15s}.group-sidebar__new button:hover,.add-target-form button:hover,.login-card__submit:hover,.modal-card__submit:hover{background:var(--accent-dim)}.group-sidebar__new button:hover,.add-target-form button:hover,.login-card__submit:hover,.modal-card__submit:hover,.group-sidebar__new button:focus-visible,.add-target-form button:focus-visible,.login-card__submit:focus-visible,.modal-card__submit:focus-visible{box-shadow:0 0 0 3px var(--accent-glow)}.group-sidebar__new button{border-radius:var(--radius-xs);padding:5px 10px}.group-sidebar__new input:focus-visible,.add-target-form input:focus-visible,.add-target-form select:focus-visible,.login-card__field input:focus-visible,.modal-card__field input:focus-visible,.modal-card__field select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.app__main{flex:1;min-width:0;padding:20px 28px;overflow-y:auto}.app__router-info{color:var(--text-dim);font-size:var(--text-sm);margin-bottom:14px}.app__toolbar-row{align-items:center;gap:16px;margin-bottom:16px;display:flex}.app__table-toolbar{white-space:nowrap;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;align-items:center;gap:14px;padding:6px 12px;display:flex}.app__table-toolbar>*+*{border-left:1px solid var(--border);padding-left:14px}.import-export-buttons{gap:6px;display:flex}.import-export-buttons__btn{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;padding:5px 10px}.import-export-buttons__btn:hover{border-color:var(--accent)}.focus-selector{font-size:var(--text-sm);color:var(--text-dim);align-items:center;gap:6px;display:flex}.focus-selector select{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);padding:4px 8px}.density-selector{font-size:var(--text-sm);color:var(--text-dim);align-items:center;gap:6px;display:flex}.density-selector select{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);padding:4px 8px}.app__error{border:1px solid var(--critical);color:var(--critical);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#ef44441f;margin-bottom:16px;padding:8px 12px}.app__notice{border:1px solid var(--ok);color:var(--ok);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#22c55e1a;margin-bottom:16px;padding:8px 12px}.app__empty-state{color:var(--text-dim);text-align:center;padding:60px 0}.add-target-form{flex:auto;gap:6px;min-width:0;display:flex}.add-target-form input,.add-target-form select{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);min-width:0;padding:5px 8px}.add-target-form input[type=text]:first-child{flex:1.4;min-width:90px}.add-target-form input[type=text]:nth-child(2){flex:1;min-width:70px}.add-target-form button{border-radius:var(--radius-xs);white-space:nowrap;padding:5px 12px;font-weight:500}.add-target-form button:disabled{opacity:.6;cursor:default;box-shadow:none}.add-target-form__select-label{font-size:var(--text-sm);color:var(--text-dim);white-space:nowrap;align-items:center;gap:6px;display:flex}.targets-table-wrapper{overflow:auto visible}.targets-table__reset-row{justify-content:flex-end;margin-bottom:6px;display:flex}.targets-table__reset-btn{color:var(--text-dim);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:2px 4px}.targets-table__reset-btn:hover{color:var(--accent)}.targets-table{table-layout:fixed;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);width:100%}.targets-table th{text-align:left;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--border);cursor:grab;font-weight:600;position:relative;overflow:hidden}.targets-table th:active{cursor:grabbing}.targets-table td{font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500;position:relative;overflow:hidden}.targets-table td.mono,.targets-table td span.mono{font-size:var(--text-base);letter-spacing:.01em;font-weight:500}.targets-table td:not([data-col=graph]):after{content:"";background:var(--table-line,#7f7f7f24);pointer-events:none;height:1px;position:absolute;bottom:0;left:10%;right:10%}.targets-table tr:last-child td:after{display:none}.targets-table tr:hover{background:var(--panel-alt)}.targets-table__cell--clickable{cursor:pointer}.targets-table__cell--clickable:hover{text-decoration:underline}.col-header-cell__label{display:inline-block}.col-resize-handle{cursor:col-resize;z-index:2;width:6px;height:100%;position:absolute;top:0;right:0}.col-resize-handle:hover{background:var(--accent);opacity:.5}.targets-table--compact th,.targets-table--compact td{padding:5px 10px}.targets-table--comfortable th,.targets-table--comfortable td{padding:10px 14px}.targets-table--spacious th,.targets-table--spacious td{padding:16px 20px}.targets-table td[data-col=status],.targets-table th[data-col=status]{text-align:center;padding-left:3px;padding-right:3px}.targets-table td[data-col=status]{overflow:visible}.sortable-header{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:grab;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.sortable-header:hover{color:var(--text)}.sortable-header__arrow{font-size:var(--text-sm);color:var(--accent)}.targets-table__empty{text-align:center;color:var(--text-dim);padding:24px!important}.targets-table__group-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);padding:3px 6px}.targets-table__interval-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);width:58px;padding:3px 4px}.row-menu{display:inline-block;position:relative}.row-menu__trigger{color:var(--text-dim);cursor:pointer;font-size:var(--text-lg);background:0 0;border:none;padding:2px 6px;line-height:1}.row-menu__trigger:hover{color:var(--text)}.row-menu__dropdown{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:100%;left:0}.row-menu__dropdown button{color:var(--text);text-align:left;font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:7px 10px;font-weight:500}.row-menu__dropdown button:hover{background:var(--panel-alt)}.row-menu__dropdown button:disabled{opacity:.5;cursor:default}.row-menu__host{font-size:var(--text-sm);color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:6px 10px 4px;font-weight:600;overflow:hidden}.row-menu__separator{background:var(--border);height:1px;margin:4px 2px}.row-menu__danger{color:var(--critical)!important}.row-menu__danger:hover{background:#ef44441a!important}.status-dot-inline{background:var(--unknown);cursor:pointer;border-radius:50%;width:12px;height:12px;display:inline-block}.status-dot-inline--ok{background:#84cc16}.status-dot-inline--warning{background:#fbbf24}.status-dot-inline--critical{background:#f87171}.status-dot-inline--unknown{background:var(--unknown)}.mini-sparkline{width:100%;height:26px;display:block}.mini-sparkline--empty{background:var(--panel-alt);border-radius:var(--radius-xs)}.btn-icon{color:var(--text-dim);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none}.btn-icon:hover{color:var(--critical)}.detail-panel-overlay{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:12px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;width:100%;max-width:1200px;max-height:calc(100vh - 48px);padding:24px 28px;animation:.15s ease-out popIn;overflow:hidden auto}.detail-panel--wide{max-width:min(2200px,98vw)}@keyframes popIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.detail-panel__header{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.detail-panel__header h2{font-size:var(--text-xl);margin:0 0 4px}.detail-panel__host{color:var(--text-dim);font-size:var(--text-sm)}.detail-panel__header-actions{align-items:center;gap:16px;display:flex}.detail-panel__close{color:var(--text-dim);cursor:pointer;font-size:var(--text-xl);background:0 0;border:none}.detail-panel__close:hover{color:var(--text)}.detail-panel__protocols{grid-template-columns:1fr 1fr;gap:24px;min-width:0;display:grid}@media (width<=1300px){.detail-panel__protocols{grid-template-columns:1fr}}.detail-panel__protocol{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;min-width:0;padding:16px;display:flex}.detail-panel__protocol-title{font-size:var(--text-sm);letter-spacing:.04em;color:var(--accent);margin:0 0 12px;font-weight:700}.detail-panel__stats-row{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:16px;padding:10px 12px;display:grid}.detail-panel__stats-row>div{text-align:center;flex-direction:column;gap:2px;display:flex}.detail-panel__stats-row dt{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.detail-panel__stats-row dd{font-size:var(--text-sm);margin:0}@media (width<=1100px){.detail-panel__stats-row{grid-template-columns:repeat(4,1fr);row-gap:10px}}.detail-panel__protocol-grid{grid-template-columns:1.4fr 1fr;gap:16px;min-width:0;margin-bottom:16px;display:grid}@media (width<=700px){.detail-panel__protocol-grid{grid-template-columns:1fr}}.detail-panel__panel{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:16px;overflow-x:auto}.detail-panel__panel h4,.detail-panel__section h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 12px;font-weight:500}.detail-panel__subheading{margin-top:18px!important}.detail-panel__note{color:var(--text-dim);font-size:var(--text-sm);margin-top:12px;font-style:italic}.detail-panel__geo-hero{align-items:center;gap:12px;margin-bottom:14px;display:flex}.detail-panel__geo-flag{border-radius:var(--radius-xs);border:1px solid var(--border);width:32px;height:auto;display:block}.detail-panel__geo-flag--emoji{border:none;font-size:36px;line-height:1}.detail-panel__geo-place{font-size:var(--text-md);font-weight:600}.detail-panel__geo-country{font-size:var(--text-sm);color:var(--text-dim)}.detail-panel__empty{color:var(--text-dim);font-size:var(--text-sm);padding:6px 0}.detail-panel__error-inline{color:var(--critical);font-size:var(--text-sm);padding:6px 0}.detail-panel__geo-facts{flex-direction:column;gap:8px;display:flex}.detail-panel__geo-facts>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.detail-panel__geo-facts dt{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);white-space:nowrap;flex-shrink:0}.detail-panel__geo-facts dd{font-size:var(--text-sm);white-space:nowrap;text-align:right;margin:0;font-weight:500}.as-path-chain{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;display:flex}.as-path-chain__asn{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--text-sm);padding:2px 8px}.as-path-chain__arrow{color:var(--text-dim);font-size:var(--text-sm)}.detail-panel__as-meta{font-size:var(--text-sm);color:var(--text-dim);gap:16px;display:flex}.detail-panel__section{margin-top:auto;margin-bottom:8px;padding-top:20px}.latency-chart__empty,.traceroute__empty{color:var(--text-dim);font-size:var(--text-sm);text-align:center;padding:30px 0}.traceroute__meta{font-size:var(--text-sm);color:var(--text-dim);margin-bottom:10px}.traceroute-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-weight:500}.traceroute-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:6px 8px;font-weight:500}.traceroute-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 8px}.traceroute-table tr:last-child td{border-bottom:none}.login-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-screen__theme-toggle{position:absolute;top:20px;right:20px}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-modal);flex-direction:column;gap:16px;padding:36px 32px 28px;display:flex}.login-card__brand{align-items:center;gap:14px;margin-bottom:4px;display:flex}.login-card__icon{object-fit:contain;border-radius:var(--radius-lg);width:56px;height:56px}.login-card__name{font-size:var(--text-2xl);letter-spacing:.08em;margin-bottom:4px;font-weight:800;line-height:1.1}.login-card__noc{color:var(--accent)}.login-card__mgr{color:var(--text-dim);font-size:var(--text-sm);font-weight:600}.login-card__olla-logo{object-fit:contain;opacity:.85;width:auto;height:22px}.login-card__subtitle{color:var(--text-dim);font-size:var(--text-sm);margin:0 0 4px}.login-card__error{border:1px solid var(--critical);color:var(--critical);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#ef44441f;padding:8px 12px}.login-card__field{font-size:var(--text-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:5px;display:flex}.login-card__field input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:var(--text-base);letter-spacing:normal;text-transform:none;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.login-card__submit{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dim) 100%);border-radius:var(--radius-sm);font-size:var(--text-base);letter-spacing:.05em;margin-top:4px;padding:11px;font-weight:700}.login-card__submit:hover{background:linear-gradient(135deg, var(--accent-dim) 0%, var(--accent-dim) 100%)}.login-card__submit:disabled{opacity:.5;cursor:default;box-shadow:none}.management-menu__checkbox-item{font-size:var(--text-sm);color:var(--text);cursor:pointer;border-radius:var(--radius-xs);white-space:nowrap;align-items:center;gap:9px;padding:8px 10px;display:flex}.management-menu__checkbox-item svg{color:var(--text-dim);flex-shrink:0}.management-menu__checkbox-item:hover{background:var(--panel-alt)}.management-menu__checkbox-item:hover svg{color:var(--accent)}.management-menu__checkbox-item span{white-space:normal;flex:1;line-height:1.3}.management-menu__checkbox-item input{accent-color:var(--accent);flex-shrink:0}.modal-overlay{z-index:60;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:calc(100vh - 40px);padding:22px 26px;overflow-y:auto}.modal-card__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-card__header h2{font-size:var(--text-lg);margin:0}.modal-card__close{color:var(--text-dim);cursor:pointer;font-size:var(--text-lg);background:0 0;border:none}.modal-card__close:hover{color:var(--text)}.modal-card__error{border:1px solid var(--critical);color:var(--critical);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#ef44441f;margin-bottom:12px;padding:8px 12px}.modal-card form{flex-direction:column;gap:14px;display:flex}.modal-card__field{font-size:var(--text-sm);color:var(--text-dim);flex-direction:column;gap:4px;display:flex}.modal-card__field input,.modal-card__field select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:var(--text-base);padding:8px 10px}.modal-card__submit{border-radius:var(--radius-sm);font-size:var(--text-base);padding:10px;font-weight:600}.modal-card__submit:disabled{opacity:.6;cursor:default;box-shadow:none}.modal-card__result{font-size:var(--text-sm);flex-direction:column;gap:12px;display:flex}.modal-card__copyable{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 10px;display:flex}.modal-card__copyable code{font-family:var(--mono);font-size:var(--text-sm);overflow-wrap:anywhere;flex:1}.modal-card__copyable button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;padding:4px 8px}.modal-card__hint{color:var(--text-dim);font-size:var(--text-sm);line-height:1.5}.modal-card__hint code{font-family:var(--mono);background:var(--bg);border-radius:var(--radius-xs);padding:1px 4px}.detail-panel__http-row{grid-column:1/-1;width:100%;margin-bottom:4px}.http-status{border-radius:var(--radius-md);border:1px solid var(--border);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.http-status--pending,.http-status--nohttp{background:var(--panel-alt);color:var(--text-dim)}.http-status--ok{background:#84cc161a;border-color:#84cc1659}.http-status--redirect{background:#fbbf241a;border-color:#fbbf2459}.http-status--warning{background:#f973161a;border-color:#f9731659}.http-status--critical{background:#f871711a;border-color:#f8717159}.http-status__label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:600}.http-status__badge{font-family:var(--mono);font-size:var(--text-base);letter-spacing:.04em;font-weight:700}.http-status--ok .http-status__badge{color:#84cc16}.http-status--redirect .http-status__badge{color:#fbbf24}.http-status--warning .http-status__badge{color:#f97316}.http-status--critical .http-status__badge{color:#f87171}.http-status__proto{font-family:var(--mono);font-size:var(--text-sm);color:var(--text-dim);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);padding:2px 6px}.http-status__time{font-family:var(--mono);font-size:var(--text-sm);color:var(--text-dim)}.http-status__time:before{content:"-  "}.http-status__url{font-family:var(--mono);font-size:var(--text-sm);color:var(--accent);text-overflow:ellipsis;white-space:nowrap;max-width:500px;text-decoration:none;overflow:hidden}.http-status__url:hover{text-decoration:underline}.tv-proxy-banner{font-size:var(--text-3xl);color:var(--accent);letter-spacing:.01em;margin:0 0 4px;font-weight:700;line-height:1}.login-card__divider{color:var(--text-dim);font-size:var(--text-xs);align-items:center;gap:10px;margin:14px 0;display:flex}.login-card__divider:before,.login-card__divider:after{content:"";background:var(--border);flex:1;height:1px}.login-card__sso-button{text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text);font-weight:500;font-size:var(--text-base);padding:10px 0;text-decoration:none;display:block}.login-card__sso-button:hover{background:var(--panel-alt)}.tv-toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.tv-toolbar-row .tv-proxy-banner{margin-bottom:0}.tv-rotate-toggle{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;padding:4px 10px}.tv-rotate-toggle:hover{background:var(--panel)}.management-menu{position:relative}.management-menu__trigger{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);font-size:var(--text-xs);letter-spacing:.02em;cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 9px;font-weight:600;transition:color .15s,border-color .15s;display:flex}.management-menu__trigger:hover,.management-menu__trigger[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.management-menu__dropdown{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);flex-direction:column;min-width:250px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;left:0}.management-menu__dropdown button{color:var(--text);text-align:left;font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-xs);white-space:nowrap;background:0 0;border:none;align-items:center;gap:9px;padding:8px 10px;display:flex}.management-menu__dropdown button svg{color:var(--text-dim);flex-shrink:0}.management-menu__dropdown button:hover{background:var(--panel-alt)}.management-menu__dropdown button:hover svg{color:var(--accent)}.management-menu__divider{background:var(--border);height:1px;margin:4px 6px}.modal-card--wide{width:820px;max-width:92vw}.activity-log__toolbar{align-items:center;gap:10px;margin:4px 0 12px;display:flex}.activity-log__toolbar select,.activity-log__toolbar button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;padding:6px 10px}.activity-log__table-wrapper{border:1px solid var(--border);border-radius:var(--radius-md);max-height:60vh;overflow-y:auto}.activity-log__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.activity-log__table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--panel);padding:8px 10px;position:sticky;top:0}.activity-log__table td{border-bottom:1px solid var(--border);padding:6px 10px}.activity-log__empty{text-align:center;color:var(--text-dim);padding:24px}.activity-log__badge{border-radius:var(--radius-full);font-size:var(--text-xs);background:var(--panel-alt);color:var(--text-dim);white-space:nowrap;padding:2px 8px;font-weight:600;display:inline-block}.activity-log__badge--ok{color:var(--ok);background:#22c55e26}.activity-log__badge--warn{color:var(--warn);background:#f59e0b26}.activity-log__badge--critical{color:var(--critical);background:#ef444426}.systems-hub{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px 28px 40px;overflow-y:auto}.systems-hub__subtitle{color:var(--text-dim);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;margin:0 0 20px}.systems-hub__loading{color:var(--text-dim);font-size:var(--text-sm)}.systems-hub__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;display:grid}.systems-hub__tile-wrap{position:relative}.systems-hub__tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;min-height:140px;color:var(--text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px 16px;font-family:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.systems-hub__tile:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.systems-hub__tile-logo{object-fit:contain;max-width:100%;max-height:44px}.systems-hub__tile-name{font-size:var(--text-md);text-align:center;font-weight:600}.systems-hub__tile-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.systems-hub__tile-wrap:hover .systems-hub__tile-actions{opacity:1}.systems-hub__tile-action{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-dim);cursor:pointer;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.systems-hub__tile-action:hover{color:var(--accent);border-color:var(--accent)}.systems-hub__tile--add{color:var(--text-dim);background:0 0;border-style:dashed}.systems-hub__tile--add:hover{color:var(--accent)}.systems-hub__tile-plus{font-size:var(--text-2xl);font-weight:300;line-height:1}.systems-menu{position:relative}.systems-menu__dropdown{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);width:260px;margin-top:6px;padding:10px;position:absolute;top:100%;right:0}.systems-menu__grid{grid-template-columns:repeat(3,1fr);gap:2px;max-height:320px;display:grid;overflow-y:auto}.systems-menu__item{border-radius:var(--radius-sm);color:var(--text);text-align:center;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;line-height:1.25;text-decoration:none;display:flex}.systems-menu__item:hover{background:var(--panel-alt);color:var(--accent)}.systems-menu__item-icon{object-fit:contain;border-radius:var(--radius-xs);width:28px;height:28px}.systems-menu__item-avatar{background:var(--accent);width:28px;height:28px;color:var(--accent-fg);font-size:var(--text-sm);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.systems-menu__manage{border:none;border-top:1px solid var(--border);width:100%;color:var(--text-dim);font-size:var(--text-sm);cursor:pointer;text-align:center;background:0 0;margin-top:8px;padding-top:10px;display:block}.systems-menu__manage:hover{color:var(--accent)}
