:root{--red:#cf1f2c;--dark:#111c29;--dark2:#172637;--paper:#f3f5f7;--line:#dfe4e8;--text:#18212b;--muted:#66717d;--green:#159447;--orange:#f59e0b;--slate:#64748b}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--text)}a{color:var(--red)}
.boss-logo{font-size:1.7rem;font-weight:900;letter-spacing:.04em}.boss-logo span{display:inline-block;padding:4px 7px;border-radius:5px;background:var(--red);color:#fff;font-size:.8em}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#0e1722,#23364c)}
.login-card{width:min(430px,100%);padding:32px;border-radius:18px;background:#fff;box-shadow:0 18px 50px #0000003d}.login-card h1{margin:24px 0 4px}.login-card p{color:var(--muted)}
label{display:block;margin:18px 0 8px;font-weight:800}input,textarea{width:100%;padding:14px;border:1px solid #cfd6dc;border-radius:10px;background:#fff;font:inherit}button{font:inherit;cursor:pointer}.login-card button{width:100%;margin-top:18px;padding:14px;border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:900}.error{color:#a30000}
.topbar,.police-header,.direction-header{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:18px 28px;background:linear-gradient(135deg,#0d1722,#172637);color:#fff}.topbar h1,.police-header h1,.direction-header h1{margin:6px 0 0;font-size:clamp(1.2rem,2vw,1.7rem)}.topbar-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.topbar a,.police-header a,.direction-header a{color:#fff}.online span{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;background:#22c55e}
.page,.police-page,.direction-page{padding:22px}.metrics,.police-summary,.direction-metrics{display:grid;gap:16px;margin-bottom:18px}.metrics{grid-template-columns:repeat(5,minmax(145px,1fr))}.police-summary{grid-template-columns:repeat(4,minmax(155px,1fr))}.direction-metrics{grid-template-columns:repeat(3,1fr)}
.metrics article,.police-summary article,.direction-metrics article{min-height:96px;padding:18px;border-radius:14px;border-top:6px solid var(--slate);background:#fff;box-shadow:0 4px 16px #0f172a14}.metrics article.success,.police-summary article.success{border-color:var(--green)}.metrics article.danger,.police-summary article.danger{border-color:#dc2626}.metrics article.warning,.police-summary article.warning{border-color:var(--orange)}.metrics strong,.police-summary strong,.direction-metrics strong{display:block;font-size:2rem}.metrics span,.police-summary span,.direction-metrics span{display:block;margin-top:7px;color:var(--muted)}
.command-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(300px,1fr);gap:18px;margin-bottom:18px}.right-column{display:grid;gap:18px;grid-template-rows:auto 1fr}.panel{overflow:hidden;border-radius:15px;background:#fff;box-shadow:0 4px 16px #0f172a14}.panel-heading{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--line)}.panel-heading h2{margin:0 0 4px;font-size:1.15rem}.panel-heading p{margin:0;color:var(--muted);font-size:.86rem}.panel-heading button,.reset-button,.dev-button{padding:9px 13px;border:1px solid #cfd6dc;border-radius:9px;background:#fff;font-weight:700}
#map{width:100%;height:620px;background:#e7ebee}.detail-panel{min-height:370px}.empty-state,.incomplete-message{margin:20px;padding:22px;border:1px dashed #c9d1d8;border-radius:12px;background:#f8fafb;color:var(--muted);line-height:1.5}#pointDetail:not(.empty-state){padding:20px}#pointDetail h3{margin:18px 0;font-size:2.1rem}.badge-row{display:flex;gap:6px;flex-wrap:wrap}
dl{margin:0}dt{margin-top:14px;color:var(--muted);font-size:.78rem;text-transform:uppercase;font-weight:800}dd{margin:4px 0 0;line-height:1.4}.agent-link{display:block;margin-top:22px;padding:13px;border-radius:10px;background:var(--red);color:#fff;text-align:center;text-decoration:none;font-weight:900}.reset-button,.dev-button{width:100%;margin-top:10px}.dev-button{background:#e8f3ff;color:#075985;border-color:#bae6fd}
.activity-list{max-height:330px;overflow:auto}.activity-item{padding:12px 15px;border-bottom:1px solid var(--line)}.activity-item strong,.activity-item span{display:block}.activity-item span{margin-top:3px;color:var(--muted);font-size:.8rem}.activity-item p{margin:6px 0 0;font-size:.88rem}.empty-small{padding:18px;color:var(--muted)}
.table-scroll{overflow-x:auto}table{width:100%;min-width:1050px;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--dark2);color:#fff;font-size:.82rem;text-transform:uppercase}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fafc}
.badge{display:inline-block;padding:6px 9px;border-radius:999px;font-size:.78rem;font-weight:900}.badge.success{color:#096838;background:#d9f3e3}.badge.danger{color:#9d1520;background:#f9dadd}.badge.warning{color:#865000;background:#fff0ce}.badge.incomplete{color:#475569;background:#e2e8f0}
.boss-marker-shell{background:transparent;border:0}.boss-marker{width:36px;height:36px;display:grid;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 8px;color:#fff;box-shadow:0 3px 10px #00000052;transform:rotate(-45deg)}.boss-marker span{transform:rotate(45deg);font-size:.73rem;font-weight:900}
.agent-page{min-height:100vh;background:#fff;padding-bottom:max(20px,env(safe-area-inset-bottom))}.agent-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--dark);color:#fff}.agent-card{width:min(620px,calc(100% - 28px));margin:26px auto}.point-number{padding:20px;border-radius:16px;background:var(--red);color:#fff;text-align:center;font-size:clamp(2.5rem,12vw,4.5rem);font-weight:900}.address{padding:16px;border-left:6px solid var(--red);background:#fff3f3;font-size:1.2rem;line-height:1.45}.instructions-box{margin:18px 0;padding:15px;border-left:5px solid var(--orange);background:#fff8e8}.instructions-box p{margin-bottom:0}.checkin-button{width:100%;min-height:86px;margin-top:24px;border:0;border-radius:12px;background:var(--green);color:#fff;font-size:1.35rem;font-weight:900;touch-action:manipulation}.checkin-button:disabled{opacity:.75}.status-text{text-align:center;font-weight:700;line-height:1.4}.success-text{color:var(--green)}.warning-text{color:var(--orange)}
.readiness-card{padding:34px;border-radius:18px;background:#fff;text-align:center;box-shadow:0 4px 16px #0f172a14}.readiness-card>div:first-child{font-size:1.2rem;font-weight:900}.readiness-card .ready{color:var(--green)}.readiness-card strong{display:block;margin:18px 0;font-size:clamp(3rem,10vw,6rem)}.progress{height:22px;overflow:hidden;border-radius:999px;background:#e2e8f0}.progress div{height:100%;width:0;background:var(--green);transition:width .5s}.direction-activity{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:15px}.direction-activity article{padding:16px;border-radius:10px;background:#f8fafc}.direction-activity strong,.direction-activity span{display:block}.direction-activity span{margin-top:5px;color:var(--muted)}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.command-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr;grid-template-rows:auto}.direction-activity{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar,.police-header,.direction-header{align-items:flex-start;flex-direction:column}.topbar-right{align-items:flex-start}.metrics,.police-summary,.direction-metrics{grid-template-columns:1fr 1fr}.page,.police-page,.direction-page{padding:12px}.right-column{grid-template-columns:1fr}#map{height:480px}.agent-card{margin:16px auto}.agent-header{position:sticky;top:0;z-index:20}.checkin-button{position:sticky;bottom:10px;box-shadow:0 8px 25px #0003}.direction-activity{grid-template-columns:1fr}}
@media(max-width:430px){.metrics,.police-summary,.direction-metrics{grid-template-columns:1fr}.point-number{border-radius:12px}.address{font-size:1.05rem}.agent-card input,.agent-card textarea{font-size:16px}}
