[x-cloak] { display: none !important; }
body { font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif; }
.num { font-variant-numeric: tabular-nums; }
.card { background: #fff; border: 1px solid #e5e7eb; border-radius: 0.75rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.btn { display: inline-flex; align-items: center; gap: .375rem; border-radius: .5rem; padding: .5rem .875rem; font-size: .875rem; font-weight: 500; border: 1px solid transparent; cursor: pointer; white-space: nowrap; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary { background: #1e3a5f; color: #fff; }
.btn-primary:hover:not(:disabled) { background: #16304f; }
.btn-secondary { background: #fff; color: #1f2937; border-color: #d1d5db; }
.btn-secondary:hover:not(:disabled) { background: #f9fafb; }
.btn-success { background: #059669; color: #fff; }
.btn-danger { background: #dc2626; color: #fff; }
.btn-warn { background: #d97706; color: #fff; }
.btn-sm { padding: .25rem .625rem; font-size: .8rem; }
.input, select.input, textarea.input { width: 100%; border: 1px solid #d1d5db; border-radius: .5rem; padding: .5rem .75rem; font-size: .875rem; background: #fff; }
.input:focus { outline: 2px solid #93c5fd; outline-offset: 0; border-color: #60a5fa; }
.label { display: block; font-size: .75rem; font-weight: 600; color: #475569; text-transform: uppercase; letter-spacing: .03em; margin-bottom: .25rem; }
.tbl { width: 100%; border-collapse: collapse; font-size: .875rem; }
.tbl th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; padding: .5rem .625rem; border-bottom: 1px solid #e5e7eb; background: #f8fafc; position: sticky; top: 0; }
.tbl td { padding: .5rem .625rem; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.tbl tr:hover td { background: #f8fafc; }
.tbl .r { text-align: right; }
.kpi { font-size: 1.5rem; font-weight: 600; letter-spacing: -.01em; }
.modal-bg { position: fixed; inset: 0; background: rgba(15,23,42,.5); z-index: 40; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.modal { background: #fff; border-radius: .75rem; width: 100%; max-width: 36rem; max-height: 90vh; overflow: auto; padding: 1.25rem; }
.cf-table td.header { font-weight: 600; background: #f3f4f6; }
.cf-table td.total { font-weight: 700; background: #e8eef6; }
.cf-table td.subtotal { font-weight: 600; background: #f8fafc; }
.cf-table td.account { color: #4b5563; font-style: italic; }
.cf-table td.today { background: #fef9c3; }
.neg { color: #b91c1c; }
