:root {
  color-scheme: dark;
  --ink: #E4E4EC;
  --muted: #8A8A9C;
  --line: #2A2A3A;
  --panel: #15151F;
  --soft: #0C0C14;
  --accent: #C9A227;
  --accent-strong: #E2C55B;
  --gold: #C9A227;
  --blue: #9EAAB4;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
}

* {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(18, 98, 70, 0.06), transparent 34%),
    linear-gradient(315deg, rgba(185, 137, 47, 0.08), transparent 38%),
    var(--soft);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header {
  width: min(1180px, calc(100% - 40px));
  min-height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 220px;
}

.brand img {
  width: 72px;
  height: 72px;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(13, 73, 52, 0.3);
}

.brand span {
  display: grid;
  gap: 2px;
}

.brand strong {
  font-size: 0.98rem;
  line-height: 1.1;
}

.brand small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 700;
}

nav a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  padding: 0 14px;
}

nav a:hover {
  background: rgba(255, 255, 255, 0.08);
}

.nav-button {
  color: #fff;
  background: var(--accent);
  box-shadow: 0 12px 24px rgba(18, 98, 70, 0.22);
}

nav .nav-button:hover {
  background: var(--accent-strong);
}

main {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 44px 0 54px;
}

.hero-logo {
  display: flex;
  justify-content: center;
  padding: 40px 0 20px;
}

.hero-logo img {
  width: clamp(220px, 32vw, 400px);
  height: auto;
  filter: drop-shadow(0 20px 60px rgba(201, 162, 39, 0.3));
}

.hero {
  min-height: calc(100vh - 210px);
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
  align-items: center;
  gap: clamp(32px, 6vw, 80px);
}

.eyebrow {
  width: fit-content;
  margin: 0 0 18px;
  padding: 8px 12px;
  border: 1px solid rgba(201, 162, 39, 0.25);
  border-radius: 999px;
  color: var(--accent-strong);
  background: rgba(201, 162, 39, 0.08);
  font-size: 0.79rem;
  font-weight: 800;
  text-transform: uppercase;
}

h1 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(3rem, 7vw, 6.7rem);
  line-height: 0.93;
  letter-spacing: 0;
}

.lead {
  max-width: 650px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: clamp(1.03rem, 1.7vw, 1.3rem);
  line-height: 1.65;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.primary-action,
.secondary-action {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  padding: 0 20px;
  font-weight: 800;
}

.primary-action {
  color: #fff;
  background: var(--accent);
  box-shadow: 0 16px 30px rgba(18, 98, 70, 0.25);
}

.secondary-action {
  border: 1px solid var(--line);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.06);
}

.dashboard-preview {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: clamp(18px, 3vw, 28px);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}

.preview-top,
.activity-list div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.preview-top {
  margin-bottom: 18px;
  color: var(--muted);
  font-size: 0.9rem;
}

.preview-top strong {
  color: var(--accent-strong);
}

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

.metric-grid article,
.feature-band article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}

.metric-grid article {
  min-height: 148px;
  padding: 18px;
  display: grid;
  align-content: space-between;
}

.metric-grid .wide {
  grid-column: 1 / -1;
  min-height: 132px;
  border-color: rgba(201, 162, 39, 0.22);
  background: linear-gradient(135deg, #1a1a2a, #15201a);
}

.metric-grid span,
.activity-list span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 750;
}

.metric-grid strong {
  margin-top: 14px;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1;
}

.metric-grid small {
  color: var(--blue);
  font-weight: 750;
}

.activity-list {
  margin-top: 16px;
  display: grid;
  gap: 10px;
}

.activity-list div {
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 14px;
  background: var(--soft);
}

.activity-list strong {
  color: var(--accent-strong);
}

.feature-band {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.feature-band article {
  min-height: 210px;
  padding: 22px;
}

.feature-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #fff;
  background: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
}

h2 {
  margin: 22px 0 10px;
  font-size: 1.15rem;
}

.feature-band p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

@media (max-width: 860px) {
  .site-header {
    width: min(100% - 28px, 680px);
    min-height: auto;
    padding: 16px 0 0;
    align-items: flex-start;
    flex-direction: column;
  }

  nav {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  nav a {
    flex: 0 0 auto;
  }

  main {
    width: min(100% - 28px, 680px);
    padding-top: 32px;
  }

  .hero {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  h1 {
    font-size: clamp(2.7rem, 14vw, 4.7rem);
  }

  .feature-band {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .brand {
    min-width: 0;
  }

  .brand strong {
    font-size: 0.92rem;
  }

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

  .metric-grid .wide {
    grid-column: auto;
  }

  .hero-actions a {
    width: 100%;
  }
}

/* ─── Site auth widget (Google sign-in in header nav) ─────────────── */
.lgs-user-widget { display: inline-flex; align-items: center; }
.lgs-header-signin {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border: 0;
  border-radius: 8px;
  padding: 0 16px;
  background: var(--accent);
  color: #09090f;
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 900;
}
.lgs-header-signin:hover {
  background: var(--accent-strong);
}
.lgs-google-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; color: #1f1f1f;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 999px; padding: 8px 14px;
  font-weight: 800; font-size: 0.85rem; cursor: pointer;
  transition: background 0.12s, box-shadow 0.12s;
}
.lgs-google-btn:hover { background: #f6f6f6; box-shadow: 0 4px 12px rgba(0,0,0,0.18); }
.lgs-google-btn svg { width: 16px; height: 16px; flex-shrink: 0; }

.lgs-user-chip {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px; padding: 4px 4px 4px 4px;
}
.lgs-user-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  object-fit: cover; flex-shrink: 0;
  background: rgba(255,255,255,0.18);
}
.lgs-user-avatar--initials {
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 11px; color: #fff;
  text-transform: uppercase;
}
.lgs-user-name {
  font-weight: 800; font-size: 0.85rem; color: #fff;
  max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  padding: 0 4px;
}
.lgs-user-role {
  border-radius: 999px;
  padding: 4px 7px;
  background: rgba(201, 162, 39, 0.18);
  color: var(--accent-strong);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}
.lgs-signout-btn {
  background: rgba(255,255,255,0.16); color: #fff;
  border: 0; border-radius: 999px; padding: 6px 12px;
  font-weight: 800; font-size: 0.72rem; cursor: pointer;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.lgs-signout-btn:hover { background: rgba(255,255,255,0.26); }

.lgs-auth-error {
  background: rgba(239,68,68,0.16); color: #ffb6b6;
  border: 1px solid rgba(239,68,68,0.35);
  border-radius: 10px; padding: 10px 14px; margin: 16px 0;
  font-size: 13px; font-weight: 700;
}

.account-admin {
  width: min(760px, 100%);
  margin: 32px auto 0;
}

.account-admin__header {
  margin-bottom: 22px;
}

.account-admin__header h1 {
  margin: 0;
  font-size: clamp(2.1rem, 5vw, 4rem);
  line-height: 1;
}

.account-admin__header p:last-child,
.account-help p {
  color: var(--muted);
  line-height: 1.55;
}

.account-form,
.account-help {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.account-form {
  display: grid;
  gap: 10px;
  padding: 24px;
}

.account-form label {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.account-form input,
.account-form select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  background: rgba(255,255,255,0.06);
  color: var(--ink);
  font: inherit;
}

.account-apps {
  display: grid;
  gap: 10px;
  margin: 4px 0 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
}

.account-apps legend {
  padding: 0 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.account-apps label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-size: 0.95rem;
  text-transform: none;
}

.account-apps input {
  width: 18px;
  min-height: 18px;
  accent-color: var(--accent);
}

.account-form button {
  min-height: 48px;
  margin-top: 8px;
  border: 0;
  border-radius: 8px;
  background: var(--accent);
  color: #09090f;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.account-form button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.account-form__message {
  min-height: 20px;
  margin: 4px 0 0;
  font-size: 0.9rem;
  font-weight: 800;
}

.account-form__message--success {
  color: #7ee2a8;
}

.account-form__message--error {
  color: #ffb6b6;
}

.account-help,
.account-history {
  margin-top: 14px;
  padding: 20px 24px;
}

.account-help h2,
.account-history h2 {
  margin-top: 0;
}

.account-history {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.account-history__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.account-history__header h2 {
  margin-bottom: 0;
}

.account-history__header button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  background: rgba(255,255,255,0.06);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.account-history__table-wrap {
  overflow-x: auto;
}

.account-history__table {
  width: 100%;
  border-collapse: collapse;
  min-width: 560px;
}

.account-history__table th,
.account-history__table td {
  border-top: 1px solid var(--line);
  padding: 11px 10px;
  text-align: left;
  font-size: 0.9rem;
}

.account-history__table th {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

@media (max-width: 640px) {
  .lgs-user-name { max-width: 90px; font-size: 0.78rem; }
  .lgs-google-btn span { display: none; }
  .lgs-google-btn { padding: 8px 10px; }
}

/* ─── Payroll & billing admin ───────────────────────────────────── */
.payroll-admin { max-width: 1080px; margin: 28px auto; padding: 0 4px; }
.payroll-admin__header { margin-bottom: 22px; }
.payroll-admin__header .eyebrow { color: var(--accent-strong, #c9a227); font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }
.payroll-admin__header h1 { margin: 4px 0 6px; font-size: 30px; }
.payroll-admin__header p { color: var(--muted); margin: 0; max-width: 56ch; line-height: 1.5; }

.payroll-summary {
  display: grid; gap: 12px; margin-bottom: 22px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.payroll-year-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; padding: 16px;
  border-left: 4px solid var(--accent, #c9a227);
}
.payroll-year-card__year { font-size: 22px; font-weight: 900; color: var(--ink); margin-bottom: 8px; }
.payroll-year-card__rows { display: grid; gap: 6px; font-size: 13px; }
.payroll-year-card__rows > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.payroll-year-card__rows span { color: var(--muted); font-weight: 700; font-size: 12px; }
.payroll-year-card__rows strong { font-weight: 900; }
.payroll-year-card__rows strong.pos { color: #4be09a; }
.payroll-year-card__rows strong.neg { color: #ff8a8a; }
.payroll-year-card__rows strong.warn { color: #ffb147; }
.payroll-year-card__rows .muted { opacity: 0.7; }

.payroll-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 16px; padding: 22px; margin-bottom: 18px;
}
.payroll-card h2 { margin: 0 0 14px; font-size: 18px; }

.payroll-form { display: grid; gap: 12px; }
.payroll-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.payroll-form label { display: grid; gap: 4px; font-size: 12px; font-weight: 800; color: var(--ink); text-transform: uppercase; letter-spacing: 0.04em; }
.payroll-form input, .payroll-form select, .payroll-form textarea {
  width: 100%; padding: 9px 12px; box-sizing: border-box;
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--soft, #0e1620); color: var(--ink); font-size: 14px;
  font-weight: 600; text-transform: none; letter-spacing: 0;
}
.payroll-form textarea { resize: vertical; font-family: inherit; }
.payroll-form__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.payroll-form button[type=submit] {
  background: var(--accent, #c9a227); color: #09090f;
  border: 0; border-radius: 999px; padding: 10px 22px;
  font-weight: 900; font-size: 14px; cursor: pointer;
}
.payroll-form button[type=submit]:disabled { opacity: 0.5; cursor: wait; }
.payroll-form__msg { margin: 0; font-size: 12px; font-weight: 800; }
.payroll-form__msg--err { color: #ff8a8a; }
.payroll-form__msg--ok  { color: #4be09a; }

.payroll-list__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.payroll-filters { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.payroll-filters select, .payroll-filters button {
  background: var(--soft, #0e1620); color: var(--ink);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 6px 10px; font-size: 12px; font-weight: 700; cursor: pointer;
}

.payroll-list__wrap { overflow-x: auto; }
.payroll-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.payroll-table th, .payroll-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.payroll-table th { color: var(--muted); font-size: 11px; text-transform: uppercase; font-weight: 800; letter-spacing: 0.04em; }
.payroll-table tr:last-child td { border-bottom: 0; }
.payroll-table .pos { color: #4be09a; }
.payroll-table .neg { color: #ff8a8a; }
.payroll-table .muted { color: var(--muted); }
.payroll-empty { padding: 22px; text-align: center; color: var(--muted); font-style: italic; }

.payroll-pill {
  display: inline-block; padding: 3px 9px; border-radius: 999px;
  font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em;
}
.payroll-pill--pending { background: rgba(232,184,106,0.18); color: #ffb147; }
.payroll-pill--paid    { background: rgba(75,224,154,0.18); color: #4be09a; }
.payroll-pill--void    { background: rgba(255,255,255,0.10); color: var(--muted); }

.payroll-row__actions { display: flex; flex-direction: column; gap: 4px; }
.payroll-pill__btn {
  background: rgba(255,255,255,0.10); color: var(--ink);
  border: 0; border-radius: 999px; padding: 5px 10px;
  font-size: 11px; font-weight: 800; cursor: pointer;
}
.payroll-pill__btn--danger { background: rgba(239,68,68,0.18); color: #ff8a8a; }
.payroll-pill__btn:disabled { opacity: 0.5; cursor: wait; }

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

/* ─── Payroll financial reports ─────────────────────────────────── */
.payroll-reports__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.payroll-reports__sub { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.payroll-reports__controls label { display: grid; gap: 4px; font-size: 11px; font-weight: 800; color: var(--ink); text-transform: uppercase; letter-spacing: 0.04em; }
.payroll-reports__controls select {
  background: var(--soft, #0e1620); color: var(--ink);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 8px 12px; font-size: 14px; font-weight: 700; min-width: 110px;
}

.payroll-reports__totals {
  display: grid; gap: 10px; margin-bottom: 18px;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.payroll-mini {
  background: var(--soft, #0e1620);
  border: 1px solid var(--line);
  border-radius: 12px; padding: 12px 14px;
  display: grid; gap: 4px;
}
.payroll-mini span { font-size: 11px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.payroll-mini strong { font-size: 18px; font-weight: 900; }
.payroll-mini.muted strong { color: var(--ink); }
.payroll-mini .pos { color: #4be09a; }
.payroll-mini .neg { color: #ff8a8a; }
.payroll-mini .warn { color: #ffb147; }

.payroll-reports__section { margin-top: 18px; }
.payroll-reports__section h3 { margin: 0 0 10px; font-size: 14px; color: var(--ink); text-transform: uppercase; letter-spacing: 0.04em; font-weight: 800; }

.payroll-monthly__legend {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
  font-size: 11px; color: var(--muted); margin-bottom: 10px; font-weight: 700;
}
.payroll-monthly__legend .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.payroll-monthly__legend .dot.pos  { background: #4be09a; }
.payroll-monthly__legend .dot.neg  { background: #ff8a8a; }
.payroll-monthly__legend .dot.warn { background: #ffb147; }

.payroll-monthly__rows { display: grid; gap: 6px; }
.payroll-monthly__row {
  display: grid; grid-template-columns: 42px 1fr 130px;
  align-items: center; gap: 12px;
  padding: 8px 10px; border-radius: 10px;
  background: var(--soft, #0e1620); border: 1px solid var(--line);
}
.payroll-monthly__label { font-size: 12px; font-weight: 900; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.payroll-monthly__bars { display: grid; gap: 4px; }
.payroll-monthly__bars .bar {
  height: 10px; border-radius: 999px; min-width: 2px;
  transition: width 0.3s ease;
}
.payroll-monthly__bars .bar--in      { background: linear-gradient(90deg, rgba(75,224,154,0.4), #4be09a); }
.payroll-monthly__bars .bar-row      { display: flex; gap: 2px; align-items: center; }
.payroll-monthly__bars .bar--paid    { background: linear-gradient(90deg, rgba(255,138,138,0.4), #ff8a8a); }
.payroll-monthly__bars .bar--pending { background: linear-gradient(90deg, rgba(255,177,71,0.4), #ffb147); }
.payroll-monthly__net { text-align: right; font-size: 11px; line-height: 1.3; }
.payroll-monthly__net small { color: var(--muted); display: block; margin-bottom: 2px; font-weight: 700; }
.payroll-monthly__net strong { font-size: 15px; font-weight: 900; }
.payroll-monthly__net strong.pos { color: #4be09a; }
.payroll-monthly__net strong.neg { color: #ff8a8a; }

.payroll-reports__grid {
  margin-top: 18px;
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.payroll-mini-table {
  width: 100%; border-collapse: collapse; font-size: 13px;
  background: var(--soft, #0e1620);
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
}
.payroll-mini-table th, .payroll-mini-table td {
  padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.payroll-mini-table th { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
.payroll-mini-table tr:last-child td { border-bottom: 0; }
.payroll-mini-table .pos { color: #4be09a; }
.payroll-mini-table .neg { color: #ff8a8a; }
.payroll-mini-table .warn { color: #ffb147; }
.payroll-mini-table .muted { color: var(--muted); }

@media (max-width: 640px) {
  .payroll-monthly__row { grid-template-columns: 38px 1fr; }
  .payroll-monthly__net { grid-column: 1 / -1; text-align: left; padding-left: 50px; }
}
