/* JKV_WEB_R27_20260924 - Admin / Supervisor technician calendar: colour-coded, readable, tappable.
   Presentation only. No scheduling rule, assignment or data change. */
.calendar-job{display:block;position:relative;margin:6px 0 0;padding:8px 10px 8px 12px;border-radius:10px;background:#f3f8fd;border:1px solid #dbe8f3;border-left:5px solid #1663C7;cursor:pointer;transition:box-shadow .12s ease,transform .06s ease}
.calendar-job:hover{box-shadow:0 6px 14px rgba(13,43,91,.12)}
.calendar-job:active{transform:translateY(1px)}
.calendar-job b{display:block;font-size:13px;color:#0D2B5B}
.calendar-job small{display:block;font-size:11.5px;color:#4d6784;margin-top:2px}
.calendar-job[data-jkv-state="TRAVEL"]{border-left-color:#F7941D;background:#fff7ec}
.calendar-job[data-jkv-state="ON-SITE"]{border-left-color:#1F8A3C;background:#f1faf4}
.calendar-job[data-jkv-state="RUNNING LATE"]{border-left-color:#b42318;background:#fff1f0}
.calendar-job[data-jkv-state="COMPLETED"]{border-left-color:#7d8ea1;background:#f6f8fa;opacity:.85}
[data-calendar-panel] .badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.03em;background:#eef4fb;color:#1663C7;border:1px solid #d7e5f1}
[data-calendar-panel] .badge[data-jkv-state="AVAILABLE"]{background:#eaf7ef;color:#1F8A3C;border-color:#bfe3cc}
[data-calendar-panel] .badge[data-jkv-state="TRAVEL"]{background:#fff3e2;color:#9a5b00;border-color:#f5cf9b}
[data-calendar-panel] .badge[data-jkv-state="ON-SITE"]{background:#e8f6ed;color:#166c30;border-color:#aedcc0}
[data-calendar-panel] .badge[data-jkv-state="RUNNING LATE"]{background:#fdecea;color:#b42318;border-color:#f3bdb7}
[data-calendar-panel] .badge[data-jkv-state="COMPLETED"]{background:#eef1f5;color:#4d6784;border-color:#d9e1ea}
[data-calendar-panel] .badge[data-jkv-state="LEAVE"],[data-calendar-panel] .badge[data-jkv-state="UNAVAILABLE"]{background:#f4f5f7;color:#6b7684;border-color:#dfe3e8}
.jkv-cal-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.jkv-cal-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;color:#4d6784}
.jkv-cal-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
/* week / month grids stay grids; only the day list becomes cards on phones */
[data-calendar-panel="week"] .table-wrap,[data-calendar-panel="month"] .table-wrap{overflow-x:auto!important}
[data-calendar-panel="week"] table.data-table,[data-calendar-panel="month"] table.data-table{display:table!important;min-width:720px!important}
[data-calendar-panel="week"] table.data-table thead,[data-calendar-panel="month"] table.data-table thead{display:table-header-group!important}
[data-calendar-panel="week"] table.data-table tr,[data-calendar-panel="month"] table.data-table tr{display:table-row!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;box-shadow:none!important;background:none!important}
[data-calendar-panel="week"] table.data-table td,[data-calendar-panel="month"] table.data-table td{display:table-cell!important;padding:8px 10px!important;vertical-align:top!important;border-bottom:1px solid #edf2f7!important}
[data-calendar-panel="week"] table.data-table td::before,[data-calendar-panel="month"] table.data-table td::before{display:none!important}
[data-calendar-panel] table.data-table td:first-child,[data-calendar-panel] table.data-table th:first-child{position:sticky;left:0;background:#fff;z-index:2}
@media (max-width:760px){
  .calendar-job{padding:10px 12px 10px 14px}
  .calendar-job b{font-size:14px}
  [data-calendar-panel="week"] table.data-table,[data-calendar-panel="month"] table.data-table{min-width:640px!important;font-size:12.5px!important}
}
