:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #f4f6fb;
  color: #071a3d;
  --navy: #071a3d;
  --navy-soft: #142d59;
  --orange: #ff9914;
  --magenta: #d50078;
  --surface: #ffffff;
  --muted: #63708a;
  --line: #dfe4ee;
}

.report-heading,
.previous-report-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.report-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.85rem;
  margin: 1rem 0 1.5rem;
}

.report-total-card {
  border: 1px solid #d8dfeb;
  border-radius: 16px;
  padding: 1rem;
  background: #f8fafc;
  color: #071b45;
}

.report-total-card > strong {
  display: block;
  margin-bottom: 0.7rem;
  font-size: 1rem;
}

.report-total-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.report-total-card dl div {
  min-width: 0;
}

.report-total-card dt {
  color: #64748b;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.report-total-card dd {
  margin: 0.1rem 0 0;
  font-weight: 800;
}

.report-table-scroll {
  overflow-x: auto;
  margin-bottom: 1.75rem;
}

.report-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  color: #071b45;
}

.report-table th,
.report-table td {
  padding: 0.75rem;
  border-bottom: 1px solid #d8dfeb;
  text-align: left;
  vertical-align: top;
}

.report-table th {
  color: #64748b;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.time-adjustment-panel,
.time-adjustment-approval-panel {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #d8dfeb;
}

.time-adjustment-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.time-adjustment-form label {
  display: grid;
  gap: 0.4rem;
  color: #071b45;
  font-weight: 700;
}

.time-adjustment-form select,
.time-adjustment-form input,
.time-adjustment-form textarea {
  width: 100%;
  border: 1px solid #a9b5c8;
  border-radius: 12px;
  padding: 0.75rem;
  color: #071b45;
  background: #fff;
  font: inherit;
}

.time-adjustment-reason {
  grid-column: 1 / -1;
}

.time-adjustment-form button {
  grid-column: 1 / -1;
}

@media (max-width: 760px) {
  .time-adjustment-form {
    grid-template-columns: 1fr;
  }
}

* {
  box-sizing: border-box;
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 153, 20, 0.14), transparent 28rem),
    radial-gradient(circle at 92% 86%, rgba(213, 0, 120, 0.11), transparent 28rem),
    linear-gradient(145deg, #f8f9fc 0%, #eef2f9 100%);
}

.pilot-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.72rem 1rem;
  background: var(--navy);
  color: #ffffff;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-align: center;
  text-transform: uppercase;
}

.pilot-dot {
  width: 0.48rem;
  height: 0.48rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 0.22rem rgba(255, 153, 20, 0.18);
}

.shell {
  display: grid;
  min-height: calc(100vh - 2.75rem);
  place-items: center;
  align-content: center;
  padding: 2.25rem 1rem 1.5rem;
}

.card {
  position: relative;
  width: min(100%, 46rem);
  padding: clamp(1.5rem, 5vw, 3.25rem);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(7, 26, 61, 0.09);
  border-radius: 1.65rem;
  box-shadow: 0 1.75rem 5rem rgba(7, 26, 61, 0.13);
}

.portal-shell .card {
  width: min(100%, 64rem);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.workspace-tabs {
  display: flex;
  gap: 0.45rem;
  margin: 1.35rem 0 1.1rem;
  padding: 0.35rem;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 0.95rem;
  background: #f5f7fb;
}

.workspace-tab,
.workspace-report-link {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: max-content;
  min-height: 2.7rem;
  padding: 0.58rem 0.8rem;
  border-radius: 0.68rem;
  background: transparent;
  box-shadow: none;
  color: #526078;
  font-size: 0.82rem;
  font-weight: 750;
  text-decoration: none;
}

.workspace-tab.is-active {
  background: var(--navy);
  box-shadow: 0 0.35rem 0.9rem rgba(7, 26, 61, 0.16);
  color: #ffffff;
}

.home-page[hidden],
.selfservice[hidden],
.page-panel[hidden],
.workspace-tab[hidden],
.workspace-report-link[hidden] {
  display: none !important;
}

.attention-dashboard {
  margin-top: 1.5rem;
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
  background: #f8fafc;
}

.attention-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.attention-heading h2 {
  margin: 0.2rem 0 0;
  color: var(--navy);
  font-size: 1.15rem;
}

.attention-count {
  padding: 0.3rem 0.62rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 0.75rem;
  font-weight: 800;
}

.attention-count[data-state="open"] {
  background: #fee2e2;
  color: #991b1b;
}

.attention-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.attention-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  min-height: 4.2rem;
  padding: 0.72rem;
  border: 1px solid #dbe3ef;
  border-radius: 0.85rem;
  background: #ffffff;
  box-shadow: none;
  color: var(--navy);
  text-align: left;
}

.attention-card > span:last-child { display: grid; gap: 0.16rem; }
.attention-card strong { font-size: 0.86rem; }
.attention-card > span:last-child > span { color: #64748b; font-size: 0.74rem; line-height: 1.35; }
.attention-marker {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.8rem;
  font-weight: 850;
}
.attention-card-action .attention-marker { background: #fce7f3; color: #9d174d; }
.attention-card-warning .attention-marker { background: #fef3c7; color: #92400e; }
.attention-card-danger .attention-marker { background: #fee2e2; color: #991b1b; }
.attention-card-info .attention-marker { background: #e0f2fe; color: #075985; }
.attention-empty { grid-column: 1 / -1; margin: 0; padding: 0.75rem; color: #64748b; font-size: 0.86rem; }

.card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 0.3rem;
  background: linear-gradient(90deg, var(--orange), var(--magenta));
  content: "";
}

.brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}

.brand-logo {
  width: min(16rem, 58%);
  height: auto;
  object-fit: contain;
}

.microsoft-badge {
  padding: 0.48rem 0.7rem;
  border: 1px solid #cad3e2;
  border-radius: 999px;
  color: var(--navy-soft);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.title-block {
  margin-top: 2rem;
}

.eyebrow,
.label {
  margin: 0;
  color: var(--magenta);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

h1 {
  margin: 0.55rem 0 0;
  color: var(--navy);
  font-size: clamp(2rem, 6vw, 3.2rem);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.intro {
  margin: 0.7rem 0 0;
  color: var(--muted);
  font-size: 0.98rem;
  line-height: 1.55;
}

.identity {
  margin: 1.15rem 0 0;
  color: var(--muted);
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.auth-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  margin-top: 1.15rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--navy);
  border-radius: 0.75rem;
  color: var(--navy);
  font-weight: 800;
  text-decoration: none;
}

.status-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.5rem;
  margin: 2rem 0 1.5rem;
  padding: 1.35rem 1.5rem;
  background: #f7f8fc;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
}

.status-panel > div + div {
  padding-left: 1.5rem;
  border-left: 1px solid var(--line);
}

.status-panel .label {
  color: #7b8498;
}

.status,
.last-event span:last-child {
  display: block;
  margin-top: 0.45rem;
  font-size: 1.05rem;
}

.status[data-state="checked_in"] {
  color: #087252;
}

.status[data-state="checked_out"] {
  color: #b91c1c;
}

.status[data-state="lunch_break"] {
  color: #b45309;
}

.status[data-state="not_enabled"] {
  color: #806112;
}

.today-panel {
  margin: 0 0 1.5rem;
  padding: 1.2rem 1.35rem;
  border: 1px solid var(--line);
  border-radius: 1.1rem;
}

.today-heading-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.today-heading-row h2 {
  margin: 0;
  color: var(--navy);
  font-size: 1.1rem;
}

.today-heading-row span,
.configuration-note {
  color: var(--muted);
  font-size: 0.78rem;
}

.today-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1rem 0 0;
}

.today-grid div {
  min-width: 0;
}

.today-grid dt {
  color: #7b8498;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.today-grid dd {
  margin: 0.35rem 0 0;
  color: var(--navy);
  font-weight: 700;
}

.configuration-note {
  margin: 1rem 0 0;
  line-height: 1.45;
}

button {
  width: 100%;
  min-height: 4.25rem;
  padding: 1rem 1.5rem;
  border: 0;
  border-radius: 1rem;
  background: linear-gradient(100deg, var(--orange), #ef6525 44%, var(--magenta));
  box-shadow: 0 0.8rem 2rem rgba(199, 31, 100, 0.2);
  color: white;
  cursor: pointer;
  font: inherit;
  font-size: 1.2rem;
  font-weight: 800;
  transition: transform 120ms ease, background 120ms ease, opacity 120ms ease;
}

button[data-action="CHECK_OUT"] {
  background: var(--navy);
  box-shadow: 0 0.75rem 1.75rem rgba(7, 26, 61, 0.2);
}

.attendance-actions {
  display: grid;
  gap: 0.75rem;
}

.lunch-button {
  min-height: 3.5rem;
  background: linear-gradient(100deg, #d97706, #f59e0b);
  box-shadow: 0 0.75rem 1.75rem rgba(217, 119, 6, 0.2);
}

button:hover:not(:disabled) {
  transform: translateY(-1px);
}

button:focus-visible {
  outline: 4px solid rgba(213, 0, 120, 0.22);
  outline-offset: 3px;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.message {
  min-height: 1.5rem;
  margin: 1rem 0 0;
  color: var(--muted);
  text-align: center;
}

.message.success {
  color: #0b714d;
  font-weight: 700;
}

.message.error {
  color: #a02f2f;
  font-weight: 700;
}

footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-top: 2.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: #737e94;
  font-size: 0.78rem;
}

.support-note {
  margin: 1.15rem 0 0;
  color: #738099;
  font-size: 0.78rem;
  text-align: center;
}

@media (max-width: 35rem) {
  .pilot-banner {
    align-items: flex-start;
    line-height: 1.45;
  }

  .brand-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }

  .brand-logo {
    width: min(18rem, 82%);
  }

  .status-panel {
    grid-template-columns: 1fr;
  }

  .today-grid {
    grid-template-columns: 1fr;
  }

  .status-panel > div + div {
    padding-top: 1rem;
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .attention-grid { grid-template-columns: 1fr; }
}

/* --- self-service workspace ------------------------------------------- */
.selfservice { margin-top: 1.25rem; }
.selfservice-header { margin-bottom: 0.25rem; }
.selfservice-header h2 { margin: 0.15rem 0 0; font-size: 1.35rem; }

.ss-block {
  border-top: 1px solid rgba(148, 163, 184, 0.28);
  padding: 1.05rem 0 0.35rem;
}
.ss-block:first-of-type { border-top: none; }

.ss-block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}
.ss-block-head h3 { margin: 0; font-size: 1.02rem; letter-spacing: 0.01em; }

.team-status-block {
  margin-top: 0.7rem;
  padding: 1.1rem;
  border: 1px solid rgba(148, 163, 184, 0.32) !important;
  border-radius: 1rem;
  background: linear-gradient(145deg, rgba(239, 246, 255, 0.8), rgba(255, 255, 255, 0.92));
}
.team-status-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.8rem; }
.team-status-heading h3 { margin: 0; font-size: 1.08rem; }
.team-status-date, .team-status-note, .team-status-updated { color: #64748b; }
.team-status-date { margin: 0.2rem 0 0; font-size: 0.78rem; }
.team-status-note { margin: 0.65rem 0 0.8rem; font-size: 0.8rem; line-height: 1.4; }
.team-status-updated { margin: 0.65rem 0 0; font-size: 0.72rem; text-align: right; }
.day-type-pill {
  max-width: 55%;
  padding: 0.3rem 0.6rem;
  border: 1px solid rgba(22, 101, 52, 0.28);
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.1);
  color: #166534;
  font-size: 0.72rem;
  font-weight: 750;
  line-height: 1.25;
  text-align: center;
}
.day-type-pill:not([data-day-type="WORKING_DAY"]) {
  border-color: rgba(180, 83, 9, 0.28);
  background: rgba(245, 158, 11, 0.12);
  color: #92400e;
}
.team-status-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; align-items: start; }
.team-group { min-width: 0; display: grid; gap: 0.45rem; }
.team-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0 0.2rem; }
.team-group-heading strong { color: #0f172a; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.team-group-heading span { color: #64748b; font-size: 0.68rem; }
.team-group-members { display: grid; gap: 0.45rem; }
.team-member {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.7rem;
  padding: 0.72rem 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.78);
  color: #0f172a;
}
.team-member[data-status-tone="working"] { border-color: #86d6a2; background: linear-gradient(145deg, #dcfce7, #f0fdf4); }
.team-member[data-status-tone="break"] { border-color: #f4c66b; background: linear-gradient(145deg, #fef3c7, #fffbeb); }
.team-member[data-status-tone="leave"] { border-color: #c9a6f7; background: linear-gradient(145deg, #f3e8ff, #faf5ff); }
.team-member[data-status-tone="not-working"],
.team-member[data-status-tone="off"] { border-color: #cbd5e1; background: linear-gradient(145deg, #f8fafc, #f1f5f9); }
.team-member-body { min-width: 0; display: grid; gap: 0.35rem; }
.team-member-top { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.team-member-top > strong { min-width: 0; overflow: visible; overflow-wrap: anywhere; white-space: normal; font-size: 0.84rem; line-height: 1.22; }
.team-location-badge { flex: 0 0 auto; max-width: 48%; border: 1px solid rgba(37, 99, 235, 0.34); border-radius: 999px; padding: 0.12rem 0.38rem; background: rgba(219, 234, 254, 0.9); color: #1e40af; font-size: 0.61rem; font-weight: 750; line-height: 1.2; white-space: nowrap; }
.team-indicator { width: 0.68rem; height: 0.68rem; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 0.22rem rgba(148, 163, 184, 0.14); }
.team-indicator-working { background: #16a34a; box-shadow: 0 0 0 0.22rem rgba(34, 197, 94, 0.16), 0 0 0.85rem rgba(34, 197, 94, 0.45); }
.team-indicator-break { background: #f59e0b; box-shadow: 0 0 0 0.22rem rgba(245, 158, 11, 0.18), 0 0 0.8rem rgba(245, 158, 11, 0.35); }
.team-indicator-leave { background: #a855f7; box-shadow: 0 0 0 0.22rem rgba(168, 85, 247, 0.14); }
.team-indicator-not-working { background: #dc2626; box-shadow: 0 0 0 0.22rem rgba(220, 38, 38, 0.14); }
.team-member-identity, .team-member-state { display: grid; min-width: 0; gap: 0.14rem; }
.team-member-identity strong, .team-member-state strong { color: #0f172a; overflow-wrap: anywhere; font-size: 0.86rem; }
.team-member-identity span, .team-member-state span { color: #334155; font-size: 0.72rem; line-height: 1.3; }
.team-member-state { text-align: left; }
.team-member[data-status-tone="working"] .team-member-state strong { color: #15803d; }
.team-member[data-status-tone="break"] .team-member-state strong { color: #a16207; }
.team-member[data-status-tone="leave"] .team-member-state strong { color: #7e22ce; }
.team-member[data-status-tone="not-working"] .team-member-state strong,
.team-member[data-status-tone="off"] .team-member-state strong { color: #475569; }
.team-group-control { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin: 0 0 0.85rem; padding: 0.62rem 0.72rem; border: 1px solid rgba(148, 163, 184, 0.3); border-radius: 0.8rem; background: rgba(255,255,255,0.78); }
.team-group-control[hidden] { display: none !important; }
.team-group-copy { display: grid; min-width: 0; gap: 0.12rem; }
.team-group-copy strong { color: #0f172a; font-size: 0.72rem; }
.team-group-copy span { color: #64748b; font-size: 0.66rem; line-height: 1.3; }
.team-group-actions { display: flex; align-items: center; gap: 0.3rem; }
.team-group-actions button { min-height: 2.1rem; padding: 0.28rem 0.62rem; border: 1px solid #cbd5e1; border-radius: 0.62rem; background: transparent; color: #334155; font-size: 0.68rem; font-weight: 750; }
.team-group-actions button[aria-pressed="true"] { border-color: #172b55; background: #172b55; color: #fff; }
.team-group-actions button:disabled { cursor: wait; opacity: 0.72; }
.team-group-actions span { min-width: 2.7rem; color: #64748b; font-size: 0.64rem; text-align: right; }

.ss-pill {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  white-space: nowrap;
}
.ss-pill-pending {
  color: #92400e;
  background: rgba(251, 191, 36, 0.16);
  border: 1px solid rgba(217, 119, 6, 0.32);
}

.ss-empty {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #475569;
}

.ss-links { margin: 0.2rem 0 0; padding-left: 1.1rem; }
.ss-links li { margin: 0.3rem 0; font-size: 0.92rem; }
.ss-links a { color: #1d4ed8; text-decoration: none; }
.ss-links a:hover { text-decoration: underline; }
.ss-links a.ss-link-unset {
  color: #94a3b8;
  cursor: not-allowed;
  text-decoration: line-through;
}

.ss-future { opacity: 0.75; }
.ss-future-list { margin: 0.2rem 0 0; padding-left: 1.1rem; }
.ss-future-list li { margin: 0.28rem 0; font-size: 0.9rem; color: #64748b; }

.team-calendar-block {
  margin-top: 0.7rem;
  padding: 1.1rem;
  border: 1px solid rgba(148, 163, 184, 0.32) !important;
  border-radius: 1rem;
  background: linear-gradient(145deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.92));
}
.team-calendar-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.team-calendar-heading h3 { margin: 0; font-size: 1.08rem; }
.team-calendar-note, .team-calendar-message { color: #64748b; font-size: 0.78rem; line-height: 1.4; }
.team-calendar-note { margin: 0.25rem 0 0; }
.team-calendar-message { margin: 0.7rem 0 0; }
.team-calendar-controls { display: grid; grid-template-columns: 2.4rem minmax(8rem, auto) 2.4rem; align-items: center; gap: 0.35rem; }
.team-calendar-controls strong { color: var(--navy); font-size: 0.86rem; text-align: center; white-space: nowrap; }
.calendar-nav-button {
  width: 2.4rem;
  min-height: 2.4rem;
  padding: 0;
  border: 1px solid rgba(100, 116, 139, 0.35);
  border-radius: 0.65rem;
  background: #fff;
  box-shadow: none;
  color: var(--navy);
  font-size: 1.35rem;
}
.team-calendar-legend { display: flex; flex-wrap: wrap; gap: 0.55rem 1rem; margin: 0.85rem 0; color: #475569; font-size: 0.73rem; }
.team-calendar-legend span { display: inline-flex; align-items: center; gap: 0.35rem; }
.calendar-key { width: 0.65rem; height: 0.65rem; border-radius: 50%; background: #94a3b8; }
.calendar-key-holiday { background: #f59e0b; }
.calendar-key-china { background: #e11d48; }
.calendar-key-wfh { background: #2563eb; }
.calendar-key-leave { background: #9333ea; }
.calendar-key-field { background: #0f766e; }
.team-calendar-scroll { overflow-x: auto; padding-bottom: 0.25rem; }
.team-calendar-weekdays, .team-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(6.5rem, 1fr)); min-width: 48rem; }
.team-calendar-weekdays { gap: 0.35rem; margin-bottom: 0.35rem; color: #64748b; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; text-align: center; text-transform: uppercase; }
.team-calendar-grid { gap: 0.35rem; }
.calendar-day { min-height: 7.4rem; padding: 0.55rem; border: 1px solid rgba(148, 163, 184, 0.32); border-radius: 0.7rem; background: rgba(255, 255, 255, 0.88); }
.calendar-day[data-day-type="NON_WORKING_DAY"],
.calendar-day[data-day-type="REGULAR_HOLIDAY"],
.calendar-day[data-day-type="SPECIAL_NON_WORKING_DAY"] { background: rgba(254, 243, 199, 0.58); }
.calendar-day[data-day-type="OFFICE_CLOSED"] { border-color: rgba(185, 28, 28, 0.58); background: rgba(254, 202, 202, 0.72); }
.calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-day-heading span,
.calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-holiday { color: #991b1b; font-weight: 900; }
.calendar-day[data-day-type="SPECIAL_WORKING_DAY"] { border-color: rgba(22, 163, 74, 0.45); background: rgba(220, 252, 231, 0.76); }
.calendar-day[data-day-type="SPECIAL_WORKING_DAY"] .calendar-day-heading span { color: #166534; font-weight: 850; }
.calendar-day-empty { min-height: 0; border-color: transparent; background: transparent; }
.calendar-day-today { outline: 3px solid rgba(213, 0, 120, 0.28); outline-offset: -2px; }
.calendar-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.3rem; }
.calendar-day-heading strong { color: var(--navy); font-size: 0.9rem; }
.calendar-day-heading span { color: #64748b; font-size: 0.62rem; text-align: right; }
.calendar-holiday { margin: 0.4rem 0 0; color: #92400e; font-size: 0.67rem; font-weight: 750; line-height: 1.3; }
.calendar-china-holiday {
  margin: 0.4rem 0 0;
  padding: 0.28rem 0.35rem;
  border: 1px solid rgba(225, 29, 72, 0.28);
  border-radius: 0.42rem;
  background: rgba(255, 228, 230, 0.88);
  color: #9f1239;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1.25;
}
.calendar-events { display: grid; gap: 0.28rem; margin-top: 0.45rem; }
.calendar-event { display: block; padding: 0.28rem 0.35rem; border-radius: 0.42rem; font-size: 0.64rem; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.calendar-event-wfh { background: rgba(37, 99, 235, 0.12); color: #1d4ed8; }
.calendar-event-leave { background: rgba(147, 51, 234, 0.12); color: #7e22ce; }
.calendar-event-field { background: rgba(15, 118, 110, 0.13); color: #0f766e; }

.leave-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
}
.request-jump-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0.9rem 0 1.2rem;
}
.request-jump-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  border: 1px solid rgba(29, 78, 216, 0.22);
  border-radius: 0.7rem;
  background: #eff6ff;
  color: #123b75;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
.request-jump-links button {
  min-height: 2.9rem;
  border: 1px solid rgba(29, 78, 216, 0.22);
  border-radius: 0.7rem;
  background: #eff6ff;
  color: #123b75;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
}
.request-jump-links button:hover, .request-jump-links button:focus-visible,
.request-jump-links button.is-active { border-color: #1d4ed8; background: #dbeafe; }
.request-jump-links .request-close-button { background: #f8fafc; color: #475569; }
.request-workflow {
  scroll-margin-top: 1rem;
  margin: 0 0 1.15rem;
  padding: 1.1rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.85rem;
  background: #fff;
  color: #0f274c;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.045);
}
.request-workflow[hidden] { display: none !important; }
.request-history { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(148, 163, 184, 0.35); }
.request-history h4 { margin: 0 0 0.8rem; color: var(--navy); }
.request-history h5 { margin: 1rem 0 0.35rem; color: var(--navy); font-size: 0.82rem; }
.my-issues-items { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.my-issues-items li { display: grid; gap: 0.18rem; padding: 0.65rem 0.75rem; border: 1px solid rgba(148, 163, 184, 0.32); border-radius: 0.65rem; }
.my-issues-items strong { color: var(--navy); }
.my-issues-items span { color: #475569; font-size: 0.78rem; }
.request-workflow h4 { margin: 0 0 0.35rem; color: #071b45; font-size: 1.05rem; }
.request-workflow-note { margin: 0; color: #475569; font-size: 0.82rem; line-height: 1.45; }
.request-back-link { display: inline-block; margin-top: 0.85rem; color: #1d4ed8; font-size: 0.76rem; font-weight: 750; }
.request-attachments, .attachment-help { grid-column: 1 / -1; }
.attachment-help { margin: -0.25rem 0 0; color: #475569; font-size: 0.76rem; line-height: 1.4; }
.attachment-list { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.45rem 0 0; }
.attachment-link { display: inline-flex; align-items: center; padding: 0.28rem 0.48rem; border-radius: 999px; background: #e0f2fe; color: #075985; font-size: 0.7rem; font-weight: 750; text-decoration: none; }
.leave-form[hidden], .ss-block[hidden], .ss-empty[hidden] { display: none !important; }
.leave-form label { display: grid; gap: 0.28rem; font-size: 0.84rem; font-weight: 600; }
.leave-form input, .leave-form select, .leave-form textarea, .leave-decision-comment {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid rgba(100, 116, 139, 0.55);
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
  background: Canvas;
  color: CanvasText;
  font: inherit;
}
.leave-reason, .leave-date-help, .leave-privacy, .field-location, .field-work-note, .leave-form button { grid-column: 1 / -1; }
.leave-form textarea { min-height: 4.5rem; resize: vertical; }
.leave-date-help { margin: -0.2rem 0 0; color: #475569; font-size: 0.82rem; line-height: 1.4; }
.leave-privacy { margin: 0; color: #64748b; font-size: 0.78rem; line-height: 1.45; }
.field-work-note { margin: -0.25rem 0 0; color: #0f766e; font-size: 0.78rem; line-height: 1.45; }
.field-location[hidden], .field-work-note[hidden] { display: none !important; }
.correction-panel { margin-top: 0; }
.correction-panel h4 { margin: 0 0 0.35rem; color: var(--navy); font-size: 1rem; }
.correction-policy, .correction-proof-note { margin: 0 0 0.85rem; color: #64748b; font-size: 0.78rem; line-height: 1.45; }
.correction-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.correction-form label { display: grid; gap: 0.28rem; color: var(--navy); font-size: 0.78rem; font-weight: 750; }
.correction-form input, .correction-form select, .correction-form textarea { width: 100%; border: 1px solid rgba(148, 163, 184, 0.72); border-radius: 0.55rem; background: #fff; color: var(--navy); padding: 0.58rem 0.65rem; font: inherit; }
.correction-form textarea { min-height: 6rem; resize: vertical; }
.correction-reason, .correction-proof, .correction-proof-note, .correction-form button { grid-column: 1 / -1; }
.correction-form button { border: 0; border-radius: 0.6rem; padding: 0.72rem 1rem; background: linear-gradient(90deg, #f59e0b, #d50078); color: #fff; font-weight: 850; cursor: pointer; }
.correction-list { display: grid; gap: 0.55rem; margin-top: 0.8rem; }
.correction-item { padding: 0.72rem; border: 1px solid rgba(148, 163, 184, 0.32); border-radius: 0.65rem; background: rgba(248, 250, 252, 0.86); }
.correction-item strong { color: var(--navy); }
.correction-item p { margin: 0.25rem 0 0; color: #64748b; font-size: 0.76rem; }
.leave-items { list-style: none; padding: 0; margin: 0.75rem 0 0; display: grid; gap: 0.65rem; }
.leave-item { border: 1px solid rgba(148, 163, 184, 0.35); border-radius: 9px; padding: 0.7rem; }
.leave-item-head { display: flex; justify-content: space-between; gap: 0.6rem; }
.leave-item p { margin: 0.35rem 0 0; font-size: 0.86rem; line-height: 1.45; }
.leave-status { font-size: 0.74rem; font-weight: 700; text-transform: uppercase; }
.leave-actions { display: grid; grid-template-columns: 1fr repeat(3, auto); gap: 0.45rem; margin-top: 0.65rem; }
.leave-actions button { padding: 0.48rem 0.7rem; }
.leave-actions button[data-decision="APPROVED"] { background: #166534; }
.leave-actions button[data-decision="REJECTED"] { background: #991b1b; }
.leave-actions button[data-decision="RETURNED"] { background: #92400e; }

@media (max-width: 640px) {
  .request-jump-links { grid-template-columns: 1fr; }
  .leave-form { grid-template-columns: 1fr; }
  .leave-reason, .leave-date-help, .leave-privacy, .field-location, .field-work-note, .leave-form button { grid-column: 1; }
  .correction-form { grid-template-columns: 1fr; }
  .leave-actions { grid-template-columns: 1fr; }
  .team-status-heading { align-items: stretch; flex-direction: column; }
  .day-type-pill { max-width: 100%; align-self: flex-start; }
  .team-status-list { grid-template-columns: 1fr; }
  .team-group-control { align-items: flex-start; flex-direction: column; }
  .team-group-actions { width: 100%; }
  .team-group-actions button { flex: 1 1 0; min-height: 2.75rem; }
  .team-group-actions span { flex: 0 0 auto; }
  .team-member { grid-template-columns: auto minmax(0, 1fr); }
  .team-member-state { grid-column: auto; text-align: left; }
  .team-calendar-heading { flex-direction: column; }
  .team-calendar-controls { width: 100%; grid-template-columns: 2.4rem 1fr 2.4rem; }
}

@media (prefers-color-scheme: dark) {
  .ss-empty { color: #cbd5e1; }
  .ss-future-list li { color: #94a3b8; }
  .ss-links a { color: #93c5fd; }
  .ss-block { border-top-color: rgba(148, 163, 184, 0.22); }
  .team-status-block { background: linear-gradient(145deg, rgba(15, 23, 42, 0.84), rgba(30, 41, 59, 0.72)); }
  .team-member { background: rgba(15, 23, 42, 0.62); }
  .team-group-heading strong, .team-member-top > strong { color: #f8fafc; }
  .team-group-heading span { color: #cbd5e1; }
  .team-location-badge { border-color: rgba(147, 197, 253, 0.36); background: rgba(59, 130, 246, 0.18); color: #dbeafe; }
  .team-group-control { background: rgba(15, 23, 42, 0.54); }
  .team-group-control label, .team-group-control span { color: #e2e8f0; }
  .team-status-date, .team-status-note, .team-status-updated,
  .team-member-identity span, .team-member-state span { color: #cbd5e1; }
  .team-status-heading h3,
  .team-member-identity strong,
  .team-member-state strong { color: #f8fafc; }
  .day-type-pill { color: #86efac; }
  .day-type-pill:not([data-day-type="WORKING_DAY"]) { color: #fcd34d; }
  .workspace-tabs { background: rgba(15, 23, 42, 0.72); }
  .workspace-tab, .workspace-report-link { color: #cbd5e1; }
  .workspace-tab.is-active { background: #f8fafc; color: #0f172a; }
  .attention-dashboard { background: rgba(15, 23, 42, 0.55); }
  .attention-heading h2 { color: #f8fafc; }
  .attention-card { border-color: rgba(148, 163, 184, 0.28); background: rgba(15, 23, 42, 0.78); color: #f8fafc; }
  .attention-card > span:last-child > span, .attention-empty { color: #cbd5e1; }
  .team-calendar-block { background: linear-gradient(145deg, rgba(15, 23, 42, 0.84), rgba(30, 41, 59, 0.72)); }
  .team-calendar-heading h3, .team-calendar-controls strong, .calendar-day-heading strong { color: #f8fafc; }
  .team-calendar-note, .team-calendar-message, .team-calendar-legend, .team-calendar-weekdays, .calendar-day-heading span { color: #cbd5e1; }
  .calendar-nav-button { border-color: rgba(148, 163, 184, 0.4); background: rgba(15, 23, 42, 0.8); color: #f8fafc; }
  .calendar-day { border-color: rgba(148, 163, 184, 0.28); background: rgba(15, 23, 42, 0.68); }
  .calendar-day[data-day-type="NON_WORKING_DAY"],
  .calendar-day[data-day-type="REGULAR_HOLIDAY"],
  .calendar-day[data-day-type="SPECIAL_NON_WORKING_DAY"] { background: rgba(120, 53, 15, 0.34); }
  .calendar-day[data-day-type="OFFICE_CLOSED"] { border-color: rgba(248, 113, 113, 0.62); background: rgba(127, 29, 29, 0.52); }
  .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-day-heading span,
  .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-holiday { color: #fecaca; }
  .calendar-day[data-day-type="SPECIAL_WORKING_DAY"] { border-color: rgba(74, 222, 128, 0.5); background: rgba(20, 83, 45, 0.42); }
  .calendar-day[data-day-type="SPECIAL_WORKING_DAY"] .calendar-day-heading span { color: #bbf7d0; }
  .calendar-holiday { color: #fcd34d; }
  .calendar-china-holiday { border-color: rgba(251, 113, 133, 0.45); background: rgba(159, 18, 57, 0.35); color: #fecdd3; }
  .calendar-event-wfh { background: rgba(37, 99, 235, 0.28); color: #bfdbfe; }
  .calendar-event-leave { background: rgba(147, 51, 234, 0.28); color: #e9d5ff; }
  .calendar-event-field { background: rgba(13, 148, 136, 0.28); color: #99f6e4; }
  .field-work-note { color: #99f6e4; }
  .page-panel[data-page-panel="my"] .request-workflow { border-color: rgba(100, 116, 139, 0.35); background: #fff; color: #0f274c; }
  .page-panel[data-page-panel="my"] .request-workflow h4,
  .page-panel[data-page-panel="my"] .request-workflow label,
  .page-panel[data-page-panel="my"] .correction-item strong { color: #071b45; }
  .page-panel[data-page-panel="my"] .request-workflow input,
  .page-panel[data-page-panel="my"] .request-workflow select,
  .page-panel[data-page-panel="my"] .request-workflow textarea { border-color: rgba(100, 116, 139, 0.58); background: #f8fafc; color: #071b45; }
  .page-panel[data-page-panel="my"] .correction-item { border-color: rgba(148, 163, 184, 0.34); background: #f8fafc; }
  .page-panel[data-page-panel="my"] .correction-policy,
  .page-panel[data-page-panel="my"] .correction-proof-note,
  .page-panel[data-page-panel="my"] .correction-item p,
  .page-panel[data-page-panel="my"] .request-workflow-note,
  .page-panel[data-page-panel="my"] .attachment-help,
  .page-panel[data-page-panel="my"] .leave-privacy,
  .page-panel[data-page-panel="my"] .leave-date-help { color: #475569; }
  .my-issues-items li { border-color: rgba(148, 163, 184, 0.28); background: rgba(15, 23, 42, 0.5); }
  .my-issues-items strong { color: #f8fafc; }
  .my-issues-items span { color: #cbd5e1; }
}

/* --- sign-in landing (unauthenticated visitors see only this) ---------- */
.login-card { text-align: left; }
.login-block { margin: 1.6rem 0 0.6rem; }
.login-block h1 { margin: 0 0 0.4rem; font-size: 1.5rem; }
.login-intro {
  margin: 0 0 1.25rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #475569;
}
.login-button {
  display: inline-block;
  padding: 0.72rem 1.35rem;
  border-radius: 10px;
  background: #1d4ed8;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  border: 1px solid #1e40af;
}
.login-button:hover { background: #1e40af; }
.login-button:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
.login-footer {
  margin-top: 1.6rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(148, 163, 184, 0.28);
  font-size: 0.8rem;
  color: #64748b;
}
@media (prefers-color-scheme: dark) {
  .login-intro { color: #cbd5e1; }
  .login-footer { color: #94a3b8; border-top-color: rgba(148, 163, 184, 0.22); }
}

/* --------------------------------------------------------------------------
   Design A v1 — command center
   The dark surfaces always use light type; content and forms stay light in
   either operating-system theme so labels never disappear into a dark field.
   -------------------------------------------------------------------------- */
.portal-shell {
  width: min(100%, 94rem);
  margin: 0 auto;
  place-items: stretch;
  align-content: start;
  padding: 1.25rem clamp(0.75rem, 2.5vw, 2rem) 2rem;
}

.app-header {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 1.5rem 1.5rem 0.9rem 0.9rem;
  background: #101a3a;
  box-shadow: 0 1.1rem 3rem rgba(7, 26, 61, 0.18);
  color: #fff;
}

.app-header::before {
  position: absolute;
  inset: 0 0 auto;
  height: 0.28rem;
  background: linear-gradient(90deg, #ff9914, #e96853 55%, #d50078);
  content: "";
}

.app-header-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.4rem clamp(1.25rem, 4vw, 3rem) 1rem;
}

.brand-lockup {
  display: inline-flex;
  flex: 0 1 21rem;
  text-decoration: none;
}

.brand-logo-composite {
  position: relative;
  display: block;
  width: min(100%, 19rem);
  aspect-ratio: 500 / 143;
}

.brand-logo-composite .brand-logo {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
}

.brand-logo-white { filter: brightness(0) invert(1); }
.brand-logo-color-clip {
  position: absolute;
  inset: 0 auto 0 0;
  width: 41%;
  overflow: hidden;
}
.brand-logo-color-clip .brand-logo-color { width: 244%; max-width: none; }

.header-account {
  display: grid;
  justify-items: end;
  gap: 0.35rem;
  min-width: 0;
  text-align: right;
}

.app-header .microsoft-badge {
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.08);
  color: #f8fafc;
}
.app-header .identity { margin: 0; color: #cbd5e1; font-size: 0.78rem; }
.app-header .auth-link {
  min-height: auto;
  margin: 0;
  padding: 0.3rem 0;
  border: 0;
  color: #fff;
  font-size: 0.78rem;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
}

.app-header .workspace-tabs {
  margin: 0;
  padding: 0.45rem clamp(1rem, 4vw, 3rem) 0.8rem;
  border: 0;
  border-top: 1px solid rgba(148,163,184,.22);
  border-radius: 0;
  background: transparent;
}
.app-header .workspace-tab,
.app-header .workspace-report-link {
  min-height: 2.65rem;
  padding: 0.55rem 1rem;
  color: #cbd5e1;
  font-size: 0.9rem;
}
.app-header .workspace-tab.is-active {
  background: rgba(255,255,255,.14);
  box-shadow: none;
  color: #fff;
}

.portal-shell .card {
  width: 100%;
  max-width: none;
  margin-top: 1rem;
  border-radius: 1.25rem;
  box-shadow: 0 1rem 3rem rgba(7, 26, 61, 0.1);
}
.attendance-home-card { padding: clamp(1.25rem, 3vw, 2.4rem); }
.home-title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}
.home-title-row .title-block { margin: 0; }
.home-title-row h1 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.home-date { color: #64748b; font-size: 0.82rem; font-weight: 700; white-space: nowrap; }

.workday-command {
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 1.3rem;
  background: linear-gradient(145deg, #121a2c, #192239);
  color: #f8fafc;
}
.workday-command .label { color: #aebddd; }
.workday-command .status { margin-top: 0.3rem; color: #fff; font-size: clamp(1.35rem, 3vw, 2rem); }
.workday-command .status[data-state="checked_in"] { color: #86efac; }
.workday-command .status[data-state="lunch_break"] { color: #fde68a; }
.workday-command .status[data-state="checked_out"] { color: #cbd5e1; }
.workday-command-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.workday-current { display: grid; gap: 0.22rem; min-width: 0; }
.workday-last { color: #cbd5e1; font-size: 0.8rem; overflow-wrap: anywhere; }
.workday-last .label { display: inline; margin-right: 0.35rem; font-size: 0.65rem; }
.workday-command .attendance-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
}
.workday-command .attendance-actions button {
  width: auto;
  min-width: 9rem;
  min-height: 2.85rem;
  padding: 0.65rem 1rem;
  border-radius: 0.75rem;
  box-shadow: none;
  font-size: 0.86rem;
}
.workday-facts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 1.35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148,163,184,.22);
}
.workday-facts > span { min-width: 0; }
.workday-facts b {
  display: block;
  color: #94a3b8;
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.workday-facts strong { display: block; margin-top: 0.25rem; color: #f8fafc; font-size: 0.78rem; overflow-wrap: anywhere; }
.workday-command .configuration-note { margin: 0.75rem 0 0; color: #94a3b8; }

.workday-flow {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(1rem, .25fr) minmax(8rem, 1fr) minmax(1rem, .25fr) minmax(8rem, 1fr) minmax(1rem, .25fr) minmax(8rem, 1fr);
  align-items: start;
  margin-top: 1.5rem;
}
.flow-item { display: grid; justify-items: center; gap: 0.25rem; min-width: 0; text-align: center; }
.flow-marker {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 2px solid #475569;
  border-radius: 50%;
  background: #273249;
  color: #94a3b8;
  font-size: 0.72rem;
}
.flow-item strong { color: #cbd5e1; font-size: 0.8rem; }
.flow-item small { color: #94a3b8; font-size: 0.68rem; }
.flow-line { height: 2px; margin-top: 1rem; background: #374151; }
.flow-item[data-flow-state="complete"] .flow-marker { border-color: #4ade80; background: #166534; color: #fff; }
.flow-item[data-flow-state="complete"] strong { color: #bbf7d0; }
.flow-item[data-flow-state="current"] .flow-marker { border-color: #f59e0b; background: linear-gradient(135deg,#f59e0b,#d50078); color: #fff; box-shadow: 0 0 0 .35rem rgba(213,0,120,.12); }
.flow-item[data-flow-state="current"] strong { color: #fff; }

.attention-dashboard { margin-top: 1rem; }
.attention-grid { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.attention-card { min-height: 4.3rem; padding: 0.7rem 0.85rem; border-radius: 0.85rem; box-shadow: none; font-size: 0.82rem; }
.attention-marker { width: 2rem; height: 2rem; }

.selfservice { padding: clamp(1.25rem, 3vw, 2.4rem); }
.selfservice-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}
.selfservice-header h2 { font-size: 1.65rem; }
.ss-block { padding: 1.35rem 0; }
.request-chooser button,
.request-close-button,
.leave-form button,
.time-adjustment-form button,
.correction-form button {
  min-height: 3rem;
  padding: 0.7rem 1rem;
  border-radius: 0.75rem;
  box-shadow: none;
  font-size: 0.88rem;
}
.report-summary { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.report-total-card { border-top: 0.22rem solid #d50078; box-shadow: 0 .4rem 1rem rgba(7,26,61,.05); }
.report-total-card:nth-child(3n+1) { border-top-color: #ff9914; }
.report-total-card:nth-child(3n+2) { border-top-color: #4f6edb; }

@media (max-width: 850px) {
  .app-header-topline, .workday-command-top, .home-title-row { align-items: flex-start; flex-direction: column; }
  .header-account { justify-items: start; text-align: left; }
  .workday-command .attendance-actions { justify-content: flex-start; }
  .workday-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workday-flow { grid-template-columns: 1fr; gap: 0.25rem; }
  .flow-item { grid-template-columns: 2rem minmax(0,1fr); grid-template-rows: auto auto; justify-items: start; column-gap: 0.65rem; text-align: left; }
  .flow-item .flow-marker { grid-row: 1 / 3; }
  .flow-line { width: 2px; height: 1.15rem; margin: 0 0 0 0.96rem; }
}

@media (max-width: 520px) {
  .pilot-banner { display: none; }
  .portal-shell { padding: 0; }
  .app-header { border-radius: 0; }
  .app-header-topline { padding: 1.1rem; }
  .app-header .workspace-tabs { padding-inline: 0.65rem; }
  .portal-shell .card { margin-top: 0.65rem; border-radius: 0; }
  .brand-lockup { flex-basis: auto; width: 15rem; max-width: 85%; }
  .workday-command .attendance-actions { width: 100%; }
  .workday-command .attendance-actions button { flex: 1 1 9rem; }
  .workday-facts { grid-template-columns: 1fr; }
}

@media (prefers-color-scheme: dark) {
  .attendance-home-card,
  .selfservice { background: #fff; color: #071a3d; }
  .attendance-home-card h1,
  .selfservice h2,
  .selfservice h3,
  .selfservice h4,
  .selfservice h5 { color: #071a3d; }
  .attention-dashboard { background: #f8fafc; }
  .attention-heading h2 { color: #071a3d; }
  .attention-card { background: #fff; color: #071a3d; }
  .attention-card > span:last-child > span,
  .attention-empty { color: #64748b; }
  .workday-command h2,
  .workday-command strong { color: #f8fafc; }
}

/* --------------------------------------------------------------------------
   Design A v2 — denser two-column dashboard requested after live review.
   -------------------------------------------------------------------------- */
.workday-command {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(19rem, 0.75fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: stretch;
}

.workday-summary-column { min-width: 0; }
.workday-command-top { align-items: flex-start; }
.workday-command .attendance-actions { align-self: flex-start; }
.workday-command .attendance-actions button { min-width: 10.5rem; }

.workday-facts {
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 1.4rem;
  padding-top: 0.25rem;
}
.workday-facts > span {
  display: grid;
  grid-template-columns: minmax(6.5rem, 0.32fr) minmax(0, 1fr);
  align-items: baseline;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.17);
}
.workday-facts b { font-size: 0.68rem; }
.workday-facts strong { margin: 0; font-size: 0.88rem; }

.workday-flow-column {
  min-width: 0;
  padding: 1.2rem 1.25rem;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.035);
}
.workday-flow-heading { display: grid; gap: 0.3rem; margin-bottom: 1rem; }
.workday-flow-heading strong { color: #f8fafc; font-size: 1rem; }
.workday-flow {
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 0;
}
.workday-flow .flow-item {
  grid-template-columns: 2.1rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  column-gap: 0.75rem;
  min-height: 3.4rem;
  text-align: left;
}
.workday-flow .flow-item .flow-marker { grid-row: 1 / 3; }
.workday-flow .flow-item strong { align-self: end; font-size: 0.82rem; }
.workday-flow .flow-item small { align-self: start; }
.workday-flow .flow-line {
  width: 2px;
  height: 1.25rem;
  margin: -0.45rem 0 0.2rem 1rem;
  background: #475569;
}

.selfservice[data-active-page="my"],
.selfservice[data-active-page="team"],
.selfservice[data-active-page="report"],
.selfservice[data-active-page="nte-report"] {
  gap: 1rem;
  padding: clamp(1rem, 2.2vw, 1.75rem);
  background: #eef2f7;
}
.selfservice[data-active-page="my"] {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.selfservice[data-active-page="my"] .selfservice-header,
.selfservice[data-active-page="team"] .selfservice-header,
.selfservice[data-active-page="report"] .selfservice-header,
.selfservice[data-active-page="nte-report"] .selfservice-header { grid-column: 1 / -1; }
.selfservice[data-active-page="my"] .page-panel[data-page-panel="my"] {
  margin: 0;
  padding: 1.25rem;
  border: 1px solid #dbe3ef;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 0.4rem 1rem rgba(7, 26, 61, 0.045);
}
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-notices-title"] { grid-column: span 4; }
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-attendance-title"] { grid-column: span 8; }
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="my-issues-title"],
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="my-ntes-title"],
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-leave-title"],
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-links-title"] { grid-column: 1 / -1; }
.selfservice[data-active-page="my"] .ss-block-head {
  align-items: center;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #e5eaf2;
}
.selfservice[data-active-page="my"] .ss-pill {
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  background: #e8f7ef;
  color: #157347;
  font-size: 0.66rem;
}
.selfservice[data-active-page="my"] .ss-empty { color: #64748b; }
.selfservice[data-active-page="my"] #attendance-list ul,
.selfservice[data-active-page="my"] #notices-list ul { margin: 0.8rem 0 0; padding-left: 1.25rem; }
.selfservice[data-active-page="my"] .my-issues-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 0.65rem;
}
.selfservice[data-active-page="my"] .my-issues-items li {
  min-height: 5rem;
  border: 0;
  border-left: 0.25rem solid #ef476f;
  border-radius: 0.75rem;
  background: #172039;
  color: #fff;
}
.selfservice[data-active-page="my"] .my-issues-items strong { color: #fff; }
.selfservice[data-active-page="my"] .my-issues-items span { color: #cbd5e1; }
.selfservice[data-active-page="my"] .request-chooser {
  gap: 0.75rem;
  margin-top: 1rem;
}
.selfservice[data-active-page="my"] .request-chooser button:not(.request-close-button) {
  position: relative;
  min-height: 4.25rem;
  padding: 1rem 1rem 1rem 3.4rem;
  border: 1px solid #d7dfec;
  background: #f8fafc;
  color: #0f274c;
  text-align: left;
}
.selfservice[data-active-page="my"] .request-chooser button:not(.request-close-button)::before {
  position: absolute;
  left: 1rem;
  top: 50%;
  display: grid;
  width: 1.8rem;
  height: 1.8rem;
  place-items: center;
  transform: translateY(-50%);
  border-radius: 0.55rem;
  background: #101a3a;
  color: #fff;
  content: "+";
}
.selfservice[data-active-page="my"] .request-chooser button.is-active {
  border-color: #d50078;
  background: #fff1f7;
}
.selfservice[data-active-page="my"] .request-workflow {
  margin-top: 1rem;
  border: 1px solid #dbe3ef;
  border-radius: 0.9rem;
  background: #f8fafc;
}
.selfservice[data-active-page="my"] .request-history {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid #dbe3ef;
}
.selfservice[data-active-page="my"] .leave-item,
.selfservice[data-active-page="my"] .correction-item {
  background: #fff;
}

/* Design A V3: keep request work focused instead of stretching across wide screens. */
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-leave-title"] {
  display: grid;
  width: min(100%, 78rem);
  grid-template-columns: minmax(13rem, 0.3fr) minmax(0, 1fr);
  column-gap: 1.25rem;
  align-items: start;
  justify-self: center;
}
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-leave-title"] > .ss-block-head,
.selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-leave-title"] > .request-history {
  grid-column: 1 / -1;
}
.selfservice[data-active-page="my"] .request-chooser {
  grid-column: 1;
  grid-row: 2;
  grid-template-columns: 1fr;
  align-content: start;
}
.selfservice[data-active-page="my"] .request-chooser button:not(.request-close-button) {
  min-height: 3.35rem;
  padding-block: 0.75rem;
}
.selfservice[data-active-page="my"] .request-chooser .request-close-button {
  grid-column: 1;
  justify-self: start;
  min-height: 2.25rem;
  padding: 0.35rem 0.65rem;
  border-color: transparent;
  background: transparent;
  color: #475569;
  font-size: 0.76rem;
}
.selfservice[data-active-page="my"] .request-chooser .request-close-button::before {
  content: "× ";
}
.selfservice[data-active-page="my"] .request-workflow,
.selfservice[data-active-page="my"] .request-history {
  width: 100%;
}
.selfservice[data-active-page="my"] .request-workflow {
  grid-column: 2;
  grid-row: 2 / span 2;
  margin-top: 1rem;
  padding: 1.15rem;
  box-shadow: 0 0.65rem 1.5rem rgba(7, 26, 61, 0.07);
}
.selfservice[data-active-page="my"] #request-chooser-help {
  grid-column: 1;
  grid-row: 3;
  padding: 0.75rem 0.25rem 0;
}
.selfservice[data-active-page="my"] .request-history { grid-row: 4; }
.selfservice[data-active-page="my"] .leave-form textarea,
.selfservice[data-active-page="my"] .time-adjustment-form textarea,
.selfservice[data-active-page="my"] .correction-form textarea {
  min-height: 4rem;
}
.selfservice[data-active-page="my"] .leave-form button,
.selfservice[data-active-page="my"] .time-adjustment-form button,
.selfservice[data-active-page="my"] .correction-form button {
  width: min(100%, 19rem);
  justify-self: end;
}

.selfservice[data-active-page="team"] {
  display: grid;
  grid-template-columns: minmax(24rem, 0.9fr) minmax(0, 1.45fr);
  align-items: start;
}
.selfservice[data-active-page="team"] .team-status-block,
.selfservice[data-active-page="team"] .team-calendar-block {
  min-width: 0;
  margin: 0;
  padding: 1.2rem;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 0.65rem 1.5rem rgba(7, 26, 61, 0.1);
}
.selfservice[data-active-page="team"] .team-status-block {
  position: sticky;
  top: 1rem;
}
.selfservice[data-active-page="team"] .team-status-list { gap: 0.55rem; }
.selfservice[data-active-page="team"] .team-status-heading h3,
.selfservice[data-active-page="team"] .team-calendar-heading h3,
.selfservice[data-active-page="team"] .team-calendar-controls strong { color: #071a3d; }
.selfservice[data-active-page="team"] .team-member-identity strong,
.selfservice[data-active-page="team"] .team-member-state strong,
.selfservice[data-active-page="team"] .calendar-day-heading strong { color: #f8fafc; }
.selfservice[data-active-page="team"] .team-status-date,
.selfservice[data-active-page="team"] .team-status-note,
.selfservice[data-active-page="team"] .team-status-updated,
.selfservice[data-active-page="team"] .team-calendar-note,
.selfservice[data-active-page="team"] .team-calendar-legend,
.selfservice[data-active-page="team"] .team-calendar-weekdays { color: #475569; }
.selfservice[data-active-page="team"] .team-member-identity span,
.selfservice[data-active-page="team"] .team-member-state span,
.selfservice[data-active-page="team"] .calendar-day-heading span { color: #cbd5e1; }
.selfservice[data-active-page="team"] .team-member {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.8rem;
}
.selfservice[data-active-page="team"] .team-member-state {
  grid-column: auto;
  text-align: left;
}
.selfservice[data-active-page="team"] .team-calendar-scroll { overflow-x: auto; }

/* This final team-page palette deliberately follows the layout rules above so
   light and dark contrast cannot be overridden by page-shell selectors. */
.selfservice[data-active-page="team"] .team-status-heading h3,
.selfservice[data-active-page="team"] .team-group-heading strong { color: #0f172a; }
.selfservice[data-active-page="team"] .team-status-date,
.selfservice[data-active-page="team"] .team-status-note,
.selfservice[data-active-page="team"] .team-status-updated,
.selfservice[data-active-page="team"] .team-group-heading span { color: #475569; }
.selfservice[data-active-page="team"] .team-member-top > strong { color: #0f172a; }
.selfservice[data-active-page="team"] .team-member[data-status-tone="working"] .team-member-state strong { color: #15803d; }
.selfservice[data-active-page="team"] .team-member[data-status-tone="break"] .team-member-state strong { color: #a16207; }
.selfservice[data-active-page="team"] .team-member[data-status-tone="leave"] .team-member-state strong { color: #7e22ce; }
.selfservice[data-active-page="team"] .team-member[data-status-tone="not-working"] .team-member-state strong,
.selfservice[data-active-page="team"] .team-member[data-status-tone="off"] .team-member-state strong { color: #475569; }

@media (prefers-color-scheme: dark) {
  .selfservice[data-active-page="team"] .team-status-block {
    background: linear-gradient(145deg, #20283a, #343e52);
    color: #f8fafc;
  }
  .selfservice[data-active-page="team"] .team-status-heading h3,
  .selfservice[data-active-page="team"] .team-group-heading strong,
  .selfservice[data-active-page="team"] .team-member-top > strong,
  .selfservice[data-active-page="team"] .team-member-state strong { color: #f8fafc; }
  .selfservice[data-active-page="team"] .team-status-date,
  .selfservice[data-active-page="team"] .team-status-note,
  .selfservice[data-active-page="team"] .team-status-updated,
  .selfservice[data-active-page="team"] .team-group-heading span,
  .selfservice[data-active-page="team"] .team-member-state span { color: #dbe4f0; }
  .selfservice[data-active-page="team"] .team-group-control {
    border-color: rgba(203, 213, 225, 0.3);
    background: #141b2b;
  }
  .selfservice[data-active-page="team"] .team-group-copy strong { color: #f8fafc; }
  .selfservice[data-active-page="team"] .team-group-copy span,
  .selfservice[data-active-page="team"] .team-group-actions span { color: #cbd5e1; }
  .selfservice[data-active-page="team"] .team-group-actions button {
    border-color: #64748b;
    color: #f8fafc;
  }
  .selfservice[data-active-page="team"] .team-group-actions button[aria-pressed="true"] {
    border-color: #e2e8f0;
    background: #e2e8f0;
    color: #0f172a;
  }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="working"] {
    border-color: #4ade80;
    background: linear-gradient(145deg, #163d2a, #1b4b32);
  }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="break"] {
    border-color: #fbbf24;
    background: linear-gradient(145deg, #493310, #5b4012);
  }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="leave"] {
    border-color: #c084fc;
    background: linear-gradient(145deg, #3f2458, #4b2869);
  }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="not-working"],
  .selfservice[data-active-page="team"] .team-member[data-status-tone="off"] {
    border-color: #64748b;
    background: linear-gradient(145deg, #273247, #2d394f);
  }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="working"] .team-member-state strong { color: #86efac; }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="break"] .team-member-state strong { color: #fde68a; }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="leave"] .team-member-state strong { color: #e9d5ff; }
  .selfservice[data-active-page="team"] .team-member[data-status-tone="not-working"] .team-member-state strong,
  .selfservice[data-active-page="team"] .team-member[data-status-tone="off"] .team-member-state strong { color: #cbd5e1; }
  .selfservice[data-active-page="team"] .team-location-badge {
    border-color: rgba(191, 219, 254, 0.55);
    background: rgba(30, 64, 175, 0.5);
    color: #eff6ff;
  }
}

.selfservice[data-active-page="report"],
.selfservice[data-active-page="nte-report"] { display: grid; }
.selfservice[data-active-page="report"] .report-block,
.selfservice[data-active-page="nte-report"] .report-block {
  margin: 0;
  padding: 1.4rem;
  border: 1px solid #dbe3ef;
  border-radius: 1rem;
  background: #fff;
}
.report-visual-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 1.25rem 0;
}
.report-kpi {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 6.4rem;
  padding: 1rem;
  overflow: hidden;
  border-radius: 0.9rem;
  background: #101a3a;
  color: #fff;
}
.report-kpi-copy { display: grid; gap: 0.25rem; }
.report-kpi b { color: #fff; font-size: 0.8rem; }
.report-kpi small { color: #b8c3d9; font-size: 0.66rem; }
.report-kpi > strong { color: #fff; font-size: clamp(1.5rem, 2.5vw, 2.25rem); }
.report-kpi-late { background: linear-gradient(135deg, #9a3412, #ea580c); }
.report-kpi-absence { background: linear-gradient(135deg, #881337, #d50078); }
.report-kpi-undertime { background: linear-gradient(135deg, #1e3a8a, #4f6edb); }
.report-kpi-leave { background: linear-gradient(135deg, #065f46, #0f9f76); }
.report-employee-chart {
  grid-column: 1 / -1;
  padding: 1rem;
  border: 1px solid #dbe3ef;
  border-radius: 0.9rem;
  background: #f8fafc;
}
.report-employee-chart h4 { margin: 0 0 0.8rem; }
.report-chart-line {
  display: grid;
  grid-template-columns: minmax(8rem, 0.32fr) minmax(8rem, 1fr) 2rem;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.55rem;
  color: #334155;
  font-size: 0.75rem;
}
.report-chart-track { width: 100%; height: 0.55rem; overflow: hidden; border: 0; border-radius: 999px; background: #e2e8f0; appearance: none; }
.report-chart-track::-webkit-progress-bar { border-radius: 999px; background: #e2e8f0; }
.report-chart-track::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, #ff9914, #d50078); }
.report-chart-track::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, #ff9914, #d50078); }
.report-chart-line strong { color: #071a3d; text-align: right; }
.selfservice[data-active-page="report"] .report-summary { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.selfservice[data-active-page="report"] .report-total-card { padding: 0.9rem; border-radius: 0.85rem; }
.selfservice[data-active-page="report"] .report-table thead { background: #101a3a; color: #fff; }
.selfservice[data-active-page="report"] .report-table th { color: #fff; }
.selfservice[data-active-page="report"] .report-table tbody tr:nth-child(even) { background: #f8fafc; }
.selfservice[data-active-page="nte-report"] .report-table thead { background: #101a3a; color: #fff; }
.selfservice[data-active-page="nte-report"] .report-table th { color: #fff; }
.selfservice[data-active-page="nte-report"] .report-table tbody tr:nth-child(even) { background: #f8fafc; }

.nte-card-list { display: grid; gap: 0.85rem; margin-top: 1rem; }
.nte-card {
  padding: 1rem;
  border: 1px solid #dbe3ef;
  border-left: 0.25rem solid #d50078;
  border-radius: 0.85rem;
  background: #f8fafc;
}
.nte-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 0.8rem; }
.nte-card-heading > strong { color: #071a3d; }
.nte-status-pill {
  flex: 0 0 auto;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: #fff0f7;
  color: #9d0758;
  font-size: 0.68rem;
  font-weight: 700;
}
.nte-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin: 0.9rem 0; }
.nte-facts div { padding: 0.6rem; border-radius: 0.6rem; background: #fff; }
.nte-facts dt { color: #64748b; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; }
.nte-facts dd { margin: 0.2rem 0 0; color: #1e293b; font-size: 0.76rem; }
.nte-notice-details summary { cursor: pointer; color: #0f3b75; font-weight: 700; }
.nte-notice-body { max-height: 24rem; overflow: auto; white-space: pre-wrap; color: #334155; line-height: 1.55; }
.nte-email-evidence { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.75rem; }
.nte-email-evidence a { padding: 0.25rem 0.45rem; border-radius: 0.45rem; background: #e8eefc; color: #163f80; font-size: 0.68rem; }
.nte-report-table { min-width: 92rem; }
.nte-report-table td { vertical-align: top; }
.nte-employee-cell { display: grid; gap: 0.2rem; }
.nte-employee-cell small { color: #64748b; font-size: 0.65rem; }

@media (max-width: 760px) {
  .nte-card-heading { display: grid; }
  .nte-status-pill { justify-self: start; }
  .nte-facts { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .workday-command { grid-template-columns: 1fr; }
  .workday-flow-column { padding: 1rem; }
  .selfservice[data-active-page="team"] { grid-template-columns: 1fr; }
  .selfservice[data-active-page="team"] .team-status-block { position: static; }
  .report-visual-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .workday-command-top { flex-direction: column; }
  .workday-command .attendance-actions,
  .workday-command .attendance-actions button { width: 100%; }
  .workday-facts > span { grid-template-columns: 5.5rem minmax(0, 1fr); }
  .selfservice[data-active-page="my"] { grid-template-columns: 1fr; }
  .selfservice[data-active-page="my"] .page-panel[data-page-panel="my"] { grid-column: 1; }
  .selfservice[data-active-page="my"] .request-chooser { grid-template-columns: 1fr; }
  .selfservice[data-active-page="my"] .page-panel[aria-labelledby="ss-leave-title"] { grid-template-columns: 1fr; }
  .selfservice[data-active-page="my"] .request-chooser,
  .selfservice[data-active-page="my"] #request-chooser-help,
  .selfservice[data-active-page="my"] .request-workflow,
  .selfservice[data-active-page="my"] .request-history { grid-column: 1; grid-row: auto; }
  .selfservice[data-active-page="my"] .leave-form button,
  .selfservice[data-active-page="my"] .time-adjustment-form button,
  .selfservice[data-active-page="my"] .correction-form button { width: 100%; }
  .report-visual-overview { grid-template-columns: 1fr; }
  .report-chart-line { grid-template-columns: 1fr 2rem; }
  .report-chart-track { grid-column: 1 / -1; grid-row: 2; }
}

/* --------------------------------------------------------------------------
   Home work context v1. These rules are intentionally last so the team board
   remains readable under both browser colour schemes and earlier page styles.
   -------------------------------------------------------------------------- */
.work-mode-control {
  display: grid;
  width: 100%;
  gap: 0.45rem;
  padding: 0.75rem;
  border: 1px solid rgba(203, 213, 225, 0.32);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.055);
}
.work-mode-control[hidden] { display: none !important; }
.work-mode-label { color: #f8fafc; font-size: 0.72rem; font-weight: 850; letter-spacing: 0.06em; text-transform: uppercase; }
.work-mode-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; }
.work-mode-actions button {
  min-width: 0 !important;
  min-height: 2.5rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid #64748b;
  border-radius: 0.65rem;
  background: #20283a;
  box-shadow: none;
  color: #f8fafc;
  font-size: 0.78rem;
}
.work-mode-actions button[aria-pressed="true"] {
  border-color: #f8fafc;
  background: #f8fafc;
  color: #0f172a;
}
.work-mode-actions button:disabled { border-color: #475569; background: #273247; color: #94a3b8; opacity: 1; }
.work-mode-control small { color: #cbd5e1; font-size: 0.68rem; line-height: 1.4; }

.selfservice[data-active-page="home"],
.selfservice[data-active-page="team"] {
  display: grid;
  grid-template-columns: minmax(24rem, 0.9fr) minmax(0, 1.45fr);
  align-items: start;
  gap: 1rem;
  padding: clamp(1rem, 2.2vw, 1.75rem);
  background: #eef2f7;
}
.selfservice[data-active-page="home"] .selfservice-header { display: none; }
.selfservice[data-active-page="home"] .team-status-block,
.selfservice[data-active-page="home"] .team-calendar-block,
.selfservice[data-active-page="team"] .team-status-block,
.selfservice[data-active-page="team"] .team-calendar-block {
  min-width: 0;
  margin: 0;
  padding: 1.2rem;
  border: 1px solid #526079;
  border-radius: 1rem;
  background: linear-gradient(145deg, #20283a, #343e52);
  box-shadow: 0 0.65rem 1.5rem rgba(7, 26, 61, 0.14);
  color: #f8fafc;
}
.selfservice[data-active-page="home"] .team-status-block,
.selfservice[data-active-page="team"] .team-status-block { position: sticky; top: 1rem; }
.selfservice[data-active-page="home"] .team-status-heading h3,
.selfservice[data-active-page="home"] .team-calendar-heading h3,
.selfservice[data-active-page="home"] .team-calendar-controls strong,
.selfservice[data-active-page="home"] .team-group-heading strong,
.selfservice[data-active-page="home"] .team-member-top > strong,
.selfservice[data-active-page="team"] .team-status-heading h3,
.selfservice[data-active-page="team"] .team-calendar-heading h3,
.selfservice[data-active-page="team"] .team-calendar-controls strong,
.selfservice[data-active-page="team"] .team-group-heading strong,
.selfservice[data-active-page="team"] .team-member-top > strong { color: #f8fafc !important; }
.selfservice[data-active-page="home"] .team-status-date,
.selfservice[data-active-page="home"] .team-status-note,
.selfservice[data-active-page="home"] .team-status-updated,
.selfservice[data-active-page="home"] .team-calendar-note,
.selfservice[data-active-page="home"] .team-calendar-message,
.selfservice[data-active-page="home"] .team-calendar-legend,
.selfservice[data-active-page="home"] .team-calendar-weekdays,
.selfservice[data-active-page="home"] .team-group-heading span,
.selfservice[data-active-page="team"] .team-status-date,
.selfservice[data-active-page="team"] .team-status-note,
.selfservice[data-active-page="team"] .team-status-updated,
.selfservice[data-active-page="team"] .team-calendar-note,
.selfservice[data-active-page="team"] .team-calendar-message,
.selfservice[data-active-page="team"] .team-calendar-legend,
.selfservice[data-active-page="team"] .team-calendar-weekdays,
.selfservice[data-active-page="team"] .team-group-heading span { color: #dbe4f0 !important; }
.selfservice[data-active-page="home"] .calendar-nav-button,
.selfservice[data-active-page="team"] .calendar-nav-button {
  border-color: #64748b;
  background: #141b2b;
  color: #fff;
}
.selfservice[data-active-page="home"] .team-group-control,
.selfservice[data-active-page="team"] .team-group-control {
  border-color: rgba(203, 213, 225, 0.3);
  background: #141b2b;
}
.selfservice[data-active-page="home"] .team-group-copy strong,
.selfservice[data-active-page="team"] .team-group-copy strong { color: #f8fafc; }
.selfservice[data-active-page="home"] .team-group-copy span,
.selfservice[data-active-page="home"] .team-group-actions span,
.selfservice[data-active-page="team"] .team-group-copy span,
.selfservice[data-active-page="team"] .team-group-actions span { color: #cbd5e1; }
.selfservice[data-active-page="home"] .team-group-actions button,
.selfservice[data-active-page="team"] .team-group-actions button { border-color: #64748b; color: #f8fafc; }
.selfservice[data-active-page="home"] .team-group-actions button[aria-pressed="true"],
.selfservice[data-active-page="team"] .team-group-actions button[aria-pressed="true"] {
  border-color: #e2e8f0;
  background: #e2e8f0;
  color: #0f172a;
}

.selfservice[data-active-page="home"] .team-member,
.selfservice[data-active-page="team"] .team-member { border-color: #64748b; background: linear-gradient(145deg, #273247, #2d394f); }
.selfservice[data-active-page="home"] .team-member[data-status-tone="working"],
.selfservice[data-active-page="team"] .team-member[data-status-tone="working"] { border-color: #4ade80; background: linear-gradient(145deg, #163d2a, #1b4b32); }
.selfservice[data-active-page="home"] .team-member[data-status-tone="break"],
.selfservice[data-active-page="team"] .team-member[data-status-tone="break"] { border-color: #fbbf24; background: linear-gradient(145deg, #493310, #5b4012); }
.selfservice[data-active-page="home"] .team-member[data-status-tone="leave"],
.selfservice[data-active-page="team"] .team-member[data-status-tone="leave"] { border-color: #c084fc; background: linear-gradient(145deg, #3f2458, #4b2869); }
.selfservice[data-active-page="home"] .team-member-state strong,
.selfservice[data-active-page="home"] .team-member-state span,
.selfservice[data-active-page="team"] .team-member-state strong,
.selfservice[data-active-page="team"] .team-member-state span { color: #f8fafc !important; }
.selfservice[data-active-page="home"] .team-member[data-status-tone="working"] .team-member-state strong,
.selfservice[data-active-page="team"] .team-member[data-status-tone="working"] .team-member-state strong { color: #86efac !important; }
.selfservice[data-active-page="home"] .team-member[data-status-tone="break"] .team-member-state strong,
.selfservice[data-active-page="team"] .team-member[data-status-tone="break"] .team-member-state strong { color: #fde68a !important; }
.selfservice[data-active-page="home"] .team-member[data-status-tone="leave"] .team-member-state strong,
.selfservice[data-active-page="team"] .team-member[data-status-tone="leave"] .team-member-state strong { color: #e9d5ff !important; }
.selfservice[data-active-page="home"] .team-location-badge,
.selfservice[data-active-page="team"] .team-location-badge { border-color: rgba(191,219,254,.6); background: rgba(30,64,175,.52); color: #eff6ff; }

.selfservice[data-active-page="home"] .calendar-day,
.selfservice[data-active-page="team"] .calendar-day { border-color: #4b5870; background: #1f2739; }
.selfservice[data-active-page="home"] .calendar-day-heading strong,
.selfservice[data-active-page="team"] .calendar-day-heading strong { color: #fff !important; }
.selfservice[data-active-page="home"] .calendar-day-heading span,
.selfservice[data-active-page="team"] .calendar-day-heading span { color: #dbe4f0 !important; }
.selfservice[data-active-page="home"] .calendar-day[data-day-type="NON_WORKING_DAY"],
.selfservice[data-active-page="home"] .calendar-day[data-day-type="REGULAR_HOLIDAY"],
.selfservice[data-active-page="home"] .calendar-day[data-day-type="SPECIAL_NON_WORKING_DAY"],
.selfservice[data-active-page="team"] .calendar-day[data-day-type="NON_WORKING_DAY"],
.selfservice[data-active-page="team"] .calendar-day[data-day-type="REGULAR_HOLIDAY"],
.selfservice[data-active-page="team"] .calendar-day[data-day-type="SPECIAL_NON_WORKING_DAY"] { background: #5c4d4d; }
.selfservice[data-active-page="home"] .calendar-day[data-day-type="OFFICE_CLOSED"],
.selfservice[data-active-page="team"] .calendar-day[data-day-type="OFFICE_CLOSED"] { border-color: #fb7185; background: #6f3940; }
.selfservice[data-active-page="home"] .calendar-day[data-day-type="SPECIAL_WORKING_DAY"],
.selfservice[data-active-page="team"] .calendar-day[data-day-type="SPECIAL_WORKING_DAY"] { border-color: #4ade80; background: #345447; }
.selfservice[data-active-page="home"] .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-day-heading span,
.selfservice[data-active-page="home"] .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-holiday,
.selfservice[data-active-page="team"] .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-day-heading span,
.selfservice[data-active-page="team"] .calendar-day[data-day-type="OFFICE_CLOSED"] .calendar-holiday { color: #ffe4e6 !important; }
.selfservice[data-active-page="home"] .calendar-day[data-day-type="SPECIAL_WORKING_DAY"] .calendar-day-heading span,
.selfservice[data-active-page="team"] .calendar-day[data-day-type="SPECIAL_WORKING_DAY"] .calendar-day-heading span { color: #dcfce7 !important; }
.selfservice[data-active-page="home"] .calendar-holiday,
.selfservice[data-active-page="team"] .calendar-holiday { color: #fde68a; }
.selfservice[data-active-page="home"] .calendar-event-wfh,
.selfservice[data-active-page="team"] .calendar-event-wfh { background: #30458f; color: #eff6ff; }
.selfservice[data-active-page="home"] .calendar-event-leave,
.selfservice[data-active-page="team"] .calendar-event-leave { background: #5b3686; color: #faf5ff; }
.selfservice[data-active-page="home"] .calendar-event-field,
.selfservice[data-active-page="team"] .calendar-event-field { background: #245f5c; color: #ecfeff; }
.selfservice[data-active-page="home"] .calendar-day-empty,
.selfservice[data-active-page="team"] .calendar-day-empty { border-color: transparent; background: transparent; }

@media (max-width: 1100px) {
  .selfservice[data-active-page="home"],
  .selfservice[data-active-page="team"] { grid-template-columns: 1fr; }
  .selfservice[data-active-page="home"] .team-status-block,
  .selfservice[data-active-page="team"] .team-status-block { position: static; }
}

/* home-attention-v1: the "Needs attention" strip as compact rows inside
   labelled columns.  Appended last on purpose: it overrides the three earlier
   .attention-* blocks by cascade order without editing them, and the
   prefers-dark block above already forces this section light. */
.attention-dashboard { margin-top: 0.9rem; padding: 0.8rem 1rem 0.9rem; }
.attention-heading { margin-bottom: 0.55rem; }
.attention-heading h2 { font-size: 1.05rem; }
.attention-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0.6rem 1rem;
  align-items: start;
}
.attention-group { display: grid; gap: 0.3rem; min-width: 0; }
.attention-group h3 {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.05rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid #e2e8f0;
  color: #64748b;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.attention-group h3::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #94a3b8; }
.attention-group[data-group="decisions"] h3::before { background: #d50078; }
.attention-group[data-group="attendance"] h3::before { background: #f59e0b; }
.attention-group[data-group="away"] h3::before { background: #38bdf8; }
.attention-group[data-group="tasks"] h3::before { background: #6366f1; }
.attention-rows { display: grid; gap: 0.3rem; }
.attention-card {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 0;
  padding: 0.36rem 0.55rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.6rem;
  background: #fff;
  font-size: 0.8rem;
  cursor: pointer;
}
.attention-card:hover, .attention-card:focus-visible { border-color: #94a3b8; }
.attention-card > .attention-marker + span {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.1rem 0.45rem;
  min-width: 0;
}
.attention-card strong { font-size: 0.8rem; white-space: nowrap; }
.attention-card > .attention-marker + span > span {
  max-width: 100%;
  overflow: hidden;
  font-size: 0.72rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attention-marker { flex: 0 0 auto; width: 1.55rem; height: 1.55rem; font-size: 0.72rem; }
.attention-group[data-group="away"] .attention-card { border-style: dashed; background: #f8fafc; }
/* brief preview of the top urgent tasks, under the Urgent row */
.attention-card.has-sublist { flex-wrap: wrap; }
.attention-sublist {
  display: grid;
  flex-basis: 100%;
  gap: 0.12rem;
  margin-top: 0.1rem;
  padding-left: 2.1rem;
  min-width: 0;
}
.attention-sub { display: flex; justify-content: space-between; gap: 0.5rem; min-width: 0; font-size: 0.7rem; line-height: 1.3; color: #475569; }
.attention-sub-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attention-sub-due { flex: 0 0 auto; color: #94a3b8; font-variant-numeric: tabular-nums; }
.attention-sub-more { font-size: 0.66rem; color: #94a3b8; }
.attention-empty { grid-column: 1 / -1; padding: 0.5rem 0.25rem; }
@media (max-width: 640px) {
  .attention-grid { grid-template-columns: 1fr; }
}
