:root{--fg: #0f172a;--muted: #64748b;--line: #e2e8f0;--bg: #f8fafc;--card: #fff;--primary: #2563eb;--danger: #dc2626;--warn-bg: #fef9c3;--warn-line: #eab308;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{padding:.55rem .9rem;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.danger{color:var(--danger)}button.link{border:0;background:none;padding:.25rem;color:var(--primary)}input,select,textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;background:var(--card)}.app{max-width:1200px;margin:0 auto;padding:0 1rem calc(2rem + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:calc(.75rem + env(safe-area-inset-top)) 0 .75rem;background:var(--bg)}button.link.brand{font-size:1.25rem;font-weight:700;color:var(--fg)}.stack{display:grid;gap:1rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.muted{color:var(--muted)}.notice{margin:0;padding:.6rem .8rem;border-radius:8px;background:#eff6ff}.error{margin:0;color:var(--danger)}.filters{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.filters input[type=search]{grid-column:1 / -1}.filters label{display:grid;gap:.2rem;font-size:.85rem;color:var(--muted)}.totals{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;padding:.75rem;border-radius:8px;background:var(--card);border:1px solid var(--line)}.totals button{margin-left:auto}.invoice-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.invoice-list button{width:100%;display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;text-align:left;padding:.75rem}.supplier{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.amount{text-align:right;font-variant-numeric:tabular-nums}.badge{justify-self:end;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:var(--line)}.badge.needs_review{background:var(--warn-bg)}.badge.confirmed{background:#dcfce7}.badge.failed{background:#fee2e2}.review{display:grid;gap:1rem}.preview{min-height:12rem;border:1px solid var(--line);border-radius:8px;background:var(--card);overflow:hidden}.preview img{display:block;width:100%;height:auto}.preview object{display:block;width:100%;height:70vh}.field{display:grid;gap:.25rem}.field>label{font-size:.85rem;color:var(--muted)}.uncertain input,.uncertain textarea,fieldset.uncertain{border-color:var(--warn-line);background:var(--warn-bg)}.uncertain em{color:#a16207;font-style:normal}fieldset{border:1px solid var(--line);border-radius:8px;display:grid;gap:.5rem}.vat-line{display:grid;grid-template-columns:4.5rem 1fr 1fr auto;gap:.4rem}.actions{display:flex;flex-wrap:wrap;gap:.5rem}@media(min-width:900px){.filters{grid-template-columns:2fr 1fr 1fr 1fr}.filters input[type=search]{grid-column:auto}.review{grid-template-columns:1.2fr 1fr;align-items:start}.preview{position:sticky;top:4rem}.preview object{height:calc(100vh - 6rem)}}.platform-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.platform-auth>form,.platform-auth>div{width:100%;padding:24px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
