.app{padding-block:28px 64px;display:flex;flex-direction:column;gap:18px}
.app-nav{display:flex;gap:20px}.app-nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:15px}
.who{color:var(--muted);font-size:13.5px}
@media (max-width:900px){.app-nav{display:flex;position:static;flex-direction:row;padding:0;border:0;background:none;gap:14px}.app-nav a{padding:0;border:0}.who{display:none}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}
.card h2{font-size:20px;margin-bottom:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.card h2 small{font:400 13px var(--f-body);color:var(--muted)}
.grid2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:860px){.grid2{grid-template-columns:minmax(0,1fr)}}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media (max-width:520px){.kpis{grid-template-columns:1fr}}
.kpi{background:var(--surface-2);border-radius:12px;padding:12px}.kpi .lbl{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600}
.kpi .val{font:800 24px var(--f-display);font-variant-numeric:tabular-nums}.kpi .sub{font:500 12.5px var(--f-mono);color:var(--muted)}
.kpi.pos .val{color:var(--good)}.kpi.neg .val{color:#b23a3a}
.tablewrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.tbl .num{text-align:right;font-family:var(--f-mono);white-space:nowrap}.tbl .in{color:var(--good)}
.tbl tr.rowlink{cursor:pointer}.tbl tr.rowlink:hover{background:var(--surface-2)}.nowrap{white-space:nowrap}
.src{font-size:12px;color:var(--muted)}.empty{color:var(--muted)}
.pill{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.pill.paid{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.pill.owed{background:var(--accent-soft);color:var(--accent)}.pill.late{background:#f6dcdc;color:#b23a3a}
.flash{background:var(--accent-soft);border-radius:12px;padding:12px 14px;font-weight:500}
.form{display:flex;flex-direction:column;gap:12px;max-width:420px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.row .field{flex:1;min-width:180px}
.flag{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--surface-2);border-radius:10px;padding:9px 11px;font-size:14px;margin-bottom:6px}
.flag small{display:block;color:var(--muted)}
.vat div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed var(--line)}.vat div span:last-child{font-family:var(--f-mono)}.vat .big{font-weight:700;border:0}
.code{font:600 22px var(--f-mono);letter-spacing:.08em;background:var(--surface-2);border-radius:10px;padding:10px 14px;display:inline-block}
.btn-sm{padding:7px 12px;font-size:14px}
/* simulator */
.sim{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:18px}@media (max-width:860px){.sim{grid-template-columns:1fr}}
.chat{background:var(--chat);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:380px;max-height:60vh;overflow:auto}
.b{max-width:85%;padding:8px 11px;border-radius:14px;white-space:pre-wrap;font-size:14px;word-wrap:break-word}.b.in{align-self:flex-end;background:var(--me)}.b.out{align-self:flex-start;background:var(--surface)}
.b form{display:inline}.b .btn{margin:6px 6px 0 0}
/* invoice */
.invoice{max-width:720px;background:#fff;color:#111;border:1px solid var(--line);border-radius:12px;padding:32px}
.invoice h1{font-size:30px}.invoice table{width:100%;border-collapse:collapse;margin-top:18px}.invoice td,.invoice th{padding:8px;border-bottom:1px solid #ddd;text-align:left}.invoice .num{text-align:right}
@media print{.site-header,.noprint{display:none!important}body{background:#fff}.invoice{border:0}}