:root{
    --bg:#f5f7fb;--panel:#ffffff;--panel-soft:#f7f9fc;--text:#172033;--muted:#667085;--line:#e4e9f0;
    --accent:#4f7cff;--accent-soft:#eef3ff;--ok:#16834b;--ok-soft:#e9f8ef;--warn:#b76e00;--warn-soft:#fff4df;
    --bad:#c53b3b;--bad-soft:#feecec;--sidebar:#0172ad;--sidebar-hover:#056598;--sidebar-text:#e8f6ff;
    --shadow:0 10px 30px rgba(15,23,42,.07);--radius:16px;
}
html[data-theme="dark"]{
    --bg:#0d1117;--panel:#151b23;--panel-soft:#111720;--text:#edf2f7;--muted:#9aa6b6;--line:#293241;
    --accent:#7b9bff;--accent-soft:#192845;--ok:#4fd18b;--ok-soft:#143425;--warn:#f3b64d;--warn-soft:#3a2b12;
    --bad:#ff7b7b;--bad-soft:#3a1b1b;--sidebar:#0172ad;--sidebar-hover:#056598;--sidebar-text:#e8f6ff;
    --shadow:0 12px 30px rgba(0,0,0,.22);
}
*{box-sizing:border-box}html{color-scheme:light}html[data-theme="dark"]{color-scheme:dark}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);transition:background .2s,color .2s}a{color:inherit;text-decoration:none}.icon{display:inline-block;flex:none}.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .22s ease}.side{position:sticky;top:0;height:100vh;background:var(--sidebar);color:#fff;padding:20px 16px;display:flex;flex-direction:column;overflow:hidden;transition:padding .22s ease}.brand-row{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;align-items:center;gap:8px}.brand-mark{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.13);display:grid;place-items:center}.brand-trigger{appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.34);padding:0;color:#fff!important;cursor:pointer;transition:transform .14s ease,background .16s ease,box-shadow .16s ease,border-color .16s ease}.brand-trigger .icon{display:block;color:#fff!important;stroke:#fff!important;opacity:1!important}.brand-trigger:hover{background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.55);box-shadow:0 8px 18px rgba(0,55,88,.20);transform:translateY(-1px)}.brand{font-size:18px;font-weight:800;white-space:nowrap}.sub{font-size:11px;color:#98a2b3;white-space:nowrap}.icon-btn{border:0;background:transparent;color:#cbd5e1;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:rgba(255,255,255,.08);color:#fff}.nav{margin-top:28px;display:flex;flex-direction:column;gap:6px}.nav a{min-height:44px;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:var(--sidebar-text);position:relative}.nav a:hover,.nav a.active{background:var(--sidebar-hover);color:#fff}.nav-icon{width:22px;display:grid;place-items:center}.nav-label{white-space:nowrap}.nav-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--accent);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}.side-footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.theme-switch{width:100%;border:0;background:transparent;color:var(--sidebar-text);min-height:42px;border-radius:10px;display:flex;align-items:center;gap:11px;padding:9px 12px;cursor:pointer}.theme-switch:hover{background:var(--sidebar-hover);color:#fff}.theme-icon{width:22px;display:grid;place-items:center}.theme-icon-dark{display:none}html[data-theme="dark"] .theme-icon-light{display:none}html[data-theme="dark"] .theme-icon-dark{display:grid}.sidebar-collapsed{grid-template-columns:78px minmax(0,1fr)}.sidebar-collapsed .side{padding-left:13px;padding-right:13px}.sidebar-collapsed .brand-row{grid-template-columns:1fr}.sidebar-collapsed .brand-copy,.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-count{display:none}.sidebar-collapsed .brand-mark{margin:0 auto}.sidebar-collapsed .brand-trigger{display:grid!important;visibility:visible!important;opacity:1!important}.sidebar-collapsed .sidebar-toggle{margin:8px auto 0}.sidebar-collapsed .nav a,.sidebar-collapsed .theme-switch{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .nav-icon,.sidebar-collapsed .theme-icon{width:auto}.main{min-width:0;padding:28px 30px 34px}.sites-sticky-header{position:sticky;top:0;z-index:30;background:var(--bg);padding:4px 0 14px;margin:-4px 0 2px}.sites-sticky-header .top{margin-bottom:14px}.content-layout.no-detail{grid-template-columns:minmax(0,1fr)}.top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.page-heading{display:flex;align-items:center;gap:12px}.page-icon,.detail-icon,.metric-icon{display:grid;place-items:center;border-radius:11px;background:var(--accent-soft);color:var(--accent)}.page-icon{width:44px;height:44px}.page-heading h1{margin:0;font-size:28px;line-height:1.2}.muted{color:var(--muted)}code{font-family:"SFMono-Regular",Consolas,monospace;font-size:12px;color:inherit}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:17px}.metric-card{display:flex;align-items:center;gap:13px;min-height:91px}.metric-icon{width:42px;height:42px}.metric-card b{font-size:26px;display:block;line-height:1.15;margin-top:2px}.content-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.info-card{margin-bottom:16px}.section-heading{display:flex;align-items:flex-start;gap:9px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.table-card{padding:8px 16px 4px}.table-wrap{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;min-width:640px}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-weight:800}.sort-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:800;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.sort-btn:hover{color:var(--accent)}.sort-indicator{display:inline-grid;place-items:center;width:14px;height:14px;color:var(--accent);opacity:.38}.sort-btn[data-direction="asc"] .sort-indicator,.sort-btn[data-direction="desc"] .sort-indicator{opacity:1}.sort-btn[data-direction="asc"] .sort-indicator::before{content:"↑"}.sort-btn[data-direction="desc"] .sort-indicator::before{content:"↓"}.sort-btn:not([data-direction="asc"]):not([data-direction="desc"]) .sort-indicator::before{content:"↕"}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:var(--panel-soft)}.selected-row{background:var(--accent-soft)!important}.site-link{display:flex;align-items:center;gap:9px}.site-link small,.table td small{display:block;color:var(--muted);margin-top:2px}.site-dot{width:9px;height:9px;border-radius:50%;background:#c4cad3;box-shadow:0 0 0 4px rgba(148,163,184,.12)}.site-dot.online{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:99px;font-size:11px;font-weight:800;background:var(--panel-soft);color:var(--muted);border:1px solid var(--line)}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.detail-column{min-width:0}.sticky-card{position:sticky;top:18px}.site-detail-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.detail-icon{width:38px;height:38px}.site-detail-head h2{margin:0;font-size:18px}.site-meta{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 0 4px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.site-meta span{display:flex;align-items:center;gap:5px}.sectiontitle{display:flex;align-items:center;gap:7px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850;margin:18px 0 5px}.switchrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.switchrow>label:first-child{font-weight:650}.toggle{position:relative;width:38px;height:22px;flex:none}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle span{position:absolute;inset:0;border-radius:99px;background:#c8ced8;transition:.18s;cursor:pointer}.toggle span:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.24);transition:.18s}.toggle input:checked+span{background:var(--accent)}.toggle input:checked+span:after{transform:translateX(16px)}.field{margin-top:10px}.field>label{display:block;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:5px}input[type=text],input[type=number],select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--text);outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:9px 12px;font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap;transition:transform .12s,background .15s,border-color .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{background:var(--panel-soft);border-color:var(--line);color:var(--text)}.btn.danger{background:var(--bad-soft);color:var(--bad)}.btn.small{padding:7px 9px}.btn.full{width:100%;margin-top:14px}.notice{display:flex;align-items:center;gap:8px;padding:11px 13px;border-radius:10px;margin-bottom:14px;background:var(--accent-soft);color:var(--accent);font-weight:700}.notice.success{background:var(--ok-soft);color:var(--ok)}.notice.error{background:var(--bad-soft);color:var(--bad)}.activity-card{margin-top:16px}.events{max-height:320px;overflow:auto}.event{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.event:last-child{border-bottom:0}.event strong,.event .muted{display:block}.event-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none}.empty-state{padding:22px!important;text-align:center;color:var(--muted)}.empty-detail{text-align:center;padding:30px 20px}.empty-detail .detail-icon{margin:0 auto 12px}.updates-card{margin-top:16px}.updates-table{min-width:990px}.version-pill{display:inline-flex;padding:4px 8px;border-radius:8px;background:var(--panel-soft);border:1px solid var(--line);font-weight:800}.error-text{color:var(--bad)!important;max-width:190px}.rollback-form{display:flex;align-items:center;gap:6px}.rollback-form select{min-width:92px;padding:7px 8px}.updates-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.version-history{display:flex;flex-direction:column}.version-row{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.version-row:last-child{border-bottom:0}.version-number{font-weight:900;color:var(--accent)}
@media(max-width:1120px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.content-layout{grid-template-columns:1fr}.sticky-card{position:static}.updates-bottom-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app,.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.side{padding:13px 11px}.brand-row{grid-template-columns:1fr}.brand-copy,.nav-label,.nav-count{display:none}.brand-mark{margin:auto}.sidebar-toggle{margin:8px auto 0}.nav a,.theme-switch{justify-content:center;padding-left:0;padding-right:0}.main{padding:18px 14px}.metrics-grid{grid-template-columns:1fr 1fr}.top{align-items:flex-start}.page-heading h1{font-size:24px}.updates-bottom-grid{grid-template-columns:1fr}}
@media(max-width:520px){.metrics-grid{grid-template-columns:1fr}.top{flex-direction:column}.page-icon{width:38px;height:38px}.main{padding:14px 10px}.card{border-radius:13px}.rollback-form{flex-direction:column;align-items:stretch}}
.update-action-grid{display:grid;grid-template-columns:1fr auto 1fr auto;gap:18px;align-items:center;padding:16px 4px}.big-version{font-size:30px;font-weight:900;line-height:1.1;margin-top:4px}.update-arrow{color:var(--accent);display:grid;place-items:center}.update-buttons{display:flex;justify-content:flex-end}.update-changelog{border-top:1px solid var(--line);padding:14px 4px 4px}.rollback-panel{display:flex;align-items:flex-end;gap:10px}.rollback-panel .field{flex:1;margin:0}@media(max-width:760px){.update-action-grid{grid-template-columns:1fr;gap:10px}.update-arrow{transform:rotate(90deg)}.update-buttons{justify-content:flex-start}.rollback-panel{align-items:stretch;flex-direction:column}}

.site-dot.offline{background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.14)}.badge.offline{background:rgba(148,163,184,.14);color:var(--muted);border-color:var(--line)}.status-online{color:var(--ok);font-weight:800}.status-offline{color:var(--muted);font-weight:800}
.config-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.config-toggle-grid .switchrow{min-width:0}.detail-column .field{margin-top:10px}
@media(max-width:1280px){.content-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.config-toggle-grid{grid-template-columns:1fr}}
@media(max-width:1120px){.content-layout{grid-template-columns:1fr}.config-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.config-toggle-grid{grid-template-columns:1fr}}
.runtime-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.runtime-status>div{display:flex;flex-direction:column;gap:3px}.runtime-status strong{font-size:13px}.runtime-status .badge{grid-column:1/-1;justify-self:start}


:root{--bg:#f6f9fc;--panel:#ffffff;--panel-soft:#f5f9fc;--text:#172033;--muted:#667085;--line:#e7edf5;--accent:#1292e8;--accent-soft:#edf7ff;--ok:#169c52;--ok-soft:#e7f8ee;--warn:#b76e00;--warn-soft:#fff4df;--bad:#e74a4a;--bad-soft:#ffecec;--sidebar:#0172AD;--sidebar-hover:rgba(255,255,255,.16);--sidebar-text:rgba(255,255,255,.94);--shadow:0 10px 30px rgba(20,51,84,.08);--radius:18px}
html[data-theme="dark"]{--bg:#0f1723;--panel:#131c2a;--panel-soft:#172334;--text:#edf2f7;--muted:#9eb0c8;--line:#243346;--accent:#33a5f0;--accent-soft:#153045;--ok:#54d68a;--ok-soft:#113123;--warn:#f3b64d;--warn-soft:#3a2b12;--bad:#ff7b7b;--bad-soft:#3a1b1b;--sidebar:#0a3050;--sidebar-hover:rgba(255,255,255,.14);--sidebar-text:#e8f3ff;--shadow:0 12px 30px rgba(0,0,0,.24)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg)}
.app{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)}
.side{background:linear-gradient(180deg,#0172AD 0%,#0d8bd6 100%);color:#fff;padding:22px 16px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:0}.brand-row{display:grid;grid-template-columns:46px minmax(0,1fr) 34px;align-items:center;gap:10px;padding-bottom:16px}.brand-mark{width:46px;height:46px;border-radius:16px;background:rgba(255,255,255,.14);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.brand-mark:hover{background:rgba(255,255,255,.22)}.brand-copy .brand{font-size:17px;font-weight:800;line-height:1.1;color:#fff}.brand-copy .sub{margin-top:4px;font-size:13px;color:rgba(255,255,255,.76)}.icon-btn{width:34px;height:34px;border:0;background:transparent;color:#fff;border-radius:10px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:rgba(255,255,255,.14)}
.nav{display:flex;flex-direction:column;gap:8px;margin-top:14px}.nav a{display:flex;align-items:center;gap:14px;min-height:50px;padding:0 16px;border-radius:14px;color:var(--sidebar-text);font-size:15px;font-weight:600;text-decoration:none}.nav a:hover,.nav a.active{background:rgba(255,255,255,.18);color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.08)}.nav-icon{width:22px;display:grid;place-items:center;flex:none}.nav-label{white-space:nowrap}.nav-placeholder{opacity:1}
.side-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px}.theme-switch{display:flex;align-items:center;gap:14px;min-height:46px;padding:0 16px;border-radius:14px;border:0;background:rgba(255,255,255,.08);color:var(--sidebar-text);font-size:15px;font-weight:600;cursor:pointer;text-align:left}.theme-switch:hover{background:rgba(255,255,255,.16);color:#fff}.theme-icon{display:grid;place-items:center}.theme-icon-dark{display:none}html[data-theme="dark"] .theme-icon-light{display:none}html[data-theme="dark"] .theme-icon-dark{display:grid}
.sidebar-collapsed .brand-row{grid-template-columns:1fr;justify-items:center}.sidebar-collapsed .brand-copy,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .sidebar-toggle{margin-top:6px}.sidebar-collapsed .nav a,.sidebar-collapsed .theme-switch{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .theme-switch .nav-label{display:none}
.main{padding:0 24px 28px;background:var(--bg)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 8px 16px;background:var(--bg);border-bottom:1px solid var(--line)}.topbar-left{display:flex;align-items:center;gap:16px}.main-menu-btn{width:42px;height:42px;border:0;border-radius:12px;background:transparent;color:#22355d;display:grid;place-items:center;cursor:pointer}.main-menu-btn:hover{background:#eaf1f8}.topbar-copy h1{margin:0;font-size:24px;line-height:1.1;color:#162455}.topbar-copy p{margin:4px 0 0;color:#627596;font-size:14px}.topbar-right{display:flex;align-items:center;gap:14px}.searchbox{display:flex;align-items:center;gap:10px;min-width:370px;height:46px;padding:0 14px;border-radius:14px;border:1px solid #dce6f0;background:#fff;color:#7b8da9}.searchbox input{border:0;outline:none;background:transparent;width:100%;padding:0;color:#1b2e57;font-size:14px}.search-icon{display:grid;place-items:center;color:#6b7e9a}.admin-chip{display:flex;align-items:center;gap:12px}.admin-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#6d91df;color:#fff;font-weight:800}.admin-name{font-weight:600;color:#2c3e63}
.notice{display:flex;align-items:center;gap:8px;padding:13px 15px;border-radius:14px;margin:18px 0 0;background:var(--accent-soft);color:var(--accent);font-weight:700}.notice.success{background:var(--ok-soft);color:var(--ok)}.notice.error{background:var(--bad-soft);color:var(--bad)}
.content-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.content-layout.no-detail{grid-template-columns:1fr}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px}.table-card{padding:18px 18px 10px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.table-card-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.section-heading{display:flex;align-items:center;gap:10px}.section-heading strong{font-size:18px;color:#162455}.summary-pill{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:999px;background:#e8f2ff;color:#1976ea;font-weight:800;font-size:14px}.table-toolbar{display:flex;align-items:center;gap:10px}.inline-form{margin:0}.icon-square-btn{width:44px;height:44px;border-radius:14px;border:1px solid #dce6f0;background:#fff;color:#233b67;display:grid;place-items:center;cursor:pointer}.icon-square-btn:hover{background:#f6faff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:14px;padding:0 18px;height:44px;font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap;transition:transform .12s,background .15s,border-color .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:#1292e8;color:#fff}.btn.secondary{background:#f5f9fc;border-color:var(--line);color:#1f2f4d}.btn.danger{background:var(--bad-soft);color:var(--bad)}.btn.small{height:36px;padding:0 12px}.btn.full{width:100%;margin-top:14px}
.table-wrap{width:100%;overflow:auto}.table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px}.table th,.table td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.045em;color:#607390;font-weight:800;background:#f4f8fc}.table thead th:first-child{border-top-left-radius:12px}.table thead th:last-child{border-top-right-radius:12px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:#f6fbff}.selected-row{background:#eef7ff!important}.sort-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:800;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.sort-btn:hover{color:var(--accent)}.sort-indicator{display:inline-grid;place-items:center;width:14px;height:14px;color:var(--accent);opacity:.38}.sort-btn[data-direction="asc"] .sort-indicator,.sort-btn[data-direction="desc"] .sort-indicator{opacity:1}.sort-btn[data-direction="asc"] .sort-indicator::before{content:"↑"}.sort-btn[data-direction="desc"] .sort-indicator::before{content:"↓"}.sort-btn:not([data-direction="asc"]):not([data-direction="desc"]) .sort-indicator::before{content:"↕"}
.site-link{display:flex;align-items:center;gap:12px}.site-link strong{font-size:16px;color:#172653}.site-link small{display:block;font-size:14px;color:#6d7f9a;margin-top:2px}.site-dot{width:11px;height:11px;border-radius:50%;background:#c4cad3;box-shadow:0 0 0 4px rgba(148,163,184,.12)}.site-dot.online{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.site-dot.offline{background:#f44336;box-shadow:0 0 0 4px rgba(244,67,54,.12)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:800;background:var(--panel-soft);color:var(--muted);border:1px solid var(--line)}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge.offline{background:#ffeded;color:#dc4d4d;border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.sticky-card{position:sticky;top:96px}.site-detail-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.detail-icon,.page-icon,.metric-icon{display:grid;place-items:center;border-radius:14px;background:var(--accent-soft);color:var(--accent)}.detail-icon{width:38px;height:38px}.site-detail-head h2{margin:0;font-size:18px}.muted{color:var(--muted)}.status-online{color:var(--ok);font-weight:800}.status-offline{color:var(--muted);font-weight:800}.runtime-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}.runtime-status>div{display:flex;flex-direction:column;gap:3px}.runtime-status strong{font-size:13px}.runtime-status .badge{grid-column:1/-1;justify-self:start}.site-meta{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 0 4px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.site-meta span{display:flex;align-items:center;gap:5px}.sectiontitle{display:flex;align-items:center;gap:7px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850;margin:18px 0 5px}.config-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.switchrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.switchrow>label:first-child{font-weight:650}.toggle{position:relative;width:38px;height:22px;flex:none}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle span{position:absolute;inset:0;border-radius:99px;background:#c8ced8;transition:.18s;cursor:pointer}.toggle span:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.24);transition:.18s}.toggle input:checked+span{background:var(--accent)}.toggle input:checked+span:after{transform:translateX(16px)}.field{margin-top:10px}.field>label{display:block;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:5px}input[type=text],input[type=number],select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);color:var(--text);outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.metric-card{display:flex;align-items:center;gap:13px;min-height:100px}.metric-icon{width:42px;height:42px}.metric-card b{font-size:28px;display:block;line-height:1.15;margin-top:2px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.updates-card,.activity-card,.info-card{margin-top:16px}.updates-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.update-action-grid{display:grid;grid-template-columns:1fr auto 1fr auto;gap:18px;align-items:center;padding:16px 4px}.big-version{font-size:30px;font-weight:900;line-height:1.1;margin-top:4px}.update-arrow{color:var(--accent);display:grid;place-items:center}.update-buttons{display:flex;justify-content:flex-end}.update-changelog{border-top:1px solid var(--line);padding:14px 4px 4px}.rollback-panel{display:flex;align-items:flex-end;gap:10px}.rollback-panel .field{flex:1;margin:0}.version-history{display:flex;flex-direction:column}.version-row{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.version-row:last-child{border-bottom:0}.version-number{font-weight:900;color:var(--accent)}.events{max-height:320px;overflow:auto}.event{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.event:last-child{border-bottom:0}.event strong,.event .muted{display:block}.event-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none}.empty-state{padding:22px!important;text-align:center;color:var(--muted)}
@media(max-width:1280px){.content-layout{grid-template-columns:1fr}.config-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1080px){.searchbox{min-width:250px}.topbar{flex-direction:column;align-items:flex-start}.topbar-right{width:100%;justify-content:space-between}.metrics-grid{grid-template-columns:repeat(2,1fr)}.updates-bottom-grid{grid-template-columns:1fr}.update-action-grid{grid-template-columns:1fr;gap:10px}.update-arrow{transform:rotate(90deg)}.update-buttons{justify-content:flex-start}}
@media(max-width:760px){.app,.sidebar-collapsed{grid-template-columns:84px minmax(0,1fr)}.main{padding:0 12px 20px}.topbar{padding:14px 2px 14px}.topbar-right{flex-direction:column;align-items:stretch}.searchbox{min-width:0;width:100%}.admin-chip{align-self:flex-end}.table-card-heading{align-items:flex-start}.table-toolbar{width:100%;justify-content:flex-start;flex-wrap:wrap}.toolbar-primary{width:100%;justify-content:center}.metrics-grid{grid-template-columns:1fr 1fr}.config-toggle-grid{grid-template-columns:1fr}.sticky-card{position:static}}
@media(max-width:520px){.metrics-grid{grid-template-columns:1fr}.main{padding:0 10px 16px}}


/* 1.0.22 refinamientos solicitados */
.brand-row{grid-template-columns:46px minmax(0,1fr)}
.topbar-page-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}
html[data-theme="dark"] .topbar{background:var(--bg);border-bottom-color:var(--line)}
html[data-theme="dark"] .topbar-copy h1,html[data-theme="dark"] .admin-name,html[data-theme="dark"] .section-heading strong,html[data-theme="dark"] .site-link strong{color:var(--text)}
html[data-theme="dark"] .topbar-copy p,html[data-theme="dark"] .site-link small{color:var(--muted)}
html[data-theme="dark"] .searchbox{background:var(--panel);border-color:var(--line);color:var(--muted)}
html[data-theme="dark"] .searchbox input{color:var(--text)}
html[data-theme="dark"] .table thead th{background:var(--panel-soft);color:var(--muted)}
html[data-theme="dark"] .table tbody tr:hover{background:var(--panel-soft)}
html[data-theme="dark"] .selected-row{background:var(--accent-soft)!important}
.sidebar-collapsed .brand-row{grid-template-columns:1fr}
@media(max-width:760px){.brand-row{grid-template-columns:46px minmax(0,1fr)}.topbar-page-icon{width:40px;height:40px}}


/* 1.0.23 — sidebar coherente con tema claro/oscuro */
html[data-theme="light"] .side{
    background:var(--panel);
    color:var(--text);
    border-right:1px solid var(--line);
}
html[data-theme="light"] .brand-mark{
    background:var(--accent-soft);
    color:var(--accent);
    border-color:color-mix(in srgb,var(--accent) 26%,var(--line));
    box-shadow:none;
}
html[data-theme="light"] .brand-trigger,
html[data-theme="light"] .brand-trigger .icon{
    color:var(--accent)!important;
    stroke:var(--accent)!important;
}
html[data-theme="light"] .brand-trigger:hover{
    background:color-mix(in srgb,var(--accent-soft) 82%,#fff);
    border-color:color-mix(in srgb,var(--accent) 38%,var(--line));
    box-shadow:0 8px 18px rgba(18,146,232,.12);
}
html[data-theme="light"] .brand,
html[data-theme="light"] .brand-copy .brand{color:var(--text)}
html[data-theme="light"] .sub,
html[data-theme="light"] .brand-copy .sub{color:var(--muted)}
html[data-theme="light"] .nav a,
html[data-theme="light"] .theme-switch{color:#40536f}
html[data-theme="light"] .nav a:hover,
html[data-theme="light"] .theme-switch:hover{
    background:var(--panel-soft);
    color:var(--text);
}
html[data-theme="light"] .nav a.active{
    background:var(--accent-soft);
    color:var(--accent);
    box-shadow:none;
}
html[data-theme="light"] .side-footer{
    border-top:1px solid var(--line);
}
html[data-theme="light"] .theme-switch{
    background:transparent;
    border:1px solid transparent;
}
html[data-theme="light"] .theme-switch:hover{
    border-color:var(--line);
}

html[data-theme="dark"] .side{
    background:var(--bg);
    color:var(--text);
    border-right:1px solid var(--line);
}
html[data-theme="dark"] .brand-mark{
    background:var(--panel-soft);
    color:var(--accent);
    border-color:var(--line);
    box-shadow:none;
}
html[data-theme="dark"] .brand-trigger,
html[data-theme="dark"] .brand-trigger .icon{
    color:var(--accent)!important;
    stroke:var(--accent)!important;
}
html[data-theme="dark"] .brand-trigger:hover{
    background:var(--panel);
    border-color:color-mix(in srgb,var(--accent) 36%,var(--line));
    box-shadow:none;
}
html[data-theme="dark"] .brand,
html[data-theme="dark"] .brand-copy .brand{color:var(--text)}
html[data-theme="dark"] .sub,
html[data-theme="dark"] .brand-copy .sub{color:var(--muted)}
html[data-theme="dark"] .nav a,
html[data-theme="dark"] .theme-switch{color:var(--muted)}
html[data-theme="dark"] .nav a:hover,
html[data-theme="dark"] .theme-switch:hover{
    background:var(--panel-soft);
    color:var(--text);
}
html[data-theme="dark"] .nav a.active{
    background:var(--accent-soft);
    color:var(--accent);
    box-shadow:none;
}
html[data-theme="dark"] .side-footer{
    border-top:1px solid var(--line);
}
html[data-theme="dark"] .theme-switch{
    background:transparent;
    border:1px solid transparent;
}
html[data-theme="dark"] .theme-switch:hover{
    border-color:var(--line);
}


/* 1.0.24 — configuración global por defecto */
.settings-page{max-width:1040px;margin:18px auto 0}.global-master-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px}.global-master-copy{display:flex;flex-direction:column;gap:7px;min-width:0}.global-master-copy .section-heading strong{font-size:18px}.toggle-lg{width:46px;height:26px}.toggle-lg span:after{width:20px;height:20px}.toggle-lg input:checked+span:after{transform:translateX(20px)}.global-options-card{margin-top:16px;transition:opacity .18s ease,filter .18s ease}.global-options-disabled{opacity:.58}.global-options-disabled [data-global-option="1"]{pointer-events:none}.global-options-disabled .toggle span,.global-options-disabled input[data-global-option="1"]{cursor:not-allowed}.global-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.delegate-excluded-box{padding:8px 12px 12px;border:1px dashed var(--line);border-radius:14px;background:var(--panel-soft)}.delegate-excluded-box .switchrow{opacity:.6}.delegate-excluded-box select{opacity:.65;cursor:not-allowed}.delegate-note{font-size:12px;margin-top:8px}.global-lock-note{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.siteConfigForm input:disabled,.siteConfigForm select:disabled{cursor:not-allowed}.switchrow input:disabled+span{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.settings-page{margin-top:14px}.global-master-card{align-items:flex-start}.global-status-row{align-items:flex-start;flex-direction:column}}

/* biPANEL Central — adaptación visual sin tocar la lógica del API */
.app{background:var(--bg)}
@media (min-width:761px){.app:not(.sidebar-collapsed){grid-template-columns:260px minmax(0,1fr)}}
.brand-row .brand{font-size:16px;letter-spacing:-.025em}
html[data-theme="dark"] .btn.secondary{background:var(--panel-soft);color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .btn.danger{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.bp-layout { display:grid; grid-template-columns: minmax(0, 1fr); gap:16px; margin-top:16px }
.bp-intro { display:flex; justify-content:space-between; gap:12px; align-items:start }
.bp-badge-row { display:flex; flex-wrap:wrap; gap:8px }
.bp-actions { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-top:16px }
.bp-muted-note { background:var(--panel-soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--muted);font-size:12px;line-height:1.5 }
.bp-upload { display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px;border:1px dashed var(--line);border-radius:13px;background:var(--panel-soft) }
.bp-upload input[type=file] { flex:1;min-width:230px;max-width:100%;font:inherit;color:var(--text) }
.bp-upload input[type=file]::file-selector-button { border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:var(--panel);color:var(--text);cursor:pointer;margin-right:12px;font-weight:700 }
.bp-form-row { display:flex;align-items:center;gap:10px;flex-wrap:wrap }
.bp-form-row select { width:auto;min-width:160px;max-width:100% }
.bp-selectall { display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text) }
.bp-sitecheck {width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.bp-sitecheck:disabled {cursor:not-allowed}
.bp-metric-name {font-size:12px;color:var(--muted)}
.bp-card-head {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.bp-card-head .section-heading {font-size:15px}
.bp-capsule {background:var(--accent-soft);border-radius:99px;color:var(--accent);font-size:11px;font-weight:800;padding:5px 10px}
.bp-toolbar {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bp-toolbar .field {margin:0}
.bp-standalone {max-width:860px}
.bp-version-num {font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.bp-site-name strong {display:block;color:var(--text)}
.bp-site-name small {display:block;font-size:11px;color:var(--muted)}
.bp-mini-meta {color:var(--muted);font-size:11px}
.bp-empty {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:125px;color:var(--muted);text-align:center}
.bp-empty strong {font-size:13px;color:var(--text)}
.bp-warning {border:1px solid color-mix(in srgb,var(--warn) 30%,var(--line));background:var(--warn-soft);color:var(--warn);border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.55}
.bp-state-pill {font-size:11px;border-radius:99px;padding:4px 9px;font-weight:800;display:inline-flex;align-items:center;gap:5px;background:var(--panel-soft);color:var(--muted)}
.bp-state-pill.good {background:var(--ok-soft);color:var(--ok)}
.bp-state-pill.pending {background:var(--warn-soft);color:var(--warn)}
.bp-section-nav {display:none}
.bp-inline-form {display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.bp-action-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.bp-action-grid .btn {width:100%;white-space:normal;min-height:43px}
.bp-table th:first-child,.bp-table td:first-child {width:42px}
.bp-table th:last-child {min-width:115px}
.bp-table {min-width:740px}
.bp-table.small {min-width:560px}
.bp-footer {color:var(--muted);font-size:11px;text-align:center;margin:25px 0 0}
.bp-field-label {display:block;color:var(--muted);font-size:12px;font-weight:700;margin:0 0 6px}
.bp-version-select {max-width:190px}
.bp-page-content {animation:bpRise .15s ease-out}
@keyframes bpRise {from{opacity:.8;transform:translateY(3px)} to{opacity:1;transform:translateY(0)}}
.bp-hint {font-size:12px;color:var(--muted)}
.bp-nav-help {font-size:11px;padding:4px 12px;color:var(--sidebar-text);opacity:.75}
html[data-theme="light"] .bp-nav-help {color:var(--muted)}
html[data-theme="dark"] .bp-nav-help {color:var(--muted)}
@media(max-width:1100px) {.bp-action-grid{grid-template-columns:1fr}.bp-intro{flex-wrap:wrap}}
@media(max-width:760px) {.bp-form-row{align-items:stretch}.bp-form-row select{min-width:0;flex:1}.bp-actions>.btn{flex:1}.bp-upload{align-items:stretch}.bp-upload input[type=file]{min-width:0}.bp-upload .btn{width:100%}.bp-table{min-width:660px}.bp-card-head{align-items:start}.bp-action-grid{grid-template-columns:1fr}}

.bpc-wakeup{cursor:pointer;display:inline-flex;align-items:center;gap:5px;border:0;font:inherit}.bpc-wakeup:disabled{opacity:.65;cursor:wait}.bpc-wakeup svg{width:13px;height:13px}
/* Diagnóstico flotante — coherente con el modo oscuro y la paleta de CR Runtime. */
.bpc-settings-form{padding:16px 22px}
.bpc-debug-switch{display:flex;gap:20px;align-items:center;justify-content:space-between;cursor:pointer}
.bpc-debug-switch>span:first-child{flex:1;display:grid;gap:5px}
.bpc-debug-switch strong{font-size:14px;color:var(--text)}
.bpc-debug-switch small{color:var(--muted);line-height:1.5;font-size:12px}
.bpc-debug-switch input{appearance:none;width:48px;height:26px;border-radius:30px;background:var(--line);position:relative;flex:none;cursor:pointer;transition:background .2s}
.bpc-debug-switch input:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 1px 4px #0003;transition:transform .2s}
.bpc-debug-switch input:checked{background:var(--accent)}
.bpc-debug-switch input:checked:before{transform:translateX(22px)}
.bpc-debug-switch .bpc-switch-track{display:none}
.bpc-debug-requirements{padding:12px 22px;margin:0 18px 12px;border-radius:9px;background:var(--panel-soft);color:var(--muted);font-size:12px}
.bpc-debug-panel{position:fixed;z-index:99999;right:17px;bottom:15px;width:min(485px,calc(100vw - 25px));height:390px;max-height:78vh;border:1px solid #313957;border-radius:14px;background:#101426;color:#edf2ff;box-shadow:0 18px 55px #0006;display:flex;flex-direction:column;overflow:hidden;font:12px/1.45 ui-monospace,Consolas,monospace}
.bpc-debug-head{padding:10px 12px;background:#1a2040;border-bottom:1px solid #34395b;display:flex;gap:8px;justify-content:space-between;align-items:center}
.bpc-debug-title{display:flex;align-items:center;gap:6px;font-weight:700;font:700 12px system-ui;color:#f3f5ff}
.bpc-debug-controls{display:flex;gap:4px;align-items:center}
.bpc-debug-controls button{background:#222b4f;color:#f0f4ff;border:1px solid #38456d;border-radius:7px;font:600 11px system-ui;min-height:28px;padding:3px 7px;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.bpc-debug-controls button:hover{background:#305ddf;color:#fff}
.bpc-debug-lines{flex:1;min-height:0;overflow:auto;padding:5px 10px;background:#101426}
.bpc-debug-row{display:flex;gap:7px;align-items:flex-start;padding:7px 2px;border-bottom:1px solid #222a47}
.bpc-debug-time{flex:0 0 65px;color:#97a5c4;font-size:10px}
.bpc-debug-tag{flex:0 0 44px;max-width:44px;overflow:hidden;text-align:center;background:#315cdc;color:white;border-radius:5px;font-weight:bold;font-size:10px;padding:2px}
.bpc-debug-tag[data-kind="ERROR"]{background:#c33d57}.bpc-debug-tag[data-kind="WARN"]{background:#a77312}.bpc-debug-tag[data-kind="OK"]{background:#108567}
.bpc-debug-text{overflow-wrap:anywhere;color:#e4e9fa;flex:1;white-space:pre-wrap}
.bpc-debug-foot{padding:7px 12px;border-top:1px solid #2c3353;background:#171c35;display:flex;justify-content:space-between;gap:8px;color:#aab7d0;font:11px system-ui}
.bpc-debug-panel.minimized{height:auto}.bpc-debug-panel.minimized .bpc-debug-lines,.bpc-debug-panel.minimized .bpc-debug-foot{display:none}
@media(max-width:600px){.bpc-debug-panel{height:48vh;bottom:8px;right:8px;width:calc(100vw - 16px)}.bpc-debug-controls button{font-size:10px;padding:3px 5px}.bpc-debug-title{font-size:11px}.bpc-debug-time{flex-basis:56px}}
