:root {
  --bg: #051018;
  --panel: #09161d;
  --panel-2: #0d1d26;
  --text: #d9e7ee;
  --muted: #87a0ae;
  --line: rgba(123, 188, 216, 0.18);
  --accent: #2b97c5;
  --accent-2: #78d7ff;
  --accent-rgb: 43, 151, 197;
  --warn: #f0bf61;
  --danger: #ff626f;
  --ok: #64d69a;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: radial-gradient(circle at 20% 0%, rgba(var(--accent-rgb),.20), var(--bg) 42%, #04090d 100%); color: var(--text); font-family: Inter, system-ui, sans-serif; }
body { overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
.noise { position: fixed; inset: 0; background-image: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px); background-size: 6px 6px; opacity: .06; pointer-events: none; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 290px 1fr; }
.sidebar { position: sticky; top: 0; align-self: start; min-height: 100vh; border-right: 1px solid var(--line); background: rgba(3,10,14,.84); backdrop-filter: blur(18px); display: flex; flex-direction: column; padding: 20px; }
.brand { display: flex; gap: 14px; align-items: center; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.logo-wrap { width: 66px; height: 66px; display: grid; place-items: center; border-radius: 16px; border: 1px solid var(--line); background: linear-gradient(180deg, #0f2530, #07141a); overflow: hidden; padding: 4px; }
.logo-wrap img { width: 100%; height: 100%; object-fit: contain; }
.logo-fallback { font-weight: 900; color: #bde9ff; letter-spacing: .14em; }
.eyebrow { color: #81b6ca; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.brand h1 { margin: 4px 0 0; font-size: 20px; line-height: 1.1; }
.nav { margin-top: 18px; display: grid; gap: 8px; }
.nav-item { display: flex; align-items: center; gap: 12px; width: 100%; border: 1px solid transparent; background: transparent; color: #b8ccd7; padding: 12px 13px; border-radius: 12px; font-weight: 700; text-align: left; }
.nav-item span { width: 20px; text-align: center; color: var(--accent-2); }
.nav-item:hover, .nav-item.active { background: linear-gradient(180deg, rgba(var(--accent-rgb), .34), rgba(10, 23, 30, .9)); border-color: rgba(var(--accent-rgb), .48); color: #fff; }
.sidebar-foot { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); }
.security-badge { font-size: 10px; font-weight: 800; letter-spacing: .13em; color: #9bc7d8; display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 0 rgba(100,214,154,.5); animation: pulse 2s infinite; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(100,214,154,.45)} 70%{box-shadow:0 0 0 8px rgba(100,214,154,0)}100%{box-shadow:0 0 0 0 rgba(100,214,154,0)} }
.mono { font-family: "Roboto Mono", monospace; }
.small { font-size: 10px; line-height: 1.65; }
.main { min-width: 0; }
.topbar { height: 92px; padding: 0 28px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(220px,1fr) auto minmax(430px,1fr); align-items: center; gap: 22px; background: rgba(6,14,19,.68); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 2; }
.view-title { margin-top: 4px; font-size: 23px; font-weight: 800; }
.topbar-left { min-width: 0; }
.topbar-center { display: flex; justify-content: center; align-items: center; min-width: 0; }
.topbar-logo { height: 54px; width: auto; max-width: 320px; object-fit: contain; opacity: .98; filter: drop-shadow(0 0 18px rgba(255,255,255,.05)); }
.topbar-logo-fallback { font-size: 28px; font-weight: 900; letter-spacing: .2em; color: #dff4ff; opacity: .9; }
.top-actions { display: flex; gap: 14px; align-items: center; justify-self: end; }
.search-wrap { display: flex; align-items: center; gap: 9px; background: #0a151c; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; height: 42px; min-width: 330px; }
.search-wrap input { flex: 1; background: transparent; border: 0; outline: 0; color: var(--text); }
.clock { color: #9db6c3; font-size: 12px; border-left: 1px solid var(--line); padding-left: 14px; }
.content { padding: 26px 28px 52px; }
.grid { display: grid; gap: 18px; }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.card { position: relative; background: linear-gradient(180deg, rgba(16,35,46,.86), rgba(8,19,25,.88)); border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: 0 16px 44px rgba(0,0,0,.16); overflow: hidden; }
.card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(120deg, rgba(255,255,255,.018), transparent 30%); }
.card h3 { margin: 0 0 12px; font-size: 14px; }
.stat { font-size: 34px; font-weight: 800; letter-spacing: -.03em; }
.stat-label { color: var(--muted); font-size: 12px; margin-top: 5px; }
.stat-trend { margin-top: 14px; font-size: 11px; color: #99b7c5; }
.accent { color: var(--accent-2); } .warn { color: var(--warn); } .danger { color: var(--danger); } .ok { color: var(--ok); }
.section-head { display: flex; align-items: center; justify-content: space-between; margin: 26px 0 12px; gap: 12px; }
.section-head h2 { font-size: 16px; margin: 0; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.btn { cursor: pointer; border: 1px solid var(--line); background: #0d1d26; color: #dfeaf0; padding: 9px 12px; border-radius: 10px; font-weight: 700; font-size: 12px; }
.btn:hover { border-color: rgba(77,182,229,.45); background: #102631; }
.btn.primary { background: linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 70%, #001018)); border-color: var(--accent-2); color: white; }
.btn.danger { background: rgba(255,93,108,.08); border-color: rgba(255,93,108,.25); }
.table { width: 100%; border-collapse: collapse; font-size: 12px; }
.table th { text-align: left; color: #708b9a; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.table td { padding: 12px; border-bottom: 1px solid rgba(142,193,215,.09); color: #cddae0; vertical-align: top; }
.table tr:hover td, .table tr.clickable:hover td { background: rgba(77,182,229,.035); }
.table tr.clickable { cursor: pointer; }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .06em; border: 1px solid var(--line); background: #0a171e; }
.badge.active { color: #9ee4ff; border-color: rgba(77,182,229,.26); }
.badge.hot { color: #ffd378; border-color: rgba(255,207,102,.28); }
.badge.closed { color: #8aa0ab; }
.timeline { display: grid; gap: 11px; }
.timeline-item { display: grid; grid-template-columns: 90px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(142,193,215,.09); }
.timeline-item time { color: #668391; font-size: 10px; font-family: "Roboto Mono", monospace; }
.timeline-item b { font-size: 12px; } .timeline-item p { margin: 4px 0 0; color: #9ab0bb; font-size: 11px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.field { display: grid; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { color: #7f9aaa; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.input, .textarea, .select { width: 100%; border: 1px solid var(--line); background: #08131a; color: var(--text); padding: 10px 11px; border-radius: 10px; outline: 0; }
.textarea { min-height: 110px; resize: vertical; }
.input:focus, .textarea:focus, .select:focus { border-color: rgba(77,182,229,.55); box-shadow: 0 0 0 3px rgba(77,182,229,.08); }
.modal-backdrop { position: fixed; inset: 0; background: rgba(1,5,8,.75); backdrop-filter: blur(7px); display: grid; place-items: center; z-index: 1000; padding: 20px; }
.modal { width: min(920px,100%); max-height: 92vh; overflow: auto; background: #09161d; border: 1px solid rgba(123,188,216,.24); border-radius: 18px; box-shadow: 0 40px 100px rgba(0,0,0,.5); padding: 22px; }
.modal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.modal-head h2 { margin: 0; font-size: 18px; }
.icon-btn { cursor: pointer; background: transparent; border: 1px solid var(--line); color: #a8bec8; width: 34px; height: 34px; border-radius: 9px; }
.empty { padding: 24px; text-align: center; color: #718b98; border: 1px dashed rgba(142,193,215,.17); border-radius: 14px; }
.kpi-line { height: 7px; background: #081219; border-radius: 99px; overflow: hidden; margin-top: 12px; }
.kpi-line > span { display: block; height: 100%; background: linear-gradient(90deg, #238cba, #78d7ff); }
.split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; }
.map-shell { position: relative; height: 640px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); background: repeating-linear-gradient(0deg,transparent 0 39px,rgba(94,159,186,.08) 40px), repeating-linear-gradient(90deg,transparent 0 39px,rgba(94,159,186,.08) 40px), radial-gradient(circle at 50% 45%,#153644,#071219 66%); }
.map-shell::after { content: "LOS SANTOS TACTICAL OVERLAY"; position: absolute; right: 18px; bottom: 14px; font: 10px "Roboto Mono", monospace; color: rgba(173,218,237,.4); letter-spacing: .12em; }
.map-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: .9; }
.map-placeholder { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 20px; }
.map-placeholder h3 { margin-bottom: 8px; font-size: 20px; }
.map-placeholder p { max-width: 500px; color: #8ea8b4; }
.map-marker { position: absolute; transform: translate(-50%,-100%); width: 28px; height: 28px; border-radius: 50% 50% 50% 0; rotate: -45deg; background: #4db6e5; border: 2px solid #d8f5ff; box-shadow: 0 0 22px rgba(77,182,229,.55); }
.map-marker::after { content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #071015; left: 8px; top: 8px; }
.map-marker span { position: absolute; rotate: 45deg; left: 30px; top: -18px; width: max-content; max-width: 180px; background: rgba(5,14,19,.92); color: #d9edf5; padding: 5px 7px; border: 1px solid var(--line); border-radius: 6px; font: 10px Inter, sans-serif; }
.list-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid rgba(142,193,215,.09); }
.list-row.compact { padding: 9px 0; }
.report-editor { min-height: 430px; background: #d9d5ca; color: #121212; border-radius: 6px; padding: 46px 54px; font-family: "Roboto Mono", monospace; line-height: 1.72; font-size: 13px; position: relative; box-shadow: 0 16px 60px rgba(0,0,0,.3); outline: 0; }
.report-editor.classified::before { content: "CLASSIFIED"; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%) rotate(-28deg); font-family: Inter, sans-serif; font-weight: 900; font-size: 80px; letter-spacing: .08em; color: rgba(120,0,0,.12); pointer-events: none; }
.redacted { background: #050505 !important; color: #050505 !important; border-radius: 2px; user-select: none; padding: 0 2px; }
.report-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.report-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.doc-stamp { position: absolute; right: 32px; top: 28px; border: 4px double #8b1f1f; color: #8b1f1f; padding: 5px 10px; font: 800 16px Inter, sans-serif; transform: rotate(-8deg); letter-spacing: .08em; opacity: .85; }
.search-results { position: fixed; right: 28px; top: 82px; width: min(520px, calc(100vw - 340px)); max-height: 60vh; overflow: auto; background: #07141b; border: 1px solid rgba(93,164,193,.25); border-radius: 14px; z-index: 30; box-shadow: 0 26px 70px rgba(0,0,0,.45); display: none; }
.search-results.show { display: block; }
.search-item { padding: 12px 14px; border-bottom: 1px solid rgba(142,193,215,.08); cursor: pointer; }
.search-item:hover { background: rgba(77,182,229,.045); }
.search-item b { font-size: 12px; }
.search-item p { margin: 4px 0 0; color: #7893a1; font-size: 11px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.detail-grid.single { grid-template-columns: 1fr; }
.detail-card { border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: rgba(8,20,27,.75); }
.detail-card h3 { margin: 6px 0 8px; font-size: 18px; }
.detail-card p { margin: 0; color: #d0dde4; line-height: 1.65; }
.evidence-image { width: 100%; max-height: 420px; object-fit: contain; border-radius: 10px; border: 1px solid var(--line); background: #071219; }
.login-overlay { position: fixed; inset: 0; z-index: 4000; background: linear-gradient(180deg, rgba(0,0,0,.72), rgba(2,8,12,.9)); backdrop-filter: blur(10px); display: grid; place-items: center; padding: 20px; }
.login-panel { width: min(520px, 100%); }
.login-panel h2 { margin: 8px 0 0; font-size: 30px; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 2000; background: #0c2029; border: 1px solid rgba(77,182,229,.35); color: #dff5ff; padding: 12px 14px; border-radius: 10px; box-shadow: 0 18px 50px rgba(0,0,0,.4); transform: translateY(30px); opacity: 0; pointer-events: none; transition: .25s ease; font-size: 12px; }
.toast.show { transform: translateY(0); opacity: 1; }
@media(max-width:1100px){ .grid.cols-4{grid-template-columns:repeat(2,1fr)} .detail-grid{grid-template-columns:1fr} .report-meta{grid-template-columns:repeat(2,1fr)} }
@media(max-width:980px){ .app-shell{grid-template-columns:86px 1fr} .brand>div:last-child,.nav-item:not(.active){font-size:0} .brand{justify-content:center} .logo-wrap{width:52px;height:52px} .nav-item{justify-content:center} .nav-item span{font-size:18px;width:auto} .sidebar-foot{display:none} .split{grid-template-columns:1fr} .search-wrap{min-width:220px} .topbar{grid-template-columns:minmax(180px,1fr) auto minmax(260px,1fr);gap:14px} .topbar-logo{height:40px;max-width:220px} }
@media(max-width:720px){ .app-shell{display:block} .sidebar{position:relative;width:100%;height:auto;min-height:auto;flex-direction:row;align-items:center;overflow:auto} .brand{border:0;padding:0 14px 0 0} .brand>div:last-child{display:none} .nav{display:flex;margin:0;gap:4px} .nav-item{width:auto;white-space:nowrap} .sidebar-foot{display:none} .topbar{position:relative;height:auto;padding:18px;display:flex;align-items:flex-start;gap:14px;flex-direction:column} .topbar-center{display:none} .top-actions{width:100%;justify-self:stretch} .search-wrap{min-width:0;flex:1} .clock{display:none} .content{padding:18px} .grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid,.report-meta{grid-template-columns:1fr} .map-shell{height:480px} .report-editor{padding:32px 24px} .search-results{right:18px;left:18px;top:145px;width:auto} }

/* v3 realism upgrades */
.case-cover { width:100%; max-height:260px; object-fit:cover; border-radius:12px; border:1px solid var(--line); background:#061017; }
.case-image-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.case-thumb { position:relative; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#061017; }
.case-thumb img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.case-thumb button { position:absolute; right:6px; top:6px; }
.network-shell { min-height:620px; border:1px solid var(--line); border-radius:16px; position:relative; overflow:hidden; background:radial-gradient(circle at 50% 45%,rgba(28,71,88,.34),rgba(4,12,17,.97) 64%),repeating-linear-gradient(0deg,transparent 0 49px,rgba(97,162,188,.055) 50px),repeating-linear-gradient(90deg,transparent 0 49px,rgba(97,162,188,.055) 50px); }
.network-shell svg { width:100%; height:620px; display:block; }
.net-line { stroke:rgba(116,184,210,.34); stroke-width:1.4; }
.net-node { cursor:pointer; }
.net-node circle { fill:#0b2531; stroke:#4db6e5; stroke-width:2; filter:drop-shadow(0 0 8px rgba(77,182,229,.2)); }
.net-node.person circle { stroke:#ffcf67; }
.net-node.vehicle circle { stroke:#a5e58d; }
.net-node text { fill:#d9e9f0; font:600 11px Inter,sans-serif; text-anchor:middle; pointer-events:none; }
.net-node .sub { fill:#7693a2; font:9px "Roboto Mono",monospace; }
.map-grid-label { position:absolute; z-index:2; font:9px "Roboto Mono",monospace; color:rgba(192,226,240,.38); pointer-events:none; }
.map-grid-label.top { top:7px; left:50%; transform:translateX(-50%); }
.map-grid-label.left { left:7px; top:50%; transform:rotate(-90deg) translateX(-50%); transform-origin:left top; }
.map-crosshair { position:absolute; left:50%; top:50%; width:34px; height:34px; transform:translate(-50%,-50%); opacity:.22; pointer-events:none; z-index:2; }
.map-crosshair:before,.map-crosshair:after{content:"";position:absolute;background:#a8d8eb}.map-crosshair:before{left:16px;top:0;width:1px;height:34px}.map-crosshair:after{left:0;top:16px;width:34px;height:1px}
.map-coords { position:absolute; left:14px; bottom:12px; z-index:4; font:10px "Roboto Mono",monospace; color:#9dc5d6; background:rgba(3,11,15,.78); border:1px solid var(--line); padding:6px 8px; border-radius:6px; pointer-events:none; }
.report-template-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.template-btn { text-align:left; padding:10px; }
.template-btn b { display:block; margin-bottom:3px; }
.template-btn span { color:#7894a3; font-size:10px; }
.server-indicator { margin-top:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:10px "Roboto Mono",monospace; color:#87a4b2; }
.server-indicator.online { color:#93dfb1; border-color:rgba(77,205,128,.25); }
@media(max-width:720px){.case-image-grid,.report-template-grid{grid-template-columns:1fr}.network-shell svg{height:520px}.network-shell{min-height:520px}}

.login-error{color:#ff8a94;background:rgba(255,93,108,.08);border:1px solid rgba(255,93,108,.2);padding:10px;border-radius:9px;font-size:12px}.login-hint{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);color:#7f9aaa;font-size:11px;line-height:1.6}.logout-btn{width:100%;margin-top:12px}.nav-item[hidden]{display:none!important}

/* v7 built-in GTA V map */
.leaflet-shell { height: 720px; background:#071219; }
#leafletMap { position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.leaflet-shell .map-grid-label, .leaflet-shell .map-coords { z-index:500; pointer-events:none; }
.leaflet-container { background:#071219; font-family:Inter,system-ui,sans-serif; }
.leaflet-popup-content-wrapper,.leaflet-popup-tip { background:#081820; color:#d9e7ee; }
.leaflet-control-zoom a { background:#0b1d26; color:#d9e7ee; border-color:rgba(123,188,216,.18); }
.leaflet-control-attribution { background:rgba(3,10,14,.75)!important; color:#7893a1!important; }
.leaflet-control-attribution a { color:#8cc6dd!important; }
@media(max-width:720px){.leaflet-shell{height:520px}}

/* v8 external GTA map + PDF redaction polish */
.map-provider-card { padding: 12px; }
.map-provider-bar { min-height: 40px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 4px 10px; }
.gta-map-frame { display:block; width:100%; height:720px; border:1px solid var(--line); border-radius:12px; background:#061017; }
.map-embed-note { margin-top:10px; color:#7895a4; font-size:11px; line-height:1.55; }
@media(max-width:980px){ .gta-map-frame{height:620px} }
@media(max-width:720px){ .gta-map-frame{height:520px} .map-provider-bar{align-items:flex-start;flex-direction:column} }

.leaflet-control-layers-expanded{background:rgba(7,20,27,.94)!important;color:#d9e7ee!important;border:1px solid rgba(123,188,216,.24)!important;border-radius:10px!important}.leaflet-control-layers label{font-size:12px;margin:4px 0}.leaflet-control-layers-separator{border-top-color:rgba(123,188,216,.18)!important}

/* v10 map fixes */
.map-help { margin:0 0 10px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:#07141b; color:#8faab8; font-size:11px; }
.leaflet-shell { height:720px; }
.leaflet-control-zoom { box-shadow:0 8px 24px rgba(0,0,0,.28)!important; }
.leaflet-control-zoom a { width:34px!important; height:34px!important; line-height:34px!important; font-size:20px!important; }
#leafletMap img { user-select:none; -webkit-user-drag:none; }
@media(max-width:720px){.leaflet-shell{height:540px}}

/* v12 full San Andreas map + site editor */
.leaflet-shell{height:760px;min-height:620px}.leaflet-shell #leafletMap{position:absolute;inset:0;background:#061018}.leaflet-control-layers{background:rgba(7,20,27,.94)!important;color:#d9e7ee!important;border:1px solid rgba(123,188,216,.25)!important;border-radius:10px!important;box-shadow:0 12px 30px rgba(0,0,0,.3)!important}.leaflet-control-layers label{color:#d9e7ee!important}.leaflet-bar a{background:#0a1b24!important;color:#d9e7ee!important;border-color:rgba(123,188,216,.25)!important}.leaflet-bar a:hover{background:#123242!important}.map-help{margin-bottom:10px;color:#90a9b6;font-size:11px}.nav-item span[data-nav-label]{width:auto;text-align:left;color:inherit}.settings-preview{border:1px dashed var(--line);padding:14px;border-radius:12px}
@media(max-width:720px){.leaflet-shell{height:520px;min-height:520px}.leaflet-control-layers{font-size:11px}}

/* v13 live text editor */
body.live-text-edit *{cursor:crosshair!important}body.live-text-edit .report-editor,body.live-text-edit .report-editor *{cursor:text!important}.live-text-edit .main *:hover,.live-text-edit .sidebar *:hover{outline:1px dashed rgba(120,215,255,.55);outline-offset:2px}

/* v14 tablet / LAN usability */
@media (pointer:coarse){
  .nav-item,.btn,.icon-btn{min-height:44px}
  .input,.select,.textarea{font-size:16px}
  .search-wrap{height:48px}
}
@media (min-width:721px) and (max-width:1180px){
  .app-shell{grid-template-columns:230px 1fr}
  .sidebar{padding:14px}
  .brand h1{font-size:17px}
  .nav-item{padding:11px 10px}
  .topbar{padding:0 18px}
  .content{padding:20px 18px 44px}
  .grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-wrap{min-width:260px}
}


/* report library / recycle bin patch */
.report-library{overflow:visible}.report-list{display:grid;gap:8px}.report-list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid rgba(123,188,216,.12);border-radius:10px;background:rgba(5,16,24,.35)}.report-list-row.selected{border-color:rgba(77,182,229,.48);background:rgba(30,91,117,.18)}.report-list-main{flex:1;min-width:0;cursor:pointer}.report-list-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-list-row .actions{flex-shrink:0}@media(max-width:720px){.report-list-row{align-items:flex-start;flex-direction:column}.report-list-row .actions{width:100%}.report-list-row .actions .btn{flex:1}}

/* Map marker MDT action popup */
.map-marker-popup{min-width:210px;padding:2px 1px 1px}
.map-marker-popup-type{font:700 10px "Roboto Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#86bed5;margin-bottom:3px}
.map-marker-popup-title{font-size:15px;font-weight:800;color:#e7f2f7;line-height:1.25;margin-bottom:3px}
.map-marker-popup-case{font-size:11px;color:#9bb5c2;margin-bottom:10px}
.map-marker-popup-actions{display:flex;flex-wrap:wrap;gap:6px}
.map-popup-btn{appearance:none;border:1px solid rgba(123,188,216,.25);background:#0d2632;color:#dcecf3;border-radius:7px;padding:7px 9px;font:700 10px Inter,system-ui,sans-serif;cursor:pointer}
.map-popup-btn:hover{background:#153746}
.map-popup-btn.primary{background:#1687b5;border-color:#39b6e8;color:white}
.map-popup-btn.danger{background:#29151b;border-color:#743444;color:#ffd9df}
.map-marker-popup-note{margin-top:8px;padding-top:7px;border-top:1px solid rgba(123,188,216,.14);font-size:9px;color:#7896a4}
.leaflet-popup-content{margin:13px 15px!important}
@media(max-width:720px){.map-marker-popup-actions{display:grid;grid-template-columns:1fr 1fr}.map-popup-btn.danger{grid-column:1/-1}.map-popup-btn{min-height:36px}}


/* Theme + categorized sidebar */
.nav-group{display:grid;gap:5px;border-bottom:1px solid rgba(123,188,216,.09);padding-bottom:7px;margin-bottom:4px}
.nav-group:last-child{border-bottom:0}
.nav-group-toggle{appearance:none;border:0;background:transparent;color:var(--muted);padding:8px 9px 5px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-radius:8px}
.nav-group-toggle:hover{color:var(--accent-2);background:rgba(var(--accent-rgb),.07)}
.nav-group-chevron{font-size:15px;transition:transform .16s ease;color:var(--accent-2)}
.nav-group-items{display:grid;gap:5px}
.nav-group.collapsed .nav-group-items{display:none}
.nav-group.collapsed .nav-group-chevron{transform:rotate(-90deg)}
.theme-color-row{display:grid;grid-template-columns:54px 1fr;gap:9px;align-items:center}
.theme-color-input{width:54px;height:42px;padding:3px;border-radius:10px;border:1px solid var(--line);background:#071219;cursor:pointer}
.theme-preview{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:11px;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.10);color:var(--text)}
.theme-preview-dot{width:13px;height:13px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px rgba(var(--accent-rgb),.65)}
.logo-wrap{border-color:rgba(var(--accent-rgb),.3)}
.eyebrow,.security-badge{color:var(--accent-2)}
@media(max-width:980px) and (min-width:721px){.nav-group-toggle{justify-content:center;padding:7px 0;font-size:0}.nav-group-toggle:before{content:'•';font-size:14px;color:var(--accent-2)}.nav-group-chevron{display:none}.nav-group{border-bottom:0}}
@media(max-width:720px){.nav-group{display:contents}.nav-group-toggle{display:none}.nav-group-items{display:flex;gap:4px}.nav-group.collapsed .nav-group-items{display:flex}}

/* Personal account theme + admin visibility */
.nav-group[hidden]{display:none!important}
.personal-appearance-btn{width:100%;margin-top:12px;border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.08)}
.personal-appearance-btn:hover{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.55)}
