/* Shared 7-column natural-month reading surface: Manager + Office.
   Occupancy, Pending, conflicts and formal numbering remain distinct facts. */
.shared-month-calendar { min-width:0; width:100%; }
.shared-month-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,31%); gap:14px; align-items:start; padding:12px; }
.shared-month-intro { display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:space-between; padding:15px 18px 12px; border-bottom:1px solid #dbe4eb; }
.shared-month-intro p { margin:0; color:#566b7b; font-size:12px; line-height:1.5; }
.shared-month-intro strong { color:#183f56; font-size:14px; }
.shared-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); width:100%; overflow:hidden; border:1px solid #dbe4eb; border-radius:12px; background:#dbe4eb; gap:1px; }
.shared-month-weekday { min-width:0; padding:9px 4px; background:#eaf0f5; color:#344c60; text-align:center; font-size:12px; font-weight:770; }
.shared-month-day { display:flex; flex-direction:column; align-items:stretch; text-align:left; gap:7px; min-width:0; min-height:97px; padding:8px 9px; margin:0; border:0; border-radius:0; color:#263c4c; background:#fff; cursor:pointer; box-shadow:none; transition:background .15s ease,box-shadow .15s ease; }
.shared-month-day:hover:not(.outside) { background:#f2f8fd; }
.shared-month-day.selected { position:relative; z-index:1; background:#e8f3fb; box-shadow:inset 0 0 0 2px #23618e; }
.shared-month-day.today .shared-month-day-head strong { color:#fff; background:#23618e; border-radius:50%; }
.shared-month-day.outside { min-height:97px; background:#f4f6f8; color:#a6b1ba; cursor:default; }
.shared-month-number,.shared-month-day-head strong { display:grid; width:29px; height:29px; place-items:center; font-size:14px; font-weight:780; }
.shared-month-day-head { display:flex; gap:4px; justify-content:space-between; align-items:center; }
.shared-month-count { color:#173e56; font-size:11px; font-weight:780; white-space:nowrap; }
.shared-month-empty { color:#a2acb5; font-size:10px; }
.shared-month-periods { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
.shared-month-period { display:flex; gap:2px; align-items:center; justify-content:center; min-width:0; padding:4px 0; border-radius:5px; background:#f2f4f6; color:#9eacb5; font-size:11px; line-height:1.25; white-space:nowrap; }
.shared-month-period.occupied { color:#235d80; background:#dbeafa; font-weight:770; }
.shared-month-period b { font-size:10px; font-variant-numeric:tabular-nums; }
.shared-month-flag { align-self:flex-start; padding:3px 7px; margin-top:auto; border-radius:999px; background:#eef2f6; color:#5a6c7b; font-size:10px; font-weight:780; }
.shared-month-flag.review { color:#80561c; background:#fff2d8; }
.shared-month-flag.conflict { color:#a03232; background:#ffebeb; }
.shared-month-flag.pending { color:#8b6236; background:#fff5e7; }
.shared-month-detail { min-width:0; margin:0; padding:16px; max-height:690px; overflow:auto; border:1px solid #dbe4eb; border-radius:14px; background:#fff; }
.shared-month-detail-heading { display:flex; flex-wrap:wrap; align-items:end; gap:8px; justify-content:space-between; margin-bottom:14px; }
.shared-month-detail-heading small { color:#618096; font-size:11px; font-weight:780; letter-spacing:.06em; }
.shared-month-detail-heading h3 { margin:4px 0 0; color:#16374d; font-size:19px; }
.shared-month-detail-heading>span { color:#738391; font-size:12px; }
.shared-month-detail-slots { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.shared-month-day-slot { min-width:0; padding:12px; border:1px solid #e1e8ef; border-radius:12px; background:#f7f9fb; }
.shared-month-day-slot h4 { display:flex; justify-content:space-between; align-items:center; margin:0 0 10px; color:#345166; font-size:13px; }
.shared-month-day-slot h4 span { color:#6c8495; font-size:11px; }
.shared-month-assignment { display:grid; width:100%; min-height:0; gap:5px; padding:12px; margin:0 0 8px; border:1px solid #cadce8; border-left:4px solid #347db0; border-radius:9px; background:#fff; color:#244357; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
.shared-month-assignment:hover { background:#eef6fd; }
.shared-month-assignment:focus-visible,.shared-month-day:focus-visible { outline:3px solid #3a83b5; outline-offset:-3px; }
.shared-month-assignment strong { font-size:13px; line-height:1.35; font-weight:780; }
.shared-month-assignment-meta { display:block; color:#547184; font-size:11px; line-height:1.45; }
.shared-month-assignment-note { display:block; color:#536579; font-size:11px; line-height:1.5; }
.shared-month-slot-empty { padding:15px 6px; margin:0; color:#96a5b0; font-size:12px; text-align:center; }
@media(max-width:1050px) {
  .shared-month-layout { grid-template-columns:minmax(0,1fr); padding:10px; }
  .shared-month-detail { max-height:none; overflow:visible; }
  .shared-month-day { padding:8px 6px; min-height:96px; }
  .shared-month-day-head { flex-direction:column; align-items:flex-start; gap:0; }
  .shared-month-detail-slots { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .shared-month-intro { padding:12px; }
  .shared-month-weekday { padding:7px 1px; font-size:10px; }
  .shared-month-day,.shared-month-day.outside { padding:5px 3px; min-height:78px; gap:5px; }
  .shared-month-number,.shared-month-day-head strong { width:23px; height:23px; font-size:12px; }
  .shared-month-count { font-size:9px; white-space:normal; }
  .shared-month-empty { display:none; }
  .shared-month-periods { gap:1px; }
  .shared-month-period { padding:2px 0; border-radius:3px; font-size:9px; }
  .shared-month-period b { display:none; }
  .shared-month-flag { padding:1px 3px; border-radius:3px; font-size:8px; }
  .shared-month-layout { padding:0; gap:10px; }
  .shared-month-detail { margin:0; padding:12px; }
  .shared-month-detail-heading h3 { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .shared-month-day { transition:none; }
}

/* Manager-only date detail: who is booked and who has no system assignment. */
.manager-month-panel { max-height:none; overflow:visible; }
.manager-month-view-switch { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4px; padding:4px; margin:0 0 12px; border-radius:9px; background:#eef3f8; }
.manager-month-view-switch button { min-width:0; min-height:34px; padding:5px 3px; border:1px solid transparent; border-radius:7px; color:#5a7082; background:transparent; font-size:12px; font-weight:760; cursor:pointer; }
.manager-month-view-switch button.active { border-color:#b6cfdf; color:#184664; background:#fff; box-shadow:0 1px 4px rgba(27,65,92,.08); }
.manager-roster-heading h3 { margin:0 0 5px; color:#18394c; font-size:16px; }
.manager-roster-heading p { margin:0 0 8px; color:#3a637e; font-size:11px; font-weight:750; line-height:1.5; }
.manager-roster-caution { margin:0 0 11px; padding:8px; border-radius:7px; background:#f2f6f9; color:#60778a; font-size:10px; line-height:1.55; }
.manager-roster-colheads,.manager-roster-row { display:grid; grid-template-columns:62px repeat(3,minmax(0,1fr)); gap:3px; align-items:stretch; }
.manager-roster-colheads { padding:5px 0; color:#5b7689; font-size:11px; font-weight:780; }
.manager-roster-colheads>span:not(:first-child) { text-align:center; }
.manager-roster-grid { display:grid; gap:4px; }
.manager-roster-row { min-width:0; }
.manager-roster-name { display:flex; flex-direction:column; justify-content:center; min-width:0; padding-left:2px; color:#173b54; font-size:11px; font-weight:760; overflow-wrap:anywhere; }
.manager-roster-name small { margin-top:3px; color:#9a744f; font-size:9px; line-height:1.3; }
.manager-roster-slot { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:44px; padding:5px 2px; border:1px solid #d7e1e9; border-radius:6px; background:#f7f9fb; color:#576d7e; text-align:center; cursor:pointer; }
.manager-roster-slot:hover { filter:brightness(.97); }
.manager-roster-slot.selected { outline:2px solid #326c98; outline-offset:-2px; }
.manager-roster-slot strong { display:block; max-width:100%; font-size:10px; line-height:1.45; font-weight:800; overflow-wrap:anywhere; }
.manager-roster-slot small { display:block; max-width:100%; color:inherit; font-size:9px; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.manager-roster-slot.state-unassigned { border-color:#e1e7ed; background:#f7f9fb; color:#607487; }
.manager-roster-slot.state-occupied { border-color:#c8dbea; background:#e8f2fb; color:#2b6287; }
.manager-roster-slot.state-multiple_unreviewed,.manager-roster-slot.state-review { border-color:#e9d49d; background:#fff3db; color:#8a6022; }
.manager-roster-slot.state-intentional { border-color:#b6ded9; background:#e6f5f2; color:#236c69; }
.manager-roster-slot.state-conflict { border-color:#e7b2b2; background:#fff0f0; color:#aa3434; }
.manager-roster-slot.state-inactive { border-color:#e0e4e6; background:#f2f3f5; color:#919da5; }
.manager-roster-selection { margin-top:12px; padding:12px; border:1px solid #cfdee9; border-radius:9px; background:#f6f9fc; }
.manager-roster-selection h4 { margin:0 0 10px; color:#224f6b; font-size:13px; }
.manager-roster-selection p,.manager-roster-hint { margin:7px 0 0; color:#6d7b88; font-size:11px; line-height:1.55; }
.manager-roster-assignment { display:flex; flex-direction:column; align-items:flex-start; width:100%; gap:4px; margin:5px 0; padding:9px; border:1px solid #c6d9e9; border-radius:7px; background:#fff; color:#25495f; text-align:left; cursor:pointer; }
.manager-roster-assignment strong { font-size:12px; overflow-wrap:anywhere; }
.manager-roster-assignment small { color:#72899a; font-size:10px; }
/* A secondary repository tool, not another permanently visible scheduling action. */
.manager-secondary-tools { position:relative; z-index:25; align-self:center; }
.manager-secondary-tools>summary { display:flex; align-items:center; justify-content:center; list-style:none; user-select:none; }
.manager-secondary-tools>summary::-webkit-details-marker { display:none; }
.manager-secondary-tools[open]>summary { background:#edf3f8; color:#254e68; }
.manager-secondary-menu { position:absolute; right:0; top:calc(100% + 5px); z-index:30; display:grid; gap:8px; min-width:225px; padding:12px; border:1px solid #c8d6e2; border-radius:10px; background:#fff; box-shadow:0 10px 28px rgba(22,52,73,.18); }
.manager-secondary-menu .button { display:block; width:100%; min-height:36px; }
.manager-secondary-menu small { color:#718697; font-size:11px; line-height:1.5; }
@media(max-width:600px) {
  .manager-roster-colheads,.manager-roster-row { grid-template-columns:57px repeat(3,minmax(0,1fr)); gap:3px; }
  .manager-roster-slot { min-height:42px; }
  .manager-roster-slot small { font-size:9px; }
  .manager-roster-caution { font-size:10px; }
}

/* V4 Manager overview: dates and totals only. Office still keeps its three
   own per-day period markers; the underlying AM/PM/NIGHT facts are unchanged. */
.manager-month-calendar .shared-month-day,
.manager-month-calendar .shared-month-day.outside {
  min-height:72px;
  padding:9px 9px;
  gap:6px;
}
.manager-month-calendar .shared-month-day-head { align-items:center; }
.manager-month-calendar .shared-month-empty { display:none; }
.manager-month-calendar .shared-month-count { font-size:11px; color:#385f7a; }
/* Neutral means NO SYSTEM ASSIGNMENT, not verified time off or availability. */
.manager-roster-slot.state-occupied { border-color:#c8d9e8; background:#e9f1fa; color:#235d81; }
.manager-roster-slot strong { font-size:11px; line-height:1.4; }
.manager-roster-slot small { font-size:10px; line-height:1.35; }
.manager-roster-quick-add {
  display:block; width:100%; min-height:38px; margin-top:12px;
  padding:8px 12px; border:1px solid #2c709e; border-radius:7px;
  background:#2874a8; color:#fff; font-size:12px; font-weight:760;
  text-align:center; cursor:pointer;
}
.manager-roster-quick-add:hover { background:#205f8b; }
.manager-roster-quick-add:focus-visible { outline:3px solid #9bc6e0; outline-offset:2px; }
@media(max-width:600px) {
  .manager-month-calendar .shared-month-day,
  .manager-month-calendar .shared-month-day.outside { min-height:66px; padding:5px 3px; }
  .manager-month-calendar .shared-month-day-head { flex-direction:column; align-items:flex-start; }
  .manager-roster-slot strong { font-size:11px; }
  .manager-roster-slot small { font-size:9px; }
}
