/* Report tables and figures. Filament's own CSS is prebuilt, so pages with hand-written markup
   use these classes instead of Tailwind utilities. Dark mode follows Filament's .dark class. */

.fr-card {
    background: #fff;
    border: 1px solid rgb(0 0 0 / 0.08);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    overflow-x: auto;
}
.dark .fr-card { background: rgb(24 24 27); border-color: rgb(255 255 255 / 0.1); }

.fr-card + .fr-card, .fr-stack > * + * { margin-top: 1rem; }

.fr-card h3 { font-size: 1rem; font-weight: 700; margin: 0 0 0.75rem; }

.fr-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.fr-table th, .fr-table td { padding: 0.45rem 0.6rem; border-bottom: 1px solid rgb(0 0 0 / 0.06); text-align: start; vertical-align: top; }
.dark .fr-table th, .dark .fr-table td { border-color: rgb(255 255 255 / 0.08); }
.fr-table thead th { font-weight: 600; color: rgb(82 82 91); background: rgb(250 250 250); position: sticky; top: 0; }
.dark .fr-table thead th { color: rgb(212 212 216); background: rgb(39 39 42); }
.fr-table td.num, .fr-table th.num { text-align: end; direction: ltr; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fr-table tr.fr-total td { font-weight: 700; border-top: 2px solid rgb(0 0 0 / 0.2); }
.dark .fr-table tr.fr-total td { border-top-color: rgb(255 255 255 / 0.25); }
.fr-table tr.fr-sub td { font-weight: 600; background: rgb(0 0 0 / 0.02); }
.dark .fr-table tr.fr-sub td { background: rgb(255 255 255 / 0.03); }
.fr-table tr.fr-indent td:first-child { padding-inline-start: 1.75rem; }
.fr-table a { color: rgb(13 148 136); text-decoration: none; }
.fr-table a:hover { text-decoration: underline; }

.fr-neg { color: rgb(220 38 38); }
.fr-pos { color: rgb(22 163 74); }
.fr-muted { color: rgb(113 113 122); font-size: 0.8rem; }

.fr-ok, .fr-bad {
    display: inline-block; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600;
}
.fr-ok { background: rgb(220 252 231); color: rgb(21 128 61); }
.fr-bad { background: rgb(254 226 226); color: rgb(185 28 28); }
.dark .fr-ok { background: rgb(20 83 45 / 0.5); color: rgb(134 239 172); }
.dark .fr-bad { background: rgb(127 29 29 / 0.5); color: rgb(252 165 165); }

.fr-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.fr-stat { border: 1px solid rgb(0 0 0 / 0.08); border-radius: 0.75rem; padding: 0.9rem 1rem; background: #fff; }
.dark .fr-stat { background: rgb(24 24 27); border-color: rgb(255 255 255 / 0.1); }
.fr-stat .label { font-size: 0.8rem; color: rgb(113 113 122); }
.fr-stat .value { font-size: 1.35rem; font-weight: 700; direction: ltr; text-align: end; font-variant-numeric: tabular-nums; }

.fr-toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: flex-end; margin-bottom: 0.75rem; }

/* Print: just the report. */
@media print {
    .fi-sidebar, .fi-topbar, .fi-header-actions, .fr-toolbar, .fi-page-header-main-ctn .fi-ac, form, .fi-no-print { display: none !important; }
    .fi-main { padding: 0 !important; }
    .fr-card { border: none; padding: 0; }
    body { background: #fff !important; }
}
