/* Roster screen
   Stand × day grid with assignment chips, and the agent × day matrix. */

/* roster grid */
.grid-scroll{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--r);
  background:var(--surface);box-shadow:var(--sh-1);min-width:0;max-width:100%;scrollbar-width:thin;
  -webkit-overflow-scrolling:touch}
.grid-scroll::-webkit-scrollbar{height:10px}
.grid-scroll::-webkit-scrollbar-thumb{background:var(--hairline-2);border-radius:var(--pill);
  border:3px solid transparent;background-clip:content-box}
table.roster{min-width:940px}
table.roster th.daycol{text-align:center;min-width:112px;padding:10px 8px}
table.roster th.daycol .dow{display:block;font-size:9.5px;color:var(--faint);letter-spacing:.08em;margin-top:2px}
table.roster th.daycol.wknd{color:var(--brand);background:var(--brand-soft)}
table.roster td{padding:6px 7px}
table.roster tbody tr:hover{background:transparent}
table.roster td.standcell{position:sticky;left:0;background:var(--surface);z-index:2;
  border-right:1px solid var(--hairline);min-width:196px;box-shadow:6px 0 12px -10px rgba(14,17,40,.45)}
table.roster th.standcell{position:sticky;left:0;z-index:3;background:var(--surface-2);border-right:1px solid var(--hairline)}
.standname{font-weight:620;font-size:13px;line-height:1.3;letter-spacing:-.018em}
.shifttag{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted);margin-top:2px}
.shiftdot{width:6px;height:6px;border-radius:2.5px;display:inline-block;flex:none}
.cell{display:flex;flex-direction:column;gap:4px;min-height:28px}
.chip{
  display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--hairline);
  border-radius:var(--r-xs);padding:5px 8px 5px 11px;font-size:11.5px;font-weight:520;
  cursor:pointer;text-align:left;width:100%;line-height:1.3;box-shadow:var(--sh-1);
  position:relative;overflow:hidden;
  transition:transform .11s cubic-bezier(.2,.9,.3,1),box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.chip::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:0 2px 2px 0}
.chip:hover{background:var(--surface);border-color:var(--brand-line);box-shadow:var(--sh-2);transform:translateY(-1px)}
.chip:active{transform:scale(.975)}
.chip.p1::before{background:var(--teal)}
.chip.p2::before{background:var(--amber)}
.chip.p3::before{background:var(--blue)}
.chip.px::before{background:var(--coral)}
.chip.b2b{box-shadow:inset 0 0 0 2px var(--amber);background:color-mix(in srgb,var(--amber) 12%,var(--surface-2))}
.chip .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip .lk{font-size:10px}
.chip.empty{color:var(--crit);background:var(--crit-soft);border:1px dashed var(--crit);
  justify-content:center;box-shadow:none;font-weight:540;padding-left:8px}
.chip.empty::before{display:none}
.chip.empty:hover{background:var(--crit-soft);border-color:var(--crit);transform:none;box-shadow:var(--sh-1)}
.chip .ov{font-size:10px;color:var(--crit)}
.chip.overridden{border-color:var(--crit);border-style:dashed}

table.matrix{min-width:800px}
table.matrix td.d{text-align:center;padding:4px 5px}
table.matrix td.agentcell{position:sticky;left:0;background:var(--surface);z-index:2;
  border-right:1px solid var(--hairline);min-width:172px;box-shadow:6px 0 12px -10px rgba(14,17,40,.45)}
table.matrix tbody tr:hover td.agentcell{background:var(--surface-2)}
table.matrix th.agentcell{position:sticky;left:0;z-index:3;background:var(--surface-2);border-right:1px solid var(--hairline)}
.mcell{display:block;border-radius:var(--r-xs);padding:4px 6px;font-size:10.5px;line-height:1.35;font-weight:520;
  border:1px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcell.off{color:var(--faint);opacity:.45}
.mcell.rest{color:var(--muted);font-size:10px;opacity:.7}
.mcell.on{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink);box-shadow:var(--sh-1)}
.shifttime{opacity:.7}
.agentline{display:flex;align-items:center;gap:8px}
.agentline-text{min-width:0}

/* archived roster */
.archive-banner{align-items:center}
.archive-banner .notice-body{flex:1}
.chip-static{cursor:default;padding-left:8px}
.chip-static::before{display:none}
.chip-static:hover{transform:none;border-color:var(--hairline);box-shadow:var(--sh-1);background:var(--surface-2)}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn[disabled]:active{transform:none}

.day-export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:12px}
.day-export-grid .btn{justify-content:center}
