*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:#f5f5f5;color:#222}nav{display:flex;gap:1rem;padding:1rem 1.5rem;background:#1f2937}nav button{background:none;border:none;color:#cbd5e1;font-size:1rem;cursor:pointer;padding:.25rem 0}nav button.active{color:#fff;font-weight:600;border-bottom:2px solid #38bdf8}main{max-width:960px;margin:0 auto;padding:1.5rem}h1,h2{margin-top:0}table{width:100%;border-collapse:collapse;margin-bottom:1rem;background:#fff}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #e5e7eb}th{background:#f1f5f9;font-size:.85rem;text-transform:uppercase;color:#475569}button{cursor:pointer;border:1px solid #cbd5e1;background:#fff;padding:.4rem .9rem;border-radius:4px;font-size:.9rem}button.primary{background:#2563eb;color:#fff;border-color:#2563eb}button.primary:disabled{background:#93c5fd;border-color:#93c5fd;cursor:not-allowed}button.danger{color:#b91c1c;border-color:#fca5a5}input,select{padding:.35rem .5rem;border:1px solid #cbd5e1;border-radius:4px;font-size:.9rem}.dropzone{border:2px dashed #94a3b8;border-radius:8px;padding:2.5rem;text-align:center;color:#64748b;background:#fff;cursor:pointer;margin-bottom:1.5rem}.dropzone.dragging{border-color:#2563eb;background:#eff6ff;color:#2563eb}.card{background:#fff;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem;box-shadow:0 1px 2px #0000000d}.error-text{color:#b91c1c;font-size:.85rem}.warning-text{color:#b45309;font-size:.85rem}.muted{color:#64748b;font-size:.85rem}.form-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.5rem}.total-line{font-size:1.1rem;font-weight:600;margin-top:1rem}
