:root {
  color-scheme: dark;
  --bg: #07111f;
  --panel: #101b2e;
  --panel-2: #17253c;
  --card: #182a43;
  --text: #f3f7ff;
  --muted: #92a8c7;
  --accent: #4f8cff;
  --accent-2: #31c48d;
  --warning: #ffb84d;
  --border: rgba(255, 255, 255, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  background: linear-gradient(135deg, var(--bg), #0f1c2f);
  color: var(--text);
  min-height: 100vh;
}

body.modal-open {
  overflow: hidden;
}
[hidden]{display:none!important}

button,
input,
select,
textarea {
  font: inherit;
}

.app-shell {
  max-width: 1400px;
  margin: 0 auto;
  padding: 24px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.eyebrow {
  margin: 0 0 4px;
  color: var(--accent);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin: 0;
}

.topnav {
  display: flex;
  gap: 12px;
}

.topnav a {
  color: var(--muted);
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 999px;
  transition: 180ms ease;
}

.topnav a.active,
.topnav a:hover {
  color: var(--text);
  background: rgba(79, 140, 255, 0.16);
}

.dashboard {
  display: grid;
  grid-template-columns: minmax(300px, 360px) 1fr;
  gap: 24px;
}

.single-column {
  grid-template-columns: minmax(320px, 420px) 1fr;
}

.panel,
.column {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.24);
}

.panel {
  padding: 20px;
}

.panel-form label,
.detail-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
  font-weight: 600;
  color: var(--muted);
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  background: var(--panel-2);
  color: var(--text);
}

button {
  border: none;
  border-radius: 12px;
  padding: 10px 14px;
  cursor: pointer;
  background: linear-gradient(135deg, var(--accent), #6fa3ff);
  color: white;
  font-weight: 700;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

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

.ghost-button {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
}

.board-area {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.board-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 8px;
}

.hint {
  color: var(--muted);
  font-size: 0.95rem;
}

.board {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 16px;
}

.column {
  padding: 16px;
  min-height: 420px;
}

.column-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(79, 140, 255, 0.18);
  color: var(--accent);
  font-weight: 800;
}

.task-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 120px;
}

.task-card {
  background: var(--card);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
}

.task-card:hover,
.task-card:focus-visible {
  border-color: rgba(79, 140, 255, 0.7);
  outline: none;
}

.task-card.dragging {
  cursor: grabbing;
  opacity: 0.65;
}

.column.drag-over {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}

.task-card h4 {
  margin-bottom: 6px;
}

.task-card p {
  color: var(--muted);
  font-size: 0.95rem;
  margin-bottom: 10px;
}

.task-card .action-preview {
  color: var(--warning);
  font-size: 0.86rem;
}

.meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.9rem;
}

.badge {
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 0.8rem;
  background: rgba(49, 196, 141, 0.16);
  color: var(--accent-2);
}

.user-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.user-list li {
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--panel-2);
  border: 1px solid var(--border);
}

.panel-heading {
  margin-bottom: 16px;
}

.panel-heading p {
  color: var(--muted);
  margin-top: 6px;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(2, 7, 14, 0.72);
}

.modal-backdrop[hidden] {
  display: none;
}

.modal {
  width: min(640px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  overflow: auto;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.44);
  padding: 20px;
}

.modal-header,
.modal-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.modal-header {
  margin-bottom: 18px;
}

.modal-actions {
  justify-content: flex-end;
  margin-top: 18px;
}

.task-summary {
  margin-bottom: 16px;
  padding: 14px;
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--muted);
}

.action-history {
  margin-top: 18px;
}

.action-history h3 {
  margin-bottom: 10px;
}

.action-history ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.action-history li {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--muted);
}

.action-history strong {
  display: block;
  margin-bottom: 6px;
  color: var(--text);
  font-size: 0.88rem;
}

.action-history p {
  color: var(--muted);
}

@media (max-width: 980px) {
  .dashboard,
  .single-column {
    grid-template-columns: 1fr;
  }

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

@media (max-width: 640px) {
  .app-shell {
    padding: 16px;
  }

  .topbar,
  .board-header,
  .modal-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .topnav {
    width: 100%;
  }

  .topnav a {
    flex: 1;
    text-align: center;
  }
}

.login-panel {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 420px);
  gap: 24px;
  align-items: end;
  margin-bottom: 24px;
}

.login-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: end;
}

.login-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--muted);
  font-weight: 600;
}

.session-strip {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 24px;
  padding: 18px 20px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 20px;
}

.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(82px, 1fr));
  gap: 10px;
}

.metrics div {
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--panel-2);
  border: 1px solid var(--border);
}

.metrics strong,
.metrics span {
  display: block;
}

.metrics strong {
  font-size: 1.4rem;
}

.metrics span {
  color: var(--muted);
  font-size: 0.78rem;
}

.compact {
  padding: 9px 12px;
}

.site-pill {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255, 184, 77, 0.14);
  color: var(--warning);
  font-size: 0.76rem;
  font-weight: 800;
}

.empty-list {
  color: var(--muted);
  font-size: 0.9rem;
  padding: 10px 2px;
}

.access-denied {
  max-width: 680px;
}

.site-checks {
  border: 1px solid var(--border);
  border-radius: 12px;
  margin: 0 0 14px;
  padding: 12px;
}

.site-checks legend {
  color: var(--muted);
  font-weight: 700;
  padding: 0 6px;
}

.check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  margin-top: 8px;
}

.check-row input {
  width: auto;
}

@media (max-width: 760px) {
  .login-panel,
  .login-form,
  .session-strip {
    grid-template-columns: 1fr;
  }

  .session-strip {
    align-items: stretch;
    flex-direction: column;
  }

  .metrics {
    grid-template-columns: repeat(2, 1fr);
  }
}

.checklist-detail {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.checklist-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 12px;
}

.checklist-meta label {
  margin-bottom: 0;
}

.checklist-groups {
  display: grid;
  gap: 12px;
}

.checklist-group {
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--panel-2);
}

.checklist-group h3 {
  margin-bottom: 10px;
  font-size: 0.98rem;
}

.check-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  margin: 8px 0;
  color: var(--text);
  font-weight: 500;
}

.check-item input {
  width: auto;
  margin-top: 3px;
}

.check-item span {
  color: var(--muted);
}

@media (max-width: 640px) {
  .checklist-meta {
    grid-template-columns: 1fr;
  }
}

.calendar-control {
  display: grid;
  gap: 6px;
  min-width: 220px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.calendar-control input {
  min-width: 180px;
}

.calendar-control span {
  color: var(--warning);
  font-size: 0.78rem;
}

.board-only {
  grid-template-columns: 1fr;
}

.setup-intro {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 20px;
}

.setup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 16px;
}

.setup-card {
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.24);
}

.setup-card-header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.setup-card label:not(.check-row):not(.toggle-row) {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--muted);
  font-weight: 700;
  margin-bottom: 16px;
}

.setup-section {
  padding: 12px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-top: 12px;
}

.setup-section h3 {
  margin-bottom: 10px;
}

.toggle-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  font-weight: 700;
}

.toggle-row input {
  width: auto;
}

@media (max-width: 860px) {
  .setup-grid {
    grid-template-columns: 1fr;
  }

  .setup-intro,
  .setup-card-header {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Left menu layout */
.app-shell {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  align-items: start;
}

.content-shell {
  min-width: 0;
}

.sidebar {
  position: sticky;
  top: 24px;
  min-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.24);
}

.brand h1 {
  font-size: 1.35rem;
  line-height: 1.15;
}

.side-nav {
  display: grid;
  gap: 8px;
}

.side-nav a,
.ghost-link {
  color: var(--muted);
  text-decoration: none;
  padding: 10px 12px;
  border-radius: 12px;
  transition: 180ms ease;
}

.side-nav a.active,
.side-nav a:hover,
.ghost-link:hover {
  color: var(--text);
  background: rgba(79, 140, 255, 0.16);
}

.sidebar #logout-button {
  margin-top: auto;
}

.user-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.user-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    min-height: auto;
  }

  .side-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .user-list-row {
    align-items: flex-start;
    flex-direction: column;
  }
}

.user-edit-form {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.user-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.user-edit-grid label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 600;
}

@media (max-width: 640px) {
  .user-edit-grid {
    grid-template-columns: 1fr;
  }
}
.check-item {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.check-item.is-saving {
  opacity: .65;
  cursor: progress;
}

.check-item:last-child {
  border-bottom: 0;
}

.detail-form .check-choice {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: var(--text);
  font-size: 0.86rem;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .check-item {
    grid-template-columns: 1fr auto auto;
  }

  .check-item-label {
    grid-column: 1 / -1;
  }
}
.landing-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr);max-width:1300px;margin:auto;padding:40px;gap:32px;align-items:stretch}.landing-login,.landing-sites{background:var(--panel);border:1px solid var(--border);border-radius:24px;padding:36px;box-shadow:0 24px 60px rgba(0,0,0,.3)}.landing-login{display:flex;flex-direction:column;justify-content:center}.portal-form{display:grid;gap:16px;margin-top:28px}.portal-form label{display:grid;gap:8px;color:var(--muted);font-weight:700}.form-error{color:#ff7b7b;min-height:1.25em}.site-button-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:16px;margin-top:28px}.site-access-button{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:16px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:1.2rem;font-weight:800}.site-access-button span{font-size:.8rem;color:var(--muted);font-weight:500}.site-header,.portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;max-width:1400px;margin:auto}.header-actions{display:flex;align-items:center;gap:12px}.site-main{max-width:1400px;margin:auto;padding:0 24px 32px}.portal-content{min-width:0}.portal-view{padding:4px}.portal-view>h2,.panel-heading{margin-bottom:20px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:16px}.summary-card,.record-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px}.summary-card strong,.summary-card span{display:block}.summary-card strong{font-size:2rem;color:var(--accent)}.summary-card span{color:var(--muted)}.record-list{display:grid;gap:14px}.record-card{display:flex;justify-content:space-between;align-items:center;gap:20px}.record-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.record-actions select{min-width:150px}.side-nav button{background:transparent;text-align:left;color:var(--muted);font-weight:600}.side-nav button:hover{background:rgba(79,140,255,.16);color:var(--text)}@media(max-width:800px){.landing-shell{grid-template-columns:1fr;padding:18px}.site-button-grid,.summary-grid{grid-template-columns:1fr}.site-header,.portal-header,.record-card{align-items:flex-start;flex-direction:column}.header-actions{flex-wrap:wrap}}
.toilet-instructions ul{margin:10px 0 0;padding-left:20px;color:var(--muted);display:grid;gap:6px}.toilet-progress{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.hourly-records{display:grid;gap:10px}.hourly-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(260px,1.4fr);gap:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.hourly-row>div:first-child{display:grid;grid-template-columns:auto auto;gap:4px 10px;align-items:center}.hourly-row small,.hourly-row p{grid-column:1/-1;color:var(--muted)}.hour-status{text-transform:capitalize;font-size:.78rem;font-weight:800}.hour-actions{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.status-completed{border-color:rgba(49,196,141,.5)}.status-completed .hour-status{color:var(--accent-2)}.status-overdue,.status-missed{border-color:rgba(255,90,90,.55)}.status-overdue .hour-status,.status-missed .hour-status{color:#ff7b7b}.report-hours{display:grid;gap:6px;margin-top:12px}.report-hours>span{padding:7px 10px;border-radius:8px;background:var(--panel-2);text-transform:capitalize}.toilet-report-card{display:block}@media(max-width:760px){.hourly-row{grid-template-columns:1fr}.hour-actions{grid-template-columns:1fr}.toilet-progress{flex-direction:column}}
.cashout-shell{max-width:1200px;margin:auto;padding:0 24px 40px;display:grid;gap:20px}.till-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.till-section{padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--panel-2)}.till-section h2{margin-bottom:14px}.denomination-group{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:10px;margin-bottom:14px}.denomination-group h3{grid-column:1/-1}.denomination-group label{display:grid;grid-template-columns:50px 1fr;align-items:center;gap:8px;margin:0}.till-totals{display:grid;gap:5px;padding-top:12px;border-top:1px solid var(--border)}.till-totals span{display:flex;justify-content:space-between}.cash-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.cash-summary div{padding:16px;border-radius:14px;background:var(--panel-2);border:1px solid var(--border)}.cash-summary span,.cash-summary strong{display:block}.cash-summary strong{font-size:1.5rem;margin-top:5px}.confirmation-list{display:grid;gap:10px;border:1px solid var(--border);border-radius:14px;padding:16px;margin:16px 0}.confirmation-list label{display:flex;flex-direction:row;align-items:center;margin:0}.confirmation-list input{width:auto}.cashout-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end;margin-bottom:20px}.cashout-filters label{display:grid;gap:6px}.compact-link{padding:10px 14px;font-size:.95rem}.cashout-report{display:block}@media(max-width:700px){.cash-summary,.cashout-filters{grid-template-columns:1fr}}
.cashout-location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:26px}.cashout-location-grid .summary-card{display:grid;gap:10px}.cashout-location-grid label{display:grid;gap:6px;color:var(--muted)}.section-heading{margin:22px 0 14px}
.till-banking-row{margin-top:5px;padding-top:7px;border-top:1px solid var(--border);color:var(--accent-2)}.till-float-config{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.till-float-config label{font-size:.82rem}
.portal-user-card{display:block}.portal-user-card.is-archived{opacity:.75}.portal-user-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.user-card-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.portal-user-edit{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.portal-user-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.portal-user-edit-grid label{display:grid;gap:6px;color:var(--muted)}.portal-user-sites{margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:12px}.portal-user-sites legend{padding:0 6px;font-weight:700}.user-site-option{display:inline-flex;align-items:center;gap:7px;margin:6px 18px 6px 0;color:var(--text)}.user-site-option input{width:auto}.portal-user-edit .form-error{margin:8px 0}.portal-user-edit .hint{font-size:.78rem}@media(max-width:700px){.portal-user-summary{display:grid}.portal-user-edit-grid{grid-template-columns:1fr}}
.location-admin-card{display:block}.location-admin-card>.user-card-actions{margin-top:14px}.location-admin-card>.portal-user-edit{width:100%}#temporary-password-value{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.forced-password-change .landing-shell{grid-template-columns:minmax(320px,560px);justify-content:center}.forced-password-change .landing-sites,.forced-password-change .landing-brand-header,.forced-password-change .app-footer{display:none}.forced-password-change .landing-login{min-height:min(620px,calc(100vh - 80px))}#account-password-message.is-success{color:#65d895}
.user-view-tabs{display:flex;gap:8px;margin-bottom:16px}.user-view-tabs button{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.user-view-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.portal-user-create{display:block;margin-bottom:18px}.portal-user-create .panel-heading{margin-bottom:14px}
.inspection-status-row{align-items:center}.inspection-status{padding:8px 12px;border-radius:999px;background:var(--panel-2);white-space:nowrap}.inspection-status.status-completed{color:var(--accent-2)}.inspection-status.status-missed{color:#ff7b7b}.inspection-status.status-in-progress{color:#f3c969}.inspection-status.status-to-be-action{color:var(--muted)}
#inspection-template-form{margin-top:16px}#inspection-template-items{min-height:360px;font-family:inherit;line-height:1.5}.form-success{color:var(--accent-2);min-height:1.25em}
.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.dashboard-location-filter{display:grid;gap:7px;min-width:230px;color:var(--muted);font-weight:700}.operations-dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.ops-pillar{background:linear-gradient(180deg,var(--panel),rgba(20,28,43,.82));border:1px solid var(--border);border-radius:18px;padding:18px;min-width:0}.ops-pillar-heading{display:flex;align-items:center;gap:12px;padding-bottom:15px;margin-bottom:14px;border-bottom:1px solid var(--border)}.ops-pillar-heading h3{font-size:1.05rem}.ops-pillar-heading .eyebrow{margin-bottom:2px}.pillar-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:rgba(79,140,255,.15);color:var(--accent);font-weight:900}.ops-metrics{display:grid;gap:11px}.ops-metric{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:82px;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--panel-2)}.ops-metric>div:first-child{display:grid;gap:6px}.ops-metric span{color:var(--muted);font-weight:700}.ops-metric strong{font-size:1.8rem;color:var(--text)}.ops-metric.is-alert{border-color:rgba(255,91,91,.8);background:rgba(150,35,45,.16);box-shadow:inset 3px 0 0 #ff5b5b}.ops-metric.is-alert strong,.ops-metric.is-alert>div>span{color:#ff7b7b}.alert-badge{width:max-content;padding:3px 7px;border-radius:999px;background:#a62d39;color:#fff;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.ops-metric.is-healthy{border-color:rgba(49,196,141,.25)}.ops-metric.is-healthy strong{color:var(--accent-2)}.checklist-progress{display:grid;grid-template-columns:1fr auto}.checklist-progress small{color:var(--muted)}.progress-track{grid-column:1/-1;width:100%;height:8px!important;display:block!important;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.progress-track span{height:100%;display:block;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:inherit;transition:width .25s ease}.compliance-metric{display:grid;grid-template-columns:1fr auto}.compliance-metric small{color:var(--muted)}.compliance-metric .progress-track{grid-column:1/-1}.compliance-comparison.is-up{color:var(--accent-2)}.compliance-comparison.is-down{color:#ff7b7b}.compliance-comparison.is-flat{color:var(--muted)}@media(max-width:1100px){.operations-dashboard{grid-template-columns:1fr}.ops-pillar{display:grid;grid-template-columns:minmax(220px,.55fr) 1.45fr;gap:16px}.ops-pillar-heading{border-bottom:0;border-right:1px solid var(--border);margin:0;padding:0 16px 0 0}}@media(max-width:700px){.dashboard-heading{align-items:stretch;flex-direction:column}.dashboard-location-filter{min-width:0}.ops-pillar{display:block}.ops-pillar-heading{border-right:0;border-bottom:1px solid var(--border);padding:0 0 15px;margin:0 0 14px}}

/* Product branding: typography only; existing portal structure and tile layout remain unchanged. */
.landing-brand-header{max-width:1300px;margin:0 auto;padding:42px 40px 0;text-align:center}
.landing-brand-header h1{font-size:clamp(3.5rem,7vw,6.5rem);font-weight:700;letter-spacing:-.045em;line-height:.95}
.landing-shell{min-height:auto;padding-top:30px}
.landing-login{justify-content:flex-start}
.product-brand{margin-bottom:26px}
.product-brand h1,.product-brand h2{font-size:clamp(2.5rem,4vw,3.8rem);font-weight:650;letter-spacing:-.035em;line-height:1}
.product-brand p{margin-top:12px;color:var(--muted);font-size:clamp(.95rem,1.5vw,1.1rem);font-weight:650;letter-spacing:.025em}
.product-brand-hero h2{font-size:clamp(2.5rem,4vw,3.8rem)}
.venue-choice-heading{margin-top:38px;font-size:clamp(1.55rem,2.4vw,2.1rem);font-weight:800;letter-spacing:-.025em;line-height:1.1}
.landing-login>.hint,.landing-sites>.hint{margin-top:12px;max-width:52ch;line-height:1.65}
.app-footer{max-width:1300px;margin:0 auto;min-height:58px;padding:16px 40px 22px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.02em}
.brand .eyebrow{display:none}
.brand h1{font-size:0}
.brand h1::before{content:"Manager Ops";font-size:1.75rem;font-weight:850;letter-spacing:-.035em}
.brand>p{margin-top:8px;color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.4;letter-spacing:.025em}
.sidebar-footer{display:grid;gap:4px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:.68rem;font-weight:600;line-height:1.45}
@media(max-width:800px){.landing-brand-header{padding:30px 18px 0}.landing-shell{min-height:auto;padding-top:22px}.product-brand{margin-bottom:22px}.venue-choice-heading{margin-top:30px}.app-footer{padding:14px 18px 22px;flex-direction:column;gap:5px}}
.live-checklist-settings{margin-top:18px}

.venue-report-shell{max-width:1050px;margin:auto;padding:0 24px 48px}.venue-report-form{display:grid;gap:18px}.venue-report-section{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px}.venue-report-section h2{margin-bottom:16px}.venue-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.venue-report-grid .wide{grid-column:1/-1}.venue-report-grid label{display:grid;gap:7px}.venue-report-grid textarea{min-height:84px}.venue-report-filters{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end;margin-bottom:18px}.venue-report-filters label{display:grid;gap:6px}.venue-report-heading{margin-top:34px;padding-top:24px;border-top:1px solid var(--border)}.venue-report-summary{display:block}.venue-report-summary.is-flagged{border-color:rgba(255,91,91,.8);box-shadow:inset 3px 0 0 #ff5b5b}.report-flag{display:inline-block;color:#ff7b7b;font-weight:800}.venue-report-details{display:grid;gap:8px;margin:12px 0;padding:14px;background:var(--panel-2);border-radius:12px}.venue-report-summary details{margin:12px 0}.venue-report-summary summary{cursor:pointer;color:var(--accent);font-weight:700}@media(max-width:700px){.venue-report-grid,.venue-report-filters{grid-template-columns:1fr}.venue-report-grid .wide{grid-column:auto}}.inline-comment{display:flex;gap:8px;align-items:center}.inline-comment input{min-width:0;flex:1}.inline-comment button{white-space:nowrap}.comment-log{display:grid;gap:8px;margin:10px 0;padding:10px;border-left:3px solid var(--accent);background:rgba(79,140,255,.07);border-radius:0 10px 10px 0}.comment-log p{margin:0}.comment-log small{color:var(--muted)}.record-actions .inline-comment{width:min(100%,360px)}.management-open-card{cursor:pointer}.management-open-card:hover,.management-open-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);outline:none}.open-card-hint{display:inline-block;margin-top:8px;color:var(--accent);font-weight:800}.card-comment-count{color:var(--muted)!important;font-size:.8rem}.management-detail-modal{width:min(720px,calc(100vw - 32px));max-height:90vh;overflow:auto}.management-detail-information{display:grid;gap:16px;padding:16px;margin-bottom:18px;border-radius:12px;background:var(--panel-2)}.management-detail-information dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.management-detail-information dl div{display:grid;gap:4px}.management-detail-information dt{color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase}.management-detail-information dd{margin:0;font-weight:700}.management-detail-comments{max-height:240px;overflow:auto;margin-bottom:18px}@media(max-width:600px){.management-detail-information dl{grid-template-columns:1fr}}.till-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.till-operation-toggle{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;align-items:center!important;gap:7px!important;margin:0!important;color:var(--muted);font-size:.85rem;font-weight:700}.till-operation-toggle input{width:auto}.till-section.is-not-operating{border-color:rgba(255,180,70,.55);background:rgba(90,70,35,.16)}.till-section.is-not-operating .till-count-fields{opacity:.35}.till-section.is-not-operating .till-totals:before{content:"Excluded from cash out and global float";display:block;margin-bottom:7px;color:#ffc268;font-weight:800;font-size:.8rem}.is-locked-card{cursor:not-allowed;opacity:.72}.is-locked-card:hover{transform:none;border-color:var(--border)}.cashout-count-details{margin:14px 0}.cashout-count-details>summary{cursor:pointer;color:var(--accent);font-weight:800}.cashout-count-tills{display:grid;gap:14px;margin-top:12px}.cashout-count-tills>section{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.cashout-count-tills h4{margin-bottom:10px}.denomination-count-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:7px;margin-bottom:10px}.denomination-count-grid span{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:8px;border-radius:8px;background:rgba(255,255,255,.04)}.denomination-count-grid b{text-align:right}.denomination-count-grid small{grid-column:1/-1;color:var(--muted)}
.inspection-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin-bottom:22px}.inspection-summary{display:grid;gap:4px}.inspection-summary strong{font-size:2rem}.inspection-summary.status-completed{border-color:rgba(49,196,141,.45)}.inspection-summary.status-missed{border-color:rgba(255,91,91,.7)}.inspection-summary.status-in-progress{border-color:rgba(243,201,105,.55)}.revenue-report-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:14px;align-items:end;margin-bottom:24px;padding:18px;background:var(--panel);border:1px solid var(--border);border-radius:16px}.revenue-report-controls label{display:grid;gap:7px;color:var(--muted);font-weight:700}.revenue-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.revenue-total-card{display:grid;gap:7px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:16px}.revenue-total-card h3{font-size:1rem}.revenue-total-card>strong{font-size:2rem}.revenue-total-card small,.revenue-table th small{display:block;color:var(--muted);font-weight:500}.positive,.revenue-change.is-up{color:var(--accent-2)!important}.negative,.revenue-change.is-down{color:#ff7b7b!important}.revenue-change{font-weight:800}.revenue-change.is-flat{color:var(--muted)}.revenue-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:16px}.revenue-table{width:100%;border-collapse:collapse;background:var(--panel)}.revenue-table th,.revenue-table td{padding:14px 16px;text-align:right;border-bottom:1px solid var(--border)}.revenue-table th:first-child{text-align:left}.revenue-table tbody tr:last-child th,.revenue-table tbody tr:last-child td{border-bottom:0}@media(max-width:760px){.inspection-summary-grid,.revenue-summary-grid,.revenue-report-controls{grid-template-columns:1fr}}

.revenue-chart-card{margin-bottom:20px;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:16px}.revenue-chart-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:12px}.chart-legend{display:flex;gap:18px;color:var(--muted);font-weight:800}.chart-legend span:before{content:"";display:inline-block;width:24px;height:3px;margin-right:7px;vertical-align:middle;border-radius:4px}.chart-legend .current-line:before{background:var(--accent-2)}.chart-legend .previous-line:before{background:var(--accent)}.revenue-chart-scroll{overflow-x:auto}.revenue-line-chart{display:block;width:100%;min-width:680px;height:auto}.chart-grid{stroke:rgba(255,255,255,.1);stroke-width:1}.chart-y-label,.chart-x-label{fill:var(--muted);font-size:12px}.chart-y-label{text-anchor:end}.chart-x-label{text-anchor:middle}.chart-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-line-current{stroke:var(--accent-2)}.chart-line-previous{stroke:var(--accent)}.chart-point{stroke:var(--panel);stroke-width:2}.chart-point-current{fill:var(--accent-2)}.chart-point-previous{fill:var(--accent)}@media(max-width:600px){.revenue-chart-heading{display:grid}.chart-legend{flex-wrap:wrap}}
.site-pin-modal{width:min(380px,calc(100vw - 28px));padding:22px}.site-pin-form{display:grid;justify-items:center;gap:14px}.site-pin-dots{display:flex;justify-content:center;gap:15px;padding:4px 0 10px}.site-pin-dots span{width:17px;height:17px;border:2px solid var(--muted);border-radius:50%;background:transparent;transition:background .1s,border-color .1s}.site-pin-dots span.filled{background:var(--accent);border-color:var(--accent)}.site-pin-keypad{display:grid;grid-template-columns:repeat(3,72px);gap:12px;touch-action:manipulation}.site-pin-keypad .pin-key{width:72px;height:58px;padding:0;border-radius:18px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:1.55rem;font-weight:800;user-select:none;-webkit-user-select:none}.site-pin-keypad .pin-key:active{transform:scale(.94)}.site-pin-keypad .pin-key:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.site-pin-keypad .pin-delete{font-size:1.3rem}.site-pin-form .form-error{max-width:260px;text-align:center;margin:0}@media(max-height:650px){.site-pin-modal{padding:14px}.site-pin-keypad{gap:8px}.site-pin-keypad .pin-key{height:48px}.site-pin-dots{padding-bottom:3px}}
.site-pin-keypad .pin-key{height:72px;border-radius:50%}
@media(max-height:650px){.site-pin-keypad{grid-template-columns:repeat(3,54px)}.site-pin-keypad .pin-key{width:54px;height:54px;border-radius:50%}}
