/* ==========================================================================
   Cityview Funding brand theme — the ONE place for brand colours and fonts.
   Palette extracted from cityviewfunding.com (theme "cityview-funding",
   assets/css/styles.css :root) on 11/01/2026.  Logo: /static/brand/logo-horizontal.png
   Loaded after style.css on every page; style.css's own variables are mapped here.
   Status row fills (Paid Off / Payment Issues / Defaulted / Settled) are deliberately NOT themed.
   ========================================================================== */
@import url("/static/brand/fonts/fonts.css");
:root{
  /* --- brand palette (cityviewfunding.com) --- */
  --cv-navy-900:#001860;   /* brand text / darkest */
  --cv-navy-800:#002870;   /* primary: buttons, nav */
  --cv-navy-700:#003078;   /* hover / theme-color */
  --cv-navy-600:#1a4a9a;
  --cv-sky-700:#1d6fbf;    /* links (5.0:1 on white) */
  --cv-sky-600:#2f8fe0;
  --cv-sky-500:#48a8f8;    /* accent (logo blue) — decorative / on navy only */
  --cv-ice-200:#d0e8f8;
  --cv-ice-100:#e0f0f8;
  --cv-ice-50:#f0f7fd;
  --cv-slate-600:#46536e;  /* muted text (7.6:1) */
  --cv-slate-300:#c3d0e2;
  --cv-slate-200:#dfe7f1;  /* borders */
  --cv-slate-100:#eef3f9;
  --cv-cool-50:#f7fafc;    /* page background */
  --cv-success:#2f7a5a;
  --cv-error:#b4443c;
  --cv-gradient:linear-gradient(90deg,var(--cv-sky-500),var(--cv-navy-700));
  --cv-font-display:"Montserrat","Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --cv-font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  /* --- map the app's existing variables onto the brand --- */
  --navy:var(--cv-navy-800);--mid:var(--cv-sky-700);--light:var(--cv-ice-200);--pale:var(--cv-ice-50);
  --line:var(--cv-slate-200);--text:var(--cv-navy-900);--muted:var(--cv-slate-600);
  --green:var(--cv-success);--red:var(--cv-error);--blue:var(--cv-navy-600);
  --shadow:0 1px 2px rgba(0,40,112,.06),0 1px 3px rgba(0,40,112,.05);
}
body{font-family:var(--cv-font-body);background:var(--cv-cool-50);color:var(--text)}
h1,h2,h3,.brand,.lh-name,.kpi .v{font-family:var(--cv-font-display)}
h1{color:var(--cv-navy-900);font-weight:700;letter-spacing:-.2px}
h2,h3{color:var(--cv-navy-800)}
a{color:var(--cv-sky-700)}a:hover{color:var(--cv-navy-700)}

/* sidebar / top nav */
.side{background:linear-gradient(180deg,var(--cv-navy-900),var(--cv-navy-800) 60%,var(--cv-navy-700));border-right:4px solid transparent;border-image:linear-gradient(180deg,var(--cv-sky-500),var(--cv-navy-700)) 1}
.brand{padding:0 4px 16px}
.brand-logo{display:block;background:#fff;border-radius:10px;padding:8px 10px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.brand-logo img{display:block;width:100%;height:auto}
.brand small{color:var(--cv-ice-200);opacity:1;margin-top:8px;padding-left:4px;font-family:var(--cv-font-body);letter-spacing:.3px}
.side nav a{color:#e6effa}
.side nav a:hover{background:rgba(72,168,248,.18)}
.side nav a.on{background:#fff;color:var(--cv-navy-800);box-shadow:inset 3px 0 0 var(--cv-sky-500)}
.side .sep{background:rgba(208,232,248,.25)}

/* buttons */
.btn{background:var(--cv-navy-800);color:#fff;border-radius:8px;font-family:var(--cv-font-body)}
.btn:hover{background:var(--cv-navy-700);color:#fff}
.btn.ghost{background:#fff;color:var(--cv-navy-800);border:1px solid var(--cv-slate-300)}
.btn.ghost:hover{background:var(--cv-ice-50);color:var(--cv-navy-900)}
.btn.green{background:var(--cv-success)}.btn.danger{background:var(--cv-error)}
.btn.accent{background:var(--cv-sky-500);color:var(--cv-navy-900)}

/* KPI tiles, tables, cards */
.kpi{border-top-color:var(--cv-sky-500);border-color:var(--cv-slate-200)}
.kpi .v{color:var(--cv-navy-800)}
.kpi.good{border-top-color:var(--cv-success)}.kpi.bad{border-top-color:var(--cv-error)}
th{background:var(--cv-ice-50);color:var(--cv-navy-800)}
tfoot td,tr.tot td{background:var(--cv-slate-100)}
.card{border-color:var(--cv-slate-200)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--cv-sky-500);outline-offset:0;border-color:var(--cv-sky-600)}
.topsearch.big .ts-title{color:var(--cv-navy-800)}

/* login / 2FA / invite */
.login-body{background:var(--cv-ice-50) linear-gradient(180deg,var(--cv-ice-100),var(--cv-cool-50)) no-repeat;min-height:100vh}
.login-wrap{border-top:4px solid var(--cv-navy-800);border-radius:14px}
.login-logo{display:block;width:240px;max-width:100%;height:auto;margin:0 auto 14px}
.login-wrap h1{text-align:center;font-size:20px}
.login-wrap .sub{text-align:center}

/* printable letters & statements */
.letter-body{background:var(--cv-slate-100)}
.lh{border-bottom:3px solid var(--cv-navy-800);align-items:flex-end}
.lh-logo{display:block;height:54px;width:auto}
.lh-name{color:var(--cv-navy-800)}
.letter{color:var(--cv-navy-900)}
.letter table.kv tr.bal th,.letter table.kv tr.bal td{color:var(--cv-navy-800);border-top-color:var(--cv-navy-800)}
.letter .rule{height:4px;background:var(--cv-gradient);border-radius:2px;margin:-18px 0 20px}
@media print{.lh,.letter .rule{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
