/* 页面显示偏好 */
:root {
  --utm-text-delta: 0px;
  --utm-area-text-delta: 0px;
  --utm-icon-scale: 1;
  --utm-drone-icon-scale: 1;
  --utm-pilot-icon-scale: 1;
  --utm-airport-icon-scale: 1;
  --utm-detector-icon-scale: 1;
  --utm-risk-badge-font-size: 9px;
  --utm-risk-badge-min-width: 24px;
  --utm-risk-badge-height: 19px;
  --utm-risk-badge-padding: 5px;
  --utm-risk-badge-radius: 10px;
  --utm-map-marker-zoom-scale: 1;
}
html[data-text-size="small"] { --utm-text-delta: -1px; }
html[data-text-size="large"] { --utm-text-delta: 2px; }
html[data-icon-size="small"] { --utm-icon-scale: .82; }
html[data-icon-size="large"] { --utm-icon-scale: 1.2; }
html[data-drone-icon-size="small"] { --utm-drone-icon-scale: .68; }
html[data-drone-icon-size="medium"] { --utm-drone-icon-scale: .84; }
html[data-drone-icon-size="large"] { --utm-drone-icon-scale: 1; }
html[data-pilot-icon-size="small"] { --utm-pilot-icon-scale: .68; }
html[data-pilot-icon-size="medium"] { --utm-pilot-icon-scale: .84; }
html[data-pilot-icon-size="large"] { --utm-pilot-icon-scale: 1; }
html[data-airport-icon-size="small"] { --utm-airport-icon-scale: .68; }
html[data-airport-icon-size="medium"] { --utm-airport-icon-scale: .84; }
html[data-airport-icon-size="large"] { --utm-airport-icon-scale: 1; }
html[data-detector-icon-size="small"] { --utm-detector-icon-scale: .68; }
html[data-detector-icon-size="medium"] { --utm-detector-icon-scale: .84; }
html[data-detector-icon-size="large"] { --utm-detector-icon-scale: 1; }
html[data-area-text-size="small"] :is(#sidebar, [class*="card"], [class*="panel"]:not(.tab-panel), [class*="stats"], .data-table, .filter-bar, .management-toolbar) { --utm-area-text-delta: -1px; }
html[data-area-text-size="large"] :is(#sidebar, [class*="card"], [class*="panel"]:not(.tab-panel), [class*="stats"], .data-table, .filter-bar, .management-toolbar) { --utm-area-text-delta: 1.5px; }
.nav-icon,
.page-setting-leading-icon {
  transform: scale(var(--utm-icon-scale));
  transform-origin: center;
  transition: transform .18s ease;
}
.dashboard-uav-icon,
.playback-drone-marker {
  transform: scale(var(--utm-drone-icon-scale)) scale(var(--utm-map-marker-zoom-scale, 1));
  transform-origin: center;
  transition: transform .18s ease;
}
.remote-controller-icon {
  transform: scale(var(--utm-pilot-icon-scale)) scale(var(--utm-map-marker-zoom-scale, 1));
  transform-origin: center;
  transition: transform .18s ease;
}
.airport-station-marker {
  transform: scale(var(--utm-airport-icon-scale)) scale(var(--utm-map-marker-zoom-scale, 1));
  transform-origin: center;
  transition: transform .18s ease;
}
.ccs-site-marker {
  transform: scale(var(--utm-detector-icon-scale)) scale(var(--utm-map-marker-zoom-scale, 1));
  transform-origin: center;
  transition: transform .18s ease;
}

#tab-page-settings { flex-direction:column; overflow-y:auto; background:#0f172a; }
.page-settings-header {
  min-height:76px; padding:18px 24px; border-bottom:1px solid #273244;
  background:#111827; display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.page-settings-header h2 { font-size:calc(18px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); color:#f8fafc; font-weight:650; }
.page-settings-save-status { min-height:18px; margin-top:6px; color:#86efac; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.page-settings-save-status[data-state="loading"] { color:#94a3b8; }
.page-settings-save-status[data-state="saving"] { color:#facc15; }
.page-settings-save-status[data-state="error"] { color:#fca5a5; }
.page-settings-reset {
  height:36px; padding:0 14px; border:1px solid #475569; border-radius:6px;
  background:#172033; color:#e2e8f0; display:inline-flex; align-items:center; gap:7px;
  font-size:calc(13px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:600; cursor:pointer;
}
.page-settings-reset:hover { border-color:#94a3b8; background:#1e293b; }
.account-security-card {
  width:min(1040px,calc(100% - 40px)); margin:28px auto 0; padding:22px; box-sizing:border-box;
  border:1px solid #2b4b68; border-radius:8px; background:linear-gradient(135deg,rgba(14,39,62,.92),rgba(17,24,39,.98));
  box-shadow:0 14px 36px rgba(2,8,23,.18);
}
.account-security-card.required { border-color:#a16207; box-shadow:0 0 0 1px rgba(245,158,11,.12),0 14px 36px rgba(2,8,23,.2); }
.account-security-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.account-security-title { display:flex; align-items:center; gap:12px; }
.account-security-icon { width:38px; height:38px; display:grid; place-items:center; flex:0 0 38px; border:1px solid #38658a; border-radius:8px; background:#102a43; color:#7dd3fc; font-size:18px; }
.account-security-title h3 { margin:0; color:#f8fafc; font-size:16px; }
.account-security-title p { margin:5px 0 0; color:#89a0b5; font-size:12px; }
.account-password-state { padding:5px 9px; border:1px solid #275f4c; border-radius:999px; background:rgba(6,78,59,.2); color:#86efac; font-size:11px; white-space:nowrap; }
.account-password-state.required { border-color:#92400e; background:rgba(146,64,14,.18); color:#fbbf24; }
.account-profile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.account-profile-item { min-width:0; padding:12px 14px; border:1px solid #293b51; border-radius:6px; background:rgba(5,15,27,.42); }
.account-profile-item span,.account-profile-item strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-profile-item span { margin-bottom:5px; color:#678096; font-size:10px; letter-spacing:.08em; }
.account-profile-item strong { color:#dbeafe; font-size:13px; font-weight:600; }
.account-password-notice { margin:0 0 16px; padding:11px 13px; border-left:3px solid #f59e0b; background:rgba(146,64,14,.14); color:#fde68a; font-size:12px; line-height:1.55; }
.account-password-notice[hidden] { display:none; }
.account-password-form { border-top:1px solid #26384c; padding-top:18px; }
.account-password-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.account-password-field { display:grid; gap:7px; color:#b7c7d5; font-size:12px; }
.account-password-field input { width:100%; height:44px; padding:0 11px; box-sizing:border-box; border:1px solid #3a4c62; border-radius:6px; outline:0; color:#f8fafc; background:#091421; }
.account-password-field input:focus { border-color:#38bdf8; box-shadow:0 0 0 3px rgba(56,189,248,.12); }
.account-password-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:22px; margin-top:10px; color:#70879b; font-size:11px; }
.account-password-show { display:inline-flex; align-items:center; gap:7px; cursor:pointer; }
.account-password-show input { accent-color:#0284c7; }
.account-password-strength { display:inline-flex; align-items:center; gap:8px; }
.account-password-strength::before { content:""; width:56px; height:4px; border-radius:999px; background:#334155; box-shadow:inset 0 0 0 1px rgba(255,255,255,.03); }
.account-password-strength[data-level="weak"] { color:#fca5a5; }
.account-password-strength[data-level="weak"]::before { background:linear-gradient(90deg,#ef4444 35%,#334155 35%); }
.account-password-strength[data-level="medium"] { color:#fde68a; }
.account-password-strength[data-level="medium"]::before { background:linear-gradient(90deg,#f59e0b 68%,#334155 68%); }
.account-password-strength[data-level="strong"] { color:#86efac; }
.account-password-strength[data-level="strong"]::before { background:#22c55e; }
.account-password-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:15px; }
.account-password-message { min-height:18px; flex:1; color:#7dd3fc; font-size:12px; line-height:1.5; }
.account-password-message.error { color:#fca5a5; }
.account-password-message.success { color:#86efac; }
.account-password-submit { min-width:132px; height:44px; padding:0 18px; border:1px solid #1688c4; border-radius:6px; background:#087eaf; color:#fff; font-weight:700; cursor:pointer; }
.account-password-submit:hover { background:#0891b2; }
.account-password-submit:disabled { opacity:.6; cursor:wait; }
.page-settings-body {
  width:min(1040px,calc(100% - 40px)); margin:18px auto 28px; border:1px solid #2b384c;
  border-radius:6px; background:#111827; overflow:hidden;
}
.page-setting-row {
  min-height:84px; padding:18px 20px; display:grid; grid-template-columns:minmax(260px,.9fr) minmax(440px,1.3fr);
  align-items:center; gap:24px; border-bottom:1px solid #273244;
}
.page-setting-row:last-child { border-bottom:0; }
.page-setting-name { display:flex; align-items:center; gap:12px; color:#e5e7eb; font-size:calc(14px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.page-setting-leading-icon {
  width:34px; height:34px; flex:0 0 34px; border:1px solid #3b4a61; border-radius:6px;
  display:inline-flex; align-items:center; justify-content:center; background:#172033; color:#7dd3fc;
  font-size:16px; font-weight:700;
}
.page-setting-slider-control { display:grid; grid-template-columns:minmax(180px,1fr) 142px; align-items:center; gap:16px; }
.page-setting-slider-control input[type="range"] { width:100%; height:6px; margin:0; accent-color:#22d3ee; cursor:pointer; }
.page-setting-slider-control output { min-width:142px; padding:7px 10px; border:1px solid #3a475b; border-radius:6px; background:#0b1220; color:#94a3b8; text-align:center; font-size:calc(12px + var(--utm-text-delta, 0px)); white-space:nowrap; }
.page-setting-slider-control output strong { color:#67e8f9; font-size:calc(14px + var(--utm-text-delta, 0px)); }
.page-setting-help { display:block; margin-top:5px; color:#64748b; font-size:calc(11px + var(--utm-text-delta, 0px)); }
.page-setting-slider-control input[type="range"]:focus-visible { outline:2px solid #67e8f9; outline-offset:5px; border-radius:3px; }
@media(max-width:900px) {
  .page-settings-header { align-items:flex-start; }
  .account-security-card,.page-settings-body { width:calc(100% - 24px); }
  .account-security-card { margin-top:16px; padding:18px; }
  .page-settings-body { margin:14px auto 16px; }
  .account-profile-grid,.account-password-grid { grid-template-columns:1fr; }
  .account-security-head,.account-password-actions { align-items:stretch; flex-direction:column; }
  .account-password-submit { width:100%; }
  .page-setting-row { grid-template-columns:1fr; gap:14px; }
  .page-setting-slider-control { grid-template-columns:1fr; }
  .page-setting-slider-control output { width:100%; box-sizing:border-box; }
}

.auth-login-open,.auth-login-open body { overflow:hidden; }
.auth-login-overlay {
  --auth-ink:#050b12; --auth-panel:rgba(9,21,34,.93); --auth-blue:#2278ff; --auth-blue-2:#39a4ff;
  --auth-cyan:#57d7ff; --auth-white:#f4f8fc; --auth-muted:#8fa6ba; --auth-success:#53e6b3;
  position:fixed; inset:0; z-index:30000; display:none; min-width:320px; min-height:100dvh; overflow:auto;
  color:var(--auth-white); background:
    radial-gradient(circle at 72% 38%,rgba(28,112,207,.16),transparent 27%),
    radial-gradient(circle at 18% 16%,rgba(31,97,155,.12),transparent 25%),
    linear-gradient(128deg,#050a10 0%,#08111b 53%,#06101a 100%);
  font-family:"Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif; isolation:isolate;
}
.auth-login-overlay.visible { display:block; }
.auth-login-overlay::before {
  content:""; position:absolute; z-index:-5; inset:0; opacity:.22; pointer-events:none;
  background-image:linear-gradient(rgba(113,159,196,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(113,159,196,.08) 1px,transparent 1px);
  background-size:72px 72px; -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.2) 36%,#000 100%); mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.2) 36%,#000 100%);
}
.auth-login-overlay button,.auth-login-overlay input { font:inherit; }
.auth-login-scanline { position:absolute; z-index:-4; inset:0; pointer-events:none; opacity:.35; background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(155,205,242,.012) 4px); }
.auth-login-top-rail { position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--auth-blue) 0 11%,transparent 11% 68%,rgba(82,216,255,.75) 68% 78%,transparent 78%); }
.auth-login-corner { position:absolute; z-index:4; width:23px; height:23px; opacity:.36; pointer-events:none; }
.auth-login-corner.tl { top:30px; left:30px; border-top:1px solid #5da9dc; border-left:1px solid #5da9dc; }
.auth-login-corner.br { right:30px; bottom:30px; border-right:1px solid #5da9dc; border-bottom:1px solid #5da9dc; }
.auth-login-top-meta { position:absolute; z-index:8; top:34px; right:clamp(30px,5vw,82px); display:flex; align-items:center; gap:22px; color:#88a0b4; font-size:12px; letter-spacing:.12em; }
.auth-login-classification { display:inline-flex; align-items:center; gap:8px; color:#bdcbd8; }
.auth-login-classification::before { content:""; width:6px; height:6px; border:1px solid var(--auth-blue-2); transform:rotate(45deg); }
.auth-login-shell { position:relative; z-index:5; width:min(1440px,calc(100% - 96px)); min-height:100dvh; margin:0 auto; display:grid; grid-template-columns:minmax(500px,1fr) 450px; align-items:center; gap:clamp(70px,9vw,150px); padding:92px 0 104px; box-sizing:border-box; }
.auth-login-identity { position:relative; align-self:center; max-width:650px; transform:translateY(-18px); }
.auth-login-brand { display:flex; align-items:center; gap:20px; }
.auth-login-logo { position:relative; width:64px; height:64px; flex:0 0 64px; border:1px solid rgba(79,168,255,.65); background:rgba(20,92,188,.16); box-shadow:inset 0 0 24px rgba(31,116,255,.12),0 0 40px rgba(29,116,255,.08); }
.auth-login-logo::before,.auth-login-logo::after { content:""; position:absolute; }
.auth-login-logo::before { inset:11px; border:2px solid #76c9ff; border-left-color:transparent; border-bottom-color:transparent; transform:rotate(45deg); }
.auth-login-logo::after { width:8px; height:8px; top:27px; left:27px; background:#fff; box-shadow:0 0 18px var(--auth-cyan); transform:rotate(45deg); }
.auth-login-brand-copy small { display:block; margin-bottom:5px; color:var(--auth-blue-2); font-size:11px; font-weight:700; letter-spacing:.3em; }
.auth-login-brand-copy strong { display:block; color:#f5f9fd; font-size:26px; font-weight:600; letter-spacing:.06em; }
.auth-login-kicker { display:flex; align-items:center; gap:12px; margin:76px 0 17px; color:#68c5ff; font:12px Consolas,"SFMono-Regular",monospace; letter-spacing:.2em; text-transform:uppercase; }
.auth-login-kicker::before { content:""; width:34px; height:1px; background:var(--auth-blue-2); box-shadow:0 0 10px rgba(57,164,255,.7); }
.auth-login-hero-title { margin:0; max-width:none; color:#f4f8fc; font-size:clamp(40px,4vw,64px); font-weight:500; line-height:1.18; letter-spacing:.035em; }
.auth-login-hero-title-cn { display:block; white-space:nowrap; }
.auth-login-hero-title-en { display:block; margin-top:12px; color:#8aa3b8; font:400 15px Arial,sans-serif; letter-spacing:.28em; text-transform:uppercase; }
.auth-login-note { max-width:540px; margin:30px 0 0; color:#92a7b9; font-size:14px; line-height:1.9; letter-spacing:.08em; }
.auth-login-status-board { display:flex; flex-wrap:wrap; gap:1px; width:fit-content; margin-top:44px; border:1px solid rgba(134,177,211,.15); background:rgba(7,15,24,.72); }
.auth-login-status-item { min-width:150px; padding:15px 18px; border-right:1px solid rgba(134,177,211,.13); }
.auth-login-status-item:last-child { border-right:0; }
.auth-login-status-item span { display:block; margin-bottom:7px; color:#607b91; font-size:10px; letter-spacing:.2em; }
.auth-login-status-item strong { display:flex; align-items:center; gap:8px; color:#cedbe6; font-size:12px; font-weight:500; letter-spacing:.08em; }
.auth-login-live-dot { width:6px; height:6px; border-radius:50%; background:var(--auth-success); box-shadow:0 0 12px rgba(83,230,179,.75); animation:authLoginPulse 2.2s ease-in-out infinite; }
.auth-login-card-wrap { position:relative; justify-self:end; width:450px; }
.auth-login-card-wrap::before { content:"AUTH NODE / 01"; position:absolute; top:-28px; right:0; color:#4c6f8c; font:10px Consolas,monospace; letter-spacing:.18em; }
.auth-login-card { position:relative; width:100%; padding:0; overflow:visible; border:1px solid rgba(123,175,216,.28); border-radius:0; color:var(--auth-white); background:linear-gradient(115deg,rgba(255,255,255,.035),transparent 32%),var(--auth-panel); box-shadow:0 30px 90px rgba(0,0,0,.42),0 0 0 8px rgba(5,13,22,.38); backdrop-filter:blur(18px); }
.auth-login-card::before,.auth-login-card::after { content:""; position:absolute; pointer-events:none; }
.auth-login-card::before { top:-1px; left:-1px; width:72px; height:3px; background:var(--auth-blue); box-shadow:0 0 16px rgba(34,120,255,.72); }
.auth-login-card::after { right:-1px; bottom:-1px; width:18px; height:18px; border-right:1px solid #47bbff; border-bottom:1px solid #47bbff; }
.auth-login-card-head { padding:38px 40px 26px; border-bottom:1px solid rgba(129,174,210,.13); }
.auth-login-eyebrow { display:flex; align-items:center; gap:9px; margin-bottom:12px; color:#66c5ff; font-size:11px; font-weight:600; letter-spacing:.22em; }
.auth-login-eyebrow::before { content:""; width:7px; height:7px; background:var(--auth-blue); box-shadow:0 0 12px rgba(34,120,255,.8); }
.auth-login-card-head h2 { margin:0; color:#f5f8fb; font-size:25px; font-weight:500; letter-spacing:.08em; }
.auth-login-card-head p { margin:10px 0 0; color:#688399; font-size:11px; letter-spacing:.09em; }
.auth-login-form-body { padding:30px 40px 22px; }
.auth-login-field { display:block; margin:0 0 21px; }
.auth-login-field-label { display:flex; justify-content:space-between; align-items:center; margin-bottom:9px; color:#a9bac8; font-size:12px; letter-spacing:.08em; }
.auth-login-field-label small { color:#47657d; font:9px Consolas,monospace; letter-spacing:.08em; }
.auth-login-input-shell { position:relative; display:block; }
.auth-login-input-shell::before { content:""; position:absolute; z-index:2; top:50%; left:16px; width:8px; height:8px; border:1px solid #557a99; transform:translateY(-50%) rotate(45deg); pointer-events:none; }
.auth-login-field input { width:100%; height:52px; margin:0; padding:0 47px 0 40px; box-sizing:border-box; border:1px solid rgba(121,163,198,.25); border-radius:0; outline:0; color:#f1f7fc; background:rgba(2,9,16,.58); caret-color:var(--auth-cyan); font-size:14px; transition:border-color 160ms ease,box-shadow 160ms ease,background 160ms ease; }
.auth-login-field input::placeholder { color:#425c72; }
.auth-login-field input:hover { border-color:rgba(121,174,216,.42); }
.auth-login-field input:focus { border-color:var(--auth-blue-2); background:rgba(4,14,24,.82); box-shadow:0 0 0 3px rgba(43,145,255,.1),inset 3px 0 0 var(--auth-blue); }
.auth-login-password-toggle { position:absolute; z-index:3; top:50%; right:10px; width:34px; height:34px; padding:0; border:0; color:#6f8da5; background:transparent; cursor:pointer; transform:translateY(-50%); }
.auth-login-password-toggle::before { content:""; position:absolute; top:11px; left:8px; width:16px; height:10px; border:1px solid currentColor; border-radius:50% / 60%; }
.auth-login-password-toggle::after { content:""; position:absolute; top:14px; left:14px; width:4px; height:4px; border-radius:50%; background:currentColor; }
.auth-login-password-toggle[aria-pressed="true"]::before { border-color:var(--auth-blue-2); }
.auth-login-password-toggle[aria-pressed="true"]::after { width:18px; height:1px; top:17px; left:7px; border-radius:0; background:var(--auth-blue-2); transform:rotate(-38deg); }
.auth-login-password-toggle:focus-visible,.auth-login-submit:focus-visible { outline:2px solid var(--auth-cyan); outline-offset:3px; }
.auth-login-form-options { display:flex; justify-content:space-between; align-items:center; margin:-3px 0 25px; color:#7890a3; font-size:11px; }
.auth-login-secure-state { display:inline-flex; align-items:center; gap:8px; }
.auth-login-secure-state::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--auth-success); box-shadow:0 0 10px rgba(83,230,179,.55); }
.auth-login-network-tag { color:#51728c; font-family:Consolas,monospace; letter-spacing:.08em; }
.auth-login-submit { position:relative; width:100%; height:54px; min-height:54px; overflow:hidden; border:1px solid #358dff; border-radius:0; color:#fff; background:linear-gradient(95deg,#1760da,#237fff 58%,#198ddb); box-shadow:0 12px 32px rgba(13,83,184,.24); cursor:pointer; transition:filter 160ms ease,transform 160ms ease,box-shadow 160ms ease; }
.auth-login-submit::after { content:""; position:absolute; top:0; bottom:0; left:-35%; width:22%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent); transform:skewX(-20deg); transition:left 420ms ease; }
.auth-login-submit:hover { filter:brightness(1.1); box-shadow:0 16px 38px rgba(16,96,216,.34); }
.auth-login-submit:hover::after { left:116%; }
.auth-login-submit:active { transform:translateY(1px); }
.auth-login-submit:disabled { opacity:.72; cursor:wait; filter:saturate(.8); }
.auth-login-submit span { position:relative; z-index:1; font-size:14px; font-weight:600; letter-spacing:.28em; }
.auth-login-message { min-height:18px; margin:13px 0 0; color:#7bbde9; font-size:11px; line-height:1.5; text-align:center; letter-spacing:.06em; }
.auth-login-message.error { color:#ff7d88; }
.auth-login-security-strip { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(129,174,210,.12); background:rgba(1,7,12,.34); }
.auth-login-security-item { position:relative; padding:16px 16px 16px 37px; color:#6f899f; font-size:10px; letter-spacing:.05em; }
.auth-login-security-item + .auth-login-security-item { border-left:1px solid rgba(129,174,210,.12); }
.auth-login-security-item::before { content:""; position:absolute; top:18px; left:19px; width:8px; height:8px; border:1px solid #3d9fe2; box-shadow:0 0 7px rgba(61,159,226,.3); }
.auth-login-urban-scene { position:absolute; z-index:1; left:0; right:0; bottom:0; height:48%; pointer-events:none; overflow:hidden; opacity:.8; }
.auth-login-ground-grid { position:absolute; left:-10%; right:-10%; bottom:-42%; height:125%; background-image:linear-gradient(rgba(79,137,181,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(79,137,181,.14) 1px,transparent 1px); background-size:74px 44px; transform:perspective(540px) rotateX(58deg); transform-origin:center bottom; -webkit-mask-image:linear-gradient(to bottom,transparent,#000 34%); mask-image:linear-gradient(to bottom,transparent,#000 34%); }
.auth-login-skyline { position:absolute; left:3%; right:3%; bottom:8%; height:44%; display:flex; align-items:flex-end; gap:clamp(8px,1.1vw,18px); opacity:.54; -webkit-mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.62) 65%,rgba(0,0,0,.22)); mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.62) 65%,rgba(0,0,0,.22)); }
.auth-login-building { position:relative; width:var(--auth-building-w); height:var(--auth-building-h); min-width:28px; border:1px solid rgba(83,140,184,.25); border-bottom:0; background:repeating-linear-gradient(to bottom,transparent 0 17px,rgba(75,135,180,.08) 18px 19px),linear-gradient(90deg,rgba(17,40,59,.9),rgba(8,23,36,.9)); box-shadow:inset -8px 0 20px rgba(0,0,0,.18); }
.auth-login-building::before { content:""; position:absolute; top:12px; left:10px; right:10px; height:2px; background:repeating-linear-gradient(90deg,rgba(64,193,255,.58) 0 4px,transparent 4px 12px); box-shadow:0 33px rgba(64,193,255,.22),0 68px rgba(64,193,255,.3),0 101px rgba(64,193,255,.16); }
.auth-login-district { position:absolute; border:1px solid rgba(75,169,232,.18); transform:rotate(var(--auth-rotate)); }
.auth-login-district::before { content:attr(data-code); position:absolute; top:9px; left:12px; color:rgba(87,184,241,.32); font:8px Consolas,monospace; letter-spacing:.14em; }
.auth-login-district.d1 { left:7%; bottom:13%; width:270px; height:112px; --auth-rotate:-4deg; }
.auth-login-district.d2 { left:37%; bottom:7%; width:330px; height:148px; --auth-rotate:3deg; }
.auth-login-district.d3 { right:8%; bottom:17%; width:280px; height:106px; --auth-rotate:-7deg; }
.auth-login-air-route { position:absolute; z-index:2; height:1px; background:linear-gradient(90deg,transparent,rgba(41,161,237,.72),rgba(91,225,255,.92),transparent); box-shadow:0 0 10px rgba(65,198,255,.34); transform:rotate(var(--auth-angle)); transform-origin:left center; }
.auth-login-air-route::before,.auth-login-air-route::after { content:""; position:absolute; top:-3px; width:7px; height:7px; border:1px solid rgba(90,211,255,.8); background:#07121d; transform:rotate(45deg); box-shadow:0 0 8px rgba(62,197,255,.5); }
.auth-login-air-route::before { left:22%; } .auth-login-air-route::after { right:18%; }
.auth-login-route-1 { top:17%; left:2%; width:43%; --auth-angle:4deg; }
.auth-login-route-2 { top:36%; left:28%; width:50%; --auth-angle:-12deg; }
.auth-login-route-3 { top:13%; right:0; width:33%; --auth-angle:16deg; }
.auth-login-track { position:absolute; z-index:3; top:5%; left:58%; width:230px; height:80px; border-top:1px dashed rgba(87,206,255,.42); border-right:1px dashed rgba(87,206,255,.42); transform:skewX(-28deg) rotate(-4deg); opacity:.7; }
.auth-login-track::after { content:"UAV 031 / ALT 118M"; position:absolute; top:-20px; right:0; color:rgba(100,203,255,.62); font:8px Consolas,monospace; letter-spacing:.12em; transform:skewX(28deg); }
.auth-login-bottom-meta { position:absolute; z-index:8; left:clamp(30px,5vw,82px); right:clamp(30px,5vw,82px); bottom:28px; display:flex; justify-content:space-between; align-items:flex-end; color:#4e6980; font:10px Consolas,monospace; letter-spacing:.12em; pointer-events:none; }
.auth-login-coordinate { display:flex; gap:30px; }
@keyframes authLoginPulse { 0%,100%{opacity:.48;transform:scale(.88)} 50%{opacity:1;transform:scale(1)} }
@media(max-width:1120px){
  .auth-login-shell{width:min(940px,calc(100% - 56px));grid-template-columns:minmax(360px,1fr) 410px;gap:46px}.auth-login-card-wrap{width:410px}.auth-login-kicker{margin-top:52px}.auth-login-hero-title{font-size:42px}.auth-login-note{font-size:13px}.auth-login-status-item{min-width:134px}
}
@media(max-width:860px){
  .auth-login-top-meta{top:24px;right:24px}.auth-login-top-meta>span:last-child{display:none}.auth-login-shell{width:min(520px,calc(100% - 36px));min-height:auto;grid-template-columns:1fr;gap:54px;padding:82px 0}.auth-login-identity{transform:none}.auth-login-logo{width:54px;height:54px;flex-basis:54px}.auth-login-logo::before{inset:9px}.auth-login-logo::after{top:22px;left:22px}.auth-login-brand-copy strong{font-size:21px}.auth-login-kicker{margin-top:42px}.auth-login-hero-title{font-size:clamp(34px,5vw,44px)}.auth-login-note{line-height:1.75}.auth-login-status-board{width:100%}.auth-login-status-item{flex:1 1 145px}.auth-login-card-wrap{justify-self:stretch;width:100%}.auth-login-urban-scene{height:43%;opacity:.35}.auth-login-bottom-meta{display:none}
}
@media(max-width:520px){
  .auth-login-top-meta{display:none}.auth-login-shell{width:calc(100% - 28px);gap:36px;padding-top:54px}.auth-login-brand-copy small{letter-spacing:.2em}.auth-login-brand-copy strong{font-size:18px}.auth-login-kicker{margin-top:28px}.auth-login-hero-title{font-size:clamp(20px,7vw,30px)}.auth-login-hero-title-en{margin-top:9px;font-size:10px;line-height:1.7}.auth-login-note,.auth-login-status-board{display:none}.auth-login-card-head,.auth-login-form-body{padding-left:24px;padding-right:24px}.auth-login-security-strip{grid-template-columns:1fr}.auth-login-security-item+.auth-login-security-item{border-top:1px solid rgba(129,174,210,.12);border-left:0}
}
@media(max-height:760px) and (min-width:861px){
  .auth-login-shell{padding-top:58px;padding-bottom:58px}.auth-login-identity{transform:none}.auth-login-kicker{margin-top:34px}.auth-login-status-board{margin-top:28px}.auth-login-card-head{padding-top:28px;padding-bottom:20px}.auth-login-form-body{padding-top:22px}
}
@media(prefers-reduced-motion:reduce){.auth-login-overlay *,.auth-login-overlay *::before,.auth-login-overlay *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.auth-user-box { display:none; margin:12px; padding:11px 12px; border:1px solid #27364b; border-radius:9px; background:#111c2b; }
.auth-user-box.visible { display:flex; align-items:center; gap:9px; }
.auth-user-avatar { width:31px; height:31px; display:grid; place-items:center; flex:0 0 31px; border-radius:50%; background:#164e63; color:#a5f3fc; font-weight:700; }
.auth-user-meta { min-width:0; flex:1; }
.auth-user-meta strong,.auth-user-meta span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.auth-user-meta strong { color:#e2e8f0; font-size:12px; }
.auth-user-meta span { margin-top:2px; color:#70839c; font-size:10px; }
.auth-user-actions { display:flex; align-items:center; gap:2px; }
.auth-user-settings-btn,.auth-logout-btn { padding:4px 5px; border:0; background:transparent; color:#94a3b8; cursor:pointer; font-size:11px; }
.auth-user-settings-btn:hover,.auth-logout-btn:hover { color:#e0f2fe; }
.auth-user-settings-btn[hidden] { display:none; }
.access-shell { min-height:100%; padding:24px; box-sizing:border-box; background:#0b1220; color:#e2e8f0; overflow:auto; }
.access-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.access-header h2 { margin:0; font-size:24px; }
.access-header p { margin:6px 0 0; color:#8191a8; font-size:13px; }
.access-card { margin-bottom:18px; border:1px solid #26364a; border-radius:11px; background:#111a28; overflow:hidden; }
.access-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid #26364a; }
.access-card-head h3 { margin:0; font-size:16px; }
.access-toolbar { display:flex; gap:9px; }
.access-input,.access-select { min-height:38px; padding:7px 10px; border:1px solid #34445b; border-radius:7px; background:#0b1421; color:#e2e8f0; }
.access-btn { min-height:38px; padding:7px 14px; border:1px solid #355068; border-radius:7px; background:#183047; color:#d8f4fb; cursor:pointer; }
.access-btn.primary { border-color:#0891b2; background:#0891b2; color:#fff; }
.access-btn.danger { border-color:#7f1d1d; background:#3f171c; color:#fecaca; }
.access-btn:disabled { opacity:.58; cursor:not-allowed; }
.access-user-actions { display:flex; flex-wrap:wrap; gap:7px; min-width:230px; }
.access-user-edit-modal { z-index:12500; }
.access-user-edit-card { width:min(620px,calc(100vw - 28px)); }
.access-user-edit-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.access-user-edit-form label { display:grid; gap:7px; color:#9fb1c5; font-size:12px; }
.access-user-edit-form .full { grid-column:1/-1; }
.access-user-edit-account { margin:-3px 0 15px; color:#71869d; font-size:12px; }
.access-user-edit-state { min-height:18px; color:#7dd3fc; font-size:12px; }
.access-user-edit-state.error { color:#fca5a5; }
.access-user-edit-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; margin-top:18px; }
.access-zone-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; max-height:150px; overflow:auto; padding:9px; border:1px solid #34445b; border-radius:7px; background:#0b1421; }
.access-zone-checklist label { display:flex; align-items:center; gap:7px; min-width:0; color:#d4dce7; cursor:pointer; }
.access-zone-checklist input { accent-color:#0891b2; }
.access-table { width:100%; border-collapse:collapse; font-size:13px; }
.access-table th,.access-table td { padding:12px 14px; border-bottom:1px solid #223044; text-align:left; }
.access-table th { color:#8da1b9; font-weight:600; background:#0e1724; }
.access-table td { color:#d4dce7; }
.access-chip { display:inline-flex; margin:2px 4px 2px 0; padding:3px 7px; border-radius:999px; background:#173349; color:#a5eff8; font-size:11px; }
.access-status.active { color:#86efac; }
.access-status.disabled { color:#fca5a5; }
.access-role-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; padding:16px; }
.access-role { width:100%; min-height:144px; padding:15px; border:1px solid #2a3a4f; border-radius:9px; background:#0d1724; color:inherit; text-align:left; cursor:pointer; transition:border-color .16s ease,background .16s ease,transform .16s ease; }
.access-role:hover { border-color:#397aa3; background:#102235; transform:translateY(-1px); }
.access-role:focus-visible { outline:2px solid #38bdf8; outline-offset:2px; }
.access-role-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:7px; }
.access-role strong { color:#eaf5ff; font-size:14px; }
.access-role p { min-height:34px; margin:0 0 9px; color:#8293aa; font-size:12px; line-height:1.45; }
.access-role-type { flex:0 0 auto; padding:2px 6px; border:1px solid #33516b; border-radius:999px; color:#86c8ec; font-size:10px; }
.access-role-type.custom { border-color:#226d52; color:#86efac; }
.access-card-title-group p { margin:5px 0 0; color:#71839a; font-size:12px; }
.access-inline-state { padding:24px; color:#8191a8; text-align:center; }
.access-inline-state.error { color:#fca5a5; }
.access-role-detail-page[hidden],.access-main-view[hidden] { display:none; }
.access-role-detail-page { min-height:calc(100vh - 48px); }
.access-role-detail-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.access-role-detail-heading { display:flex; align-items:flex-start; gap:12px; }
.access-role-back { width:44px; height:44px; display:grid; place-items:center; flex:0 0 44px; border:1px solid #344b62; border-radius:8px; background:#101f2f; color:#cdefff; cursor:pointer; font-size:18px; }
.access-role-detail-heading h2 { margin:0; color:#f3f8ff; font-size:23px; }
.access-role-detail-heading p { margin:6px 0 0; color:#8195ac; font-size:12px; }
.access-role-detail-actions { display:flex; align-items:center; gap:9px; }
.access-role-save-state { min-height:18px; color:#7dd3fc; font-size:12px; }
.access-role-save-state.error { color:#fca5a5; }
.access-role-delete-help { max-width:210px; color:#fbbf24; font-size:11px; line-height:1.45; text-align:right; }
.access-role-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.access-role-summary-item { padding:13px 14px; border:1px solid #26384d; border-radius:8px; background:#101b29; }
.access-role-summary-item span,.access-role-summary-item strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.access-role-summary-item span { margin-bottom:5px; color:#71869d; font-size:10px; letter-spacing:.06em; }
.access-role-summary-item strong { color:#dcefff; font-size:13px; }
.access-role-notice { margin-bottom:16px; padding:11px 13px; border-left:3px solid #0ea5e9; background:#0c2639; color:#b9e7ff; font-size:12px; line-height:1.55; }
.access-role-notice.locked { border-left-color:#f59e0b; background:#33240d; color:#fde68a; }
.access-role-create-fields { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr); gap:12px; margin-bottom:16px; padding:16px; border:1px solid #2a3b50; border-radius:9px; background:#101a27; }
.access-role-create-fields label { display:grid; gap:7px; color:#a8b8ca; font-size:12px; }
.access-permission-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.access-permission-group { border:1px solid #293b50; border-radius:9px; background:#101a28; overflow:hidden; }
.access-permission-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid #293b50; background:#0d1724; }
.access-permission-group-head h3 { margin:0; color:#deefff; font-size:14px; }
.access-permission-group-head span { color:#7189a2; font-size:11px; }
.access-permission-list { display:grid; }
.access-permission-row { min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 14px; border-bottom:1px solid #213146; cursor:pointer; }
.access-permission-row:last-child { border-bottom:0; }
.access-permission-row:hover { background:rgba(26,55,78,.4); }
.access-permission-copy { min-width:0; }
.access-permission-copy strong,.access-permission-copy code { display:block; }
.access-permission-copy strong { color:#dce8f5; font-size:12px; font-weight:600; }
.access-permission-copy code { margin-top:4px; overflow:hidden; color:#667f98; font:10px Consolas,monospace; text-overflow:ellipsis; white-space:nowrap; }
.access-permission-switch { position:relative; width:42px; height:24px; flex:0 0 42px; }
.access-permission-switch input { position:absolute; width:1px; height:1px; opacity:0; }
.access-permission-switch span { position:absolute; inset:0; border:1px solid #475569; border-radius:999px; background:#263547; transition:.16s ease; }
.access-permission-switch span::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#94a3b8; transition:.16s ease; }
.access-permission-switch input:checked+span { border-color:#0891b2; background:#087eaf; }
.access-permission-switch input:checked+span::after { left:21px; background:#ecfeff; }
.access-permission-switch input:focus-visible+span { outline:2px solid #38bdf8; outline-offset:3px; }
.access-permission-switch input:disabled+span { opacity:.55; cursor:not-allowed; }
.access-permission-row.saving { opacity:.65; }
.access-role-create-footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:16px; padding:15px 0; }
.access-create-form { display:none; grid-template-columns:repeat(5,minmax(140px,1fr)); gap:10px; padding:16px; border-bottom:1px solid #26364a; }
.access-create-form.visible { display:grid; }
.access-create-form .access-btn { align-self:end; }
.login-audit-shell { min-height:100%; padding:24px; box-sizing:border-box; background:#0b1220; color:#e2e8f0; overflow:auto; }
.login-audit-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.login-audit-header h2 { margin:0; color:#f1f7ff; font-size:24px; }
.login-audit-header p { margin:6px 0 0; color:#8191a8; font-size:13px; }
.login-audit-export-actions { display:flex; gap:9px; }
.login-audit-card { border:1px solid #26364a; border-radius:11px; background:#111a28; overflow:hidden; }
.login-audit-filters { display:grid; grid-template-columns:repeat(6,minmax(130px,1fr)); gap:10px; padding:16px 18px; border-bottom:1px solid #26364a; }
.login-audit-filters label { display:grid; gap:6px; color:#8da1b9; font-size:11px; }
.login-audit-filter-actions { grid-column:5 / span 2; display:flex; align-items:flex-end; justify-content:flex-end; gap:8px; }
.login-audit-filter-actions .access-btn { flex:1 1 auto; }
.login-audit-table-wrap { overflow:auto; }
.login-audit-table { min-width:1180px; }
.login-audit-device { display:grid; gap:3px; }
.login-audit-device small,.login-audit-location small { color:#71869d; font-size:10px; }
.login-audit-location { display:grid; gap:3px; min-width:150px; }
.login-audit-location strong { color:#d4e5f3; font-size:12px; font-weight:500; }
.login-audit-result { display:inline-flex; align-items:center; gap:6px; font-weight:600; }
.login-audit-result::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; }
.login-audit-result.success { color:#86efac; }
.login-audit-result.failed { color:#fca5a5; }
.login-audit-suspicious { display:inline-flex; margin-top:5px; padding:2px 6px; border:1px solid #9a3412; border-radius:999px; background:#3b1d12; color:#fdba74; font-size:10px; }
.login-audit-reason { display:block; max-width:240px; margin-top:4px; color:#94a3b8; font-size:10px; line-height:1.45; }
.login-audit-state { min-height:18px; padding:11px 16px; border-top:1px solid #223044; color:#7dd3fc; font-size:12px; }
.login-audit-state.error { color:#fca5a5; }
.login-audit-pagination { padding:12px 16px; }
@media(max-width:1000px){.access-create-form{grid-template-columns:1fr 1fr}.access-toolbar{flex-wrap:wrap}.access-table{min-width:850px}.access-card{overflow:auto}.access-permission-groups{grid-template-columns:1fr}.access-role-summary{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.access-shell{padding:16px}.access-header,.access-card-head,.access-role-detail-header{align-items:stretch;flex-direction:column}.access-role-detail-header{position:sticky;top:-16px;z-index:5;padding:12px 0;background:#0b1220;border-bottom:1px solid #223044}.access-header>.access-btn,.access-card-head>.access-btn,.access-role-detail-actions>.access-btn{width:100%}.access-role-grid{grid-template-columns:1fr}.access-role-summary,.access-role-create-fields,.access-user-edit-form{grid-template-columns:1fr}.access-user-edit-form .full{grid-column:auto}.access-role-detail-actions{align-items:stretch;flex-direction:column}.access-role-delete-help{max-width:none;text-align:left}.access-role-create-footer{position:sticky;bottom:-16px;z-index:4;align-items:stretch;flex-direction:column-reverse;padding:12px 0 16px;background:#0b1220}.access-role-create-footer .access-btn{width:100%}}
@media(max-width:1100px){.login-audit-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.login-audit-filter-actions{grid-column:1 / -1}}
@media(max-width:620px){.login-audit-shell{padding:16px}.login-audit-header{align-items:stretch;flex-direction:column}.login-audit-export-actions{display:grid;grid-template-columns:1fr 1fr}.login-audit-filters{grid-template-columns:1fr}.login-audit-filter-actions{grid-column:auto;align-items:stretch}.login-audit-filter-actions .access-btn{width:100%}}
.defense-zone-admin-shell { width:100%; min-height:100%; padding:24px; overflow:auto; background:#0b1220; color:#e2e8f0; }
.defense-zone-admin-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.defense-zone-admin-header h2 { margin:0; color:#f1f7ff; font-size:24px; }
.defense-zone-admin-header p { margin:6px 0 0; color:#8191a8; font-size:13px; }
.defense-zone-admin-grid { display:grid; grid-template-columns:minmax(380px,.9fr) minmax(520px,1.1fr); gap:16px; align-items:start; }
.defense-zone-admin-card { border:1px solid #26364a; border-radius:11px; background:#111a28; overflow:hidden; }
.defense-zone-admin-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 17px; border-bottom:1px solid #26364a; }
.defense-zone-admin-card-head h3 { margin:0; color:#e8f2fb; font-size:16px; }
.defense-zone-admin-form { display:grid; grid-template-columns:1fr 1fr; gap:11px; padding:16px 17px; }
.defense-zone-admin-form label { display:grid; gap:6px; color:#93a8bc; font-size:11px; }
.defense-zone-admin-form .full { grid-column:1 / -1; }
.defense-zone-admin-form textarea { min-height:122px; resize:vertical; font:11px/1.5 Consolas,monospace; }
.defense-zone-boundary-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.defense-zone-boundary-mode { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.defense-zone-boundary-mode button { min-height:36px; }
.defense-zone-boundary-mode button.active { border-color:#22d3ee; background:#164e63; color:#ecfeff; }
.defense-zone-manual-panel,.defense-zone-district-panel { display:grid; gap:10px; }
.defense-zone-district-selectors { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.defense-zone-district-tree { max-height:280px; overflow:auto; padding:8px; border:1px solid #2b4055; border-radius:8px; background:#0b1421; }
.defense-zone-district-node { margin:2px 0; }
.defense-zone-district-row { display:flex; align-items:center; gap:7px; min-height:30px; padding:3px 7px; border-radius:6px; color:#cde5f5; }
.defense-zone-district-row:hover { background:#14283a; }
.defense-zone-district-row.partial { background:#243447; color:#9fb3c6; }
.defense-zone-district-row input { width:15px; height:15px; accent-color:#22d3ee; }
.defense-zone-district-children { margin-left:22px; border-left:1px solid #294155; padding-left:7px; }
.defense-zone-district-summary { color:#7dd3fc; font-size:11px; }
.defense-zone-district-empty { padding:18px 8px; color:#71869d; text-align:center; }
.defense-zone-boundary-state { min-height:17px; color:#7dd3fc; font-size:11px; }
.defense-zone-boundary-state.error { color:#fca5a5; }
#defense-zone-boundary-map { height:300px; border-top:1px solid #26364a; background:#172033; }
.defense-zone-form-actions { grid-column:1 / -1; display:flex; align-items:center; justify-content:flex-end; gap:9px; }
.defense-zone-default-option { display:flex !important; grid-template-columns:auto 1fr; align-items:center; justify-content:start; gap:8px !important; }
.defense-zone-default-option input { width:16px; height:16px; }
.defense-zone-admin-table-wrap { overflow:auto; }
.defense-zone-admin-table { min-width:850px; }
.defense-zone-name-cell { display:grid; gap:3px; }
.defense-zone-name-cell small { color:#71869d; }
.defense-zone-list-actions { display:flex; flex-wrap:wrap; gap:6px; }
.defense-zone-list-actions .access-btn { min-height:31px; padding:4px 9px; font-size:11px; }
.defense-zone-admin-state { min-height:18px; padding:11px 16px; border-top:1px solid #223044; color:#7dd3fc; font-size:12px; }
.defense-zone-admin-state.error { color:#fca5a5; }
@media(max-width:1100px){.defense-zone-admin-grid{grid-template-columns:1fr}.defense-zone-admin-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.defense-zone-context-bar{padding:0 10px}.defense-zone-context-title span,.defense-zone-context-control label,.defense-zone-context-state{display:none}.defense-zone-context-title strong{max-width:120px}.defense-zone-context-select{min-width:150px;max-width:52vw}.defense-zone-admin-shell{padding:16px}.defense-zone-admin-header{align-items:stretch;flex-direction:column}.defense-zone-admin-form{grid-template-columns:1fr}.defense-zone-admin-form .full,.defense-zone-form-actions{grid-column:auto}.defense-zone-form-actions{align-items:stretch;flex-direction:column-reverse}.defense-zone-form-actions .access-btn{width:100%}}
