/* Portal de asistencia y portal de fiscalización (Res. Ex. N° 38 de la DT). */
:root {
  --primary: #0F6D63;
  --primary-dark: #0B4F48;
  --primary-soft: #E6F1EE;
  --background: #F5F3EE;
  --surface: #ffffff;
  --text-primary: #142420;
  --text-secondary: #52625C;
  --border: #E4E0D6;
  --error: #B42318;
  --error-bg: #FEF3F2;
  --warn-bg: #FDF4E3;
  --ok-bg: #ECFDF3;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: var(--background);
  color: var(--text-primary);
  font-size: 15px;
}
.top {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 12px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: center;
  justify-content: space-between;
}
.top .brand { color: var(--primary); font-weight: 700; font-size: 17px; }
.top .version { color: var(--text-secondary); font-size: 13px; }
.page { max-width: 1180px; margin: 0 auto; padding: 18px 16px 48px; }
.narrow { max-width: 480px; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; margin-bottom: 14px; }
h1 { font-size: 21px; margin: 0 0 8px; }
h2 { font-size: 17px; margin: 0 0 10px; }
h3 { font-size: 15px; margin: 14px 0 8px; }
p { line-height: 1.45; margin: 0 0 10px; }
.muted { color: var(--text-secondary); font-size: 14px; }
label { display: block; font-size: 14px; font-weight: 600; margin: 10px 0 5px; }
input, select, textarea {
  width: 100%;
  font: inherit;
  font-size: 15px;
  padding: 9px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text-primary);
}
textarea { min-height: 90px; }
input[type="checkbox"], input[type="radio"] { width: auto; margin: 0 6px 0 0; }
.check { display: flex; align-items: center; font-weight: 400; margin: 4px 0; }
button {
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 9px;
  padding: 9px 14px;
  border: 1px solid var(--primary);
  background: var(--surface);
  color: var(--primary);
}
button.primary { background: var(--primary); color: #fff; }
button.danger { border-color: var(--error); color: var(--error); }
button:disabled { opacity: .55; cursor: default; }
.row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 14px; }
.alert { border-radius: 10px; padding: 10px 12px; margin: 10px 0; font-size: 14px; }
.alert.error { background: var(--error-bg); color: var(--error); }
.alert.warn { background: var(--warn-bg); }
.alert.ok { background: var(--ok-bg); }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.tabs button { font-weight: 600; }
.tabs button.active { background: var(--primary); color: #fff; }
table.list { border-collapse: collapse; width: 100%; font-size: 14px; }
table.list th, table.list td { border-bottom: 1px solid var(--border); text-align: left; padding: 7px 6px; vertical-align: top; }
table.list th { color: var(--text-secondary); font-weight: 600; }
.item { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin: 0 0 10px; }
.item p { margin: 6px 0; }
.pill { display: inline-block; border-radius: 999px; padding: 2px 8px; font-size: 12.5px; background: var(--primary-soft); color: var(--primary-dark); }
.pill.warn { background: var(--warn-bg); color: #8a5a00; }
.pill.bad { background: var(--error-bg); color: var(--error); }
.scroll { overflow-x: auto; }

/* Reportes de la DT: Arial 8 (art. 28 e), todas las columnas en una pantalla. */
.filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px 14px; }
.filters fieldset { border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; margin: 0; min-width: 0; }
.filters legend { font-weight: 700; font-size: 13.5px; padding: 0 4px; }
.filters .box { max-height: 170px; overflow-y: auto; }
.report-menu { display: grid; gap: 8px; }
.report-menu button { text-align: left; }
.report { font-family: Arial, Helvetica, sans-serif; font-size: 8pt; }
.report h2 { font-size: 11pt; margin: 0 0 4px; }
.report .meta { margin: 0; }
.report .section { margin: 12px 0 0; page-break-inside: auto; }
.report .heading { font-weight: 700; margin: 0; }
.report table { border-collapse: collapse; width: 100%; table-layout: auto; margin: 4px 0 0; }
.report th, .report td { border: 1px solid #777; padding: 2px 3px; vertical-align: top; font-size: 8pt; }
.report th { background: #e6e6e6; }
.report tr.total td { font-weight: 700; background: #f2f2f2; }
.report .note { margin: 4px 0 0; font-style: italic; }
.report .footer { margin: 12px 0 0; color: #333; }
.report .empty { font-weight: 700; font-size: 10pt; margin: 14px 0; }

@media print {
  @page { size: landscape; margin: 10mm; }
  body { background: #fff; }
  .top, .no-print, .tabs { display: none !important; }
  .page { max-width: none; padding: 0; }
  .card { border: 0; padding: 0; }
}
