/* Freddo CRM theme: tokens from the brand book (Nocturne + Freddo extras). Dark by default. */
:root {
  --color-bg:#161826; --color-surface:#232532; --color-text:#e9e9ed; --color-accent:#9184d9;
  --color-accent-300:#d2cefd; --color-accent-400:#b5abfc; --color-accent-600:#796cbf; --color-accent-800:#423a6a;
  --color-neutral-400:#b2b6ca; --color-neutral-600:#75798c; --color-neutral-800:#3f424d; --color-neutral-900:#292b31;
  --fr-ink:#f3f5fe; --fr-muted:#a3a7bb; --fr-edge:#3f424d; --fr-chip:#2c2f3d; --fr-crema:#dd9b5f; --fr-accent-hover:rgba(145,132,217,.12);
  --st-ready:#70c696; --st-ready-tint:#193124; --st-insuf:#caaf59; --st-insuf-tint:#322b13;
  --st-block:#e893b5; --st-block-tint:#3b232c; --st-stale:#a3a7bb; --st-stale-tint:#2a2c38;
  --font-body:"Inter",system-ui,sans-serif; --radius-sm:4px; --radius-md:8px; --radius-lg:14px;
  --shadow-sm:0 0 0 1px #3f424d; --shadow-md:0 0 0 1px #595d6c,0 6px 18px rgba(0,0,0,.55);
}
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) {
  --color-bg:#f7f7fb; --color-surface:#ffffff; --color-text:#1b1c24; --color-accent:#5d5294;
  --fr-ink:#12131b; --fr-muted:#61636c; --fr-edge:#d9dae0; --fr-chip:#ececf1; --fr-crema:#985521; --fr-accent-hover:rgba(93,82,148,.08);
  --st-ready:#14764a; --st-ready-tint:#e0f7e9; --st-insuf:#7a6000; --st-insuf-tint:#f7f0da;
  --st-block:#924666; --st-block-tint:#ffe8f1; --st-stale:#61636c; --st-stale-tint:#ececf1;
  --shadow-sm:0 0 0 1px #d9dae0; --shadow-md:0 0 0 1px #d9dae0,0 6px 18px rgba(20,20,40,.10);
}}
html,body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.45}
a{color:var(--color-accent);text-decoration:none}
.fr-page{max-width:1080px;margin:0 auto;padding:0 16px 48px}
.fr-nav{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid transparent;
  border-image:linear-gradient(90deg,transparent,var(--fr-edge) 48px,var(--fr-edge) calc(100% - 48px),transparent) 1}
.fr-nav .brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.fr-nav .brand img{height:26px}
.fr-nav a.nav-link{color:var(--fr-muted);font-size:14px;padding:6px 8px;border-radius:var(--radius-sm)}
.fr-nav a.nav-link:hover{background:var(--fr-accent-hover);color:var(--fr-ink)}
.fr-nav a.nav-link.active{color:var(--fr-ink)}
.fr-h1{font-size:26px;font-weight:500;letter-spacing:-0.01em;margin:26px 0 4px}
.fr-sub{color:var(--fr-muted);margin:0 0 18px;font-size:14px}
.fr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.fr-card{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:0 0 0 1px var(--fr-edge)}
.fr-card header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--fr-muted)}
.fr-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 9px 3px 7px;border-radius:6px}
.fr-state.ready{background:var(--st-ready-tint);color:var(--st-ready)}
.fr-state.insufficient{background:var(--st-insuf-tint);color:var(--st-insuf)}
.fr-state.blocked{background:var(--st-block-tint);color:var(--st-block)}
.fr-state.stale{background:var(--st-stale-tint);color:var(--st-stale)}
.fr-state .dot{width:10px;height:10px;border-radius:50%;background:currentColor;display:inline-block}
.fr-rank{margin-left:auto}
.fr-sentence{margin:0;font-size:19px;line-height:1.4;font-weight:500;letter-spacing:-0.01em;color:var(--fr-ink)}
.fr-amount{margin:0;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 8px}
.fr-amount .netto{color:var(--fr-muted)}
.fr-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fr-muted)}
.fr-timeline{position:relative;height:28px}
.fr-timeline .rail{position:absolute;left:0;right:0;top:13px;height:2px;background:var(--fr-edge);border-radius:1px}
.fr-timeline .gap{position:absolute;top:13px;height:2px;right:0;background:repeating-linear-gradient(90deg,var(--fr-crema) 0 5px,transparent 5px 9px)}
.fr-timeline .dot{position:absolute;top:9px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 2px var(--color-surface)}
.fr-timeline .today{position:absolute;right:0;top:6px;width:2px;height:16px;background:var(--fr-crema);border-radius:1px}
.fr-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--fr-muted)}
.fr-axis .today{color:var(--fr-crema)}
.fr-chips{display:flex;flex-wrap:wrap;gap:6px}
.fr-chip{font-size:12px;padding:2px 7px;border-radius:5px;background:var(--fr-chip);color:var(--color-text)}
.fr-coverage{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;padding:9px 11px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--fr-edge)}
.fr-coverage .label{color:var(--fr-muted)}
.fr-meta{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px 14px;font-size:12.5px}
.fr-meta dt{color:var(--fr-muted)}.fr-meta dd{margin:0}.fr-meta dd.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px}
.fr-warnings{display:flex;flex-direction:column;gap:6px}
.fr-warning{display:flex;gap:8px;font-size:13px;line-height:1.45}.fr-warning .ico{color:var(--st-insuf)}
.fr-none{font-size:13px;color:var(--fr-muted)}
.fr-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
.fr-btn{font:inherit;font-size:14px;font-weight:500;min-height:40px;padding:0 14px;border-radius:8px;background:transparent;cursor:pointer;border:1px solid var(--fr-edge);color:var(--color-text)}
.fr-btn.primary{color:var(--color-accent);border-color:var(--color-accent)}
.fr-btn.ghost{color:var(--fr-muted);padding:0 10px}
.fr-btn:hover{background:var(--fr-accent-hover)}
.fr-btn:focus-visible,.nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.fr-empty{padding:28px;border-radius:var(--radius-lg);box-shadow:0 0 0 1px var(--fr-edge);color:var(--fr-muted)}
.fr-footer{margin-top:40px;font-size:12px;color:var(--fr-muted)}
.fr-banner{font-size:12px;color:var(--fr-muted);padding:8px 12px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--fr-edge);margin:14px 0}
.fr-hero{padding:56px 0 24px;max-width:640px}
.fr-hero img{height:44px;margin-bottom:22px}
.fr-hero h1{font-size:34px;font-weight:500;letter-spacing:-0.015em;margin:0 0 12px;color:var(--fr-ink)}
.fr-hero p{font-size:16px;color:var(--fr-muted);margin:0 0 20px}
.fr-cta{display:flex;gap:10px;flex-wrap:wrap}
.fr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:28px}
.fr-cols h3{font-size:14px;font-weight:500;margin:0 0 6px;color:var(--fr-ink)}.fr-cols p{margin:0;font-size:13.5px;color:var(--fr-muted)}
/* Frappe's own /login page gets the ground and the logo; the form stays upstream. */
body.frappe-login-page,.for-login{background:var(--color-bg)!important;color:var(--color-text)}
.for-login .page-card{background:var(--color-surface)!important;box-shadow:var(--shadow-md)!important;border:0!important;border-radius:var(--radius-lg)!important}
.for-login .page-card .form-control{background:var(--color-bg)!important;color:var(--color-text)!important;border-color:var(--fr-edge)!important}
.for-login .btn-primary{background:transparent!important;border:1px solid var(--color-accent)!important;color:var(--color-accent)!important}
@media (max-width:640px){.fr-h1{font-size:22px}.fr-sentence{font-size:17px}.fr-hero h1{font-size:26px}}
.fr-table{width:100%;border-collapse:collapse;font-size:13.5px}
.fr-table th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fr-muted);padding:8px 10px;border-bottom:1px solid var(--fr-edge)}
.fr-table td{padding:10px;border-bottom:1px solid var(--fr-edge);vertical-align:top}
.fr-table td.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
.fr-ladder{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap;font-size:12px}
.fr-ladder li{padding:3px 9px;border-radius:6px;box-shadow:inset 0 0 0 1px var(--fr-edge);color:var(--fr-muted)}
.fr-ladder li.done{color:var(--fr-ink);box-shadow:inset 0 0 0 1px var(--color-accent)}
.fr-ladder li.current{background:var(--fr-accent-hover);color:var(--color-accent)}
.fr-chip.off{opacity:.45;text-decoration:line-through}
