:root {
  --marca:#1b8a80; --marca-oscura:color-mix(in srgb,var(--marca) 77%,#073a35);
  --marca-clara:color-mix(in srgb,var(--marca) 12%,white); --acento:#f2795b;
  --fondo:#f4f7f8; --superficie:#fff; --superficie-2:#eef3f4;
  --tinta:#152a2e; --tinta-2:#4a6268; --tinta-3:#83999e;
  --linea:#dbe6e7; --linea-2:#c7d6d8;
  --sombra:0 1px 2px rgba(16,44,48,.06),0 8px 24px rgba(16,44,48,.08);
  --fuente-titular:system-ui,-apple-system,'Segoe UI',sans-serif;
  --fuente-cuerpo:system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--fuente-cuerpo);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.page-title{font-family:var(--fuente-titular);font-weight:700;font-size:1.6rem;color:var(--marca-oscura);margin-bottom:18px}
.app-shell{display:flex;min-height:100vh}
.rail{width:96px;flex:none;background:var(--marca);display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px 8px;min-height:100vh}
.app-shell:not(.auth-shell){height:100vh;height:100dvh;overflow:hidden}
.app-shell:not(.auth-shell) > .rail{position:fixed;inset:0 auto 0 0;height:100vh;height:100dvh;min-height:0;z-index:30}
.app-shell:not(.auth-shell) > .stage{background:var(--fondo-modulos,#f4f7f8);margin-left:96px;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain}
.rail-head{display:flex;align-items:center;justify-content:center;flex:none}
.rail-links{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.65) transparent}
.rail > .rail-item{flex:none}
.rail-close,.menu-toggle{display:none}
.rail-backdrop[hidden]{display:none}
.rail-logo{width:100%;height:52px;display:grid;place-items:center;font-size:24px;color:#fff;font-family:var(--fuente-titular);font-weight:700;margin-bottom:8px}
.rail-logo img{max-width:68px;max-height:48px;object-fit:contain;background:#fff;border-radius:9px;padding:3px}
.rail-item{border:0;background:transparent;color:rgba(255,255,255,.85);border-radius:12px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;font-weight:600;line-height:1.25;text-decoration:none;text-align:center;transition:.15s}
.rail-item span{font-size:22px;line-height:1}
.rail-item svg{display:block;width:24px;height:24px}
.rail-item:hover,.rail-item:focus-visible{background:rgba(255,255,255,.14);color:#fff}
.rail-item.on{background:#fff;color:var(--marca)}
.rail-spacer{flex:1;min-height:16px}
.stage{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--fondo)}
.stbar{display:flex;align-items:center;gap:12px;padding:11px 18px;background:var(--superficie);border-bottom:1px solid var(--linea);flex-wrap:wrap;min-height:65px}
.stbar-title{font-family:var(--fuente-titular);font-size:20px;font-weight:600;color:var(--marca-oscura);line-height:1.1}
.stbar-heading small{display:block;color:var(--tinta-3);font-size:11px}
.stbar-spacer{flex:1}
.stbody{flex:1;min-width:0}
.workspace{max-width:1250px}
.doc-chip{display:flex;align-items:center;gap:9px;background:var(--superficie-2);padding:5px 12px 5px 6px;border-radius:30px;font-weight:600;color:var(--tinta)}
.doc-chip .av{width:30px;height:30px;border-radius:50%;background:var(--acento);display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px}
.doc-chip small{font-weight:500;color:var(--tinta-2);font-size:11px;display:block;line-height:1}
.card{background:var(--superficie);border:1px solid var(--linea);border-radius:16px;box-shadow:var(--sombra)}
.card h2,.card h3{font-family:var(--fuente-titular);font-weight:700;color:var(--marca-oscura)}
.table{--bs-table-bg:transparent;--bs-table-color:var(--tinta);margin-bottom:0}
.table th{background:var(--superficie-2);color:var(--tinta-3);font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:12px 14px}
.table td{padding:11px 14px;vertical-align:middle;border-color:var(--linea)}
.table tr:hover td{background:var(--marca-clara)}
.workspace a:not(.btn){color:var(--marca-oscura);font-weight:700;text-decoration:none}
.workspace a:not(.btn):hover,.workspace a:not(.btn):focus-visible{color:var(--marca);text-decoration:underline}
.form-control,.form-select{border:1px solid var(--linea-2);border-radius:10px;padding:10px 12px;background-color:var(--superficie);color:var(--tinta)}
.form-control:focus,.form-select:focus{border-color:var(--marca);box-shadow:0 0 0 3px var(--marca-clara)}
label{font-size:12px;font-weight:700;color:var(--tinta-2)}
[data-live-filters] > div{min-width:0}
[data-live-filters] label{display:block;width:100%}
[data-live-filters] .form-control,[data-live-filters] .form-select{display:block;width:100%;min-width:0}
[data-live-filters] [data-reset-filters]{white-space:nowrap}
.btn{border-radius:11px;font-weight:700}
.btn-brand{background:var(--marca);border-color:var(--marca);color:#fff}
.btn-brand:hover,.btn-brand:focus-visible{background:var(--marca-oscura);border-color:var(--marca-oscura);color:#fff}
.auth-card{background:var(--superficie);border:1px solid var(--linea);border-radius:18px;padding:32px;box-shadow:var(--sombra);width:min(420px,94vw)}
.auth-icon{text-align:center;color:var(--marca);font-size:42px}
.auth-card label{display:block;width:100%}
.auth-main{flex:1;min-width:0;display:grid;place-items:center;padding:34px 18px}
.auth-shell .auth-card{width:min(460px,100%);padding:clamp(24px,4vw,36px)}
.auth-header-label{background:var(--marca-clara);color:var(--marca-oscura);border-radius:30px;padding:7px 13px;font-size:12px;font-weight:700}
.auth-brand{display:flex;align-items:center;gap:12px;color:var(--marca-oscura);font:700 21px var(--fuente-titular);margin-bottom:26px;overflow-wrap:anywhere}
.auth-brand img{max-width:58px;max-height:58px;object-fit:contain;border:1px solid var(--linea);border-radius:12px;padding:4px}
.auth-brand .auth-icon{display:grid;place-items:center;width:44px;height:44px;font-size:28px;color:#fff;background:var(--marca);border-radius:12px}
.auth-title{font:700 29px var(--fuente-titular);margin:0 0 4px;color:var(--tinta)}
.auth-description{color:var(--tinta-2);font-size:13px;line-height:1.5;margin-bottom:20px}
.auth-tabs{display:flex;gap:4px;padding:4px;background:var(--superficie-2);border-radius:12px;margin-bottom:24px}
.auth-tabs a{flex:1;text-align:center;padding:9px 7px;color:var(--tinta-2);border-radius:9px;font-size:12px;font-weight:700;text-decoration:none}
.auth-tabs a:hover,.auth-tabs a:focus-visible{color:var(--marca-oscura);background:var(--marca-clara)}
.auth-tabs a.on{background:var(--superficie);color:var(--marca-oscura);box-shadow:0 1px 3px rgba(16,44,48,.12)}
.auth-form label{display:block;margin:14px 0 6px}
.auth-form .form-control{width:100%}
.auth-form .btn{margin-top:24px;min-height:44px}
.auth-links{border-top:1px solid var(--linea);margin-top:24px;padding-top:18px;display:flex;justify-content:center}
.auth-links a{display:inline-flex;align-items:center;gap:8px;color:var(--marca-oscura);background:var(--marca-clara);border:1px solid transparent;border-radius:10px;text-decoration:none;font-size:12px;font-weight:700;padding:9px 13px}
.auth-links a:hover,.auth-links a:focus-visible{border-color:var(--marca);color:var(--marca-oscura);text-decoration:underline}
.swatch{width:44px;height:44px;border-radius:12px;border:2px solid white;box-shadow:0 0 0 1px var(--linea-2);cursor:pointer}
.swatch:focus-visible{outline:3px solid var(--tinta)}
.dropzone{border:2px dashed var(--linea-2);border-radius:12px;padding:24px;text-align:center;background:var(--superficie-2)}
.dropzone.drag{background:var(--marca-clara);border-color:var(--marca)}
.table-responsive{overflow-x:auto}
.app-dialog{width:min(760px,calc(100vw - 24px));max-height:90vh;overflow:auto;border:1px solid var(--linea);border-radius:18px;padding:24px;background:var(--superficie);color:var(--tinta);box-shadow:var(--sombra)}
.app-dialog::backdrop{background:rgba(10,30,32,.58)}
.app-dialog label{display:block;width:100%}
.required-marker{color:#c9364a;font-weight:800;margin-left:2px}
.app-dialog .form-control,.app-dialog .form-select{width:100%}
.confirmation-dialog{width:min(460px,calc(100vw - 24px))}
.confirmation-dialog p{color:var(--tinta-2);overflow-wrap:anywhere}
@media(max-width:820px){.app-shell:not(.auth-shell) > .rail{width:70px;padding:10px 5px}.app-shell:not(.auth-shell) > .stage{margin-left:70px}.rail-item{font-size:9px}.rail-item span{font-size:19px}.rail-logo img{max-width:54px}.workspace{padding:16px!important}}
@media(max-width:700px){
 .app-shell:not(.auth-shell) > .rail{width:min(280px,85vw);padding:14px 12px;transform:translateX(-100%);transition:transform .2s ease;visibility:hidden;z-index:51}
 .app-shell:not(.auth-shell).menu-open > .rail{transform:translateX(0);visibility:visible}
 .app-shell:not(.auth-shell) > .stage{margin-left:0}
 .rail-head{justify-content:space-between;padding:0 8px}
 .rail-logo{width:auto;margin:0}
 .rail-close,.menu-toggle{display:grid;place-items:center;border:0;cursor:pointer}
 .rail-close{width:42px;height:42px;background:rgba(255,255,255,.16);border-radius:10px;color:#fff;font-size:28px}
 .menu-toggle{width:42px;height:42px;flex:none;background:var(--marca);border-radius:10px;color:#fff;font-size:23px}
 .rail-links{padding-top:12px}
 .rail-item{min-height:44px;flex-direction:row;justify-content:flex-start;text-align:left;gap:12px;padding:10px 14px;font-size:13px}
 .rail-item span{font-size:21px}
 .rail-backdrop:not([hidden]){display:block;position:fixed;inset:0;width:100%;height:100%;border:0;padding:0;background:rgba(10,30,32,.55);z-index:50}
}
@media(max-width:540px){.stbar{padding:10px 12px}.stbar .btn{font-size:11px;padding:7px}.doc-chip{margin-left:auto}}

.workspace form label{display:block;width:100%}
.workspace form .form-control,.workspace form .form-select{width:100%;min-width:0}
[data-live-filters] .btn{max-width:100%}
.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.medical-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.workspace a.dashboard-stat{text-decoration:none;color:var(--tinta);font-weight:400;min-width:0}
.dashboard-stat span{color:var(--tinta-2);font-size:12px;font-weight:700}
.dashboard-stat strong{font:700 clamp(22px,2vw,28px) var(--fuente-titular);color:var(--marca-oscura);overflow-wrap:anywhere}
.dashboard-legend{display:flex;gap:16px;color:var(--tinta-2);font-size:12px}.dashboard-legend span:first-child{color:var(--marca)}.dashboard-legend span:last-child{color:var(--acento)}
.dashboard-chart{display:flex;align-items:stretch;gap:clamp(4px,1vw,18px);height:230px;overflow-x:auto;padding:12px 3px 0;border-bottom:1px solid var(--linea)}
.dashboard-month{flex:1 0 32px;min-width:32px;display:flex;flex-direction:column;align-items:center;gap:7px;text-decoration:none!important}
.dashboard-month small{color:var(--tinta-2)}
.dashboard-bars{height:185px;width:100%;display:flex;align-items:end;justify-content:center;gap:3px}
.dashboard-bar{display:block;width:min(26px,45%);min-height:3px;background:var(--marca);border-radius:5px 5px 0 0;transition:height .25s}
.dashboard-bar-alt{background:var(--acento)}
.dashboard-month:hover .dashboard-bar,.dashboard-month:focus-visible .dashboard-bar{filter:brightness(.78)}
@media(max-width:1199px){[data-live-filters] > div{flex:0 0 50%;max-width:50%}}
@media(max-width:640px){[data-live-filters] > div{flex:0 0 100%;max-width:100%}.card.p-4{padding:1rem!important}.table{min-width:580px}.app-dialog{padding:18px}}

.dashboard-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dashboard-panels > .card{min-width:0}
.dashboard-month{border:0;background:transparent;color:var(--tinta-2);padding:0;cursor:pointer;font:inherit}
.dashboard-month.on small{color:var(--marca-oscura);font-weight:700}
.dashboard-month.on .dashboard-bar{box-shadow:0 0 0 2px var(--marca-clara)}
.dashboard-month:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
.dashboard-detail{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--superficie-2);min-height:42px;color:var(--tinta-2)}
.dashboard-detail a{white-space:nowrap}
[data-dashboard-donut]{display:grid;grid-template-columns:minmax(145px,210px) minmax(0,1fr);gap:16px;align-items:center}
.dashboard-donut{aspect-ratio:1;max-width:210px;width:100%;border-radius:50%;display:grid;place-items:center}
.dashboard-donut-center{width:65%;aspect-ratio:1;border-radius:50%;background:var(--superficie);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}
.dashboard-donut-center strong{font:700 26px var(--fuente-titular);color:var(--marca-oscura)}
.dashboard-donut-center small{color:var(--tinta-2);overflow-wrap:anywhere;padding:0 5px}
.dashboard-donut-legend{display:flex;flex-direction:column;gap:4px}
.dashboard-donut-item{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--tinta);display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;text-align:left;gap:8px;padding:7px;cursor:pointer}
.dashboard-donut-item:hover,.dashboard-donut-item:focus-visible,.dashboard-donut-item.on{background:var(--marca-clara);border-color:var(--linea)}
.dashboard-color{width:10px;height:10px;border-radius:50%}
.dashboard-donut-link{grid-column:1/-1;justify-self:end}
.dashboard-ranking-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:8px 6px;border-bottom:1px solid var(--linea);font-weight:500!important}
.dashboard-ranking-row strong{color:var(--tinta)}
.dashboard-ranking-track{height:9px;border-radius:9px;background:var(--superficie-2);grid-column:1/-1;overflow:hidden}
.dashboard-ranking-track span{height:100%;display:block;background:var(--marca);border-radius:9px}
.dashboard-ranking-row:hover,.dashboard-ranking-row:focus-visible{background:var(--marca-clara)}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-panels{grid-template-columns:1fr}}
@media(max-width:575.98px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:500px){[data-dashboard-donut]{grid-template-columns:1fr}.dashboard-donut{max-width:180px;justify-self:center}.dashboard-donut-link{justify-self:start}}

.audit-dialog{width:min(1000px,calc(100vw - 24px))}
.audit-json-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.audit-json-grid pre{max-height:55vh;overflow:auto;padding:16px;border:1px solid var(--linea);border-radius:10px;background:var(--fondo,#f5f8f8);color:var(--tinta);white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:700px){.audit-json-grid{grid-template-columns:1fr}}

.dialog-wide{width:min(1040px,calc(100vw - 24px));max-width:1040px;max-height:calc(100dvh - 32px);overflow:auto}.picker-table{max-height:180px;overflow:auto}tr[hidden]{display:none!important}
.history-dialog{width:min(1160px,calc(100vw - 24px));max-width:1160px}.history-layout{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);gap:18px;min-height:420px}.history-index{display:flex;flex-direction:column;gap:5px;max-height:70vh;overflow:auto;border-right:1px solid var(--linea);padding-right:10px}.history-item{border:1px solid var(--linea);border-radius:9px;padding:10px;text-align:left;background:var(--superficie);color:var(--tinta)}.history-item span{display:block;font-size:12px}.history-item.active,.history-item:hover{background:var(--marca-clara);border-color:var(--marca)}.history-content{max-height:70vh;overflow:auto;padding:4px 12px}.history-field{border-top:1px solid var(--linea);padding:12px 0}.history-field h4{font-size:14px;color:var(--marca-oscura)}.history-field p{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:650px){.history-layout{grid-template-columns:1fr}.history-index{flex-direction:row;max-height:140px;overflow:auto;border-right:0;border-bottom:1px solid var(--linea);padding-bottom:8px}.history-item{min-width:160px}.history-content{max-height:55vh}}
.catalog-widget{position:relative}.catalog-results:not(:empty){max-height:190px;overflow:auto;border:1px solid var(--linea);border-radius:10px;padding:5px;background:var(--superficie);margin-top:5px;font-size:13px}.catalog-choice{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--linea);color:var(--tinta);padding:8px}.catalog-choice:hover,.catalog-choice:focus-visible{background:var(--marca-clara)}
/* Acciones compactas: etiqueta nativa al pasar el mouse y nombre accesible. */
.table-action-icon{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:7px;vertical-align:middle}
.table-action-icon svg{width:20px;height:20px;flex:none;pointer-events:none}
.table-action-icon:focus-visible{outline:3px solid var(--marca);outline-offset:3px}

.clinical-dialog-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--linea);margin-bottom:1rem}.clinical-alert{background:var(--marca-clara);border-radius:10px;padding:.8rem}.clinical-dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;position:sticky;bottom:-24px;background:var(--superficie);padding:1rem 0;border-top:1px solid var(--linea);z-index:2}.clinical-dialog textarea{resize:vertical}.clinical-dialog .catalog-results{max-height:260px;overflow:auto}

.exam-picker-options{max-height:58dvh;overflow-y:auto;padding-right:8px}.exam-picker-section-title{width:100%;margin:16px 0 12px;padding:10px 12px}.exam-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.exam-picker-item{min-width:0;overflow-wrap:anywhere}.exam-picker-item input[type=checkbox]{flex-shrink:0;align-self:flex-start;margin-top:4px}.exam-picker-item .form-select{margin-top:6px}@media(max-width:640px){.exam-picker-grid{grid-template-columns:1fr}}


/* Historia clínica: resumen de paciente y secciones del formulario. */
.clinical-history-layout{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:1.25rem;align-items:start}
.clinical-history-main,.clinical-patient-sidebar{min-width:0}
.clinical-patient-summary{overflow:hidden}
.patient-summary-head{text-align:center;padding:1.25rem;color:var(--marca)}
.patient-summary-avatar{display:block;width:72px;height:72px;margin:0 auto 1rem}
.patient-summary-details{margin:0;font-size:.875rem}
.patient-summary-details>div{border-top:1px solid #e2e8eb;padding:.65rem .9rem;overflow-wrap:anywhere}
.patient-summary-details dt{font-weight:700;margin-bottom:.2rem}
.patient-summary-details dd{margin:0}
.patient-summary-alert{color:#b42318}
.clinical-section-title,.form-section-title{font-size:1rem;border-bottom:1px solid var(--linea);font-weight:700;color:var(--marca);background:var(--marca-clara);padding:.75rem;border-radius:.5rem;margin:.75rem 0 0}
@media(max-width:991.98px){.clinical-history-layout{grid-template-columns:minmax(0,1fr)}.patient-summary-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.patient-summary-details{grid-template-columns:minmax(0,1fr)}}

.patient-history-tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:.75rem;background:#fff;border:1px solid #e2e8eb;border-radius:.75rem}
.patient-history-tabs a{display:block;text-decoration:none;padding:.65rem .8rem;border-radius:.5rem;color:var(--marca);font-weight:600;font-size:.875rem}
.patient-history-tabs a:hover,.patient-history-tabs a:focus-visible{background:var(--marca-clara)}
.patient-history-tabs a.active{background:var(--marca);color:#fff}
@media(max-width:575.98px){.patient-history-tabs a{flex:1 1 45%;text-align:center}}

.patient-form-section{border-top:1px solid #cbd5dc;padding-top:1rem;margin-top:1.25rem;color:var(--marca)}

/* Filters respond to the actual history content width, including its sidebar. */
.consultation-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem;align-items:end}
.consultation-filters[data-live-filters]>.filter-field{width:auto;max-width:none;min-width:0}
.consultation-filters .filter-field:last-child{display:flex;align-items:end}

.vaccination-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:1rem;align-items:end}
.vaccination-filters>div{width:auto;min-width:0;padding:0}
.vaccination-filters label{display:block;width:100%}

/* Compact table actions: standalone submit forms have no form section layout. */
.table td>.d-flex{align-items:center}
.table td form:not(.row):not([hidden]){display:inline-flex;align-items:center;margin:0}
.table-action-icon{width:36px;height:36px;flex:0 0 36px}
.secondary-palette{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.secondary-palette .swatch{border:1px solid var(--linea-2)}
.secondary-palette .swatch[aria-pressed="true"]{outline:2px solid var(--marca);outline-offset:3px}
.patient-photo{width:96px;height:96px;object-fit:contain;object-position:center;border-radius:50%;border:2px solid var(--linea);background:var(--superficie-2)}
.patient-summary-head{flex-wrap:wrap}
.patient-photo-preview{display:block;width:min(220px,100%);max-width:100%;height:auto;max-height:320px;object-fit:contain;margin:1rem auto;border-radius:12px}

.patient-photo-preview[hidden]{display:none}
.patient-summary-head h2{min-width:0;overflow-wrap:anywhere}

/* A translucent secondary color softens the session's logo behind modules. */
.app-shell:not(.auth-shell) .stbody{background:var(--fondo-modulos,#f4f7f8)}
.app-shell:not(.auth-shell) .workspace>.card,.app-shell:not(.auth-shell) .clinical-history-main>.card{background:color-mix(in srgb,var(--superficie) 96%,transparent)}

.document-dialog{width:min(1500px,96vw);max-width:96vw}
.document-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.document-editor-form{min-width:0}
.document-preview-panel{min-width:0;position:sticky;top:0;background:var(--superficie-2);border:1px solid var(--linea);border-radius:12px;padding:1rem}
.document-preview-panel iframe{display:block;border:1px solid var(--linea);background:white;width:100%;height:650px;margin-bottom:.75rem}
@media(max-width:1000px){.document-editor-layout{grid-template-columns:minmax(0,1fr)}.document-preview-panel{position:static}.document-preview-panel iframe{height:540px}}

/* Cada módulo agrupa cabecera, filtros, acciones y tablas en su contenedor. */
.module-container{min-width:0;max-width:100%;background:rgba(255,255,255,.95)}
.module-container>.card{box-shadow:none}
.module-container .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.module-container .table-action-icon{white-space:nowrap;overflow-wrap:normal}
@media(max-width:576px){.module-container{padding:1rem!important}.module-container .d-flex{min-width:0}}

.logo-dropzone{border:2px dashed var(--linea-2);border-radius:12px;padding:20px;background:var(--superficie-2)}
.logo-dropzone.drag{border-color:var(--marca);background:var(--marca-clara)}
.logo-saved-preview{height:100%;min-height:160px;border:1px solid var(--linea-2);border-radius:12px;padding:16px;text-align:center;background:var(--superficie-2)}
.logo-preview-image{display:block;width:100%;height:140px;object-fit:contain}
.logo-new-preview[hidden]{display:none}

/* El cierre de sesión usa POST con CSRF; el formulario conserva la apariencia del menú. */
.rail-logout{margin:0;padding:0}
.rail-logout-button{width:100%;border:0;background:transparent;text-align:left}

/* Controles fluidos: evita que selects largos desborden tarjetas, modales o columnas. */
.form-select{display:block;max-width:100%;min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.row>*{min-width:0}
label{min-width:0;max-width:100%}

/* Antropometría: referencias oficiales y trayectoria del paciente. */
.growth-chart-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.growth-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.growth-chart-patient,.growth-chart-reference{min-width:0;border:1px solid var(--linea);border-radius:.75rem;padding:1rem;background:var(--superficie)}
.growth-chart-svg-wrap{width:100%;min-height:440px;overflow:hidden}
.growth-chart-svg{display:block;width:100%;height:440px}
.growth-reference-object{display:block;width:100%;height:620px;border:1px solid var(--linea);background:#fff;border-radius:.5rem}
.growth-chart-axis{stroke:#64748b;stroke-width:1}.growth-chart-gridline{stroke:#e2e8f0;stroke-width:1}.growth-chart-line{fill:none;stroke:var(--marca);stroke-width:2.5}.growth-chart-point{fill:var(--marca);stroke:#fff;stroke-width:2}.growth-chart-label{font-size:12px;fill:#475569}.growth-chart-title{font-size:13px;font-weight:600;fill:#334155}
@media(max-width:991.98px){.growth-chart-grid{grid-template-columns:minmax(0,1fr)}.growth-reference-object{height:540px}}
@media(max-width:575.98px){.growth-chart-controls{grid-template-columns:minmax(0,1fr)}.growth-chart-svg-wrap{min-height:360px}.growth-chart-svg{height:360px}.growth-reference-object{height:480px}}
/* Curvas de crecimiento integradas */
.growth-chart-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.growth-chart-tabs button{border:1px solid var(--linea);background:var(--superficie);color:var(--texto);border-radius:.6rem;padding:.45rem .8rem;font-size:.82rem;font-weight:700}.growth-chart-tabs button:hover{border-color:var(--marca);color:var(--marca)}.growth-chart-tabs button.active{background:var(--marca);border-color:var(--marca);color:#fff}.growth-chart-indicators{margin-top:-.15rem}.growth-chart-heading{font-weight:700;margin:1rem 0 .55rem}.growth-chart-main{border:1px solid var(--linea);border-radius:.8rem;padding:.65rem;background:var(--superficie);overflow:hidden}.growth-chart-main .growth-chart-svg{display:block;width:100%;height:auto;min-height:0}.growth-grid{stroke:var(--linea);stroke-width:1}.growth-axis{stroke:#64748b;stroke-width:1.2}.growth-band{fill:var(--marca-suave,#e8f3f0);opacity:.55}.growth-ref{fill:none;stroke-width:1.5}.growth-ref.outer{stroke:#94a3b8}.growth-ref.middle{stroke:#64748b}.growth-ref.median{stroke:var(--marca);stroke-width:2.2}.growth-percentile{font-size:10px;font-weight:700}.growth-percentile.outer{fill:#94a3b8}.growth-percentile.middle{fill:#64748b}.growth-percentile.median{fill:var(--marca)}.growth-patient-line{fill:none;stroke:#dc2626;stroke-width:2.8}.growth-patient-point{fill:#dc2626;stroke:#fff;stroke-width:2}.growth-patient-count{fill:#fff;font-size:8px;font-weight:800;font-family:Arial,sans-serif}.growth-patient-measurement{cursor:help}.growth-label{font-size:11px;fill:#64748b}.growth-axis-title{font-size:12px;font-weight:700;fill:#475569}.growth-chart-status{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.8rem}.growth-stat{flex:1 1 150px;text-align:center;background:var(--fondo,#f8fafc);border-radius:.7rem;padding:.7rem .85rem}.growth-stat b{display:block;font-size:1.15rem;color:var(--marca)}.growth-stat span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--texto-secundario,#64748b);font-weight:700}@media(max-width:575.98px){.growth-chart-tabs{gap:.35rem}.growth-chart-tabs button{padding:.4rem .6rem;font-size:.76rem}.growth-chart-main{padding:.25rem}}

/* Curvas antropométricas: convención visual por sexo. */
[data-growth-charts][data-growth-sex="boys"] .growth-chart-main{background:#dbeeff;border-color:#9fc8ee}
[data-growth-charts][data-growth-sex="girls"] .growth-chart-main{background:#f8d8e8;border-color:#e9a9c9}
[data-growth-charts][data-growth-sex="boys"] .growth-chart-heading{color:#2f6f9f}
[data-growth-charts][data-growth-sex="girls"] .growth-chart-heading{color:#a33f72}
[data-growth-charts][data-growth-sex="boys"] .growth-band{fill:#bcdcf7}
[data-growth-charts][data-growth-sex="girls"] .growth-band{fill:#f0bad4}

/* Selector de representación y curvas de referencia antropométrica. */
.growth-chart-display{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:.15rem 0 .5rem}.growth-chart-mode-tabs{display:inline-flex}.growth-chart-mode-tabs button{min-width:88px}
/* OMS/WHO Anthro: colores oficiales de las líneas Z: 0 verde, ±1 dorado, ±2 rojo, ±3 negro. */
.growth-ref.who-z.z0{stroke:#008000;stroke-width:2.4}.growth-percentile.who-z.z0{fill:#008000}
.growth-ref.who-z.z1neg,.growth-ref.who-z.z1pos{stroke:#d89b00;stroke-width:1.8}.growth-percentile.who-z.z1neg,.growth-percentile.who-z.z1pos{fill:#b37f00}
.growth-ref.who-z.z2neg,.growth-ref.who-z.z2pos{stroke:#d7191c;stroke-width:1.8}.growth-percentile.who-z.z2neg,.growth-percentile.who-z.z2pos{fill:#d7191c}
.growth-ref.who-z.z3neg,.growth-ref.who-z.z3pos{stroke:#111827;stroke-width:1.8}.growth-percentile.who-z.z3neg,.growth-percentile.who-z.z3pos{fill:#111827}
/* Zemel y Fenton: sin significado cromático clínico impuesto; paleta neutral de referencia. */
.growth-ref.z3neg,.growth-ref.z3pos{stroke:#475569}.growth-ref.z2neg,.growth-ref.z2pos{stroke:#64748b}.growth-ref.z1neg,.growth-ref.z1pos{stroke:#94a3b8}.growth-ref.z0{stroke:var(--marca);stroke-width:2.2}
.growth-percentile.z3neg,.growth-percentile.z3pos{fill:#475569}.growth-percentile.z2neg,.growth-percentile.z2pos{fill:#64748b}.growth-percentile.z1neg,.growth-percentile.z1pos{fill:#94a3b8}.growth-percentile.z0{fill:var(--marca)}

/* Error pages */
.error-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.error-card{width:min(100%,520px);background:#fff;border:1px solid #dbe6e7;border-radius:18px;padding:clamp(24px,5vw,48px);text-align:center;box-shadow:0 8px 24px #102c3010}
.error-logo{display:block;max-width:180px;max-height:90px;object-fit:contain;margin:0 auto 12px}
.error-mark{font-size:2.8rem;color:var(--marca)}
.error-code{font-size:4rem;line-height:1;font-weight:700;color:var(--marca);margin:28px 0 8px}
.error-card h1{font-size:1.5rem;margin:0 0 12px}
.error-card p{line-height:1.6;color:#4a6268}
.error-button{display:inline-block;padding:12px 20px;margin-top:12px;background:var(--marca);color:#fff;border:0;border-radius:10px;font:inherit;font-weight:700;cursor:pointer}
.error-button:hover,.error-button:focus-visible{filter:brightness(.85);color:#fff}
