/* Site-specific styles — overrides theme.css */

:root{
  --primary:#5b6abf;
  --primary-dark:#444fa0;
  --accent:#e8913a;
  --bg:#eef1f4;
  --card-bg:#ffffff;
  --text:#22303c;
  --muted:#68788a;
  --border:#d9dfe5;
  --success:#4caf7d;
  --warning:#f2b134;
  --danger:#e0553d;
}

/* ---------- overrides ---------- */
.nav-item:hover{ color:var(--primary-dark); background:#eef0fb; }
.nav-item.active{ color:var(--primary-dark); background:#eef0fb; }
.user-chip form{ margin:0; }

/* ---------- secondary nav ---------- */
.nav-secondary{
  display:flex; gap:4px; padding:4px 28px; background:var(--card-bg);
  border-bottom:1px solid var(--border);
}
.subnav-item{
  font-size:12px; font-weight:600; text-decoration:none; color:var(--muted);
  padding:5px 10px; border-radius:5px;
}
.subnav-item:hover{ color:var(--primary-dark); background:#eef0fb; }
.subnav-item.active{ color:var(--primary-dark); background:#eef0fb; }

main{ max-width:1200px; margin:0 auto; padding:20px 24px 80px; }

/* ---------- buttons ---------- */
.btn-danger{ color:var(--danger); }
.btn-danger:hover{ border-color:var(--danger); }

/* ---------- flash ---------- */
.flash-success{ background:#eafaf1; color:#1e7d4f; border-left:3px solid var(--success); }
.flash-error{ background:#fdeceb; color:#b23a2a; border-left:3px solid var(--danger); }

/* ---------- cards ---------- */
.card{ background:var(--card-bg); border:1px solid var(--border); border-radius:8px; padding:20px 24px; margin-bottom:16px; }
.card h2{ font-size:16px; margin:0 0 12px; color:var(--primary-dark); }

.mono{ font-family:'SF Mono', 'Cascadia Code', 'Consolas', monospace; font-size:12px; }
.text-right{ text-align:right; }

/* ---------- forms ---------- */
input[type="text"], input[type="email"], input[type="number"], input[type="date"], input[type="time"],
textarea, select{
  width:100%; padding:9px 12px; border:1px solid var(--border); border-radius:6px;
  font-family:inherit; font-size:14px; background:#fff; color:var(--text);
}
input:focus, textarea:focus, select:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(91,106,191,.12); }
label{ display:block; font-size:12px; font-weight:700; color:var(--muted); margin-bottom:6px; }

/* ---------- tiles ---------- */
.tile-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:12px; margin-bottom:20px; }
.tile{ background:var(--card-bg); border:1px solid var(--border); border-radius:8px; padding:16px 20px; }
.tile-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:4px; }
.tile-value{ font-size:24px; font-weight:700; color:var(--text); }
.tile-sub{ font-size:11px; color:var(--muted); }
.tile-value.ok{ color:var(--success); }
.tile-value.warn{ color:var(--warning); }
.tile-value.bad{ color:var(--danger); }

/* ---------- chart ---------- */
.chart-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(400px, 1fr)); gap:12px; margin-bottom:20px; }
.chart-card{ background:var(--card-bg); border:1px solid var(--border); border-radius:8px; padding:16px 20px; }
.chart-card h3{ font-size:13px; font-weight:600; color:var(--muted); margin:0 0 8px; }
.chart-controls{ display:flex; gap:4px; margin-bottom:8px; }
.chart-range{
  font-size:11px; font-weight:600; text-decoration:none; color:var(--muted);
  padding:3px 8px; border-radius:4px; border:1px solid var(--border); cursor:pointer; background:none;
}
.chart-range:hover, .chart-range.active{ color:var(--primary-dark); background:#eef0fb; border-color:var(--primary); }

/* ---------- two-col ---------- */
.two-col{ display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:12px; margin-bottom:20px; }

/* ---------- form grid ---------- */
.form-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px; }
.form-actions{ padding-top:12px; }

/* ---------- schedule card ---------- */
.schedule-header{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.schedule-actions{ display:flex; align-items:center; gap:8px; }
.schedule-actions form{ margin:0; }
.link-btn{ background:none; border:none; font-size:12px; font-weight:600; cursor:pointer; padding:4px 8px; border-radius:4px; }
.link-btn:hover{ background:#eef0fb; }
.link-btn.text-danger{ color:var(--danger); }
.link-btn.text-danger:hover{ background:#fdeceb; }

.badge{ display:inline-block; font-size:11px; font-weight:600; padding:2px 8px; border-radius:10px; }
.badge-green{ background:#eafaf1; color:#1e7d4f; }
.badge-gray{ background:#f0f2f5; color:var(--muted); }
.badge-red{ background:#fdeceb; color:#b23a2a; }

/* ---------- sortable table ---------- */
table.sortable th[data-sort]::after{ content:''; display:inline-block; width:0; height:0; margin-left:6px; vertical-align:middle; border:4px solid transparent; }
table.sortable th.sort-asc::after{ border-bottom-color:var(--primary-dark); border-top:0; }
table.sortable th.sort-desc::after{ border-top-color:var(--primary-dark); border-bottom:0; }

/* ---------- empty state ---------- */
.empty-state{ text-align:center; padding:40px 20px; color:var(--muted); }
