body { font-family: 'Cairo', system-ui, sans-serif; }

.num { direction: ltr; unicode-bidi: embed; display: inline-block; font-variant-numeric: tabular-nums; }

.card { background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1rem; }

.fld {
    width: 100%; border: 1px solid #cbd5e1; border-radius: .5rem;
    padding: .5rem .75rem; background: #fff; font: inherit;
}
.fld:focus { outline: 2px solid #38bdf8; border-color: #38bdf8; }

.lbl { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .25rem; }

.btn {
    display: inline-block; border-radius: .5rem; padding: .5rem 1rem; font-weight: 600;
    font-size: .9rem; cursor: pointer; border: 1px solid transparent; text-align: center;
}
.btn-p { background: #0284c7; color: #fff; }
.btn-p:hover { background: #0369a1; }
.btn-d { background: #dc2626; color: #fff; }
.btn-d:hover { background: #b91c1c; }
.btn-g { background: #fff; border-color: #cbd5e1; color: #334155; }
.btn-g:hover { background: #f1f5f9; }
.btn-sm { padding: .25rem .625rem; font-size: .8rem; }

.badge { display: inline-block; padding: .125rem .5rem; border-radius: 9999px; font-size: .75rem; font-weight: 600; }

.tbl { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tbl th { background: #f1f5f9; text-align: right; padding: .5rem .75rem; white-space: nowrap; }
.tbl td { padding: .5rem .75rem; border-top: 1px solid #e2e8f0; vertical-align: top; }
.tbl tfoot td { font-weight: 700; background: #f8fafc; }

.modal-back {
    position: fixed; inset: 0; background: rgba(15, 23, 42, .5); z-index: 50;
    align-items: center; justify-content: center; padding: 1rem;
}
.modal-box {
    background: #fff; border-radius: .75rem; width: 100%; max-width: 40rem;
    max-height: 90vh; overflow-y: auto; padding: 1.25rem;
}

/* ---------- Print ---------- */
@media print {
    .no-print { display: none !important; }
    body { background: #fff !important; }
    .card { border: none; padding: 0; }
    .tbl th { background: #eee !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    @page { size: A4; margin: 15mm; }
}

.sign-box { border-top: 1px solid #000; margin-top: 3.5rem; padding-top: .35rem; text-align: center; font-size: .9rem; }
