:root {
  --page-bg:#f5f7fb;
  --surface:#ffffff;
  --text:#20252b;
  --muted:#667085;
  --border:#e5e7eb;
}
html,body { min-height:100%; }
body { background:var(--page-bg); color:var(--text) !important; }
main, .card, .card-body, .table, .modal-content, .modal-body, .modal-header, .modal-footer,
.form-label, .form-control, .form-select, .input-group-text, code { color:var(--text); }
.sidebar { min-height:calc(100vh - 56px); background:var(--surface); border-right:1px solid #e8ebf0; }
.sidebar .nav-link { color:#495057 !important; border-radius:.55rem; margin-bottom:.35rem; padding:.7rem .85rem; }
.sidebar .nav-link:hover,.sidebar .nav-link.active { background:#f0f2f5; color:#111 !important; font-weight:600; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:1rem; box-shadow:0 .25rem 1.25rem rgba(0,0,0,.06); }
.metric { font-size:2rem; font-weight:700; color:var(--text); }
.table { --bs-table-color:var(--text); --bs-table-bg:transparent; color:var(--text) !important; }
.table thead th { color:#475467 !important; background:#f8fafc !important; border-bottom:1px solid var(--border); }
.table tbody td { color:var(--text) !important; background:#fff !important; border-color:var(--border); }
.table > :not(caption) > * > * { padding:.9rem .75rem; vertical-align:middle; }
.text-secondary { color:var(--muted) !important; }
.badge-soft { background:#eef2ff; color:#3949ab; }
.form-control,.form-select { border-radius:.65rem; background:#fff !important; color:var(--text) !important; }
.form-control::placeholder { color:#98a2b3; opacity:1; }
.btn { border-radius:.65rem; }
.login-card { max-width:430px; margin:7vh auto 0; }
.modal-content { background:#fff !important; }
.api-raw { white-space:pre-wrap; word-break:break-word; font-size:.75rem; background:#f8fafc; border:1px solid var(--border); border-radius:.5rem; padding:.65rem; max-width:520px; }
.empty-value { color:#98a2b3 !important; font-style:italic; }
.chart-wrap { position:relative; min-height:320px; height:38vh; max-height:430px; }
.traffic-kpi { min-width:110px; padding:.65rem .85rem; border:1px solid var(--border); border-radius:.75rem; background:#f8fafc; }
.traffic-kpi span { display:block; color:var(--muted); font-size:.78rem; }
.traffic-kpi strong { display:block; color:var(--text); font-size:1.35rem; line-height:1.2; }
.register-card { max-width:760px; margin:2vh auto 0; }
.client-email { font-size:1.45rem; font-weight:700; word-break:break-word; }
