/* ============================================================
 * TruckerProfit — Carrier Portal styles
 * Built ONLY from /assets/css/_tokens.css. Mobile-first.
 * ============================================================ */

.page {
  max-width: var(--container-max, 1200px);
  margin: 0 auto;
  padding: var(--space-6, 24px) var(--space-5, 20px) var(--space-12, 48px);
}
@media (min-width: 768px) {
  .page { padding: var(--space-8, 32px) var(--space-8, 32px) var(--space-12, 48px); }
}

.page-header {
  display: flex; flex-direction: column; gap: var(--space-2, 8px);
  margin-bottom: var(--space-8, 32px);
  padding-bottom: var(--space-5, 20px);
  border-bottom: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
}
.page-header-row {
  display: flex; flex-wrap: wrap; align-items: flex-end;
  justify-content: space-between; gap: var(--space-4, 16px);
}
.page-eyebrow {
  font-family: var(--font-ui, 'DM Sans');
  font-size: var(--font-size-xs, 0.78rem);
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--color-gold-500, #D4A84B); font-weight: 600;
}
.page-title {
  font-family: var(--font-display, 'Syne');
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 600; line-height: var(--line-tight, 1.15);
  letter-spacing: -0.02em;
  color: var(--color-cream, #F4F1EA);
  margin: 0;
}
.page-sub {
  color: var(--color-text-muted, rgba(244,241,234,.65));
  font-size: var(--font-size-md, 1rem);
  margin: 0; max-width: 56ch;
}
.page-actions { display: flex; flex-wrap: wrap; gap: var(--space-2, 8px); }

/* KPI grid */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-4, 16px);
  margin-bottom: var(--space-8, 32px);
}
.kpi-card .kpi-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-3, 12px);
}
.kpi-icon {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(212,168,75,.10);
  border: 1px solid rgba(212,168,75,.25);
  border-radius: var(--radius-md, 8px);
  color: var(--color-gold-500, #D4A84B);
  flex-shrink: 0;
}
.kpi-icon svg { width: 18px; height: 18px; }
.kpi-mono {
  font-family: var(--font-mono, 'JetBrains Mono');
  font-feature-settings: "tnum" 1;
}

/* Hero */
.hero {
  background: linear-gradient(135deg, var(--color-navy-800, #0A1830) 0%, var(--color-navy-900, #030D1C) 100%);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  border-radius: var(--radius-xl, 16px);
  padding: var(--space-7, 28px) var(--space-7, 28px);
  margin-bottom: var(--space-7, 28px);
}
.hero-content { max-width: 760px; }
.role-pill {
  display: inline-flex; align-items: center;
  background: rgba(212,168,75,.12);
  border: 1px solid rgba(212,168,75,.30);
  color: var(--color-gold-500, #D4A84B);
  font-size: var(--font-size-xs, 0.78rem);
  letter-spacing: .14em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 999px;
  font-weight: 600;
}
.hero-greet {
  font-family: var(--font-display, 'Syne');
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  margin: var(--space-3, 12px) 0 var(--space-2, 8px);
  color: var(--color-cream, #F4F1EA);
  font-weight: 600; letter-spacing: -0.025em;
}
.hero-sub {
  color: var(--color-text-muted, rgba(244,241,234,.65));
  font-size: var(--font-size-md, 1rem); max-width: 56ch;
  line-height: var(--line-relaxed, 1.6);
}

/* Tables -> cards on mobile */
.data-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: var(--font-size-sm, .9rem);
}
.data-table th {
  text-align: left; padding: var(--space-3, 12px);
  color: var(--color-text-muted, rgba(244,241,234,.65));
  border-bottom: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  font-size: var(--font-size-xs, .78rem);
  background: rgba(255,255,255,.015);
}
.data-table td {
  padding: var(--space-3, 12px);
  border-bottom: 1px solid var(--color-border-soft, rgba(244,241,234,.06));
  vertical-align: middle;
}
.data-table tr:hover td { background: rgba(212,168,75,.04); }
.data-table .mono { font-family: var(--font-mono, 'JetBrains Mono'); }

@media (max-width: 767px) {
  .data-table thead { display: none; }
  .data-table, .data-table tbody, .data-table tr, .data-table td { display: block; width: 100%; }
  .data-table tr {
    background: var(--color-surface, #08152A);
    border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
    border-radius: var(--radius-md, 8px);
    padding: var(--space-3, 12px);
    margin-bottom: var(--space-3, 12px);
  }
  .data-table td {
    border-bottom: 0; padding: 4px 0;
    display: flex; justify-content: space-between; gap: var(--space-3, 12px);
  }
  .data-table td::before {
    content: attr(data-label);
    color: var(--color-text-muted, rgba(244,241,234,.65));
    font-size: var(--font-size-xs, .78rem); letter-spacing: .06em;
    text-transform: uppercase; font-weight: 600;
    align-self: center;
  }
}

/* Badges */
.badge {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius: 999px;
  font-size: var(--font-size-xs, .78rem); font-weight: 600;
  text-transform: uppercase; letter-spacing: .05em;
  border: 1px solid transparent; line-height: 1.4;
}
.badge--ok    { background: rgba(76,175,80,.15);   color:#7AD68A; border-color: rgba(76,175,80,.30); }
.badge--info  { background: rgba(64,160,255,.14);  color:#7FB8FF; border-color: rgba(64,160,255,.30); }
.badge--warn  { background: rgba(212,168,75,.16);  color:#E1BB6F; border-color: rgba(212,168,75,.30); }
.badge--danger{ background: rgba(229,80,80,.16);   color:#FF8989; border-color: rgba(229,80,80,.30); }
.badge--muted { background: rgba(244,241,234,.06); color:#9da3ab; border-color: rgba(244,241,234,.10); }

/* AR aging bar */
.ar-aging {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-2, 8px);
  margin-top: var(--space-3, 12px);
}
.ar-bucket {
  background: rgba(255,255,255,.02);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  border-radius: var(--radius-sm, 6px);
  padding: var(--space-3, 12px);
  text-align: center;
}
.ar-bucket .ar-label { color: var(--color-text-muted, rgba(244,241,234,.65)); font-size: var(--font-size-xs, .78rem); }
.ar-bucket .ar-value { font-family: var(--font-mono, 'JetBrains Mono'); font-size: var(--font-size-md, 1rem); margin-top: 4px; }
.ar-bucket--current { border-color: rgba(76,175,80,.30); }
.ar-bucket--soon    { border-color: rgba(64,160,255,.30); }
.ar-bucket--late    { border-color: rgba(212,168,75,.30); }
.ar-bucket--bad     { border-color: rgba(229,80,80,.30); }

/* Two-col grid */
.two-col {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5, 20px);
}
@media (min-width: 1024px) {
  .two-col { grid-template-columns: 2fr 1fr; }
}

/* Loading / empty states */
.state {
  padding: var(--space-8, 32px);
  text-align: center;
  color: var(--color-text-muted, rgba(244,241,234,.65));
  font-size: var(--font-size-sm, .9rem);
}
.state svg { width: 32px; height: 32px; opacity: .4; margin-bottom: var(--space-3, 12px); }

/* Mini fleet map placeholder */
.fleet-map {
  position: relative;
  height: 280px;
  border-radius: var(--radius-md, 8px);
  background:
    radial-gradient(circle at 30% 40%, rgba(212,168,75,.15) 0, transparent 50%),
    radial-gradient(circle at 70% 60%, rgba(64,160,255,.10) 0, transparent 50%),
    linear-gradient(135deg, var(--color-navy-800, #0A1830) 0%, var(--color-navy-900, #030D1C) 100%);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  overflow: hidden;
}
.fleet-map .dot {
  position: absolute;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--color-gold-500, #D4A84B);
  box-shadow: 0 0 0 4px rgba(212,168,75,.20), 0 0 12px rgba(212,168,75,.40);
}
.fleet-map .dot--in_use   { background: #7FB8FF; box-shadow: 0 0 0 4px rgba(64,160,255,.20); }
.fleet-map .dot--available{ background: #7AD68A; box-shadow: 0 0 0 4px rgba(76,175,80,.20); }

/* Quick action grid */
.quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-3, 12px);
  margin-top: var(--space-4, 16px);
}
.quick-action {
  display: flex; align-items: center; gap: var(--space-3, 12px);
  background: var(--color-surface, #08152A);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  border-radius: var(--radius-md, 8px);
  padding: var(--space-3, 12px) var(--space-4, 16px);
  color: var(--color-cream, #F4F1EA);
  text-decoration: none; transition: all .15s ease;
}
.quick-action:hover {
  border-color: rgba(212,168,75,.40);
  transform: translateY(-1px);
}
.quick-action svg { width: 20px; height: 20px; color: var(--color-gold-500, #D4A84B); flex-shrink: 0; }
.quick-action span { font-weight: 500; font-size: var(--font-size-sm, .9rem); }

/* Filter bar */
.filter-bar {
  display: flex; flex-wrap: wrap; gap: var(--space-2, 8px);
  margin-bottom: var(--space-4, 16px);
}
.filter-pill {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  color: var(--color-text-muted, rgba(244,241,234,.65));
  padding: 6px 14px; border-radius: 999px;
  font-size: var(--font-size-sm, .9rem); cursor: pointer;
  transition: all .15s ease;
}
.filter-pill:hover { color: var(--color-cream, #F4F1EA); border-color: rgba(212,168,75,.30); }
.filter-pill.is-active {
  background: rgba(212,168,75,.14);
  border-color: rgba(212,168,75,.40);
  color: var(--color-gold-500, #D4A84B);
}

/* Detail header */
.detail-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: var(--space-4, 16px); flex-wrap: wrap;
  margin-bottom: var(--space-6, 24px);
}
.detail-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-3, 12px);
  background: var(--color-surface, #08152A);
  border: 1px solid var(--color-border-soft, rgba(244,241,234,.08));
  border-radius: var(--radius-md, 8px);
  padding: var(--space-4, 16px);
  margin-bottom: var(--space-5, 20px);
}
.detail-meta .label { color: var(--color-text-muted, rgba(244,241,234,.65)); font-size: var(--font-size-xs, .78rem); text-transform: uppercase; letter-spacing: .06em; }
.detail-meta .value { font-weight: 500; margin-top: 2px; }
.detail-meta .value.mono { font-family: var(--font-mono, 'JetBrains Mono'); }

/* Status pill on detail header */
.status-pill {
  font-family: var(--font-mono, 'JetBrains Mono');
  font-size: var(--font-size-xs, .78rem);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Compliance upload zone */
.upload-zone {
  border: 2px dashed var(--color-border-soft, rgba(244,241,234,.15));
  border-radius: var(--radius-md, 8px);
  padding: var(--space-7, 28px);
  text-align: center;
  background: rgba(255,255,255,.02);
  cursor: pointer; transition: all .15s ease;
}
.upload-zone:hover, .upload-zone.is-dragover {
  border-color: var(--color-gold-500, #D4A84B);
  background: rgba(212,168,75,.04);
}
.upload-zone svg { width: 36px; height: 36px; color: var(--color-gold-500, #D4A84B); opacity: .8; margin-bottom: var(--space-2, 8px); }

/* Section header */
.section-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: var(--space-4, 16px); gap: var(--space-3, 12px);
}
.section-title {
  font-family: var(--font-display, 'Syne'); font-size: 1.15rem;
  font-weight: 600; color: var(--color-cream, #F4F1EA); margin: 0;
}
