:root {
  --bg: #f5f8f1;
  --surface: #ffffff;
  --surface-2: #f9fbf7;
  --text: #1f2a20;
  --muted: #718071;
  --line: #dde6d9;
  --brand: #527d2d;
  --brand-dark: #35551d;
  --brand-soft: #eaf3df;
  --lime: #91ad3a;
  --danger: #b54141;
  --danger-soft: #fff0ef;
  --warn: #a66a0b;
  --warn-soft: #fff5dc;
  --blue: #3267a8;
  --blue-soft: #eaf2ff;
  --shadow: 0 14px 36px rgba(39, 64, 30, .08);
  --radius: 18px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.muted{color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.7rem;font-weight:800;color:var(--brand);margin:0 0 .25rem}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 15%,#eef6e4 0 18%,transparent 40%),radial-gradient(circle at 80% 80%,#e9f1dd 0 15%,transparent 38%),var(--bg)}
.login-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:34px}
.brand-lockup{display:flex;gap:22px;align-items:center;margin-bottom:28px}.brand-logo{width:120px;height:auto}.brand-lockup h1{font-size:1.8rem;margin:.1rem 0 .45rem}.brand-lockup p{margin:.2rem 0}
.stack{display:flex;flex-direction:column}.gap-md{gap:16px}label{font-weight:700;font-size:.88rem;color:#384638}label input,label select,label textarea{margin-top:7px}
input,select,textarea{width:100%;border:1px solid #cfdacb;background:#fff;color:var(--text);padding:12px 13px;border-radius:11px;outline:none;transition:.18s}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(82,125,45,.11)}
.btn{border:0;border-radius:11px;padding:11px 14px;font-weight:800;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--brand);color:white}.btn.secondary{background:var(--brand-soft);color:var(--brand-dark)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn.wide{width:100%}.btn.small{padding:8px 10px;font-size:.8rem}
.demo-note{margin-top:18px;background:var(--surface-2);border:1px dashed #c9d7c3;border-radius:12px;padding:12px;color:var(--muted);font-size:.82rem}.form-message{font-size:.85rem;color:var(--danger)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#19301c;color:#f3f7f1;padding:20px 14px;display:flex;flex-direction:column;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:6px 8px 18px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-brand img{width:72px;border-radius:10px;background:white;padding:4px}.sidebar-brand div{display:flex;flex-direction:column}.sidebar-brand strong{letter-spacing:.08em}.sidebar-brand span{font-size:.78rem;color:#c7d6c0}.nav-list{display:flex;flex-direction:column;gap:6px;padding:18px 0;flex:1}.nav-item{border:0;background:transparent;color:#dbe7d7;text-align:left;padding:11px 12px;border-radius:11px;font-weight:700;display:flex;gap:10px;align-items:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-item.accent{background:#7fa63a;color:#102510}.nav-item.accent:hover{background:#94b94d}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:14px}.sidebar-footer .btn{color:white;border-color:rgba(255,255,255,.18);margin-top:12px}.sync-status{display:flex;gap:8px;align-items:flex-start;font-size:.73rem;color:#c9d6c5}.dot{width:9px;height:9px;border-radius:50%;margin-top:3px;flex:0 0 auto}.dot.online{background:#7bd25d}.dot.offline{background:#f2ad46}.main-shell{min-width:0}.topbar{height:82px;background:rgba(245,248,241,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10;padding:14px 28px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.topbar h2{margin:0;font-size:1.45rem}.topbar-actions{display:flex;align-items:center;gap:10px}.date-pill,.badge{border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:800}.date-pill{background:#fff;border:1px solid var(--line);color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px}.badge.info{background:var(--blue-soft);color:var(--blue)}.badge.good{background:var(--brand-soft);color:var(--brand-dark)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}
.content{padding:26px 28px 54px;max-width:1500px;margin:0 auto}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.hero h3{font-size:1.7rem;margin:0 0 6px}.hero p{margin:0;color:var(--muted)}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1.35fr .85fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(39,64,30,.04);padding:18px}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;background:var(--brand-soft);right:-28px;top:-26px}.metric-label{color:var(--muted);font-weight:700;font-size:.82rem}.metric-value{font-weight:900;font-size:2rem;margin:6px 0 2px}.metric-meta{font-size:.78rem;color:var(--muted)}.section-title{font-size:1rem;margin:0 0 14px}.subtle{font-size:.8rem;color:var(--muted)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;background:white;font-size:.85rem}.data-table th,.data-table td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.data-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);position:sticky;top:0}.data-table tr:last-child td{border-bottom:0}.person-cell{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:10px;background:var(--brand-soft);color:var(--brand-dark);display:grid;place-items:center;font-weight:900}
.bar-list{display:flex;flex-direction:column;gap:13px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr 38px;gap:10px;align-items:center;font-size:.82rem}.bar-track{height:9px;border-radius:999px;background:#edf1e9;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--lime))}.bar-value{text-align:right;font-weight:800}
.alert-list{display:flex;flex-direction:column;gap:10px}.alert-item{display:flex;gap:11px;border:1px solid var(--line);border-radius:12px;padding:11px}.alert-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn);font-weight:900}.alert-item strong{display:block;font-size:.86rem}.alert-item span{font-size:.76rem;color:var(--muted)}
.form-card{max-width:1050px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}.form-section{padding:18px 0;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0}.form-section h4{margin:0 0 13px}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.check-chip{position:relative}.check-chip input{position:absolute;opacity:0;pointer-events:none}.check-chip span{display:block;border:1px solid var(--line);padding:9px 10px;border-radius:10px;background:#fff;font-weight:700;font-size:.8rem;transition:.15s}.check-chip input:checked+span{background:var(--brand-soft);border-color:#9db986;color:var(--brand-dark)}.segmented{display:flex;gap:8px;flex-wrap:wrap}.segmented label{font-weight:700}.segmented input{display:none}.segmented span{display:block;border:1px solid var(--line);padding:9px 12px;border-radius:999px;color:var(--muted);background:white}.segmented input:checked+span{background:var(--brand);border-color:var(--brand);color:white}.warning-box{background:var(--danger-soft);border:1px solid #efc4c0;border-radius:12px;padding:12px;color:#7d2929;font-size:.84rem}.info-box{background:var(--blue-soft);border:1px solid #cadcf4;border-radius:12px;padding:12px;color:#24558e;font-size:.84rem}
.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;align-items:center;flex-wrap:wrap}.toolbar .filters{display:flex;gap:9px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;min-width:160px}.search{min-width:280px!important}.empty{text-align:center;padding:42px 18px;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:4px}
.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.profile-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:white}.profile-card header{display:flex;gap:11px;align-items:center;margin-bottom:12px}.profile-card h4{margin:0;font-size:.95rem}.profile-card p{margin:2px 0 0;color:var(--muted);font-size:.75rem}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:.7rem;font-weight:800;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);padding:5px 7px}.tag.med{background:var(--danger-soft);color:#8b3232;border-color:#f0ceca}.profile-card footer{display:flex;justify-content:flex-end;margin-top:13px}
.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stock-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff}.stock-card h4{margin:0 0 4px}.stock-num{font-size:1.7rem;font-weight:900;margin:12px 0 4px}.stock-meter{height:8px;background:#edf1e9;border-radius:999px;overflow:hidden}.stock-meter span{display:block;height:100%;background:var(--brand);border-radius:999px}.stock-card.low .stock-meter span{background:#d48a27}.stock-card.critical .stock-meter span{background:#be4949}.stock-meta{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:7px}
.report-summary{display:flex;gap:12px;flex-wrap:wrap}.summary-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:10px 12px}.summary-chip strong{display:block;font-size:1.15rem}.summary-chip span{font-size:.72rem;color:var(--muted)}
.admin-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.list-editor{display:flex;flex-direction:column;gap:8px}.edit-row{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:10px}.edit-row .grow{flex:1}.edit-row small{color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(16,31,18,.46);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(700px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,.23);padding:22px}.modal-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:16px}.modal-header h3{margin:0}.icon-btn{border:0;background:var(--surface-2);border-radius:10px;width:40px;height:40px;font-size:1.1rem}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.toast-root{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:#19301c;color:white;padding:12px 14px;border-radius:12px;box-shadow:var(--shadow);min-width:250px;font-size:.83rem;animation:toastIn .2s ease}.toast.error{background:#7c2f2f}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.offline-banner{position:fixed;z-index:300;top:0;left:0;right:0;background:#8a5a08;color:white;text-align:center;padding:7px;font-size:.78rem;font-weight:800}.mobile-only{display:none}
@media(max-width:1100px){.grid.cards{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.profile-grid,.inventory-grid{grid-template-columns:repeat(2,1fr)}.choice-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:260px;transition:.22s;box-shadow:20px 0 50px rgba(0,0,0,.18)}.sidebar.open{left:0}.mobile-only{display:inline-grid;place-items:center}.topbar{height:auto;min-height:72px;padding:12px 16px;gap:10px}.topbar>div:nth-child(2){flex:1}.topbar-actions .date-pill{display:none}.content{padding:18px 14px 46px}.hero{align-items:flex-start;flex-direction:column}.grid.cards,.grid.three,.profile-grid,.inventory-grid,.admin-columns,.form-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr 1fr}.toolbar .filters{width:100%}.toolbar input,.toolbar select,.search{width:100%!important;min-width:0!important}.brand-lockup{align-items:flex-start;flex-direction:column}.brand-logo{width:105px}.login-card{padding:24px}.bar-row{grid-template-columns:100px 1fr 28px}}
@media print{.sidebar,.topbar,.hero-actions,.toolbar,.btn,.offline-banner{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none}.main-shell{width:100%}body{background:white}}

/* v2 · catálogos, búsqueda, importación y reportes */
.person-picker{position:relative}.autocomplete-list{position:absolute;z-index:40;left:0;right:0;top:69px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;max-height:320px;overflow-y:auto}.autocomplete-list button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:11px 13px;border:0;border-bottom:1px solid var(--line);background:#fff}.autocomplete-list button:last-child{border-bottom:0}.autocomplete-list button:hover{background:var(--brand-soft)}.autocomplete-list small{color:var(--muted)}
.selected-person{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}.selected-person div:last-child{display:flex;flex-direction:column}.selected-person span{font-size:.78rem;color:var(--muted);margin-top:2px}.avatar.large{width:48px;height:48px;border-radius:14px}
.catalog-groups{display:flex;flex-direction:column;gap:14px}.catalog-group{border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--surface-2)}.group-title{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);font-weight:900;margin-bottom:9px}
.inventory-use-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto;gap:8px;margin-bottom:8px;align-items:center}.inventory-use-row select,.inventory-use-row input{margin:0}
.current-grid{display:grid;gap:10px}.current-card{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:13px}.current-time{min-width:56px;height:56px;border-radius:14px;background:var(--brand-soft);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:1.25rem;font-weight:900;color:var(--brand-dark)}.current-time small{font-size:.65rem}.grow{flex:1}.current-card .grow{display:flex;flex-direction:column}.current-card .grow span{font-size:.75rem;color:var(--muted)}.current-card .grow p{font-size:.82rem;margin:5px 0 0}
.profile-card footer{gap:7px}.stock-num small{font-size:.72rem;color:var(--muted)}
.print-header{display:none;align-items:center;gap:14px;margin-bottom:18px;border-bottom:2px solid var(--brand);padding-bottom:12px}.print-header img{width:80px}.print-header div{display:flex;flex-direction:column}.print-header span{font-size:.8rem;color:#555;margin-top:3px}
.report-person-picker{max-width:680px;margin:0 0 18px}.report-group{margin-top:18px}.report-group-head{display:flex;justify-content:space-between;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-bottom:0;padding:10px 13px;border-radius:12px 12px 0 0}.report-group-head span{font-size:.78rem;color:var(--muted)}.person-report-head{display:flex;gap:13px;align-items:center;margin:12px 0 18px}.person-report-head h3{margin:0}.person-report-head p{margin:3px 0 0;color:var(--muted);font-size:.82rem}
.modal-wide{width:min(1050px,100%)}.toggle-line{display:flex;gap:8px;align-items:center}.toggle-line input{width:auto;margin:0}.promotion-list{margin-top:16px;max-height:55vh;overflow:auto;border:1px solid var(--line);border-radius:13px}.promotion-row{display:grid;grid-template-columns:minmax(180px,1fr) 28px minmax(190px,1fr);align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--line)}.promotion-row:last-child{border-bottom:0}.promotion-row>div{display:flex;flex-direction:column}.promotion-row small{color:var(--muted);margin-top:2px}.promotion-row>span{text-align:center;color:var(--muted);font-weight:900}.promotion-row select{margin:0}
.report-toolbar label{min-width:180px}.report-toolbar label input,.report-toolbar label select{margin-top:4px}
@media(max-width:780px){.inventory-use-row{grid-template-columns:1fr 100px auto}.promotion-row{grid-template-columns:1fr}.promotion-row>span{display:none}.current-card{align-items:flex-start;flex-wrap:wrap}.current-card .btn{width:100%}.catalog-group .choice-grid{grid-template-columns:1fr}}
@media print{.print-header{display:flex!important}.data-table th,.data-table td{white-space:normal;padding:7px;font-size:10px}.report-group{break-inside:avoid}.profile-card,.stock-card{break-inside:avoid}.content{max-width:none}.card{border:0;padding:0}.report-summary{margin-bottom:12px}}

/* Nueva atención: selección por tipo + búsqueda por cercanía */
.visit-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.visit-type-option{position:relative}.visit-type-option input{position:absolute;opacity:0;pointer-events:none}.visit-type-option span{display:flex;min-height:74px;flex-direction:column;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;transition:.15s}.visit-type-option strong{font-size:.86rem}.visit-type-option small{font-size:.7rem;color:var(--muted);font-weight:600}.visit-type-option:hover span{border-color:#aec39d;background:var(--surface-2)}.visit-type-option input:checked+span{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px rgba(82,125,45,.08)}.visit-type-option input:checked+span strong{color:var(--brand-dark)}
.visit-person-area{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.visit-person-picker{max-width:720px}.picker-help,.section-helper{margin:7px 0 0;color:var(--muted);font-size:.76rem;font-weight:500}.autocomplete-empty{padding:12px 13px;color:var(--muted);font-size:.8rem}.flat-catalog{margin-top:12px}.flat-catalog .choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.clinical-section .check-chip span{min-height:40px;display:flex;align-items:center}.clinical-section{padding-top:20px;padding-bottom:20px}
@media(max-width:1050px){.visit-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.visit-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flat-catalog .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.visit-type-grid,.flat-catalog .choice-grid{grid-template-columns:1fr}}

/* v3 · dashboard operativo, seguimiento, documentos y formularios clínicos */
.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.trend-up{color:var(--brand-dark)!important}.trend-down{color:var(--danger)!important}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.text-btn{border:0;background:transparent;color:var(--brand);font-weight:800;padding:4px}.dashboard-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dashboard-breakdown div,.quality-grid div{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--surface-2);display:flex;flex-direction:column}.dashboard-breakdown strong,.quality-grid strong{font-size:1.35rem}.dashboard-breakdown span,.quality-grid span{font-size:.72rem;color:var(--muted);margin-top:3px}.mini-note{margin-top:11px;color:var(--muted);font-size:.78rem}.inventory-total-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.inventory-total-list>span{background:var(--brand-soft);border-radius:999px;padding:7px 10px;font-size:.78rem}.alert-list.compact .alert-item{padding:8px 0}.alert-item.expired .alert-icon,.alert-item.critical .alert-icon{background:var(--danger-soft);color:var(--danger)}.follow-list,.recent-list{display:flex;flex-direction:column}.follow-row,.recent-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.follow-row:last-child,.recent-row:last-child{border-bottom:0}.follow-row>div:first-child,.recent-row .grow{display:flex;flex-direction:column;gap:2px;flex:1}.follow-row span,.recent-row span{font-size:.75rem;color:var(--muted)}.quality-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.small-avatar{width:34px;height:34px;border-radius:10px;font-size:.72rem}
.person-preview-card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:12px}.person-preview-card .selected-person{border:0;padding:0;background:transparent}.person-preview-meta{display:flex;flex-wrap:wrap;gap:7px 14px;font-size:.75rem;color:var(--muted);margin-top:10px}.good-box{margin-top:10px;border-radius:10px;background:#edf7e8;color:#36572a;padding:9px 11px;font-size:.78rem}.warning-box{margin-top:10px}.other-detail{margin-top:12px;background:#fff9ea;border:1px solid #ead6a6;border-radius:12px;padding:12px}.quick-toggle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.quick-toggle{position:relative}.quick-toggle input{position:absolute;opacity:0;pointer-events:none}.quick-toggle span{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}.quick-toggle input:checked+span{background:var(--brand-soft);border-color:var(--brand)}.quick-toggle small{font-size:.7rem;color:var(--muted)}.inline-panel{border-left:3px solid var(--brand);padding:12px;margin-top:12px;background:var(--surface-2);border-radius:0 12px 12px 0}.inline-details{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.inline-details summary{padding:11px 12px;font-weight:800;cursor:pointer}.vitals-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0 12px 12px}.vitals-grid label{font-size:.75rem}.vitals-grid input{padding:9px}.good-tag{background:#edf7e8!important;color:#36572a!important}.warn-tag{background:var(--warn-soft)!important;color:var(--warn)!important}.profile-meta{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:.75rem;color:var(--muted)}.profile-card footer{flex-wrap:wrap}.document-upload{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:13px;margin-bottom:14px}.document-upload>.btn{margin-top:10px}.document-list{display:flex;flex-direction:column;gap:8px}.document-row{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;padding:10px}.document-row .grow{display:flex;flex-direction:column;gap:2px}.document-row span,.document-row small{font-size:.73rem;color:var(--muted)}.doc-icon{width:44px;height:44px;border-radius:10px;background:var(--brand-soft);color:var(--brand-dark);display:grid;place-items:center;font-size:.68rem;font-weight:900}.stock-card.expired{border-color:#e1aaaa;background:#fff7f7}.stock-card.expiring{border-color:#e7d19a}.stock-card.expired .stock-meter span{background:var(--danger)}.stock-card.expiring .stock-meter span{background:#c9972f}.stock-lot{font-size:.72rem;color:var(--muted);margin-top:8px}
@media(max-width:1100px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.vitals-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.dashboard-metrics,.dashboard-breakdown,.quality-grid,.quick-toggle-grid,.vitals-grid{grid-template-columns:1fr 1fr}.document-row{align-items:flex-start;flex-wrap:wrap}.document-row .grow{min-width:60%}.document-row .btn{flex:1}.person-preview-meta{flex-direction:column;gap:4px}}
@media(max-width:520px){.dashboard-metrics,.dashboard-breakdown,.quality-grid,.quick-toggle-grid,.vitals-grid{grid-template-columns:1fr}}

/* Acciones consistentes: ver / editar / eliminar */
.row-actions,.table-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.action-icon{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;display:inline-grid;place-items:center;font-size:1rem;line-height:1;cursor:pointer;transition:.15s}.action-icon:hover{transform:translateY(-1px);background:var(--brand-soft);border-color:#b7caa8}.action-icon.danger-icon:hover{background:var(--danger-soft);border-color:#e4b2ad}.inactive-row{opacity:.62;background:#fafafa}.void-row{opacity:.68;background:#fff8f8}.void-row td{font-style:italic}

/* Hora de llegada prioritaria */
.visit-time-priority{margin-top:14px;border:1px solid #bad1aa;background:var(--brand-soft);border-radius:13px;padding:13px;max-width:560px}.visit-time-priority label{margin:0}.visit-time-priority p{margin:7px 0 0;color:var(--muted);font-size:.75rem}.priority-label{display:block;color:var(--brand-dark);font-weight:900;margin-bottom:6px}

/* Búsqueda escrita de inventario */
.inventory-search-cell{position:relative;min-width:0}.inventory-search-cell>input{width:100%}.inventory-search-cell .autocomplete-list{top:48px}.inv-product-meta{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}.inventory-use-row{grid-template-columns:minmax(250px,1fr) 135px 40px}

/* Panel lateral de consulta (ojo) */
.drawer-backdrop{place-items:stretch end;padding:0}.detail-drawer{width:min(620px,94vw);height:100vh;overflow:auto;background:#fff;box-shadow:-18px 0 55px rgba(0,0,0,.2);padding:24px;animation:drawerIn .18s ease-out}.drawer-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.drawer-header h3{margin:0;font-size:1.35rem}.drawer-header p{margin:4px 0 0;color:var(--muted)}.drawer-actions{display:flex;gap:8px;flex-wrap:wrap;padding:14px 0}.detail-list{display:flex;flex-direction:column;gap:12px}.detail-list section{border:1px solid var(--line);border-radius:13px;background:var(--surface-2);padding:13px}.detail-list section h4{margin:0 0 9px}.detail-list section p{margin:6px 0;font-size:.84rem}.detail-list ul{margin:6px 0;padding-left:20px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.detail-grid span{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px;font-size:.78rem}.detail-grid b{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.danger-panel{background:var(--danger-soft)!important;border-color:#ecc1bd!important}.history-mini{width:100%;display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 2px}.history-mini:last-child{border-bottom:0}.history-mini span{color:var(--muted);font-size:.72rem}.history-mini strong{font-size:.8rem}.history-mini:hover{color:var(--brand-dark)}
@keyframes drawerIn{from{transform:translateX(24px);opacity:.6}to{transform:translateX(0);opacity:1}}

/* Seis signos vitales incluyendo glucómetro */
.vitals-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:780px){.row-actions,.table-actions{justify-content:flex-start}.profile-card footer.row-actions{justify-content:flex-start}.inventory-use-row{grid-template-columns:1fr 92px 40px}.detail-drawer{width:100vw;padding:18px}.detail-grid{grid-template-columns:1fr}.vitals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.current-card .row-actions{width:100%}.current-card .row-actions .btn{width:auto;flex:1}.action-icon{width:40px;height:40px}}

/* v4 · reportes institucionales, edad y permisos */
.visit-core-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(190px,.55fr);gap:14px;align-items:start}.temperature-priority{border:1px solid #bad1aa;background:#fff;border-radius:13px;padding:13px}.temperature-priority input{font-size:1.05rem;font-weight:800}.field-helper{display:block;margin-top:6px;color:var(--muted);font-size:.74rem;font-weight:500}.age-unknown-toggle{margin:4px 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.admin-wide-stack{display:grid;gap:16px;margin-bottom:16px}.user-admin-card .section-head{margin-bottom:14px}.permission-editor{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.permission-option{position:relative}.permission-option input{position:absolute;opacity:0;pointer-events:none}.permission-option span{display:block;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:.78rem}.permission-option input:checked+span{background:var(--brand-soft);border-color:#adc79a;color:var(--brand-dark)}.permission-option input:disabled+span{opacity:.75}.permission-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.permission-view span{padding:8px 9px;border-radius:9px;font-size:.76rem}.permission-view .enabled{background:var(--brand-soft);color:var(--brand-dark)}.permission-view .disabled{background:#f4f4f4;color:var(--muted)}
.institution-report-header{background:#fff;border-bottom:1px solid var(--line);padding:6px 4px 20px;margin-bottom:18px}.institution-report-top{display:grid;grid-template-columns:150px 1fr 150px;align-items:center;min-height:105px}.institution-report-top img{width:135px;max-height:90px;object-fit:contain}.institution-report-top>div{grid-column:2;text-align:center;display:flex;flex-direction:column;gap:5px}.institution-report-top strong{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem;line-height:1.25;text-transform:uppercase}.institution-report-top span{font-family:Georgia,"Times New Roman",serif;font-weight:800;font-size:.95rem}.institution-report-header h2{text-align:center;margin:24px 0 18px;font-size:1.18rem;text-transform:uppercase}.institution-report-meta{display:flex;flex-direction:column;gap:3px;margin:0 0 24px}.institution-report-meta p{margin:0}.institution-report-intro{font-size:.92rem;margin:0}.report-signature{margin-top:48px;line-height:1.5;min-width:280px}.print-only{display:none}.report-document{background:#fff}.report-page-footer{display:none}
@media(max-width:700px){.visit-core-grid,.permission-grid,.permission-view{grid-template-columns:1fr}.institution-report-top{grid-template-columns:95px 1fr}.institution-report-top img{width:85px}.institution-report-top>div{grid-column:2}.institution-report-top strong{font-size:.82rem}.institution-report-top span{font-size:.75rem}}

@media print{
  @page{size:auto;margin:13mm 10mm 16mm}
  body{background:#fff!important;color:#000!important}.sidebar,.topbar,.hero,.report-toolbar,.screen-only,#offlineBanner,#toastRoot,#modalRoot{display:none!important}.app-shell{display:block!important}.main-shell,.main-content{display:block!important;padding:0!important;margin:0!important}.card,.report-document{border:0!important;box-shadow:none!important;padding:0!important}.print-only{display:block!important}.institution-report-header{display:block!important;border:0!important;padding:0 0 14px!important}.institution-report-top{grid-template-columns:140px 1fr 140px;min-height:90px}.institution-report-top img{width:125px}.institution-report-top strong{font-size:13pt}.institution-report-top span{font-size:11pt}.institution-report-header h2{font-size:14pt;margin:22px 0 16px}.institution-report-meta,.institution-report-intro{font-size:10.5pt}.data-table{font-size:8.5pt}.data-table th,.data-table td{padding:6px!important;border:1px solid #777!important}.table-wrap{overflow:visible!important}.report-summary{break-inside:avoid}.report-signature{display:block!important;break-inside:avoid;margin-top:42px}.report-document:after{content:"Centro de Educación Pre-Básica No Gubernamental Bilingüe “MHOTIVO”";display:block;margin-top:26px;padding-top:8px;border-top:1px solid #aaa;text-align:left;font-size:8pt;color:#555}
}

/* Bitácora compacta y tipografía uniforme */
.bitacora-wrap{border-radius:12px}
.bitacora-table{font-size:.79rem;line-height:1.28}
.bitacora-table th,.bitacora-table td{font-size:.79rem!important;line-height:1.28!important;padding:8px 9px!important;font-weight:500;letter-spacing:0!important;text-transform:none!important;vertical-align:middle}
.bitacora-table th{font-weight:700;color:var(--text);background:var(--surface-2)}
.bitacora-table td strong,.bitacora-table td small{font:inherit!important;color:inherit!important;font-weight:500!important}
.bitacora-table .table-actions{gap:5px}
.bitacora-table .action-icon{width:31px;height:31px;font-size:.88rem}
@media print{.bitacora-table,.bitacora-table th,.bitacora-table td{font-size:8.5pt!important;line-height:1.2!important}.bitacora-table th,.bitacora-table td{padding:5px 6px!important;font-weight:500!important}.bitacora-table th{font-weight:700!important}}
