:root{
  --forest:#8d3c42;
  --green:#d95763;
  --coral:#ee5965;
  --coral-dark:#b6333a;
  --rose:#fff0f1;
  --terracotta:#9a6265;
  --ink:#554f50;
  --muted:#817879;
  --bg:#fff9f8;
  --line:#efd9d7;
  --shadow:0 16px 45px rgba(156,75,65,.09);
}

/* Módulos operativos: auditoría, salud, incidentes, contactos y documentos */
.health-banner{padding:18px 22px;border-radius:18px;margin-bottom:18px;font-weight:800;background:#fff0f1;color:#8e363e}.health-banner.healthy{background:#eaf7ef;color:#17643a}.health-banner.warning{background:#fff4dc;color:#865b08}.health-banner.critical{background:#ffe5e7;color:#9d2631}.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.health-card,.incident-card,.contact-card,.document-card{background:#fff;border:1px solid #f1d7d8;border-radius:20px;padding:18px;box-shadow:0 10px 28px #8e363e0d}.health-card strong{display:block;font-size:1.55rem;color:#963d45}.health-card span,.health-card small{display:block;margin-top:5px;color:#735d5f}.health-meter{height:9px;background:#f7e6e7;border-radius:10px;overflow:hidden;margin-top:12px}.health-meter i{display:block;height:100%;background:#e9515f}.incident-list{display:grid;gap:14px;margin-top:18px}.incident-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start}.incident-severity{width:11px;height:100%;min-height:70px;border-radius:8px;background:#efb34f}.incident-severity.high,.incident-severity.critical{background:#d63f4c}.incident-severity.low{background:#76ae91}.incident-card h3{margin:0 0 6px}.incident-card p{margin:5px 0;color:#655}.incident-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.incident-tags span,.document-state{padding:5px 9px;border-radius:20px;background:#fff0f1;font-size:.78rem;font-weight:800;color:#943e46}.contact-editor{display:grid;gap:10px}.contact-row{display:grid;grid-template-columns:1.2fr .8fr 1fr auto auto;gap:8px;align-items:end;padding:12px;border:1px solid #f1d7d8;border-radius:16px;background:#fffafa}.contact-row label{font-size:.78rem}.contact-row input{min-width:0}.profile-contacts,.profile-documents{margin-top:20px}.profile-list{display:grid;gap:10px;margin-top:10px}.contact-card,.document-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.contact-card div,.document-card div{display:grid;gap:3px}.contact-card small,.document-card small{color:#755}.audit-detail{max-width:420px;white-space:normal}.expired{color:#b72f3b!important}.expiring{color:#9a6500!important}
@media(max-width:900px){.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-row{grid-template-columns:1fr 1fr}.contact-row>*:nth-child(3){grid-column:1/-1}.incident-card{grid-template-columns:auto 1fr}.incident-card>div:last-child{grid-column:2}}
@media(max-width:560px){.health-grid{grid-template-columns:1fr}.contact-row{grid-template-columns:1fr}.contact-row>*{grid-column:auto!important}.incident-card{grid-template-columns:auto 1fr}.contact-card,.document-card{align-items:flex-start;flex-direction:column}.trace-controls{grid-template-columns:1fr!important}}
[hidden]{display:none!important}

/* Identidad Jazmine Fifteen: coral, rosa translúcido y vino suave. */
.hero{background:linear-gradient(125deg,rgba(238,89,101,.88),rgba(243,160,168,.82));box-shadow:0 18px 46px rgba(190,70,78,.2)}
.hero:before,.hero:after{border-color:rgba(255,255,255,.32)}
.hero .eyebrow{color:#fff7f7}
.trip-mark,.stats i.missing,.segment-number,.picker-item>span,.user-card>span{background:rgba(238,89,101,.12)}
.icon-button,.chip.active{background:#8d3c42;border-color:#8d3c42}
.stats i.people{background:#f9e5e4;color:#8d3c42}
.stats i.present{background:#fde9e8;color:#b4434c}
.stats i.rooms,.room-card header>span{background:#f7e5e2;color:#9a6265}
.status.present,.state,.user-card em.enabled{color:#b4434c}
.state{background:#fde9e8}
.person-card.is-present{border-left-color:#e37a82}
.activity i.checkin{background:#d95763}
.mini.whatsapp{background:#fff0f1;color:#a43c45;border-color:#f3c9cc}
.scanner-box{background:#4c3032}
.login-page{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 18% 8%,rgba(255,255,255,.34),transparent 30%),linear-gradient(140deg,#ed7d86,#f3a0a8)}
.login-page::before,.login-page::after{content:'';position:fixed;z-index:0;inset:-85% -12% 0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 2.7px),radial-gradient(circle,rgba(255,255,255,.72) 0 3px,transparent 3.8px),radial-gradient(circle,rgba(255,255,255,.52) 0 1.3px,transparent 2px);background-size:86px 86px,145px 145px,54px 54px;background-position:12px 4px,43px 27px,7px 31px;filter:drop-shadow(0 0 4px rgba(255,255,255,.7));opacity:.72;animation:jazmine-frost-fall 18s linear infinite}
.login-page::after{inset:-95% -18% 0;background-size:128px 128px,205px 205px,78px 78px;background-position:67px 14px,5px 61px,31px 8px;filter:blur(.35px) drop-shadow(0 0 5px rgba(255,255,255,.6));opacity:.46;animation-duration:29s;animation-delay:-11s}
.login-card{position:relative;z-index:1;border:1px solid rgba(255,255,255,.72);box-shadow:0 30px 100px rgba(119,44,51,.34),inset 0 1px 0 #fff}
@keyframes jazmine-frost-fall{from{transform:translate3d(0,-32%,0)}to{transform:translate3d(-38px,34%,0)}}
@media(prefers-reduced-motion:reduce){.login-page::before,.login-page::after{inset:0;animation:none;opacity:.2}}
.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--ink);padding:4px;border-radius:14px}
.profile-button:hover{background:var(--rose)}
.profile-button>img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--rose);border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.role-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0}
.role-guide article{border:1px solid var(--line);background:linear-gradient(145deg,#fff,#fff7f6);border-radius:16px;padding:14px}
.role-guide strong{display:block;color:var(--wine,#8d3c42);font-size:15px;margin-bottom:6px}.role-guide p{font-size:13px;line-height:1.55}
.role-description{background:var(--rose);border-radius:12px;padding:11px!important;color:var(--wine,#8d3c42)!important;font-size:13px!important;line-height:1.5}
.user-photo-field input{padding:8px;background:var(--rose)}
.users-section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-top:28px}.users-section-head h2{font:23px 'Tenor Sans';color:var(--forest);margin:4px 0}.users-section-head p{font-size:14px;color:var(--muted);margin:0}.users-section-head>span{font-size:13px;color:var(--wine,#8d3c42);background:var(--rose);padding:7px 11px;border-radius:99px;white-space:nowrap}.user-grid{margin-top:12px}.user-card{grid-template-columns:52px minmax(0,1fr) auto;padding:15px;gap:13px}.user-card>img,.user-card>span{width:52px;height:52px;border-radius:50%;object-fit:cover}.user-card-copy strong{font-size:16px;color:var(--forest)}.user-card-copy small{font-size:12px;margin-top:3px}.user-card-copy em{display:block;font-size:11px;font-weight:800;margin:5px 0 2px}.user-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.user-card-actions>span{font-size:11px;color:var(--muted);font-weight:800}.login-history-section{margin-top:30px;padding-top:4px;border-top:2px solid var(--rose)}.login-history-controls{display:grid;grid-template-columns:minmax(260px,1fr) 280px;gap:12px;align-items:end;margin:17px 0}.login-history-controls>label:not(.search){display:grid;gap:5px;font-size:13px;font-weight:800;color:var(--muted)}.login-history-controls select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px}.login-history-list{display:grid;gap:8px}.login-history-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.login-history-card>img,.login-history-card>span{width:46px;height:46px;border-radius:50%;object-fit:cover}.login-history-card>span{display:grid;place-items:center;background:var(--rose);color:var(--coral);font-weight:900}.login-history-card strong,.login-history-card small{display:block}.login-history-card>div>strong{font-size:15px;color:var(--forest)}.login-history-card small{font-size:12px;color:var(--muted);margin-top:3px}.login-history-card time{text-align:right;font-style:normal}.login-history-card time strong{font-size:14px;color:var(--ink)}.edit-user-photo{display:flex;align-items:center;gap:14px;padding:12px;background:var(--rose);border-radius:16px}.edit-user-photo img{width:72px;height:72px;border-radius:50%;object-fit:cover;background:#fff}.edit-user-photo label{flex:1}.user-edit-dialog .form-actions{grid-column:1}
.notification-option{display:flex!important;align-items:flex-start;gap:11px;border:1px solid var(--line);background:#fff8f7;border-radius:15px;padding:12px!important;cursor:pointer}.notification-option input{width:19px;height:19px;margin:2px 0 0;accent-color:var(--coral);flex:none}.notification-option span,.notification-option strong,.notification-option small{display:block}.notification-option strong{font-size:13px;color:var(--forest)}.notification-option small{font-size:11px;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.4}.danger-button{background:#fff1f1;color:#a82f39;border:1px solid #f1c6c9}.config-state{font-size:12px;font-weight:900;color:var(--muted);background:#f5f1f0;border-radius:99px;padding:8px 12px;white-space:nowrap}.config-state.enabled{background:#eaf7ef;color:#16824b}.config-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.7fr);gap:16px;margin-top:20px;align-items:start}.config-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 8px 24px rgba(141,60,66,.05)}.config-card h2{font:23px 'Tenor Sans';color:var(--forest);margin:0 0 7px}.config-card>p,.config-card-head p{font-size:13px;color:var(--muted);margin:0}.config-card-head{display:flex;align-items:center;gap:13px;margin-bottom:17px}.config-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#e6f7ec;color:#16824b;font-size:23px;font-weight:900}.config-toggle{margin-bottom:16px}.config-help{font-size:12px!important;background:var(--rose);border-radius:12px;padding:10px;margin:13px 0!important}.template-preview{border:1px dashed #efc4c7;border-radius:15px;padding:13px;margin:14px 0}.template-preview>strong{font-size:13px;color:var(--wine,#8d3c42)}.template-preview ol{margin:9px 0 0;padding-left:24px}.template-preview li{font-size:13px;color:var(--ink);margin:5px 0}.config-side{display:grid;gap:16px}.whatsapp-log-list{display:grid;gap:7px;margin-top:13px}.whatsapp-log{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:9px}.whatsapp-log>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eaf7ef;color:#16824b;font-weight:900}.whatsapp-log.failed>span{background:var(--rose);color:var(--coral)}.whatsapp-log strong,.whatsapp-log small{display:block}.whatsapp-log strong{font-size:13px;color:var(--forest)}.whatsapp-log small{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}
.webhook-url-field>div{display:flex;gap:7px}.webhook-url-field input{min-width:0;flex:1;background:#f8f5f4}.notification-history-section{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 8px 24px rgba(141,60,66,.05)}.notification-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:18px 0}.notification-kpis article{border:1px solid var(--line);border-radius:16px;padding:13px;background:linear-gradient(145deg,#fff7f6,#fff)}.notification-kpis strong,.notification-kpis span{display:block}.notification-kpis strong{font-size:24px;color:var(--wine,#8d3c42)}.notification-kpis span{font-size:11px;color:var(--muted);margin-top:2px}.notification-controls{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:11px;align-items:end}.notification-controls>label:not(.search){display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted)}.notification-controls select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px}.whatsapp-log{appearance:none;width:100%;grid-template-columns:40px minmax(0,1fr) auto auto;text-align:left;background:#fff;padding:12px;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s}.whatsapp-log:hover{border-color:#efa8ad;transform:translateY(-1px);box-shadow:0 7px 18px rgba(141,60,66,.08)}.whatsapp-log>.whatsapp-log-icon{width:38px;height:38px;background:#fff2ec;color:#bd574f;font-size:12px}.whatsapp-log.delivered>.whatsapp-log-icon,.whatsapp-log.read>.whatsapp-log-icon{background:#eaf7ef;color:#16824b}.whatsapp-log.failed>.whatsapp-log-icon{background:#fff0f0;color:#aa2632}.whatsapp-log-copy{min-width:0}.whatsapp-log-copy strong{font-size:15px}.whatsapp-log-copy small{font-size:12px}.wa-status{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;height:auto!important;min-height:28px;border-radius:99px!important;padding:5px 10px;font-size:11px;font-weight:900;white-space:nowrap;background:#fff2ec!important;color:#a84e47!important}.wa-status.delivered{background:#eaf7ef!important;color:#16824b!important}.wa-status.read{background:#e9f4ff!important;color:#23669f!important}.wa-status.failed{background:#fff0f0!important;color:#aa2632!important}.whatsapp-log-open{width:auto!important;height:auto!important;background:transparent!important;color:var(--coral)!important;font-size:11px!important;white-space:nowrap}.whatsapp-detail-dialog{width:min(760px,calc(100% - 24px));padding:28px}.wa-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-right:20px}.wa-detail-head h2{font:29px 'Tenor Sans';color:var(--forest);margin:5px 0}.wa-detail-head p{margin:0;color:var(--muted);font-size:13px}.wa-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:22px 0}.wa-detail-grid article{border:1px solid var(--line);border-radius:15px;padding:13px;min-width:0}.wa-detail-grid span,.wa-detail-grid strong{display:block}.wa-detail-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:900}.wa-detail-grid strong{font-size:14px;color:var(--ink);margin-top:5px}.wa-message-id{overflow-wrap:anywhere}.wa-error{background:#fff0f0;border:1px solid #f2c9cc;border-radius:15px;padding:13px;color:#8f2630}.wa-error p{font-size:13px;margin:5px 0 0}.wa-timeline h3{font:21px 'Tenor Sans';color:var(--forest);margin:22px 0 10px}.wa-timeline{display:grid;gap:8px}.wa-timeline article{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center}.wa-timeline article>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--rose);color:var(--wine,#8d3c42);font-weight:900;font-size:12px}.wa-timeline article:not(:last-child)>span:after{content:'';position:absolute}.wa-timeline strong,.wa-timeline small{display:block}.wa-timeline strong{font-size:14px;color:var(--forest)}.wa-timeline small{font-size:12px;color:var(--muted);margin-top:2px}
.profile-preview{display:block;width:120px;height:120px;border-radius:50%;object-fit:cover;margin:14px auto;border:5px solid var(--rose);box-shadow:0 10px 25px rgba(141,60,66,.15)}
.person-edit-dialog{width:min(760px,calc(100% - 25px))}
.person-edit-dialog .dialog-form{grid-template-columns:170px minmax(0,1fr);align-items:start}.person-edit-dialog .field-grid{grid-column:2;min-width:0}.person-edit-dialog .field-grid label,.person-edit-dialog .field-grid input,.person-edit-dialog .field-grid textarea,.person-edit-dialog .field-grid select{min-width:0;max-width:100%}.person-edit-dialog .form-actions{grid-column:1/-1}
.edit-person-photo{display:grid;gap:10px;width:145px;max-width:100%;min-width:0}.edit-person-photo img{width:145px;max-width:100%;height:145px;border-radius:24px;object-fit:cover;background:var(--rose);border:4px solid var(--rose)}.edit-person-photo label{position:relative;font-size:11px;width:145px;max-width:100%;min-width:0;cursor:pointer}.edit-person-photo label:after{content:'Seleccionar foto';display:grid;place-items:center;width:100%;min-height:38px;border:1px solid var(--line);background:#fff;color:var(--wine,#8d3c42);border-radius:10px;padding:7px 5px;font-weight:900}.edit-person-photo input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.field-grid textarea,.dialog-form textarea{border:1px solid var(--line);border-radius:13px;padding:12px 13px;background:#fff;outline:0;resize:vertical;font:inherit}.field-grid textarea:focus,.dialog-form textarea:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(238,89,101,.08)}.field-wide{grid-column:1/-1}
.form-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:15px 2px 8px;margin-top:4px}.form-section-title strong{font:18px 'Tenor Sans';color:var(--wine,#8d3c42)}.form-section-title span{font-size:11px;color:var(--muted)}.form-section-title.medical{border-color:#efb9bd}.profile-sensitive{border:1px solid var(--line);border-radius:18px;padding:15px;margin:12px 0}.profile-sensitive.medical{background:#fff8f7;border-color:#efc9cb}.profile-sensitive.insurance{background:#fff}.profile-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.profile-section-head>span{width:36px;height:36px;border-radius:12px;background:var(--rose);display:grid;place-items:center;color:var(--coral);font-weight:900}.profile-section-head strong,.profile-section-head small{display:block}.profile-section-head strong{font:19px 'Tenor Sans';color:var(--wine,#8d3c42)}.profile-section-head small{font-size:11px;color:var(--muted);margin-top:2px}.profile-sensitive-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.profile-sensitive-grid article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px}.profile-sensitive-grid article.wide{grid-column:1/-1}.profile-sensitive-grid span,.profile-sensitive-grid strong,.profile-sensitive-grid a{display:block}.profile-sensitive-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:900}.profile-sensitive-grid strong{font-size:13px;color:var(--ink);margin-top:4px;white-space:pre-wrap}.profile-sensitive-grid a{font-size:11px;color:var(--coral);margin-top:5px}.profile-sensitive>p{font-size:13px;color:var(--ink);background:var(--rose);border-radius:12px;padding:11px;margin:10px 0 0;white-space:pre-wrap}.profile-section-empty{font-size:12px;color:var(--muted);border:1px dashed var(--line);border-radius:12px;padding:14px;text-align:center}
.trace-count{font-size:12px;font-weight:900;color:var(--wine,#8d3c42);background:var(--rose);border-radius:99px;padding:8px 12px;white-space:nowrap}.trace-controls{display:grid;grid-template-columns:minmax(260px,1fr) 240px 220px;gap:10px;align-items:end;margin:20px 0}.trace-controls>label:not(.search){display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted)}.trace-controls select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px}.attendance-trace-table{min-width:920px}.attendance-trace-table td{vertical-align:middle}.attendance-trace-table td>strong,.attendance-trace-table td>small{display:block}.attendance-trace-table td>small{color:var(--muted);margin-top:3px}.trace-action{display:inline-flex;border-radius:99px;background:#eaf7ef;color:#16824b;padding:6px 9px;font-size:11px;font-weight:900;white-space:nowrap}.trace-action.uncheck,.trace-action.reset{background:var(--rose);color:var(--wine,#8d3c42)}
.directory-actions{display:flex;gap:7px}.directory-actions .button{padding:9px 14px;font-size:11px}
.history-controls{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:end;margin:18px 0}
.history-controls>label:not(.search){display:grid;gap:5px;font-size:10px;font-weight:800;color:var(--muted)}
.history-controls select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 34px 10px 12px}
#historyCount{font-size:11px;color:var(--muted);padding:11px 0}
.history-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:17px}
.history-table{width:100%;border-collapse:collapse;min-width:820px;background:#fff}
.history-table th{text-align:left;background:#fff0f1;color:#8d3c42;font-size:9px;text-transform:uppercase;letter-spacing:.6px;padding:11px;border-bottom:1px solid #f3c9cc;position:sticky;top:0}
.history-table td{padding:11px;border-bottom:1px solid var(--line);font-size:11px;vertical-align:middle}.history-table tr:last-child td{border-bottom:0}.history-table tbody tr{cursor:pointer}.history-table tbody tr:hover,.history-table tbody tr.selected{background:#fff7f6}
.history-table td strong,.history-table td small{display:block}.history-table td strong{color:#8d3c42;font-size:12px}.history-table td small{color:var(--muted);font-size:9px;margin-top:3px}.history-empty{text-align:center!important;padding:32px!important;color:var(--muted)}
.history-more{display:flex;margin:14px auto 0}
.module-view{display:none}.module-view.active{display:block}
.topbar{display:grid;grid-template-columns:auto minmax(340px,1fr) auto;gap:18px}
.main-menu{display:flex;justify-content:center;align-items:stretch;gap:4px;height:100%}.main-menu button{border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:850;font-size:13px;padding:0 14px;cursor:pointer}.main-menu button:hover,.main-menu button.active{color:var(--coral);border-bottom-color:var(--coral)}
.global-module{background:#fff;border:1px solid var(--line);border-radius:25px;padding:28px;box-shadow:var(--shadow);min-height:600px}.global-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.global-heading h1{font:34px 'Tenor Sans';color:var(--forest);margin:5px 0}.global-heading p{margin:0;color:var(--muted);font-size:14px}
.directory-summary,.history-kpis,.profile-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.directory-summary article,.history-kpis article,.profile-totals article{background:linear-gradient(145deg,#fff7f6,#fff);border:1px solid var(--line);border-radius:17px;padding:16px}.directory-summary strong,.history-kpis strong,.profile-totals strong{display:block;color:var(--wine,#8d3c42);font-size:25px}.directory-summary span,.history-kpis span,.profile-totals span{color:var(--muted);font-size:12px}
.global-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:end;gap:12px;margin:20px 0}.global-toolbar>label:not(.search){display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted)}.global-toolbar select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px}.global-toolbar>span{font-size:12px;color:var(--muted);padding:11px 0}
.global-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.global-person-card{display:grid;grid-template-columns:68px minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:19px;padding:13px}.global-person-photo,.person-photo-button{border:0;background:transparent;padding:0;cursor:pointer}.global-person-photo img{width:68px;height:68px;border-radius:18px;object-fit:cover}.person-photo-button img{display:block}.global-person-copy strong,.global-person-copy span,.global-person-copy small{display:block}.global-person-copy strong{font-size:16px;color:var(--forest)}.global-person-copy span{font-size:12px;margin-top:3px}.global-person-copy small{font-size:11px;color:var(--muted);margin-top:4px}.global-person-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.whatsapp-icon{width:16px;height:16px;vertical-align:-3px;flex:none}.button.whatsapp{background:#e8f8ef;color:#107c43;border:1px solid #c7ead5}
.history-detail{margin-top:28px;padding-top:25px;border-top:2px solid var(--rose)}.history-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.history-detail-head h2{font:28px 'Tenor Sans';color:var(--forest);margin:5px 0}.history-detail-head p{font-size:14px;color:var(--muted);margin:0}.history-detail-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.history-kpis{grid-template-columns:repeat(4,1fr)}.history-detail h3{font:21px 'Tenor Sans';color:var(--forest);margin:25px 0 10px}.detail-table{min-width:770px}.punctuality-table{min-width:880px}.punctuality-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.punctuality-heading h3{margin-bottom:4px}.punctuality-heading p{margin:0;color:var(--muted);font-size:12px}.punctuality-heading>span{font-size:11px;color:var(--wine,#8d3c42);background:var(--rose);padding:7px 10px;border-radius:99px}.table-person{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}.table-person img{width:38px;height:38px;border-radius:12px;object-fit:cover}.attention{color:var(--coral);background:var(--rose);border-radius:99px;padding:4px 9px}
.person-detail-dialog{width:min(780px,calc(100% - 24px));padding:30px}.person-profile-head{display:grid;grid-template-columns:145px 1fr;gap:22px;align-items:center}.person-profile-head>img{width:145px;height:145px;border-radius:25px;object-fit:cover;border:5px solid var(--rose)}.person-profile-head h2{font-size:32px;margin:5px 0}.person-profile-head p{font-size:14px;color:var(--muted);margin:0}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.profile-data{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:22px 0}.profile-data article{border:1px solid var(--line);border-radius:15px;padding:13px}.profile-data span,.profile-data strong,.profile-data a{display:block}.profile-data span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}.profile-data strong{font-size:14px;color:var(--ink);margin-top:5px}.profile-data a{font-size:12px;color:var(--coral);margin-top:5px}.profile-notes{background:var(--rose);border-radius:15px;padding:14px}.profile-notes p{font-size:13px;color:var(--ink);margin:5px 0 0}.profile-totals{grid-template-columns:repeat(4,1fr)}.profile-journeys{display:grid;gap:8px}.profile-journeys article{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;padding:12px}.profile-journeys strong,.profile-journeys span,.profile-journeys small{display:block}.profile-journeys strong{font-size:14px;color:var(--forest)}.profile-journeys span{font-size:12px;color:var(--ink);margin:3px 0}.profile-journeys small{font-size:11px;color:var(--muted)}
/* Tamaños cómodos para consulta operativa, especialmente en móviles. */
.person-main strong{font-size:16px}.person-main small{font-size:12px}.room-badge{font-size:11px}.status{font-size:13px}.attendance-state small{font-size:11px}.inline-room{font-size:11px}.mini{font-size:12px;min-height:35px}.history-table th{font-size:11px;padding:13px}.history-table td{font-size:13px;padding:13px}.history-table td strong{font-size:14px}.history-table td small{font-size:11px}.activity strong{font-size:14px}.activity p{font-size:12px}.activity time{font-size:11px}.directory-person strong{font-size:14px}.directory-person small{font-size:12px}.room-card small,.segment-card small{font-size:11px}.occupants span,.segment-card p{font-size:13px}
@media(max-width:850px){.role-guide{grid-template-columns:1fr 1fr}.history-controls{grid-template-columns:1fr 1fr}.history-controls .search{grid-column:1/-1}.profile-button span{display:none}.login-history-controls{grid-template-columns:1fr}}
@media(max-width:920px){.topbar{grid-template-columns:auto 1fr auto}.main-menu{grid-column:1/-1;grid-row:2;height:44px;overflow:auto;justify-content:flex-start;border-top:1px solid var(--line)}.main-menu button{min-width:max-content;padding:0 18px}.topbar{height:auto;padding-top:5px}.shell{padding-top:14px}.global-people-grid{grid-template-columns:1fr}.global-toolbar{grid-template-columns:1fr 1fr}.global-toolbar .search{grid-column:1/-1}}
@media(max-width:920px){.config-layout{grid-template-columns:1fr}.config-side{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.brand span{display:none}.account{gap:6px}.icon-button{font-size:12px}.main-menu{margin:0 -12px;padding:0 7px}.global-module{padding:18px 12px;border-radius:20px}.global-heading{align-items:flex-start}.global-heading h1{font-size:28px}.global-heading p{font-size:13px}.global-heading .button{padding:10px 13px}.directory-summary,.history-kpis{grid-template-columns:repeat(2,1fr)}.directory-summary article,.history-kpis article,.profile-totals article{padding:12px}.directory-summary strong,.history-kpis strong,.profile-totals strong{font-size:21px}.global-toolbar{grid-template-columns:1fr}.global-toolbar .search{grid-column:1}.global-person-card{grid-template-columns:62px 1fr}.global-person-photo img{width:62px;height:62px}.global-person-actions{display:grid;grid-template-columns:1fr 1fr}.global-person-actions .mini{display:flex;align-items:center;justify-content:center}.history-detail-head,.punctuality-heading{display:block}.history-detail-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:14px}.history-detail-actions .button{white-space:normal;text-align:center}.punctuality-heading>span{display:inline-block;margin-top:9px}.person-actions{grid-template-columns:repeat(2,1fr)!important}.person-main img{width:68px;height:68px}.person-profile-head{grid-template-columns:96px 1fr;gap:14px}.person-profile-head>img{width:96px;height:96px;border-radius:20px}.person-profile-head h2{font-size:24px}.profile-actions{grid-column:1/-1}.profile-actions .button{flex:1;padding:10px}.profile-data{grid-template-columns:1fr}.profile-totals{grid-template-columns:repeat(2,1fr)}.profile-journeys article{grid-template-columns:1fr}.profile-journeys .mini{width:100%;display:flex;justify-content:center}.person-detail-dialog{padding:22px 16px}.role-guide{grid-template-columns:1fr}.history-controls{grid-template-columns:1fr}.history-controls .search{grid-column:1}.history-controls select{width:100%}.profile-button>img{width:36px;height:36px}.person-edit-dialog .dialog-form{grid-template-columns:1fr}.person-edit-dialog .field-grid{grid-column:1}.edit-person-photo{justify-items:center;margin:auto}.directory-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.directory-actions .button{width:100%}}
@media(max-width:760px){.trace-controls{grid-template-columns:1fr}.trace-controls .search input{width:100%}.panel-head:has(#attendanceTraceCount){align-items:flex-start}.profile-sensitive-grid{grid-template-columns:1fr}.profile-sensitive-grid article.wide{grid-column:1}.form-section-title{display:block}.form-section-title span{display:block;margin-top:3px}.attendance-trace-wrap{margin:0;overflow:visible}.attendance-trace-table{display:block;min-width:0}.attendance-trace-table thead{display:none}.attendance-trace-table tbody{display:grid;gap:10px}.attendance-trace-table tr{display:grid;grid-template-columns:1fr auto;gap:9px;border:1px solid var(--line);border-radius:17px;padding:13px}.attendance-trace-table td{display:block;border:0!important;padding:0!important}.attendance-trace-table td:before{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:900;margin-bottom:4px}.attendance-trace-table td:nth-child(1):before{content:'Fecha y hora'}.attendance-trace-table td:nth-child(2):before{content:'Persona'}.attendance-trace-table td:nth-child(3):before{content:'Trayecto'}.attendance-trace-table td:nth-child(4):before{content:'Acción'}.attendance-trace-table td:nth-child(5):before{content:'Registrado por'}.attendance-trace-table td:nth-child(2),.attendance-trace-table td:nth-child(3),.attendance-trace-table td:nth-child(5){grid-column:1/-1}.attendance-trace-table .table-person img{width:45px;height:45px}}
@media(max-width:560px){.users-section-head{align-items:flex-start}.users-section-head h2{font-size:21px}.users-section-head p{font-size:13px}.user-card{grid-template-columns:48px 1fr}.user-card>img,.user-card>span{width:48px;height:48px}.user-card-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.user-card-actions .mini{min-height:39px}.login-history-card{grid-template-columns:43px 1fr;padding:11px}.login-history-card>img,.login-history-card>span{width:43px;height:43px}.login-history-card time{grid-column:2;text-align:left}.edit-user-photo{align-items:flex-start;flex-direction:column}.edit-user-photo img{align-self:center}}
@media(max-width:560px){.config-side{grid-template-columns:1fr}.config-card{padding:15px}.config-card .field-grid{grid-template-columns:1fr}.config-state{font-size:10px}.profile-actions .danger-button{flex-basis:100%}}
@media(max-width:700px){.notification-kpis{grid-template-columns:repeat(2,1fr)}.notification-kpis article:first-child{grid-column:1/-1}.notification-controls{grid-template-columns:1fr}.whatsapp-log{grid-template-columns:38px minmax(0,1fr) auto}.whatsapp-log .wa-status{grid-column:2}.whatsapp-log-open{grid-column:3;grid-row:2}.whatsapp-detail-dialog{padding:22px 15px}.wa-detail-head{display:block}.wa-detail-head .wa-status{margin-top:12px}.wa-detail-grid{grid-template-columns:1fr}.notification-history-section{padding:15px}.webhook-url-field>div{align-items:stretch}.webhook-url-field .mini{min-width:70px}}

/* Filtros de auditoría: cuatro columnas estables sin desbordar los campos de fecha. */
.audit-controls{grid-template-columns:minmax(260px,1.7fr) minmax(190px,1fr) minmax(155px,.72fr) minmax(155px,.72fr)}
.audit-controls>label{min-width:0}
.audit-controls input,.audit-controls select{box-sizing:border-box;width:100%;min-width:0;min-height:44px}
.audit-controls .audit-search{display:flex;align-items:center;min-width:0}
.audit-controls .audit-search input{flex:1}

/* Contactos: campos legibles y acción de notificación explicada. */
.contact-row{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;padding:16px}
.contact-row>label:not(.contact-notify){display:grid;gap:6px;min-width:0;font-size:12px;font-weight:800;color:var(--muted)}
.contact-row>label:not(.contact-notify) input{box-sizing:border-box;width:100%;min-width:0}
.contact-notify{grid-column:1/3;display:flex!important;align-items:flex-start;gap:10px;min-width:0;border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 12px;color:var(--ink)!important;cursor:pointer}
.contact-notify input{width:18px!important;height:18px;min-height:18px;flex:0 0 18px;margin:2px 0 0}
.contact-notify span,.contact-notify strong,.contact-notify small{display:block;min-width:0}
.contact-notify strong{font-size:12px;color:var(--wine,#8d3c42)}
.contact-notify small{font-size:11px;line-height:1.35;color:var(--muted);margin-top:3px}
.contact-remove{grid-column:3;justify-self:end;align-self:center;white-space:nowrap}

@media(max-width:980px){.audit-controls{grid-template-columns:minmax(240px,1fr) minmax(190px,1fr)}.audit-controls .audit-search{grid-column:1/-1}}
@media(max-width:700px){.contact-row{grid-template-columns:1fr}.contact-notify,.contact-remove{grid-column:1}.contact-remove{justify-self:stretch;display:flex;justify-content:center}.audit-controls{grid-template-columns:1fr}.audit-controls .audit-search{grid-column:1}}
/* Administración de viajes y respaldos */
.card-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.backup-section{margin-top:32px;padding:26px;border:1px solid #f0c8cb;border-radius:24px;background:rgba(233,81,95,.055)}
.backup-warning{margin:18px 0;padding:16px 18px;border-left:4px solid #e9515f;border-radius:12px;background:#fff;color:#72343a}
.backup-warning p{margin:5px 0 0;color:#765e61}
.backup-list{display:grid;gap:12px;margin:18px 0}
.backup-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:16px;border:1px solid #ecd5d7;border-radius:17px;background:#fff}
.backup-card .backup-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff0f1;color:#c83948;font-size:24px;font-weight:700}
.backup-card>div:nth-child(2){display:grid;gap:3px;min-width:0}.backup-card small,.backup-card span{color:#756367}.backup-card span{font-size:.78rem;overflow-wrap:anywhere}
.backup-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.backup-upload{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(190px,260px) auto;gap:12px;align-items:end;margin-top:22px;padding-top:20px;border-top:1px solid #edcccf}
.backup-upload>div{display:grid;gap:5px}.backup-upload small{color:#756367}.backup-upload label:not(.file-button){display:grid;gap:5px;font-weight:700;color:#8f3e46}.backup-upload input{min-height:44px}
@media(max-width:760px){.trip-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr}.trip-buttons .button{width:100%;padding-inline:10px}.card-admin-actions{width:100%;justify-content:flex-start}.backup-section{padding:18px 14px}.backup-card{grid-template-columns:auto 1fr}.backup-actions{grid-column:1/-1;justify-content:stretch}.backup-actions>*{flex:1;text-align:center}.backup-upload{grid-template-columns:1fr}.backup-upload .button{width:100%}}

/* Confirmaciones propias del sistema */
.confirm-dialog{width:min(510px,calc(100% - 24px));padding:34px 32px 30px;text-align:center;overflow:hidden;border:1px solid rgba(233,81,95,.22)}
.confirm-dialog::before{content:'';position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,#e9515f,#f3a0a8)}
.confirm-dialog::backdrop{background:rgba(88,38,43,.6);backdrop-filter:blur(5px)}
.confirm-symbol{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(145deg,#fff0f1,#ffdfe2);color:#bd3442;font:900 28px 'Nunito Sans';box-shadow:0 9px 24px rgba(233,81,95,.18)}
.confirm-dialog .eyebrow{display:block;margin-bottom:5px}.confirm-dialog h2{margin:5px 0 10px;color:var(--wine,#8d3c42)}
.confirm-dialog>p{margin:0;color:var(--ink);font-size:15px;line-height:1.55}
.confirm-warning{margin:17px 0 0;padding:12px 14px;border:1px solid #f0c7ca;border-radius:13px;background:#fff5f5;color:#88434a;font-size:13px;line-height:1.45}
.confirm-dialog>label{display:grid;gap:7px;margin-top:18px;text-align:left;color:var(--ink);font-size:13px}.confirm-dialog>label strong{color:var(--wine,#8d3c42);overflow-wrap:anywhere}
.confirm-dialog>label input{box-sizing:border-box;width:100%;border:1px solid #e5b9bd;border-radius:13px;padding:12px 13px;outline:0;background:#fff}.confirm-dialog>label input:focus{border-color:var(--coral);box-shadow:0 0 0 4px rgba(233,81,95,.12)}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.confirm-actions .button{width:100%;min-height:44px}.confirm-actions .danger-button{background:#c83d4b;color:#fff;box-shadow:0 7px 18px rgba(200,61,75,.22)}
.confirm-actions .danger-button:hover{background:#ad303d}.confirm-actions .danger-button:disabled{box-shadow:none}
@media(max-width:520px){.confirm-dialog{padding:30px 18px 20px}.confirm-actions{grid-template-columns:1fr}.confirm-actions #confirmAccept{grid-row:1}.confirm-dialog>p{font-size:14px}}
