.skip {
  position: absolute;
  left: -9999px;
}
.skip:focus {
  left: 12px;
  top: 8px;
  z-index: 99;
  background: var(--card);
  padding: 12px;
}
button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.demo-banner {
  padding: 6px 24px;
  background: #fff1ca;
  color: #65450f;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.demo-banner[hidden] {
  display: none;
}
.demo-banner select {
  width: auto;
  font-size: 12px;
  padding: 2px 6px;
}
.demo-banner button {
  background: transparent;
  border: 0;
  text-decoration: underline;
}
.top {
  height: auto;
  min-height: 56px;
  flex-wrap: wrap;
  padding-block: 8px;
}
.brand i {
  font-size: 12px;
}
.nav {
  flex-wrap: wrap;
}
.me small {
  display: block;
}
.page {
  min-height: 60vh;
}
.empty {
  padding: 36px;
  text-align: center;
  color: var(--muted);
}
.listpane {
  min-width: 0;
}
.edtop {
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
}
.edtop h2 {
  font-size: 20px;
  margin: 4px 0;
}
.edbody {
  padding: 18px 20px;
  max-height: 68vh;
  overflow: auto;
}
.edfoot {
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--line);
  position: sticky;
  bottom: 0;
  background: var(--card);
}
.edfoot .grow {
  flex: 1;
}
dialog {
  max-height: 95vh;
}
dialog.wide {
  width: min(850px, 96vw);
}
.formerror {
  white-space: pre-line;
  color: var(--danger);
  padding: 0 20px 12px;
  max-height: 25vh;
  overflow: auto;
}
.formerror:empty {
  display: none;
}
.warnlist {
  background: var(--note-bg);
  border: 1px solid var(--note-line);
  padding: 12px;
  margin: 12px 0;
  border-radius: 8px;
}
.warnlist p {
  margin: 4px 0;
}
.fieldpair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.formcheck {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 400;
}
.formcheck input {
  width: auto;
}
.fieldnote {
  font-size: 12px;
  color: var(--muted);
  margin: 5px 0;
}
.btn.pri {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
}
.btn.danger {
  color: var(--danger);
}
.search {
  max-width: 280px;
}
.muted {
  color: var(--muted);
}
.small {
  font-size: 12px;
}
.grow {
  flex: 1;
}
.calwrap {
  overflow: auto;
  border-radius: 10px;
}
.calwrap button {
  color: var(--ink);
}
.caltb {
  gap: 10px;
}
.caltb .sp {
  flex-wrap: wrap;
  justify-content: flex-end;
}
.calhead {
  margin-right: auto;
  min-width: 180px;
}
.ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  margin-top: 6px;
}
.arrows {
  display: flex;
  gap: 4px;
}
.arrows button {
  border: 0;
  background: none;
  padding: 5px;
}
.lastupd {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 5px;
}
#classic td {
  padding: 0;
  vertical-align: top;
}
#classic .mband {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 0;
  text-align: left;
  min-height: 65px;
  font-size: 12px;
}
#classic .dts {
  height: auto;
  min-height: 25px;
}
#classic .railtd {
  width: 62px;
}
#classic .railtd button {
  display: block;
  margin: 8px auto;
  font-size: 11px;
}
#classic th {
  padding: 10px;
  font-size: 11px;
}
#classic .bs {
  display: block;
}
.cnm {
  font-weight: 650;
}
.swap {
  color: #c00000;
}
.opennm {
  color: #0d4dbf;
}
.cslot {
  display: block;
  text-align: left;
  width: 100%;
  cursor: pointer;
  border: 1px solid var(--line);
  border-left: 5px solid var(--tier0);
  border-radius: 6px;
  padding: 7px;
  margin: 4px 0;
  background: #fff;
  font-size: 12px;
  color: #1f1e1b;
}
.cslot.alpha {
  border-left-color: var(--alpha);
}
.cslot.bravo {
  border-left-color: var(--bravo);
}
.cslot.charlie {
  border-left-color: var(--charlie);
}
.cslot.adjusted {
  border-left: 8px solid var(--hrs-bar);
}
.cslot.placeholder {
  border-left: 8px solid var(--open-bar);
  background: #fff8dc;
}
.cslot.unfilled {
  background: #dedede;
  border-style: dashed;
  min-height: 45px;
  color: #666;
}
.cslot .sub {
  display: block;
  font-size: 11px;
  color: #6b6760;
}
.cslot .red {
  color: #c00000;
}
.cgrp {
  padding: 6px;
}
.cwk {
  min-width: 1050px;
}
.wkcard {
  min-width: 1050px;
}
.chead {
  min-width: 1050px;
}
.cday {
  min-width: 0;
}
.cdtop {
  min-height: 32px;
}
.cgh {
  font-size: 11px;
  color: #6b6760;
}
.crail {
  padding: 8px 4px;
}
.legend {
  padding: 12px;
  font-size: 12px;
}
.stat {
  display: flex;
  gap: 22px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.stat b {
  margin-right: 6px;
}
.stat .w {
  margin-left: auto;
  color: var(--warn);
  cursor: pointer;
}
.pcard {
  min-width: 0;
}
.pcard a {
  color: inherit;
}
.pcard .pmain {
  min-width: 140px;
}
.cards .pcard {
  cursor: pointer;
}
.plbl {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.pcol {
  overflow-wrap: anywhere;
}
.chip.alpha {
  color: #2f5f9e;
  background: #e4eef8;
}
.chip.bravo {
  color: #925313;
  background: #fff0de;
}
.chip.charlie {
  color: #237575;
  background: #e1f2f0;
}
.chip.tag {
  background: var(--soft);
  color: var(--ink);
}
.chip.res {
  background: #fff0de;
  color: #925313;
}
.chip.app {
  background: #fbe2e0;
  color: #9b2b22;
}
.chips {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
.siterow {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}
.siterow input[type='checkbox'] {
  width: auto;
}
.siterow select {
  width: 110px;
}
.edsec {
  font-weight: 650;
  margin-top: 20px;
  margin-bottom: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.schwrap {
  overflow: auto;
}
.sch {
  width: 100%;
  min-width: 1050px;
  border-collapse: collapse;
  table-layout: fixed;
}
.sch th,
.sch td {
  border: 1px solid var(--line);
  padding: 10px 7px;
}
.sch th:first-child {
  width: 170px;
}
.sch th.tot {
  width: 70px;
}
.sch .bad {
  color: var(--danger);
}
.wtable {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.wtable td,
.wtable th {
  padding: 10px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.table-scroll {
  overflow: auto;
}
.report {
  white-space: pre-wrap;
  line-height: 1.6;
}
.entry {
  display: flex;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.entry b {
  flex: none;
}
.note {
  margin: 10px 0;
  padding: 14px;
  background: var(--note-bg);
  border: 1px solid var(--note-line);
  border-radius: 9px;
}
.note .meta {
  margin-top: 10px;
  color: var(--muted);
}
.msg {
  padding: 12px;
  margin: 10px 0;
  background: var(--soft);
  border-radius: 9px;
  white-space: pre-wrap;
}
.msg.me {
  margin-left: 10%;
  display: block;
}
.msg .who {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 5px;
}
.thread {
  cursor: pointer;
  padding: 12px;
  border-bottom: 1px solid var(--line);
}
.thread.on {
  background: var(--navactive-bg);
  color: var(--navactive-ink);
}
.thread .meta {
  font-size: 11px;
  margin-top: 5px;
}
.auth {
  max-width: 390px;
  margin: 8vh auto;
  padding: 30px;
}
.auth h1 {
  font-size: 24px;
}
.auth .btn {
  width: 100%;
  justify-content: center;
  margin-top: 16px;
}
.token {
  font-family: monospace;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.side .btn {
  display: block;
  margin: 10px;
  color: inherit;
}
.sideh {
  display: flex;
  justify-content: space-between;
  padding: 16px;
}
.side nav {
  display: grid;
  padding: 12px;
}
.side nav button {
  text-align: left;
  padding: 12px;
  background: none;
  color: inherit;
  border: 0;
}
.side .on {
  background: rgba(255, 255, 255, 0.15);
}
.side .sectionlabel {
  font-size: 11px;
  opacity: 0.7;
  margin: 20px 14px 6px;
}
#actions {
  right: 0;
  left: auto;
  transform: translateX(105%);
}
#actions.open {
  transform: translateX(0);
}
.toolbar-line {
  display: flex;
  gap: 8px;
  margin: 12px 0;
  align-items: center;
  flex-wrap: wrap;
}
.warningdot {
  color: var(--warn);
}
.print-only {
  display: none;
}
body.busy {
  cursor: progress;
}
.btn.sm {
  height: 30px;
  padding: 0 9px;
  font-size: 12px;
}
.spinner {
  padding: 50px;
  text-align: center;
}
.status-error {
  color: var(--danger);
}
.summarygrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.summarygrid b {
  font-size: 24px;
  display: block;
}
.a-shell {
  max-width: 650px;
  margin: auto;
  padding: 16px;
}
.dar-recorder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 20px 0 24px;
}
.dar-mic {
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 3px solid var(--brand);
  background: var(--navactive-bg);
  color: var(--navactive-ink);
  box-shadow: 0 5px 0 var(--brand);
  cursor: pointer;
  touch-action: manipulation;
}
.dar-mic:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 7px;
}
.dar-mic:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 2px 0 var(--brand);
}
.dar-mic[aria-pressed='true'] {
  background: var(--danger-bg);
  border-color: var(--danger);
  color: var(--ink);
  box-shadow: 0 5px 0 var(--danger);
}
.dar-mic .dar-stop-icon,
.dar-mic[aria-pressed='true'] .dar-mic-icon {
  display: none;
}
.dar-mic[aria-pressed='true'] .dar-stop-icon {
  display: block;
}
.dar-mic-status {
  margin: 4px 0 0;
  min-height: 24px;
  text-align: center;
  font-size: 16px;
  font-weight: 650;
}
.dar-recorder-controls > .btn {
  min-height: 44px;
}
.a-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
}
.a-tabs {
  display: flex;
  overflow: auto;
  margin-bottom: 15px;
}
.a-tabs button {
  background: none;
  border: 0;
  padding: 12px;
  white-space: nowrap;
}
.a-tabs .on {
  border-bottom: 2px solid var(--brand);
  font-weight: 700;
}
.a-shift {
  padding: 16px;
  margin: 10px 0;
  border: 1px solid var(--edge);
  border-radius: 10px;
  background: var(--card);
}
.a-shift h3 {
  margin: 0 0 8px;
}
.a-mic {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: var(--accent);
  color: white;
  border: 0;
  font-size: 32px;
  display: block;
  margin: 22px auto;
}
.a-mic.recording {
  background: #a13f31;
}
.a-bottom {
  position: sticky;
  bottom: 0;
  padding: 12px;
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.a-bottom .btn {
  width: 100%;
  justify-content: center;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
@media (max-width: 900px) {
  .demo-banner {
    padding: 6px 12px;
    flex-wrap: wrap;
  }
  .top .nav,
  .top .me,
  .top .theme {
    display: none;
  }
  .top {
    flex-wrap: nowrap;
  }
  .brand {
    font-size: 16px;
  }
  .page {
    padding: 12px;
  }
  .calhead {
    min-width: 0;
  }
  .caltb .sp {
    margin-left: auto;
  }
  .pcard .pcol {
    display: none;
  }
  .pcard {
    grid-template-columns: 40px minmax(0, 1fr) auto;
  }
  .pcard .btn {
    font-size: 12px;
  }
  .pcard .mact {
    display: flex;
  }
  .fieldpair {
    grid-template-columns: 1fr;
  }
  .split .detail {
    display: block;
  }
  .split.detail-open .listpane {
    display: block;
  }
  .split {
    display: block;
  }
  .split .detail {
    margin-top: 14px;
  }
  .edbody {
    max-height: none;
    flex: 1;
    overflow: auto;
  }
  dialog {
    max-height: 100dvh;
    height: 100dvh;
  }
  dialog form {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .edfoot {
    flex-shrink: 0;
  }
  .summarygrid {
    grid-template-columns: 1fr;
  }
  .formerror {
    max-height: 25vh;
  }
  .tloc {
    font-size: 19px;
    max-width: 100%;
  }
  .btn {
    font-size: 13px;
  }
  .wtable {
    min-width: 600px;
  }
  .tabs {
    overflow: auto;
    white-space: nowrap;
  }
  .a-shell {
    padding: 12px;
  }
}
.side > .btn,
.side > nav,
.side > .sideh,
.side > .sectionlabel {
  flex-shrink: 0;
}
.side > .btn {
  display: flex;
  align-items: center;
  text-align: left;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  height: 38px;
  margin: 0 6px;
}
.side .sectionlabel {
  margin: 14px 6px 2px;
}
.side .sideh {
  padding: 6px;
}
.side .sideh button {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.side nav {
  gap: 4px;
}
.side.open {
  display: flex;
}
#drawer.open {
  transform: translateX(0);
}
.nav button {
  padding-inline: 8px;
}
.top .theme button {
  padding-inline: 6px;
}
.top .nav {
  column-gap: 0;
}
.a-tabs {
  scrollbar-width: thin;
}
dialog {
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0;
  width: min(570px, 96vw);
}
dialog::backdrop {
  background: #0008;
}
.a-shell h2 {
  font-size: 20px;
}
.a-shell .entry p {
  margin: 8px 0;
}
.a-shell .a-shift h3 {
  font-size: 17px;
}
@media (min-width: 901px) {
  #actions {
    display: flex;
  }
  .top .nav {
    flex-wrap: nowrap;
  }
  .top .me .av {
    display: none;
  }
}
@media (max-width: 900px) {
  .top > .desk {
    display: none;
  }
  .side .btn {
    font-size: 14px;
  }
  dialog {
    border-radius: 0;
    width: 100vw;
    max-width: 100vw;
    margin: 0;
    max-height: 100dvh;
  }
}
@media print {
  .top,
  .demo-banner,
  .toolbar-line,
  .h1,
  .caltb,
  .stat,
  .legend,
  .side,
  #toast,
  .no-print,
  dialog {
    display: none !important;
  }
  .page {
    padding: 0;
    max-width: none;
  }
  .print-only {
    display: block;
  }
  .calwrap,
  .schwrap {
    overflow: visible;
  }
  #classic,
  .sch {
    min-width: 0;
  }
  .cwk,
  .chead {
    min-width: 0;
  }
  .cslot {
    font-size: 8px;
  }
  .wkcard {
    min-width: 0;
    break-inside: avoid;
  }
  .crail button,
  .dnote {
    display: none;
  }
  .panel {
    border: 0;
  }
  .calwrap {
    color: #111;
  }
  .print-head {
    font-size: 16px;
    margin-bottom: 12px;
  }
}
/* Keep the briefing, review, and activity sections distinct in the agent workspace. */
.a-shell > .panel { margin-bottom: 16px; }
.a-shell .dar-disclosure { padding: 0; }
.dar-disclosure > summary { padding: 16px 20px; cursor: pointer; font-weight: 700; }
.dar-disclosure > summary span { margin-left: 8px; font-weight: 400; }
.dar-disclosure-body { padding: 0 20px 20px; }
#activity-editor[hidden] { display: none; }
#agent-form [hidden] { display: none; }
.agent-menu { display: none; }
.agent-desktop-nav a { padding: 12px; white-space: nowrap; color: var(--ink); }
.dar-quick-actions { display: flex; justify-content: center; gap: 12px; margin: 0 0 20px; }
.review-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #e6a43e; margin-left: 6px; }
dialog.agent-drawer { inset: 0 auto 0 0; margin: 0; width: min(84vw,350px); height: 100dvh; max-height: 100dvh; max-width: none; border: 0; border-radius: 0; padding: 24px; background: #344c3c; color: #f5f4ec; box-sizing: border-box; }
.agent-drawer[open] { display: flex; flex-direction: column; }
.drawer-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 40px; }
.drawer-heading .btn { color: inherit; background: #ffffff12; border-color: #ffffff30; }
.drawer-nav { display: grid; gap: 18px; }
.drawer-footer { margin-top: auto; padding-top: 40px; }
.drawer-footer .btn { color: inherit; background: transparent; border-color: #ffffff30; }
.portal-colleague { border-top: 1px solid var(--line); padding: 12px 0 0; margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: space-between; }
.portal-phone { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.portal-phone .mact { display: flex; margin: 0; gap: 6px; }
.portal-phone .mb { width: 40px; height: 40px; }
.shift-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.shift-card-heading h3 { margin: 0; }
.shift-card-time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.shift-card-person { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.shift-card-person .portal-phone { justify-content: center; }
.refresh-icon { font-size: 20px; }
.ttl .arrows button { width: auto; min-width: 62px; padding: 7px 10px; white-space: nowrap; }
.ttl { flex-wrap: wrap; }
@media (max-width: 700px) {
  .agent-desktop-logout { display: none; }
  .caltb { position: relative; }
  .calhead .tloc { max-width: calc(100% - 120px); }
  .caltb .actions-trigger { position: absolute; top: 0; right: 0; }
}
.drawer-nav button,.drawer-nav a { display: block; width: 100%; text-align: left; padding: 16px; border: 0; border-radius: 9px; color: inherit; background: transparent; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.drawer-nav .on,.drawer-nav button:hover,.drawer-nav a:hover { background: #ffffff24; }
.site-ack-label { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0; }
.site-ack-label input { width: auto; margin-top: 4px; }
.meal-banner { position: fixed; z-index: 45; bottom: calc(88px + env(safe-area-inset-bottom)); left: 12px; right: 12px; max-width: 600px; margin: auto; padding: 16px; border: 1px solid #efd391; border-left: 5px solid #b65306; border-radius: 16px; background: #fff7e6; color: #252a31; box-shadow: 0 8px 28px #0003; }
.meal-banner p { margin: 0 0 12px; line-height: 1.5; }
.meal-banner b { color: #a94b04; }
.meal-buttons { display: flex; gap: 10px; }
.meal-buttons .meal-log { flex: 1; background: #ad4f06; color: white; border-color: #ad4f06; justify-content: center; }
.meal-buttons .meal-later { background: white; color: #9b4300; border-color: #efd391; }
.meal-prompt-visible .a-shell { padding-bottom: 220px; }
@media (max-width: 700px) {
  .agent-menu { display: inline-flex; min-width: 42px; min-height: 42px; justify-content: center; font-size: 20px; }
  .agent-logo,.agent-desktop-nav { display: none; }
  .a-header { gap: 8px; }
  .a-header .btn.sm { padding: 9px; }
  .dar-quick-actions .btn { padding: 10px 14px; }
}
/* Screen-specific card layouts keep identity, details and actions separate. */
.top .btn.phn { color: var(--brand); }
.btn.actions-trigger { background: var(--accent); border-color: var(--accent); color: white; }
.pcard .pmain { min-width: 0; overflow-wrap: anywhere; }
.pcard > .btn { width: auto; justify-self: end; white-space: nowrap; }
.agent-card { grid-template-columns: 44px minmax(160px,1.4fr) minmax(180px,1fr) auto; }
.location-card { grid-template-columns: 44px minmax(160px,1.4fr) minmax(180px,1fr) auto; }
.card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.card-actions .btn { width: auto; white-space: nowrap; }
.manager-card { grid-template-columns: 44px minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto; }
.manager-card > .card-actions { flex-direction:column; align-items:flex-end; min-width:0; }
.ccard { grid-template-columns: 44px minmax(140px,1fr) minmax(180px,1fr) minmax(190px,1.2fr) minmax(80px,.6fr) auto; }
.contact-line { display: flex; align-items: center; gap: 6px; min-width: 0; }
.contact-line .mb { min-width: 32px; width: 32px; height: 32px; padding: 0; flex: 0 0 32px; }
.contact-line > span,.contact-line > a:not(.mb) { overflow-wrap: anywhere; min-width: 0; }
.contact-line .email { background: #b6b353; color: #252b20; }
.email-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.document-card { grid-template-columns: minmax(0,1fr) auto; gap: 20px; }
.document-card .pmain { display: grid; gap: 8px; }
.document-card p { margin: 0; }
.stat .stat-open { color: #1761c5; }
.stat .btn.stat-warning { color: #c00000; }
@media(max-width:900px) {
  .agent-card,.location-card,.manager-card { grid-template-columns: 40px minmax(0,1fr) auto; }
  .location-card .card-actions { grid-column: 2 / -1; justify-self: end; }
  .manager-card .contact-phone,.manager-card .contact-email { display: block; grid-column: 2 / -1; }
  .ccard { grid-template-columns: 64px minmax(0,1fr) auto; gap: 12px 14px; }
  .ccard .av { grid-column: 1; grid-row: 1; }
  .ccard .pmain { grid-column: 2 / -1; grid-row: 1; }
  .ccard .mact { grid-column: 1 / 3; grid-row: 2; flex-wrap: wrap; }
  .ccard > .btn { grid-column: 3; grid-row: 2; }
  .document-card { grid-template-columns: minmax(0,1fr) auto; }
  .document-card .pmain { grid-column: 1; }
}
.warning-list { display: grid; gap: 12px; }
.warning-card { display: grid; gap: 16px; align-items: start; margin: 0; }
.limit-card { grid-template-columns: 100px minmax(120px,1fr) minmax(110px,1fr) minmax(130px,1fr) minmax(130px,1fr) minmax(200px,2fr) auto; }
.history-card { grid-template-columns: minmax(130px,1fr) minmax(140px,1fr) minmax(120px,1fr) 90px minmax(260px,3fr); }
.warning-field { min-width: 0; overflow-wrap: anywhere; }
.warning-field .plbl { text-transform: none; }
.warning-manager,.overage { color: #b42318; }
.warning-actions { align-self: center; }
@media(max-width:1100px) {
  .limit-card,.history-card { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .limit-card .warning-field:nth-child(6),.history-card .warning-field:last-child { grid-column: 1 / -1; }
  .warning-actions { grid-column: 1 / -1; justify-self: end; }
}
.override-card { grid-template-columns: 100px minmax(130px,1fr) minmax(100px,.8fr) minmax(130px,1fr) 75px minmax(260px,2.5fr); }
.warning-highlight { background: #ffe2df; color: #a61916; font-weight: 700; padding: 1px 3px; border-radius: 3px; }
.current-hours { margin-top: 8px; }
@media(max-width:1100px) { .override-card { grid-template-columns: repeat(2,minmax(0,1fr)); } .override-card .warning-field:last-child { grid-column: 1 / -1; } }
/* Compact weekly roster; only affected cells are highlighted. */
.sch.roster-table { background:transparent; min-width:1100px; border-collapse:separate; border-spacing:0 10px; }
.sch.roster-table tr { filter:drop-shadow(0 1px 2px #00000012); }
.sch.roster-table th,.sch.roster-table td { background:var(--card); border:0; border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); border-right:1px solid var(--line); }
.sch.roster-table tr > :first-child { border-left:1px solid var(--edge); border-radius:14px 0 0 14px; }
.sch.roster-table tr > :last-child { border-right-color:var(--edge); border-radius:0 14px 14px 0; }
.sch.roster-table tbody th { background:var(--card); }
.sch.roster-table thead th { vertical-align:middle; }
.sch.roster-table th,.sch.roster-table td { padding:8px; vertical-align:top; }
.sch.roster-table tbody th { text-align:left; font-weight:700; }
.roster-shift + .roster-shift { margin-top:6px; }
.roster-time { white-space:nowrap; }
.sch.roster-table td.roster-alert { background:#ffeded; color:#332321; }
.sch.roster-table td.roster-total-alert { background:#f6cccc; color:#a61916; font-weight:700; }
@media print { .sch.roster-table { min-width:0; width:100%; } .roster-table tr { break-inside:avoid; } .roster-table td { print-color-adjust:exact; -webkit-print-color-adjust:exact; } }
/* Agent calendars: a compact daily card with full-width shift bands. */
.portal-day-card { margin:12px 0; border:1px solid var(--edge); border-radius:12px; overflow:hidden; background:var(--card); box-shadow:0 1px 3px #00000014; }
.portal-day-header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:13px 12px; background:var(--head-bg); }
.portal-day-header h3 { margin:0; font-size:17px; }
.portal-day-badges { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.portal-day-badges .chip { white-space:nowrap; }
.portal-note-button { padding:0 8px; }
.portal-site-row { display:grid; grid-template-columns:90px minmax(0,1fr) 86px; align-items:center; gap:8px; padding:12px 10px; border-top:1px solid var(--line); border-left:4px solid transparent; }
.portal-site-row.alpha { border-left-color:var(--alpha); }
.portal-site-row.bravo { border-left-color:var(--bravo); }
.portal-site-row.charlie { border-left-color:var(--charlie); }
.portal-site-row.unassigned { color:var(--muted); border-left-color:var(--empty-line); }
.portal-row-hours { font-size:13px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.portal-row-person { min-width:0; }
.portal-row-name { font-size:17px; line-height:1.3; overflow-wrap:anywhere; }
.portal-row-actions { display:flex; justify-content:flex-end; gap:6px; }
.portal-row-actions .mb { min-width:40px; width:40px; padding:0; height:34px; flex:0 0 40px; border-radius:6px; font-size:16px; text-decoration:none; }
.portal-row-actions .text { border:1px solid #e3d5b9; }
.portal-detail-muted,.portal-detail-red { font-size:12px; line-height:1.4; overflow-wrap:anywhere; margin-top:3px; }
.portal-detail-muted { color:#66615b; }
.portal-detail-red { color:#b42318; }
.portal-open { color:#1761c5; }
.personal-shift { box-shadow:0 1px 3px #00000014; padding:14px; }
.personal-shift-main { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.personal-date { flex:0 0 52px; }
.personal-hours { white-space:nowrap; font-variant-numeric:tabular-nums; }
.a-shell .personal-shift h3 { margin:0; font-size:19px; flex:1 1 90px; overflow-wrap:anywhere; min-width:0; }
.personal-actions { display:flex; gap:8px; margin-left:auto; }
.personal-details { margin-top:7px; }
@media(min-width:901px) { .a-shell:has(.personal-shift) { max-width:1000px; } }
@media(max-width:450px) { .portal-site-row { grid-template-columns:82px minmax(0,1fr) 86px; gap:6px; padding:10px 8px; } .portal-row-hours { font-size:12px; } .portal-row-name { font-size:16px; } .portal-day-header { padding:12px 10px; } .portal-day-header h3 { font-size:16px; } .personal-shift-main { gap:8px; } .personal-status { flex:1 1 80px; } .personal-actions { flex-shrink:0; } }
.location-number-readonly { margin:0; min-height:38px; display:flex; align-items:center; font-weight:600; }
input[type="color"] { display:block; width:100%; height:40px; min-height:40px; padding:4px; border:1px solid var(--btn-line); border-radius:6px; background:var(--card); cursor:pointer; color-scheme:light; }
input[type="color"]::-webkit-color-swatch-wrapper { padding:0; }
input[type="color"]::-webkit-color-swatch { border:1px solid #777; border-radius:2px; }
input[type="color"]::-moz-color-swatch { border:1px solid #777; border-radius:2px; }
.pull-down { position:relative; flex-shrink:0; }
.pull-down > summary { list-style:none; display:flex; align-items:center; gap:8px; cursor:pointer; }
.pull-down > summary::-webkit-details-marker { display:none; }
.pull-down-list { position:absolute; z-index:70; top:calc(100% + 6px); right:0; min-width:230px; padding:8px; border:1px solid var(--edge); border-radius:10px; background:var(--card); color:var(--ink); box-shadow:0 8px 24px #0003; }
.pull-down-list > .btn { display:block; text-align:left; width:100%; height:auto; min-height:44px; margin:0; padding:10px 12px; border:0; background:transparent; color:inherit; white-space:normal; }
.pull-down-list > .btn:hover, .pull-down-list > .btn:focus-visible { background:var(--bg); }
.pull-down-list small { display:block; margin-top:3px; font-size:12px; color:var(--muted); }
.pull-down-list .sectionlabel { padding:4px 12px 8px; font-size:11px; font-weight:700; color:var(--muted); }
.pull-down-list hr { border:0; border-top:1px solid var(--line); margin:6px 0; }
.side .pull-down { margin:0 6px; }
.side .pull-down > summary { color:inherit; background:#ffffff14; border-color:#ffffff30; text-align:left; }
.side .pull-down-list { position:static; min-width:0; margin-top:6px; background:transparent; color:inherit; border-color:#ffffff30; box-shadow:none; }
.side .pull-down-list small, .side .pull-down-list .sectionlabel { color:inherit; opacity:.8; }
.side .pull-down-list > .btn:hover, .side .pull-down-list > .btn:focus-visible, .side .pull-down-list > .btn.on { background:#ffffff24; }
.bicon { width:.92em; height:.92em; fill:currentColor; vertical-align:-.08em; flex-shrink:0; }
.site-map-link { margin:8px 0 16px; overflow-wrap:anywhere; }
@media (max-width:900px) {
  .top .btn.phn, .a-header .btn.agent-menu {
    background:var(--accent); border-color:var(--accent); color:white;
    height:36px; min-height:36px; border-radius:8px;
  }
}
@media (max-width:900px) { .pull-down.desk { display:none; } }
.shift-control-disabled { opacity: .5; }
/* The roster follows the app theme on screen; printed rows stay light. */
@media print {
  .schwrap { --card:#fff; --ink:#1f1e1b; --muted:#6b6760; --line:#e3e0da; --edge:#8e877a; color:var(--ink); }
}
:root[data-theme='dark'] .site-coverage-note { color:#fff; }
@media (prefers-color-scheme:dark) {
  :root:not([data-theme='light']):not([data-theme='earth']) .site-coverage-note { color:#fff; }
}

/* Shared UAM brand mark, including the compact mobile portal header. */
.uam-logo { display:block; width:36px; height:36px; flex:0 0 36px; border-radius:8px; object-fit:contain; }
.brand > span, .uam-wordmark { font-size:20px; font-weight:800; letter-spacing:.04em; }
@media (max-width:600px) {
  .a-header .uam-logo { width:30px; height:30px; flex-basis:30px; }
  .a-header .uam-wordmark { font-size:18px; }
}

/* Notes are deliberate highlights, never an empty-slot/placeholder tint. */
.cslot.placeholder { background:#fff; }
.cslot.unfilled { background:transparent; }
.cslot.has-note { background:#ffe97f; color:#1f1e1b; }
.cgrp .cslot:not(.has-note) { background:transparent; }
#classic td.tdy, .cday.tdy, .portal-day-card.tdy {
  outline:3px solid #be792b; outline-offset:-3px;
}
#classic td.tdy > .dts, .cday.tdy > .cdtop, .portal-day-card.tdy > .portal-day-header {
  background:#fff2be; color:#25231e;
}
.roster-table th.roster-today, .roster-table td.roster-today {
  background:#fff2be; color:#25231e;
}
.roster-table td.roster-today.roster-alert {
  box-shadow:inset 0 0 0 2px #bd3434; color:#a52020;
}
/* Compact only the classic grid; controls elsewhere retain their sizing. */
@media (max-width:900px) {
  #classic { min-width:924px; }
  #classic th:first-child, #classic .railtd { width:42px !important; }
  #classic th { padding:5px 3px; font-size:10px; }
  #classic .dts { min-height:24px; padding:3px 5px; font-size:12px; gap:2px; }
  #classic .mband { min-height:30px; padding:3px 5px 4px; font-size:12px; line-height:1.2; }
  #classic .cnm { font-size:12px; white-space:normal; overflow:visible; text-overflow:clip; }
  #classic .bt { font-size:10px; font-weight:700; }
  #classic .bs, #classic .chh { font-size:10px; }
  #classic .chip { font-size:8px; padding:2px 3px; }
  #classic .railtd .btn { font-size:9px; padding:4px 3px; margin:5px auto; min-width:0; }
}

/* Assistant: shared compact transcript and review panel. */
.assist-page {max-width:760px;margin:24px auto;padding:16px;}
.assist-transcript {max-height:32vh;overflow:auto;overflow-wrap:anywhere;}
.assist-transcript p {padding:10px 0;border-bottom:1px solid var(--line,#ddd);white-space:pre-wrap;}
.assist-table {overflow:auto;margin-top:12px;}
.assist-table table {width:100%;border-collapse:collapse;}
.assist-table th,.assist-table td {padding:8px;text-align:left;border-bottom:1px solid var(--line,#ddd);vertical-align:top;overflow-wrap:anywhere;}
.assist-input,.assist-reason {width:100%;box-sizing:border-box;}
.assist-error,#assist-login-error {color:var(--danger,#b52b2b);}
.assist-page .row {flex-wrap:wrap;gap:8px;}
@media(max-width:600px){.assist-table{font-size:12px}.assist-page{margin:0}.assist-mic-status{flex:1}}

/* Contact actions are line icons on the same surface as their card. */
.mb.contact-action {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--accent);
}
.mb.contact-action svg { width:20px; height:20px; flex-shrink:0; }
:root[data-theme='earth'] .side,
:root[data-theme='earth'] dialog.agent-drawer { background:var(--panel); color:var(--ink); }
:root[data-theme='earth'] .side > .btn,
:root[data-theme='earth'] .side .sideh button { color:var(--ink); border-color:var(--btn-line); }
:root:is([data-theme='dark'],[data-theme='earth']) .mb.contact-action { color:var(--gold); }
:is(.nav button.on,.side nav button.on,.drawer-nav .on,.rail2 button.on) {
  background:transparent;
  box-shadow:inset 0 0 0 1.5px var(--gold);
  color:var(--ink);
}
/* Calendar controls retain the printed palette. Filled buttons retain their ink. */
.btn:not(.calwrap .btn):not(.nav .btn):not(.side nav .btn) {
  box-shadow:inset 0 0 0 1.5px var(--gold);
}
:root[data-theme='dark'] .btn:not(.calwrap .btn):not(.nav .btn):not(.side nav .btn) { color:#fff; }
@media (prefers-color-scheme:dark) {
  :root:not([data-theme='light']):not([data-theme='earth']) .mb.contact-action { color:var(--gold); }
  :root:not([data-theme='light']):not([data-theme='earth']) .btn:not(.calwrap .btn):not(.nav .btn):not(.side nav .btn) { color:#fff; }
}
/* Light navigation drawer ink must stay readable against its surface. */
:root:not([data-theme='dark']):not([data-theme='earth']) .side nav button.on { color:inherit; }

@media(max-width:900px) {
  .manager-card > .av { grid-column:1; grid-row:1; }
  .manager-card > .pmain { grid-column:2 / -1; grid-row:1; }
  .manager-card > .card-actions { grid-column:1 / -1; flex-direction:row; justify-self:stretch; justify-content:flex-end; }
}

/* One shared theme chooser for mobile navigation and private link pages. */
.link-theme-bar { max-width:1100px; margin:0 auto; padding:12px 20px 0; display:flex; justify-content:flex-end; }
.theme-dialog { width:min(480px,calc(100vw - 32px)); padding:0; color:var(--ink); background:var(--panel); }
.theme-dialog .edtop { display:flex; align-items:center; justify-content:space-between; }
.theme-dialog h2 { margin:0; }
.theme-choices { display:grid; gap:12px; }
.theme-choice { width:100%; min-height:60px; padding:16px; text-align:left; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--ink); font:inherit; cursor:pointer; }
.theme-choice small { display:block; margin-top:6px; color:var(--muted); }
.theme-choice.on { box-shadow:inset 0 0 0 2px var(--gold); }
.btn.has-warnings, .nav .btn.has-warnings, .side nav .btn.has-warnings { color:#c5221f!important; }
@media (max-width:900px) {
  .theme-dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
}
@media print { .link-theme-bar { display:none; } }

.request-banner {display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;margin:8px 0;border:1px solid var(--gold);border-radius:10px;background:var(--panel);}
.request-banner span {font-size:12px;color:var(--muted);}
.request-day {padding:4px;display:grid;gap:3px;}
.request-day .btn {white-space:normal;text-align:left;font-size:10px;color:#593d0b!important;background:#fff3cf!important;}
.request-card {padding:14px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;}
.request-card h3 {margin:0;}
.request-wording {white-space:pre-wrap;overflow-wrap:anywhere;}
@media print {.schedule-request-ui {display:none!important;}}

/* Shared avocado drawers and plain action/menu rows in every theme. */
:root .side, :root dialog.agent-drawer { background:var(--accent); color:#fff; gap:4px; }
:root .side .sectionlabel, :root .agent-drawer .sectionlabel { color:#fff; opacity:1; }
:root .side .btn, :root .agent-drawer .btn, :root .drawer-nav button { color:#fff!important; }
:root .side nav { padding:0 6px; gap:4px; }
:root .side nav .btn, :root .side > .btn { margin:0; padding:8px 12px; min-height:38px; height:auto; }
:root .side > .btn { margin:0 6px; }
:root .drawer-nav { gap:4px; }
:root .drawer-nav button { padding:8px 12px; min-height:38px; }
:root .drawer-heading { margin-bottom:16px; }
:root #actions .btn, :root .pull-down-list > .btn { box-shadow:none!important; border-color:transparent; background:transparent; }
:root #actions .btn.on, :root #actions .sideh .btn { box-shadow:inset 0 0 0 1.5px var(--gold)!important; }
:root .side .btn:hover, :root .drawer-nav button:hover { background:#ffffff24; }
:root .pull-down-list > .btn:hover { background:var(--line); }
:root .side nav .btn.has-warnings { color:#a31310!important; }
.link-theme-bar[hidden] { display:none; }
.assist-composer { scroll-margin-top:12px; }
.assist-composer .row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.assist-transcript { max-height:none; overflow:visible; }
.assist-transcript p:first-child { margin-top:0; }
.assist-error:empty { display:none; }
.request-count { margin-left:4px; font-weight:700; }
@media(max-width:900px) {
  .personal-hours,.personal-details .portal-partial { font-size:14px; font-weight:700; }
  .portal-row-hours,.portal-site-row .portal-partial { font-size:13px; font-weight:700; }
}

/* The portal drawer also provides Theme on wide screens. */
.a-header .agent-menu { display:inline-flex; align-items:center; justify-content:center; }

/* Calendar summary warning count is a plain clickable label. */
.stat .stat-warning { background:transparent; border:0; box-shadow:none; padding:0; color:#c00000; font:inherit; cursor:pointer; white-space:nowrap; }
.stat .stat-warning:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }

/* Plain toolbar controls blend into the page; Actions retains its accent/ring. */
:root .caltb .sp > .btn:not(.actions-trigger),
:root .caltb .sp > .pull-down > summary.btn,
:root .caltb .schedule-request-ui > .btn,
:root .desktop-theme > summary.btn {
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
:root .caltb .sp > .btn:focus-visible,
:root .caltb summary.btn:focus-visible,
:root .caltb .schedule-request-ui > .btn:focus-visible,
:root :is(.caltb .arrows, .roster-arrows, .portal-arrows) > .btn:focus-visible,
:root .desktop-theme > summary.btn:focus-visible {
  outline:2px solid var(--gold); outline-offset:2px;
}

/* Picker names are plain rows; month navigation keeps its gold frame. */
:root #dialog .btn.location-choice { background:transparent!important; border-color:transparent!important; box-shadow:none!important; }
:root #dialog .btn.location-choice:hover { background:var(--line)!important; }
:root :is(.caltb .arrows, .roster-arrows, .portal-arrows) > .btn { background:transparent; }

.agent-site-list { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 16px; }
.agent-site-item { max-width:100%; overflow-wrap:anywhere; }
.agent-site-list .all-sites { color:var(--gold); font-weight:700; }

/* The calendar site title uses the shared avocado accent in every theme. */
:root .caltb .tloc { color:var(--accent); }

@media (min-width:901px) {
  .agent-card { grid-template-columns:44px minmax(160px,calc(33.333% - 80px)) minmax(180px,1fr) auto; }
}
:root .caltb .tloc:hover { text-decoration-thickness:5px; }
:root :is(.caltb .arrows, .roster-arrows, .portal-arrows) > .btn { width:38px; min-width:38px; height:38px; padding:0; border-radius:0; justify-content:center; flex-shrink:0; }

/* Messages/Emails location filters: only the selected site has a frame. */
:root .toolbar-line .btn.site-filter { background:transparent!important; border-color:transparent!important; box-shadow:none!important; }
:root .toolbar-line .btn.site-filter.on { box-shadow:inset 0 0 0 1.5px var(--gold)!important; }
:root .toolbar-line .btn.site-filter:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }



/* Compact rounded triangle with a lighter stroke; preserve the full tap target. */
:root :is(.caltb .arrows, .roster-arrows, .portal-arrows) > .btn { position:relative; border:0; box-shadow:none!important; background:transparent!important; }
:root :is(.caltb .arrows, .roster-arrows, .portal-arrows) > .btn::before {
  content:''; position:absolute; inset:5px; pointer-events:none; background:var(--gold);
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M8 2 C3 2 2 8 2 15 C2 22 3 28 8 28 C15 28 28 19 28 15 C28 11 15 2 8 2 Z' fill='none' stroke='white' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
:root :is(.caltb .arrows, .roster-arrows) > .btn:first-child::before,
:root .portal-arrows > .btn.previous::before { transform:scaleX(-1); }

/* Calendar week actions and the TBD summary indicator. */
:root .calwrap :is(#classic, .crail) .btn[data-action="copyWeek"] { background:#fff2be; color:#342d18; }
:root .calwrap :is(#classic, .crail) .btn[data-action="clearWeek"] { background:#f9d4d4; color:#542323; }
.stat .stat-tbd { color:#947000; }
:root[data-theme='dark'] .stat .stat-tbd { color:#f4d35e; }
@media (prefers-color-scheme:dark) {
  :root:not([data-theme='light']):not([data-theme='earth']) .stat .stat-tbd { color:#f4d35e; }
}

/* Persistent manual-request marker, visible in classic and comfortable calendars. */
:root .request-day { padding:5px; gap:2px; justify-items:start; border-left:3px solid #bd841f; background:#fff3cf; color:#593d0b; }
:root .request-day .btn.request-bubble { border-radius:999px; border:1px solid #bd841f; box-shadow:none; background:#ffe49a!important; color:#593d0b!important; font-size:12px; min-height:28px; height:auto; padding:3px 9px; }
.request-manual-label { font-size:10px; line-height:1.2; color:#593d0b; }

/* Earth drawers: slightly deeper than the page, with matching dark-brown ink. */
:root[data-theme='earth'] .side { background:#D2C5B4; color:var(--ink); }
:root[data-theme='earth'] .side .btn,
:root[data-theme='earth'] .side .sectionlabel { color:var(--ink)!important; }
:root[data-theme='earth'] .side .btn { background:transparent; }
:root[data-theme='earth'] .side .btn:hover { background:#4a423812; }
:root[data-theme='earth'] .side nav .btn.has-warnings { color:#a31310!important; }
:root .side .btn[data-theme-open] { box-shadow:none!important; border-color:transparent; background:transparent; }

.contact-avatar { overflow:hidden; flex-shrink:0; }
.contact-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
#dialog-body > .contact-avatar { width:80px; height:80px; font-size:26px; }
@media print { .contact-avatar img { display:none!important; } }

.manager-card .pmain { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
/* Balanced side columns keep the menu centered on the screen, not the spare space. */
@media(min-width:901px) {
  .top { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:8px; flex-wrap:nowrap; padding-inline:12px; }
  .top > .brand { justify-self:start; margin:0; }
  .top .nav { justify-self:center; flex-wrap:nowrap; gap:0; }
  .top .nav > .btn, .top .nav > .desktop-theme > summary { font-size:clamp(11px,1vw,13.5px); padding-inline:clamp(3px,.5vw,8px); white-space:nowrap; }
  .top-account { display:flex; align-items:center; justify-self:end; gap:6px; min-width:0; max-width:100%; }
  .top .me { gap:6px; min-width:0; margin:0; }
  .top .me .av { display:inline-flex; width:32px; height:32px; }
  .top .identity-name { min-width:0; }
  .top .identity-name b { overflow:hidden; text-overflow:ellipsis; }
  .top-account > .btn { padding-inline:5px; font-size:11px; white-space:nowrap; }
}
@media(max-width:900px) { .top-account { display:none; } }
.drawer-identity { display:flex; align-items:center; gap:10px; min-width:0; }
.drawer-identity .contact-avatar { width:32px; height:32px; outline:1px solid var(--gold); outline-offset:2px; }

/* Personal schedule uses one compact day header and rows at every width. */
.personal-day-row { display:grid; grid-template-columns:90px minmax(0,1fr) auto; gap:10px; padding:12px; border-top:1px solid var(--line); align-items:center; }
.personal-site { min-width:0; }
.a-shell .personal-site h3 { margin:0; font-size:17px; overflow-wrap:normal; word-break:normal; hyphens:none; }
.personal-day-row .personal-actions { margin:0; }
.personal-day-row .personal-details { margin-top:3px; }
.portal-month { justify-content:flex-start; gap:12px; flex-wrap:nowrap; }
.portal-month > b { flex:0 1 auto; }
:root .portal-arrows > .btn.next::before { transform:none; }
.contact-avatar { border-radius:22%; }
@media(max-width:450px) { .personal-day-row { grid-template-columns:82px minmax(0,1fr) auto; gap:8px; padding:10px 8px; } .personal-day-row .personal-hours { font-size:12px; } .a-shell .personal-site h3 { font-size:16px; } }

/* Keep the portal menu button avocado green at desktop and mobile widths. */
:root .a-header .btn.agent-menu { background:var(--accent); color:#fff; }

/* Portal actions sit beside the date, below navigation, and wrap together on phones. */
.portal-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.portal-tools { justify-content:flex-end; }
.agent-drawer .drawer-footer { display:flex; flex-direction:column; gap:8px; }
.agent-drawer .drawer-footer > .btn { width:100%; text-align:left; padding:8px 12px; min-height:38px; }
:root .agent-drawer .btn[data-theme-open] { background:transparent; border-color:transparent; box-shadow:none!important; }
:root:has(.theme-dialog[open]) .agent-drawer .btn[data-theme-open] { box-shadow:inset 0 0 0 1.5px var(--gold)!important; }

@media screen { .calwrap { border:2px solid var(--edge); box-shadow:0 2px 5px #00000018; } }
/* Keep all seven portal tabs visible together on desktop. */
@media (min-width:901px) { .agent-desktop-nav > :is(button,a) { padding-inline:6px; flex-shrink:0; } }

/* Shared person cards: only the avatar opens the profile. */
.person-card { --person-avatar-size:64px; }
.pcard.person-card .contact-avatar { width:var(--person-avatar-size); height:var(--person-avatar-size); border-radius:14px; font-size:20px; }
.profile-avatar { display:block; width:var(--person-avatar-size); height:var(--person-avatar-size); padding:0; border:0; background:transparent; color:inherit; border-radius:14px; cursor:pointer; }
.profile-avatar:focus-visible, .contact-menu > summary:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.ccard.person-card { cursor:default; grid-template-columns:64px minmax(140px,1fr) minmax(180px,1fr) minmax(190px,1.2fr) minmax(80px,.6fr); }
.ccard.person-card:has(> .contact-menu) { grid-template-columns:64px minmax(140px,1fr) minmax(180px,1fr) minmax(190px,1.2fr) minmax(80px,.6fr) 40px; }
.ccard.person-card:hover { outline:none; }
.manager-card.person-card { grid-template-columns:64px minmax(0,1fr) minmax(0,1fr); }
.manager-card.person-card:has(> .contact-menu) { grid-template-columns:64px minmax(0,1fr) minmax(0,1fr) 40px; }
.manager-details { min-width:0; display:grid; gap:10px; }
.manager-details .mact { display:flex; flex-wrap:wrap; }
.manager-details .card-actions { justify-content:flex-start; }
.contact-menu { align-self:start; justify-self:end; }
.contact-menu > summary { display:flex; align-items:center; justify-content:center; list-style:none; width:40px; height:40px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--muted); font-size:26px; cursor:pointer; }
.contact-menu > summary:hover, .contact-menu > summary:focus-visible { color:var(--accent); }
.contact-menu .pull-down-list { min-width:140px; }
:root:is([data-theme='dark'],[data-theme='earth']) .contact-menu > summary:is(:hover,:focus-visible) { color:var(--gold); }
@media(prefers-color-scheme:dark) { :root:not([data-theme='light']):not([data-theme='earth']) .contact-menu > summary:is(:hover,:focus-visible) { color:var(--gold); } }
@media(max-width:900px) {
 .ccard.person-card, .manager-card.person-card { grid-template-columns:64px minmax(0,1fr); }
 .ccard.person-card:has(> .contact-menu), .manager-card.person-card:has(> .contact-menu) { grid-template-columns:64px minmax(0,1fr) 40px; }
 .person-card > .profile-avatar { grid-column:1; grid-row:1; align-self:start; }
 .ccard.person-card > .pmain { grid-column:2; grid-row:1; }
 .person-card > .contact-menu { grid-column:3; grid-row:1; }
 .ccard.person-card > .mact { grid-column:1/-1; grid-row:2; }
 .manager-card.person-card > .manager-details { grid-column:2; grid-row:1; }
 .manager-card.person-card > .manager-locations { grid-column:1/-1; }
}
/* Keep manager methods and locations visible without squeezing mobile names. */
@media(max-width:900px) {
  .manager-card.person-card > .manager-details { display:contents; }
  .manager-card.person-card .manager-details > .pmain { grid-column:2; grid-row:1; }
  .manager-card.person-card .manager-details > .mact { grid-column:1/-1; grid-row:2; }
  .manager-card.person-card .manager-details > .card-actions { grid-column:1/-1; grid-row:3; }
  .manager-card.person-card > .manager-locations { display:block; grid-column:1/-1; grid-row:4; }
}

/* Profile tools belong with the details on narrow screens, not in a crowded footer. */
.profile-tools-desktop { display:flex; gap:8px; }
.profile-tools-mobile { display:none; }
@media(max-width:900px) {
  .profile-tools-desktop { display:none; }
  .profile-tools-mobile { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:24px auto 0; max-width:360px; }
  .profile-tools-mobile .btn { min-height:44px; width:100%; }
  .profile-tools-mobile .btn:last-child { grid-column:1/-1; }
  #dialog-foot:has(.profile-tools-desktop) { gap:12px; padding-bottom:max(16px,env(safe-area-inset-bottom)); }
}

/* DAR keeps recording controls separate from the scrolling shift log. */
.dar-quick-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.dar-quick-actions .btn { min-height:44px; padding:10px 6px; white-space:normal; }
.dar-recording-card { position:sticky; top:8px; z-index:5; max-height:55dvh; overflow-y:auto; background:var(--card); margin-bottom:16px; }
.dar-recording-card h2 { margin:0 0 6px; }
.dar-recording-card .dar-recorder { padding:8px 0; gap:8px; }
.dar-recording-card .dar-mic { width:80px; height:80px; min-height:80px; }
.dar-recording-card .dar-mic-icon { width:40px; height:40px; }
.dar-recording-card .dar-mic-status { margin:4px 0; }
.dar-entry-list > .entry { background:var(--card); border:1px solid var(--edge); border-radius:12px; padding:16px; margin-bottom:12px; }
.dar-submit-row { margin:16px 0; }
.dar-submit-row .btn { width:100%; min-height:48px; white-space:normal; }

/* Side-by-side recorder controls and an always reachable submit action. */
.dar-recording-card .dar-recorder { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.dar-recording-card .dar-mic { grid-column:1; grid-row:1; width:104px; height:104px; border-radius:16px; }
.dar-recording-card .dar-mic-icon { width:52px; height:52px; }
.dar-recording-card .dar-recorder-controls > .btn { grid-column:2; grid-row:1; justify-self:start; min-height:52px; white-space:normal; text-align:center; }
.dar-recording-card .dar-mic-status { grid-column:1/-1; grid-row:2; }
.dar-submit-row { position:fixed; z-index:20; bottom:0; left:0; right:0; max-width:650px; margin:0 auto; padding:12px 16px max(12px,env(safe-area-inset-bottom)); background:var(--bg); border-top:1px solid var(--line); }
.a-shell:has(.dar-submit-row) { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
.dar-entry-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.dar-entry-actions .btn { min-height:40px; height:auto; }
@media(max-width:380px) { .dar-recording-card .dar-recorder-controls > .btn { width:104px; min-height:104px; border-radius:16px; } }
/* Earth drawers use brown ink, including controls with shared white defaults. */
:root[data-theme='earth'] .agent-drawer :is(.btn, .drawer-nav button, .drawer-nav a, .sectionlabel) {
  color:var(--ink)!important;
}

/* Status messages cannot resize or reposition the recorder controls. */
.dar-recorder-controls { display:flex; align-items:center; justify-content:center; gap:16px; }
.dar-recording-card .dar-mic-status { min-width:0; overflow-wrap:anywhere; }
.dar-recording-card { scrollbar-gutter:stable both-edges; }
