/* Madison CAD workstation, based on Flex CAD's public desktop reference and
   Madison's LCSO Flex Mobile palette. This is Madison software. */
:root {
  --void:#d6e0eb; --panel:#fff; --raised:#e6edf5; --raised-2:#d8e5f3;
  --line:#96abc2; --line-soft:#dbe3ed; --steel:#24588f; --steel-dim:#b5cde5;
  --steel-glow:#e0edfb; --ink:#172638; --ink-2:#344b64; --ink-3:#52677e;
  --ok:#237522; --ok-ink:#174f15; --warn:#c38a12; --warn-ink:#815604;
  --hot:#c52925; --hot-ink:#a00e0a; --p1:#f9b0ae; --p2:#fff1a1; --p3:#cff0cd;
  --mono:Consolas,'Courier New',monospace; --sans:Tahoma,'Segoe UI',sans-serif;
}
body { font-size:12px; background:#cbd6e3; }
.topbar { height:32px; color:#fff; background:linear-gradient(#688eba,#5279a7); border-color:#34557b; padding:0 9px; }
.brand-mark { font-family:Tahoma,sans-serif; font-size:14px; letter-spacing:0; }
.brand-sub,.topbar .eyebrow,.topbar b,.topbar .meta { color:#fff; }
.brand-sub { font-size:11px; letter-spacing:0; text-transform:none; }
.topbar-right { gap:12px; }
.link-pill,.duty-btn { background:#244b79; color:#fff; border-color:#94b6d8; }
.duty-btn.on { background:#d8efc9; color:#235616; border-color:#b3d79a; }
.menubar { height:25px; background:#e7eef6; border-bottom:1px solid #91a7bf; display:flex; align-items:center; padding:0 8px; gap:14px; }
.menubar button,.menubar a { color:#172638; font-size:11px; text-decoration:none; }
.menubar button:hover,.menubar a:hover { text-decoration:underline; }
.menubar .workstation { margin-left:auto; color:#425a72; }
.flex-toolbar { height:49px; display:flex; align-items:stretch; padding:3px 8px; gap:5px; background:linear-gradient(#4e76a4,#224572); border-bottom:1px solid #102e53; }
.flex-toolbar .tbtn { display:flex; flex-direction:column; justify-content:center; min-width:65px; padding:3px 9px; font-size:11px; color:#fff; border:1px solid #98b8da; background:linear-gradient(#688fbe,#385e8e); }
.flex-toolbar .tbtn:hover { background:#86acd6; color:#122f50; }
.flex-toolbar .tbtn.primary { border-color:#e5f2ff; }
.flex-toolbar .tbtn.hot { background:linear-gradient(#bb6265,#8e272a); }
.flex-toolbar .kbd { border:0; background:none; color:inherit; font-weight:bold; margin:0; }
.flex-toolbar .divider { background:#a1b7d0; margin:3px 4px; height:auto; }
.toolbar-symbol { font-size:19px; line-height:20px; font-family:Segoe UI Symbol,sans-serif; }
.command-strip { height:32px; display:flex; align-items:center; padding:4px 8px; gap:8px; background:linear-gradient(#e8f0f8,#d0e0f0); border-bottom:1px solid #8ba5c1; }
.command-strip label { font-weight:bold; color:#24476e; white-space:nowrap; }
.command-strip .cmdin { flex:1; height:24px; background:#fff; color:#172638; border:1px solid #819dbb; padding:2px 6px; }
.command-strip .cmd-hint { font-size:11px; color:#4b637b; }
.shell,.shell.banner-open { height:calc(100vh - 162px); grid-template-columns:minmax(0,1fr) 370px; grid-template-rows:minmax(160px,1fr) 225px 118px; gap:4px; padding:4px; }
.shell.banner-open { height:calc(100vh - 195px); }
.panel { border:1px solid #90a7c0; background:#fff; }
.panel + .panel { border-left:1px solid #90a7c0; }
.phead { height:25px; background:linear-gradient(#e6eef7,#c6d7e9); border-color:#8aa3be; padding:0 7px; }
.eyebrow { letter-spacing:0; font-size:11px; color:#203e60; text-transform:none; }
.phead .eyebrow { font-weight:bold; }
.mini,.chip,.tbtn { border-color:#94aac2; background:#f3f7fb; color:#24486e; font-size:11px; }
.mini:hover { background:#d7e7f8; }
#callsPanel { grid-column:1; grid-row:1; }
#rosterPanel { grid-column:1; grid-row:2; }
.right-workspace { grid-column:2; grid-row:1 / 3; min-height:0; display:flex; flex-direction:column; gap:4px; }
.incoming { grid-area:auto; flex:none; height:150px; min-height:25px; }
.incoming.collapsed { height:25px; }
.inc-row { grid-template-columns:76px minmax(0,1fr) 82px; grid-template-rows:20px 18px 18px; height:auto; min-height:66px; gap:1px 5px; padding:4px 7px; }
.inc-row > * { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inc-row > :nth-child(1) { grid-column:1; grid-row:1; }
.inc-row > :nth-child(2) { grid-column:2; grid-row:1; }
.inc-row > :nth-child(3) { grid-column:1 / 3; grid-row:2; }
.inc-row > :nth-child(4) { grid-column:1 / 3; grid-row:3; }
.inc-row > :nth-child(5) { grid-column:3; grid-row:1; text-align:right; }
.inc-row .inc-actions { grid-column:3; grid-row:2 / 4; flex-direction:column; gap:2px; }
.inc-row .inc-actions .mini { padding:2px 4px; }
#detailsPanel { flex:1; min-height:0; }
.bottom { grid-column:1 / 3; grid-row:3; display:grid; grid-template-columns:1fr 1fr; }
.queue-tools { padding:4px 7px; background:#edf2f7; gap:7px; min-height:30px; flex-wrap:wrap; }
.queue-tools input { flex:1; min-width:100px; }
.queue-tools input,.queue-tools select { height:23px; padding:2px 5px; border:1px solid #96abc2; background:#fff; color:#172638; }
.queue-tools label { font-size:11px; }
.grid-title { background:#bdcfe3; color:#193657; font-weight:bold; padding:4px 6px; border-bottom:1px solid #91a8c2; display:flex; justify-content:space-between; }
.cad-grid { width:100%; border-collapse:collapse; table-layout:fixed; font-size:12px; font-family:var(--mono); }
.cad-grid th { background:#e1e9f2; border:1px solid #acbdd0; padding:4px 5px; text-align:left; font:11px Tahoma,sans-serif; cursor:pointer; position:sticky; top:0; z-index:2; }
.cad-grid td { border-right:1px solid #c8d3e0; border-bottom:1px solid #c8d3e0; padding:4px 5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; height:26px; }
.cad-grid tr { cursor:pointer; background:#fff; }
.cad-grid tbody tr:nth-child(even) { background:#f1f5fa; }
.cad-grid tbody tr:hover { outline:1px solid #4878aa; outline-offset:-1px; }
.cad-grid tr.priority-1 { color:#a20f0f; }
.cad-grid tr.priority-1 td:first-child { background:#f8b7b7; color:#591616; }
.cad-grid tr.priority-2 td:first-child { background:#fff1a1; color:#695311; }
.cad-grid tr.priority-3 td:first-child { background:#cff0cd; color:#235721; }
.cad-grid tr.selected td { background:#173e8c; color:#fff; }
.cad-grid td.status-cell { font-weight:bold; color:#004fc1; }
.cad-grid td.unit-name { font-weight:bold; }
.cad-grid td.available { background:#dff1d9; color:#22641b; }
.cad-grid td.busy { background:#fff5b8; color:#756012; }
.cad-grid .overdue { color:#bc1414; font-weight:bold; }
.tabs { background:#d7e3f0; border-color:#8aa3be; height:29px; }
.tab { font-family:Tahoma,sans-serif; letter-spacing:0; text-transform:none; color:#254567; padding:0 10px; border-right:1px solid #94abc3; }
.tab.on { background:#fff; color:#183c68; border-bottom:2px solid #3e6fa2; }
.dsec { padding:9px 10px; border-bottom:1px solid #b7c6d7; }
.dsec-head { color:#234a76; letter-spacing:0; }
.drow { padding:3px 0; }
.dlabel { color:#546a82; }
.narrative { background:#fff; border:1px solid #abbdd0; color:#26374b; padding:8px; }
.empty { padding:18px 10px; color:#52677e; }
.empty strong,.empty .empty-title { color:#284d76; }
.logbody { background:#fff; }
.logline { border-bottom:1px solid #ecf0f5; padding:3px 6px; font-size:11px; }
.log-time { color:#667c94; }
.logline .log-unit { color:#184d91; }
.modal { background:#eef3f9; border:1px solid #537ca6; box-shadow:3px 4px 12px #152c4755; }
.mhead { background:linear-gradient(#688eba,#5279a7); color:#fff; }
.mhead .eyebrow { color:#fff; }
.fin { background:#fff; border-color:#94aac2; color:#172638; }
.btn { background:linear-gradient(#fff,#dce7f3); color:#24486e; border:1px solid #839fbd; }
.btn.primary { background:#315d8e; color:#fff; }
.menu { background:#f5f8fc; border-color:#839fbd; box-shadow:2px 3px 8px #223e5a33; }
.menu-item:hover { background:#1e4e8d; color:#fff; }
.toast { background:#f3f7fc; color:#172638; border-color:#7d9dbc; box-shadow:2px 3px 8px #223e5a33; }
.msg.caller { background:#edf2f8; }
.msg.dispatch { background:#d7e7f8; }
.flex-status { height:24px; display:flex; align-items:center; justify-content:space-between; padding:0 9px; background:#e5edf6; border-top:1px solid #8ca5c0; color:#34536f; font-size:11px; }
#historyResults { max-height:60vh; overflow:auto; }
.history-entry { padding:8px; border-bottom:1px solid #aebfd3; }
.history-entry summary { cursor:pointer; color:#244e80; }
.recommendations { display:flex; flex-wrap:wrap; gap:4px; margin-top:5px; }
@media(max-width:1150px) { .shell { grid-template-columns:minmax(0,1fr) 310px; } .brand-sub,.cmd-hint { display:none; } .topbar-right { gap:7px; } }
@media(max-width:850px) { body { overflow:auto; min-width:760px; } .shell { grid-template-columns:minmax(0,1fr) 290px; } .flex-toolbar .tbtn { min-width:52px; padding:2px 4px; } }
