
/* ---------- protective orders (components/orders.js) */
.ro-card { border: 1px solid var(--border); border-left: 4px solid #b3261e; background: var(--bg-1); padding: 8px 10px; margin-bottom: 8px; font-size: 12.5px; }
.ro-card.protected { border-left-color: #2766b0; }
.ro-card.old { opacity: .6; border-left-color: var(--border-strong); }
.ro-top { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.ro-kind { font-weight: 800; color: var(--text-0); }
.ro-role { margin-left: auto; font: 800 10.5px var(--font-mono); color: var(--text-2); letter-spacing: .5px; }
.ro-cond { margin: 4px 0; padding: 4px 6px; background: var(--bg-3); border-left: 3px solid var(--warn); }
.ro-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--text-2); font-size: 11px; margin-top: 2px; }
.ro-act { margin-top: 6px; text-align: right; }

/* ---------- schedule app (components/schedule.js) */
.sc-layout { display: grid; grid-template-columns: 330px 1fr; gap: 8px; align-items: start; }
.sc-today .panel-header { display: flex; justify-content: space-between; }
.sc-today-list { padding: 4px 0; }
.sc-today-shift { padding: 6px 10px; border-bottom: 1px solid var(--border-soft); cursor: pointer; font-size: 12px; }
.sc-today-shift:hover { background: var(--cad-hover); }
.sc-people { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.sc-person { padding: 1px 6px; border: 1px solid var(--border); background: var(--bg-1); font-size: 11px; color: var(--text-2); }
.sc-person.on { border-color: #1f8a3c; color: var(--text-0); box-shadow: inset 3px 0 0 #1f8a3c; }
.sc-person i { color: var(--text-3); font-style: normal; }
.sc-duty { padding: 6px 10px; font-size: 12px; display: flex; flex-direction: column; gap: 2px; max-height: 300px; overflow: auto; }
.sc-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.sc-day { background: var(--bg-2); border: 1px solid var(--border); min-height: 420px; display: flex; flex-direction: column; }
.sc-day.today { border-color: var(--accent); box-shadow: inset 0 3px 0 var(--accent); }
.sc-day-h { display: flex; justify-content: space-between; padding: 5px 8px; font-weight: 800; font-size: 12px; background: linear-gradient(180deg, var(--cad-head-1), var(--cad-head-2)); border-bottom: 1px solid var(--border); }
.sc-day-b { padding: 6px; display: flex; flex-direction: column; gap: 6px; }
.sc-none { color: var(--text-3); font-size: 11px; text-align: center; padding: 10px 0; }
.sc-shift { padding: 5px 7px; background: var(--bg-1); border: 1px solid var(--border); border-left: 4px solid #0f766e; cursor: pointer; font-size: 11.5px; }
.sc-shift:hover { background: var(--cad-hover); }
.sc-shift.mine { border-left-color: var(--accent); background: var(--cad-sel); }
.sc-shift.live { box-shadow: 0 0 0 1px #1f8a3c inset; }
.sc-shift.past { opacity: .55; }
.sc-time { font-size: 11px; color: var(--text-2); }
.sc-live { background: #1f8a3c; color: #fff; padding: 0 4px; font-weight: 800; }
.sc-title { font-weight: 800; color: var(--text-0); margin: 1px 0; }
.sc-fill { font-size: 10.5px; color: var(--text-2); }
.sc-fill.full { color: #1f8a3c; } .sc-fill.empty { color: #c62828; }
.sc-notes { margin: 8px 0; padding: 6px 8px; background: var(--bg-3); border-left: 3px solid var(--info); font-size: 12px; white-space: pre-wrap; }

/* ---------- call heat map (components/map.js) */
.mw-heat { width: 2200px; height: 3300px; pointer-events: none; }
.mw-heat.hidden, .mw-hot.hidden { display: none; }
.mw-hot { position: absolute; top: 10px; right: 10px; z-index: 5; width: 290px; background: rgba(12, 16, 22, .9); border: 1px solid #333c48; color: #e8edf3; font-size: 12px; }
.mw-hot-h { padding: 6px 10px; font-weight: 800; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: #facc15; border-bottom: 1px solid #333c48; }
.mw-hot-r { display: grid; grid-template-columns: 22px 1fr auto; gap: 6px; align-items: center; padding: 4px 10px; border-bottom: 1px solid #222a35; }
.mw-hot-r span:nth-child(2) { display: flex; flex-direction: column; }
.mw-hot-r i { font-style: normal; color: #9aa6b5; font-size: 10.5px; }
.map-heat-opts { display: inline-flex; gap: 4px; }
.map-heat-opts.hidden { display: none; }
.map-heat-opts .input { height: 26px; width: auto; font-size: 11.5px; padding: 0 4px; }
#map-heat-btn.active { background: #dc2626; color: #fff; border-color: #991b1b; }

/* ---------- supervisor app (components/supervisor.js) */
.sv-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sv-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 8px; align-items: start; }
.sv-col { display: flex; flex-direction: column; gap: 8px; }
.sv-units .panel-header { display: flex; justify-content: space-between; align-items: center; }
.sv-warn td { background: rgba(212, 161, 6, .14) !important; }
.sv-short { color: #c62828; font-weight: 700; }
.sv-panic { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; }
.sv-panic > span { display: inline-flex; }
.sv-panic { padding: 6px 10px; background: #c4001a; color: #fff; font-size: 13px; animation: fs-blink 1s steps(2) infinite; }

/* Roster: clock times (components/employees.js) */
.emp-row { cursor: pointer; }
.emp-row.open td { background: var(--cad-sel, rgba(40, 110, 200, .1)) !important; }
.emp-clock { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.emp-clock.in b { color: var(--good-strong, #2e7d32); }
.emp-clock-sub { font-size: 11px; color: var(--text-2); white-space: nowrap; }
.emp-hist > td { padding: 0 !important; background: var(--bg-1) !important; }
.emp-hist-box { padding: 10px 14px 12px 52px; }
.emp-hist-h { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.emp-hist-table { width: auto; min-width: 520px; }
html.app-mode .emp-row.open td { background: var(--mx-info-soft) !important; }
html.app-mode .emp-hist > td { background: var(--mx-hover) !important; }

/* panel headers: title left, actions right (was in the removed fto.css) */
section.panel > .panel-header { display: flex; justify-content: space-between; align-items: center; }
