: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:7px;
}
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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;background:#c8ced8;transition:.18s;cursor:pointer}.toggle span:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px}.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:7px;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:7px}
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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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:7px}.table thead th:last-child{border-top-right-radius:7px}.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:7px;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:7px;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:7px;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:7px;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:7px;background:#c8ced8;transition:.18s;cursor:pointer}.toggle span:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:7px;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:7px;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:7px;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:7px;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:7px;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:7px;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}}


/* 1.0.30 — acceso mediante securekey.json */
input[type=password]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--text);outline:none}
input[type=password]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.admin-chip{gap:8px}.logout-inline{display:flex;margin:0}.logout-link{border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:750;cursor:pointer;padding:4px 2px}.logout-link:hover{color:var(--accent)}
.security-access-card{margin-top:16px}.password-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.password-actions{display:flex;justify-content:flex-end;margin-top:14px}
.login-body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,410px);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:30px;box-shadow:0 24px 60px rgba(15,23,42,.12)}.login-brand-mark{width:50px;height:50px;display:grid;place-items:center;margin:0 auto 14px;border-radius:7px;background:var(--accent-soft);color:var(--accent)}.login-heading{text-align:center;margin-bottom:22px}.login-heading h1{margin:0;font-size:25px}.login-heading p{margin:6px 0 0;color:var(--muted);font-size:13px}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:6px;font-size:12px;font-weight:750;color:var(--muted)}.login-form input{font-size:14px}.login-submit{width:100%;justify-content:center;margin-top:4px}.login-error{padding:10px 12px;border-radius:7px;margin-bottom:14px;background:color-mix(in srgb,#e5484d 12%,transparent);color:#c93439;border:1px solid color-mix(in srgb,#e5484d 25%,var(--line));font-size:12px;font-weight:700}
@media(max-width:760px){.password-grid{grid-template-columns:1fr}.password-actions .btn{width:100%;justify-content:center}.admin-chip{align-self:flex-end}}

/* 1.0.31 seguridad de acceso */
.security-separator{height:1px;background:var(--line);margin:22px 0}
.recaptcha-config-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.recaptcha-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.recaptcha-config-form input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--text);outline:none;font-size:14px}
.recaptcha-config-form input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.recaptcha-login{display:flex;justify-content:center;min-height:78px;overflow:hidden}
@media(max-width:760px){.recaptcha-config-grid{grid-template-columns:1fr}}
@media(max-width:370px){.recaptcha-login{justify-content:flex-start}.recaptcha-login .g-recaptcha{transform:scale(.88);transform-origin:left top;width:268px}}


/* 1.0.32 — iconografía de usuario y salida */
.admin-avatar{
    width:38px;height:38px;border-radius:7px;display:grid;place-items:center;
    background:var(--accent-soft);color:var(--accent);font-weight:normal;
    border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));
}
.admin-avatar .icon{display:block}
.logout-link{
    display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;
    color:var(--muted);font:inherit;font-size:12px;font-weight:750;cursor:pointer;
    padding:5px 4px;border-radius:7px;transition:color .15s ease,background .15s ease;
}
.logout-link .icon{display:block}
.logout-link:hover{color:var(--accent);background:var(--accent-soft)}
html[data-theme="dark"] .admin-avatar{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}


/* 1.0.33 — cabecera de usuario compacta */
.admin-chip{display:flex;align-items:center;gap:7px}
.admin-user-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);line-height:1}
.admin-user-icon .icon{display:block}
.admin-welcome{font-size:14px;line-height:1;color:var(--muted);white-space:nowrap}
.admin-welcome strong{color:var(--text);font-weight:750}
.logout-inline{display:flex;margin:0 0 0 5px}
.logout-link{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:750;cursor:pointer;padding:4px 2px;border-radius:7px}
.logout-link .icon{display:block}
.logout-link:hover{color:var(--accent);background:transparent}
html[data-theme="dark"] .admin-user-icon,html[data-theme="dark"] .admin-welcome{color:var(--muted)}
html[data-theme="dark"] .admin-welcome strong{color:var(--text)}


/* 1.0.34 — cache de actualización, radios 7px y cabecera de usuario */
.admin-chip{display:flex;align-items:center;gap:7px}
.admin-user-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);line-height:1}
.admin-user-icon .icon{display:block;width:16px;height:16px}
.admin-welcome{font-size:14px;line-height:1.2;color:var(--muted);white-space:nowrap;font-weight:500}
.admin-welcome strong{color:var(--text);font-size:14px;font-weight:750}
.logout-inline{display:flex;margin:0 0 0 24px}
.logout-link{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;line-height:1.2;font-weight:700;cursor:pointer;padding:4px 2px;border-radius:7px}
.logout-link .icon{display:block;width:16px;height:16px;color:var(--muted)}
.logout-link:hover{color:var(--accent);background:transparent}
.logout-link:hover .icon{color:var(--accent)}
html[data-theme="dark"] .logout-link{color:var(--text)}
@media(max-width:760px){.logout-inline{margin-left:18px}}
