.workspace-requests-dialog { width:min(42rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); box-sizing:border-box; padding:1.25rem; border:1px solid var(--border); border-radius:.875rem; background:var(--surface); color:var(--text); overflow:auto; font-variant-numeric:tabular-nums; }
.workspace-requests-dialog.dialog-entering { animation:requests-enter 200ms cubic-bezier(.22,1,.36,1) both; }
.workspace-requests-dialog.dialog-open { opacity:1; transform:translateY(0) scale(1); }
.workspace-requests-dialog.dialog-closing { animation:requests-close 140ms ease-in both; pointer-events:none; }
.workspace-requests-dialog.dialog-entering::backdrop { animation:requests-backdrop-in 160ms ease-out both; }
.workspace-requests-dialog.dialog-closing::backdrop { animation:requests-backdrop-out 140ms ease-in both; }
.workspace-request-skeleton { display:grid;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem; }
.workspace-request-skeleton span { height:1rem;border-radius:.375rem;background:var(--surface-3,#dbe2ea);animation:workspace-skeleton-pulse 1.4s ease-in-out infinite alternate; }
.workspace-request-skeleton span:last-child { width:65%;height:2.75rem; }
.request-timestamp { font-variant-numeric:tabular-nums; }
.config-card.config-office-coordinates-card { display:grid;grid-template-columns:minmax(0,1fr);grid-column:1/-1;gap:.875rem;align-items:stretch; }
.office-coordinate-summary { display:flex;gap:.75rem;align-items:center;min-width:0; }
.office-coordinate-summary .config-info { flex:1;min-width:0; }
.office-coordinate-actions { display:flex;flex-wrap:wrap;gap:.75rem; }
.office-coordinate-actions button { min-height:2.75rem;white-space:normal;max-width:100%; }
#location-test-result { width:100%;max-width:none;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0; }
#location-test-result:empty { display:none; }
@keyframes requests-enter { from { opacity:0;transform:translateY(-8px) scale(.96); } to { opacity:1;transform:translateY(0) scale(1); } }
@keyframes requests-close { from { opacity:1;transform:scale(1); } to { opacity:0;transform:scale(.97); } }
@keyframes requests-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes requests-backdrop-out { from { opacity:1; } to { opacity:0; } }
@media(prefers-reduced-motion:reduce) { .workspace-requests-dialog:is(.dialog-entering,.dialog-closing),.workspace-requests-dialog::backdrop,.workspace-request-skeleton span { animation:none!important;transform:none!important; } }
.matrix-cell.matrix-wfh,.matrix-legend .matrix-wfh { background:#192d4c;color:#eff6ff; }
:root[data-theme=dark] .matrix-cell.matrix-wfh,:root[data-theme=dark] .matrix-legend .matrix-wfh { background:#192d4c;color:#eff6ff; }
.workspace-requests-dialog::backdrop { background:rgb(0 0 0 / .55); }
.workspace-requests-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.workspace-requests-heading h2 { margin:0; }
.workspace-requests-dialog section { margin-top:1.5rem; min-width:0; }
.workspace-requests-dialog h3 { font-size:1rem; }
.workspace-request-card { display:grid; gap:.625rem; margin-block:.75rem; padding:1rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface-2,var(--surface)); min-width:0; overflow-wrap:anywhere; }
.workspace-request-card p { margin:0; font-size:.875rem; line-height:1.5; }
.workspace-request-card label { font-size:.875rem; font-weight:600; }
.workspace-request-actions { display:flex; flex-wrap:wrap; gap:.625rem; justify-content:flex-end; }
.workspace-requests-dialog input.shift-cover-note-input { display:block; width:100%; min-width:0; height:2.75rem; min-height:2.75rem; box-sizing:border-box; padding:0 .875rem; font-size:1rem; line-height:1.25; border-radius:.5rem; color:var(--text); background:var(--surface); border:1px solid var(--border); }
.workspace-requests-dialog button { min-height:2.75rem; padding:.625rem 1.125rem; font-size:.9375rem; line-height:1.25; border-radius:.5rem; touch-action:manipulation; }
.workspace-requests-dialog .shift-cover-note-help { font-size:.8125rem; color:var(--text-muted); }
.workspace-requests-dialog input[aria-invalid=true] { border-color:var(--danger,#be123c); }
.workspace-requests-dialog :is(button,input):focus-visible { outline:3px solid #b16b00; outline-offset:3px; }
[data-theme=dark] .workspace-requests-dialog :is(button,input):focus-visible, .dark-mode .workspace-requests-dialog :is(button,input):focus-visible { outline-color:#ffcf80; }
.workspace-requests-dialog button:active:not(:disabled) { transform:scale(.97); filter:brightness(.95); transition:transform 100ms ease-out,filter 100ms ease-out; }
@media(max-width:480px) { .workspace-requests-dialog { padding:1rem; } .workspace-request-actions button { flex:1; } }
@media(prefers-reduced-motion:reduce) { .workspace-requests-dialog button { transition:none!important; } }
@media(prefers-contrast:more) { .workspace-request-card,.workspace-requests-dialog input { border-width:2px; } }
.matrix-cell.matrix-cover-pending { color:#8a4b00; background:rgb(234 179 8 / .14); }
.matrix-cell.matrix-covered { color:#126454; background:rgb(16 185 129 / .12); }
:root[data-theme=dark] .matrix-cell.matrix-cover-pending { color:#ffd180; }
:root[data-theme=dark] .matrix-cell.matrix-covered { color:#6ee7b7; }
.matrix-cover-badge { display:inline-block; border:1px solid currentColor; border-radius:.375rem; padding:.125rem .375rem; font-size:.8125rem; line-height:1.5; }
.matrix-cell:focus-visible { outline:3px solid #b16b00; outline-offset:-3px; }
:root[data-theme=dark] .matrix-cell:focus-visible { outline-color:#ffcf80; }
.matrix-cover-badge.is-pending { color:#8a4b00; background:rgb(234 179 8 / .14); }
:root[data-theme=dark] .matrix-cover-badge.is-pending { color:#ffd180; }
.workspace-requests-dialog button { margin:0; cursor:pointer; border:1px solid var(--border); color:var(--text); background:var(--surface-2,var(--surface)); font-weight:600; }
.workspace-requests-dialog .btn-primary { background:#1d4ed8; border-color:#1d4ed8; color:#fff; }
.workspace-requests-dialog .cover-review-btn[data-decision=rejected] { border-color:#be123c; color:#9f1239; }
:root[data-theme=dark] .workspace-requests-dialog .cover-review-btn[data-decision=rejected] { border-color:#9f3d55; color:#fda4af; }
.workspace-requests-dialog input.shift-cover-note-input { margin:0; }
.workspace-requests-dialog button:disabled { opacity:.6; cursor:wait; }
.workspace-requests-dialog { background:#fff; }
.workspace-requests-dialog .workspace-request-card { background:#f8fafc; }
:root[data-theme=dark] .workspace-requests-dialog { background:#0b1528; }
:root[data-theme=dark] .workspace-requests-dialog .workspace-request-card { background:#101b30; }
.account-policy-summary { margin-block:.75rem 0; font-size:.8125rem; line-height:1.5; max-width:65ch; }
.account-danger-zone { margin-top:1rem; padding:1rem; border:1px solid #be123c; border-radius:.75rem; background:rgb(190 18 60 / .04); }
.account-danger-zone h3 { margin-top:0; }
.account-danger-zone p { max-width:68ch; line-height:1.6; }
.account-danger-zone .danger-outline, .workspace-deletion-dialog .danger-outline { color:#9f1239; border:1px solid #be123c; background:transparent; }
:root[data-theme=dark] :is(.account-danger-zone,.workspace-deletion-dialog) .danger-outline { color:#fda4af; border-color:#fda4af; }
.workspace-deletion-banner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin-block:1rem; padding:1rem; border:1px solid #b16b00; border-radius:.75rem; background:rgb(234 179 8 / .12); font-variant-numeric:tabular-nums; }
.workspace-deletion-banner[hidden] { display:none; }
.workspace-deletion-banner p { margin:0; flex:1 1 25rem; }
.workspace-deletion-dialog,.session-idle-dialog { width:min(36rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; box-sizing:border-box; padding:1.5rem; border:1px solid var(--border); border-radius:.875rem; color:var(--text); background:#fff; font-variant-numeric:tabular-nums; }
:root[data-theme=dark] :is(.workspace-deletion-dialog,.session-idle-dialog) { background:#0b1528; }
:is(.workspace-deletion-dialog,.session-idle-dialog)::backdrop { background:rgb(0 0 0 / .6); }
:is(.workspace-deletion-dialog,.session-idle-dialog) h2 { margin-top:0; font-size:1.25rem; line-height:1.28; letter-spacing:-.02em; }
:is(.workspace-deletion-dialog,.session-idle-dialog) p { line-height:1.6; overflow-wrap:anywhere; }
.workspace-deletion-dialog form { display:grid; gap:1rem; }
.workspace-deletion-dialog form p { margin:0; }
.workspace-deletion-dialog input { width:100%; min-width:0; box-sizing:border-box; height:2.75rem; min-height:2.75rem; padding:0 .875rem; font-size:1rem; line-height:1.25; border:1px solid var(--border); border-radius:.5rem; background:var(--surface); color:var(--text); }
.workspace-deletion-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:.75rem; }
:is(.workspace-deletion-dialog,.session-idle-dialog) :is(button,input) { transition:transform 100ms ease-out,filter 100ms ease-out,background-color 150ms ease-out; }
:is(.account-danger-zone,.workspace-deletion-banner,.workspace-deletion-dialog,.session-idle-dialog) button { min-height:2.75rem; padding:.625rem 1.125rem; font-size:.9375rem; line-height:1.25; border-radius:.5rem; touch-action:manipulation; }
:is(.workspace-deletion-dialog,.session-idle-dialog) :is(button,input,a):focus-visible { outline:3px solid #b16b00; outline-offset:3px; }
:root[data-theme=dark] :is(.workspace-deletion-dialog,.session-idle-dialog) :focus-visible { outline-color:#ffcf80; }
:is(.workspace-deletion-dialog,.session-idle-dialog) button:active:not(:disabled) { transform:scale(.97); filter:brightness(.95); transition:transform 100ms ease-out,filter 100ms ease-out; }
@media(prefers-reduced-motion:reduce) { :is(.workspace-deletion-dialog,.session-idle-dialog) button { transition:none!important; } }
@media(prefers-contrast:more) { .account-danger-zone,.workspace-deletion-dialog input { border-width:2px; } }
/* Round 19: anchored department chooser and crisp staff controls. */
.department-combobox { position:relative; min-width:0; width:100%; }
.department-combobox > input { background:var(--surface); color:var(--text); border:1px solid var(--border); width:100%; height:2.75rem; min-height:2.75rem; padding-right:2.5rem; box-sizing:border-box; }
.department-chevron { position:absolute; right:.875rem; top:.75rem; pointer-events:none; color:var(--text); }
.department-options { position:absolute; inset-inline:0; top:calc(100% + .375rem); z-index:30; max-height:16rem; overflow-y:auto; padding:.25rem; border:1px solid var(--border); border-radius:.5rem; background:var(--surface); color:var(--text); box-shadow:0 12px 32px #0003; }
.department-options[hidden] { display:none; }
.department-option { display:flex; align-items:center; min-height:2.75rem; padding:.5rem .75rem; box-sizing:border-box; cursor:pointer; overflow-wrap:anywhere; }
.department-option:hover,.department-option[aria-selected="true"] { background:var(--primary); color:#fff; border-radius:.375rem; }
.department-option-add { border-top:1px solid var(--border); font-weight:600; }
.department-empty { padding:.75rem; color:var(--text-muted); }
#tab-staff #staff-admin-search { background:var(--surface); color:var(--text); border:1px solid var(--border); height:2.75rem; min-height:2.75rem; box-sizing:border-box; }
.department-combobox input:focus-visible { outline:3px solid #b16b00; outline-offset:3px; }
[data-theme="dark"] #tab-staff .department-combobox input:focus-visible { outline-color:#ffcf80; }

/* Visible high-contrast border lines for Dashboard Attendance Matrix */
.attendance-matrix {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: 1.5px solid #94a3b8 !important;
  border-radius: 8px !important;
  overflow: hidden;
}
.attendance-matrix th,
.attendance-matrix td {
  border-right: 1.5px solid #94a3b8 !important;
  border-bottom: 1.5px solid #94a3b8 !important;
}
.attendance-matrix th:last-child,
.attendance-matrix td:last-child {
  border-right: none !important;
}
.attendance-matrix tr:last-child td {
  border-bottom: none !important;
}
:root[data-theme=dark] .attendance-matrix {
  border-color: #3b5278 !important;
}
:root[data-theme=dark] .attendance-matrix th,
:root[data-theme=dark] .attendance-matrix td {
  border-right-color: #3b5278 !important;
  border-bottom-color: #3b5278 !important;
}
:root[data-theme=dark] #attendance-matrix .attendance-matrix th:first-child,
:root[data-theme=dark] #attendance-matrix .attendance-matrix .matrix-name {
  box-shadow: 2px 0 0 #3b5278 !important;
}

.matrix-pending-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.25;
  color: #64748b;
  letter-spacing: 0.01em;
}
:root[data-theme=dark] .matrix-pending-tag {
  color: #94a3b8;
}
.matrix-cell.matrix-provisional {
  color: #0f172a;
  font-weight: 500;
}
:root[data-theme=dark] .matrix-cell.matrix-provisional {
  color: #e2e8f0;
}
