:root{color-scheme:dark;--bg:#0d131c;--panel:#151e2a;--line:#283443;--text:#e7edf4;--muted:#8e9cad;--gold:#cfb77c;--blue:#7bbaff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a.button{cursor:pointer;border:1px solid var(--line);border-radius:5px;background:#1c2837;color:var(--text);padding:9px 14px;text-decoration:none}button:hover{background:#28384b;border-color:#63738a}button:focus-visible,a:focus-visible{outline:2px solid var(--gold)}button.primary,a.button{background:var(--gold);color:#151b24;font-weight:600;border-color:var(--gold)}input,select,textarea{background:#101823;border:1px solid #344255;border-radius:4px;color:var(--text);padding:10px;max-width:100%;width:100%}input[type=checkbox]{width:auto;accent-color:var(--gold)}textarea{resize:vertical}label{display:block;margin:10px 0}label>input,label>select{margin-top:5px}small{font-size:11px;color:var(--muted)}aside{position:fixed;inset:0 auto 0 0;width:257px;border-right:1px solid var(--line);padding:26px 18px;background:#111a26;overflow:auto}.brand{display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:3px;font-weight:650;margin-bottom:32px}.brand small{display:block;font-size:8px;letter-spacing:1.6px}.seal{display:grid;place-items:center;width:40px;height:46px;border:1px solid var(--gold);color:var(--gold);font:bold 26px Georgia;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.nav{display:block;width:100%;text-align:left;background:transparent;border-color:transparent;padding:9px 12px;color:#aebbc9}.nav.active{color:var(--gold);background:#242b30;border-color:#434338}.nav-label{font-size:9px;letter-spacing:1.8px;color:#77899d;margin:25px 10px 9px}.side-title{display:flex;align-items:center;justify-content:space-between}.side-title button{padding:0 8px}.folder-row{display:flex;align-items:center}.folder-row>button:last-child:not(:first-child){font-size:10px;padding:2px 6px}#identity{margin:28px 10px 12px;padding-top:15px;border-top:1px solid var(--line);font-size:12px}#identity small{display:block}aside form button{margin-left:10px;font-size:11px}.workspace{margin-left:257px}header{min-height:93px;padding:22px 36px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px}header>div{flex:1}header input{width:320px;font-size:12px}.eyebrow{font-size:10px;color:var(--gold);letter-spacing:2px;margin:0 0 7px}.muted{color:var(--muted);font-size:12px}main{padding:36px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 32px}h1{font-size:30px;letter-spacing:-.8px;font-weight:550;margin:0}h2{font-size:17px;font-weight:550;margin:23px 0 15px}#actions{display:flex;gap:8px}#actions select{width:auto}.intro{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px;color:#bdc9d5;font-size:12px}.live-dot{display:inline-block;border-radius:50%;background:#80c3a2;width:6px;height:6px;margin-right:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stats article{padding:23px;background:linear-gradient(130deg,#1b2838,#141e2a);border:1px solid var(--line);border-top:2px solid #647389;border-radius:6px}.stats p{font-size:12px;color:#acbac9;margin:0 0 15px}.stats strong{display:block;font-size:36px;font-weight:500;margin-bottom:16px}.stats small{font-size:8px;letter-spacing:1.5px;color:#6e8197}.section-title{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.table-wrap{border:1px solid var(--line);border-radius:6px;overflow:auto;background:#121c28}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:9px;color:#8da0b5;text-transform:uppercase;letter-spacing:1.2px;padding:15px 18px;background:#182332}td{padding:16px 18px;border-top:1px solid #253140;font-size:12px}td:last-child{color:#889aaf;font-size:11px}.record-link{background:none;border:none;padding:0;text-align:left;color:#e0e8f2}.record-link small{color:#6d859d;margin-right:10px}.badge{display:inline-block;border:1px solid #59503d;background:#312e25;color:#d6c088;font-size:10px;padding:3px 9px;border-radius:4px}.badge.green{border-color:#2b5e4c;background:#183a30;color:#87d1ab}.badge.blue{border-color:#365b80;background:#1b344c;color:#93c2f3}.empty{text-align:center;padding:40px;color:var(--muted)}.note-grid{display:flex;gap:16px;flex-wrap:wrap}.note{max-width:300px;text-align:left;padding:20px}.note p{color:var(--muted);white-space:pre-wrap}.filters{display:flex;gap:20px;align-items:center;margin-bottom:18px}.filters select{width:220px}.filters label{font-size:12px;color:var(--muted)}footer{margin:25px 36px;border-top:1px solid var(--line);padding:17px 0;color:#6e8094;font-size:9px;letter-spacing:1px}footer span{float:right}dialog{color:var(--text);background:#141e2b;border:1px solid #3c4a5b;border-radius:8px;width:840px;max-width:95vw;max-height:90vh;padding:25px}dialog::backdrop{background:#030810c9}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:18px}.dialog-head h2{margin:0 0 14px}.dialog-head button{padding:4px 10px;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.wide{grid-column:1/-1}.field>span{display:block;font-size:12px;color:#b8c7d7;margin-bottom:5px}.form-actions{display:flex;gap:10px;margin-top:20px}fieldset{border:1px solid var(--line);margin-bottom:15px}.check{display:inline-flex;gap:6px;align-items:center;margin-right:15px}pre{white-space:pre-wrap;word-break:break-word;max-height:400px;overflow:auto;background:#0c1520;padding:15px;font-size:12px}details{border-bottom:1px solid var(--line);padding:14px}summary{cursor:pointer}.notice{color:#98d1b4}.attachment{padding:8px}a{color:var(--blue)}#message:not(:empty){padding:15px;margin-bottom:20px;background:#49392b;border:1px solid #775c3e;border-radius:4px}.user-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--line)}.user-row>input{width:150px}.user-row select{width:140px}.user-row>strong{min-width:180px}.login{max-width:650px;margin:15vh auto;padding:50px;border:1px solid var(--line);border-top:3px solid var(--gold);background:var(--panel);border-radius:8px}.login .seal{margin-bottom:30px}.login h1{font-size:38px;margin:20px 0}.login a{display:inline-block;margin:20px 0}.login p{color:var(--muted)}#mapViewport{height:clamp(600px,calc(100dvh - 260px),1000px);position:relative;overflow:hidden;background:repeating-linear-gradient(0deg,#14212b 0px,#14212b 49px,#273644 50px);border:1px solid var(--line);touch-action:none}#mapLayer{position:absolute;transform-origin:0 0}#mapImage{display:block;max-width:none;pointer-events:none}.map-pin{position:absolute;background:#d3b66c;color:#14202a;border:1px solid white;border-radius:50%;width:26px;height:26px;padding:0;transform-origin:center}.map-controls{position:absolute;top:12px;right:12px;display:flex;gap:5px}#mapError{position:absolute;bottom:15px;left:15px;right:15px;padding:15px;background:#3c3025}#markerList{display:flex;gap:10px;flex-wrap:wrap;padding-top:15px}@media(max-width:1000px){aside{width:215px}.workspace{margin-left:215px}header{flex-wrap:wrap;padding:20px}header input{width:100%}main{padding:22px}.stats{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:flex-start;flex-direction:column}#actions{flex-wrap:wrap}}@media(max-width:650px){aside{position:relative;width:100%;max-height:320px}.workspace{margin:0}.brand{margin-bottom:15px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stats article{padding:14px}.form-grid{grid-template-columns:1fr}.section-title{display:block}h1{font-size:26px}.filters{flex-wrap:wrap}.login{margin:30px 15px;padding:25px}}
.attachment-preview{display:block;max-width:220px;max-height:180px;object-fit:contain;margin-bottom:8px;border-radius:5px}
/* The map is an application surface, not selectable document content. */
#mapViewport,#mapViewport *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
#mapViewport{cursor:grab}
#mapViewport.placing{cursor:crosshair}
#mapViewport.dragging,#mapViewport.dragging *{cursor:grabbing}
#mapImage{background-size:100% 100%;background-repeat:no-repeat;pointer-events:none}
#mapViewport .map-pin{cursor:pointer;line-height:24px;font-size:17px}
.map-controls{z-index:2}
.marker-description{white-space:pre-wrap;overflow-wrap:anywhere}
/* Gang status colors complement the existing dark palette. */
.badge.orange{border-color:#8b5c31;background:#422b19;color:#ffc184}
.badge.red{border-color:#87434d;background:#421e29;color:#ff9eac}
