/* shell/public/pages/shift-monitor.css — Reports → 🖥 Shift Monitor (1:1 v1 replica).
 * Ported from v1 modules/time/public/time.css:108-184 (.sm-* rules), scoped under
 * .shiftmon-page so it cannot leak into other pages (A18). Header/toolbar added fresh
 * (v1 used inline styles in its page template). Reuses v2 .btn classes for the toolbar. */

/* ── header / toolbar ── */
.shiftmon-page .sm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px;}
.shiftmon-page .sm-title{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:2px;}
.shiftmon-page .sm-subtitle{font-size:12px;color:var(--text3);font-family:'DM Mono',monospace;}
.shiftmon-page .sm-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.shiftmon-page .sm-sep{width:1px;height:20px;background:var(--border);}
.shiftmon-page .sm-last-poll{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;}

/* ── sections (tiers) ── */
.shiftmon-page .sm-section{margin-bottom:20px;border-left:4px solid var(--border);border-radius:12px;background:var(--bg2);overflow:hidden;}
.shiftmon-page .sm-section-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;font-size:14px;font-weight:700;font-family:'Inter',sans-serif;letter-spacing:-.01em;}
.shiftmon-page .sm-section-header:hover{background:rgba(255,255,255,.03);}
.shiftmon-page .sm-section-count{font-size:12px;color:var(--text3);font-weight:400;font-family:'DM Mono',monospace;}
.shiftmon-page .sm-section-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:0 14px 14px;}
.shiftmon-page .sm-section.collapsed .sm-section-body{display:none;}
.shiftmon-page .sm-section.tier-missing{border-color:var(--red);}
.shiftmon-page .sm-section.tier-really-missing{border-color:#dc2626;background:rgba(239,68,68,.04);}
.shiftmon-page .sm-section.tier-private{border-color:#f97316;}
.shiftmon-page .sm-section.tier-break{border-color:var(--yellow);}
.shiftmon-page .sm-section.tier-disconnected{border-color:#f59e0b;}
.shiftmon-page .sm-section.tier-online{border-color:var(--accent);}
.shiftmon-page .sm-section.tier-finished{border-color:#a78bfa;}
.shiftmon-page .sm-section.tier-upcoming{border-color:#38bdf8;}
.shiftmon-page .sm-section.tier-nosched{border-color:var(--border);}

/* ── card ── */
.shiftmon-page .sm-card{background:var(--bg1);border:1px solid var(--border);border-radius:12px;padding:14px;transition:all .2s;cursor:pointer;position:relative;overflow:hidden;}
.shiftmon-page .sm-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15);}
.shiftmon-page .sm-card-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;}
.shiftmon-page .sm-avatar{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0;font-family:'Inter',sans-serif;background-size:cover;background-position:center;border:2px solid var(--border);}
.shiftmon-page .sm-avatar.has-photo{background-color:var(--bg3);}
.shiftmon-page .sm-name-block{flex:1;min-width:0;}
.shiftmon-page .sm-nickname{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
.shiftmon-page .sm-fullname{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;text-transform:capitalize;}
.shiftmon-page .sm-location{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;margin-top:1px;}
.shiftmon-page .sm-status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;font-family:'DM Mono',monospace;white-space:nowrap;margin-bottom:6px;}
.shiftmon-page .sm-status-badge .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.shiftmon-page .sm-info-row{font-size:11px;font-family:'DM Mono',monospace;color:var(--text2);margin-bottom:4px;}
.shiftmon-page .sm-info-row b{color:var(--text);font-weight:700;}
.shiftmon-page .sm-shift-bar{display:flex;align-items:center;gap:8px;font-size:11px;font-family:'DM Mono',monospace;color:var(--text3);padding:6px 10px;background:var(--bg3);border-radius:8px;margin-top:6px;flex-wrap:wrap;}
.shiftmon-page .sm-shift-bar .time{color:var(--text2);font-weight:600;}
.shiftmon-page .sm-flags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}
.shiftmon-page .sm-flag{font-size:10px;padding:3px 8px;border-radius:6px;font-family:'DM Mono',monospace;font-weight:700;letter-spacing:.02em;}
.shiftmon-page .sm-flag.red{background:rgba(239,68,68,.15);color:var(--red);}
.shiftmon-page .sm-flag.orange{background:rgba(249,115,22,.15);color:#f97316;}
.shiftmon-page .sm-flag.yellow{background:rgba(234,179,8,.15);color:var(--yellow);}
.shiftmon-page .sm-flag.blue{background:rgba(56,189,248,.12);color:#38bdf8;}
.shiftmon-page .sm-flag.purple{background:rgba(167,139,250,.12);color:#a78bfa;}
.shiftmon-page .sm-flag.gray{background:rgba(107,114,128,.12);color:#9ca3af;}
.shiftmon-page .sm-last-online{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;margin-top:4px;}

/* ── empty / loading ── */
.shiftmon-page .sm-empty{padding:40px;text-align:center;color:var(--text3);font-size:14px;}
.shiftmon-page .sm-empty.err{color:var(--red);}
