/* Stronger typography, subtle patterned canvas and coordinated report preview.
 * The PDF renderer retains its independently validated print geometry. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');
:root {
  --ff: 'Inter', system-ui, sans-serif;
  --heading: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  --t3: #4e617b;
  --t4: #586b84;
}
body { font-size: 15px; font-weight: 500; line-height: 1.65; }
.main {
  background-color: #edf1f6;
  background-image:
    radial-gradient(ellipse at 100% 5%, #b9cfe842 0, transparent 48%),
    radial-gradient(ellipse at 0% 85%, #c5dbdd38 0, transparent 42%),
    repeating-linear-gradient(135deg, transparent 0 95px, #34598708 95px 96px);
}
.topbar { background: #f7f9fcf2; }
#loginScreen {
  background:
    radial-gradient(ellipse at 12% 10%, #c7d9f066, transparent 48%),
    radial-gradient(ellipse at 92% 95%, #dcd4e54f, transparent 40%),
    repeating-linear-gradient(135deg, transparent 0 95px, #34598708 95px 96px), #edf1f6;
}
.sidebar { background-image: radial-gradient(ellipse at 0% 0%, #365d8733, transparent 65%), linear-gradient(175deg, #182e4c, #102039 75%); }
.tb-title { font: 800 28px/1.3 var(--heading); letter-spacing: -.8px; }
.tb-greeting { font-size: 13px; font-weight: 500; }
.page-intro h2 { font: 750 28px/1.35 var(--heading); letter-spacing: -.8px; }
.page-intro p, .section-help { font-size: 14px; font-weight: 500; line-height: 1.7; }
.eyebrow { font: 700 11px/1.6 var(--ff); letter-spacing: .15em; }
.sb-logo-txt { font: 800 19px var(--heading); }
.sb-label { font-size: 14px; font-weight: 600; }
.sb-sec { font: 650 11px var(--ff); letter-spacing: .12em; }
.sb-user-name { font-size: 14px; font-weight: 600; }
.sb-out, .install-link { font-size: 13px; font-weight: 600; }
.mpill { font-size: 12px; font-weight: 650; }
.ct { font: 750 16px/1.5 var(--heading); }
#flujoTitle + div { font-size: 11px !important; font-weight: 600; flex-wrap: wrap; justify-content: flex-end; }
.cp { font: 550 11px/1.5 var(--ff-mono); }
.card { box-shadow: 0 8px 26px #243e6010; }
.kpi-label { font-size: 13px; font-weight: 650; }
.kpi-value { font: 750 clamp(23px, 2vw, 31px)/1.3 var(--heading); letter-spacing: -1px; }
.kpi-sub { font-size: 12px; font-weight: 550; }
.sl { font-size: 13px; font-weight: 600; }
.sv { font: 750 21px/1.5 var(--heading); }
.sn { font-size: 12px; font-weight: 600; }
/* Long real category names and large totals must not widen the workspace. */
.src-c { flex: 1 1 140px; min-width: min(100%, 140px); }
.tinf, .t3inf { min-width: 0; }
.cr > *, .br2 > * { min-width: 0; }
.sl, .tcat, .t3n, .sv, .kpi-value, .report-stats strong { overflow-wrap: anywhere; }
.phd > * { min-width: 0; overflow-wrap: anywhere; }
.ln, .lv { font-size: 13px; font-weight: 600; }
.lp { font-size: 12px; }
.dcn { font: 750 18px var(--heading); }
.dcs { font-size: 12px; }
.fi label { font-size: 13px; font-weight: 650; color: #314967; }
.fi input, .fi select, .fi textarea, .cir input { font-size: 15px; font-weight: 500; min-height: 48px; }
.fi input::placeholder, .fi textarea::placeholder { font-weight: 400; }
.add-btn, .btn-primary, .btn-pdf, .bp, .btn-sec, .bg2, .fb-filter-btn, .btn-danger, .bd { font-size: 14px; font-weight: 650; }
.text-link { font-size: 13px; font-weight: 650; }
.tbl th, .pres-table th { font-size: 12px; font-weight: 700; }
.tbl td { font-size: 13px; line-height: 1.6; }
.tbl td:first-child { font-size: 11px !important; }
.tbl-dd-item { font-size: 13px; font-weight: 600; }
.fb-search input { font-size: 14px; }
.tnm { font-size: 14px; font-weight: 650; }
.tcat, .tcod { font-size: 12px; font-weight: 500; }
.tamt { font-weight: 700; }
.mob-nm { font-size: 14px; font-weight: 650; }
.mob-meta, .mdr { font-size: 12px; }
.mob-amt { font-size: 14px; font-weight: 750; }
.mob-lbl { font-size: 12px; font-weight: 700; }
.mob-act { font-size: 13px; font-weight: 650; }
.utag { font-size: 10px; font-weight: 700; }
.cat-item { font-size: 14px; }
.pres-input { font-size: 13px; font-weight: 600; }
.pres-nm { font-size: 13px; font-weight: 650; }
.cfg-title { font-size: 12px; font-weight: 700; }
.cfg-label { font-size: 14px; font-weight: 650; }
.cfg-desc { font-size: 13px; line-height: 1.7; }
.period-cleanup h3 { font: 750 19px/1.5 var(--heading); }
.period-cleanup p, .period-confirm { font-size: 13px; font-weight: 500; }
.period-cleanup .period-note { font-size: 12px; }
.mt { font: 750 23px/1.35 var(--heading); }
.ms2 { font-size: 14px; line-height: 1.75; }
#toast .toast-title { font-size: 14px; font-weight: 750; }
#toast #tMsg { font-size: 13px; font-weight: 500; }
.login-story { max-width: 580px; }
.login-story h1 { font: 750 clamp(34px, 4vw, 58px)/1.16 var(--heading); letter-spacing: -2px; }
.login-story p { font-size: 17px; font-weight: 500; }
.l-title { font: 800 25px/1.35 var(--heading); }
.l-sub, .login-private { font-size: 14px; }
.login-foot { font: 600 12px var(--ff); letter-spacing: .06em; }
/* Screen-only report. The PDF renderer owns its own colors/fonts/layout. */
.report-paper {
  background: #fbfdff;
  color: #182a44;
  border: 1px solid #b9cce3;
  border-top: 4px solid #2c63a5;
  border-radius: 16px;
  box-shadow: 0 10px 30px #22426312;
}
.report-paper .eyebrow { color: #285c9b; font: 700 11px var(--ff); letter-spacing: .13em; }
.report-paper h2 { font: 800 29px/1.35 var(--heading); color: #182a44; letter-spacing: -.8px; }
.report-paper .report-period { color: #4f6682; font-size: 14px; font-weight: 500; }
.report-paper .report-stats { border-color: #cbdaec; gap: 12px; }
.report-paper .report-stats > div { background: #edf3fb; border: 1px solid #d0def0; border-radius: 12px; padding: 14px 8px; }
.report-paper .report-stats span { color: #345575; font: 700 12px var(--ff); }
.report-paper .report-stats strong { color: #173e6a; font: 750 23px/1.4 var(--heading); }
.report-paper .report-stats > div { border-top: 3px solid #2c63a5; }
.report-paper .report-stats > div:first-child { border-top-color: #087452; }
.report-paper .report-stats > div:first-child strong { color: #087452; }
.report-paper .report-stats > div:nth-child(2) { border-top-color: #b33156; }
.report-paper .report-stats > div:nth-child(2) strong { color: #b33156; }
.report-paper .tx { border-color: #d4dfec; }
.report-paper .tnm { color: #203a59; font-size: 14px; font-weight: 650; }
.report-paper .tcat { color: #506981; font-size: 12px; }
.report-paper .tamt.i { color: #087452; }
.report-paper .tamt.e { color: #b33156; }
.report-paper .tav { background: #e3ecfa; color: #2b5992; }
.report-paper .report-note { color: #506981; font-size: 12px; font-weight: 500; }
@media(max-width:760px) {
  .src-c { flex-basis: 120px; min-width: min(100%, 120px); }
  .tb-title { font-size: 24px; }
  .page-intro h2 { font-size: 24px; }
  .page-intro p { font-size: 14px; }
  .kpi { gap: 8px; }
  .kpi-value { font-size: clamp(20px, 5.6vw, 25px); letter-spacing: -.8px; }
  .kpi-label { font-size: 12px; }
  .kpi-sub { font-size: 12px; }
  .kpi-ico { width: 28px; height: 28px; }
  .fi input, .fi select, .fi textarea { font-size: 16px; }
  .tab-l { font-size: 10px; font-weight: 650; }
  .mob-amt { font-size: 13px; }
  .report-paper { padding: 20px 14px; }
  .report-paper h2 { font-size: 25px; }
  .report-paper .report-period { font-size: 13px; }
  .report-paper .report-stats { gap: 7px; }
  .report-paper .report-stats > div { padding: 12px 4px; }
  .report-paper .report-stats span { font-size: 11px; }
  .report-paper .report-stats strong { font-size: clamp(14px, 4vw, 18px); letter-spacing: -.5px; }
  .report-paper .tamt { font-size: 13px; }
}
@media(max-width:360px) {
  .kpi-value { font-size: 18px; }
}
