html,body,#root{min-height:100%}:root{--bg:#f4f6f8;--card:#fff;--ink:#1a2332;--muted:#5b6777;--line:#d8dee6;--primary:#0b6e4f;--primary-ink:#fff;--accent:#1b4f72;--warn-bg:#fff6e5;--warn-ink:#8a5a00;--err-bg:#fdecea;--err-ink:#8a1f11;--debit:#b42318;--credit:#027a48;--radius:12px;--shadow:0 8px 24px #1a23320f;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.brand{align-items:center;gap:.85rem;display:flex}.logo-mark{background:var(--primary);color:#fff;letter-spacing:.04em;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:.85rem;font-weight:700;display:inline-flex}.tagline{color:var(--muted);font-size:.85rem}.steps{color:var(--muted);gap:.75rem;font-size:.9rem;display:flex}.steps .active{color:var(--primary);font-weight:600}.main{flex:1;width:min(1200px,100%);margin:0 auto;padding:1.5rem}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--line);padding:1rem;font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.1rem 1.25rem}.card.soft{box-shadow:none;background:#f8fafb}.card h2,.card h3{margin:0 0 .85rem;font-size:1.05rem}.dropzone{text-align:center;cursor:pointer;background:linear-gradient(#f7fbf9,#eef5f1);border:2px dashed #9bb0a5;border-radius:16px;margin-bottom:1rem;padding:3rem 1.5rem;transition:border-color .15s,background .15s}.dropzone.over,.dropzone:hover{border-color:var(--primary);background:#e7f4ee}.drop-icon{margin-bottom:.5rem;font-size:2rem}.actions-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0 1rem;display:flex}.row-between{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.55rem 1rem}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{border-color:var(--line);color:var(--ink);background:#fff}.btn.danger{color:var(--debit)}.btn.linkish{background:0 0;border:none;padding:.25rem .5rem;font-size:1.25rem;line-height:1}.banner{border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem;font-size:.95rem}.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}.banner.error{background:var(--err-bg);color:var(--err-ink)}.muted{color:var(--muted)}.badge{color:var(--accent);background:#e8eef5;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;display:inline-block}.grid-header{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem 1rem;display:grid}label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}input{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:6px;min-width:0;padding:.4rem .55rem}.table-wrap{overflow-x:auto}table.movements{border-collapse:collapse;width:100%;font-size:.9rem}table.movements th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:.4rem;font-size:.75rem}table.movements td{vertical-align:middle;border-bottom:1px solid #eef1f4;padding:.3rem}table.movements input{width:100%}table.movements input.narrow{width:4.5rem}table.movements input.sym{width:6.5rem}table.movements input.amount{text-align:right;width:7.5rem}tr.debit input.amount{color:var(--debit)}tr.credit input.amount{color:var(--credit)}.debit-text{color:var(--debit)}.credit-text{color:var(--credit)}.summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.summary span{margin-bottom:.2rem;font-size:.8rem;display:block}.privacy p{color:var(--muted);margin:0;line-height:1.45}@media (width<=720px){.topbar{flex-direction:column;align-items:flex-start}.steps{justify-content:space-between;width:100%}}
