/* modules/time/public/time.css — Phase 2 skeleton.
 *
 * Phase 2: empty placeholder. All schedule/tracker/rooms CSS still lives in
 * public/core/styles-base.css. Phase 3 progressively MOVES rules in here as
 * the matching JS render functions migrate from index.html into time.js.
 *
 * Naming convention for Phase 3+ rules: prefix with .time- / .sched- / .track-
 * to keep ownership obvious and prevent leaks into other modules.
 */

/* === Phase 14: CSS rules extracted from core/styles-base.css ===
 */


/* ===== SCHEDULE ===== */
.schedule-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:14px;}

.sched-day-header{background:var(--bg3);padding:8px 4px;text-align:center;font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;text-transform:uppercase;border-radius:4px;transition:all .15s;}

.sched-day-header:hover{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(0,229,160,.3);}

.sched-cell{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:6px;min-height:70px;cursor:pointer;transition:all .15s;position:relative;}

.sched-cell:hover{border-color:var(--accent);background:var(--bg3);}

.sched-cell.other-month{opacity:.35;}

.sched-cell .day-num{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace;margin-bottom:4px;}

.sched-cell.today .day-num{color:var(--accent);font-weight:700;}

.sched-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}

.sched-chip{font-size:9px;padding:2px 5px;border-radius:4px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font-family:'DM Mono',monospace;}

.sched-chip.shift{background:rgba(0,229,160,.15);color:var(--accent);}

.sched-chip.dayoff{background:var(--yellow-dim);color:var(--yellow);}

.sched-chip.vacation{background:var(--yellow-dim);color:var(--yellow);}

.sched-chip.period{background:var(--blue-dim);color:var(--blue);}

.sched-chip.sick{background:rgba(249,115,22,.15);color:#f97316;}

.sched-chip.missed{background:var(--red-dim);color:var(--red);}

.sched-chip.makeup{background:rgba(167,139,250,.15);color:#a78bfa;}

/* Outcome-based colors for past-date shifts (#12) — override type colors when outcome is known */
.sched-chip.outcome-completed{background:rgba(0,229,160,.30);color:var(--accent);border:1px solid rgba(0,229,160,.5);}

.sched-chip.outcome-absence{background:var(--red-dim);color:var(--red);border:1px solid rgba(239,68,68,.4);}

.sched-chip.outcome-incomplete{background:rgba(234,179,8,.20);color:var(--yellow);border:1px solid rgba(234,179,8,.45);}

.dov-section{margin-bottom:16px;}

.dov-section-title{font-size:11px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);padding:8px 0 6px;border-bottom:1px solid var(--border);margin-bottom:4px;display:flex;align-items:center;gap:8px;}

.dov-section-count{font-size:10px;background:var(--bg3);border-radius:10px;padding:1px 7px;}

.dov-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .12s;}

.dov-row:hover{background:var(--bg3);}

.dov-row:nth-child(odd){background:rgba(255,255,255,.02);}

.dov-row:nth-child(even){background:rgba(255,255,255,.045);}

.dov-row:hover{background:rgba(255,255,255,.07)!important;}

.dov-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;}

.dov-avatar img{width:100%;height:100%;object-fit:cover;}

.dov-avatar-init{width:36px;height:36px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--accent);flex-shrink:0;}

.dov-name{font-size:13px;font-weight:500;flex:1;min-width:0;}

.dov-name small{font-size:11px;color:var(--text3);font-weight:400;margin-left:6px;}

.dov-time{font-size:12px;font-family:'DM Mono',monospace;color:var(--text2);min-width:100px;}

.dov-type-pill{font-size:10px;padding:2px 8px;border-radius:10px;font-family:'DM Mono',monospace;white-space:nowrap;}

.dov-type-pill.shift{background:rgba(0,229,160,.15);color:var(--accent);}

.dov-type-pill.dayoff{background:var(--yellow-dim);color:var(--yellow);}

.dov-type-pill.vacation{background:var(--yellow-dim);color:var(--yellow);}

.dov-type-pill.period{background:var(--blue-dim);color:var(--blue);}

.dov-type-pill.sick{background:rgba(249,115,22,.15);color:#f97316;}

.dov-type-pill.missed{background:var(--red-dim);color:var(--red);}

.dov-type-pill.makeup{background:rgba(167,139,250,.15);color:#a78bfa;}

.dov-type-pill.noshift{background:var(--red-dim);color:var(--red);font-weight:600;}

.dov-notes{font-size:11px;color:var(--text3);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}


/* ===== MOBILE RESPONSIVE ===== */
/* ── Shift Monitor v2 ── */
.sm-section{margin-bottom:20px;border-left:4px solid var(--border);border-radius:12px;background:var(--bg2);overflow:hidden;}

.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;}

.sm-section-header:hover{background:rgba(255,255,255,.03);}

.sm-section-count{font-size:12px;color:var(--text3);font-weight:400;font-family:'DM Mono',monospace;}

.sm-section-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:0 14px 14px;}

.sm-section.collapsed .sm-section-body{display:none;}

.sm-section.tier-missing{border-color:var(--red);}

.sm-section.tier-really-missing{border-color:#dc2626;background:rgba(239,68,68,.04);}

.sm-section.tier-private{border-color:#f97316;}

.sm-section.tier-break{border-color:var(--yellow);}

.sm-section.tier-disconnected{border-color:#f59e0b;}

.sm-section.tier-online{border-color:var(--accent);}

.sm-section.tier-finished{border-color:#a78bfa;}

.sm-section.tier-upcoming{border-color:#38bdf8;}

.sm-section.tier-nosched{border-color:var(--border);}

.sm-card{background:var(--bg1);border:1px solid var(--border);border-radius:12px;padding:14px;transition:all .2s;cursor:pointer;position:relative;overflow:hidden;}

.sm-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15);}

.sm-card-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;}

.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);}

.sm-avatar.has-photo{background-color:var(--bg3);}

.sm-name-block{flex:1;min-width:0;}

.sm-nickname{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}

.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;}

.sm-location{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;margin-top:1px;}

.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;}

.sm-status-badge .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}

.sm-info-row{font-size:11px;font-family:'DM Mono',monospace;color:var(--text2);margin-bottom:4px;}

.sm-info-row b{color:var(--text);font-weight:700;}

.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;}

.sm-shift-bar .time{color:var(--text2);font-weight:600;}

.sm-flags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}

.sm-flag{font-size:10px;padding:3px 8px;border-radius:6px;font-family:'DM Mono',monospace;font-weight:700;letter-spacing:.02em;}

.sm-flag.red{background:rgba(239,68,68,.15);color:var(--red);}

.sm-flag.orange{background:rgba(249,115,22,.15);color:#f97316;}

.sm-flag.yellow{background:rgba(234,179,8,.15);color:var(--yellow);}

.sm-flag.blue{background:rgba(56,189,248,.12);color:#38bdf8;}

.sm-flag.purple{background:rgba(167,139,250,.12);color:#a78bfa;}

.sm-flag.gray{background:rgba(107,114,128,.12);color:#9ca3af;}

.sm-last-online{font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;margin-top:4px;}


/* ═══ LIVE EARNINGS ═══ */
.live-platform-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:16px;position:relative;transition:border-color .2s;}

.live-platform-card:hover{border-color:var(--border2);}

.live-platform-card.status-live{border-color:rgba(0,229,160,.35);background:rgba(0,229,160,.04);}

.live-platform-card.status-offline{opacity:.6;}

.live-platform-card .plat-name{font-size:13px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;}

.live-platform-card .plat-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

.live-platform-card .plat-status-dot.live{background:var(--accent);animation:pulse 2s infinite;}

.live-platform-card .plat-status-dot.manual{background:var(--yellow);}

.live-platform-card .plat-status-dot.offline{background:var(--text3);}

.live-platform-card .plat-main-val{font-family:'DM Mono',monospace;font-size:22px;font-weight:700;color:var(--accent);margin-bottom:2px;}

.live-platform-card .plat-token-val{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace;}

.live-platform-card .plat-updated{font-size:10px;color:var(--text3);margin-top:8px;font-family:'DM Mono',monospace;}

.live-platform-card .plat-actions{display:flex;gap:6px;margin-top:10px;}

.live-platform-card .plat-edit-btn{background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text3);font-size:11px;padding:4px 8px;cursor:pointer;}

.live-platform-card .plat-edit-btn:hover{color:var(--text);border-color:var(--border2);}

.live-platform-card .plat-remove-btn{background:none;border:none;color:var(--text3);font-size:12px;cursor:pointer;padding:4px;border-radius:4px;}

.live-platform-card .plat-remove-btn:hover{color:var(--red);}


/* ===== ONLINE TRACKING ===== */
.ot-header{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:10px;color:var(--text3);font-family:'DM Mono',monospace;text-transform:uppercase;}

.ot-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;}

.ot-row:hover{background:rgba(255,255,255,.02);}

.ot-name{width:140px;min-width:140px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.ot-bar-wrap{flex:1;position:relative;height:22px;background:var(--bg3);border-radius:4px;overflow:hidden;min-width:100px;}

.ot-seg{position:absolute;top:0;height:100%;min-width:1px;border-radius:1px;cursor:pointer;}

.ot-nums{width:380px;min-width:380px;display:flex;gap:6px;font-size:11px;font-family:'DM Mono',monospace;align-items:center;justify-content:flex-end;}

.ot-nums span{white-space:nowrap;}

.ot-hour-markers{position:relative;height:14px;margin-left:148px;margin-right:388px;}

.ot-hour-mark{position:absolute;top:0;font-size:9px;color:var(--text3);font-family:'DM Mono',monospace;transform:translateX(-50%);}

.ot-detail{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--bg2);border-bottom:1px solid var(--border);}

.ot-detail.open{max-height:400px;}

.ot-detail-inner{padding:10px 0;}

.ot-detail-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}

.ot-detail-label{width:140px;min-width:140px;font-size:11px;font-family:'DM Mono',monospace;color:var(--text3);text-transform:uppercase;text-align:right;padding-right:4px;}

.ot-detail-bar{flex:1;position:relative;height:16px;background:var(--bg3);border-radius:3px;overflow:hidden;margin-right:388px;}

.ot-detail-summary{padding:6px 0;font-size:12px;color:var(--text2);line-height:1.6;margin-left:148px;margin-right:388px;}
