@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@600;700;800;900&display=swap");:root{--navy:#091C45;--primary:#1A3F8F;--primary-mid:#1E4DB7;--primary-light:#2563EB;--sky:#0EA5E9;--sky-dark:#0284C7;--sky-light:#38BDF8;--blue-50:#F0F9FF;--blue-100:#E0F2FE;--bg:#F4F7FB;--surface:#FFFFFF;--surface-2:#F1F5F9;--border:#E2E8F0;--text:#0F172A;--muted:#64748B;--accent:#0EA5E9;--accent-2:#0284C7;--green:#16A34A;--green-bg:#ECFDF5;--amber:#D97706;--amber-bg:#FFFBEB;--red:#DC2626;--red-bg:#FEF2F2;--radius:12px;--shadow-sm:0 1px 3px rgba(9,28,69,0.06);--shadow-md:0 4px 16px rgba(9,28,69,0.08);--font-heading:"Montserrat",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1{font-size:24px;font-weight:800;margin:0 0 4px;letter-spacing:-.02em}h1,h2{font-family:var(--font-heading);color:var(--navy)}h2{font-size:17px;font-weight:700;margin:0 0 14px}h3{font-size:15px;font-weight:600;margin:0;color:var(--navy)}.muted{color:var(--muted)}.small{font-size:13px}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--navy);border-right:1px solid var(--navy);padding:22px 14px;display:flex;flex-direction:column;gap:3px}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 22px;font-family:var(--font-heading);font-weight:800;font-size:18px;letter-spacing:.5px;color:#fff}.brand .dot{width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,var(--sky-light),var(--sky));display:inline-block}.navlink{padding:10px 12px;border-radius:9px;color:#B6C2DD;font-weight:500;display:flex;gap:9px;transition:all .18s ease}.navlink:hover{background:rgba(255,255,255,.07);color:#fff}.navlink.active{background:var(--sky);color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.35)}.main{padding:30px 36px;max-width:1280px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px;gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm)}.kpi .label{color:var(--muted);font-size:12.5px;font-weight:500;text-transform:uppercase;letter-spacing:.4px}.kpi .value{font-family:var(--font-heading);font-size:27px;font-weight:800;margin-top:6px;color:var(--navy);letter-spacing:-.02em}.kpi .sub{color:var(--muted);font-size:12.5px;margin-top:4px}.kpi .sub.pos{color:var(--green);font-weight:600}.kpi .sub.neg{color:var(--red);font-weight:600}.kpi.accent{background:linear-gradient(135deg,var(--navy),var(--primary));border:none}.kpi.accent .label{color:#B6C2DD}.kpi.accent .value{color:#fff}.kpi.accent .sub{color:#9FB3D6}.kpi.warn{background:var(--red-bg);border-color:#FECACA}.kpi.warn .value{color:var(--red)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--blue-50)}.right{text-align:right}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border);color:var(--muted);background:var(--surface-2)}.badge.paid{color:var(--green);border-color:#A7F3D0;background:var(--green-bg)}.badge.sent{color:var(--sky-dark);border-color:var(--blue-100);background:var(--blue-50)}.badge.partially_paid{color:var(--amber);border-color:#FDE68A;background:var(--amber-bg)}.badge.overdue{color:var(--red);border-color:#FECACA;background:var(--red-bg)}.badge.draft{color:var(--muted)}.badge.historical{color:var(--primary);border-color:var(--blue-100);background:var(--blue-50)}.badge.accepted{color:var(--green);border-color:#A7F3D0;background:var(--green-bg)}.badge.declined{color:var(--red);border-color:#FECACA;background:var(--red-bg)}.badge.cancelled{color:var(--muted);text-decoration:line-through}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--navy);font-weight:600;cursor:pointer;font-size:14px;font-family:var(--font-body);transition:all .18s ease}.btn:hover{border-color:var(--sky);color:var(--sky-dark)}.btn.primary{background:var(--sky);border-color:var(--sky);color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}.btn.primary:hover{background:var(--sky-dark);border-color:var(--sky-dark);color:#fff}.btn.sm{padding:7px 12px;font-size:13px}input,select,textarea{width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px rgba(14,165,233,.15)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:500}.field{margin-bottom:14px}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--navy) 0,var(--primary) 100%)}.login{width:100%;max-width:380px}.err{color:var(--red)}.err,.ok{font-size:13px;margin-top:8px}.ok,.pos{color:var(--green)}.neg{color:var(--red)}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:16px;gap:16px;margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:baseline;margin:26px 0 12px}.bar-track{background:var(--surface-2);border-radius:6px;height:8px;overflow:hidden}.bar-fill{height:100%;background:var(--sky);border-radius:6px}@media (max-width:900px){.app,.grid-2{grid-template-columns:1fr}}