/* Shared column widths keep time labels, staff rows and totals aligned. */
#scheduleView .schedule-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;background:#f4f8fe;border:1px solid #d4e2ef;border-radius:16px;box-shadow:none}
#scheduleView .schedule-toolbar .action-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#scheduleView .schedule-toolbar .search{min-width:190px;flex:1}
#scheduleView .schedule-board.whole-company{overflow:hidden;border:1px solid #d2e0ed;border-top:4px solid #2876b2;border-radius:18px;box-shadow:0 8px 28px #183b6410}
#scheduleView .schedule-board>.card-head{display:flex;align-items:center;flex-wrap:wrap;gap:16px;background:linear-gradient(110deg,#eef7ff,#f4f0ff);padding:22px;border-bottom:1px solid #d4e2ee}
#scheduleView .company-schedule-table{border-radius:12px;max-height:70vh;overflow:auto}
#scheduleView .company-schedule-table:has(.visual-schedule-scroll){max-height:none;overflow:visible}
#scheduleView .visual-schedule-scroll{max-height:70vh;overflow:auto;border:1px solid #d2dfec;border-radius:12px;isolation:isolate}
#scheduleView .visual-schedule{width:max-content;min-width:100%;--team-columns:180px 120px 180px repeat(var(--team-block-count,30),26px) 64px 200px}
#scheduleView .visual-schedule.schedule-editable{--team-columns:180px 120px 180px repeat(var(--team-block-count,30),26px) 120px 64px 200px}
#scheduleView .visual-grid-row{grid-template-columns:var(--team-columns);align-items:stretch;width:100%}
#scheduleView .visual-grid-row>*{box-sizing:border-box;min-width:0}
#scheduleView .visual-time-header{position:sticky;top:0;z-index:5;background:#eaf2fb;min-height:50px;font-size:12px;color:#37526e}
#scheduleView .visual-name-head,#scheduleView .visual-person{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid #d4e0ec;padding:14px 16px}
#scheduleView .visual-name-head{background:#eaf2fb;z-index:6}
#scheduleView .visual-person-row{min-height:98px;border-bottom:1px solid #e0e8f0;background:#fff}
#scheduleView .visual-person-row:nth-child(odd){background:#f8fbff}
#scheduleView .visual-person-row:nth-child(odd) .visual-person{background:#f8fbff}
#scheduleView .visual-person-row:hover,#scheduleView .visual-person-row:hover .visual-person{background:#eef6ff}
#scheduleView .visual-person b{display:block;line-height:1.4;color:#173e63;font-size:13px;overflow-wrap:anywhere}
#scheduleView .visual-person small{display:block;font-size:11px;line-height:1.45;margin-top:4px;color:#667b90}
#scheduleView .visual-status,#scheduleView .visual-result{padding:14px 10px;display:flex;align-items:center}
#scheduleView .visual-status select,#scheduleView .visual-result select{width:100%;min-width:0;padding:8px 6px;border:1px solid #cbd9e7;border-radius:8px;background:#fff;font-size:11px}
#scheduleView .visual-shift-summary{padding:14px 12px;display:flex;flex-direction:column;justify-content:center;gap:8px}
#scheduleView .visual-shift-summary b{font-size:12px;line-height:1.55;overflow-wrap:anywhere}
#scheduleView .lunch-status.has-lunch{display:block;background:#fff4d9;color:#805a10;border:1px solid #f0d796;border-radius:7px;padding:6px 8px;font-size:11px;line-height:1.4}
#scheduleView .visual-shift-cell{height:auto;min-height:98px;border-right:1px solid #dce7f0}
#scheduleView .visual-shift-cell.work{background:#d6eafa}
#scheduleView .visual-shift-cell.lunch{background:#f2ce79}
#scheduleView .visual-shift-cell.open{background:transparent}
#scheduleView .timeline-legend .legend-work{background:#d6eafa}
#scheduleView .timeline-legend .legend-lunch{background:#f2ce79;border-color:#dab65f}
#scheduleView .visual-hours{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px;color:#164f7b;background:#eef5fc}
#scheduleView .visual-notes{padding:14px 12px;font-size:12px;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap;background:transparent}
/* Department dividers remain clear across the full day timeline. */
#scheduleView .visual-department{--department-color:#244d78;--department-end:#356b9b;--department-accent:#8fc7f4}
#scheduleView .visual-department.reception{--department-color:#17606d;--department-end:#247e86;--department-accent:#94e0d6}
#scheduleView .visual-department.research{--department-color:#50447c;--department-end:#71619d;--department-accent:#c7b8ef}
#scheduleView .visual-department.hybrid{--department-color:#276850;--department-end:#3c8069;--department-accent:#b1e4c7}
#scheduleView .visual-department-title{padding:10px 14px;background:linear-gradient(100deg,var(--department-color),var(--department-end));color:#fff;border-left:5px solid var(--department-accent);border-bottom:1px solid var(--department-color);box-shadow:inset 0 1px #ffffff20}
#scheduleView .visual-department-title b{font:800 16px/1.4 Manrope,Arial,sans-serif;letter-spacing:.015em}
#scheduleView .visual-department-title span{opacity:1;color:#fff;background:#ffffff1a;border:1px solid #ffffff40;border-radius:20px;padding:3px 8px;font-size:11px}
/* Consistent weekly columns, with hours and notes together at the right. */
#scheduleView .company-week{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:1730px;width:100%;font-size:12px}
#scheduleView .company-week th,#scheduleView .company-week td{box-sizing:border-box;min-width:0;padding:10px 8px;vertical-align:top;border-right:1px solid #e0e8f1;border-bottom:1px solid #dce6ef;overflow-wrap:anywhere}
#scheduleView .company-week .week-person{width:190px;position:sticky;left:0;background:#fff;z-index:2;padding-left:14px;border-right:2px solid #d8e4ee}
#scheduleView .company-week .week-department{width:135px}
#scheduleView .company-week .week-day{width:155px}
#scheduleView .company-week .week-hours{width:80px;text-align:center}
#scheduleView .company-week .week-notes{width:240px;border-left:2px solid #e6c77d;border-right:0}
#scheduleView .company-week th{position:sticky;top:0;z-index:3;background:#eaf2fb;color:#254d70;padding-top:13px;padding-bottom:13px;text-align:left;font-weight:800;border-bottom:2px solid #c5d9eb}
#scheduleView .company-week th.week-person{background:#eaf2fb;z-index:4}
#scheduleView .company-week .week-day-label{display:block;font:800 14px/1.3 Manrope,Arial,sans-serif}
#scheduleView .company-week .week-date-label{display:block;margin-top:3px;color:#657d94;font-size:11px;font-weight:600}
#scheduleView .company-week th.selected-day{background:#245f8e;color:#fff}
#scheduleView .company-week th.selected-day .week-date-label{color:#e0efff}
#scheduleView .company-week tbody tr:nth-child(even) td{background:#f8fbff}
#scheduleView .company-week tbody tr:hover td{background:#edf6ff}
#scheduleView .company-week tbody td.selected-day{background:#eef6fc}
#scheduleView .company-week .week-person>b{display:block;font:800 13px/1.4 Manrope,Arial,sans-serif;color:#193f61}
#scheduleView .company-week .week-person>small{display:block;font-size:11px;line-height:1.4;color:#657b90;margin-top:3px}
#scheduleView .company-week .dept-pill{border-radius:8px;padding:5px 7px;line-height:1.4;font-size:11px;font-weight:800;background:#e5eefb;color:#284f7c;border-left:3px solid #3b6591}
#scheduleView .company-week .dept-pill.reception{background:#e0f3f1;color:#185d65;border-color:#25828c}
#scheduleView .company-week .dept-pill.research{background:#eee8fa;color:#59427d;border-color:#79629e}
#scheduleView .company-week .dept-pill.hybrid{background:#e7f3e9;color:#326c47;border-color:#5a9470}
#scheduleView .company-week .shift-cell,#scheduleView .company-week .off-cell{box-sizing:border-box;min-height:60px;padding:7px;border-radius:8px;line-height:1.45}
#scheduleView .company-week .shift-cell{background:#f2f8fe;border:1px solid #c9deef;border-top:3px solid #77a8cd;box-shadow:0 2px 4px #244c6e06}
#scheduleView .company-week .shift-cell b{font-size:11px;font-weight:800;line-height:1.5;color:#1b4f79}
#scheduleView .company-week .shift-cell small{color:#795817;background:#fff2d4;border-radius:5px;padding:3px 5px;margin-top:5px;font-size:11px;line-height:1.4}
#scheduleView .company-week .off-cell{background:#f1f4f7;color:#768798;display:flex;flex-direction:column;justify-content:center;border:1px dashed #d7e0e9}
#scheduleView .company-week .schedule-row-edit{min-height:24px;padding:3px 9px;margin-top:5px;font-size:11px}
#scheduleView .company-week .week-hours{background:#eef5fc}
#scheduleView .company-week .week-hours>small{display:block;font-size:10px;color:#687e93;margin-top:5px}
#scheduleView .company-week .weekly-hours{min-width:0;padding:6px 8px;border-radius:8px;font-size:13px}
#scheduleView .company-week th.week-notes{background:#fff2d6;color:#70521d}
#scheduleView .company-week td.week-notes{background:#fffdf7;padding:10px}
#scheduleView .company-week .week-note-list{display:grid;gap:9px}
#scheduleView .company-week .week-note-entry{border-left:3px solid #d5a348;padding-left:8px;line-height:1.45}
#scheduleView .company-week .week-note-entry>b{display:block;color:#805b19;font-size:10px;letter-spacing:.02em;margin-bottom:3px}
#scheduleView .company-week .week-note-entry>span{display:block;color:#685328;font-size:11px;white-space:pre-line;overflow-wrap:anywhere}
#scheduleView .company-week .week-no-note{color:#a3adba}
#scheduleView .company-week .week-empty{padding:24px;text-align:center;color:#60768b}
#scheduleView .company-week caption{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#scheduleView .schedule-row-edit{min-height:30px;border-radius:8px}
@media(max-width:760px){#scheduleView .schedule-toolbar .action-row{margin-left:0;width:100%}#scheduleView .schedule-board>.card-head{padding:16px}#scheduleView .timeline-legend small{width:100%;margin-left:0}}
/* Keep the note heading on its own full-width line. */
#scheduleView .visual-notes{display:block;text-align:left}
#scheduleView .visual-notes>b{display:block;width:100%;white-space:nowrap;overflow-wrap:normal;margin-bottom:3px;font-weight:800;line-height:1.4}
/* Compact rows while allowing longer notes to expand naturally. */
#scheduleView .visual-time-label{height:50px}
#scheduleView .visual-notes .visual-note-text{color:inherit;white-space:pre-line}
#scheduleView .visual-notes{white-space:normal}
#scheduleView .visual-department{border-bottom-width:3px}
#scheduleView .visual-person small{margin-top:2px}
#scheduleView .visual-status select,#scheduleView .visual-result select{min-height:30px;padding:5px 4px}
#scheduleView .lunch-status.has-lunch{padding:3px 5px}
#scheduleView .visual-hours{padding:6px;gap:2px}
#scheduleView .visual-person-row{min-height:60px}
#scheduleView .visual-shift-cell{min-height:60px}
#scheduleView .visual-person{padding:7px 10px}
#scheduleView .visual-status,#scheduleView .visual-result{padding:7px 6px}
#scheduleView .visual-shift-summary{padding:7px 8px;gap:3px}
#scheduleView .visual-notes{padding:7px 9px;line-height:1.4}
#scheduleView .visual-person .schedule-row-edit{margin-top:5px;min-height:26px;padding:3px 10px}

.dashboard-daily-banners{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 20px}.dashboard-daily-banners article{padding:16px 20px;border-radius:14px}.dashboard-encouragement{background:#e9f7ef;border:1px solid #b1ddc2}.dashboard-hint{background:#fff7e3;border:1px solid #ebd293}.dashboard-daily-banners small{font-weight:800;letter-spacing:.04em;color:#315b57}.dashboard-daily-banners p{margin:8px 0 0;line-height:1.5;font-weight:600;white-space:pre-wrap}.dashboard-hint details{margin-top:12px}.dashboard-hint textarea{display:block;width:100%;margin:8px 0;padding:10px}.dashboard-hint summary{cursor:pointer}@media(max-width:800px){.dashboard-daily-banners{grid-template-columns:1fr}}
#dashboardView>.daily-message-grid{display:none!important}
#dashboardHintEditor[hidden]{display:none!important}

/* Exact portions of late arrivals, early departures and absences stay visibly distinct. */
#scheduleView .visual-shift-cell.attendance-missed{box-shadow:inset 0 1px 0 #bc595933,inset 0 -1px 0 #bc595933;background-repeat:no-repeat}
#scheduleView .team-time-missed{display:block;color:#922f30;font-size:10px;font-weight:800;line-height:1.4;margin-top:5px}
#scheduleView .company-week .shift-cell.has-missed-time{border-color:#d99a95;border-top-color:#bf6461;background:#fff6f4}
#scheduleView .week-attendance-bar{height:9px;min-width:55px;margin-top:8px;border:1px solid #c9bec0;border-radius:4px;background-repeat:no-repeat}
#scheduleView .attendance-timeline-legend{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#84403b;margin:5px 8px}
#scheduleView .legend-missed{display:inline-block;width:14px;height:14px;border-radius:3px;background:#e6a09b;border:1px solid #bc6d68;flex-shrink:0}

.team-request-badge{display:block;color:#345b70;font-size:11px;line-height:1.3;margin-bottom:5px;white-space:normal}

/* Continuous employee separators, including sticky identity cells. */
#scheduleView .visual-person-row>*,#scheduleView .company-week tbody tr>td,#scheduleView .company-week tbody tr>th{border-bottom:2px solid #7793aa}
