:root{
  --brand-blue:#1083E8;
  --brand-cyan:#68A6DD;
  --brand-green:#168C46;
  --brand-teal:#0F9F8D;
  --surface:#FFFFFF;
  --surface-soft:#F6FAFD;
  --network-pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='340' viewBox='0 0 520 340'%3E%3Cg fill='none' stroke='%231083E8' stroke-opacity='.46' stroke-width='1.35'%3E%3Cpath d='M0 78L72 32L146 92L222 50L302 128L386 82L520 116'/%3E%3Cpath d='M34 214L118 160L204 218L292 176L382 238L498 188'/%3E%3Cpath d='M72 32L118 160L222 50M146 92L204 218L302 128M386 82L382 238M222 50L292 176M302 128L382 238'/%3E%3Cpath d='M-18 286L62 248L126 300L214 254L318 304L416 262L538 292' stroke-opacity='.28'/%3E%3C/g%3E%3Cg fill='%231083E8' fill-opacity='.72'%3E%3Ccircle cx='72' cy='32' r='3.2'/%3E%3Ccircle cx='146' cy='92' r='2.8'/%3E%3Ccircle cx='222' cy='50' r='3'/%3E%3Ccircle cx='302' cy='128' r='3.4'/%3E%3Ccircle cx='386' cy='82' r='2.8'/%3E%3Ccircle cx='118' cy='160' r='3'/%3E%3Ccircle cx='204' cy='218' r='2.7'/%3E%3Ccircle cx='292' cy='176' r='3'/%3E%3Ccircle cx='382' cy='238' r='3.2'/%3E%3Ccircle cx='498' cy='188' r='2.6'/%3E%3C/g%3E%3Cg fill='%2368A6DD' fill-opacity='.3'%3E%3Ccircle cx='88' cy='118' r='15'/%3E%3Ccircle cx='342' cy='104' r='18'/%3E%3Ccircle cx='248' cy='258' r='13'/%3E%3Ccircle cx='452' cy='248' r='10'/%3E%3C/g%3E%3C/svg%3E");
  --pattern-lines:var(--network-pattern) center / 520px 340px repeat;
  --primary:#0B3C5D;
  --secondary:#1CA3D9;
  --accent:#00BCD4;
  --cta:#F57C00;
  --success:#4CAF50;
  --danger:#EF4444;
  --bg-dark:#0F172A;
  --text:#0f172a;
  --muted:#64748b;
  --line:#dbe4ef;
  --panel:rgba(255,255,255,.86);
  --shadow:0 18px 46px rgba(15,23,42,.12);
}

*{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){
  *{scroll-behavior:smooth}
  .stat-card,.panel,.table-card,.report-card,.doc-section,.dashboard-hero,.workflow-board,.risk-sticky{
    animation:riseIn .34s ease both;
  }
}
@keyframes riseIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
body{margin:0;font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif;background:#eef6fb;color:var(--text)}
button,input,select,textarea{font:inherit}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0B3C5D,#0F172A 55%,#1CA3D9)}
.login-panel{width:min(430px,100%);padding:34px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.92);box-shadow:var(--shadow)}
.login-panel h1{margin:14px 0 6px;color:var(--primary)}
.login-panel p{margin:0 0 22px;color:var(--muted)}
.brand-mark{width:46px;height:46px;border-radius:8px;background:linear-gradient(135deg,var(--secondary),var(--primary));color:#fff;display:grid;place-items:center;font-weight:900}
.login-shell{padding:20px}
.login-panel{position:relative;z-index:1;width:min(520px,100%);padding:28px;border-radius:18px;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);box-shadow:0 28px 80px rgba(15,23,42,.16)}
.login-brand{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center;margin-bottom:18px}.login-brand img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(11,60,93,.14))}.login-brand h1{margin:0 0 5px;color:#07385a;font-size:30px;line-height:1}.login-brand p{margin:0;color:#526d87;line-height:1.35}
.login-altcha{display:grid;gap:8px;margin-top:2px}
.login-altcha altcha-widget{
  display:block;
  width:100%;
  --altcha-max-width:100%;
  --altcha-border-radius:8px;
  --altcha-color-base:#f8fbff;
  --altcha-color-text:#14324a;
  --altcha-color-border:#bed8ea;
  --altcha-color-border-focus:#1083E8;
  --altcha-color-active:#168C46;
}
.login-altcha-status{margin:0!important;color:#526d87!important;font-size:13px;line-height:1.35}
.login-altcha-status[data-state="verified"]{color:#168C46!important}
.login-altcha-status[data-state="expired"],
.login-altcha-status[data-state="error"]{color:#b42318!important}
#loginSubmit:disabled{cursor:not-allowed;opacity:.68}
#loginSubmit svg[data-lucide="loader-circle"]{animation:spin .8s linear infinite}
.login-test-users{margin:0 0 18px}
.login-test-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:10px}
.login-test-head strong{color:#07385a;font-size:15px}
.login-test-head span{color:#60758a;font-size:12px;text-align:right}
.login-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.login-role-grid button{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"icon name" "icon role";
  align-items:center;
  column-gap:9px;
  min-height:58px;
  border:1px solid #cfe2ef;
  border-radius:12px;
  background:#eaf4fb;
  color:#07385a;
  font-weight:900;
  cursor:pointer;
  padding:9px 10px;
  text-align:left;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease;
}

.departure-section{
  border-color:#9fc7df;
  background:linear-gradient(180deg,#f6fbff 0%,#ffffff 58%);
}
.departure-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:0 0 12px;
}
.departure-summary article{
  min-width:0;
  padding:10px;
  border:1px solid #d5e7f2;
  border-radius:8px;
  background:#fff;
}
.departure-summary span{
  display:block;
  color:#526d87;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.departure-summary strong{
  display:block;
  margin-top:4px;
  color:#07385a;
  font-size:14px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
@media (max-width:900px){
  .departure-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .departure-summary{grid-template-columns:1fr}
}

/* Bandeja simple: override final para evitar compresiones de reglas antiguas. */
.notification-panel{
  width:min(720px,calc(100vw - 18px))!important;
  max-height:min(680px,calc(100vh - 92px))!important;
  overflow:auto!important;
}
.notification-panel header{
  grid-template-columns:minmax(190px,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
}
.notification-head-actions{
  display:grid!important;
  grid-template-columns:auto auto 42px!important;
  align-items:center!important;
  gap:8px!important;
}
.notification-head-actions .btn{
  min-height:40px!important;
  padding:8px 14px!important;
}
.notification-filters{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:10px!important;
  padding:12px!important;
}
.notification-filters input[name="buscar"]{
  grid-column:1/-1!important;
}
.notification-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
}
.notification-tabs button{
  width:100%!important;
  height:38px!important;
  padding:0 10px!important;
  white-space:nowrap!important;
}
.notification-list{
  gap:10px!important;
  padding:10px!important;
}
.notification-item{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"main actions"!important;
  align-items:center!important;
  gap:14px!important;
  padding:12px 14px!important;
  border-radius:10px!important;
}
.notification-main{
  grid-area:main!important;
  grid-template-columns:36px minmax(0,1fr)!important;
  gap:12px!important;
  min-width:0!important;
}
.notification-main>span{
  width:36px!important;
  height:36px!important;
  border-radius:9px!important;
}
.notification-main strong{
  font-size:15px!important;
  line-height:1.2!important;
}
.notification-main p{
  max-width:100%!important;
  margin:4px 0 0!important;
  font-size:14px!important;
  line-height:1.35!important;
  -webkit-line-clamp:2!important;
}
.notification-date{
  margin-top:5px!important;
}
.notification-actions{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:76px 82px!important;
  grid-template-areas:"badge badge" "open delete"!important;
  align-items:center!important;
  gap:7px!important;
  min-width:174px!important;
}
.notification-actions .badge{
  grid-area:badge!important;
  justify-self:end!important;
}
.notification-open{
  grid-area:open!important;
}
.notification-delete{
  grid-area:delete!important;
}
.notification-open,.notification-delete{
  width:100%!important;
  min-height:34px!important;
  padding:7px 10px!important;
  border-radius:8px!important;
}

@media (max-width:640px){
  .notification-panel{
    top:78px!important;
    right:6px!important;
    left:6px!important;
    width:auto!important;
    max-height:calc(100vh - 86px)!important;
  }
  .notification-panel header{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .notification-head-actions{
    grid-template-columns:1fr 1fr 38px!important;
  }
  .notification-head-actions .btn{
    min-height:36px!important;
    padding:7px 8px!important;
    font-size:12px!important;
  }
  .notification-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .notification-tabs button{
    height:36px!important;
    padding:0 6px!important;
    font-size:12px!important;
  }
  .notification-item{
    grid-template-columns:1fr!important;
    grid-template-areas:"main" "actions"!important;
    align-items:stretch!important;
    gap:9px!important;
    padding:10px!important;
  }
  .notification-main{
    grid-template-columns:32px minmax(0,1fr)!important;
    gap:9px!important;
  }
  .notification-main>span{
    width:32px!important;
    height:32px!important;
  }
  .notification-main strong{
    font-size:14px!important;
  }
  .notification-main p{
    font-size:12px!important;
    line-height:1.3!important;
    -webkit-line-clamp:2!important;
  }
  .notification-actions{
    grid-template-columns:auto 72px 82px!important;
    grid-template-areas:"badge open delete"!important;
    min-width:0!important;
  }
  .notification-actions .badge{
    justify-self:start!important;
  }
}
.login-role-grid button i,.login-role-grid button svg{grid-area:icon;width:22px;height:22px;color:#1083e8}
.login-role-grid button strong{grid-area:name;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.login-role-grid button span{grid-area:role;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60758a;font-size:11px}
.login-role-grid button:hover,.login-role-grid button.active{border-color:#1083e8;background:#1083e8;color:#fff;transform:translateY(-1px)}
.login-role-grid button:hover span,.login-role-grid button.active span,.login-role-grid button:hover svg,.login-role-grid button.active svg{color:#eaf7ff}
.login-role-grid button.loading{opacity:.72;pointer-events:none}
.login-role-grid button.loading strong::after{content:" · entrando"}
.login-panel .form-stack{gap:12px}.login-panel input{min-height:48px;border-radius:10px}.login-panel .btn{min-height:46px;border-radius:10px}.login-panel small{display:block;margin-top:10px;color:#526d87;text-align:center}.login-panel small strong{color:#07385a}
.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:7px;color:#334155;font-weight:700}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;color:var(--text)}
textarea{min-height:88px;resize:vertical}
.field-invalid,
.field-invalid-host input,
.field-invalid-host select,
.field-invalid-host textarea,
.invalid input,
.invalid select,
.invalid textarea{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}
.field-valid{border-color:#86c995!important}
.field-error{display:block;margin-top:6px;color:#b42318;font-size:12px;font-weight:800;line-height:1.25}
.form-error-summary{grid-column:1/-1;margin:0 0 12px;padding:10px 12px;border:1px solid #fecaca;border-radius:8px;background:#fff1f2;color:#991b1b;font-weight:900}
.image-upload-preview{margin-top:8px}
.image-upload-preview figure{display:grid;grid-template-columns:76px minmax(0,1fr) 38px;align-items:center;gap:10px;margin:0;padding:8px;border:1px solid #dbe4ef;border-radius:8px;background:#f8fbfd}
.image-upload-preview img{width:76px;height:58px;object-fit:cover;border-radius:6px;background:#e8f1f7}
.image-upload-preview figcaption{display:grid;gap:2px;min-width:0}
.image-upload-preview figcaption strong,.image-upload-preview figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vehicle-thumb{width:54px!important;height:38px!important;object-fit:cover!important;border-radius:6px!important}
.btn{border:0;border-radius:8px;padding:11px 15px;cursor:pointer;font-weight:800;color:#fff;background:var(--primary)}
.btn,.nav-btn,.float-trigger,.float-dropdown button,.doc-section-tabs button,.workflow-step{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,border-color .16s ease}
.btn:hover,.float-trigger:hover{transform:translateY(-1px)}
.btn:active,.nav-btn:active,.float-trigger:active,.float-dropdown button:active{transform:translateY(0) scale(.98)}
.btn.cta{background:var(--cta)}.btn.success{background:var(--success)}.btn.danger{background:var(--danger)}.btn.ghost{background:#e8f1f7;color:var(--primary)}
.btn:disabled,.icon-btn:disabled,.float-trigger:disabled,.form-card-action:disabled,button[data-busy="1"]{opacity:.68;cursor:not-allowed;transform:none!important;filter:saturate(.72)}
.btn .lucide-loader-circle,button[data-busy="1"] .lucide-loader-circle{animation:spin .8s linear infinite}
.icon-btn{border:0;background:#e8f1f7;color:var(--primary);border-radius:8px;width:40px;height:40px;cursor:pointer;font-weight:900}
.ui-icon{
  display:block;
  width:19px;
  height:19px;
  margin:auto;
  background:currentColor;
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-position:center;
  mask-repeat:no-repeat;
  mask-size:contain;
}
.theme-icon{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M21.75 15.5A9.5 9.5 0 0 1 8.5 2.25 9.5 9.5 0 1 0 21.75 15.5Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M21.75 15.5A9.5 9.5 0 0 1 8.5 2.25 9.5 9.5 0 1 0 21.75 15.5Z'/%3E%3C/svg%3E");
}
.theme-toggle.show-sun .theme-icon{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0-7 1.5 3h-3L12 0Zm0 24-1.5-3h3L12 24ZM0 12l3-1.5v3L0 12Zm24 0-3 1.5v-3L24 12ZM3.51 3.51l3.18 1.06-2.12 2.12-1.06-3.18Zm16.98 16.98-3.18-1.06 2.12-2.12 1.06 3.18Zm0-16.98-1.06 3.18-2.12-2.12 3.18-1.06ZM3.51 20.49l1.06-3.18 2.12 2.12-3.18 1.06Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0-7 1.5 3h-3L12 0Zm0 24-1.5-3h3L12 24ZM0 12l3-1.5v3L0 12Zm24 0-3 1.5v-3L24 12ZM3.51 3.51l3.18 1.06-2.12 2.12-1.06-3.18Zm16.98 16.98-3.18-1.06 2.12-2.12 1.06 3.18Zm0-16.98-1.06 3.18-2.12-2.12 3.18-1.06ZM3.51 20.49l1.06-3.18 2.12 2.12-3.18 1.06Z'/%3E%3C/svg%3E");
}
.install-icon{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 3h2v9.17l2.59-2.58L17 11l-5 5-5-5 1.41-1.41L11 12.17V3ZM5 18h14v2H5v-2Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 3h2v9.17l2.59-2.58L17 11l-5 5-5-5 1.41-1.41L11 12.17V3ZM5 18h14v2H5v-2Z'/%3E%3C/svg%3E");
}
.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}
.sidebar{background:var(--bg-dark);color:#d8e9f5;padding:22px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand span{display:block;color:#93c5d7;font-size:13px}
.sidebar nav{display:grid;gap:7px}.nav-btn{width:100%;text-align:left;border:0;border-radius:8px;padding:12px 13px;background:transparent;color:#d8e9f5;cursor:pointer;font-weight:700}
.nav-btn:hover,.nav-btn.active{background:rgba(28,163,217,.18);color:#fff}
.workspace{min-width:0}.navbar{height:78px;background:rgba(255,255,255,.84);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:2}
.navbar h1{font-size:24px;margin:0;color:var(--primary)}.navbar p{margin:2px 0 0;color:var(--muted)}
.user-pill{display:flex;align-items:center;gap:10px;background:#f8fbfd;border:1px solid var(--line);padding:8px;border-radius:8px}.user-pill strong{color:var(--secondary)}
.notification-toggle{position:relative}.notification-toggle span{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ff6b00;color:#fff;font-size:11px;font-weight:900;line-height:18px}
.firebase-push-button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:9px 11px;white-space:nowrap}
.firebase-push-button[data-push-state="success"]{background:#e8f7ee;color:#087537}
.firebase-push-button[data-push-state="warning"]{background:#fff8e8;color:#a15c00}
.firebase-push-button[data-push-state="danger"]{background:#fff0f2;color:#c9273c}
.firebase-push-button[data-push-state="info"]{background:#eef8ff;color:#1083e8}
.firebase-push-button svg{width:16px;height:16px}
.notification-panel{position:fixed;top:76px;right:24px;z-index:420;width:min(430px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 96px));overflow:auto;border:1px solid #c7dbea;border-radius:16px;background:#fff;box-shadow:0 26px 70px rgba(15,23,42,.28)}
.notification-panel header{position:sticky;top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-bottom:1px solid #d9e8f1;background:#f8fbfd;z-index:2}.notification-panel header strong{display:block;color:#07385a}.notification-panel header span{color:#617386;font-size:12px}.notification-head-actions{display:flex;gap:8px;justify-content:flex-end}.notification-head-actions .btn{min-height:38px;padding:8px 12px;white-space:nowrap}.notification-filters{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(112px,.75fr) minmax(132px,.85fr);gap:8px;padding:12px;border-bottom:1px solid #e1edf5;background:#fff}.notification-filters input,.notification-filters select{width:100%;min-width:0;height:42px;padding:9px 11px;border-radius:8px}.notification-list{display:grid;gap:8px;padding:10px}.notification-item{display:grid;gap:8px;width:100%;padding:10px;border:1px solid #d9e8f1;border-radius:12px;background:#f8fbfd;color:#102033;text-align:left}.notification-item.unread{border-color:#68a6dd;background:#eef8ff;box-shadow:inset 4px 0 0 #1083e8}.notification-item.invalid{opacity:.82}.notification-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.notification-main>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dff0fb;color:#0b5f96}.notification-item.tone-warning .notification-main>span{background:#fff2cc;color:#a15c00}.notification-item.tone-danger .notification-main>span{background:#ffe1e5;color:#c9273c}.notification-item.tone-success .notification-main>span{background:#e8f7ee;color:#087537}.notification-item strong{display:block;color:#07385a}.notification-item p{margin:3px 0;color:#526d87;line-height:1.3}.notification-item small{color:#7b8fa1}.notification-item em{display:block;margin-top:5px;color:#a15c00;font-style:normal;font-weight:800}.notification-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.notification-actions .icon-btn{width:32px;height:32px}.notification-actions .icon-btn.danger{color:#dc2626;background:#fff0f2}
.notification-filters{grid-template-columns:1fr;gap:10px}.notification-search{grid-column:1/-1}.notification-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.notification-tabs button{height:36px;border:1px solid #d5e5ef;border-radius:8px;background:#f7fbfe;color:#526d87;font-weight:900;cursor:pointer;overflow:hidden;text-overflow:ellipsis}.notification-tabs button.active{background:#0b5f96;color:#fff;border-color:#0b5f96}.notification-item{grid-template-columns:1fr}.notification-main strong{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-main p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:2px}.notification-date{display:block;margin-top:4px;font-size:11px;line-height:1.2}.notification-trace{display:block;margin-top:4px;color:#7b8fa1;font-size:11px;font-weight:800}.notification-actions{display:grid;grid-template-columns:auto 72px 88px;align-items:center;gap:8px;justify-content:stretch}.notification-actions .badge{justify-self:start}.notification-open,.notification-delete{min-height:32px;padding:6px 10px;font-size:12px;justify-content:center}
.notification-fallback{display:grid;place-items:center;min-height:52vh}
.notification-fallback-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(680px,100%);padding:22px;border:1px solid #d9e8f1;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.08)}
.notification-fallback-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#eef4f8;color:#526d87}
.notification-fallback-card h3{margin:0;color:#07385a;font-size:22px;line-height:1.2}
.notification-fallback-card p{margin:6px 0 0;color:#526d87;line-height:1.45}
.notification-fallback-card footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px}
#app{padding:24px}.hero-band{background:linear-gradient(135deg,rgba(11,60,93,.96),rgba(28,163,217,.86));color:#fff;border-radius:8px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow)}
.hero-band h2{margin:0;font-size:26px}.hero-band p{margin:7px 0 0;color:#e7f7ff}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stat-card,.panel,.table-card{background:var(--panel);border:1px solid rgba(255,255,255,.72);border-radius:8px;box-shadow:var(--shadow)}
.stat-card{padding:18px}.stat-card span{color:var(--muted);font-weight:700}.stat-card strong{display:block;font-size:30px;margin-top:8px;color:var(--primary)}
.content-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.panel{padding:18px}
.panel h3,.table-card h3{margin:0 0 12px;color:var(--primary)}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.toolbar .filters{display:flex;gap:8px;flex-wrap:wrap}
.table-card{padding:16px;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}.data-table-vehiculos{min-width:860px}.data-table-vehiculos th{white-space:nowrap}.data-table-vehiculos td{white-space:normal;overflow-wrap:break-word}.data-table-vehiculos th:nth-child(1),.data-table-vehiculos td:nth-child(1),.data-table-vehiculos th:nth-child(4),.data-table-vehiculos td:nth-child(4),.data-table-vehiculos th:nth-child(6),.data-table-vehiculos td:nth-child(6),.data-table-vehiculos th:nth-child(7),.data-table-vehiculos td:nth-child(7){white-space:nowrap}.data-table-vehiculos .actions{min-width:max-content;gap:5px}.data-table-vehiculos .actions .btn{min-height:34px;padding:7px 9px;font-size:12px;line-height:1}.data-table-vehiculos .actions .btn svg{width:15px;height:15px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px;font-size:14px}th{color:var(--primary);background:#f1f8fc;position:sticky;top:0}td{color:#26364a}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#e7f7ff;color:var(--primary);font-weight:800;font-size:12px}
.actions{display:flex;gap:7px}.actions .btn{padding:8px 10px}
.global-progress{position:fixed;top:0;left:0;z-index:700;width:100%;height:3px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .18s ease}
.global-progress::before{content:"";display:block;width:42%;height:100%;background:linear-gradient(90deg,#1083e8,#68a6dd,#4caf50);transform:translateX(-100%);animation:progressSlide 1.05s ease-in-out infinite}
body.is-busy .global-progress{opacity:1}
@keyframes progressSlide{0%{transform:translateX(-100%)}55%{transform:translateX(145%)}100%{transform:translateX(245%)}}
@keyframes spin{to{transform:rotate(360deg)}}
.ux-state{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:28px;border:1px solid #d9e8f1;border-radius:14px;background:#fff;color:#07385a;box-shadow:0 14px 34px rgba(15,23,42,.06)}
.ux-state strong{display:block;color:#07385a;font-size:18px}.ux-state p{margin:4px 0 0;color:#526d87;line-height:1.4}
.ux-spinner{width:34px;height:34px;border-radius:999px;border:3px solid #d9e8f1;border-top-color:#1083e8;animation:spin .8s linear infinite}
.ux-state-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eef8ff;color:#1083e8}
.empty-state{box-shadow:none;background:#fbfdff}
.empty-actions{display:flex;justify-content:flex-start;margin-top:14px}
.toast{position:fixed;z-index:10000;top:max(14px,env(safe-area-inset-top));left:50%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:min(520px,calc(100% - 24px));padding:12px;border:1px solid #bcd6e5;border-radius:14px;background:#fff;color:#102033;box-shadow:0 20px 52px rgba(15,23,42,.24);transform:translate(-50%,-140%);opacity:0;pointer-events:none;transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}.toast.success{border-color:#bcebc9}.toast.warning{border-color:#ffe0a6}.toast.error{border-color:#ffc4c9}.toast.info{border-color:#bcd6e5}.toast-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e8f7ee;color:#087537;font-weight:900}.toast.warning .toast-icon{background:#fff8e8;color:#d08a00}.toast.error .toast-icon{background:#fff0f2;color:#c9273c}.toast.info .toast-icon{background:#eef8ff;color:#1083e8}.toast-copy{display:grid;gap:2px;min-width:0}.toast-copy strong{color:#07385a;font-size:13px}.toast-copy small{color:#526d87;line-height:1.3;overflow-wrap:anywhere}.toast-close{width:30px;height:30px;border:0;border-radius:8px;background:#edf4f8;color:#07385a;font-size:18px;font-weight:900;cursor:pointer}
.modal{border:0;background:transparent;width:min(820px,calc(100% - 28px))}.modal::backdrop{background:rgba(15,23,42,.58)}
.modal-card{background:#fff;border-radius:8px;padding:0;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;color:var(--primary)}
.modal-validation-alert{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin:14px 18px 0;padding:12px;border:1px solid #fecaca;border-radius:10px;background:#fff1f2;color:#991b1b;box-shadow:0 10px 24px rgba(153,27,27,.08)}
.modal-validation-alert svg{width:20px;height:20px;color:#dc2626}
.modal-validation-alert strong{display:block;color:#7f1d1d;font-size:13px}
.modal-validation-alert small{display:block;margin-top:2px;color:#991b1b;font-size:12px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
#modalBody{padding:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}#modalBody select[multiple]{min-height:118px;padding:10px}.modal footer{border-top:1px solid var(--line);padding:14px 18px;display:flex;justify-content:flex-end;gap:10px}
.vehicle-detail{display:grid;gap:14px}.vehicle-detail-hero{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid #cfe2ef;border-radius:12px;background:#f8fbfd}.vehicle-detail-image{display:grid;place-items:center;width:96px;height:76px;border-radius:10px;background:#e7f7ff;color:#526d87;font-size:12px;font-weight:900;text-align:center;overflow:hidden}.vehicle-detail-image img{width:100%;height:100%;object-fit:cover}.vehicle-detail-hero strong{display:block;color:#07385a;font-size:22px}.vehicle-detail-hero span{display:block;margin:2px 0 8px;color:#526d87}.vehicle-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vehicle-detail article{padding:13px;border:1px solid #d9e8f1;border-radius:10px;background:#fff}.vehicle-detail h3{margin:0 0 10px;color:#07385a;font-size:14px}.vehicle-detail p{display:grid;grid-template-columns:minmax(108px,.75fr) minmax(0,1fr);gap:8px;margin:0;padding:7px 0;border-top:1px solid #eef4f8}.vehicle-detail p:first-of-type{border-top:0}.vehicle-detail p span{color:#526d87;font-size:12px;font-weight:800}.vehicle-detail p strong{min-width:0;color:#102033;overflow-wrap:anywhere}.vehicle-detail-notes p{display:block;color:#26364a;line-height:1.45}
@media (max-width:760px){.vehicle-detail-hero{grid-template-columns:1fr}.vehicle-detail-image{width:100%;height:140px}.vehicle-detail-grid{grid-template-columns:1fr}.vehicle-detail p{grid-template-columns:1fr;gap:2px}}
@media (max-width:760px){.data-table-vehiculos{min-width:820px}.data-table-vehiculos th,.data-table-vehiculos td{padding:9px 8px;font-size:12px}.data-table-vehiculos .actions .btn{min-height:30px;padding:6px 8px;font-size:11px}.data-table-vehiculos .actions .btn svg{width:14px;height:14px}}
.wide{grid-column:1/-1}.empty{padding:28px;text-align:center;color:var(--muted)}
.driver-user-section{display:grid;grid-template-rows:auto 0fr;gap:0;border:1px solid #cfe2ef;border-radius:12px;background:#f8fbfd;overflow:hidden;opacity:.62;transition:grid-template-rows .22s ease,opacity .2s ease,border-color .2s ease,background .2s ease}
.driver-user-section.active{grid-template-rows:auto 1fr;opacity:1;border-color:#68a6dd;background:#eef8ff}
.driver-user-section header{padding:13px 14px;border-bottom:1px solid transparent}
.driver-user-section.active header{border-bottom-color:#cfe2ef}
.driver-user-section strong{display:block;color:#07385a;font-size:13px;letter-spacing:.03em}
.driver-user-section span{display:block;margin-top:3px;color:#526d87;font-size:12px}
.driver-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;padding:0 14px;overflow:hidden}
.driver-user-section.active .driver-user-grid{padding:14px}
.driver-user-grid label{display:grid;gap:7px;color:#334155;font-weight:800}
.driver-license-panel{display:grid;gap:10px;padding:0 14px 14px;min-height:0;overflow:hidden}
.driver-license-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.driver-license-head strong{font-size:14px}
.driver-license-list{display:grid;gap:10px}
.driver-license-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(120px,.9fr) minmax(140px,.9fr) auto auto;gap:10px;align-items:end;padding:10px;border:1px solid #cfe2ef;border-radius:12px;background:#fff}
.driver-license-row label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:900}
.driver-license-status{align-self:center;justify-self:start;white-space:nowrap}
.driver-eligibility-hint{display:block;margin-top:6px;font-size:12px;font-weight:800}
.driver-eligibility-hint.is-ok{color:#15803d}
.driver-eligibility-hint.is-blocked{color:#b91c1c}
.driver-eligibility-hint.is-pending{color:#9a5b00}
.future-reservation-host,.future-reservation-card{grid-column:1/-1}
.future-reservation-host[hidden],.driver-future-reservation-host[hidden]{display:none!important}
.future-reservation-loading,.future-reservation-denied{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:14px;border:1px solid #f1c27d;border-radius:14px;background:#fff8e8;color:#754100}
.future-reservation-loading svg{animation:spin 1s linear infinite}
.future-reservation-denied{border-color:#ffc4c9;background:#fff0f2;color:#8b1e2d}
.future-reservation-denied p{margin:4px 0 0}
.future-reservation-card{display:grid;gap:12px;padding:16px;border:1px solid #f1c27d;border-left:5px solid #e28a00;border-radius:14px;background:#fff8e8;color:#5f3a00}
.future-reservation-card.is-progress{border-color:#9ccce7;border-left-color:#2583b8;background:#eef8ff;color:#07385a}
.future-reservation-card.is-conflict{border-color:#ffc4c9;border-left-color:#c62828;background:#fff0f2;color:#8b1e2d}
.future-reservation-card header{display:flex;align-items:center;gap:10px}
.future-reservation-card header>svg{flex:0 0 auto}
.future-reservation-card header div{display:grid;gap:2px}
.future-reservation-card header span{font-size:12px;text-transform:capitalize}
.future-reservation-card p{margin:0}
.future-reservation-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}
.future-reservation-card dl div{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.7)}
.future-reservation-card dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;opacity:.75}
.future-reservation-card dd{margin:0;font-weight:800}
.future-reservation-actions{display:flex;flex-wrap:wrap;gap:8px}
.future-reservation-config{grid-column:1/-1;padding:12px 14px;border:1px dashed #9ccce7;border-radius:12px;background:#f7fbfe}
.future-reservation-config summary{display:flex;align-items:center;gap:8px;color:#07385a;font-weight:900;cursor:pointer}
.future-reservation-config>div{display:flex;align-items:end;gap:10px;margin-top:12px}
.future-reservation-config label{display:grid;gap:5px;min-width:220px;font-weight:800}
.future-reservation-config small{display:block;margin-top:8px;color:#526d87}
@media(max-width:680px){.future-reservation-card dl{grid-template-columns:1fr}.future-reservation-actions .btn{width:100%}}
:root[data-theme="dark"] .driver-eligibility-hint.is-pending{color:#fcd34d}
:root[data-theme="dark"] .future-reservation-card,:root[data-theme="dark"] .future-reservation-loading{border-color:#8a641f;background:#332507;color:#fde7b0}
:root[data-theme="dark"] .future-reservation-card.is-progress{border-color:#31516a;background:#10283b;color:#dff5ff}
:root[data-theme="dark"] .future-reservation-card.is-conflict{border-color:#7f3741;background:#35171c;color:#fecaca}
:root[data-theme="dark"] .future-reservation-card dl div{background:rgba(0,0,0,.18)}
:root[data-theme="dark"] .future-reservation-denied{border-color:#7f3741;background:#35171c;color:#fecaca}
:root[data-theme="dark"] .future-reservation-config{border-color:#31516a;background:#10283b}:root[data-theme="dark"] .future-reservation-config summary{color:#dff5ff}:root[data-theme="dark"] .future-reservation-config small{color:#9db1c2}
@media(max-width:680px){.future-reservation-config>div{align-items:stretch;flex-direction:column}.future-reservation-config label{min-width:0}}
.driver-link-alert{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:12px;border:1px solid #ffe0a6;border-radius:12px;background:#fff8e8;color:#7a4a00;font-weight:800}
.driver-link-alert svg{width:20px;height:20px;flex:0 0 auto;color:#d08a00}
.doc-actions{position:sticky;top:78px;z-index:3;display:flex;gap:8px;flex-wrap:wrap;background:#f3f5f7;border:1px solid #c9ced6;border-radius:6px;padding:10px;margin-bottom:10px}
.risk-sticky{position:sticky;top:136px;z-index:3;display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #333;padding:8px 10px;margin-bottom:12px;font-size:13px}
.document-context-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.document-context-panel article{min-width:0;padding:12px;border:1px solid #d9e8f1;border-radius:12px;background:#fff;color:#07385a;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.document-context-panel span{display:block;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase}
.document-context-panel strong{display:block;margin-top:4px;color:#07385a;overflow-wrap:anywhere}
.document-context-panel small{display:block;margin-top:3px;color:#526d87;font-weight:800;overflow-wrap:anywhere}
.doc-page{max-width:1320px;min-width:1080px;margin:0 auto 28px;background:#fff;color:#000;border:1px solid #333;font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12px;box-shadow:0 12px 28px rgba(15,23,42,.08)}
.doc-header{display:grid;grid-template-columns:190px 1fr 220px;border-bottom:1px solid #333}
.doc-logo{display:grid;place-items:center;font-weight:800;font-size:18px;color:#0B3C5D;border-right:1px solid #333;min-height:88px}
.doc-title{display:grid;place-items:center;text-align:center;border-right:1px solid #333;line-height:1.45}
.doc-title strong:last-child{font-size:15px}.doc-meta{display:grid;grid-template-rows:repeat(4,1fr)}
.doc-meta span{display:flex;align-items:center;border-bottom:1px solid #333;padding:4px 8px;font-weight:700}.doc-meta span:last-child{border-bottom:0}
.doc-conf{grid-column:1/3;border-top:1px solid #333;padding:6px 8px;text-align:center;font-size:11px}.doc-number{grid-column:3/4;border-top:1px solid #333;padding:6px 8px;text-align:center;font-weight:800;font-size:16px}
.doc-two-cols{display:grid;grid-template-columns:1fr 1fr}.doc-section{border:0;border-right:1px solid #333;border-bottom:1px solid #333;margin:0;padding:0;min-width:0}.doc-section.full{border-right:0}
.doc-section legend{display:block;width:100%;background:#4472C4;color:#fff;text-align:center;font-weight:800;padding:6px;border-bottom:1px solid #333;letter-spacing:0}
.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.doc-cell{display:grid;grid-template-columns:155px 1fr;align-items:stretch;min-height:34px;border-right:1px solid #666;border-bottom:1px solid #666;background:#fff}
.doc-cell:nth-child(2n),.doc-cell.wide{border-right:0}.doc-cell.wide{grid-column:1/-1}
.doc-cell span{display:flex;align-items:center;padding:5px 7px;background:#F2F2F2;border-right:1px solid #666;font-weight:700}
.doc-cell input,.doc-cell textarea,.doc-cell select{border:0;border-radius:0;padding:5px 7px;min-height:32px;font-size:12px;background:#fff;color:#000}.doc-cell textarea{min-height:54px}
.required-cell span::after{content:" *";color:#FF5353}.check-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 7px}
.check-row label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.check-row input{width:auto;min-height:0;padding:0}
.signature-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.signature-cols.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.signature-block{border-right:1px solid #333}.signature-block:last-child{border-right:0}.sig-title{background:#D9EAF7;border-bottom:1px solid #333;text-align:center;font-weight:800;padding:5px}
.signature-block .doc-grid,.signature-block .doc-cell{grid-template-columns:115px 1fr}.signature-canvas{width:100%;height:110px;background:#fff;display:block;touch-action:none}.clear-signature{margin:5px;justify-self:start;padding:6px 8px}
.risk-intro{margin:0;padding:8px;border-bottom:1px solid #333;background:#fff;font-weight:700}.risk-row{display:grid;grid-template-columns:260px 1fr 58px;border-bottom:1px solid #666;min-height:34px}
.risk-title{display:flex;align-items:center;background:#F2F2F2;border-right:1px solid #666;padding:5px 7px;font-weight:800}.risk-row label{display:inline-flex;align-items:center;gap:5px;margin:5px 8px 5px 0}.risk-row input{width:auto}.risk-row b{color:#0B3C5D}
.risk-score{display:grid;place-items:center;border-left:1px solid #666;font-weight:900;background:#F2F2F2}.risk-result{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:8px;border-top:1px solid #333;background:#fff}
.risk-pill{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:4px 8px;color:#fff;font-weight:900;border-radius:3px}.level-1{background:#00B050}.level-2{background:#F57C00}.level-3{background:#FF5353}
.invalid{outline:0;box-shadow:inset 4px 0 0 #f59e0b, inset 0 0 0 1px rgba(245,158,11,.34)!important;background:#fffaf0!important}a.btn{text-decoration:none;display:inline-flex;align-items:center}
.field-complete input,
.field-complete textarea,
.field-complete select,
.field-complete .check-row,
.field-complete .risk-options{
  border-color:#8ad6a5!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 1.5px rgba(18,161,80,.55);
}
.field-complete input,
.field-complete textarea,
.field-complete select{
  animation:none;
}
.field-missing input,
.field-missing textarea,
.field-missing select,
.field-missing .check-row,
.field-missing .risk-options{
  border-color:#f0c77f!important;
  background:#fff!important;
  box-shadow:inset 3px 0 0 #f59e0b, inset 0 0 0 1px rgba(245,158,11,.22);
}
.field-missing input,
.field-missing textarea,
.field-missing select{
  animation:none;
}
.field-complete>span,
.field-missing>span,
.field-complete .risk-title,
.field-missing .risk-title{
  background:#f6f8fb!important;
}
.field-missing>span,
.field-missing .risk-title{
  color:#9a5a00!important;
}
.field-locked input,
.field-locked textarea,
.field-locked select,
.field-locked .check-row,
.field-locked .risk-options{
  opacity:.78;
  cursor:not-allowed;
  filter:saturate(.75);
}

/* Lectura clara para aprobadores: los datos llenos deben verse como información, no como controles apagados. */
.approver-readonly .field-locked input,
.approver-readonly .field-locked textarea,
.approver-readonly .field-locked select,
.approver-readonly .field-locked .check-row,
.approver-readonly .field-locked .risk-options{
  opacity:1;
  filter:none;
  cursor:default;
}
.approver-readonly .doc-cell input:disabled,
.approver-readonly .doc-cell textarea:disabled,
.approver-readonly .doc-cell select:disabled{
  color:#102942;
  -webkit-text-fill-color:#102942;
  background:#fbfdff;
  border-color:#cdddeb;
  font-weight:700;
}
.approver-readonly .field-complete input:disabled,
.approver-readonly .field-complete textarea:disabled,
.approver-readonly .field-complete select:disabled{
  border-color:#32b36b!important;
  box-shadow:inset 4px 0 0 #16a35b, inset 0 0 0 1px rgba(22,163,91,.28);
}
.approver-readonly .field-missing input:disabled,
.approver-readonly .field-missing textarea:disabled,
.approver-readonly .field-missing select:disabled,
.approver-readonly .field-missing .check-row,
.approver-readonly .field-missing .risk-options{
  border-color:#f59e0b!important;
  box-shadow:inset 4px 0 0 #f57c00, inset 0 0 0 1px rgba(245,124,0,.26);
}
.approver-readonly .doc-section:not(.risk-section) .check-row{
  gap:8px;
  align-items:center;
  background:#fbfdff;
}
.approver-readonly .check-row label,
.approver-readonly .risk-options label{
  min-height:32px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:999px;
  color:#6a7b8d;
  background:#f3f7fa;
}
.approver-readonly .check-row label:has(input:checked),
.approver-readonly .risk-options label:has(input:checked){
  color:#06385a;
  border-color:#56c78a;
  background:#e9f9ef;
  box-shadow:0 0 0 1px rgba(22,163,91,.18);
}
.approver-readonly .check-row label:has(input:checked)::before,
.approver-readonly .risk-options label:has(input:checked)::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#16a35b;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.approver-readonly .check-row input:disabled,
.approver-readonly .risk-options input:disabled{
  opacity:.9;
  accent-color:#16a35b;
}
.approver-readonly .check-row label:not(:has(input:checked)),
.approver-readonly .risk-options label:not(:has(input:checked)){
  opacity:.72;
}
:root[data-theme="dark"] .approver-readonly .doc-cell input:disabled,
:root[data-theme="dark"] .approver-readonly .doc-cell textarea:disabled,
:root[data-theme="dark"] .approver-readonly .doc-cell select:disabled,
:root[data-theme="dark"] .approver-readonly .doc-section:not(.risk-section) .check-row{
  color:#e6f2fb;
  -webkit-text-fill-color:#e6f2fb;
  background:#0f2b3f;
  border-color:#38566d;
}
:root[data-theme="dark"] .approver-readonly .check-row label,
:root[data-theme="dark"] .approver-readonly .risk-options label{
  color:#a9bdd0;
  background:#123249;
}
:root[data-theme="dark"] .approver-readonly .check-row label:has(input:checked),
:root[data-theme="dark"] .approver-readonly .risk-options label:has(input:checked){
  color:#effff5;
  border-color:#49c783;
  background:#123f2d;
}

/* Refinamiento de lectura: radios compactos, sin doble icono ni pastillas grandes. */
.approver-readonly .doc-section:not(.risk-section) .check-row{
  min-height:44px;
  padding:8px 10px;
  gap:10px;
}
.approver-readonly .check-row label{
  min-height:30px;
  padding:5px 9px;
  border-radius:10px;
  background:transparent;
  border:1px solid transparent;
  box-shadow:none;
  font-weight:800;
}
.approver-readonly .check-row label::before,
.approver-readonly .risk-options label::before{
  content:none!important;
}
.approver-readonly .check-row input[type="radio"],
.approver-readonly .check-row input[type="checkbox"]{
  width:15px;
  height:15px;
  margin:0 2px 0 0;
}
.approver-readonly .check-row label:has(input:checked){
  color:#06385a;
  border-color:#56c78a;
  background:#f2fff7;
}
.approver-readonly .check-row label:not(:has(input:checked)){
  color:#778697;
  opacity:.82;
}
:root[data-theme="dark"] .approver-readonly .check-row label{
  background:transparent;
}
:root[data-theme="dark"] .approver-readonly .check-row label:has(input:checked){
  color:#eafff2;
  background:#0f3a2a;
  border-color:#49c783;
}

/* Riesgo en modo aprobador: lectura de tabla, no tarjetas saturadas. */
.approver-readonly .risk-row.field-complete .risk-options,
.approver-readonly .risk-row.field-missing .risk-options{
  background:#fff!important;
  border-color:#d7e3ed!important;
  box-shadow:inset 3px 0 0 #63c98d;
}
.approver-readonly .risk-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3px 10px;
  padding:8px 12px;
}
.approver-readonly .risk-options label{
  min-height:26px;
  padding:3px 6px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#617386;
  box-shadow:none;
}
.approver-readonly .risk-options label:has(input:checked){
  color:#06385a;
  background:#eefaf3;
  box-shadow:inset 3px 0 0 #16a35b;
}
.approver-readonly .risk-options label:not(:has(input:checked)){
  opacity:.68;
}
.approver-readonly .risk-options input[type="radio"]{
  width:14px;
  height:14px;
  margin:0 4px 0 0;
}
.approver-readonly .risk-options b{
  margin-left:auto;
}
.approver-readonly .risk-score{
  background:#f6f9fc;
  color:#06385a;
}
:root[data-theme="dark"] .approver-readonly .risk-row.field-complete .risk-options,
:root[data-theme="dark"] .approver-readonly .risk-row.field-missing .risk-options{
  background:#0f2b3f!important;
  border-color:#38566d!important;
}
:root[data-theme="dark"] .approver-readonly .risk-options label{
  color:#a9bdd0;
  background:transparent;
}
:root[data-theme="dark"] .approver-readonly .risk-options label:has(input:checked){
  color:#eafff2;
  background:#103c2b;
}

/* Riesgo en aprobacion: tarjetas claras para HSE/Gerencia. */
.approver-readonly .risk-row{
  grid-template-columns:1fr;
  gap:8px;
  padding:14px;
  border:1px solid #d9e8f1;
  border-radius:14px;
  background:#fff;
  margin-bottom:10px;
}
.approver-readonly .risk-title{
  border:0;
  background:transparent;
  padding:0;
  font-size:14px;
}
.approver-readonly .risk-row.field-complete .risk-options,
.approver-readonly .risk-row.field-missing .risk-options{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:0;
  background:transparent!important;
  border:0!important;
  box-shadow:none;
}
.approver-readonly .risk-options label{
  display:none;
}
.approver-readonly .risk-options label:has(input:checked){
  display:flex;
  width:100%;
  min-height:38px;
  padding:8px 12px;
  color:#07385a;
  background:#eefaf3;
  border:1px solid #bcebc9;
  border-radius:10px;
  box-shadow:none;
  font-weight:800;
  opacity:1;
}
.approver-readonly .risk-options label:has(input:checked)::after{
  content:"";
  display:none;
}
.approver-readonly .risk-options input[type="radio"]{
  display:none;
}
.approver-readonly .risk-options b{
  margin-left:8px;
}
.approver-readonly .risk-score{
  justify-self:start;
  min-width:48px;
  min-height:28px;
  border:1px solid #d7e3ed;
  border-radius:999px;
  background:#f8fbfd;
  color:#07385a;
}
:root[data-theme="dark"] .approver-readonly .risk-row.field-complete .risk-options,
:root[data-theme="dark"] .approver-readonly .risk-row.field-missing .risk-options{
  background:#0f2b3f!important;
  border-color:#38566d!important;
}
:root[data-theme="dark"] .approver-readonly .risk-options label:has(input:checked){
  color:#eef8ff;
  background:transparent;
}
:root[data-theme="dark"] .approver-readonly .risk-options label:has(input:checked)::after{
  background:#123f2d;
  color:#8ef0b7;
}

/* Radios/checkboxes neutros al llenar: el verde pertenece al campo completo, no a cada opción vacía. */
.doc-page .field-complete input[type="radio"],
.doc-page .field-complete input[type="checkbox"],
.doc-page .field-missing input[type="radio"],
.doc-page .field-missing input[type="checkbox"]{
  box-shadow:none!important;
  border-color:#b8c7d6!important;
  background:#fff!important;
}
.doc-page input[type="radio"],
.doc-page input[type="checkbox"]{
  accent-color:#0B3C5D;
}
.doc-page input[type="radio"]:checked,
.doc-page input[type="checkbox"]:checked{
  accent-color:#168C46;
}

.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options{
  gap:10px;
  align-items:center;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:6px 10px;
  border:1px solid #d7e3ed;
  border-radius:10px;
  background:#f8fbfd;
  color:#29445a;
  font-weight:800;
  line-height:1.2;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label:has(input:checked),
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label:has(input:checked){
  border-color:#46bf78;
  background:#edf9f2;
  color:#0f6b38;
  box-shadow:0 0 0 1px rgba(22,140,70,.12);
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="radio"],
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"],
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="radio"],
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  flex:0 0 16px;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  margin:0!important;
  padding:0!important;
  border:2px solid #9eb3c3!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 3px #fff!important;
  opacity:1!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"],
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]{
  border-radius:5px!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="radio"]:checked,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="radio"]:checked{
  border-color:#168c46!important;
  background:radial-gradient(circle,#168c46 0 38%, transparent 42%), #fff!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"]:checked,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]:checked{
  border-color:#168c46!important;
  background:linear-gradient(135deg,#1ec978,#168c46)!important;
  box-shadow:none!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"]:checked::after,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]:checked::after{
  content:"";
  display:block;
  width:5px;
  height:9px;
  margin:1px 0 0 4px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.field-driver-editable input,
.field-driver-editable textarea,
.field-driver-editable select{
  border-color:#1083e8!important;
  box-shadow:inset 0 0 0 1.5px rgba(16,131,232,.42);
}
.conductor-limited .field-driver-editable>span{
  color:#07385a;
}
.doc-section-tabs button.has-missing,
.section-sequence button.has-missing{
  position:relative;
  border-color:#ffc16d!important;
}
.doc-section-tabs button.has-missing::after,
.section-sequence button.has-missing::after{
  content:attr(data-missing);
  display:inline-grid;
  place-items:center;
  min-width:18px;
  height:18px;
  margin-left:6px;
  padding:0 5px;
  border-radius:999px;
  background:#f57c00;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:5;transform:translateX(-100%);transition:.2s;width:270px}.sidebar.open{transform:none}.stats-grid,.content-grid{grid-template-columns:1fr 1fr}.user-pill span{display:none}}
@media (max-width:1120px){#app{overflow-x:auto}.doc-page{margin-left:0;margin-right:0}.risk-sticky{top:78px}}
@media (max-width:640px){.navbar{height:auto;align-items:flex-start;padding:14px}.stats-grid,.content-grid,#modalBody{grid-template-columns:1fr}.user-pill{margin-left:auto}.hero-band h2{font-size:21px}#app{padding:14px}.toolbar{align-items:stretch}.toolbar .filters,.toolbar .btn{width:100%}.doc-actions{position:static}.risk-sticky{position:static}.doc-page{min-width:0;width:100%;border:0;box-shadow:none}.doc-header,.doc-two-cols,.doc-grid,.signature-cols,.signature-cols.three{grid-template-columns:1fr}.doc-logo,.doc-title,.doc-meta,.doc-conf,.doc-number{grid-column:auto;border-right:0}.doc-section{border-right:0;margin-bottom:8px}.doc-cell{grid-template-columns:1fr;border-right:0}.doc-cell span{border-right:0;border-bottom:1px solid #666}.risk-row{grid-template-columns:1fr}.risk-score{border-left:0;border-top:1px solid #666;min-height:28px}.signature-block{border-right:0;border-bottom:1px solid #333}}
@media (max-width:640px){.notification-panel{top:82px;right:8px;left:8px;width:auto;max-height:calc(100vh - 96px);border-radius:12px}.notification-panel header{grid-template-columns:1fr;gap:10px;padding:12px}.notification-head-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.notification-head-actions .btn{min-height:34px;padding:7px 9px;font-size:12px}.notification-filters{padding:10px}.notification-list{padding:8px}.notification-item{gap:7px;padding:9px;border-radius:8px}.notification-main{gap:8px}.notification-main>span{width:30px;height:30px;border-radius:8px}.notification-main strong{font-size:13px}.notification-main p{font-size:12px;line-height:1.28}.notification-actions{grid-template-columns:auto 64px 76px;gap:6px}.notification-actions .badge{font-size:11px}.notification-open,.notification-delete{font-size:12px;padding:6px 8px}.notification-fallback-card{grid-template-columns:1fr;padding:16px}.notification-fallback-card h3{font-size:18px}}
@media (max-width:760px){.document-context-panel{grid-template-columns:1fr}.ux-state{grid-template-columns:1fr;text-align:left}}
@media print{body{background:#fff}.no-print,.sidebar,.navbar,.toast{display:none!important}.app-shell{display:block}.workspace,#app{padding:0;overflow:visible}.doc-page{max-width:none;min-width:0;width:100%;margin:0;border:1px solid #333;box-shadow:none;font-size:10px}.doc-cell input,.doc-cell textarea{font-size:10px}.doc-section legend{padding:4px}.signature-canvas{height:60px}.risk-row{min-height:24px}.risk-intro{padding:5px}}

/* Vista de edición: cómoda, flexible y sin desbordes. La impresión conserva el formato documental. */
#app:has(.doc-page){background:#f3f5f7}
.doc-actions{top:78px;border:1px solid #d6dee8;background:rgba(255,255,255,.92);box-shadow:0 10px 28px rgba(15,23,42,.08)}
.doc-actions .btn{padding:9px 12px}
.risk-sticky{top:142px;border:1px solid #c9d7e8;border-radius:8px;background:#ffffff;box-shadow:0 10px 26px rgba(15,23,42,.08);color:#102033}
.doc-page{width:min(1240px,100%);min-width:0;max-width:1240px;border:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;gap:14px;font-size:13px}
.doc-header{border:1px solid #b9c9dc;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.08)}
.doc-two-cols{display:flex;gap:14px;align-items:stretch}
.doc-two-cols>.doc-section{flex:1 1 460px}
.doc-section{border:1px solid #b9c9dc!important;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(15,23,42,.07)}
.doc-section legend{border-bottom:0;background:linear-gradient(90deg,#0B3C5D,#4472C4);font-size:13px;padding:8px 10px}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0}
.doc-cell{grid-template-columns:145px minmax(0,1fr);border-color:#d5dde8;min-width:0}
.doc-cell span{border-color:#d5dde8;background:#f6f8fb;color:#1f3347}
.doc-cell input,.doc-cell textarea,.doc-cell select{min-width:0;font-size:13px}
.doc-cell input:focus,.doc-cell textarea:focus{outline:2px solid rgba(28,163,217,.25);outline-offset:-2px;background:#fbfdff}
.check-row{align-content:center}.check-row label{white-space:normal}
.signature-cols{display:flex;align-items:stretch}.signature-cols>.signature-block{flex:1 1 320px}
.signature-cols.three>.signature-block{flex-basis:260px}
.signature-block{border-color:#d5dde8}
.signature-canvas{border-left:0;background:linear-gradient(#fff,#fff),repeating-linear-gradient(0deg,transparent,transparent 19px,#eef2f7 20px)}
.risk-row{grid-template-columns:minmax(220px,300px) minmax(0,1fr) 58px;border-color:#d5dde8}
.risk-title{border-color:#d5dde8;background:#f6f8fb;color:#1f3347}
.risk-row label{white-space:normal;line-height:1.3}
.risk-result{border-color:#d5dde8}
#docHistoryPanel{width:min(1240px,100%);margin:0 auto 24px}
@media (max-width:900px){.doc-two-cols,.signature-cols,.signature-cols.three{flex-direction:column}.doc-cell{grid-template-columns:1fr}.doc-cell span{border-right:0;border-bottom:1px solid #d5dde8}.risk-row{grid-template-columns:1fr}.risk-score{border-left:0;border-top:1px solid #d5dde8}.doc-actions,.risk-sticky{position:static}}
@media print{#app:has(.doc-page){background:#fff}.doc-page{display:block;max-width:none;width:100%;border:1px solid #333;background:#fff;box-shadow:none;font-size:10px}.doc-header{border:0;border-bottom:1px solid #333;border-radius:0;box-shadow:none}.doc-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:0}.doc-section{border:0!important;border-right:1px solid #333!important;border-bottom:1px solid #333!important;border-radius:0;box-shadow:none}.doc-section.full{border-right:0!important}.doc-section legend{background:#4472C4;border-bottom:1px solid #333;border-radius:0;font-size:10px;padding:4px}.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.doc-cell{grid-template-columns:120px 1fr;border-color:#666}.doc-cell span{background:#F2F2F2;border-right:1px solid #666;border-bottom:0;color:#000}.signature-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.signature-cols.three{grid-template-columns:repeat(3,minmax(0,1fr))}.signature-block{border-color:#333}.risk-row{grid-template-columns:220px 1fr 42px;border-color:#666}.risk-title{background:#F2F2F2;border-color:#666;color:#000}}

/* Interfaz tipo sistema ASOSERLI, inspirada en las referencias compartidas. */
body{background:#eaf3f8;color:#102033}
.app-shell{grid-template-columns:255px minmax(0,1fr);background:#eaf3f8}
.sidebar{background:#101a2c;padding:0;height:100vh;box-shadow:10px 0 28px rgba(11,60,93,.16);scrollbar-color:#cbd5e1 transparent}
.brand{height:240px;display:grid;place-items:center;margin:0;border-bottom:1px solid rgba(255,255,255,.08);padding:18px}
.brand img{width:min(178px,88%);height:auto;display:block;filter:drop-shadow(0 12px 18px rgba(0,0,0,.22))}
.sidebar nav{gap:0;padding:0 0 22px}
.nav-btn{border-radius:0;padding:18px 22px;color:#aeb8c8;font-size:15px;display:flex;align-items:center;gap:13px}
.nav-btn span{width:22px;text-align:center;color:#9fb1c6}
.nav-btn:hover{background:#162238;color:#fff}
.nav-btn.active{background:#202b3f;color:#fff;font-weight:900;border-left:4px solid #1CA3D9;padding-left:18px}
.workspace{background:linear-gradient(180deg,#f7fbfe 0,#eaf3f8 150px,#eaf3f8 100%)}
.navbar{height:70px;margin:0 0 24px 0;padding:0 32px;background:#fff;border:0;border-bottom-left-radius:14px;box-shadow:0 10px 28px rgba(11,60,93,.12);backdrop-filter:none}
.navbar h1{font-size:25px;color:#06385b;font-weight:900;letter-spacing:.1px}.navbar p{color:#61728a;font-size:15px}
.icon-btn{background:#e6f1f8;color:#07385a;border-radius:9px;font-size:18px}
.user-pill{border:1px solid #d8e5ee;background:#f8fbfd;border-radius:10px;padding:8px 10px;color:#102033;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.user-pill strong{color:#0798d0}.user-pill .btn{border-radius:9px}
#app{padding:0 32px 32px}
.doc-actions{position:relative;top:auto;width:min(1240px,100%);margin:0 auto 10px;padding:10px;border-radius:8px;background:#fff;border:1px solid #cfdeea;box-shadow:0 12px 28px rgba(11,60,93,.08)}
.doc-actions .btn{border-radius:8px;font-size:16px;font-weight:900;box-shadow:none}
.doc-actions .btn.ghost{background:#e7f1f8;color:#07385a}.doc-actions .btn.cta{background:#ff7f11}.doc-actions .btn.success{background:#4CAF50}.doc-actions .btn.danger{background:#ff4757}
.risk-sticky{position:relative;top:auto;width:min(1240px,100%);margin:0 auto 14px;border-radius:8px;border:1px solid #c8d9e8;padding:10px;background:#fff;box-shadow:none}
.risk-sticky strong{color:#102033}.risk-pill{border-radius:4px;min-width:76px;padding:5px 12px}
.doc-page{width:min(1240px,100%);gap:14px}
.doc-header{grid-template-columns:190px minmax(0,1fr) 220px;border:1px solid #bfd1e1;border-radius:10px;background:#fff;box-shadow:none}
.doc-logo{min-height:96px;border-color:#333;background:#fff;padding:10px}
.doc-logo img{max-width:116px;max-height:76px;object-fit:contain;display:block}
.doc-title strong{color:#000}.doc-conf{font-size:10px}.doc-number{font-size:15px}
.doc-two-cols{gap:14px}.doc-section{border-color:#c7d8e8!important;border-radius:0;box-shadow:none;background:#fff}
.doc-section legend{background:linear-gradient(90deg,#113e61,#416ab0);padding:8px 12px;text-transform:uppercase}
.doc-cell{border-color:#d7e2ec;min-height:34px}
.doc-cell span{background:#f3f7fb;border-color:#d7e2ec;color:#07385a;font-weight:800}
.doc-cell input,.doc-cell textarea,.doc-cell select{background:#fff;color:#0f2236}
.doc-cell input:focus,.doc-cell textarea:focus{outline:2px solid #9ed9f0;background:#fcfeff}
.check-row label,.risk-row label{color:#203247}
.signature-block{border-color:#d7e2ec}.sig-title{background:#e8f2f8;color:#07385a}
.signature-canvas{background:#fff;border-radius:0}
.risk-row{border-color:#d7e2ec}.risk-title{background:#f3f7fb;border-color:#d7e2ec;color:#07385a}.risk-score{border-color:#d7e2ec;background:#f3f7fb;color:#07385a}
.table-card,.panel,.stat-card{border:1px solid #d2e0ec;background:#fff;border-radius:14px;box-shadow:0 14px 34px rgba(11,60,93,.08)}
@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{width:255px}.navbar{margin-bottom:16px;border-radius:0}.brand{height:210px}#app{padding:0 18px 24px}}
@media (max-width:640px){.navbar{padding:14px 16px}.navbar h1{font-size:21px}.user-pill{gap:6px}.doc-actions .btn{width:100%;justify-content:center}.doc-header{display:grid;grid-template-columns:1fr}.doc-logo{border-right:0}.doc-conf,.doc-number{grid-column:auto}.doc-two-cols{display:flex}.doc-section{border-radius:8px}.doc-cell span{font-size:12px}}
@media print{body{background:#fff}.app-shell{display:block}.doc-actions,.risk-sticky{display:none!important}.doc-page{width:100%;gap:0;background:#fff}.doc-logo img{max-width:86px;max-height:58px}.doc-section{border-radius:0!important}.doc-header{border-radius:0;box-shadow:none}.navbar,.sidebar{display:none!important}}
@media print{.doc-section.is-collapsed > :not(legend){display:revert!important}.section-toggle{pointer-events:none}.section-toggle .lucide{display:none!important}}

/* Dashboard responsive y dinámico. */
.dashboard-page{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:16px;
}
.dashboard-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:24px;
  border-radius:16px;
  background:linear-gradient(135deg,#0B3C5D,#1CA3D9);
  color:#fff;
  box-shadow:0 16px 36px rgba(11,60,93,.16);
  overflow:hidden;
}
.dashboard-hero span{
  display:inline-flex;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-weight:900;
  font-size:12px;
}
.dashboard-hero h2{
  margin:0;
  font-size:clamp(24px,3vw,34px);
}
.dashboard-hero p{
  margin:8px 0 0;
  color:#e8f7ff;
  max-width:680px;
}
.dashboard-hero>strong{
  flex:0 0 auto;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.14);
}
.dashboard-grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);
  gap:16px;
}
.dashboard-alerts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:10px;
}
.dashboard-alert{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:13px;
  border:1px solid #d9e8f1;
  border-radius:12px;
  background:#f8fbfd;
}
.dashboard-alert svg{width:22px;height:22px;color:#1083e8}
.dashboard-alert strong{display:block;color:#07385a}
.dashboard-alert span{display:block;margin-top:3px;color:#526d87;line-height:1.35}
.dashboard-alert.tone-warning{border-color:#ffe0a6;background:#fff8e8}.dashboard-alert.tone-warning svg{color:#d08a00}
.dashboard-alert.tone-danger{border-color:#ffc4c9;background:#fff0f2}.dashboard-alert.tone-danger svg{color:#c9273c}
.dashboard-alert.tone-success{border-color:#bcebc9;background:#f0fff5}.dashboard-alert.tone-success svg{color:#087537}
.dashboard-actions{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.dashboard-action{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  width:100%;
  min-height:82px;
  padding:14px;
  border:0;
  border-radius:14px;
  color:#fff;
  text-align:left;
  cursor:pointer;
  box-shadow:0 14px 34px rgba(11,60,93,.08);
  transition:transform .18s ease,box-shadow .18s ease;
}
.dashboard-action:hover,.stat-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(11,60,93,.16)}
.dashboard-action svg{width:28px;height:28px}
.dashboard-action strong{display:block;color:#fff}
.dashboard-action span{display:block;margin-top:3px;color:rgba(255,255,255,.86);line-height:1.3}
.dashboard-panel{
  min-width:0;
  overflow:hidden;
}
.mini-list{
  display:grid;
  gap:10px;
}
.mini-list article{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px;
  padding:12px;
  border:1px solid #dbe6ef;
  border-radius:12px;
  background:#fbfdff;
}
.mini-list div{
  min-width:0;
}
.mini-list span{
  display:block;
  color:#60758b;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.mini-list strong{
  display:block;
  margin-top:4px;
  color:#162437;
  font-size:14px;
  overflow-wrap:anywhere;
}
.stat-card{
  min-width:0;
  border-radius:16px;
  transition:transform .18s ease,box-shadow .18s ease;
  position:relative;
  border:0;
  text-align:left;
  cursor:pointer;
  color:#fff;
  overflow:hidden;
}
.stat-card::after{
  content:"";
  position:absolute;
  right:-24px;
  top:-24px;
  width:96px;
  height:96px;
  border-radius:50%;
  background:rgba(255,255,255,.18);
}
.stat-card span,
.stat-card strong,
.stat-card small{
  position:relative;
  z-index:1;
}
.stat-card span{
  color:rgba(255,255,255,.88);
}
.stat-card strong{
  color:#fff;
}
.stat-card small{
  display:inline-flex;
  margin-top:10px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-weight:900;
}
.stat-card.requires-attention{box-shadow:0 0 0 2px rgba(245,124,0,.28),0 18px 40px rgba(11,60,93,.16)}
.stat-card em{position:relative;z-index:1;display:inline-flex;width:max-content;max-width:100%;margin-top:10px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-style:normal;font-weight:900;text-transform:uppercase}
.kpi-blue{background:linear-gradient(135deg,#0B3C5D,#1CA3D9)}
.kpi-amber{background:linear-gradient(135deg,#9A4D00,#F57C00)}
.kpi-cyan{background:linear-gradient(135deg,#006978,#00BCD4)}
.kpi-green{background:linear-gradient(135deg,#1B6B32,#4CAF50)}
.kpi-indigo{background:linear-gradient(135deg,#27346B,#5B7CFA)}
.kpi-teal{background:linear-gradient(135deg,#00695C,#26A69A)}
.kpi-violet{background:linear-gradient(135deg,#4C1D95,#8B5CF6)}
.kpi-slate{background:linear-gradient(135deg,#334155,#64748B)}
.stat-card:hover,.panel:hover,.report-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(11,60,93,.13);
}
.stat-card:hover{
  box-shadow:0 20px 46px rgba(11,60,93,.22);
}
@media (max-width:900px){
  .dashboard-grid{
    grid-template-columns:1fr;
  }
  .dashboard-hero{
    display:grid;
  }
  .dashboard-hero>strong{
    justify-self:start;
  }
}
@media (max-width:560px){
  .dashboard-page{
    gap:12px;
  }
  .dashboard-hero{
    padding:18px;
    border-radius:14px;
  }
  .stats-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .stat-card{
    padding:14px;
  }
  .stat-card strong{
    font-size:24px;
  }
  .mini-list article{
    grid-template-columns:1fr;
  }
}
@media (max-width:380px){
  .stats-grid{
    grid-template-columns:1fr;
  }
}

/* Secciones de edición estilo tarjeta, como las referencias. */
.doc-page{gap:22px}
.doc-two-cols{gap:22px}
.doc-section:not(.risk-section){
  border:0!important;
  border-radius:16px;
  background:#fff;
  padding:28px 32px 32px;
  box-shadow:0 18px 38px rgba(11,60,93,.08);
  overflow:visible;
}
.doc-section:not(.risk-section) legend{
  float:left;
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 24px;
  padding:0;
  background:transparent;
  color:#06385b;
  text-align:left;
  font-size:20px;
  line-height:1.2;
  text-transform:none;
  border:0;
}
.doc-section:not(.risk-section) legend::before{
  content:"";
  width:22px;
  height:22px;
  flex:0 0 22px;
  background:#06385b;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") center/contain no-repeat;
}
.doc-section:not(.risk-section) .doc-grid{
  clear:both;
  display:grid;
  grid-template-columns:repeat(3,minmax(220px,1fr));
  gap:28px 20px;
}
.doc-section:not(.risk-section) .doc-cell{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:auto;
  border:0;
  background:transparent;
}
.doc-section:not(.risk-section) .doc-cell.wide{grid-column:span 2}
.doc-section:not(.risk-section) .doc-cell span{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:0;
  background:transparent;
  border:0;
  color:#06385b;
  font-size:16px;
  font-weight:900;
}
.doc-section:not(.risk-section) .doc-cell input,
.doc-section:not(.risk-section) .doc-cell textarea,
.doc-section:not(.risk-section) .doc-cell select{
  min-height:44px;
  border:1px solid #cfdae6;
  border-radius:12px;
  padding:12px 16px;
  background:#fff;
  color:#162437;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.doc-section:not(.risk-section) .doc-cell textarea{min-height:94px}
.doc-section:not(.risk-section) .check-row{
  min-height:44px;
  padding:10px 12px;
  border:1px solid #cfdae6;
  border-radius:12px;
  background:#fff;
}
.doc-section:not(.risk-section) .check-row label{font-weight:700;color:#506579}
.doc-section:not(.risk-section) input[type="radio"],
.doc-section:not(.risk-section) input[type="checkbox"],
.risk-options input{accent-color:#0B3C5D}
.signature-cols{
  clear:both;
  gap:18px;
}
.signature-block{
  border:1px solid #d5e0ea;
  border-radius:14px;
  overflow:hidden;
  background:#fbfdff;
}
.signature-block:last-child{border-right:1px solid #d5e0ea}
.sig-title{
  border:0;
  padding:12px 14px;
  background:#e8f3f9;
  color:#06385b;
  font-size:16px;
}
.signature-block .doc-cell{padding:14px}
.signature-block .doc-cell input{min-height:40px}
.signature-canvas{
  height:112px;
  border:1px dashed #b8c9d8;
  border-radius:12px;
  background:#fff;
}
.signature-canvas.has-signature{
  border-style:solid;
  border-color:#7fc99c;
  box-shadow:inset 0 0 0 1px rgba(22,140,70,.18);
}
.clear-signature{
  align-self:flex-start;
  margin:0;
  padding:8px 12px;
  border-radius:9px;
}

.responsibility-section{background:#fff}
.responsibility-note{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:0 0 16px;
  padding:14px 16px;
  border:1px solid #cfe0ef;
  border-radius:14px;
  background:#f4f9fd;
  color:#0B3C5D;
}
.responsibility-note i{width:22px;height:22px;margin-top:2px;color:#168C46}
.responsibility-note strong,.responsibility-note span{display:block}
.responsibility-note span{margin-top:3px;color:#5f7287;font-size:13px}
.responsibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.responsibility-card{
  border:1px solid #cfe0ef;
  border-left:5px solid #f59e0b;
  border-radius:16px;
  background:#fff;
  padding:16px;
  box-shadow:0 14px 30px rgba(11,60,93,.07);
}
.responsibility-card.is-confirmed{
  border-left-color:#16a34a;
  background:linear-gradient(180deg,#fff,#f7fffa);
}
.responsibility-card-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.responsibility-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  background:#e8f3f9;
  color:#0B3C5D;
}
.responsibility-card.is-confirmed .responsibility-icon{background:#dcfce7;color:#15803d}
.responsibility-card-head strong,.responsibility-card-head small{display:block}
.responsibility-card-head small{margin-top:2px;color:#6c7d8d;font-size:12px}
.responsibility-card p{margin:0 0 14px;color:#31465a;line-height:1.45}
.responsibility-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.responsibility-fields label span{display:block;margin-bottom:5px;color:#0B3C5D;font-weight:800;font-size:12px}
.responsibility-fields input{
  width:100%;
  min-height:40px;
  border:1px solid #ccdceb;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
}
.responsibility-fields input[readonly],
.responsibility-fields input[data-system-filled="true"]{
  border-color:#d7e4ef;
  background:#f3f8fc;
  color:#38516a;
  cursor:not-allowed;
}
.responsibility-confirm-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:14px;
  border:1px solid #c6d8e8;
  border-radius:999px;
  padding:9px 14px;
  background:#eef6fb;
  color:#0B3C5D;
  font-weight:900;
  cursor:pointer;
}
.responsibility-confirm-toggle.active{border-color:#86d29f;background:#dcfce7;color:#15803d}
.responsibility-card.is-locked .responsibility-confirm-toggle,
.responsibility-confirm-toggle:disabled,
.responsibility-confirm-toggle[aria-disabled="true"]{
  cursor:not-allowed;
  pointer-events:none;
  opacity:.92;
}
.responsibility-card.field-missing{
  border-color:#f0c77f!important;
  border-left-color:#f59e0b!important;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.18),0 14px 30px rgba(11,60,93,.07);
}
.responsibility-card.invalid{
  border-color:#f0b764!important;
  border-left-color:#f59e0b!important;
  background:#fffaf0!important;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.22),0 14px 30px rgba(11,60,93,.07)!important;
}
@media (max-width:900px){
  .responsibility-grid{grid-template-columns:1fr}
  .responsibility-fields{grid-template-columns:1fr}
}
:root[data-theme="dark"] .responsibility-section,
:root[data-theme="dark"] .responsibility-card{
  background:#fff;
  color:#0B3C5D;
}
:root[data-theme="dark"] .responsibility-note{
  background:#f4f9fd;
  border-color:#cfe0ef;
}
:root[data-theme="dark"] .responsibility-fields input{
  background:#fff;
  color:#0B3C5D;
}

/* Evaluación del riesgo: tabla limpia tipo formulario corporativo. */
.risk-section{
  border:1px solid #c4d4e4!important;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 18px 38px rgba(11,60,93,.08);
}
.risk-section legend{
  display:block;
  width:100%;
  padding:10px 14px;
  background:linear-gradient(90deg,#0d446b,#416ab0);
  color:#fff;
  text-align:center;
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  border:0;
}
.risk-intro{
  padding:14px 16px;
  border-bottom:1px solid #cfdbe7;
  color:#000;
  font-weight:800;
  line-height:1.45;
}
.risk-row{
  display:grid;
  grid-template-columns:300px minmax(0,1fr) 70px;
  min-height:64px;
  border-bottom:1px solid #d8e2ec;
  background:#fff;
}
.risk-row:nth-of-type(even){background:#fbfdff}
.risk-title{
  display:flex;
  align-items:center;
  padding:14px 16px;
  border-right:1px solid #d8e2ec;
  background:#f4f8fc;
  color:#06385b;
  font-size:13px;
  font-weight:900;
}
.risk-options{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px 18px;
  align-items:center;
  padding:12px 14px;
}
.risk-options label{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin:0;
  color:#102033;
  font-size:13px;
  line-height:1.35;
}
.risk-options label span{min-width:0}
.risk-options b{
  color:#06385b;
  font-weight:900;
  margin-left:auto;
}
.risk-score{
  display:grid;
  place-items:center;
  border-left:1px solid #d8e2ec;
  background:#f4f8fc;
  color:#06385b;
  font-size:14px;
  font-weight:900;
}
.risk-result{
  padding:14px 16px;
  border-top:0;
  background:#f8fbfd;
}
@media (max-width:1100px){
  .doc-section:not(.risk-section) .doc-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}
  .risk-row{grid-template-columns:240px minmax(0,1fr) 58px}
}
@media (max-width:760px){
  .doc-section:not(.risk-section){padding:22px 18px}
  .doc-section:not(.risk-section) .doc-grid{grid-template-columns:1fr}
  .doc-section:not(.risk-section) .doc-cell.wide{grid-column:auto}
  .risk-row{grid-template-columns:1fr}
  .risk-title{border-right:0;border-bottom:1px solid #d8e2ec}
  .risk-score{border-left:0;border-top:1px solid #d8e2ec;min-height:42px}
}
@media print{
  .doc-section:not(.risk-section){padding:0;border-radius:0;box-shadow:none}
  .doc-section:not(.risk-section) legend{display:block;text-align:center;background:#4472C4;color:#fff;padding:4px;margin:0;font-size:10px}
  .doc-section:not(.risk-section) legend::before{display:none}
  .doc-section:not(.risk-section) .doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .doc-section:not(.risk-section) .doc-cell{display:grid;grid-template-columns:120px 1fr;gap:0;border-right:1px solid #666;border-bottom:1px solid #666}
  .doc-section:not(.risk-section) .doc-cell span{display:flex;width:auto;padding:5px 7px;background:#F2F2F2;border-right:1px solid #666;color:#000;font-size:10px}
  .doc-section:not(.risk-section) .doc-cell input,
  .doc-section:not(.risk-section) .doc-cell textarea{min-height:28px;border:0;border-radius:0;padding:5px 7px}
  .risk-section{box-shadow:none;border-radius:0}
  .risk-row{grid-template-columns:220px 1fr 42px;min-height:24px}
  .risk-options{display:block;padding:4px 6px}
  .risk-options label{display:inline-flex;margin:3px 8px 3px 0;font-size:10px}
}

/* Vista previa y PDF oficial tipo formulario físico. */
.print-preview{
  position:relative;
  width:100%;
  padding:12px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 38px rgba(11,60,93,.08);
  overflow:auto;
}
.pdf-watermark{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  pointer-events:none;
  z-index:20;
  color:rgba(220,38,38,.13);
  font-size:82px;
  font-weight:900;
  letter-spacing:6px;
  text-transform:uppercase;
  transform:rotate(-18deg);
}
.official-form{
  position:relative;
  z-index:3;
  width:100%;
  min-width:860px;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
  color:#000;
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
}
.official-form th,
.official-form td{
  border:1px solid #000;
  padding:4px 5px;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.official-form th{
  background:#d9e2f3;
  text-align:center;
  font-weight:900;
}
.official-form .of-logo{
  width:140px;
  text-align:center;
}
.official-form .of-logo img{
  max-width:82px;
  max-height:70px;
}
.official-form .of-number{
  color:#f00;
  font-size:18px;
  font-weight:900;
  text-align:center;
}
.risk-low td,.risk-low{background:#00B050;color:#000;font-weight:900}
.risk-med td,.risk-med{background:#FFC000;color:#000;font-weight:900}
.risk-high td,.risk-high{background:#FF5353;color:#000;font-weight:900}
.risk-official th{
  width:24%;
}
.risk-official .risk-section-col{width:16%}
.risk-official .risk-value-col{width:5%}
.risk-official .risk-selected-col{width:5%}
.risk-official .risk-section-title{
  width:auto;
  background:#d9e2f3;
  text-align:center;
  font-weight:900;
}
.risk-official .risk-option-score,
.risk-official .risk-check,
.risk-official .risk-subtotal{
  text-align:center;
  font-weight:900;
}
.risk-official .risk-subtotal-label,
.risk-official .risk-subtotal{
  background:#d9e2f3;
  font-weight:900;
}
.risk-official .risk-empty{
  background:#d9e2f3;
}
@media (max-width:760px){
  .print-preview{
    margin-inline:-4px;
    padding:8px;
  }
  .official-form{
    min-width:760px;
    font-size:10px;
  }
}

/* Modo oscuro. Los documentos y la impresión conservan fondo blanco oficial. */
:root[data-theme="dark"]{
  color-scheme:dark;
  --text:#e7f1f7;
  --muted:#9db1c2;
  --line:#29445a;
  --panel:#10283b;
  --bg-dark:#071525;
  --shadow:0 18px 46px rgba(0,0,0,.3);
}
:root[data-theme="dark"] body{
  background:#091b2a;
  color:var(--text);
}
:root[data-theme="dark"] .app-shell,
:root[data-theme="dark"] .workspace,
:root[data-theme="dark"] #app:has(.doc-page){
  background:#091b2a;
}
:root[data-theme="dark"] .workspace{
  background:linear-gradient(180deg,#0c2233 0,#091b2a 150px,#091b2a 100%);
}
:root[data-theme="dark"] .navbar,
:root[data-theme="dark"] .login-panel,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .table-card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .forms-manager-head,
:root[data-theme="dark"] .form-card,
:root[data-theme="dark"] .workflow-board,
:root[data-theme="dark"] .risk-sticky,
:root[data-theme="dark"] .report-card,
:root[data-theme="dark"] .modal-card,
:root[data-theme="dark"] .float-dropdown,
:root[data-theme="dark"] .action-dropdown{
  border-color:#29445a;
  background:#10283b;
  color:#e7f1f7;
}
:root[data-theme="dark"] .login-shell{
  background:linear-gradient(135deg,#071525,#091b2a 58%,#0b3c5d);
}
:root[data-theme="dark"] .login-panel h1{
  color:#dff5ff;
}
:root[data-theme="dark"] .login-panel p,
:root[data-theme="dark"] .login-panel small,
:root[data-theme="dark"] .login-panel label{
  color:#aec2d1;
}
:root[data-theme="dark"] .login-test-head strong{color:#dff5ff}
:root[data-theme="dark"] .login-test-head span{color:#9db1c2}
:root[data-theme="dark"] .login-role-grid button{
  border-color:#31516a;
  background:#0d2030;
  color:#dff5ff;
}
:root[data-theme="dark"] .login-role-grid button span{color:#9db1c2}
:root[data-theme="dark"] .login-role-grid button:hover,
:root[data-theme="dark"] .login-role-grid button.active{
  border-color:#1083e8;
  background:#1083e8;
  color:#fff;
}
:root[data-theme="dark"] .navbar h1,
:root[data-theme="dark"] .panel h3,
:root[data-theme="dark"] .table-card h3,
:root[data-theme="dark"] .form-card h3,
:root[data-theme="dark"] .forms-manager-head h2,
:root[data-theme="dark"] .workflow-head strong,
:root[data-theme="dark"] .report-card h3,
:root[data-theme="dark"] .modal-head h2,
:root[data-theme="dark"] .action-menu-head,
:root[data-theme="dark"] .section-sequence-head{
  color:#dff5ff;
}
:root[data-theme="dark"] .navbar p,
:root[data-theme="dark"] .form-card p,
:root[data-theme="dark"] .forms-manager-head p,
:root[data-theme="dark"] .workflow-head span,
:root[data-theme="dark"] .action-menu-head span,
:root[data-theme="dark"] .section-sequence-head span,
:root[data-theme="dark"] .document-actions-menu button small{
  color:#9db1c2;
}
:root[data-theme="dark"] .user-pill,
:root[data-theme="dark"] .btn.ghost,
:root[data-theme="dark"] .icon-btn,
:root[data-theme="dark"] .float-trigger,
:root[data-theme="dark"] .float-dropdown button,
:root[data-theme="dark"] .action-dropdown button,
:root[data-theme="dark"] .forms-process-strip span,
:root[data-theme="dark"] .workflow-step,
:root[data-theme="dark"] .badge,
:root[data-theme="dark"] .form-number,
:root[data-theme="dark"] .approver-chip{
  border-color:#31516a;
  background:#17364b;
  color:#dff5ff;
}
:root[data-theme="dark"] .float-trigger.primary,
:root[data-theme="dark"] .workflow-step.active,
:root[data-theme="dark"] .document-actions-menu button:hover{
  background:#0875a5;
  color:#fff;
}
:root[data-theme="dark"] .workflow-prev-action,
:root[data-theme="dark"] .workflow-prev-action.closed,
:root[data-theme="dark"] .workflow-prev-action:disabled,
:root[data-theme="dark"] .workflow-next-action.closed,
:root[data-theme="dark"] .workflow-next-action:disabled{
  border-color:#31516a;
  background:#17364b;
  color:#dff5ff;
}
:root[data-theme="dark"] .workflow-prev-action span,
:root[data-theme="dark"] .workflow-next-action.closed span,
:root[data-theme="dark"] .workflow-next-action:disabled span{
  color:#9db1c2;
}

/* Ajustes de legibilidad del flujo de viaje. Se colocan tarde para imponerse
   sobre los estilos históricos del formulario y del modo aprobador. */
.doc-page .departure-section{
  min-width:0;
}
.doc-page .departure-section .departure-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
  width:100%;
}
.doc-page .departure-section .departure-summary article{
  min-width:0;
  overflow:hidden;
}
.doc-page .departure-section .departure-summary span,
.doc-page .departure-section .departure-summary strong{
  writing-mode:horizontal-tb;
  word-break:normal;
  overflow-wrap:break-word;
  white-space:normal;
}
.doc-page .departure-section .departure-summary strong{
  font-size:13px;
}
.doc-page .departure-section .doc-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.doc-page .risk-section,
.doc-page.approver-readonly .risk-section,
.approver-readonly .risk-section{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.doc-page .risk-row,
.doc-page.approver-readonly .risk-row,
.approver-readonly .risk-row{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr) 62px;
  align-items:stretch;
  min-width:0;
}
.doc-page .risk-title,
.doc-page.approver-readonly .risk-title,
.approver-readonly .risk-title{
  min-width:0;
  overflow-wrap:break-word;
  line-height:1.3;
}
.doc-page .risk-options,
.doc-page.approver-readonly .risk-options,
.approver-readonly .risk-options{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  align-items:center;
  gap:10px;
  min-width:0;
}
.doc-page .risk-options label,
.doc-page.approver-readonly .risk-options label,
.approver-readonly .risk-options label,
.doc-page .risk-options label:has(input:checked),
.doc-page.approver-readonly .risk-options label:has(input:checked),
.approver-readonly .risk-options label:has(input:checked){
  display:flex;
  align-items:center;
  width:100%;
  min-width:0;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
}
.doc-page .risk-options label span,
.doc-page.approver-readonly .risk-options label span,
.approver-readonly .risk-options label span{
  min-width:0;
  flex:1 1 auto;
}
.doc-page .risk-options b,
.doc-page.approver-readonly .risk-options b,
.approver-readonly .risk-options b{
  flex:0 0 auto;
  margin-left:8px;
}
@media (max-width:900px){
  .doc-page .risk-row,
  .doc-page.approver-readonly .risk-row,
  .approver-readonly .risk-row{
    grid-template-columns:1fr;
  }
  .doc-page .risk-options,
  .doc-page.approver-readonly .risk-options,
  .approver-readonly .risk-options{
    grid-template-columns:1fr;
  }
}
:root[data-theme="dark"] .workflow-step.done,
:root[data-theme="dark"] .section-sequence button.completed{
  border-color:#277b52;
  background:#123d31;
  color:#8de6b4;
}
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{
  border-color:#31516a;
  background:#0c2233;
  color:#e7f1f7;
}
:root[data-theme="dark"] th{
  background:#17364b;
  color:#bfe9fa;
}
:root[data-theme="dark"] td{
  border-color:#29445a;
  color:#d7e5ee;
}
:root[data-theme="dark"] .report-table th,
:root[data-theme="dark"] .report-table td{
  border-color:#29445a;
}
:root[data-theme="dark"] .dashboard-panel{
  border-color:#294b63;
  background:#102b3e;
  box-shadow:0 16px 36px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .mini-list article{
  border-color:#2b4e66;
  background:#0c2233;
  box-shadow:inset 3px 0 0 #168ec0;
}
:root[data-theme="dark"] .mini-list article:hover{
  border-color:#3b718e;
  background:#102d42;
}
:root[data-theme="dark"] .mini-list span{
  color:#8eabc0;
}
:root[data-theme="dark"] .mini-list strong{
  color:#edf8fc;
}
:root[data-theme="dark"] .mini-list .badge{
  width:max-content;
  max-width:100%;
  padding:5px 10px;
  border:1px solid #3b5e74;
  background:#173d53;
  color:#dff5ff;
}
:root[data-theme="dark"] .mini-list .badge-success{
  border-color:#277b52;
  background:#123d31;
  color:#8de6b4;
}
:root[data-theme="dark"] .mini-list .badge-warning{
  border-color:#8d6424;
  background:#453419;
  color:#ffd27a;
}
:root[data-theme="dark"] .mini-list .badge-danger{
  border-color:#9c4050;
  background:#47222b;
  color:#ffadb9;
}
:root[data-theme="dark"] .mini-list .badge-info{
  border-color:#256f91;
  background:#123b52;
  color:#8fdcff;
}
:root[data-theme="dark"] .forms-process-strip{
  padding:8px;
  border:1px solid #294b63;
  border-radius:14px;
  background:#10283b;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
:root[data-theme="dark"] .forms-process-strip span{
  border:1px solid #31566f;
  background:#173d53;
  color:#dff5ff;
}
:root[data-theme="dark"] .dashboard-panel:last-child .mini-list article{
  grid-template-columns:1fr auto;
  align-items:center;
}
:root[data-theme="dark"] .dashboard-panel:last-child .mini-list article>div:last-child{
  min-width:52px;
  padding:6px 9px;
  border-radius:9px;
  background:#17364b;
  text-align:center;
}
:root[data-theme="dark"] .toast{
  border-color:#31516a;
  background:#10283b;
}
:root[data-theme="dark"] .toast-copy strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .toast-copy small{
  color:#aec2d1;
}
:root[data-theme="dark"] .toast-close{
  background:#17364b;
  color:#dff5ff;
}
:root[data-theme="dark"] .ux-state{background:#10283b;border-color:#31516a;color:#dff5ff}
:root[data-theme="dark"] .ux-state strong{color:#dff5ff}
:root[data-theme="dark"] .ux-state p{color:#9db1c2}
:root[data-theme="dark"] .ux-state-icon{background:#17364b;color:#68a6dd}
:root[data-theme="dark"] .document-context-panel article{background:#10283b;border-color:#31516a}
:root[data-theme="dark"] .document-context-panel strong{color:#dff5ff}
:root[data-theme="dark"] .document-context-panel small{color:#9db1c2}
:root[data-theme="dark"] .pdf-preview-dialog,
:root[data-theme="dark"] .pdf-preview-content{
  background:#091b2a;
}
:root[data-theme="dark"] .pdf-preview-shell>header,
:root[data-theme="dark"] .pdf-zoom-toolbar{
  border-color:#29445a;
  background:#10283b;
}
:root[data-theme="dark"] .pdf-preview-shell>header strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .pdf-zoom-toolbar button{
  background:#17364b;
  color:#dff5ff;
}
:root[data-theme="dark"] .doc-page,
:root[data-theme="dark"] .doc-page *,
:root[data-theme="dark"] .print-preview,
:root[data-theme="dark"] .print-preview *{
  color-scheme:light;
}
:root[data-theme="dark"] .doc-section,
:root[data-theme="dark"] .doc-header,
:root[data-theme="dark"] .print-preview,
:root[data-theme="dark"] .official-form,
:root[data-theme="dark"] .official-form td{
  background:#fff;
  color:#000;
}
:root[data-theme="dark"] .doc-cell input,
:root[data-theme="dark"] .doc-cell select,
:root[data-theme="dark"] .doc-cell textarea{
  background:#fff;
  color:#000;
}
:root[data-theme="dark"] .theme-toggle{
  background:#17364b;
  color:#ffd45c;
}

/* Formularios editables en oscuro. Vista documento y PDF permanecen blancos. */
:root[data-theme="dark"] .doc-page{
  color-scheme:dark;
  color:#e7f1f7;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-header,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .signature-block,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section{
  border-color:#31516a!important;
  background:#10283b;
  color:#e7f1f7;
  box-shadow:0 14px 32px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-title,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-meta,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-conf,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-number{
  border-color:#31516a;
  background:#10283b;
  color:#dff5ff;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-title strong,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-conf strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-meta span{
  border-color:#31516a;
  background:#17364b;
  color:#cce9f6;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section legend,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .sig-title{
  border-color:#31516a;
  background:linear-gradient(90deg,#07547a,#087fae);
  color:#fff;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell{
  border-color:#31516a;
  background:#10283b;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell>span{
  border-color:#31516a;
  background:#17364b;
  color:#d9edf7;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .signature-canvas{
  border-color:#41657d;
  background:#0c2233;
  color:#edf8fc;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input:focus,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select:focus,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea:focus{
  outline-color:#1ca3d9;
  background:#102d42;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label{
  color:#d9edf7;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-intro,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-row,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-result{
  border-color:#31516a;
  background:#10283b;
  color:#d9edf7;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-title,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-score{
  border-color:#31516a;
  background:#17364b;
  color:#dff5ff;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel="documento"],
:root[data-theme="dark"] .doc-page>[data-doc-panel="documento"] *,
:root[data-theme="dark"] .pdf-preview-document,
:root[data-theme="dark"] .pdf-preview-document *{
  color-scheme:light;
}
@media (max-width:760px){
  .user-pill:has(.theme-toggle){
    max-width:none;
  }
  .user-pill:has(.theme-toggle)>strong{
    display:none;
  }
  .theme-toggle{
    width:32px;
    height:32px;
    flex:0 0 32px;
  }
}
@media print{
  :root[data-theme="dark"] body{
    background:#fff;
  }
}

/* Formulario oscuro refinado: menos bloques, mejor jerarquía y lectura. */
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section{
  padding:24px 26px 28px;
  border:1px solid #24465d!important;
  border-radius:16px;
  background:#102638;
  box-shadow:0 16px 36px rgba(0,0,0,.18);
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section legend,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section legend{
  width:100%;
  margin:0 0 22px;
  padding:0 0 14px;
  border:0;
  border-bottom:1px solid #294c63;
  background:transparent;
  color:#e7f6fc;
  font-size:18px;
  text-align:left;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section legend::after,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section legend::after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  margin-top:12px;
  border-radius:999px;
  background:#20a7d5;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-grid{
  gap:20px;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  min-height:0;
  border:0;
  background:transparent;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell>span{
  display:block;
  padding:0;
  border:0;
  background:transparent;
  color:#c8deea;
  font-size:13px;
  font-weight:800;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea{
  min-height:44px;
  padding:11px 13px;
  border:1px solid #3a6178;
  border-radius:11px;
  background:#0b1f2f;
  color:#f0f8fc;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea{
  min-height:94px;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input:hover,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select:hover,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea:hover{
  border-color:#56839c;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input:focus,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select:focus,
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea:focus{
  outline:0;
  border-color:#27a9d6;
  background:#0d2638;
  box-shadow:0 0 0 3px rgba(32,167,213,.14);
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .required-cell>span::after{
  color:#ff7282;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) input[type="date"],
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) input[type="time"]{
  color-scheme:dark;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row{
  min-height:44px;
  padding:10px 12px;
  border:1px solid #3a6178;
  border-radius:11px;
  background:#0b1f2f;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .signature-block{
  border:1px solid #294c63;
  border-radius:12px;
  overflow:hidden;
  background:#0d2232;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .sig-title{
  padding:10px 12px;
  border:0;
  border-bottom:1px solid #294c63;
  background:#16364a;
  color:#dff5ff;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .signature-canvas{
  background:#f8fbfd;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-intro{
  margin-bottom:16px;
  border:1px solid #315a73;
  border-radius:11px;
  background:#143449;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-row{
  border:1px solid #294c63;
  border-radius:12px;
  overflow:hidden;
  background:#0d2232;
}
:root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label{
  border:1px solid #294c63;
  border-radius:9px;
  background:#102a3c;
}

@media (max-width:760px){
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section{
    padding:20px 16px 22px;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section legend,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section legend{
    font-size:16px;
  }
}

/* Selector horario intuitivo y consistente entre navegadores. */
.time-input-shell{
  position:relative;
  display:block!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.time-input-shell input{
  padding-right:48px!important;
  cursor:pointer;
}
.time-picker-trigger{
  position:absolute;
  top:50%;
  right:6px;
  width:34px;
  height:34px;
  transform:translateY(-50%);
  border:0;
  border-radius:8px;
  background:#e8f2f8;
  color:#07385a;
  cursor:pointer;
}
.time-clock-icon{
  display:block;
  flex:0 0 17px;
  width:17px;
  height:17px;
  margin:auto;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm-1 3h2v4.59l3.2 3.2-1.41 1.42L11 12.41V7Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm-1 3h2v4.59l3.2 3.2-1.41 1.42L11 12.41V7Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.time-picker-trigger .time-clock-icon{
  display:block!important;
  width:17px!important;
  min-width:17px!important;
  max-width:17px!important;
  height:17px!important;
  background-color:currentColor!important;
}
.time-picker-dialog{
  width:min(440px,calc(100% - 24px));
  max-width:none;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
}
.time-picker-dialog::backdrop{
  background:rgba(7,24,38,.7);
  backdrop-filter:blur(3px);
}
.time-picker-card{
  overflow:hidden;
  border:1px solid #cbdde8;
  border-radius:16px;
  background:#fff;
  box-shadow:0 28px 70px rgba(15,23,42,.32);
}
.time-picker-card>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  border-bottom:1px solid #dce7ee;
}
.time-picker-card>header>div{
  display:grid;
  gap:3px;
}
.time-picker-card>header strong{
  color:#07385a;
  font-size:17px;
}
.time-picker-card>header span{
  color:#6b8195;
  font-size:12px;
}
.time-picker-display{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:14px;
  padding:22px 32px 16px;
}
.time-picker-display>b{
  color:#07385a;
  font-size:34px;
}
.time-unit{
  display:grid;
  place-items:center;
  gap:7px;
}
.time-unit button{
  width:46px;
  height:36px;
  border:0;
  border-radius:9px;
  background:#e8f2f8;
  color:#07385a;
  font-size:20px;
  font-weight:900;
  cursor:pointer;
}
.time-unit strong{
  min-width:82px;
  padding:12px 10px;
  border:1px solid #bcd3e2;
  border-radius:12px;
  background:#f5fafd;
  color:#07385a;
  text-align:center;
  font-size:34px;
  font-variant-numeric:tabular-nums;
}
.time-unit span{
  color:#6b8195;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}
.time-presets{
  display:flex;
  gap:7px;
  padding:4px 16px 18px;
  overflow-x:auto;
}
.time-presets button{
  flex:1 0 auto;
  border:1px solid #cbdde8;
  border-radius:999px;
  padding:8px 10px;
  background:#f4f9fc;
  color:#07385a;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.time-picker-card>footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:14px 16px;
  border-top:1px solid #dce7ee;
  background:#f7fafc;
}
:root[data-theme="dark"] .time-picker-trigger{
  background:#173d53;
  color:#aee9ff;
}
:root[data-theme="dark"] .time-picker-card{
  border-color:#31516a;
  background:#10283b;
}
:root[data-theme="dark"] .time-picker-card>header,
:root[data-theme="dark"] .time-picker-card>footer{
  border-color:#31516a;
  background:#10283b;
}
:root[data-theme="dark"] .time-picker-card>header strong,
:root[data-theme="dark"] .time-picker-display>b{
  color:#dff5ff;
}
:root[data-theme="dark"] .time-picker-card>header span,
:root[data-theme="dark"] .time-unit span{
  color:#9db1c2;
}
:root[data-theme="dark"] .time-unit button,
:root[data-theme="dark"] .time-presets button{
  border-color:#31516a;
  background:#173d53;
  color:#dff5ff;
}
:root[data-theme="dark"] .time-unit strong{
  border-color:#41657d;
  background:#0b1f2f;
  color:#f0f8fc;
}
@media (max-width:600px){
  .time-picker-dialog{
    width:100%;
    max-height:none;
    margin:auto 0 0;
    border-radius:18px 18px 0 0;
  }
  .time-picker-card{
    padding-bottom:env(safe-area-inset-bottom);
    border-radius:18px 18px 0 0;
  }
  .time-picker-display{
    padding-inline:24px;
  }
  .time-picker-card>footer{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .time-picker-card>footer .btn:last-child{
    grid-column:1/-1;
  }
}
@media print{
  .navbar,.sidebar,.risk-sticky,.floating-doc-tools,.doc-actions,.doc-section-tabs,#docHistoryPanel{
    display:none!important;
  }
  body,.app-shell,.workspace,#app{
    height:auto!important;
    overflow:visible!important;
    background:#fff!important;
  }
  #app{
    padding:0!important;
  }
  .doc-page > :not([data-doc-panel="documento"]){
    display:none!important;
  }
  .doc-page [data-doc-panel="documento"]{
    display:block!important;
  }
  .print-preview{
    display:block!important;
    padding:0;
    box-shadow:none;
    border-radius:0;
    overflow:visible;
  }
  .official-form{
    min-width:0;
    width:100%;
    font-size:8.5px;
    page-break-inside:auto;
  }
  .official-form th,
  .official-form td{
    padding:2px 3px;
  }
}

/* Corrección final de vista previa: sin desbordes, distribución fluida y cabecera integrada. */
html,body{max-width:100%;overflow-x:hidden}
.workspace{min-width:0;overflow-x:hidden}
#app{max-width:100%;overflow-x:hidden}
#app:has(.doc-page){padding-inline:clamp(14px,2.8vw,32px)}
.doc-actions,
.risk-sticky,
.doc-page,
#docHistoryPanel{
  width:100%;
  max-width:1180px;
}
.doc-actions{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  margin-bottom:8px;
}
.doc-actions .btn{
  flex:0 1 auto;
  white-space:nowrap;
  min-height:40px;
  padding:9px 14px;
}
.action-menu{
  position:relative;
}
.action-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:30;
  display:none;
  min-width:220px;
  padding:8px;
  border:1px solid #d2e0ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 40px rgba(11,60,93,.18);
}
.action-dropdown.open{
  display:grid;
  gap:6px;
}
.action-dropdown button{
  width:100%;
  border:0;
  border-radius:10px;
  padding:11px 12px;
  background:#eef6fb;
  color:#07385a;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}
.action-dropdown button:hover{
  background:#dfeef7;
}
.action-dropdown button.danger{
  background:#ffe9ed;
  color:#d52338;
}
.floating-doc-tools{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:80;
  display:flex;
  gap:10px;
  align-items:flex-end;
}
.float-menu{
  position:relative;
}
.float-trigger{
  border:0;
  border-radius:999px;
  padding:13px 18px;
  background:#e8f2f8;
  color:#07385a;
  font-weight:900;
  box-shadow:0 14px 34px rgba(11,60,93,.18);
  cursor:pointer;
}
.float-trigger.primary{
  background:#0B3C5D;
  color:#fff;
}
.float-trigger.success{
  background:#10a150;
  color:#fff;
  box-shadow:0 14px 34px rgba(16,161,80,.22);
}
.float-trigger.success:hover{
  background:#0b8f45;
}
.float-trigger.save-advance{
  background:#ff7f11;
  color:#fff;
  border:1px solid #ff7f11;
  box-shadow:0 14px 34px rgba(255,127,17,.22);
}
.float-trigger.save-advance:hover{
  background:#f26f00;
  border-color:#f26f00;
}
.float-trigger.save-advance.approval-mode{
  background:#10a150;
  border-color:#10a150;
  box-shadow:0 14px 34px rgba(16,161,80,.22);
}
.float-trigger.save-advance.approval-mode:hover{
  background:#0b8f45;
  border-color:#0b8f45;
}
.float-dropdown{
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  display:none;
  min-width:230px;
  max-height:min(430px,70vh);
  overflow:auto;
  padding:8px;
  border:1px solid #d2e0ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 20px 48px rgba(11,60,93,.22);
}
.float-dropdown.open{
  display:grid;
  gap:6px;
}
.float-dropdown button{
  width:100%;
  border:0;
  border-radius:11px;
  padding:11px 12px;
  background:#eef6fb;
  color:#07385a;
  text-align:left;
  font-weight:900;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
}
.float-dropdown button:hover,
.float-dropdown button.active{
  background:#0B3C5D;
  color:#fff;
}
.float-dropdown button.danger{
  background:#ffe9ed;
  color:#d52338;
}
.menu-icon{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:9px;
  background:#d9ebf5;
  color:#07385a;
  font-size:12px;
  font-weight:900;
}
.float-dropdown button:hover .menu-icon,
.float-dropdown button.active .menu-icon{
  background:rgba(255,255,255,.22);
  color:#fff;
}
.float-dropdown button.danger .menu-icon{
  background:#ffd2da;
  color:#d52338;
}
.document-actions-menu{
  min-width:310px;
}
.action-menu-head{
  display:grid;
  gap:3px;
  padding:5px 7px 10px;
  border-bottom:1px solid #dce8f0;
  color:#07385a;
}
.action-menu-head strong{
  font-size:14px;
}
.action-menu-head span{
  color:#6b8195;
  font-size:11px;
  line-height:1.3;
}
.document-actions-menu button>span:last-child{
  display:grid;
  gap:2px;
  min-width:0;
}
.document-actions-menu button strong{
  font-size:12px;
}
.document-actions-menu button small{
  color:#6b8195;
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  white-space:normal;
}
.document-actions-menu button:hover small{
  color:#d9edf7;
}
.doc-actions,
.doc-section-tabs{
  display:none!important;
}
.risk-sticky{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  min-height:48px;
}
.approver-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:7px 12px;
  border:1px solid #cfe0ec;
  border-radius:999px;
  background:#f1f8fc;
  color:#0B3C5D;
  font-weight:800;
}
.approver-chip::before{
  content:"✓";
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#00B050;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.document-sync-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  margin-left:auto;
  padding:6px 10px;
  border:1px solid #cfe0ec;
  border-radius:999px;
  background:#f3f8fc;
  color:#526d87;
  white-space:nowrap;
  font-size:11px;
  font-weight:900;
}
.document-sync-status::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#7b93a8;
}
.document-sync-status.synced{
  border-color:#bcebc9;
  background:#ecfbf1;
  color:#0d7a38;
}
.document-sync-status.synced::before{background:#00b050}
.document-sync-status.local,
.document-sync-status.pending{
  border-color:#ffd79a;
  background:#fff7e8;
  color:#9a5a00;
}
.document-sync-status.local::before,
.document-sync-status.pending::before{background:#ff9800}
.document-sync-status.saving::before{
  background:#168ec0;
  animation:syncPulse 1s infinite alternate;
}
.document-sync-status.error{
  border-color:#ffc4c9;
  background:#fff0f2;
  color:#b42336;
}
.document-sync-status.error::before{background:#ef4055}
@keyframes syncPulse{
  to{transform:scale(1.7);opacity:.35}
}
.workflow-board{
  width:100%;
  max-width:1180px;
  margin:0 auto 14px;
  padding:14px;
  border:1px solid #d2e0ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 28px rgba(11,60,93,.07);
}
.workflow-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.workflow-head strong{
  display:block;
  color:#07385a;
  font-size:18px;
}
.workflow-head span{
  color:#60758b;
  font-size:13px;
}
.workflow-track{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:8px;
}
.workflow-step{
  border:1px solid #d9e5ef;
  border-radius:12px;
  padding:9px 10px;
  background:#f4f9fd;
  color:#60758b;
  font-weight:900;
  display:flex;
  align-items:center;
  gap:8px;
  text-align:left;
}
.workflow-step span{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  flex:0 0 26px;
  border-radius:50%;
  background:#dbeaf4;
  color:#07385a;
}
.workflow-step.done{
  background:#ecfbf1;
  color:#0d7a38;
  border-color:#bcebc9;
}
.workflow-step.done span{
  background:#00B050;
  color:#fff;
}
.workflow-step.active{
  background:#0B3C5D;
  color:#fff;
  border-color:#0B3C5D;
}
.workflow-step.active span{
  background:#fff;
  color:#0B3C5D;
}
.float-dropdown button.locked,
.doc-section-tabs button.locked{
  opacity:.45;
  cursor:not-allowed;
}
.float-dropdown button:disabled,
.doc-section-tabs button:disabled{
  pointer-events:none;
}
.doc-section-tabs{
  width:100%;
  max-width:1180px;
  margin:0 auto 14px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:8px;
  overflow:visible;
  padding:8px;
  border:1px solid #d4e1ec;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 24px rgba(11,60,93,.06);
}
.doc-section-tabs button{
  min-width:0;
  border:0;
  border-radius:10px;
  padding:10px 14px;
  background:#e8f2f8;
  color:#07385a;
  font-weight:900;
  cursor:pointer;
  white-space:normal;
}
.doc-section-tabs button.active{
  background:#0B3C5D;
  color:#fff;
}
.doc-page{
  overflow:visible;
}
.doc-page [data-doc-panel]{
  display:block;
  scroll-margin-top:18px;
}
.doc-page [data-doc-panel].active{
  display:block;
}
.document-editor-mode [data-doc-panel]{
  display:none;
}
.document-editor-mode [data-doc-panel].active{
  display:block;
}
.scroll-review-mode [data-doc-panel],
.scroll-review-mode [data-doc-panel].active{
  display:block;
}
.scroll-review-mode [data-doc-panel]{
  scroll-margin-top:18px;
}
.doc-page [data-doc-panel][hidden],
.scroll-review-mode [data-doc-panel][hidden],
.document-editor-mode [data-doc-panel][hidden]{
  display:none!important;
}
.doc-header{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:
    "title"
    "meta"
    "conf number";
  gap:0;
  border:1px solid #c8d9e8;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.doc-logo{display:none!important}
.doc-title{
  grid-area:title;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  min-width:0;
  padding:18px 18px 10px;
  border:0;
  text-align:left;
}
.doc-title strong{
  color:#07385a;
  font-size:13px;
  line-height:1.1;
}
.doc-title strong:last-child{
  font-size:18px;
  line-height:1.2;
}
.doc-meta{
  grid-area:meta;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0 18px 16px;
}
.doc-meta span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border:1px solid #d7e2ec;
  border-radius:999px;
  padding:6px 10px;
  background:#f3f8fc;
  color:#0f2236;
  font-size:12px;
}
.doc-conf{
  grid-area:conf;
  border:0;
  border-top:1px solid #d7e2ec;
  padding:10px 14px;
  text-align:left;
  color:#506579;
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#f8fbfd;
  line-height:1.35;
}
.doc-conf strong{
  display:block;
  color:#07385a;
  font-size:12px;
}
.doc-conf-icon{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:50%;
  background:#0B3C5D;
  color:#fff;
  font-weight:900;
  font-style:normal;
}
.doc-number{
  grid-area:number;
  border:0;
  border-top:1px solid #d7e2ec;
  border-left:1px solid #d7e2ec;
  padding:9px 14px;
  min-width:180px;
  background:#f8fbfd;
  color:#07385a;
}
.doc-two-cols{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
.doc-two-cols>.doc-section{
  min-width:0;
  width:100%;
}
.doc-two-cols.single-panel-row>.doc-section{
  grid-column:1 / -1;
}
.doc-section:not(.risk-section){
  min-width:0;
  padding:26px;
}
.doc-section:not(.risk-section) legend{
  margin-bottom:22px;
}
.doc-section:not(.risk-section) .doc-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 20px;
}
.doc-section:not(.risk-section).full .doc-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.doc-section:not(.risk-section) .doc-cell,
.doc-section:not(.risk-section) .doc-cell.wide{
  min-width:0;
  grid-column:auto;
}
.doc-section:not(.risk-section) .doc-cell.wide{
  grid-column:1 / -1;
}
.doc-section:not(.risk-section) .doc-cell input,
.doc-section:not(.risk-section) .doc-cell textarea,
.doc-section:not(.risk-section) .doc-cell select,
.doc-section:not(.risk-section) .check-row{
  width:100%;
  max-width:100%;
  min-width:0;
}
.doc-section:not(.risk-section) .doc-cell span{
  width:auto;
  max-width:100%;
  overflow-wrap:anywhere;
}
.risk-row{
  grid-template-columns:minmax(220px,280px) minmax(0,1fr) 64px;
}
.risk-options{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
}
.risk-options label{
  min-width:0;
}
.risk-options label span{
  overflow-wrap:anywhere;
}
@media (max-width:1180px){
  .doc-two-cols{grid-template-columns:1fr}
  .doc-section:not(.risk-section) .doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  #app:has(.doc-page){padding-inline:12px}
  .doc-actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .doc-actions .btn{width:100%;justify-content:center;white-space:normal}
  .action-menu,.action-toggle{width:100%}
  .action-dropdown{position:static;margin-top:8px;width:100%}
  .floating-doc-tools{
    right:12px;
    left:12px;
    bottom:12px;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .float-trigger{
    width:100%;
    padding:12px;
  }
  .float-dropdown{
    position:absolute;
    left:0;
    right:0;
    min-width:0;
    width:calc(200% + 10px);
  }
  .float-menu:first-child .float-dropdown{left:0;right:auto}
  .float-menu:last-child .float-dropdown{right:0;left:auto}
  .risk-sticky{align-items:flex-start;gap:10px}
  .document-sync-status{
    width:100%;
    margin-left:0;
    justify-content:center;
  }
  .workflow-head{
    display:grid;
  }
  .workflow-head .btn{
    width:100%;
    justify-content:center;
  }
  .workflow-track{
    grid-template-columns:1fr 1fr;
  }
  .doc-header{
    grid-template-columns:1fr;
    grid-template-areas:"title" "meta" "conf" "number";
  }
  .doc-section-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:visible;
  }
  .doc-section-tabs button{
    white-space:normal;
  }
  .doc-title{text-align:center;align-items:center}
  .doc-meta{justify-content:center}
  .doc-number{border-left:0;text-align:center}
  .doc-section:not(.risk-section){padding:22px 16px}
  .doc-section:not(.risk-section) .doc-grid,
  .doc-section:not(.risk-section).full .doc-grid{grid-template-columns:1fr}
  .risk-row{grid-template-columns:1fr}
}
@media print{
  html,body,.workspace,#app{overflow:visible}
  .doc-section-tabs{display:none!important}
  .doc-page [data-doc-panel],
  .doc-page [data-doc-panel].active,
  .doc-page .doc-two-cols{
    display:block;
  }
  .doc-page .doc-two-cols{
    display:grid;
  }
  .doc-header{
    display:grid;
    grid-template-columns:1fr 220px;
    grid-template-areas:
      "title meta"
      "conf number";
    border:0;
    border-bottom:1px solid #333;
    border-radius:0;
  }
  .doc-title{align-items:center;text-align:center;padding:6px;border-right:1px solid #333}
  .doc-title strong{color:#000;font-size:10px}.doc-title strong:last-child{font-size:11px}
  .doc-meta{display:grid;gap:0;padding:0}.doc-meta span{border:0;border-bottom:1px solid #333;border-radius:0;background:#fff;color:#000;min-height:20px;padding:3px 6px}
  .doc-conf{border-top:1px solid #333;text-align:center;color:#000;padding:4px;display:block;background:#fff}
  .doc-conf-icon{display:none}
  .doc-conf strong{display:inline;color:#000;font-size:10px}
  .doc-number{border-top:1px solid #333;border-left:1px solid #333;background:#fff;color:#000;padding:4px}
  .doc-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
}

/* Scroll independiente por zonas: solo sidebar y área principal. */
html,body{
  height:100%;
}
body{
  overflow:hidden;
}
.app-shell{
  height:100vh;
  min-height:0;
  overflow:hidden;
}
.sidebar{
  height:100vh;
  overflow-y:auto;
  overflow-x:hidden;
}
.workspace{
  height:100vh;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.navbar{
  flex:0 0 auto;
}
#app{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  padding-bottom:96px;
}
.doc-page{
  min-height:0;
}
.doc-page [data-doc-panel].active,
.doc-page [data-doc-panel="general"].active{
  max-height:none;
  overflow:visible;
  padding-right:0;
}

/* Riesgo con el mismo estilo visual de las demás secciones. */
.risk-section{
  border:0!important;
  border-radius:16px;
  background:#fff;
  padding:28px 32px 32px;
  box-shadow:0 18px 38px rgba(11,60,93,.08);
  overflow:visible;
}
.risk-section legend{
  float:left;
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  padding:0;
  background:transparent;
  color:#06385b;
  text-align:left;
  font-size:20px;
  line-height:1.2;
  text-transform:none;
  border:0;
}
.risk-section legend::before{
  content:"";
  width:22px;
  height:22px;
  flex:0 0 22px;
  background:#06385b;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.risk-intro{
  clear:both;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid #cfe0ec;
  border-radius:14px;
  background:#eaf5fb;
  color:#41576c;
  font-weight:700;
  line-height:1.45;
}
.risk-row{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr) 62px;
  gap:0;
  min-height:0;
  margin:0 0 12px;
  border:1px solid #d5e0ea;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.risk-row:nth-of-type(even){
  background:#fff;
}
.risk-title{
  display:flex;
  align-items:center;
  padding:16px;
  border-right:1px solid #d5e0ea;
  background:#f3f8fc;
  color:#06385b;
  font-size:14px;
  font-weight:900;
}
.risk-options{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:10px;
  padding:14px;
}
.risk-options label{
  min-height:40px;
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 10px;
  border:1px solid #e0e8f0;
  border-radius:12px;
  background:#fbfdff;
  color:#203247;
  font-size:13px;
}
.risk-options b{
  margin-left:auto;
  color:#06385b;
}
.risk-score{
  display:grid;
  place-items:center;
  border-left:1px solid #d5e0ea;
  background:#f3f8fc;
  color:#06385b;
  font-weight:900;
}
.risk-result{
  margin-top:14px;
  border:1px solid #d5e0ea;
  border-radius:14px;
  background:#f8fbfd;
}
@media (max-width:900px){
  .doc-page [data-doc-panel].active{
    max-height:none;
    overflow:visible;
    padding-right:0;
  }
  body{
    overflow:hidden;
  }
  .risk-row{
    grid-template-columns:1fr;
  }
  .risk-title{
    border-right:0;
    border-bottom:1px solid #d5e0ea;
  }
  .risk-score{
    min-height:42px;
    border-left:0;
    border-top:1px solid #d5e0ea;
  }
}
@media print{
  body,.app-shell,.workspace,#app{
    height:auto;
    overflow:visible;
  }
  .doc-page [data-doc-panel].active,
  .doc-page [data-doc-panel]{
    max-height:none;
    overflow:visible;
    padding-right:0;
  }
  .risk-section{
    padding:0;
    border-radius:0;
    box-shadow:none;
  }
  .risk-section legend{
    display:block;
    text-align:center;
    background:#4472C4;
    color:#fff;
    padding:4px;
    margin:0;
    font-size:10px;
  }
  .risk-section legend::before{
    display:none;
  }
  .risk-intro{
    border:0;
    border-bottom:1px solid #333;
    border-radius:0;
    background:#fff;
    color:#000;
    margin:0;
    padding:5px;
  }
  .risk-row{
    grid-template-columns:220px 1fr 42px;
    margin:0;
    border:0;
    border-bottom:1px solid #666;
    border-radius:0;
  }
  .risk-title{
    background:#F2F2F2;
    border-right:1px solid #666;
    color:#000;
    padding:5px;
    font-size:10px;
  }
  .risk-options{
    display:block;
    padding:4px 6px;
  }
  .risk-options label{
    display:inline-flex;
    min-height:0;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
    margin:3px 8px 3px 0;
    font-size:10px;
  }
  .risk-score{
    border-left:1px solid #666;
    background:#F2F2F2;
    color:#000;
  }
}

/* Reportes responsive: escritorio en cards, teléfono en filas tipo tarjeta. */
.reports-page{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:18px;
}
.reports-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:26px;
  border-radius:12px;
  background:linear-gradient(135deg,#0B3C5D,#35acd4);
  color:#fff;
  box-shadow:0 14px 34px rgba(11,60,93,.12);
}
.reports-hero h2{
  margin:0 0 8px;
  font-size:clamp(24px,3vw,32px);
}
.reports-hero p{
  margin:0;
  color:#eaf8ff;
  font-size:15px;
}
.reports-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.reports-actions .btn{
  white-space:nowrap;
}
.reports-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
  gap:16px;
}
.report-card{
  min-width:0;
  padding:18px;
  border:1px solid #d2e0ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(11,60,93,.08);
}
.report-card h3{
  margin:0 0 14px;
  color:#07385a;
  font-size:20px;
}
.report-table-wrap{
  width:100%;
  overflow-x:auto;
}
.report-table{
  width:100%;
  min-width:0;
  border-collapse:collapse;
  table-layout:auto;
}
.report-table th,
.report-table td{
  padding:12px 10px;
  border-bottom:1px solid #dbe6ef;
  color:#17283a;
  font-size:14px;
  overflow-wrap:anywhere;
}
.report-table th{
  background:#eef6fb;
  color:#526d87;
  text-transform:uppercase;
  font-size:12px;
}
@media (max-width:760px){
  body{
    font-size:14px;
  }
  .navbar{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    padding:8px 10px;
    min-height:58px;
  }
  .navbar>div:nth-child(2){
    min-width:0;
  }
  .navbar h1{
    font-size:18px;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .navbar p{
    font-size:12px;
    line-height:1.15;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .icon-btn{
    width:36px;
    height:36px;
  }
  .user-pill{
    gap:4px;
    padding:4px;
    max-width:112px;
  }
  .user-pill span{
    display:none;
  }
  .user-pill strong{
    max-width:68px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:11px;
  }
  .user-pill .btn{
    padding:8px 9px;
    font-size:12px;
  }
  #app{
    padding:10px 10px 92px;
  }
  .dashboard-hero{
    padding:14px;
  }
  .dashboard-hero h2{
    font-size:20px;
  }
  .dashboard-hero p{
    font-size:13px;
  }
  .stats-grid{
    grid-template-columns:1fr;
  }
  .stat-card{
    padding:14px;
  }
  .stat-card strong{
    font-size:24px;
  }
  .mini-list article{
    padding:10px;
    border-radius:10px;
  }
  .mini-list span{
    font-size:10px;
  }
  .mini-list strong{
    font-size:12px;
  }
  .forms-manager-head{
    padding:14px;
    border-radius:12px;
  }
  .forms-manager-head h2{
    font-size:20px;
  }
  .forms-manager-head p{
    font-size:13px;
  }
  .form-card{
    padding:14px;
  }
  .form-card h3{
    font-size:16px;
  }
  .forms-process-strip{
    grid-template-columns:1fr 1fr;
  }
  .forms-process-strip span{
    min-height:34px;
    font-size:12px;
  }
  .floating-doc-tools{
    grid-template-columns:1.15fr .85fr;
  }
  .float-trigger{
    min-height:44px;
    border-radius:14px;
    font-size:13px;
    box-shadow:0 10px 24px rgba(11,60,93,.2);
  }
  .float-dropdown{
    max-height:58vh;
  }
  .float-dropdown button{
    padding:12px;
    font-size:13px;
  }
  .menu-icon{
    width:24px;
    height:24px;
    flex-basis:24px;
  }
}

@media (max-width:380px){
  .navbar{
    grid-template-columns:34px minmax(0,1fr) auto;
  }
  .icon-btn{
    width:32px;
    height:32px;
  }
  .navbar h1{
    font-size:16px;
  }
  .navbar p{
    font-size:11px;
  }
  .user-pill{
    max-width:92px;
  }
  .user-pill strong{
    max-width:48px;
  }
  .user-pill .btn{
    padding:7px;
  }
}

@media (max-width:760px){
  #app{
    padding:10px 10px 92px;
  }
  .reports-page{
    gap:14px;
  }
  .reports-hero{
    display:grid;
    padding:20px;
  }
  .reports-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .reports-actions .btn{
    width:100%;
    justify-content:center;
  }
  .reports-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .report-card{
    padding:16px;
    border-radius:12px;
  }
  .report-card h3{
    font-size:18px;
  }
  .report-table-wrap{
    overflow:visible;
  }
  .report-table,
  .report-table thead,
  .report-table tbody,
  .report-table tr,
  .report-table th,
  .report-table td{
    display:block;
    width:100%;
  }
  .report-table thead{
    display:none;
  }
  .report-table tr{
    margin-bottom:10px;
    padding:10px;
    border:1px solid #dbe6ef;
    border-radius:12px;
    background:#fbfdff;
  }
  .report-table td{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:8px 4px;
    border:0;
    text-align:right;
  }
  .report-table td::before{
    content:attr(data-label);
    flex:0 0 42%;
    color:#60758b;
    font-weight:900;
    text-align:left;
  }
}
@media print{
  .reports-hero{
    background:#fff;
    color:#000;
    border:1px solid #333;
    box-shadow:none;
  }
  .reports-actions{
    display:none;
  }
  .reports-grid{
    grid-template-columns:1fr 1fr;
  }
  .report-card{
    box-shadow:none;
    break-inside:avoid;
  }
}

/* Bandeja de formularios documentales. */
.forms-manager{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:16px;
}
.forms-manager-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px;
  border-radius:16px;
  background:#fff;
  border:1px solid #d2e0ec;
  box-shadow:0 14px 34px rgba(11,60,93,.08);
}
.forms-manager-head h2{
  margin:0 0 6px;
  color:#07385a;
  font-size:26px;
}
.forms-manager-head p{
  margin:0;
  color:#60758b;
}
.forms-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:14px;
}
.forms-process-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:8px;
  padding:10px;
  border:1px solid #d2e0ec;
  border-radius:14px;
  background:#fff;
}
.forms-process-strip span{
  display:grid;
  place-items:center;
  min-height:38px;
  border-radius:10px;
  background:#e8f2f8;
  color:#07385a;
  font-weight:900;
  text-align:center;
}
.form-card{
  min-width:0;
  display:grid;
  gap:14px;
  padding:18px;
  border:1px solid #d2e0ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 14px 34px rgba(11,60,93,.08);
  transition:transform .18s ease,box-shadow .18s ease;
}
.form-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(11,60,93,.13);
}
.form-number{
  display:inline-flex;
  width:max-content;
  padding:5px 10px;
  border-radius:999px;
  background:#e8f2f8;
  color:#07385a;
  font-weight:900;
  font-size:13px;
}
.form-card h3{
  margin:10px 0 4px;
  color:#102033;
}
.form-card p{
  margin:0;
  color:#60758b;
  overflow-wrap:anywhere;
}
.form-card-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.form-card footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.form-card-action{
  min-height:38px;
  padding:8px 11px;
  gap:7px;
  white-space:nowrap;
  font-size:13px;
}
.form-card-action span{
  display:grid;
  place-items:center;
  min-width:24px;
  height:24px;
  padding:0 5px;
  border-radius:7px;
  background:#d8eaf4;
  color:#07385a;
  font-size:9px;
  font-weight:900;
}
.form-card-action.primary{
  background:#0B3C5D;
  color:#fff;
}
.form-card-action.primary span{
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:13px;
}
.form-card-action.delete{
  border:1px solid #ffc7ce;
  background:#fff0f2;
  color:#c9273c;
}
.form-card-action.delete span{
  background:#ffd9df;
  color:#c9273c;
  font-size:15px;
}
.confirm-dialog{
  width:min(500px,calc(100% - 24px));
  max-width:none;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
}
.confirm-dialog::backdrop{
  background:rgba(7,24,38,.72);
  backdrop-filter:blur(3px);
}
.confirm-dialog-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  padding:22px;
  border:1px solid #ffd0d6;
  border-radius:16px;
  background:#fff;
  box-shadow:0 28px 70px rgba(15,23,42,.34);
}
.confirm-dialog-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:13px;
  background:#fff0f2;
  color:#d52d43;
  font-size:22px;
  font-weight:900;
}
.confirm-dialog-icon.success{
  background:#e9fbf1;
  color:#0a8d4d;
}
.confirm-dialog-card h2{
  margin:2px 0 7px;
  color:#7f1725;
  font-size:20px;
}
.confirm-dialog-card p{
  margin:0;
  color:#617386;
  line-height:1.45;
}
.confirm-check{
  grid-column:1/-1;
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:12px;
  border:1px solid #f0d6da;
  border-radius:10px;
  background:#fff7f8;
  color:#5d2b33;
  font-size:13px;
  font-weight:700;
}
.confirm-check input{
  width:auto;
  margin-top:2px;
}
.confirm-textarea{
  grid-column:1/-1;
  display:grid;
  gap:7px;
  color:#07385a;
  font-weight:900;
}
.confirm-textarea textarea{
  width:100%;
  min-height:92px;
  resize:vertical;
  border:1px solid #f0b8c0;
  border-radius:10px;
  padding:11px 12px;
  background:#fff;
  color:#102033;
  font:inherit;
  font-weight:600;
}
.confirm-textarea textarea:focus{
  outline:0;
  border-color:#ef4444;
  box-shadow:0 0 0 3px rgba(239,68,68,.13);
}
.form-rejection-dialog{width:min(580px,calc(100% - 24px))}
.form-rejection-dialog .confirm-dialog-card{border-color:#f1c2ca}
.form-rejection-warning{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:12px;
  border:1px solid #f5d3d8;
  border-radius:12px;
  background:#fff7f8;
  color:#6d2a35;
  font-size:13px;
  font-weight:700;
  line-height:1.4;
}
.form-rejection-warning svg{width:20px;height:20px;color:#d52d43}
.confirm-textarea span small,.form-rejection-count{color:#6f8090;font-size:12px;font-weight:700}
.form-rejection-count{text-align:right}
.confirm-dialog-card footer{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.confirm-dialog-card .btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.authorization-section .doc-grid{display:block}.authorization-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #cfe2ef;border-radius:14px;background:#f8fbfd;margin-bottom:12px}.authorization-summary strong{display:block;color:#07385a;font-size:18px}.authorization-summary span:not(.risk-pill){color:#526d87}.authorization-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border-radius:14px;margin-bottom:12px;border:1px solid #bfe0ef;background:#eef8ff;color:#07385a}.authorization-alert svg{font-size:24px}.authorization-alert p{margin:4px 0 0;color:#526d87}.authorization-alert.level-2{border-color:#ffe0a6;background:#fff8e8}.authorization-alert.level-3{border-color:#ffc4c9;background:#fff0f2}.authorization-checklist{display:grid;gap:8px;margin-bottom:12px}.authorization-checklist label,.authorization-checklist span{display:flex;gap:8px;align-items:flex-start;padding:10px;border:1px solid #d9e8f1;border-radius:10px;background:#fff;color:#123}.authorization-checklist input{width:auto;margin-top:2px}.authorization-checklist.readonly span svg{margin-top:2px;color:#f57c00}.authorization-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.authorization-card{display:grid;gap:10px;padding:14px;border:1px solid #d9e8f1;border-radius:14px;background:#fff}.authorization-card header{display:flex;gap:10px;align-items:center}.authorization-card header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf3f8;color:#0b5f96}.authorization-card strong{color:#07385a}.authorization-card small{display:block;color:#617386}.authorization-card p{margin:0;color:#526d87}.authorization-card blockquote{margin:0;padding:9px;border-left:4px solid #68a6dd;background:#f3f9fd;color:#29445a}.authorization-actions{display:none}.authorization-open{width:100%;justify-content:center}.authorization-card.status-success{border-color:#bcebc9}.authorization-card.status-danger{border-color:#ffc4c9}.authorization-card.status-warning{border-color:#ffe0a6}
.extension-approval-card{border-color:#f2c36b!important;background:#fffaf0;box-shadow:inset 4px 0 0 #f59e0b}.extension-approval-card header>span{background:#fff2d1;color:#b56b00}.extension-approval-card header strong{color:#7a4300}.extension-approval-open{background:#f59e0b!important;color:#fff!important}.extension-approval-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #f3d391;border-radius:12px;background:#fff4d8;color:#5f3a00}.extension-approval-detail p{grid-column:1/-1;margin:0!important;color:#5f3a00!important}.extension-approval-detail span{color:#5f3a00!important}.extension-approval-dialog .authorization-dialog-card{border-color:#f3c56d}.extension-approval-dialog .authorization-dialog-card header span{color:#b56b00}.extension-approval-dialog .authorization-modal-warning{background:#fff8e8!important;border-color:#f3d391!important}.extension-approval-dialog .authorization-modal-warning svg{color:#b56b00!important}
.extension-approval-card.status-success{border-color:#5fd28b!important;background:#f0fff6;box-shadow:inset 4px 0 0 #22c55e}.extension-approval-card.status-success header>span{background:#dcfce7;color:#15803d}.extension-approval-card.status-success header strong{color:#166534}.extension-approval-card.status-success .extension-approval-detail{border-color:#bcebc9;background:#effdf4;color:#14532d}.extension-approval-card.status-success .extension-approval-detail p,.extension-approval-card.status-success .extension-approval-detail span{color:#14532d!important}.authorization-group{display:grid;gap:10px;margin-top:12px}.authorization-group h3{margin:0;color:#07385a;font-size:15px}.extension-authorization-group{padding-top:12px;border-top:1px dashed #f2c36b}
.workflow-auth-status{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-width:min(420px,100%);
  padding:10px 12px;
  border:1px solid #d4e4ef;
  border-radius:14px;
  background:#f8fbfd;
  color:#07385a;
}

.doc-section[data-collapsible-section] legend{
  display:flex;
  align-items:center;
}
.doc-section[data-collapsible-section] legend::before{
  display:none!important;
}
.section-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.section-toggle span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
}
.section-toggle .lucide{
  display:none;
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.doc-section.is-collapsed{
  box-shadow:none;
}
.doc-section.is-collapsed > :not(legend){
  display:none!important;
}

@media (min-width:761px){
  .section-toggle{
    cursor:default;
    pointer-events:none;
  }
}

@media (max-width:760px){
  .doc-section[data-collapsible-section] legend{
    text-align:center;
  }
  .section-toggle{
    display:grid;
    grid-template-columns:24px minmax(0,1fr) 24px;
    align-items:center;
    gap:6px;
    text-align:center;
  }
  .section-toggle span{
    justify-self:center;
    text-align:center;
  }
  .section-toggle .lucide{
    display:block;
    justify-self:start;
  }
  .section-toggle::after{
    content:"";
    width:24px;
    height:1px;
  }
}
.workflow-auth-status svg{font-size:21px}
.workflow-auth-status strong{display:block;font-size:13px}
.workflow-auth-status span{display:block;color:#526d87;font-size:12px;line-height:1.25}
.workflow-auth-status[data-auth-state="pending"]{border-color:#ffd895;background:#fff8e8}
.workflow-auth-status[data-auth-state="complete"]{border-color:#bcebc9;background:#edf9f0}
.workflow-auth-status[data-auth-state="rejected"]{border-color:#ffc4c9;background:#fff0f2}
.authorization-summary-complete{border-color:#bcebc9;background:#edf9f0}
.authorization-summary-pending{border-color:#ffd895;background:#fff8e8}
.authorization-summary-rejected{border-color:#ffc4c9;background:#fff0f2}
.authorization-dialog{width:min(640px,calc(100vw - 24px));border:0;border-radius:20px;padding:0;background:transparent;color:#0f2236}.authorization-dialog::backdrop{background:rgba(5,18,31,.58);backdrop-filter:blur(3px)}.authorization-dialog-card{display:grid;gap:14px;padding:18px;border:1px solid #cfe2ef;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(5,18,31,.28)}.authorization-dialog-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e1edf5}.authorization-dialog-card header span{display:block;color:#1083e8;font-size:12px;font-weight:900;text-transform:uppercase}.authorization-dialog-card header strong{display:block;color:#07385a;font-size:24px;line-height:1.1}.authorization-dialog-card header small{display:block;margin-top:4px;color:#526d87}.authorization-modal-warning{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border-radius:14px;background:#f3f9fd;border:1px solid #d5e8f4}.authorization-modal-warning svg{font-size:26px;color:#0b5f96}.authorization-dialog.level-2 .authorization-modal-warning{background:#fff8e8;border-color:#ffe0a6}.authorization-dialog.level-3 .authorization-modal-warning{background:#fff0f2;border-color:#ffc4c9}.authorization-modal-warning p{margin:4px 0 0;color:#526d87}.authorization-modal-checks{display:grid;gap:8px}.authorization-modal-checks label{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid #d9e8f1;border-radius:12px;background:#f8fbfd;font-weight:800}.authorization-modal-checks input{width:auto;margin-top:3px}.authorization-modal-comment{display:grid;gap:6px;font-weight:900;color:#07385a}.authorization-modal-comment textarea{min-height:92px;border:1px solid #cfe0ec;border-radius:12px;padding:12px;resize:vertical}.authorization-dialog-card footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
:root[data-theme="dark"] .notification-panel{border-color:#31516a;background:#10283b;color:#dff5ff}:root[data-theme="dark"] .notification-panel header,:root[data-theme="dark"] .notification-item{border-color:#31516a;background:#17364b;color:#dff5ff}:root[data-theme="dark"] .notification-item.unread{border-color:#68a6dd;background:#153d56}:root[data-theme="dark"] .notification-panel header strong,:root[data-theme="dark"] .notification-item strong{color:#dff5ff}:root[data-theme="dark"] .notification-panel header span,:root[data-theme="dark"] .notification-item p,:root[data-theme="dark"] .notification-item small{color:#9db1c2}
:root[data-theme="dark"] .notification-fallback-card{background:#10283b;border-color:#31516a}:root[data-theme="dark"] .notification-fallback-card h3{color:#dff5ff}:root[data-theme="dark"] .notification-fallback-card p{color:#9db1c2}:root[data-theme="dark"] .notification-fallback-icon{background:#17364b;color:#9db1c2}
:root[data-theme="dark"] .authorization-summary,:root[data-theme="dark"] .authorization-alert,:root[data-theme="dark"] .authorization-card,:root[data-theme="dark"] .authorization-checklist label,:root[data-theme="dark"] .authorization-checklist span{border-color:#31516a;background:#10283b;color:#dff5ff}:root[data-theme="dark"] .authorization-summary strong,:root[data-theme="dark"] .authorization-card strong{color:#dff5ff}:root[data-theme="dark"] .authorization-summary span:not(.risk-pill),:root[data-theme="dark"] .authorization-alert p,:root[data-theme="dark"] .authorization-card p,:root[data-theme="dark"] .authorization-card small{color:#9db1c2}:root[data-theme="dark"] .authorization-card blockquote{border-color:#68a6dd;background:#17364b;color:#dff5ff}:root[data-theme="dark"] .authorization-dialog-card{border-color:#31516a;background:#10283b;color:#dff5ff}:root[data-theme="dark"] .authorization-dialog-card header{border-color:#31516a}:root[data-theme="dark"] .authorization-dialog-card header strong,:root[data-theme="dark"] .authorization-modal-comment{color:#dff5ff}:root[data-theme="dark"] .authorization-dialog-card header small,:root[data-theme="dark"] .authorization-modal-warning p{color:#9db1c2}:root[data-theme="dark"] .authorization-modal-warning,:root[data-theme="dark"] .authorization-modal-checks label{border-color:#31516a;background:#0d2030;color:#dff5ff}:root[data-theme="dark"] .authorization-modal-comment textarea{border-color:#4a718d;background:#082033;color:#fff}
:root[data-theme="dark"] .form-card-action.delete{
  border-color:#82404b;
  background:#47222b;
  color:#ffadb9;
}
:root[data-theme="dark"] .form-card-action.delete span{
  background:#67303b;
  color:#ffc4cc;
}
:root[data-theme="dark"] .confirm-dialog-card{
  border-color:#82404b;
  background:#10283b;
}
:root[data-theme="dark"] .form-rejection-warning{
  border-color:#82404b;
  background:#47222b;
  color:#ffd9de;
}
:root[data-theme="dark"] .form-rejection-warning svg{color:#ffadb9}
:root[data-theme="dark"] .form-rejection-dialog .confirm-textarea textarea{
  border-color:#82404b;
  background:#082033;
  color:#fff;
}
:root[data-theme="dark"] .form-rejection-dialog .confirm-textarea span small,
:root[data-theme="dark"] .form-rejection-dialog .form-rejection-count{color:#a9c0d1}
:root[data-theme="dark"] .confirm-dialog-icon{
  background:#47222b;
  color:#ffadb9;
}
:root[data-theme="dark"] .confirm-dialog-icon.success{
  background:#123d31;
  color:#8de6b4;
}
:root[data-theme="dark"] .confirm-dialog-card h2{
  color:#ffc4cc;
}
:root[data-theme="dark"] .confirm-dialog-card p{
  color:#aec2d1;
}
:root[data-theme="dark"] .confirm-check{
  border-color:#69404a;
  background:#321f27;
  color:#f2c9cf;
}
/* Navegación principal compacta y menú lateral realmente plegable. */
.app-shell{
  transition:grid-template-columns .22s ease;
}
.app-shell.sidebar-collapsed{
  grid-template-columns:0 minmax(0,1fr);
}
.app-shell.sidebar-collapsed .sidebar{
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateX(-100%);
}
.sidebar{
  transition:transform .22s ease,opacity .18s ease,visibility .18s ease;
}
.sidebar-close,
.sidebar-backdrop{
  display:none;
}
.navbar-nav-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.navbar-forms-btn{
  min-height:40px;
  gap:7px;
  white-space:nowrap;
}
.navbar-forms-btn[hidden]{
  display:none!important;
}

@media (max-width:980px){
  .sidebar{
    z-index:110;
  }
  .sidebar-close{
    position:fixed;
    z-index:130;
    top:10px;
    left:8px;
    right:auto;
    display:grid;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:22px;
  }
  .sidebar-backdrop{
    position:fixed;
    z-index:105;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(7,28,46,.48);
    backdrop-filter:blur(2px);
    cursor:pointer;
  }
  .sidebar.open + .sidebar-backdrop{
    display:block;
  }
  .app-shell.sidebar-collapsed{
    grid-template-columns:1fr;
  }
  .app-shell.sidebar-collapsed .sidebar{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }
}

/* Formularios: jerarquía clara y acciones estables en cualquier ancho. */
.form-card{
  grid-template-rows:auto auto 1fr;
  align-content:start;
}
.form-card-main{min-width:0}
.form-card-route{
  display:flex;
  align-items:flex-start;
  gap:7px;
  line-height:1.4;
}
.form-card-route .lucide{
  width:15px;
  height:15px;
  margin-top:3px;
  color:var(--brand-cyan);
}
.form-card-route span{min-width:0}
.form-card-route b{padding-inline:3px;color:var(--brand-cyan)}
.form-card-meta{
  min-height:32px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(104,166,221,.24);
}
.form-score{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  margin-left:auto;
  color:#17364b;
  white-space:nowrap;
}
.form-score strong{font-size:18px}
.form-score small{font-size:11px;font-weight:900;color:#60758b}
.form-card footer.form-card-actions{
  align-self:end;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  width:100%;
}
.form-card-primary-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  min-width:0;
}
.form-card-actions .form-card-action{
  width:100%;
  min-width:0;
  justify-content:center;
}
.form-card-actions .form-card-action.delete{
  width:auto;
}
:root[data-theme="dark"] .form-card-meta{border-color:#31516a}
:root[data-theme="dark"] .form-score{color:#dff5ff}
:root[data-theme="dark"] .form-score small{color:#9db1c2}

.movement-section .movement-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:14px;margin:0 0 14px;border:1px solid #cfe2ef;border-radius:12px;background:#f8fbfd;color:#07385a}.movement-section .movement-note i{font-size:22px;color:#1083e8}.movement-section .movement-note strong{display:block;color:#07385a}.movement-section .movement-note span{color:#526d87}.movement-rows{display:grid;gap:10px;margin-bottom:12px}.movement-row{display:grid;grid-template-columns:160px 160px minmax(0,1fr);gap:10px;align-items:end;padding:12px;border:1px solid #d9e8f1;border-radius:12px;background:#fff}.movement-row.field-complete{border-color:#2fc171;box-shadow:inset 3px 0 0 #2fc171}.movement-row label{display:grid;gap:6px;font-weight:800;color:#07385a}.movement-row span{font-size:12px;color:#526d87}.movement-row textarea{min-height:48px}.movement-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.movement-actions .btn{min-height:42px}.extension-request{margin-top:16px;padding:0;border:1px solid #ffe0a6;border-radius:12px;background:#fff8e8;overflow:hidden}.extension-request summary{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;font-weight:900;color:#07385a;list-style:none}.extension-request summary::-webkit-details-marker{display:none}.extension-request summary i{color:#d08a00}.extension-request .extension-fields{padding:0 14px 10px}.extension-request h3{margin:0 0 4px;color:#07385a}.extension-request p{margin:0 0 12px;color:#526d87}.extension-status{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;border:1px solid #dbe7f0;border-radius:10px;background:#f8fbfd;color:#07385a;font-weight:800}.extension-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 14px;border-top:1px solid #ffe0a6;background:#fff4d8}.extension-actions .btn{min-height:42px}.stamp-box{display:grid;place-items:center;gap:4px;min-height:96px;text-align:center}.stamp-box img{max-width:150px;max-height:82px;object-fit:contain}.stamp-box strong{display:block;color:#07385a;font-size:12px}.stamp-box span{display:block;color:#526d87;font-size:10px}.stamp-box.pending,.stamp-box.not-required{border:1px dashed #b8c7d6;border-radius:8px;color:#64748b}.stamp-box.not-required{background:#f8fbfd}
.extension-request.extension-pending{border-color:#f6b041;background:#fff8e8;box-shadow:inset 4px 0 0 #f59e0b}.extension-request.extension-pending .extension-status{border-color:#f3d391;background:#fff4d8;color:#7a4300}.extension-request.extension-approved{border-color:#86efac;background:#f0fff6;box-shadow:inset 4px 0 0 #22c55e}.extension-request.extension-approved summary i{color:#16a34a}.extension-request.extension-approved .extension-status{border-color:#bcebc9;background:#effdf4;color:#166534}.extension-request.extension-rejected{border-color:#ffc4c9;background:#fff0f2;box-shadow:inset 4px 0 0 #ef4444}.extension-request.extension-rejected summary i{color:#dc2626}.extension-request.extension-rejected .extension-status{border-color:#fecdd3;background:#fff1f2;color:#991b1b}
.internal-movement-request{margin-bottom:12px;border:1px solid #d9e8f1;border-radius:12px;background:#fff;overflow:hidden}.internal-movement-request summary{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;font-weight:900;color:#07385a;list-style:none}.internal-movement-request summary::-webkit-details-marker{display:none}.internal-movement-request summary i{color:#1083e8}.internal-movement-request .movement-rows{padding:0 12px}.internal-movement-request .movement-actions{padding:0 12px 12px}
:root[data-theme="dark"] .movement-section .movement-note,:root[data-theme="dark"] .movement-row{border-color:#31516a;background:#10283b;color:#dff5ff}:root[data-theme="dark"] .movement-section .movement-note strong,:root[data-theme="dark"] .movement-row label{color:#dff5ff}:root[data-theme="dark"] .movement-section .movement-note span,:root[data-theme="dark"] .movement-row span{color:#9db1c2}:root[data-theme="dark"] .extension-request{border-color:#5d4822;background:#2b2414}:root[data-theme="dark"] .extension-request h3{color:#fff3ce}:root[data-theme="dark"] .extension-request p{color:#d8c9a6}
@media (max-width:760px){.movement-row{grid-template-columns:1fr}}

@media (max-width:760px){
  .form-card{padding:16px;gap:13px}
  .form-card h3{font-size:18px;line-height:1.2}
  .form-card footer.form-card-actions{
    grid-template-columns:1fr;
  }
  .form-card-primary-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .form-card-actions .form-card-action{
    min-height:42px;
    padding:9px 7px;
    font-size:12px;
  }
  .form-card-actions .form-card-action.delete{
    width:100%;
  }
}

@media (max-width:360px){
  .form-card-primary-actions{grid-template-columns:1fr}
}

/* La distribución depende del ancho de la tarjeta, no del viewport. */
.form-card{
  container-type:inline-size;
}
.form-card footer.form-card-actions{
  grid-template-columns:1fr;
}
.form-card-primary-actions{
  width:100%;
}
.form-card-actions .form-card-action,
.form-card-actions .form-card-action.delete{
  width:100%;
  min-width:0;
  white-space:normal;
  line-height:1.15;
}
.form-card-actions .form-card-action.delete{
  min-height:40px;
}
@container (max-width:250px){
  .form-card-primary-actions{
    grid-template-columns:1fr;
  }
}

/* Reportes con presentación documental institucional. */
.print-only{display:none!important}
.reports-page{min-width:0;overflow:hidden}
.reports-screen-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:0;
  padding:12px 14px;
  border:1px solid #cbdce8;
  border-radius:8px;
  background:rgba(255,255,255,.92);
}
.reports-screen-toolbar>div:first-child{display:grid;gap:3px;min-width:0}
.reports-screen-toolbar strong{color:#07385a}
.reports-screen-toolbar span{color:#60758b;font-size:12px;overflow-wrap:anywhere}
.reports-document-head{
  display:grid;
  grid-template-columns:120px minmax(0,1fr) auto;
  align-items:center;
  min-height:116px;
  overflow:hidden;
  border:1px solid #8ea4b8;
  border-radius:8px;
  background:#fff;
  color:#17283a;
}
.reports-document-head img{
  width:82px;
  max-height:82px;
  margin:auto;
  object-fit:contain;
}
.reports-document-head>div:nth-child(2){
  align-self:stretch;
  display:grid;
  align-content:center;
  justify-items:center;
  padding:14px;
  border-inline:1px solid #8ea4b8;
  background:#d9e2f3;
  text-align:center;
}
.reports-document-head span{font-size:12px;font-weight:800;color:#526d87}
.reports-document-head h2{margin:4px 0;color:#07385a;font-size:22px;text-transform:uppercase}
.reports-document-head p{margin:0;color:#526d87}
.reports-document-meta{
  display:grid;
  grid-template-columns:auto auto;
  align-self:stretch;
  min-width:190px;
}
.reports-document-meta>*{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid #8ea4b8}
.reports-document-meta>*:nth-last-child(-n+2){border-bottom:0}
.reports-document-meta strong{border-right:1px solid #8ea4b8;color:#07385a}
.reports-filter-panel{
  display:grid;
  grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr));
  gap:10px;
  align-items:end;
  padding:16px;
  border:1px solid #cbdce8;
  border-radius:8px;
  background:rgba(255,255,255,.92);
  min-width:0;
  max-width:100%;
}
.reports-filter-panel>label:nth-of-type(4),
.reports-filter-panel>label:nth-of-type(5){
  grid-column:span 1;
}
.reports-filter-actions{
  grid-column:1/-1;
  align-self:end;
  justify-content:flex-end;
}
.reports-filter-panel label{display:grid;gap:6px;min-width:0}
.reports-filter-panel label span{color:#526d87;font-size:11px;font-weight:900;text-transform:uppercase}
.reports-filter-panel input,.reports-filter-panel select{min-width:0;max-width:100%;min-height:42px;padding:9px 10px}
.reports-filter-actions{display:flex;gap:8px;min-width:0}
.reports-filter-actions .btn{min-height:42px;white-space:nowrap}
.reports-simple-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  margin:0 0 14px;
  padding:10px;
  border:1px solid #d7e6f0;
  border-radius:8px;
  background:rgba(255,255,255,.9);
}
.reports-simple-actions .btn{min-height:38px}
.reports-applied{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:9px 12px;
  border:1px solid #8ea4b8;
  border-radius:8px;
  background:#fff;
  color:#17283a;
}
.reports-applied>strong{color:#07385a}
.reports-applied>span{color:#526d87;font-size:13px}
.reports-applied .reports-actions{margin-left:auto}
.report-card{border-radius:8px}
.report-card>header{
  display:flex;
  align-items:center;
  gap:10px;
  margin:-18px -18px 14px;
  padding:12px 14px;
  border-bottom:1px solid #8ea4b8;
  background:#d9e2f3;
}
.report-card>header>span{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:6px;
  background:#0B3C5D;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.report-card>header h3{margin:0;font-size:16px;text-transform:uppercase}
.report-card>header small{color:#526d87;font-weight:800}
.report-table th{background:#eef3f8;border:1px solid #b8c8d6}
.report-table td{border:1px solid #dbe6ef}
.reports-page .reports-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.reports-page .report-card,
.reports-page .report-table-wrap,
.reports-page .report-table{
  min-width:0;
  max-width:100%;
}
.reports-page .report-table{
  min-width:760px;
  max-width:none;
  table-layout:auto;
}
.reports-page .report-table th,
.reports-page .report-table td{
  padding:9px 8px;
  font-size:12px;
}
.reports-dashboard{
  display:grid;
  gap:14px;
}
.report-kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:12px;
}
.report-kpi-card{
  appearance:none;
  text-align:left;
  cursor:pointer;
  min-width:0;
  min-height:118px;
  padding:14px;
  border:1px solid #cbdce8;
  border-radius:8px;
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 32px rgba(15,23,42,.08);
}
.report-kpi-card.active{
  outline:3px solid rgba(16,131,232,.2);
  border-color:#1083e8;
  box-shadow:0 16px 34px rgba(16,131,232,.16);
}
.report-kpi-card span{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  color:#526d87;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.report-kpi-card span svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
}
.report-kpi-card strong{
  display:block;
  margin-top:8px;
  color:#07385a;
  font-size:28px;
  line-height:1;
}
.report-kpi-card small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-weight:800;
}
.report-kpi-card.tone-blue{border-top:4px solid #0B3C5D}
.report-kpi-card.tone-green{border-top:4px solid #168C46}
.report-kpi-card.tone-cyan,.report-kpi-card.tone-teal{border-top:4px solid #00BCD4}
.report-kpi-card.tone-amber{border-top:4px solid #F57C00}
.report-kpi-card.tone-red{border-top:4px solid #EF4444}
.report-kpi-card.tone-slate{border-top:4px solid #64748B}
.report-selection-panel{
  min-width:0;
  margin:4px 0 14px;
  border:1px solid #d8e7f1;
  border-radius:8px;
  background:rgba(255,255,255,.94);
}
.report-selection-panel.is-priority{
  border-color:#f7b45f;
  box-shadow:0 14px 34px rgba(245,124,0,.12);
}
.report-selection-empty{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:14px;
  color:#526d87;
}
.report-selection-empty svg{color:#0b5f96}
.report-selection-empty strong{display:block;color:#07385a}
.report-selection-empty span{display:block;margin-top:2px;font-size:13px}
.report-selection-detail{display:grid;gap:12px;padding:14px}
.report-selection-detail>header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:center;
}
.report-selection-detail>header>span{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:8px;
  background:#eaf4fb;
  color:#0b5f96;
}
.report-selection-detail strong{color:#07385a}
.report-selection-detail small{display:block;margin-top:2px;color:#526d87;font-weight:800}
.report-mini-list{display:grid;gap:8px}
.report-mini-list>div{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
  padding:10px;
  border:1px solid #e0ebf3;
  border-radius:8px;
  background:#f8fbfd;
}
.report-mini-list span{display:grid;gap:3px;min-width:0}
.report-mini-list small{text-transform:uppercase;font-size:10px}
.report-mini-list strong{overflow-wrap:anywhere}
.report-tabs{
  display:flex;
  gap:8px;
  overflow:auto;
  padding:4px 2px 8px;
}
.report-tabs button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  min-width:max-content;
  border:1px solid #cbdce8;
  border-radius:8px;
  padding:9px 12px;
  background:#fff;
  color:#07385a;
  font-weight:900;
  cursor:pointer;
}
.report-tabs button.active{
  border-color:#0B3C5D;
  background:#0B3C5D;
  color:#fff;
}
.report-chart-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.report-chart-card canvas{
  display:block;
  width:100%;
  min-height:230px;
  border:1px solid #dbe6ef;
  border-radius:8px;
  background:#fbfdff;
}
.report-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.report-card-actions .btn{
  min-height:38px;
  padding:8px 10px;
  font-size:12px;
}
.report-km-audit-card{grid-column:1/-1}
.report-km-audit-card.focus-pulse{
  animation:reportFocusPulse 1.8s ease-out 1;
}
@keyframes reportFocusPulse{
  0%{box-shadow:0 0 0 0 rgba(245,124,0,.34)}
  70%{box-shadow:0 0 0 12px rgba(245,124,0,0)}
  100%{box-shadow:0 14px 32px rgba(15,23,42,.08)}
}
.km-audit-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(265px,1fr));
  gap:12px;
}
.km-audit-item{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #d8e7f1;
  border-left:4px solid #168C46;
  border-radius:8px;
  background:#fff;
}
.km-audit-item:focus-visible{
  outline:3px solid rgba(22,140,70,.28);
  outline-offset:3px;
}
.km-audit-item.is-focused{
  border-color:#F57C00;
  box-shadow:0 0 0 4px rgba(245,124,0,.16),0 12px 26px rgba(15,23,42,.12);
}
.km-audit-item.process-close{border-left-color:#ef7d00}
.km-audit-item.process-start{border-left-color:#0b78b6}
.km-audit-item.process-check{border-left-color:#168C46}
.km-audit-item.process-assign{border-left-color:#7c3aed}
.km-audit-item.process-manual{border-left-color:#d97706}
.km-audit-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding-top:2px;
}
.km-audit-form-ref{
  min-width:0;
  color:#526d87;
  font-size:12px;
  font-weight:900;
}
.km-audit-actions .btn{
  min-height:38px;
  padding:8px 10px;
  font-size:12px;
}
.km-audit-item.tone-warning{border-left-color:#F57C00;background:#fffaf0}
.km-audit-item.tone-danger{border-left-color:#EF4444;background:#fff5f5}
.km-audit-item.process-start.tone-ok{background:#f7fbff}
.km-audit-item.process-assign.tone-ok{background:#fbfaff}
.km-audit-main{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:center;
}
.km-audit-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:8px;
  background:#eaf6ef;
  color:#168C46;
}
.tone-warning .km-audit-icon{background:#fff2cc;color:#a15c00}
.tone-danger .km-audit-icon{background:#ffe1e5;color:#c9273c}
.km-audit-main strong{
  display:block;
  color:#07385a;
  font-size:15px;
}
.km-audit-main small{
  display:block;
  margin-top:2px;
  color:#526d87;
  font-weight:800;
}
.km-audit-labels{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.km-audit-process-pill,
.km-audit-origin-pill{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:900;
  line-height:1;
}
.km-audit-process-pill{
  background:#e6f1f8;
  color:#07385a;
}
.km-audit-origin-pill{
  background:#eef7f1;
  color:#166534;
}
.km-audit-values{
  display:grid;
  grid-template-columns:repeat(3,minmax(72px,1fr));
  gap:7px;
}
.km-audit-values div{
  min-width:0;
  overflow:hidden;
  padding:8px;
  border:1px solid #dce9f2;
  border-radius:8px;
  background:#f8fbfd;
}
.km-audit-values span{
  display:block;
  color:#526d87;
  font-size:10px;
  font-weight:900;
  text-transform:none;
  line-height:1.1;
  overflow-wrap:normal;
  word-break:normal;
}
.km-audit-values strong{
  display:block;
  margin-top:4px;
  color:#07385a;
  font-size:17px;
  line-height:1;
  overflow-wrap:anywhere;
}
.km-audit-values .is-diff{background:#fff8e8;border-color:#ffd694}
.km-audit-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  color:#526d87;
  font-size:12px;
  font-weight:800;
}
.km-audit-item p{
  margin:0;
  padding-top:8px;
  border-top:1px solid #e2edf5;
  color:#405b73;
  line-height:1.35;
}
.km-audit-dialog{
  width:min(1120px,calc(100vw - 24px));
  max-height:calc(100vh - 28px);
  border:0;
  padding:0;
  background:transparent;
}
.km-audit-dialog::backdrop{
  background:rgba(5,18,31,.58);
  backdrop-filter:blur(3px);
}
.km-audit-dialog-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  max-height:calc(100vh - 28px);
  border:1px solid #cfe2ef;
  border-radius:8px;
  background:#fff;
  box-shadow:0 24px 70px rgba(5,18,31,.28);
  overflow:hidden;
}
.km-audit-dialog-card>header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid #dbe9f3;
  background:#eff6fb;
}
.km-audit-dialog-card>header>span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:8px;
  background:#07385a;
  color:#fff;
}
.km-audit-dialog-card>header strong{
  display:block;
  color:#07385a;
  font-size:18px;
}
.km-audit-dialog-card>header small{
  display:block;
  margin-top:2px;
  color:#526d87;
  font-weight:800;
}
.km-audit-dialog-body{
  min-height:0;
  overflow:auto;
  padding:14px;
}
.km-audit-overview{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.km-audit-overview span{
  display:grid;
  gap:2px;
  padding:10px;
  border:1px solid #dce9f2;
  border-radius:8px;
  background:#f8fbfd;
}
.km-audit-overview strong{
  color:#07385a;
  font-size:20px;
  line-height:1;
}
.km-audit-overview small{
  color:#526d87;
  font-weight:900;
}
.km-audit-tools{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
}
.km-audit-tools label{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-height:42px;
  padding:0 12px;
  border:1px solid #cfe0ec;
  border-radius:8px;
  background:#fff;
  color:#526d87;
}
.km-audit-tools input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:#07385a;
  font-weight:800;
}
.km-audit-tools span{
  justify-self:end;
  color:#526d87;
  font-size:12px;
  font-weight:900;
}
.km-audit-groups{
  display:grid;
  gap:14px;
}
.km-audit-group{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #d8e7f1;
  border-radius:8px;
  background:#f8fbfd;
}
.km-audit-group>header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding-bottom:8px;
  border-bottom:1px solid #dce9f2;
}
.km-audit-group>header strong{
  display:block;
  color:#07385a;
  font-size:16px;
}
.km-audit-group>header small{
  display:block;
  margin-top:2px;
  color:#526d87;
  font-weight:800;
}
.km-audit-group>header>span{
  justify-self:end;
  max-width:360px;
  border-radius:999px;
  padding:6px 10px;
  background:#e6f1f8;
  color:#07385a;
  font-size:11px;
  font-weight:900;
  text-align:right;
}
.km-audit-pagination{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #dce9f2;
}
.km-audit-pagination>div{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
}
.km-audit-pagination button{
  min-height:36px;
}
.km-audit-pagination>div button{
  min-width:36px;
  border:1px solid #cfe0ec;
  border-radius:8px;
  background:#fff;
  color:#07385a;
  font-weight:900;
  cursor:pointer;
}
.km-audit-pagination>div button.active{
  border-color:#F57C00;
  background:#F57C00;
  color:#fff;
}
.report-tables-grid{
  margin-top:14px;
}
.report-empty-smart{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:24px;
  border:1px solid #cbdce8;
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 32px rgba(15,23,42,.08);
}
.report-empty-smart>span{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:8px;
  background:#eef8ff;
  color:#0B3C5D;
}
.report-empty-smart strong{
  display:block;
  color:#07385a;
  font-size:18px;
}
.report-empty-smart p{
  margin:4px 0 12px;
  color:#526d87;
}

:root[data-theme="dark"] .reports-document-head,
:root[data-theme="dark"] .reports-applied,
:root[data-theme="dark"] .reports-filter-panel,
:root[data-theme="dark"] .reports-screen-toolbar{border-color:#31516a;background:#10283b;color:#dff5ff}
:root[data-theme="dark"] .reports-screen-toolbar strong{color:#dff5ff}
:root[data-theme="dark"] .reports-document-head>div:nth-child(2),
:root[data-theme="dark"] .report-card>header{border-color:#31516a;background:#17364b}
:root[data-theme="dark"] .reports-document-head h2,
:root[data-theme="dark"] .reports-applied>strong{color:#dff5ff}
:root[data-theme="dark"] .report-kpi-card,
:root[data-theme="dark"] .report-tabs button,
:root[data-theme="dark"] .report-chart-card canvas,
:root[data-theme="dark"] .report-empty-smart{border-color:#31516a;background:#10283b;color:#dff5ff}
:root[data-theme="dark"] .report-kpi-card strong,
:root[data-theme="dark"] .report-tabs button,
:root[data-theme="dark"] .report-empty-smart strong{color:#dff5ff}
:root[data-theme="dark"] .report-tabs button.active{background:#1CA3D9;color:#fff}

@media (max-width:1100px){
  .reports-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reports-search,.reports-filter-actions{grid-column:1/-1}
  .reports-filter-actions .btn{flex:1}
  .reports-page .reports-grid{grid-template-columns:1fr}
  .report-chart-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .reports-document-head{grid-template-columns:74px minmax(0,1fr)}
  .reports-document-head img{width:58px}
  .reports-document-head>div:nth-child(2){border-right:0;padding:10px}
  .reports-document-head h2{font-size:15px}
  .reports-document-head p{font-size:11px}
  .reports-document-meta{grid-column:1/-1;border-top:1px solid #8ea4b8}
  .reports-filter-panel{grid-template-columns:1fr;padding:12px}
  .reports-search{grid-column:auto}
  .reports-filter-actions{grid-column:1/-1}
  .reports-filter-actions{display:grid;grid-template-columns:1fr 1fr}
  .reports-simple-actions{display:grid;grid-template-columns:1fr 1fr}
  .reports-screen-toolbar{display:grid}
  .reports-screen-toolbar .reports-actions{display:grid;grid-template-columns:1fr 1fr}
  .reports-screen-toolbar .btn{width:100%;white-space:normal}
  .reports-applied{display:grid}
  .reports-applied .reports-actions{display:grid;width:100%;margin-left:0}
  .report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .km-audit-list{grid-template-columns:1fr}
  .km-audit-values{grid-template-columns:1fr}
  .km-audit-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .km-audit-tools{grid-template-columns:1fr}
  .km-audit-tools span{justify-self:start}
  .km-audit-group>header{grid-template-columns:1fr}
  .km-audit-group>header>span{justify-self:start;max-width:100%;text-align:left}
  .km-audit-pagination{grid-template-columns:1fr}
  .km-audit-actions{grid-template-columns:1fr}
  .km-audit-actions .btn{width:100%}
  .report-empty-smart{grid-template-columns:1fr;padding:18px}
}
@media print{
  @page{size:A4 landscape;margin:8mm}
  .print-only{display:grid!important}
  .reports-page.pattern-section{padding:0;border:0;background:#fff}
  .reports-page.pattern-section::before,.reports-page.pattern-section::after{display:none}
  .reports-document-head{min-height:82px;border-radius:0;break-inside:avoid}
  .reports-document-head img{width:62px;max-height:62px}
  .reports-document-head h2{font-size:16pt}
  .reports-document-head p{font-size:8pt}
  .reports-document-meta{min-width:150px;font-size:8pt}
  .reports-applied{display:flex!important;margin:6px 0 10px;border-radius:0;font-size:8pt}
  .reports-grid{display:block}
  .report-card{width:100%;margin:0;padding:10px;border:1px solid #000;border-radius:0;box-shadow:none;break-inside:avoid;page-break-inside:avoid}
  .report-card:not(:first-child){break-before:page;page-break-before:always}
  .report-card>header{margin:-10px -10px 8px;background:#d9e2f3!important;border-bottom:1px solid #000}
  .report-card>header h3{font-size:11pt}
  .report-card>header small{font-size:8pt}
  .report-table-wrap{overflow:visible}
  .report-table{width:100%;table-layout:auto}
  .report-table thead{display:table-header-group}
  .report-table tr{break-inside:avoid;page-break-inside:avoid}
  .report-table th,.report-table td{border:1px solid #000;padding:5px 6px;font-size:8.5pt}
  .report-kpi-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
  .report-kpi-card{box-shadow:none;border:1px solid #000;min-height:74px;padding:8px}
  .report-kpi-card span{font-size:7pt;min-height:0}.report-kpi-card strong{font-size:16pt}
  .report-chart-grid{display:block}
  .report-chart-card{margin-bottom:10px}
  .report-chart-card canvas{min-height:180px;border:1px solid #000}
}

@media (max-width:760px){
  .document-editor-mode{
    margin-top:0;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])){
    grid-template-columns:minmax(0,1fr) auto;
  }
  .navbar:has(.navbar-forms-btn:not([hidden]))>div:nth-child(2){
    display:none;
  }
  .navbar-nav-actions{
    min-width:0;
  }
  .navbar-forms-btn{
    min-height:36px;
    padding:8px 10px;
    font-size:12px;
  }
}

@media (max-width:380px){
  .navbar-forms-btn{
    padding:7px 8px;
  }
}

/* Flujo del viaje: distribución legible en todos los tamaños. */
.workflow-board{
  padding:18px;
  border-radius:16px;
}
.workflow-head{
  display:grid;
  grid-template-columns:1fr;
  align-items:start;
  gap:14px;
  margin-bottom:16px;
}
.workflow-head>div{
  min-width:0;
}
.workflow-head strong{
  margin-bottom:4px;
}
.workflow-head span{
  display:block;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.workflow-head .btn{
  min-height:44px;
  white-space:normal;
}
.workflow-auth-status[hidden]{
  display:none!important;
}
.workflow-approval-action[hidden]{
  display:none!important;
}
.workflow-prev-action[hidden],
.workflow-next-action[hidden],
.float-trigger[hidden]{
  display:none!important;
}
.workflow-next-action.approval-mode{
  background:#10a150;
  border-color:#10a150;
  color:#fff;
  box-shadow:0 10px 24px rgba(16,161,80,.2);
}
.workflow-next-action.approval-mode span{
  color:rgba(255,255,255,.84);
}
.workflow-actions{
  grid-column:1 / -1;
  position:sticky;
  top:84px;
  z-index:4;
  display:grid;
  grid-template-columns:minmax(180px,240px) minmax(260px,380px);
  align-items:stretch;
  justify-content:center;
  gap:10px;
  padding:8px;
  margin:-8px;
  border-radius:14px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
}
.workflow-actions .workflow-approval-action{
  order:3;
}
.workflow-prev-action,
.workflow-next-action,
.workflow-approval-action{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:2px;
  align-items:center;
  min-width:0;
  max-width:100%;
  padding:9px 14px;
  text-align:left;
}
.workflow-prev-action i,
.workflow-next-action i,
.workflow-approval-action i{
  grid-row:1 / span 2;
  font-size:18px;
}
.workflow-approval-action{
  background:#10a150;
  color:#fff;
  border-color:#10a150;
  box-shadow:0 10px 24px rgba(16,161,80,.2);
}
.workflow-approval-action span{
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
}
.workflow-approval-action strong{
  font-size:13px;
}
.workflow-prev-action{
  background:#e8f2f8;
  color:#07385a;
  border-color:#cfe2ef;
}
.workflow-next-action span{
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.workflow-prev-action span{
  color:#54718a;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
}
.workflow-prev-action strong,
.workflow-next-action strong{
  font-size:13px;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.workflow-prev-action.closed,
.workflow-prev-action:disabled,
.workflow-next-action.closed,
.workflow-next-action:disabled{
  opacity:1;
  background:#e8f2f8;
  color:#526d87;
  cursor:default;
}
.workflow-prev-action.closed span,
.workflow-prev-action:disabled span,
.workflow-next-action.closed span,
.workflow-next-action:disabled span{
  color:#71879a;
}
.workflow-track{
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
  gap:10px;
  align-items:stretch;
}
.workflow-step{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  min-width:0;
  min-height:50px;
  justify-content:flex-start;
  align-items:center;
  gap:6px;
  padding:8px;
  font-size:12px;
  line-height:1.15;
  white-space:normal;
  cursor:pointer;
  overflow:visible;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.workflow-step strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.workflow-step.number-only{
  grid-template-columns:1fr;
  justify-content:center;
  justify-items:center;
  text-align:center;
  padding:8px;
}
.workflow-step.number-only strong{
  display:none;
}
.workflow-step.show-name strong{
  display:block;
}
.workflow-step span{
  width:23px;
  height:23px;
  flex:0 0 23px;
  font-size:11px;
}
.workflow-step:hover{
  transform:translateY(-1px);
  border-color:#9fc4da;
  box-shadow:0 7px 16px rgba(11,60,93,.1);
}
.workflow-step:disabled{
  cursor:default;
}
.workflow-step:disabled:hover{
  transform:none;
  box-shadow:none;
}
.workflow-step.editable{
  border-color:#9fc4da;
}
.workflow-step.done{
  background:#eaf9ef;
}
.workflow-step.active{
  box-shadow:0 8px 18px rgba(11,60,93,.2);
}
.workflow-rejected-status{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:9px 12px;
  border:1px solid #fecaca;
  border-radius:12px;
  background:#fff5f5;
  color:#8a1f1f;
  font-weight:800;
}
.workflow-rejected-status[hidden]{
  display:none;
}
.workflow-rejected-status i{
  width:18px;
  height:18px;
}
.workflow-rejected-status span{
  color:#9f4b4b;
  font-size:12px;
  font-weight:700;
}

@media (min-width:1360px){
  .workflow-track{
    grid-template-columns:repeat(7,minmax(0,1fr));
  }
}

@media (max-width:980px){
  .workflow-actions{
    grid-template-columns:1fr 1fr;
  }
  .workflow-track{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .workflow-board{
    padding:12px;
  }
  .workflow-head{
    grid-template-columns:1fr;
    gap:10px;
    margin-bottom:12px;
  }
  .workflow-auth-status{
    min-width:0;
    width:100%;
  }
  .workflow-head .btn{
    width:100%;
    min-height:42px;
    justify-content:center;
  }
  .workflow-actions{
    position:sticky;
    top:8px;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:0;
    padding:8px;
  }
  .workflow-prev-action,
  .workflow-next-action,
  .workflow-approval-action{
    min-width:0;
    width:100%;
    padding:8px 10px;
  }
  .workflow-track{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .workflow-step{
    min-height:52px;
    padding:7px;
    font-size:11px;
  }
  .workflow-step.number-only{
    min-height:44px;
  }
  .workflow-step span{
    width:22px;
    height:22px;
    flex-basis:22px;
    font-size:10px;
  }
}

@media (max-width:380px){
  .workflow-actions{
    grid-template-columns:1fr;
  }
  .workflow-track{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px){
  .notification-panel{
    top:74px;
    right:8px;
    left:8px;
    width:auto;
    max-height:calc(100vh - 88px);
  }
  .authorization-list{
    grid-template-columns:1fr;
  }
  .authorization-summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .login-panel{
    padding:20px;
    border-radius:16px;
  }
  .login-brand{
    grid-template-columns:72px minmax(0,1fr);
    gap:12px;
  }
  .login-brand img{
    width:72px;
    height:72px;
  }
  .login-brand h1{
    font-size:24px;
  }
  .login-role-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Selector secuencial de secciones del formulario. */
.section-sequence{
  min-width:285px;
  gap:6px!important;
  padding:10px;
}
.section-sequence-head{
  display:grid;
  gap:2px;
  padding:5px 8px 10px;
  border-bottom:1px solid #dce8f0;
  color:#07385a;
}
.section-sequence-head strong{
  font-size:14px;
}
.section-sequence-head span{
  color:#70869a;
  font-size:11px;
  font-weight:700;
}
.section-sequence button{
  position:relative;
  min-height:46px;
  margin-left:8px;
  overflow:visible;
}
.section-sequence button:not(:last-child)::after{
  content:"";
  position:absolute;
  pointer-events:none;
  left:25px;
  top:38px;
  width:2px;
  height:20px;
  background:#cfe0eb;
}
.section-sequence button.completed::after{
  background:#32b86a;
}
.section-sequence button.completed{
  background:#edf9f2;
  color:#15733c;
}
.section-sequence button.completed .menu-icon{
  background:#32b86a;
  color:#fff;
}
.section-sequence button.active{
  background:#0B3C5D;
  color:#fff;
  box-shadow:0 8px 18px rgba(11,60,93,.2);
}
.section-sequence button.active .menu-icon{
  background:#fff;
  color:#0B3C5D;
}

/* Estados propios de la PWA. */
.install-app-btn{
  flex:0 0 auto;
  background:#e5f3fa;
  color:#07385a;
  font-weight:900;
}
.login-install-btn{
  width:100%;
  justify-content:center;
  margin-top:10px;
}
.connection-status{
  position:fixed;
  z-index:200;
  left:50%;
  bottom:max(14px,env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(520px,calc(100% - 24px));
  padding:11px 14px;
  border:1px solid #ffc4c9;
  border-radius:12px;
  background:#fff0f2;
  color:#a7192c;
  box-shadow:0 14px 34px rgba(79,15,24,.18);
  text-align:center;
  font-size:13px;
  font-weight:800;
}
.connection-status[hidden]{
  display:none!important;
}
@media (display-mode:standalone){
  .navbar{
    padding-top:env(safe-area-inset-top);
    min-height:calc(70px + env(safe-area-inset-top));
  }
  #app{
    padding-bottom:calc(96px + env(safe-area-inset-bottom));
  }
  .floating-doc-tools{
    bottom:calc(22px + env(safe-area-inset-bottom));
  }
}

@media (max-width:760px){
  .section-sequence{
    width:calc(200% + 10px);
    max-height:min(70vh,560px);
  }
  .section-sequence button{
    min-height:44px;
    margin-left:4px;
  }
  .document-actions-menu{
    min-width:0;
    width:calc(200% + 10px);
  }
  .toast{
    top:max(8px,env(safe-area-inset-top));
    padding:10px;
  }
  .install-app-btn{
    width:32px;
    height:32px;
    padding:0;
  }
  .connection-status{
    font-size:12px;
  }
  @media (display-mode:standalone){
    .navbar{
      min-height:calc(58px + env(safe-area-inset-top));
    }
    .floating-doc-tools{
      bottom:calc(12px + env(safe-area-inset-bottom));
    }
  }
}
@media (max-width:760px){
  .forms-manager-head{
    display:grid;
    padding:18px;
  }
  .forms-manager-head .btn,
  .form-card footer .btn:not(.form-card-action){
    width:100%;
    justify-content:center;
  }
  .form-card footer{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .form-card-action{
    width:100%;
    justify-content:center;
    padding:8px 6px;
    font-size:11px;
  }
  .form-card-action span{
    min-width:22px;
    height:22px;
  }
  .form-card-action.delete{
    grid-column:1/-1;
  }
.forms-list{
    grid-template-columns:1fr;
  }
}
@media (max-width:600px){
  .confirm-dialog{
    width:100%;
    margin:auto 0 0;
  }
  .confirm-dialog-card{
    grid-template-columns:1fr;
    border-radius:18px 18px 0 0;
    padding:20px 16px calc(16px + env(safe-area-inset-bottom));
  }
  .confirm-dialog-icon{
    width:42px;
    height:42px;
  }
  .confirm-dialog-card footer{
    display:grid;
    grid-template-columns:1fr;
  }
  .confirm-dialog-card footer .btn{
    width:100%;
    justify-content:center;
  }
}

/* Previsualizador PDF disponible durante cualquier etapa del flujo. */
.pdf-preview-dialog{
  width:min(1360px,calc(100% - 24px));
  max-width:none;
  height:min(92vh,900px);
  padding:0;
  border:0;
  border-radius:16px;
  background:#eef4f8;
  box-shadow:0 28px 70px rgba(15,23,42,.34);
}
.pdf-preview-dialog::backdrop{
  background:rgba(15,23,42,.7);
}
.pdf-preview-shell{
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.pdf-preview-shell>header{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 16px;
  background:#fff;
  border-bottom:1px solid #d3e0ea;
}
.pdf-preview-shell>header>div{
  display:flex;
  align-items:center;
  gap:10px;
}
.pdf-preview-shell>header strong{
  color:#07385a;
  font-size:18px;
}
.pdf-preview-shell>header span{
  color:#60758b;
  font-size:13px;
}
.pdf-preview-content{
  flex:1 1 auto;
  min-height:0;
  padding:16px 16px 76px;
  overflow:auto;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
}
.pdf-preview-stage{
  position:relative;
  min-width:0;
  min-height:0;
  margin-inline:auto;
}
.pdf-preview-document{
  position:absolute;
  top:0;
  left:50%;
  width:max-content;
  min-width:1000px;
  transform-origin:top center;
  will-change:transform;
}
.pdf-preview-document .print-preview{
  width:1000px;
  min-width:1000px;
  box-shadow:0 12px 30px rgba(11,60,93,.12);
}
.pdf-zoom-toolbar{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:4px;
  padding:5px;
  border:1px solid #cbdce8;
  border-radius:12px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 28px rgba(11,60,93,.22);
  backdrop-filter:blur(12px);
}
.pdf-zoom-toolbar button{
  min-width:38px;
  height:36px;
  border:0;
  border-radius:8px;
  padding:0 10px;
  background:#e8f2f8;
  color:#07385a;
  font-size:20px;
  font-weight:900;
  cursor:pointer;
}
.pdf-zoom-toolbar button:active{
  transform:scale(.96);
}
.pdf-zoom-toolbar .pdf-zoom-value{
  min-width:62px;
  font-size:12px;
}
.pdf-zoom-toolbar .pdf-zoom-fit{
  font-size:11px;
}
.standalone-print-document{
  display:none;
}
@media (max-width:760px){
  .pdf-preview-dialog{
    width:100%;
    height:100%;
    max-height:none;
    border-radius:0;
  }
  .pdf-preview-shell>header{
    align-items:flex-start;
  }
  .pdf-preview-shell>header>div:last-child{
    display:grid;
    grid-template-columns:1fr 1fr 38px;
    gap:6px;
    width:100%;
  }
  .pdf-preview-shell>header>div:first-child{
    display:grid;
    gap:2px;
  }
  .pdf-preview-shell>header span{
    display:none;
  }
  .pdf-preview-shell>header .btn{
    min-height:36px;
    padding:8px 8px;
    font-size:12px;
    justify-content:center;
  }
  .pdf-preview-content{
    padding:8px 8px calc(72px + env(safe-area-inset-bottom));
  }
  .pdf-preview-document,
  .pdf-preview-document .print-preview{
    min-width:1000px;
    width:1000px;
  }
  .pdf-zoom-toolbar{
    bottom:calc(10px + env(safe-area-inset-bottom));
    width:max-content;
    max-width:calc(100% - 20px);
  }
  .pdf-zoom-toolbar button{
    min-width:36px;
    height:36px;
    padding:0 8px;
  }
}

.pdf-preview-document.check-pdf-document{
  width:1122px;
  min-width:1122px;
}
.pdf-preview-document.check-pdf-document .print-preview{
  width:1122px;
  min-width:1122px;
  min-height:794px;
  padding:14px;
  border-radius:0;
  box-shadow:0 12px 30px rgba(11,60,93,.12);
}
.pdf-preview-document.check-pdf-document .official-form{
  width:100%;
  min-width:0;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
  color:#24364a;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10.25px;
  line-height:1.12;
}
.pdf-preview-document.check-pdf-document .official-form th,
.pdf-preview-document.check-pdf-document .official-form td{
  border:1px solid #000;
  padding:3px 4px;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.pdf-preview-document.check-pdf-document .official-form th{
  background:#d9e2f3;
  color:#07385a;
  text-align:center;
  font-weight:900;
}
.pdf-preview-document.check-pdf-document .of-logo{
  width:118px;
  text-align:center;
}
.pdf-preview-document.check-pdf-document .of-logo img{
  max-width:70px;
  max-height:58px;
}
.pdf-preview-document.check-pdf-document .of-number{
  color:#f00;
  font-size:15px;
  line-height:1.08;
  font-weight:900;
  text-align:center;
}
.pdf-preview-document.check-pdf-document .item-state{
  text-align:center;
  font-weight:800;
}
.pdf-preview-document.check-pdf-document .stamp-cell{
  height:96px;
  text-align:center;
}
.pdf-preview-document.check-pdf-document .stamp-card{
  display:inline-grid;
  place-items:center;
  gap:3px;
  min-width:220px;
}
.pdf-preview-document.check-pdf-document .stamp-card img{
  max-width:78px;
  max-height:58px;
}
.pdf-preview-document.check-pdf-document .evidence-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
.pdf-preview-document.check-pdf-document .evidence-grid figure{
  margin:0;
  border:1px solid #000;
  padding:3px;
}
.pdf-preview-document.check-pdf-document .evidence-grid img{
  width:100%;
  height:98px;
  object-fit:contain;
  background:#f8fbfd;
}
.pdf-preview-document.check-pdf-document .evidence-grid figcaption{
  font-size:9px;
  line-height:1.15;
}
.pdf-loading{
  display:grid;
  place-items:center;
  width:1122px;
  height:794px;
  background:#fff;
  color:#526d87;
  font-weight:900;
}
@media (max-width:760px){
  .pdf-preview-document.check-pdf-document,
  .pdf-preview-document.check-pdf-document .print-preview,
  .pdf-loading{
    width:1122px;
    min-width:1122px;
  }
}
@media print{
  body.printing-standalone-document>*:not(.standalone-print-document){
    display:none!important;
  }
  body.printing-standalone-document .standalone-print-document{
    display:block!important;
    width:100%;
  }
  body.printing-standalone-document .print-preview{
    position:relative;
    display:block!important;
    width:100%;
    padding:0;
    margin:0;
    box-shadow:none;
    overflow:visible;
  }
  body.printing-standalone-document .pdf-watermark{
    display:none;
  }
  body.printing-standalone-document.printing-rejected-document::before{
    content:attr(data-watermark);
    position:fixed;
    inset:0;
    display:grid;
    place-items:center;
    pointer-events:none;
    z-index:9999;
    color:rgba(220,38,38,.16);
    font-size:72pt;
    font-weight:900;
    letter-spacing:6px;
    text-transform:uppercase;
    transform:rotate(-18deg);
  }
  body.printing-standalone-document .official-form{
    width:100%;
    min-width:0;
    margin:0;
    border-collapse:collapse;
    table-layout:fixed;
    font-family:Arial,Helvetica,sans-serif;
    font-size:8.25pt;
    line-height:1.15;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.printing-standalone-document .official-form th,
  body.printing-standalone-document .official-form td{
    border:.75pt solid #000;
    padding:3px 4px;
  }
  body.printing-standalone-document .official-form th{
    background:#d9e2f3!important;
    color:#000!important;
    font-weight:900;
  }
  body.printing-standalone-document .official-form .of-logo img{
    display:block!important;
    max-width:82px;
    max-height:70px;
    margin:auto;
  }
  body.printing-standalone-document .official-form .of-number{
    color:#f00!important;
    font-size:14pt;
    font-weight:900;
    text-align:center;
  }
  body.printing-standalone-document .risk-low td{background:#00B050!important}
  body.printing-standalone-document .risk-med td{background:#FFC000!important}
  body.printing-standalone-document .risk-high td{background:#FF5353!important}
}

/* Formato exclusivo del PDF final descargable. */
@media print{
  body.printing-document{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.printing-document .doc-page > :not([data-doc-panel="documento"]){
    display:none!important;
  }
  body.printing-document .doc-page [data-doc-panel="documento"]{
    display:block!important;
  }
  body.printing-document .print-preview{
    width:100%;
    padding:0;
    margin:0;
    background:#fff;
    box-shadow:none;
    overflow:visible;
  }
  body.printing-document .official-form{
    width:100%;
    min-width:0;
    margin:0;
    border-collapse:collapse;
    table-layout:fixed;
    color:#000;
    font-family:Arial,Helvetica,sans-serif;
    font-size:7.7pt;
    line-height:1.12;
    page-break-inside:auto;
  }
  body.printing-document .official-form + .official-form{
    margin-top:-1px;
  }
  body.printing-document .official-form tr{
    page-break-inside:avoid;
  }
  body.printing-document .official-form th,
  body.printing-document .official-form td{
    border:0.65pt solid #183b72;
    padding:2.2px 3px;
    vertical-align:middle;
    background:#fff;
    overflow-wrap:anywhere;
  }
  body.printing-document .official-form th{
    background:#d9e2f3!important;
    color:#000;
    text-align:center;
    font-size:7.5pt;
    font-weight:700;
    text-transform:uppercase;
  }
  body.printing-document .official-form .of-logo{
    width:16%;
    background:#fff!important;
  }
  body.printing-document .official-form .of-logo img{
    display:block!important;
    max-width:58px;
    max-height:48px;
    margin:auto;
  }
  body.printing-document .official-form .of-number{
    color:#f00!important;
    font-size:14pt;
    font-weight:900;
    letter-spacing:.3px;
    text-align:center;
  }
  body.printing-document .risk-low td,
  body.printing-document .risk-low{
    background:#00B050!important;
  }
  body.printing-document .risk-med td,
  body.printing-document .risk-med{
    background:#FFC000!important;
  }
  body.printing-document .risk-high td,
  body.printing-document .risk-high{
    background:#FF5353!important;
  }
  body.printing-document .risk-official td div{
    min-height:11px;
    border-bottom:.35pt solid #92a9c7;
  }
  body.printing-document .risk-official td div:last-child{
    border-bottom:0;
  }
  body.printing-document .risk-official .risk-section-title,
  body.printing-document .risk-official .risk-subtotal-label,
  body.printing-document .risk-official .risk-subtotal,
  body.printing-document .risk-official .risk-empty{
    background:#d9e2f3!important;
  }
}
/* ASOSERLITUCAN visual language: subtle network fields and Lucide icons. */
svg,.lucide{
  width:1em;
  height:1em;
  flex-shrink:0;
  stroke-width:2;
  pointer-events:none;
}
.btn,.icon-btn,.nav-btn,.form-card-action,.reports-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.nav-btn{
  justify-content:flex-start;
}
.nav-btn .lucide{
  width:18px;
  height:18px;
  color:var(--brand-cyan);
}
.icon-btn .lucide{
  width:19px;
  height:19px;
}
.float-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.menu-icon .lucide{width:16px;height:16px}

.pattern-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(180deg,rgba(255,255,255,.50),rgba(255,255,255,.82)),
    radial-gradient(circle at 12% 18%,rgba(16,131,232,.12),transparent 24%),
    radial-gradient(circle at 88% 20%,rgba(22,140,70,.10),transparent 22%),
    var(--pattern-lines),
    var(--surface-soft);
}
.pattern-section::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-46px;
  right:-8vw;
  width:34vw;
  height:110px;
  background:linear-gradient(90deg,rgba(16,131,232,.16),rgba(104,166,221,.06));
  transform:skewY(-7deg);
  pointer-events:none;
}
.pattern-section::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:-80px;
  bottom:-70px;
  width:260px;
  height:260px;
  border:38px solid rgba(104,166,221,.18);
  border-radius:8px;
  transform:rotate(14deg);
  pointer-events:none;
}
.pattern-section > .container{
  position:relative;
  z-index:1;
}
.pattern-section.pattern-alt{
  background:
    linear-gradient(155deg,rgba(255,255,255,.64),rgba(255,255,255,.88)),
    radial-gradient(circle at 84% 14%,rgba(15,159,141,.12),transparent 25%),
    radial-gradient(circle at 16% 78%,rgba(16,131,232,.10),transparent 22%),
    var(--pattern-lines),
    var(--surface-soft);
}
.pattern-section.pattern-alt::before{right:auto;left:-8vw;transform:skewY(7deg)}
.pattern-section.pattern-alt::after{left:auto;right:-100px;border-color:rgba(15,159,141,.15)}
.pattern-section.pattern-green{
  background:
    linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.88)),
    radial-gradient(circle at 88% 18%,rgba(22,140,70,.14),transparent 25%),
    radial-gradient(circle at 12% 70%,rgba(104,166,221,.12),transparent 24%),
    var(--pattern-lines),
    var(--surface-soft);
}
.pattern-section.pattern-compact{padding:16px}
.dashboard-page.pattern-section,.forms-manager.pattern-section,.reports-page.pattern-section{
  padding:18px;
  border:1px solid rgba(104,166,221,.28);
  border-radius:8px;
}

:root[data-theme="dark"] .pattern-section{
  background:
    linear-gradient(135deg,rgba(16,131,232,.12),rgba(11,18,32,.78) 42%),
    var(--pattern-lines),
    #0B1220;
  border-color:rgba(104,166,221,.24);
}
:root[data-theme="dark"] .pattern-section::before{opacity:.65}
:root[data-theme="dark"] .pattern-section::after{opacity:.45}

@media (max-width:700px){
  .dashboard-page.pattern-section,.forms-manager.pattern-section,.reports-page.pattern-section{
    padding:10px;
  }
  .pattern-section::before{width:70vw;right:-28vw}
  .pattern-section::after{width:180px;height:180px;border-width:26px}
}

/* Stable, full-size touch targets for the mobile sidebar controls. */
.icon-btn .lucide{pointer-events:none}
#toggleSidebar{
  min-width:44px;
  min-height:44px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
@media (max-width:980px){
  .sidebar-close{
    z-index:130;
    top:max(10px,env(safe-area-inset-top));
    left:8px;
    right:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
}

/* Ajustes finales: sin X lateral y cabecera estable al revisar formularios. */
.sidebar-close{
  display:none!important;
}
.navbar{
  display:grid;
  grid-template-columns:auto minmax(220px,1fr) auto;
  align-items:center;
  gap:14px;
  min-height:70px;
  height:auto;
}
.navbar>div{
  min-width:0;
}
.navbar h1{
  margin:0;
  line-height:1.05;
  overflow-wrap:normal;
}
.navbar p{
  margin-top:4px;
  line-height:1.25;
}
.navbar h1,
.navbar p{
  min-width:0;
}
.navbar:has(.navbar-forms-btn:not([hidden])) h1{
  font-size:clamp(17px,1.35vw,21px)!important;
  line-height:1.08!important;
}
.navbar:has(.navbar-forms-btn:not([hidden])) p{
  font-size:12px!important;
  line-height:1.15!important;
  max-width:34rem;
}
.navbar:has(.navbar-forms-btn:not([hidden])) .user-pill{
  max-width:min(520px,43vw);
  justify-self:end;
}
.navbar:has(.navbar-forms-btn:not([hidden])) .user-pill>span,
.navbar:has(.navbar-forms-btn:not([hidden])) .user-pill strong{
  max-width:150px;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media (max-width:820px){
  .navbar{
    grid-template-columns:auto minmax(0,1fr);
  }
  .navbar .user-pill{
    grid-column:1/-1;
    width:100%;
    max-width:none!important;
    justify-content:flex-end;
  }
}
@media (max-width:520px){
  .navbar{
    gap:8px;
    padding:10px 12px;
  }
  .navbar h1{
    font-size:18px!important;
  }
  .navbar p{
    font-size:11px;
  }
  .navbar-forms-btn{
    padding:8px 10px;
  }
}

.forms-subsection-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:22px 0 12px;
  padding:14px 16px;
  border:1px solid #cfe0ef;
  border-radius:14px;
  background:rgba(255,255,255,.82);
}
.forms-subsection-head h3{margin:0;color:#07385a;font-size:20px}
.forms-subsection-head p{margin:4px 0 0;color:#60758a}
.forms-subsection-head>span{flex-shrink:0;border-radius:999px;padding:8px 12px;background:#e8f3f9;color:#0B3C5D;font-weight:900}
.forms-subsection-head.archived>span{background:#dcfce7;color:#15803d}
.closed-forms-list{display:grid;gap:10px}
.closed-forms-page .closed-forms-list.separated{
  margin-top:18px;
}
.closed-count-pill{
  flex-shrink:0;
  border-radius:999px;
  padding:9px 14px;
  background:#dcfce7;
  color:#15803d;
  font-weight:900;
  white-space:nowrap;
}
.closed-form-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:14px;
  padding:14px;
  border:1px solid #cfe0ef;
  border-left:5px solid #16a34a;
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 28px rgba(11,60,93,.06);
}
.closed-form-row strong,.closed-form-row small{display:block}
.closed-form-row strong{margin-top:5px;color:#07385a;font-size:16px}
.closed-form-row small{margin-top:3px;color:#60758a}
.closed-form-state{display:grid;gap:6px;justify-items:end;color:#334e68;font-weight:800}
.closed-form-row footer{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.document-archived-mode [data-doc-panel]:not([data-doc-panel="documento"]){display:none!important}
.doc-actions.archived-actions #docSave,
.doc-actions.archived-actions #docSubmit,
.doc-actions.archived-actions .action-menu{display:none!important}
.floating-doc-tools.archived-tools .float-menu:first-child{display:none!important}
.authorization-alert.closed{border-color:#bcebc9;background:#f0fff4;color:#0B3C5D}
:root[data-theme="dark"] .forms-subsection-head,
:root[data-theme="dark"] .closed-form-row{border-color:#31516a;background:#10283b}
:root[data-theme="dark"] .closed-count-pill{background:#123b2a;color:#8df0b0;border:1px solid #236b45}
:root[data-theme="dark"] .forms-subsection-head h3,
:root[data-theme="dark"] .closed-form-row strong{color:#dff5ff}
:root[data-theme="dark"] .forms-subsection-head p,
:root[data-theme="dark"] .closed-form-row small{color:#9db1c2}

.authorization-checklist.complete span{
  border-color:#bcebc9;
  background:#eefaf2;
  color:#0f6b38;
  font-weight:800;
}
.authorization-checklist.complete span svg{
  color:#16a35b!important;
}
.workflow-approval-action.complete{
  background:#e8f7ee;
  color:#087537;
  border:1px solid #bcebc9;
  box-shadow:none;
}
.workflow-approval-action.complete span{
  color:#2b7a4c;
}
.workflow-approval-action.complete strong{
  color:#087537;
}
.doc-cell[hidden]{
  display:none!important;
}
.conditional-other-cell:not(.conditional-visible){
  display:none!important;
}
.post-approval-limited .field-locked input,
.post-approval-limited .field-locked textarea,
.post-approval-limited .field-locked select{
  background:#f8fbfd!important;
  color:#526d87;
  -webkit-text-fill-color:#526d87;
}
.field-complete .check-row,
.field-complete .risk-options{
  box-shadow:inset 3px 0 0 rgba(22,163,91,.7), inset 0 0 0 1px rgba(22,163,91,.2);
}
.field-missing .check-row,
.field-missing .risk-options{
  box-shadow:inset 3px 0 0 rgba(245,124,0,.8), inset 0 0 0 1px rgba(245,124,0,.18);
}

:root[data-theme="dark"] .authorization-checklist.complete span,
:root[data-theme="dark"] .workflow-approval-action.complete{
  border-color:#236b45;
  background:#123b2a;
  color:#8df0b0;
}
:root[data-theme="dark"] .workflow-approval-action.complete span,
:root[data-theme="dark"] .workflow-approval-action.complete strong{
  color:#8df0b0;
}

/* Capa final del formulario en modo oscuro: evita campos grises o etiquetas claras
   cuando un campo ya esta completo, bloqueado o autorizado. */
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section{
  border-color:#2d5871!important;
  background:#102638!important;
  color:#e9f6fb!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-locked{
  background:transparent!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell>span,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete>span,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing>span,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-title,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-title,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-title{
  background:transparent!important;
  color:#dff5ff!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .post-approval-limited .field-locked input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .post-approval-limited .field-locked textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .post-approval-limited .field-locked select,
:root[data-theme="dark"] .post-approval-limited .field-locked input,
:root[data-theme="dark"] .post-approval-limited .field-locked textarea,
:root[data-theme="dark"] .post-approval-limited .field-locked select{
  border-color:#4b7891!important;
  background:#0b1f2f!important;
  color:#f6fdff!important;
  -webkit-text-fill-color:#f6fdff!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options{
  border-color:#39b979!important;
  box-shadow:inset 3px 0 0 #20c875, inset 0 0 0 1px rgba(32,200,117,.2)!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-options{
  border-color:#d8953b!important;
  background:#10283b!important;
  box-shadow:inset 3px 0 0 #f59e0b, inset 0 0 0 1px rgba(245,158,11,.2)!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) input:disabled,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) textarea:disabled,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) select:disabled{
  opacity:1!important;
  filter:none!important;
  cursor:not-allowed;
}
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input:disabled,
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea:disabled,
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select:disabled{
  border-color:#4b7891!important;
  background:#0b1f2f!important;
  color:#f6fdff!important;
  -webkit-text-fill-color:#f6fdff!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label,
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label{
  background:#10283b!important;
  color:#bdd3df!important;
  border-color:#2e5369!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label:has(input:checked),
:root[data-theme="dark"] .doc-page.document-editor-mode.approver-readonly>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label:has(input:checked){
  background:#123b2a!important;
  color:#8df0b0!important;
  border-color:#2fc171!important;
}

:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row{
  gap:10px;
  align-items:center;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid transparent!important;
  border-radius:10px;
  background:transparent!important;
  color:#c9dbe7!important;
  font-weight:800;
  line-height:1.2;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row label:has(input:checked),
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options label:has(input:checked){
  border-color:#2fc171!important;
  background:#123b2a!important;
  color:#eafff3!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="radio"],
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"],
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="radio"],
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  flex:0 0 16px;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  margin:0!important;
  padding:0!important;
  border:2px solid #6f98ae!important;
  border-radius:50%!important;
  background:#0b1f2f!important;
  box-shadow:inset 0 0 0 3px #0b1f2f!important;
  opacity:1!important;
  vertical-align:middle;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"],
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]{
  border-radius:5px!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="radio"]:checked,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="radio"]:checked{
  border-color:#75e6a4!important;
  background:radial-gradient(circle,#8df0b0 0 38%, transparent 42%), #0b1f2f!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"]:checked,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]:checked{
  border-color:#75e6a4!important;
  background:linear-gradient(135deg,#1ec978,#168c46)!important;
  box-shadow:none!important;
}
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row input[type="checkbox"]:checked::after,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options input[type="checkbox"]:checked::after{
  content:"";
  display:block;
  width:5px;
  height:9px;
  margin:1px 0 0 4px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

@media (max-width:760px){
  :root[data-theme="dark"] #app:has(.doc-page){
    background:#071525;
  }
  :root[data-theme="dark"] .doc-page.document-editor-mode{
    background:transparent;
    border:0;
    box-shadow:none;
    color:#dff5ff;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-two-cols{
    gap:12px;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section,
  :root[data-theme="dark"] .authorization-section{
    border:1px solid #31516a!important;
    border-radius:16px!important;
    background:#10283b!important;
    box-shadow:0 16px 42px rgba(0,0,0,.22);
    overflow:hidden;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-section legend,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-section legend{
    background:#0f9f8d!important;
    color:#f6fdff!important;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell{
    border-color:#24475e!important;
    background:#10283b!important;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell>span,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-title{
    background:transparent!important;
    color:#dff5ff!important;
  }
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell input,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell select,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell textarea,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .check-row,
  :root[data-theme="dark"] .doc-page>[data-doc-panel]:not([data-doc-panel="documento"]) .risk-options{
    border:1px solid #4a718d!important;
    border-radius:12px!important;
    background:#0b1f2f!important;
    color:#f6fdff!important;
  }
  :root[data-theme="dark"] .field-complete input,
  :root[data-theme="dark"] .field-complete textarea,
  :root[data-theme="dark"] .field-complete select,
  :root[data-theme="dark"] .field-complete .check-row,
  :root[data-theme="dark"] .field-complete .risk-options{
    box-shadow:inset 3px 0 0 #1ec978, inset 0 0 0 1px rgba(30,201,120,.22)!important;
  }
  :root[data-theme="dark"] .field-missing input,
  :root[data-theme="dark"] .field-missing textarea,
  :root[data-theme="dark"] .field-missing select,
  :root[data-theme="dark"] .field-missing .check-row,
  :root[data-theme="dark"] .field-missing .risk-options{
    box-shadow:inset 3px 0 0 #f59e0b, inset 0 0 0 1px rgba(245,158,11,.2)!important;
  }
}
@media (max-width:760px){
  .forms-subsection-head{align-items:flex-start}
  .closed-form-row{grid-template-columns:1fr}
  .closed-form-state,.closed-form-row footer{justify-items:start;justify-content:flex-start}
  .closed-form-row footer .btn{width:100%}
}

@media (max-width:760px){
  .doc-page.approver-readonly .risk-section,
  .approver-readonly .risk-section{
    padding:14px!important;
    border-radius:14px!important;
    overflow:visible!important;
  }
  .doc-page.approver-readonly .risk-intro,
  .approver-readonly .risk-intro{
    margin-bottom:12px;
    padding:11px 12px;
    font-size:12px;
    line-height:1.35;
  }
  .doc-page.approver-readonly .risk-row,
  .approver-readonly .risk-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    margin:0 0 12px!important;
    border:1px solid #d5e0ea!important;
    border-radius:14px!important;
    overflow:visible!important;
  }
  .doc-page.approver-readonly .risk-title,
  .approver-readonly .risk-title{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    padding:0 0 2px!important;
    border:0!important;
    background:transparent!important;
    font-size:12px!important;
    line-height:1.3!important;
    overflow-wrap:break-word!important;
  }
  .doc-page.approver-readonly .risk-options,
  .approver-readonly .risk-options{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .doc-page.approver-readonly .risk-options label,
  .approver-readonly .risk-options label{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    margin:0!important;
    padding:8px 10px!important;
    border:1px solid #dbe7f0!important;
    border-radius:10px!important;
    background:#f8fbfd!important;
    color:#526d87!important;
    font-size:12px!important;
    line-height:1.25!important;
    white-space:normal!important;
  }
  .doc-page.approver-readonly .risk-options label span,
  .approver-readonly .risk-options label span{
    min-width:0!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }
  .doc-page.approver-readonly .risk-options label:has(input:checked),
  .approver-readonly .risk-options label:has(input:checked){
    border-color:#2fc171!important;
    background:#eaf9ef!important;
    color:#087537!important;
  }
  .doc-page.approver-readonly .risk-options b,
  .approver-readonly .risk-options b{
    margin-left:0!important;
    justify-self:end!important;
    min-width:22px!important;
    text-align:center!important;
  }
  .doc-page.approver-readonly .risk-score,
  .approver-readonly .risk-score{
    min-height:34px!important;
    border:0!important;
    border-radius:10px!important;
    background:#eef5fa!important;
  }
  :root[data-theme="dark"] .doc-page.approver-readonly .risk-options label,
  :root[data-theme="dark"] .approver-readonly .risk-options label{
    border-color:#31516a!important;
    background:#10283b!important;
    color:#bdd3df!important;
  }
  :root[data-theme="dark"] .doc-page.approver-readonly .risk-options label:has(input:checked),
  :root[data-theme="dark"] .approver-readonly .risk-options label:has(input:checked){
    border-color:#2fc171!important;
    background:#123b2a!important;
    color:#eafff3!important;
  }
}

@media (max-width:560px){
  .login-panel{padding:18px}
  .login-brand{grid-template-columns:70px minmax(0,1fr);gap:12px}
  .login-brand img{width:70px;height:70px}
  .login-brand h1{font-size:24px}
  .login-test-head{align-items:flex-start;flex-direction:column}
  .login-test-head span{text-align:left}
  .login-role-grid{grid-template-columns:1fr 1fr}
  .login-role-grid button{min-height:54px;padding:8px}
  .login-role-grid button strong{font-size:12px}
  .login-role-grid button span{font-size:10px}
}

@media (min-width:761px) and (max-width:1366px){
  .doc-page.approver-readonly .risk-section,
  .approver-readonly .risk-section{
    overflow:visible!important;
  }
  .doc-page.approver-readonly .risk-row,
  .approver-readonly .risk-row{
    display:grid!important;
    grid-template-columns:minmax(190px,240px) minmax(0,1fr) 54px!important;
    gap:10px!important;
    align-items:stretch!important;
    width:100%!important;
    min-width:0!important;
    padding:10px!important;
    overflow:visible!important;
  }
  .doc-page.approver-readonly .risk-title,
  .approver-readonly .risk-title{
    min-width:0!important;
    padding:8px 10px!important;
    line-height:1.25!important;
    overflow-wrap:break-word!important;
  }
  .doc-page.approver-readonly .risk-options,
  .approver-readonly .risk-options{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .doc-page.approver-readonly .risk-options label,
  .approver-readonly .risk-options label,
  .doc-page.approver-readonly .risk-options label:has(input:checked),
  .approver-readonly .risk-options label:has(input:checked){
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:8px!important;
    width:auto!important;
    min-width:0!important;
    min-height:42px!important;
    margin:0!important;
    padding:8px 10px!important;
    white-space:normal!important;
    line-height:1.25!important;
  }
  .doc-page.approver-readonly .risk-options label span,
  .approver-readonly .risk-options label span{
    min-width:0!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  .doc-page.approver-readonly .risk-options b,
  .approver-readonly .risk-options b{
    margin-left:0!important;
    justify-self:end!important;
    min-width:18px!important;
    text-align:center!important;
  }
  .doc-page.approver-readonly .risk-score,
  .approver-readonly .risk-score{
    min-width:0!important;
    min-height:42px!important;
    border-radius:10px!important;
  }
}

.user-stamp-thumb{
  display:block;
  width:76px;
  height:42px;
  object-fit:contain;
  border:1px solid #cfe2ef;
  border-radius:8px;
  background:#fff;
  padding:4px;
}

@media (min-width:761px) and (max-width:1366px){
  .doc-page.approver-readonly .risk-section,
  .approver-readonly .risk-section{
    padding:18px!important;
  }
  .doc-page.approver-readonly .risk-row,
  .approver-readonly .risk-row{
    grid-template-columns:minmax(220px,260px) minmax(0,1fr) 72px!important;
    align-items:center!important;
    gap:12px!important;
    padding:10px!important;
  }
  .doc-page.approver-readonly .risk-title,
  .approver-readonly .risk-title{
    display:flex!important;
    align-items:center!important;
    min-height:54px!important;
    padding:12px!important;
    border-radius:0!important;
    background:#f3f7fb!important;
  }
  .doc-page.approver-readonly .risk-options,
  .approver-readonly .risk-options{
    grid-template-columns:repeat(auto-fit,minmax(185px,1fr))!important;
    align-items:stretch!important;
  }
  .doc-page.approver-readonly .risk-options label,
  .approver-readonly .risk-options label,
  .doc-page.approver-readonly .risk-options label:has(input:checked),
  .approver-readonly .risk-options label:has(input:checked){
    min-height:50px!important;
    padding:10px 12px!important;
  }
  .doc-page.approver-readonly .risk-score,
  .approver-readonly .risk-score{
    display:grid!important;
    place-items:center!important;
    justify-self:stretch!important;
    align-self:stretch!important;
    min-width:0!important;
    min-height:50px!important;
    border:1px solid #cfe2ef!important;
    border-radius:12px!important;
    background:#f8fbfd!important;
    color:#07385a!important;
    font-size:15px!important;
    font-weight:900!important;
    writing-mode:horizontal-tb!important;
    overflow:hidden!important;
  }
}
.user-stamp-preview{
  display:block;
  width:140px;
  max-width:100%;
  height:74px;
  object-fit:contain;
  border:1px solid #cfe2ef;
  border-radius:10px;
  background:#fff;
  padding:8px;
  margin-bottom:8px;
}

.check-page{display:grid;gap:14px}
.check-driver-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #cfe2ef;border-radius:12px;background:#f8fbfd;color:#07385a;font-weight:800}
.check-driver-note svg{width:20px;height:20px;color:#1083e8}.check-driver-note span{line-height:1.35}
.check-state-legend{
  display:grid;
  gap:8px;
  padding:10px 12px;
  border:1px solid #dceaf3;
  border-radius:10px;
  background:#f8fbfd;
  box-shadow:none;
}
.check-state-legend>strong{
  color:#07385a;
  font-size:12px;
}
.check-state-legend>div{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.check-legend-chip,.check-status-pill{
  display:inline-flex!important;
  align-items:center;
  gap:5px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
  white-space:normal;
}
.check-legend-chip{
  padding:6px 9px;
}
.check-status-pill{
  justify-content:center;
  min-width:96px;
  max-width:160px;
  padding:6px 9px;
  text-align:center;
}
.check-status-pill span{
  display:inline!important;
  color:inherit!important;
  font-size:11px!important;
}
.check-legend-chip svg,.check-status-pill svg,.check-card-state-note svg{
  flex:0 0 auto;
  width:16px;
  height:16px;
}
.check-status-pending{color:#7c4a03;background:#fff8e8;border-color:#f5d38a}
.check-status-observed{color:#8a4a10;background:#fff4e8;border-color:#f1c7a2}
.check-status-completed{color:#075985;background:#eef8ff;border-color:#b8def6}
.check-status-approved{color:#166534;background:#f0fff5;border-color:#bcebc9}
.check-status-rejected{color:#991b1b;background:#fff0f2;border-color:#ffc4c9}
.check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.check-list-card,.check-summary-card,.check-editor{border:1px solid #cfe2ef;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.08);padding:14px}
.check-list-card{
  position:relative;
  overflow:hidden;
  border-left-width:1px;
}
.check-list-card::before{
  content:none;
}
.check-card-pending{--check-accent:#f5d38a;border-color:#dceaf3;background:#fff}
.check-card-observed{--check-accent:#f1c7a2;border-color:#dceaf3;background:#fff}
.check-card-completed{--check-accent:#b8def6;border-color:#dceaf3;background:#fff}
.check-card-approved{--check-accent:#bcebc9;border-color:#dceaf3;background:#fff}
.check-card-rejected{--check-accent:#ffc4c9;border-color:#dceaf3;background:#fff}
.check-list-card header,.check-summary-card header,.check-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.check-list-card strong,.check-summary-card strong,.check-editor-head strong{color:#07385a}.check-list-card span,.check-summary-card span,.check-editor-head span{display:block;color:#64748b;font-size:12px}
.check-list-card header small{display:block;margin-top:3px;color:#526d87;font-size:12px;font-weight:800;line-height:1.25}
.check-card-state-note{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:7px;
  margin:0 0 10px;
  padding:7px 9px;
  border:1px solid #dceaf3;
  border-radius:8px;
  background:#f8fbfd;
  color:#37566d;
  font-size:11px;
  font-weight:850;
  line-height:1.3;
}
.check-card-state-note svg{color:#526d87}
.check-card-state-note span{color:inherit!important;font-size:11px!important}
.check-state-text{font-weight:950}
.check-state-pending{color:#92400e!important}.check-state-observed{color:#9a3412!important}.check-state-completed{color:#075985!important}.check-state-approved{color:#166534!important}.check-state-rejected{color:#991b1b!important}
.check-list-card footer{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.check-list-card footer .btn{
  width:100%;
  min-height:38px;
  justify-content:center;
  padding:8px 10px;
  border-radius:8px;
  background:#edf5fa;
  color:#07385a;
  box-shadow:none;
  white-space:nowrap;
}
.check-list-card footer .btn.danger{
  grid-column:1 / -1;
  width:100%;
  background:#fff0f2;
  color:#b42318;
  border:1px solid #ffc4c9;
}
.check-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.check-vehicle-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin:8px 0 12px;border:1px solid #dceaf3;border-radius:10px;background:#fff;overflow:hidden}
.check-summary-grid div{border:1px solid #dceaf3;border-radius:10px;background:#f8fbfd;padding:10px;min-width:0}.check-vehicle-summary div{display:grid;gap:3px;min-width:0;padding:10px 12px;border-right:1px solid #e2edf5;border-bottom:1px solid #e2edf5;background:#fff}
.check-summary-grid span,.check-vehicle-summary span{display:block;color:#64748b;font-size:12px;font-weight:800}.check-summary-grid strong,.check-vehicle-summary strong{display:block;margin-top:3px;color:#07385a;overflow-wrap:anywhere}
.check-origin-card{
  display:grid;
  gap:8px;
  margin:0 0 10px;
  padding:10px;
  border:1px solid #dceaf3;
  border-radius:10px;
  background:#fff;
}
.check-origin-card header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.check-origin-card header strong{
  display:block;
  color:#07385a;
  font-size:13px;
  line-height:1.15;
}
.check-origin-card header span:not(.badge){
  display:block;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  line-height:1.15;
}
.check-origin-main{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:6px;
}
.check-origin-main div{
  min-width:0;
  padding:7px 8px;
  border:1px solid #dceaf3;
  border-radius:8px;
  background:#f8fbfd;
}
.check-origin-main span{
  display:block;
  color:#64748b;
  font-size:10px;
  font-weight:800;
}
.check-origin-main strong{
  display:block;
  margin-top:2px;
  color:#07385a;
  font-size:12px;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.check-origin-card p{
  margin:0;
  color:#37566d;
  font-size:11px;
  line-height:1.35;
}
.check-history-block{
  display:grid;
  gap:10px;
  margin:14px 0 80px;
  padding:14px;
  border:1px solid #dceaf3;
  border-radius:12px;
  background:#fff;
}
.check-history-block header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.check-history-block h3{
  margin:0;
  color:#07385a;
  font-size:16px;
}
.check-history-block header span{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  font-weight:900;
}
.report-card>header>span svg{
  width:18px;
  height:18px;
}
.check-history-pages{
  display:grid;
  gap:8px;
  min-height:386px;
  align-content:start;
}
.check-history-block article{
  display:grid;
  gap:3px;
  padding:10px;
  border-left:3px solid #8fc5ea;
  border-radius:8px;
  background:#f8fbfd;
}
.check-history-block span{
  color:#64748b;
  font-size:11px;
  font-weight:900;
}
.check-history-block strong{
  color:#07385a;
}
.check-history-block p{
  margin:0;
  color:#526d87;
  font-size:12px;
}
.check-history-pagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  padding-top:2px;
}
.check-history-pagination button{
  display:grid;
  place-items:center;
  min-width:32px;
  height:32px;
  border:1px solid #d9e8f1;
  border-radius:8px;
  background:#f8fbfd;
  color:#07385a;
  font-weight:900;
  cursor:pointer;
}
.check-history-pagination button.active{
  border-color:#1083e8;
  background:#1083e8;
  color:#fff;
}
.check-vehicle-mobile{display:grid;gap:12px;padding:12px}.check-vehicle-actions{display:flex;gap:8px;flex-wrap:wrap}.check-editor-actions .check-complete-trigger{background:#4CAF50;color:#fff;box-shadow:0 14px 34px rgba(76,175,80,.22)}.check-editor-actions .check-reject-trigger{background:#ff4757;color:#fff;box-shadow:0 14px 34px rgba(255,71,87,.22)}.check-empty-state{display:grid;gap:10px;padding:16px;text-align:center;color:#64748b}
.check-final-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.check-final-fields label{display:grid;gap:6px;color:#334155;font-weight:800;border:1px solid transparent;border-radius:12px;padding:8px;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.check-final-fields .wide{grid-column:1/-1}
.check-items{display:grid;gap:10px}.check-items details{border:1px solid #dceaf3;border-radius:12px;background:#f8fbfd;overflow:hidden}.check-items summary{cursor:pointer;padding:12px 14px;font-weight:900;color:#07385a;background:#eaf4fb}
.check-progress{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.progress-pill{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;border:1px solid transparent}.progress-pill.ok{background:#ecfdf5;border-color:#86efac;color:#166534}.progress-pill.warn{background:#fff7ed;border-color:#fdba74;color:#9a3412}.progress-pill.fail{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.check-item-row{display:grid;grid-template-columns:minmax(0,1.5fr) 150px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border-top:1px solid #dceaf3;border-left:2px solid transparent;background:#fff;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.check-item-row strong{display:block;color:#102033}.check-item-row a{display:inline-block;margin-top:4px;color:#1083e8;font-weight:800}.check-item-row textarea{min-height:46px}.check-state-select{font-weight:900}.check-field-pending{border-color:#f2c46d!important;background:#fffdf7!important}.check-field-pending input,.check-field-pending select,.check-field-pending textarea{border-color:#e6b55d!important}.check-field-complete{border-color:#9de2b6!important;background:#fbfffd!important}.check-field-complete input,.check-field-complete select,.check-field-complete textarea{border-color:#22c55e!important;color:#166534}.check-field-filled{border-color:#9de2b6!important;background:#fbfffd!important}.check-field-filled input,.check-field-filled textarea{border-color:#22c55e!important}.check-item-row.state-pending{border-left-color:#f2b84b;background:#fffdf7}.check-item-row.state-pending select,.field-alert{border-color:#e6b55d!important;box-shadow:0 0 0 2px rgba(245,158,11,.10)!important}.check-item-row.state-complete{border-left-color:#22c55e;background:#fbfffd}.check-item-row.state-complete select{border-color:#22c55e;color:#166534}.check-item-row.state-fail{border-left-color:#dc2626;background:#fffafa;color:#7f1d1d}.check-item-row.state-fail select{border-color:#dc2626;background:#fff5f5;color:#7f1d1d}.check-item-row.has-observation textarea{border-color:#22c55e}.check-item-row.missing-observation textarea{border-color:#dc2626!important;background:#fffafa!important;box-shadow:0 0 0 2px rgba(220,38,38,.10)!important}
.check-damage-report{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid #dceaf3;border-radius:12px;background:#f8fbfd}.check-damage-report h3{margin:0;color:#07385a}.check-damage-report p{margin:0;color:#64748b}.check-damage-report label{display:grid;gap:6px;color:#334155;font-weight:800;border:1px solid transparent;border-radius:12px;padding:8px;transition:border-color .18s ease,background .18s ease}.check-file-picker input{padding:10px;background:#fff}.check-evidence-block{display:grid;gap:6px;border:1px solid #dceaf3;border-radius:12px;background:#fff;padding:10px;transition:border-color .18s ease,background .18s ease}.check-evidence-block>strong{color:#07385a}.check-evidence-block>span{color:#64748b;font-size:12px}.check-evidence-preview,.check-evidence-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.check-evidence-card{position:relative;margin:0;border:1px solid #dceaf3;border-radius:12px;background:#fff;padding:8px;overflow:hidden}.check-evidence-card.pending-upload{border-color:#fdba74;background:#fffaf0}.check-evidence-card img{width:100%;height:150px;object-fit:contain;border-radius:8px;background:#f8fbfd}.check-evidence-card figcaption{margin-top:6px;color:#526d87;font-size:12px}.check-evidence-card figcaption p{margin:4px 0 0;color:#334155}.evidence-status{display:inline-flex!important;width:max-content;max-width:100%;margin-bottom:4px;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.evidence-status.saved{background:#dcfce7;color:#166534}.evidence-status.pending{background:#ffedd5;color:#9a3412}.check-evidence-card .icon-btn{position:absolute;top:10px;right:10px;background:#fff;color:#ef4444;box-shadow:0 6px 18px rgba(15,23,42,.16)}.empty-inline{display:block;color:#64748b;padding:10px}
.check-evidence-card figcaption strong,.check-evidence-card figcaption span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-evidence-card figcaption input{margin-top:6px;width:100%}.check-pdf-document{width:1122px;max-width:none;background:#fff}.check-pdf-frame{display:block;width:1122px;height:794px;border:0;background:#fff}
:root[data-theme="dark"] .check-list-card,:root[data-theme="dark"] .check-summary-card,:root[data-theme="dark"] .check-editor,:root[data-theme="dark"] .check-summary-grid div,:root[data-theme="dark"] .check-vehicle-summary div,:root[data-theme="dark"] .check-items details,:root[data-theme="dark"] .check-item-row,:root[data-theme="dark"] .check-origin-card,:root[data-theme="dark"] .check-origin-main div,:root[data-theme="dark"] .check-history-block,:root[data-theme="dark"] .check-history-block article{background:#10283b;border-color:#31516a;color:#e8f7ff}
:root[data-theme="dark"] .check-items summary{background:#0b1f2f;color:#e8f7ff}:root[data-theme="dark"] .check-list-card strong,:root[data-theme="dark"] .check-summary-card strong,:root[data-theme="dark"] .check-editor-head strong,:root[data-theme="dark"] .check-summary-grid strong,:root[data-theme="dark"] .check-vehicle-summary strong,:root[data-theme="dark"] .check-origin-card strong,:root[data-theme="dark"] .check-history-block strong,:root[data-theme="dark"] .check-history-block h3{color:#e8f7ff}
:root[data-theme="dark"] .check-state-legend{background:#10283b;border-color:#31516a;box-shadow:none}
:root[data-theme="dark"] .check-state-legend>strong{color:#e8f7ff}
:root[data-theme="dark"] .check-card-state-note{background:rgba(8,26,41,.75);border-color:#31516a;color:#d8eefc}
:root[data-theme="dark"] .check-card-pending{background:linear-gradient(180deg,rgba(245,158,11,.18) 0,#10283b 38%)}
:root[data-theme="dark"] .check-card-observed{background:linear-gradient(180deg,rgba(249,115,22,.18) 0,#10283b 38%)}
:root[data-theme="dark"] .check-card-completed{background:linear-gradient(180deg,rgba(14,165,233,.18) 0,#10283b 38%)}
:root[data-theme="dark"] .check-card-approved{background:linear-gradient(180deg,rgba(34,197,94,.16) 0,#10283b 38%)}
:root[data-theme="dark"] .check-card-rejected{background:linear-gradient(180deg,rgba(239,68,68,.18) 0,#10283b 38%)}
:root[data-theme="dark"] .check-status-pending{color:#fde68a;background:rgba(245,158,11,.14)}
:root[data-theme="dark"] .check-status-observed{color:#fed7aa;background:rgba(249,115,22,.14)}
:root[data-theme="dark"] .check-status-completed{color:#bae6fd;background:rgba(14,165,233,.14)}
:root[data-theme="dark"] .check-status-approved{color:#bbf7d0;background:rgba(34,197,94,.14)}
:root[data-theme="dark"] .check-status-rejected{color:#fecaca;background:rgba(239,68,68,.14)}
:root[data-theme="dark"] .check-state-pending{color:#fde68a!important}:root[data-theme="dark"] .check-state-observed{color:#fed7aa!important}:root[data-theme="dark"] .check-state-completed{color:#bae6fd!important}:root[data-theme="dark"] .check-state-approved{color:#bbf7d0!important}:root[data-theme="dark"] .check-state-rejected{color:#fecaca!important}
:root[data-theme="dark"] .check-origin-card p,:root[data-theme="dark"] .check-history-block p{color:#9db1c2}
:root[data-theme="dark"] .check-history-block header span{color:#9db1c2}
:root[data-theme="dark"] .check-history-pagination button{background:#17364b;border-color:#31516a;color:#dff5ff}
:root[data-theme="dark"] .check-history-pagination button.active{background:#1083e8;border-color:#68a6dd;color:#fff}
:root[data-theme="dark"] .check-damage-report,:root[data-theme="dark"] .check-evidence-card{background:#10283b;border-color:#31516a}:root[data-theme="dark"] .check-damage-report h3{color:#e8f7ff}
.check-evidence-card .evidence-description-field{
  display:grid!important;
  gap:5px!important;
  margin-top:8px!important;
  padding:0!important;
  border:0!important;
  color:#07385a!important;
  font-size:11px!important;
  font-weight:900!important;
}
.check-evidence-card .evidence-description-field textarea{
  width:100%!important;
  min-height:58px!important;
  padding:8px!important;
  border:1px solid #cfe0ec!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#0f2236!important;
  font-size:12px!important;
  resize:vertical!important;
}
.check-evidence-card figcaption p{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.3!important;
}

@media (max-width:760px){
  .check-list{grid-template-columns:1fr}
  .check-final-fields{grid-template-columns:1fr}
  .check-category-head{
    position:sticky;
    top:0;
    z-index:4;
    padding:8px 0;
    background:#fff!important;
  }
  :root[data-theme="dark"] .check-category-head{
    background:#10283b!important;
  }
  .check-category-pass{
    min-width:132px;
    min-height:48px;
    padding:0 12px;
  }
  .check-item-row{grid-template-columns:minmax(0,1fr) 132px}
  .check-item-row>div:first-child{
    padding:12px;
  }
  .check-state-options{
    align-self:stretch;
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
    width:auto;
    margin:8px;
  }
  .check-state-options label{
    min-height:48px;
    padding:6px;
    font-size:11px;
  }
  .check-evidence-preview,.check-evidence-gallery{grid-template-columns:1fr 1fr}
  .check-vehicle-mobile{padding:10px}
  .check-editor{padding:10px;border-radius:10px}
  .check-editor-actions{
    left:10px;
    right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    align-items:stretch;
    padding:8px;
    border:1px solid #dceaf3;
    border-radius:16px;
    background:rgba(255,255,255,.96);
    box-shadow:0 18px 44px rgba(15,23,42,.22);
    backdrop-filter:blur(10px);
  }
  .check-editor-actions .float-menu{min-width:0}
  .check-editor-actions .float-menu:first-child{grid-column:1/-1}
  .check-editor-actions .float-trigger{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    min-height:44px;
    padding:10px 12px;
    font-size:13px;
    white-space:nowrap;
  }
  .check-item-row select,.check-item-row textarea,.check-final-fields input,.check-final-fields select,.check-final-fields textarea,.check-damage-report textarea{min-height:48px;font-size:16px}
  .check-damage-report textarea{min-height:116px}
}
:root[data-theme="dark"] .user-stamp-thumb,
:root[data-theme="dark"] .user-stamp-preview{
  background:#f8fbfd;
  border-color:#406177;
}
:root[data-theme="dark"] .driver-user-section{border-color:#31516a;background:#0d2030}
:root[data-theme="dark"] .driver-user-section.active{border-color:#68a6dd;background:#10283b}
:root[data-theme="dark"] .driver-user-section strong,:root[data-theme="dark"] .driver-user-grid label{color:#dff5ff}
:root[data-theme="dark"] .driver-user-section span{color:#9db1c2}
:root[data-theme="dark"] .driver-license-row{border-color:#31516a;background:#0b2234}
:root[data-theme="dark"] .driver-license-row label{color:#dff5ff}
:root[data-theme="dark"] .driver-eligibility-hint.is-ok{color:#86efac}
:root[data-theme="dark"] .driver-eligibility-hint.is-blocked{color:#fecaca}
:root[data-theme="dark"] .driver-link-alert{border-color:#5d4822;background:#2b2414;color:#fff3ce}
:root[data-theme="dark"] .notification-panel,:root[data-theme="dark"] .notification-filters{background:#0d2030;border-color:#31516a}
:root[data-theme="dark"] .notification-panel header,:root[data-theme="dark"] .notification-item{background:#10283b;border-color:#31516a;color:#dff5ff}
:root[data-theme="dark"] .notification-item.unread{background:#12324a}
:root[data-theme="dark"] .notification-item strong{color:#dff5ff}
:root[data-theme="dark"] .notification-item p,:root[data-theme="dark"] .notification-item small{color:#9db1c2}
@media (max-width:760px){.driver-license-row{grid-template-columns:1fr}.driver-license-head{align-items:stretch;flex-direction:column}.driver-license-head .btn{width:100%;justify-content:center}}
@media (max-width:640px){.driver-user-grid{grid-template-columns:1fr}.notification-panel{right:12px;width:calc(100vw - 24px)}.notification-panel header{grid-template-columns:1fr}.notification-head-actions{justify-content:stretch}.notification-head-actions .btn{flex:1}.notification-filters{grid-template-columns:1fr 1fr}.notification-filters input[name="buscar"]{grid-column:1/-1}}

.doc-actions .primary-save{
  box-shadow:0 12px 28px rgba(7,56,90,.18);
  transform:translateY(-1px);
}
.readonly-info strong{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:10px 12px;
  border:1px solid #d6e5f0;
  border-radius:10px;
  background:#f8fbfd;
  color:#07385a;
  font-weight:800;
}
:root[data-theme="dark"] .readonly-info strong{
  background:#10283b;
  border-color:#43657b;
  color:#e8f7ff;
}

/* Estados de campos: usar solo borde, sin franjas laterales invasivas. */
.invalid,
.field-alert,
.field-complete input,
.field-complete textarea,
.field-complete select,
.field-complete .check-row,
.field-complete .risk-options,
.field-missing input,
.field-missing textarea,
.field-missing select,
.field-missing .check-row,
.field-missing .risk-options,
.check-item-row.state-pending select,
.check-item-row.state-complete select,
.check-item-row.state-fail select,
.check-item-row.missing-observation textarea{
  box-shadow:none!important;
}
.invalid,
.field-alert,
.field-missing input,
.field-missing textarea,
.field-missing select,
.field-missing .check-row,
.field-missing .risk-options{
  border-color:#f59e0b!important;
}
.doc-section.field-missing{
  border-color:#f59e0b!important;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.22),0 12px 30px rgba(15,23,42,.07)!important;
}
.doc-section.field-complete{
  border-color:#22c55e!important;
}
.field-complete input,
.field-complete textarea,
.field-complete select,
.field-complete .check-row,
.field-complete .risk-options{
  border-color:#22c55e!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing input,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing textarea,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing select,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .check-row,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-options,
:root[data-theme="dark"] .field-complete input,
:root[data-theme="dark"] .field-complete textarea,
:root[data-theme="dark"] .field-complete select,
:root[data-theme="dark"] .field-complete .check-row,
:root[data-theme="dark"] .field-complete .risk-options,
:root[data-theme="dark"] .field-missing input,
:root[data-theme="dark"] .field-missing textarea,
:root[data-theme="dark"] .field-missing select,
:root[data-theme="dark"] .field-missing .check-row,
:root[data-theme="dark"] .field-missing .risk-options{
  box-shadow:none!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-complete .risk-options,
:root[data-theme="dark"] .field-complete input,
:root[data-theme="dark"] .field-complete textarea,
:root[data-theme="dark"] .field-complete select,
:root[data-theme="dark"] .field-complete .check-row,
:root[data-theme="dark"] .field-complete .risk-options{
  border-color:#22c55e!important;
}
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing input,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing textarea,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing select,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .check-row,
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-options,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing input,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing textarea,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing select,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .check-row,
:root[data-theme="dark"] .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .field-missing .risk-options,
:root[data-theme="dark"] .field-missing input,
:root[data-theme="dark"] .field-missing textarea,
:root[data-theme="dark"] .field-missing select,
:root[data-theme="dark"] .field-missing .check-row,
:root[data-theme="dark"] .field-missing .risk-options{
  border-color:#f59e0b!important;
}
.extension-approval-card,
.extension-approval-card.status-success,
.extension-request.extension-pending,
.extension-request.extension-approved,
.extension-request.extension-rejected{
  box-shadow:none!important;
}
.responsibility-card,
.responsibility-card.field-missing,
.responsibility-card.invalid,
.responsibility-card.is-confirmed,
.closed-form-row{
  border-left-width:1px!important;
}
.responsibility-card.field-missing,
.responsibility-card.invalid{
  border-color:#f59e0b!important;
  box-shadow:0 14px 30px rgba(11,60,93,.07)!important;
}
.responsibility-card.is-confirmed,
.closed-form-row{
  border-color:#22c55e!important;
}
.closed-form-row.is-rejected{
  border-color:#dc2626!important;
  border-left:5px solid #dc2626!important;
  background:#fff5f5!important;
  box-shadow:0 14px 32px rgba(220,38,38,.12)!important;
}
.closed-form-row.is-rejected strong{
  color:#7f1d1d!important;
}
.closed-form-row .badge.danger.strong{
  background:#dc2626!important;
  color:#fff!important;
  border:1px solid #b91c1c!important;
  box-shadow:0 8px 18px rgba(220,38,38,.22);
}
.movement-row.field-complete{
  border-color:#22c55e!important;
  box-shadow:none!important;
}
.check-item-row{
  border-left-width:1px!important;
}
.check-item-row.state-pending{
  border-color:#f59e0b!important;
}
.check-item-row.state-complete{
  border-color:#22c55e!important;
}
.check-item-row.state-fail{
  border-color:#dc2626!important;
}

/* Checklist alineado visualmente con el formulario documental. */
.check-editor{
  border:0;
  border-radius:16px;
  background:#fff;
  padding:28px 32px 32px;
  box-shadow:0 18px 38px rgba(11,60,93,.08);
}
.check-items{
  display:grid;
  gap:22px;
}
.check-category-nav{
  display:flex;
  gap:8px;
  overflow:auto;
  padding:4px 0 10px;
  margin:4px 0 10px;
  scrollbar-width:thin;
}
.check-category-nav button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:max-content;
  border:1px solid #d5e0ea;
  border-radius:999px;
  padding:8px 11px;
  background:#f3f8fc;
  color:#526d87;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.check-category-nav button span{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#dbeaf4;
  color:#06385b;
}
.check-category-nav button{
  min-width:42px;
  justify-content:center;
  padding:8px;
}
.check-category-nav button.active{
  border-color:#0B3C5D;
  background:#0B3C5D;
  color:#fff;
}
.check-category-nav button.active span{
  background:#fff;
}
.check-final-fields{
  gap:8px 10px;
  margin:10px 0;
}
.check-final-fields label{
  gap:5px;
  padding:6px 8px;
  border-radius:10px;
  color:#07385a;
  font-size:13px;
  font-weight:800;
}
.check-final-fields input,
.check-final-fields select,
.check-final-fields textarea{
  min-height:38px;
  padding:8px 10px;
  border-radius:8px;
  font-size:13px;
  font-weight:700;
}
.check-final-fields textarea{
  min-height:66px;
  font-weight:500;
}
.check-category-page{
  display:none;
}
.check-category-page.active{
  display:block;
}
.check-category{
  border:0!important;
  border-radius:16px;
  background:#fff!important;
  overflow:visible;
}
.check-category-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0 0 12px;
  padding:0 0 4px;
  border:0;
  background:transparent!important;
}
.check-category h3{
  margin:0;
  color:#06385b;
  font-size:18px;
  font-weight:900;
}
.check-category-pass{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:0 16px;
  border:1px solid #a7e5bc;
  border-radius:12px;
  background:#ecfdf5;
  color:#166534;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(22,101,52,.08);
}
.check-category-pass svg{
  width:17px;
  height:17px;
}
.check-category-pass:hover{
  border-color:#22c55e;
  background:#dcfce7;
}
.check-category-pass:disabled{
  opacity:.72;
  cursor:wait;
}
.check-item-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(250px,.72fr) 112px;
  gap:0;
  align-items:stretch;
  min-height:78px;
  margin:0 0 12px;
  padding:0;
  border:1px solid #d5e0ea!important;
  border-radius:14px;
  background:#fff!important;
  overflow:hidden;
  transition:border-color .18s ease,background .18s ease;
}
.check-required-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:10px;
  border-left:1px solid #d5e0ea;
  background:#fbfdff;
  color:#526d87;
  font-size:11px;
  font-weight:900;
  text-align:center;
}
.check-item-row>div:first-child{
  display:flex;
  align-items:center;
  min-width:0;
  padding:16px;
  border-right:1px solid #d5e0ea;
  background:#f3f8fc;
}
.check-item-row strong{
  color:#06385b;
  font-size:14px;
  line-height:1.35;
}
.check-state-options{
  align-self:center;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:10px;
}
.check-state-options label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:6px 10px;
  border:1px solid #cfe0ec;
  border-radius:10px;
  background:#fff;
  color:#06385b;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,color .18s ease;
}
.check-state-options input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:#0B3C5D;
}
.check-state-options label:hover{
  border-color:#68a6dd;
  background:#f3f8fc;
}
.check-state-options label.selected:has(input[value="Cumple"]){
  border-color:#22c55e;
  background:#ecfdf5;
  color:#166534;
}
.check-state-options label.selected:has(input[value="No Cumple"]){
  border-color:#dc2626;
  background:#fef2f2;
  color:#991b1b;
}
.check-state-select{
  align-self:center;
  width:calc(100% - 20px);
  min-height:46px;
  margin:10px;
  border:1px solid #cfe0ec;
  border-radius:10px;
  background:#fff;
  color:#0f2236;
  font-weight:900;
}
.check-item-row textarea{
  align-self:stretch;
  width:calc(100% - 20px);
  min-height:58px;
  margin:10px;
  border:1px solid #cfe0ec;
  border-radius:10px;
  background:#fff;
}
.check-item-row.state-pending,
.check-item-row.state-complete,
.check-item-row.state-fail,
.check-item-row.state-fail-optional{
  background:#fff!important;
}
.check-item-row.state-pending{
  border-color:#f59e0b!important;
}
.check-item-row.state-complete{
  border-color:#22c55e!important;
}
.check-item-row.state-fail{
  border-color:#dc2626!important;
}
.check-item-row.state-fail-optional{
  border-color:#d5e0ea!important;
}
.check-item-row.state-pending .check-state-options label{
  border-color:#f59e0b!important;
}
.check-item-row.state-complete .check-state-options label:has(input[value="Cumple"]){
  border-color:#22c55e!important;
  color:#166534;
}
.check-item-row.state-fail .check-state-options label:has(input[value="No Cumple"]){
  border-color:#dc2626!important;
  color:#991b1b;
}
.check-item-row.state-fail-optional .check-state-options label:last-child{
  border-color:#64748b!important;
  background:#f8fafc!important;
  color:#334155;
}
.check-item-row.state-fail-optional .check-required-mark{
  color:#526d87;
}
.check-item-row.has-observation textarea{
  border-color:#22c55e!important;
}
.check-item-row.missing-observation textarea{
  border-color:#dc2626!important;
  background:#fff!important;
}
.check-category-observation{
  display:grid;
  gap:6px;
  margin:12px 0 0;
  color:#07385a;
  font-size:13px;
  font-weight:900;
}
.check-category-observation textarea{
  min-height:76px;
  border:1px solid #cfe0ec;
  border-radius:12px;
  background:#fff;
  font-size:13px;
  font-weight:500;
}
.check-category-observation.field-alert,
.check-category-observation textarea.field-alert{
  border-color:#cfe0ec!important;
  box-shadow:none!important;
}
.check-category-pager{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:14px 0 2px;
}
.check-category-pager span{
  min-width:70px;
  text-align:center;
  color:#526d87;
  font-size:12px;
  font-weight:900;
}
.check-minimum-alert,
.check-confirm-warning,
.check-confirm-ok{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin:10px 0;
  padding:12px;
  border:1px solid #d5e8f4;
  border-radius:14px;
  background:#f3f9fd;
  color:#07385a;
}
.check-minimum-alert:empty{
  display:none;
}
.check-minimum-alert svg,
.check-confirm-warning svg,
.check-confirm-ok svg{
  width:21px;
  height:21px;
}
.check-minimum-alert strong,
.check-confirm-warning strong,
.check-confirm-ok strong{
  display:block;
  color:#07385a;
}
.check-minimum-alert span,
.check-confirm-warning span,
.check-confirm-ok span{
  display:block;
  margin-top:2px;
  color:#526d87;
  font-size:12px;
}
.check-confirm-warning{
  border-color:#fdba74;
  background:#fff7ed;
}
.check-confirm-warning svg{
  color:#f59e0b;
}
.check-confirm-warning.danger{
  border-color:#fecaca;
  background:#fff1f2;
  color:#7f1d1d;
}
.check-confirm-warning.danger svg,
.check-confirm-warning.danger strong{
  color:#b91c1c;
}
.check-confirm-warning.danger span,
.check-confirm-warning.danger p{
  color:#7f1d1d;
}
.check-confirm-ok{
  border-color:#86efac;
  background:#ecfdf5;
}
.check-confirm-ok svg{
  color:#16a34a;
}
#checkCompleteConfirmDialog,
#checkRejectConfirmDialog{
  width:min(560px,calc(100vw - 28px));
  max-width:560px;
  overflow:hidden;
}
#checkCompleteConfirmDialog .confirm-dialog-card,
#checkRejectConfirmDialog .confirm-dialog-card{
  display:grid;
  grid-template-columns:1fr;
  width:100%;
  max-width:100%;
  min-width:0;
  gap:12px;
  padding:20px;
  border-color:#d9e8f1;
  overflow:hidden;
}
#checkCompleteConfirmDialog .confirm-dialog-icon,
#checkRejectConfirmDialog .confirm-dialog-icon{
  width:46px;
  height:46px;
}
#checkCompleteConfirmDialog .confirm-dialog-card h2,
#checkCompleteConfirmDialog .confirm-dialog-card p,
#checkCompleteConfirmDialog .check-confirm-warning,
#checkCompleteConfirmDialog .check-confirm-ok,
#checkCompleteConfirmDialog .confirm-dialog-card footer,
#checkRejectConfirmDialog .confirm-dialog-card h2,
#checkRejectConfirmDialog .confirm-dialog-card p,
#checkRejectConfirmDialog .check-confirm-warning,
#checkRejectConfirmDialog .confirm-dialog-card footer{
  grid-column:1;
  min-width:0;
  max-width:100%;
}
#checkCompleteConfirmDialog .confirm-dialog-card h2,
#checkRejectConfirmDialog .confirm-dialog-card h2{
  margin:0;
  color:#07385a;
  font-size:22px;
  line-height:1.15;
  overflow-wrap:anywhere;
}
#checkCompleteConfirmDialog .confirm-dialog-card p,
#checkRejectConfirmDialog .confirm-dialog-card p{
  font-size:14px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
#checkCompleteConfirmDialog .check-confirm-warning,
#checkCompleteConfirmDialog .check-confirm-ok,
#checkRejectConfirmDialog .check-confirm-warning{
  width:100%;
  grid-template-columns:auto minmax(0,1fr);
}
#checkCompleteConfirmDialog .check-confirm-warning strong,
#checkCompleteConfirmDialog .check-confirm-warning span,
#checkCompleteConfirmDialog .check-confirm-ok strong,
#checkCompleteConfirmDialog .check-confirm-ok span,
#checkRejectConfirmDialog .check-confirm-warning strong,
#checkRejectConfirmDialog .check-confirm-warning span{
  overflow-wrap:anywhere;
}
#checkCompleteConfirmDialog .confirm-dialog-card footer,
#checkRejectConfirmDialog .confirm-dialog-card footer{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
#checkCompleteConfirmDialog .confirm-dialog-card footer .btn,
#checkRejectConfirmDialog .confirm-dialog-card footer .btn{
  min-width:0;
}
@media (max-width:600px){
  #checkCompleteConfirmDialog,
  #checkRejectConfirmDialog{
    width:calc(100vw - 16px);
    margin:auto;
  }
  #checkCompleteConfirmDialog .confirm-dialog-card,
  #checkRejectConfirmDialog .confirm-dialog-card{
    max-height:calc(100vh - 24px);
    overflow:auto;
    border-radius:16px;
    padding:16px;
  }
  #checkCompleteConfirmDialog .confirm-dialog-card footer,
  #checkRejectConfirmDialog .confirm-dialog-card footer{
    display:grid;
    grid-template-columns:1fr;
  }
  #checkCompleteConfirmDialog .confirm-dialog-card footer .btn,
  #checkRejectConfirmDialog .confirm-dialog-card footer .btn{
    width:100%;
    justify-content:center;
  }
}
.check-damage-report,
.check-evidence-block{
  border-radius:14px;
  background:#fff;
}
:root[data-theme="dark"] .check-editor,
:root[data-theme="dark"] .check-category,
:root[data-theme="dark"] .check-item-row,
:root[data-theme="dark"] .check-damage-report,
:root[data-theme="dark"] .check-evidence-block{
  background:#10283b!important;
  border-color:#31516a!important;
}
:root[data-theme="dark"] .check-item-row>div:first-child{
  background:#0d2030;
  border-color:#31516a;
}
:root[data-theme="dark"] .check-required-mark,
:root[data-theme="dark"] .check-category-observation textarea{
  background:#0d2030;
  border-color:#31516a;
  color:#dff5ff;
}
:root[data-theme="dark"] .check-category h3,
:root[data-theme="dark"] .check-item-row strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .check-category-pass{
  background:#123b2b;
  border-color:#2d7f4a;
  color:#bbf7d0;
}
:root[data-theme="dark"] .check-state-options label{
  background:#0d2030;
  border-color:#31516a;
  color:#dff5ff;
}
@media (max-width:900px){
  .check-editor{
    padding:22px 16px;
  }
  .check-item-row{
    grid-template-columns:minmax(0,1fr) minmax(132px,38%);
  }
  .check-item-row>div:first-child{
    border-right:1px solid #d5e0ea;
    border-bottom:1px solid #d5e0ea;
  }
  .check-required-mark{
    grid-column:1/-1;
    justify-content:flex-start;
    border-left:0;
    border-top:1px solid #d5e0ea;
  }
  .check-state-options,
  .check-state-select,
  .check-item-row textarea{
    width:calc(100% - 20px);
  }
  .check-state-options{
    grid-template-columns:1fr;
  }
}

.flow-timeline{display:grid;gap:12px;margin:0 0 14px;padding:16px;border:1px solid #d9e8f1;border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06)}
.flow-timeline header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.flow-timeline header strong{color:#07385a;font-size:18px}
.flow-timeline header span{color:#526d87;font-weight:900}
.flow-timeline>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.flow-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid #dbe8f1;border-radius:12px;background:#f8fbfd}
.flow-step>span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#edf4f8;color:#64748b;font-weight:900}
.flow-step strong{display:block;color:#07385a}
.flow-step small{display:block;margin-top:2px;color:#64748b;overflow-wrap:anywhere}
.flow-step.done{border-color:#bcebc9;background:#f0fff5}.flow-step.done>span{background:#dcfce7;color:#166534}
.flow-step.active{border-color:#ffe0a6;background:#fff8e8}.flow-step.active>span{background:#fef3c7;color:#92400e}
.flow-step.rejected{border-color:#ffc4c9;background:#fff0f2}.flow-step.rejected>span{background:#fee2e2;color:#991b1b}
.check-state-label{display:inline-flex;margin-top:4px;padding:2px 7px;border-radius:999px;background:#eef4f8;color:#64748b;font-size:11px;font-weight:900}
.check-item-row.state-pending{border-left-color:#f2b84b!important;background:#fff!important;box-shadow:inset 0 0 0 1px rgba(242,184,75,.16)}
.check-item-row.state-pending .check-state-label{background:#fff7e6;color:#8a5a00}
.check-item-row.state-pending .check-required-mark{color:#8a5a00;background:#fff7e6;border-color:#f4d28a}
.check-item-row.state-pending::after{content:none}
.check-item-row.state-pending .check-state-options label{border-color:#d7e4ee!important;background:#fff!important;color:#07385a!important}
.check-item-row.state-complete .check-state-label{background:#e8f7ee;color:#166534}
.check-item-row.state-fail .check-state-label{background:#fff0f2;color:#991b1b}
.check-field-pending{border-color:#f4d28a!important;background:#fff!important}
.check-field-pending input,.check-field-pending select,.check-field-pending textarea{border-color:#d7e4ee!important}
.hse-release-create{display:grid;gap:14px}
.hse-release-intro{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid #cfe2ef;border-radius:14px;background:#f3f9fd}
.hse-release-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e1f2fb;color:#0b5f96}
.hse-release-icon svg{width:23px;height:23px}
.hse-release-intro strong{display:block;color:#07385a;font-size:18px}
.hse-release-intro p{margin:4px 0 0;color:#526d87;line-height:1.35}
.hse-release-field{display:grid;gap:8px;color:#07385a;font-weight:900}
.hse-release-field select,.hse-release-field textarea{border-radius:12px;border-color:#cfe0ec;min-height:46px}
.hse-release-field textarea{min-height:92px}
.hse-release-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px dashed #cfe0ec;border-radius:14px;background:#fbfdff}
.hse-release-preview.active{border-style:solid;border-color:#bcebc9;background:#f7fff9}
.hse-release-preview div{min-width:0;padding:10px;border-radius:10px;background:#fff;border:1px solid #e1edf5}
.hse-release-preview span{display:block;color:#64748b;font-size:12px;font-weight:900}
.hse-release-preview strong{display:block;margin-top:3px;color:#07385a;overflow-wrap:anywhere}
.hse-release-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #ffe0a6;border-radius:12px;background:#fff8e8;color:#7a4a00;font-weight:800}
.hse-release-note svg{width:20px;height:20px;color:#d08a00}
:root[data-theme="dark"] .hse-release-intro,:root[data-theme="dark"] .hse-release-preview,:root[data-theme="dark"] .hse-release-preview div{background:#10283b;border-color:#31516a}
:root[data-theme="dark"] .hse-release-intro strong,:root[data-theme="dark"] .hse-release-field,:root[data-theme="dark"] .hse-release-preview strong{color:#dff5ff}
:root[data-theme="dark"] .hse-release-intro p,:root[data-theme="dark"] .hse-release-preview span{color:#9db1c2}
:root[data-theme="dark"] .hse-release-note{background:#2d230c;border-color:#8b650b;color:#ffe8a6}
@media (max-width:700px){.hse-release-preview{grid-template-columns:1fr 1fr}.hse-release-intro{grid-template-columns:1fr}.hse-release-icon{width:38px;height:38px}}
@media (max-width:430px){.hse-release-preview{grid-template-columns:1fr}}
:root[data-theme="dark"] .flow-timeline,:root[data-theme="dark"] .flow-step{border-color:#31516a;background:#10283b}
:root[data-theme="dark"] .flow-timeline header strong,:root[data-theme="dark"] .flow-step strong{color:#e8f7ff}
:root[data-theme="dark"] .flow-timeline header span,:root[data-theme="dark"] .flow-step small{color:#9db1c2}

/* Check Vehiculo: distribucion movil compacta y legible. */
@media (max-width:620px){
  .check-page.pattern-section.pattern-compact{
    gap:10px;
    padding:10px!important;
    border-radius:14px;
  }
  .check-page.pattern-section::before{
    width:86vw;
    right:-42vw;
    opacity:.28;
  }
  .check-page.pattern-section::after{
    width:120px;
    height:120px;
    border-width:18px;
    opacity:.22;
  }
  .check-page>.toolbar{
    display:grid;
    gap:9px;
    align-items:stretch;
    margin:0;
    padding:12px;
    border:1px solid #d7e6f0;
    border-radius:14px;
    background:rgba(255,255,255,.94);
    box-shadow:0 10px 24px rgba(15,23,42,.06);
  }
  .check-page>.toolbar h3{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    color:#07385a;
    font-size:15px;
    line-height:1.15;
  }
  .check-page>.toolbar h3::before{
    content:"";
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:8px;
    background:#e8f4fb;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E") center/16px 16px no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E") center/16px 16px no-repeat;
  }
  .check-page>.toolbar .filters{
    display:grid!important;
    grid-template-columns:1fr;
    gap:8px;
    width:100%;
  }
  .check-page>.toolbar input,
  .check-page>.toolbar select{
    min-height:40px;
    padding:9px 10px;
    border-radius:10px;
    font-size:12px;
  }
  .check-page>.toolbar .btn{
    width:100%;
    min-height:40px;
    padding:9px 10px;
    border-radius:10px;
    justify-content:center;
    font-size:12px;
  }
  .check-driver-note{
    grid-template-columns:auto 1fr;
    padding:10px;
    border-radius:12px;
    font-size:12px;
  }
  .check-driver-note svg{
    width:18px;
    height:18px;
  }
  .check-state-legend{
    gap:8px;
    padding:10px;
    border-radius:14px;
  }
  .check-state-legend>strong{
    font-size:12px;
  }
  .check-state-legend>div{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .check-legend-chip{
    justify-content:flex-start;
    width:100%;
    min-height:31px;
    padding:6px 7px;
    font-size:10px;
    line-height:1.15;
    white-space:normal;
  }
  .check-legend-chip svg{
    width:14px;
    height:14px;
  }
  .check-list{
    grid-template-columns:1fr!important;
    gap:10px;
  }
  .check-list-card{
    padding:12px;
    border-radius:14px;
    border-left-width:5px;
  }
  .check-list-card header{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .check-status-pill{
    min-width:0;
    width:max-content;
    max-width:100%;
    padding:7px 9px;
    font-size:11px;
  }
  .check-summary-grid{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .check-summary-grid div{
    padding:8px;
    border-radius:9px;
  }
  .check-summary-grid span{
    font-size:10px;
  }
  .check-summary-grid strong{
    font-size:12px;
  }
  .check-list-card footer{
    grid-template-columns:1fr;
  }
}

.compact-filter-shell{
  display:grid;
  gap:8px;
  margin:0 0 14px;
  padding:10px;
  border:1px solid #d6e5ef;
  border-radius:8px;
  background:#f8fbfd;
}
.compact-filter-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto minmax(150px,190px) 44px auto auto;
  gap:8px;
  align-items:end;
}
.compact-search-field,.compact-sort-field,.compact-period-field,.compact-filter-panel label{
  display:grid;
  gap:4px;
  min-width:0;
}
.compact-search-field span,.compact-sort-field span,.compact-period-field span,.compact-filter-panel label span{
  color:#526d87;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.compact-search-field{position:relative}
.compact-search-field>i{
  position:absolute;
  left:11px;
  bottom:11px;
  width:18px;
  height:18px;
  color:#60758b;
}
.compact-search-field input{padding-left:36px;padding-right:36px}
.compact-search-field [data-list-clear-search]{
  position:absolute;
  right:4px;
  bottom:3px;
  width:34px;
  height:34px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#526d87;
  cursor:pointer;
}
.compact-filter-shell input,.compact-filter-shell select{
  width:100%;
  min-width:0;
  height:42px;
  border:1px solid #cfe0eb;
  border-radius:8px;
  background:#fff;
  color:#17283a;
  padding:8px 10px;
}
.compact-filter-toggle{height:42px;white-space:nowrap}
.compact-filter-panel{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  padding:10px;
  border:1px solid #dbe9f2;
  border-radius:8px;
  background:#fff;
}
.compact-filter-panel[hidden]{display:none}
.compact-filter-panel footer{
  display:flex;
  justify-content:flex-end;
  align-items:end;
}
.filter-chip-row{
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding-bottom:2px;
}
.filter-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
  min-height:30px;
  border:1px solid #cfe0eb;
  border-radius:999px;
  background:#fff;
  color:#07385a;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.filter-chip svg{width:14px;height:14px}
.list-result-count{
  justify-self:end;
  color:#526d87;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.list-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #e1edf5;
  color:#526d87;
  font-size:13px;
  font-weight:800;
}
.list-pagination label{
  display:flex;
  align-items:center;
  gap:6px;
}
.list-pagination select{
  width:64px;
  min-width:64px;
  height:36px;
  padding:0 28px 0 14px;
  border:1px solid #cfe0eb;
  border-radius:8px;
  background:#fff;
  color:#0f2236;
  font-weight:900;
  line-height:36px;
}
.list-pagination>div{
  display:flex;
  align-items:center;
  gap:8px;
}
.report-filter-shell{margin:12px 0}
.report-filter-shell .compact-filter-row{
  grid-template-columns:44px minmax(145px,180px) minmax(145px,180px) 44px minmax(150px,180px) auto auto;
}

@media (max-width:900px){
  .compact-filter-row,.report-filter-shell .compact-filter-row{
    grid-template-columns:minmax(0,1fr) 44px;
    align-items:end;
  }
  .compact-search-field,.compact-period-field:first-of-type{grid-column:1/2}
  .compact-filter-toggle{grid-column:2/3;width:44px;padding:0;font-size:0}
  .compact-filter-toggle svg{margin:0}
  .compact-sort-field,.compact-filter-row>[data-list-order],.compact-filter-row>[data-report-month],.compact-filter-row>[data-report-quick],.compact-filter-row>[data-report-clear],.compact-filter-row>[data-list-clear],.compact-filter-row>.list-result-count,.report-filter-shell .compact-period-field{
    grid-column:1/-1;
  }
  .compact-filter-row .btn:not(.compact-filter-toggle),.compact-filter-row select,.compact-filter-row input{
    min-height:44px;
  }
  .compact-filter-panel{
    grid-template-columns:1fr;
    max-height:72vh;
    overflow:auto;
  }
  .compact-filter-panel footer{
    position:sticky;
    bottom:0;
    padding-top:8px;
    background:#fff;
  }
  .filter-chip-row{
    margin:0 -2px;
  }
  .list-pagination{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .list-pagination>div{
    justify-content:space-between;
  }
}
@media (max-width:390px){
  .check-state-legend>div{
    grid-template-columns:1fr;
  }
  .check-summary-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:560px){
  .check-origin-card{
    gap:6px;
    padding:8px;
    margin-bottom:8px;
    border-radius:8px;
  }
  .check-origin-card header{
    align-items:flex-start;
  }
  .check-origin-card header strong{
    font-size:12px;
  }
  .check-origin-card header span:not(.badge){
    font-size:9px;
  }
  .check-origin-card .badge{
    padding:4px 7px;
    font-size:10px;
  }
  .check-origin-main{
    grid-template-columns:1fr 1fr;
    gap:5px;
  }
  .check-origin-main div{
    padding:6px;
    border-radius:7px;
  }
  .check-origin-main span{
    font-size:9px;
  }
  .check-origin-main strong{
    font-size:10px;
  }
  .check-origin-card p{
    display:none;
  }
}

/* Cabecera final: identidad y acciones legibles en desktop y movil. */
.navbar{
  grid-template-columns:auto minmax(260px,1fr) minmax(360px,auto)!important;
  gap:14px!important;
  align-items:center!important;
}
.navbar>div:nth-child(2){
  min-width:0!important;
}
.user-pill{
  display:grid!important;
  grid-template-columns:minmax(120px,auto) auto!important;
  align-items:center!important;
  gap:12px!important;
  max-width:none!important;
  justify-self:end!important;
}
.user-identity{
  display:grid;
  gap:2px;
  min-width:0;
  max-width:190px;
}
.user-identity span,
.user-identity strong{
  display:block!important;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  line-height:1.15;
}
.user-identity span{
  color:#102033;
  font-size:13px;
  font-weight:800;
}
.user-identity strong{
  color:#0798d0;
  font-size:12px;
  font-weight:950;
}
.navbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}
.navbar-actions .icon-btn{
  flex:0 0 auto;
}
.navbar-actions .logout-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.notification-trace{
  display:inline-flex!important;
  width:max-content;
  max-width:100%;
  margin:3px 0 4px;
  padding:3px 7px;
  border-radius:999px;
  background:#e8f1f7;
  color:#07385a!important;
  font-size:11px!important;
  font-weight:900;
  line-height:1.2;
}
.notification-close{
  display:grid!important;
  place-items:center;
  background:#e0f2fe!important;
  color:#075985!important;
  border:1px solid #bae6fd!important;
}
.notification-close:hover{
  background:#fee2e2!important;
  color:#991b1b!important;
  border-color:#fecaca!important;
}
body.notifications-open .sidebar-backdrop{
  display:none;
  opacity:0;
  pointer-events:none;
}
body.notifications-open .notification-panel{
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  overflow:hidden!important;
  width:min(720px,calc(100vw - 32px))!important;
  max-height:min(640px,calc(100vh - 96px))!important;
  z-index:1200!important;
  pointer-events:auto!important;
  background:#fff!important;
}
body.notifications-open .notification-list{
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
body.notifications-open .notification-panel header{
  grid-template-columns:minmax(160px,1fr) minmax(0,auto)!important;
  align-items:start!important;
  gap:12px!important;
}
body.notifications-open .notification-panel header>div:first-child{
  display:grid;
  gap:2px;
  min-width:0;
}
body.notifications-open .notification-panel header>div:first-child strong,
body.notifications-open .notification-panel header>div:first-child span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.notifications-open .notification-head-actions{
  display:flex!important;
  flex-wrap:wrap;
  gap:8px!important;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
}
body.notifications-open .notification-head-actions .btn{
  min-height:40px;
  padding:8px 12px;
  white-space:nowrap;
  max-width:100%;
}
body.notifications-open .notification-close{
  width:40px!important;
  height:40px!important;
}
body.notifications-open .notification-filters{
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;
}
.notification-item{
  position:relative;
  min-width:0;
}
.notification-main,
.notification-main>div,
.notification-actions{
  min-width:0;
}
.notification-main{
  align-items:start;
}
.notification-item strong,
.notification-item p,
.notification-item small,
.notification-item em{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.notification-item small{
  display:block;
  line-height:1.35;
}
.notification-actions{
  flex-wrap:wrap;
}
.notification-group-label{
  margin:8px 4px 2px;
  color:#526d87;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.notification-head-actions .danger-soft{
  color:#b42318!important;
  background:#fff1f1!important;
}
.firebase-push-button{
  max-width:240px;
}
.firebase-push-button span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width:960px){
  .navbar{
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
  }
  .user-pill{
    grid-column:1/-1!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    width:100%!important;
    justify-self:stretch!important;
    padding:8px!important;
  }
  .user-identity{
    max-width:none;
  }
  .navbar-actions{
    justify-content:flex-end;
  }
}
@media (max-width:560px){
  .navbar{
    padding:8px 10px!important;
    gap:8px!important;
  }
  .navbar-nav-actions{
    gap:6px;
  }
  .navbar-forms-btn{
    min-height:34px;
    padding:7px 9px!important;
    font-size:12px;
  }
  .navbar h1{
    font-size:15px!important;
    line-height:1.05!important;
  }
  .navbar p{
    font-size:10px!important;
    line-height:1.15!important;
  }
  .user-pill{
    gap:8px!important;
    border-radius:12px!important;
  }
  .user-identity span{
    font-size:12px;
  }
  .user-identity strong{
    font-size:11px;
  }
  .navbar-actions{
    gap:6px;
  }
  .firebase-push-button{
    width:38px;
    height:38px;
    min-width:38px;
    min-height:38px;
    padding:0!important;
    justify-content:center;
  }
  .firebase-push-button span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }
  .navbar-actions .icon-btn,
  .navbar-actions .logout-btn{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    justify-content:center!important;
  }
  .logout-btn span{
    display:none!important;
  }
  .notification-panel{
    position:fixed!important;
    top:76px!important;
    left:10px!important;
    right:10px!important;
    bottom:auto!important;
    width:auto!important;
    max-height:calc(100vh - 104px)!important;
    border-radius:14px!important;
    z-index:720!important;
  }
  body.notifications-open .sidebar-backdrop{
    display:block;
    opacity:.22;
    pointer-events:auto;
  }
  body.notifications-open .notification-panel{
    width:auto!important;
    max-height:calc(100vh - 104px)!important;
  }
  .notification-panel header{
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:12px!important;
  }
  .notification-head-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr 38px!important;
    gap:7px!important;
    justify-content:stretch!important;
  }
  .notification-head-actions .btn:nth-child(3){
    grid-column:1/3;
  }
  .notification-head-actions .notification-close{
    grid-column:3;
    grid-row:1;
  }
  .notification-head-actions .btn{
    min-height:36px!important;
    padding:7px 8px!important;
    font-size:11px!important;
  }
  .notification-close{
    width:38px!important;
    height:36px!important;
  }
  .notification-filters{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    padding:10px!important;
  }
  .notification-filters input[name="buscar"],
  .notification-filters input[name="formulario"]{
    grid-column:1/-1!important;
  }
  .notification-filters input,
  .notification-filters select{
    min-height:38px!important;
    height:38px!important;
    padding:8px 9px!important;
    font-size:12px!important;
  }
  .notification-list{
    padding:10px!important;
  }
}

/* Bandeja redistribuida: debe ganar sobre todos los bloques heredados anteriores. */
body.notifications-open .notification-panel{
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr)!important;
  width:min(720px,calc(100vw - 18px))!important;
  max-height:min(680px,calc(100vh - 92px))!important;
  overflow:hidden!important;
}
body.notifications-open .notification-panel header{
  grid-template-columns:minmax(190px,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  padding:14px!important;
}
body.notifications-open .notification-head-actions{
  display:grid!important;
  grid-template-columns:auto auto 42px!important;
  align-items:center!important;
  justify-content:end!important;
  gap:8px!important;
}
body.notifications-open .notification-head-actions .btn{
  min-height:40px!important;
  padding:8px 14px!important;
  font-size:14px!important;
}
body.notifications-open .notification-close{
  width:42px!important;
  height:40px!important;
}
body.notifications-open .notification-filters{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:10px!important;
  padding:12px!important;
}
body.notifications-open .notification-filters input[name="buscar"]{
  grid-column:1/-1!important;
}
body.notifications-open .notification-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
}
body.notifications-open .notification-tabs button{
  width:100%!important;
  height:38px!important;
  padding:0 10px!important;
  font-size:14px!important;
  white-space:nowrap!important;
}
body.notifications-open .notification-list{
  display:grid!important;
  gap:10px!important;
  padding:10px!important;
  min-height:0!important;
  overflow:auto!important;
}
body.notifications-open .notification-item{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"main actions"!important;
  align-items:center!important;
  gap:14px!important;
  padding:12px 14px!important;
  padding-left:14px!important;
  border-radius:10px!important;
  min-width:0!important;
}
body.notifications-open .notification-main{
  grid-area:main!important;
  display:grid!important;
  grid-template-columns:36px minmax(0,1fr)!important;
  align-items:start!important;
  gap:12px!important;
  min-width:0!important;
}
body.notifications-open .notification-main>span{
  width:36px!important;
  height:36px!important;
  border-radius:9px!important;
}
body.notifications-open .notification-main>div{
  min-width:0!important;
}
body.notifications-open .notification-main strong{
  display:block!important;
  max-width:100%!important;
  font-size:15px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.notifications-open .notification-main p{
  display:-webkit-box!important;
  max-width:100%!important;
  margin:4px 0 0!important;
  font-size:14px!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:normal!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
}
body.notifications-open .notification-date{
  display:block!important;
  margin-top:5px!important;
  font-size:11px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.notifications-open .notification-actions{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:76px 82px!important;
  grid-template-areas:"badge badge" "open delete"!important;
  align-items:center!important;
  gap:7px!important;
  min-width:174px!important;
}
body.notifications-open .notification-actions .badge{
  grid-area:badge!important;
  justify-self:end!important;
}
body.notifications-open .notification-open{
  grid-area:open!important;
}
body.notifications-open .notification-delete{
  grid-area:delete!important;
}
body.notifications-open .notification-open,
body.notifications-open .notification-delete{
  width:100%!important;
  min-height:34px!important;
  padding:7px 10px!important;
  border-radius:8px!important;
  font-size:12px!important;
}

@media (max-width:640px){
  body.notifications-open .notification-panel{
    top:78px!important;
    right:6px!important;
    left:6px!important;
    width:auto!important;
    max-height:calc(100vh - 86px)!important;
  }
  body.notifications-open .notification-panel header{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  body.notifications-open .notification-head-actions{
    grid-template-columns:1fr 1fr 38px!important;
    justify-content:stretch!important;
  }
  body.notifications-open .notification-head-actions .btn{
    min-height:36px!important;
    padding:7px 8px!important;
    font-size:12px!important;
  }
  body.notifications-open .notification-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  body.notifications-open .notification-tabs button{
    height:36px!important;
    padding:0 6px!important;
    font-size:12px!important;
  }
  body.notifications-open .notification-item{
    grid-template-columns:1fr!important;
    grid-template-areas:"main" "actions"!important;
    align-items:stretch!important;
    gap:9px!important;
    padding:10px!important;
  }
  body.notifications-open .notification-main{
    grid-template-columns:32px minmax(0,1fr)!important;
    gap:9px!important;
  }
  body.notifications-open .notification-main>span{
    width:32px!important;
    height:32px!important;
  }
  body.notifications-open .notification-main strong{
    font-size:14px!important;
  }
  body.notifications-open .notification-main p{
    font-size:12px!important;
    line-height:1.3!important;
    -webkit-line-clamp:2!important;
  }
  body.notifications-open .notification-actions{
    grid-template-columns:auto 72px 82px!important;
    grid-template-areas:"badge open delete"!important;
    min-width:0!important;
  }
body.notifications-open .notification-actions .badge{
    justify-self:start!important;
  }
}

/* Bandeja de notificaciones: contexto claro por rol, solicitante y formulario. */
body.notifications-open .notification-item{
  grid-template-columns:minmax(0,1fr) minmax(156px,auto)!important;
  align-items:start!important;
  border-radius:14px!important;
  border-color:#cfe2ef!important;
  background:#fbfdff!important;
}
body.notifications-open .notification-item.unread{
  border-color:#0ea5e9!important;
  background:#f0f9ff!important;
  box-shadow:inset 4px 0 0 #0ea5e9!important;
}
body.notifications-open .notification-item.invalid{
  border-color:#f59e0b!important;
  background:#fffaf0!important;
  opacity:1!important;
}
body.notifications-open .notification-item.role-mismatch{
  border-color:#38bdf8!important;
  background:#f0f9ff!important;
  box-shadow:inset 4px 0 0 #38bdf8!important;
}
body.notifications-open .notification-main{
  grid-template-columns:40px minmax(0,1fr)!important;
}
body.notifications-open .notification-main>span{
  width:40px!important;
  height:40px!important;
  border-radius:12px!important;
}
.notification-title-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}
body.notifications-open .notification-title-row strong{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.18!important;
}
.notification-role-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:4px 8px;
  border-radius:999px;
  background:#e7f5ff;
  color:#075985;
  font-size:11px;
  font-weight:950;
  line-height:1;
}
.notification-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:7px 0 3px;
}
.notification-meta-row small{
  display:inline-flex!important;
  align-items:center;
  gap:4px;
  width:max-content;
  max-width:100%;
  padding:3px 7px;
  border:1px solid #d7e7f2;
  border-radius:999px;
  background:#f4f9fc;
  color:#415b75!important;
  font-size:11px!important;
  font-weight:850;
  line-height:1.15!important;
}
.notification-meta-row svg{
  width:12px;
  height:12px;
}
body.notifications-open .notification-main p{
  display:block!important;
  -webkit-line-clamp:unset!important;
  margin-top:6px!important;
  color:#35516c!important;
}
body.notifications-open .notification-date{
  margin-top:7px!important;
  color:#7b8fa1!important;
}
.notification-role-warning{
  display:block!important;
  width:max-content;
  max-width:100%;
  margin-top:7px!important;
  padding:6px 9px;
  border-radius:9px;
  background:#e0f2fe;
  color:#075985!important;
  font-style:normal!important;
  font-weight:900!important;
}
body.notifications-open .notification-actions{
  grid-template-columns:1fr!important;
  grid-template-areas:"badge" "open" "delete"!important;
  min-width:150px!important;
  align-self:stretch!important;
  align-content:center!important;
}
body.notifications-open .notification-actions .badge{
  justify-self:stretch!important;
  text-align:center!important;
}

.role-switch-dialog{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(4px);
}
.role-switch-card{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:14px;
  width:min(560px,100%);
  padding:20px;
  border:1px solid #cfe2ef;
  border-radius:18px;
  background:#fff;
  box-shadow:0 28px 70px rgba(15,23,42,.28);
}
.role-switch-card-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:14px;
  background:#e8f5ff;
  color:#075985;
}
.role-switch-card h3{
  margin:0 0 6px;
  color:#07385a;
  font-size:22px;
  line-height:1.15;
}
.role-switch-card p{
  margin:0;
  color:#526d87;
  line-height:1.4;
}
.role-switch-context{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}
.role-switch-context span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 9px;
  border-radius:999px;
  background:#f2f8fc;
  color:#07385a;
  font-size:12px;
  font-weight:850;
}
.role-switch-context svg{
  width:14px;
  height:14px;
}
.role-switch-card footer{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:4px;
}
@media (max-width:640px){
  body.notifications-open .notification-item{
    grid-template-columns:1fr!important;
  }
  body.notifications-open .notification-actions{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:"badge badge" "open delete"!important;
    min-width:0!important;
  }
  .notification-title-row{
    align-items:flex-start;
  }
  .notification-role-chip{
    font-size:10px;
  }
  .role-switch-card{
    grid-template-columns:1fr;
    padding:16px;
  }
  .role-switch-card footer .btn{
    width:100%;
    justify-content:center;
  }
}

/* Overrides finales de distribucion visual: salida y analisis de riesgo. */
.doc-page .departure-section .departure-summary{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:10px!important;
  width:100%!important;
}
.doc-page .departure-section .departure-summary article{
  min-width:0!important;
  overflow:hidden!important;
}
.doc-page .departure-section .departure-summary span,
.doc-page .departure-section .departure-summary strong{
  writing-mode:horizontal-tb!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  white-space:normal!important;
  line-height:1.25!important;
}
.doc-page .departure-section .doc-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
}
.doc-page .risk-row,
.doc-page.approver-readonly .risk-row,
.approver-readonly .risk-row{
  display:grid!important;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr) 62px!important;
  align-items:stretch!important;
  min-width:0!important;
}
.doc-page .risk-options,
.doc-page.approver-readonly .risk-options,
.approver-readonly .risk-options{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;
  gap:10px!important;
  min-width:0!important;
}
.doc-page .risk-options label,
.doc-page.approver-readonly .risk-options label,
.approver-readonly .risk-options label,
.doc-page .risk-options label:has(input:checked),
.doc-page.approver-readonly .risk-options label:has(input:checked),
.approver-readonly .risk-options label:has(input:checked){
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
}
.doc-page .risk-options label span,
.doc-page.approver-readonly .risk-options label span,
.approver-readonly .risk-options label span{
  min-width:0!important;
  flex:1 1 auto!important;
}
.doc-page .risk-options b,
.doc-page.approver-readonly .risk-options b,
.approver-readonly .risk-options b{
  flex:0 0 auto!important;
  margin-left:8px!important;
}
@media (max-width:900px){
  .doc-page .risk-row,
  .doc-page.approver-readonly .risk-row,
  .approver-readonly .risk-row{
    grid-template-columns:1fr!important;
  }
  .doc-page .risk-options,
  .doc-page.approver-readonly .risk-options,
  .approver-readonly .risk-options{
    grid-template-columns:1fr!important;
  }
}

/* Override final: cabecera estable y check del formulario en modo consulta. */
.navbar{
  display:grid!important;
  grid-template-columns:auto minmax(280px,1fr) minmax(520px,max-content)!important;
  gap:12px!important;
  align-items:center!important;
  min-height:72px!important;
  height:auto!important;
  padding:8px 28px!important;
}
.navbar-nav-actions{
  min-width:0!important;
}
.navbar .user-pill{
  display:grid!important;
  grid-template-columns:minmax(180px,240px) max-content!important;
  align-items:center!important;
  justify-self:end!important;
  width:auto!important;
  max-width:min(620px,52vw)!important;
  padding:8px 10px!important;
  gap:10px!important;
}
.navbar .user-identity{
  max-width:none!important;
  min-width:0!important;
}
.role-switcher{
  position:relative!important;
  min-width:0!important;
}
.role-switch-button{
  width:100%!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  cursor:pointer!important;
  text-align:left!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px!important;
  gap:4px 8px!important;
  align-items:center!important;
}
.role-switch-button.single-role{
  cursor:default!important;
}
.role-switch-button span,
.role-switch-button strong{
  grid-column:1!important;
}
.role-switch-button svg{
  grid-column:2!important;
  grid-row:1/3!important;
  width:16px!important;
  height:16px!important;
  color:#53708c!important;
}
.role-switch-menu{
  position:absolute!important;
  top:calc(100% + 8px)!important;
  left:0!important;
  z-index:70!important;
  min-width:230px!important;
  padding:8px!important;
  border:1px solid #cfe0ec!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 18px 34px rgba(11,60,93,.18)!important;
}
.role-switch-menu button{
  width:100%!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#06385b!important;
  display:grid!important;
  grid-template-columns:12px minmax(0,1fr) 24px!important;
  align-items:center!important;
  gap:9px!important;
  padding:10px!important;
  text-align:left!important;
  font-weight:800!important;
  cursor:pointer!important;
}
.role-switch-menu .role-switch-text{
  display:block!important;
  min-width:0!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  color:#07385a!important;
  font-size:15px!important;
  font-weight:900!important;
  line-height:1.2!important;
}
.role-switch-menu .role-switch-check{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  margin-left:auto!important;
  color:#0b4a6f!important;
}
.role-switch-menu .role-switch-check svg,
.role-switch-menu .role-switch-check[data-lucide]{
  width:16px!important;
  height:16px!important;
  stroke-width:3!important;
}
.role-switch-menu button:hover,
.role-switch-menu button[aria-selected="true"]{
  background:#eaf5fb!important;
}
.role-dot{
  width:10px!important;
  height:10px!important;
  border-radius:999px!important;
  background:#93a8bb!important;
}
.role-dot.badge-success{background:#16a34a!important}
.role-dot.badge-warning{background:#f97316!important}
.role-dot.badge-info{background:#0284c7!important}
.role-dot.badge-danger{background:#dc2626!important}
.role-dot.badge-neutral{background:#64748b!important}
.navbar .user-identity span,
.navbar .user-identity strong{
  max-width:100%!important;
}
.navbar .navbar-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
}
.navbar .firebase-push-button{
  min-width:210px!important;
  justify-content:center!important;
}
.navbar .logout-btn{
  min-width:92px!important;
  justify-content:center!important;
}
.check-vehicle-readonly-note{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  margin-top:12px;
}
@media (max-width:1180px){
  .navbar{
    grid-template-columns:auto minmax(180px,1fr)!important;
  }
  .navbar .user-pill{
    grid-column:1/-1!important;
    justify-self:stretch!important;
    max-width:none!important;
    width:100%!important;
    grid-template-columns:minmax(160px,1fr) max-content!important;
  }
}
@media (max-width:720px){
  .navbar{
    grid-template-columns:auto minmax(0,1fr)!important;
    padding:10px 12px!important;
  }
  .navbar .user-pill{
    grid-template-columns:1fr!important;
  }
  .navbar .navbar-actions{
    display:grid!important;
    grid-template-columns:1fr 44px 44px 1fr!important;
    width:100%!important;
  }
  .navbar .firebase-push-button,
  .navbar .logout-btn{
    min-width:0!important;
  }
}

/* Ajuste final del encabezado documental: evita solapamiento boton/titulo. */
.navbar:has(.navbar-forms-btn:not([hidden])){
  grid-template-columns:minmax(214px,max-content) minmax(260px,1fr) minmax(520px,max-content)!important;
  column-gap:18px!important;
}
.navbar:has(.navbar-forms-btn:not([hidden])) .navbar-nav-actions{
  display:grid!important;
  grid-template-columns:44px minmax(152px,max-content)!important;
  gap:8px!important;
  min-width:214px!important;
  align-items:center!important;
}
.navbar:has(.navbar-forms-btn:not([hidden])) .navbar-forms-btn{
  min-width:152px!important;
  justify-content:center!important;
}
.navbar:has(.navbar-forms-btn:not([hidden]))>div:nth-child(2){
  min-width:0!important;
  padding-left:0!important;
  overflow:hidden!important;
}
.navbar:has(.navbar-forms-btn:not([hidden])) h1,
.navbar:has(.navbar-forms-btn:not([hidden])) p{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
@media (max-width:1180px){
  .navbar:has(.navbar-forms-btn:not([hidden])){
    grid-template-columns:minmax(214px,max-content) minmax(240px,1fr)!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])) .user-pill{
    grid-column:1/-1!important;
  }
}
@media (max-width:760px){
  .navbar:has(.navbar-forms-btn:not([hidden])){
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden]))>div:nth-child(2){
    display:none!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])) .navbar-nav-actions{
    min-width:0!important;
    grid-template-columns:44px minmax(120px,max-content)!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])) .navbar-forms-btn{
    min-width:120px!important;
  }
}

/* Pulido final solicitado: salida con destaque suave y cabecera compacta. */
.doc-page .departure-section{
  border:1px solid #b8d9ee!important;
  background:linear-gradient(180deg,#f4faff 0%,#ffffff 68%)!important;
  box-shadow:inset 4px 0 0 #68a6dd,0 10px 24px rgba(11,60,93,.06)!important;
}
.doc-page .departure-section legend{
  color:#06385b!important;
}
.doc-page .departure-section .doc-cell{
  background:#fbfdff!important;
}
.doc-page .departure-section .departure-summary article{
  border-color:#bdddf0!important;
  background:#ffffff!important;
  box-shadow:0 6px 14px rgba(11,60,93,.045)!important;
}
.navbar{
  grid-template-columns:auto minmax(230px,1fr) minmax(470px,max-content)!important;
  gap:10px!important;
  padding:7px 18px!important;
}
.navbar .user-pill{
  grid-template-columns:minmax(168px,220px) max-content!important;
  max-width:min(580px,50vw)!important;
  gap:8px!important;
  padding:7px 9px!important;
}
.navbar .firebase-push-button{
  min-width:0!important;
  max-width:190px!important;
  min-height:38px!important;
  padding:8px 10px!important;
  gap:6px!important;
  font-size:13px!important;
  line-height:1!important;
}
.navbar .firebase-push-button span{
  max-width:150px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.navbar .firebase-push-button svg{
  width:15px!important;
  height:15px!important;
}
.navbar .navbar-actions .icon-btn{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
}
.navbar .logout-btn{
  min-width:82px!important;
  min-height:40px!important;
  padding:8px 10px!important;
}
.navbar:has(.navbar-forms-btn:not([hidden])){
  grid-template-columns:minmax(214px,max-content) minmax(230px,1fr) minmax(470px,max-content)!important;
  column-gap:12px!important;
}
@media (max-width:1180px){
  .navbar:has(.navbar-forms-btn:not([hidden])){
    grid-template-columns:minmax(214px,max-content) minmax(220px,1fr)!important;
  }
  .navbar .user-pill{
    max-width:none!important;
  }
}

/* Reasignación de vehículo: indicar lo pendiente con claridad. */
.vehicle-reassign-only .coordination-section{
  border-color:#f4c16d!important;
  box-shadow:inset 4px 0 0 #f59e0b,0 10px 24px rgba(245,158,11,.08)!important;
}
.vehicle-reassign-alert{
  border-color:#f4c16d!important;
  background:#fff8e8!important;
}
.vehicle-reassign-only [name="vehiculo_id"]{
  min-height:48px!important;
  font-weight:900!important;
}
.vehicle-reassign-only .field-missing select,
.vehicle-reassign-only .field-missing input{
  border-color:#f59e0b!important;
  box-shadow:inset 4px 0 0 #f59e0b,0 0 0 2px rgba(245,158,11,.12)!important;
  background:#fffaf0!important;
}
.vehicle-reassign-only .field-complete select,
.vehicle-reassign-only .field-complete input{
  border-color:#22c55e!important;
  box-shadow:inset 4px 0 0 #22c55e,0 0 0 2px rgba(34,197,94,.10)!important;
  background:#fbfffd!important;
}

/* Reasignacion de conductor: mientras siga el conductor que rechazo, debe verse pendiente. */
.driver-reassign-only .coordination-section{
  border-color:#f4c16d!important;
  box-shadow:inset 4px 0 0 #f59e0b,0 10px 24px rgba(245,158,11,.08)!important;
}
.driver-reassign-alert,
.authorization-alert.warning{
  border-color:#f4c16d!important;
  background:#fff8e8!important;
}
.driver-reassign-only [name="conductor_usuario_id"]{
  min-height:48px!important;
  font-weight:900!important;
}
.driver-reassign-only .field-missing select,
.driver-reassign-only .field-missing input{
  border-color:#f59e0b!important;
  box-shadow:inset 4px 0 0 #f59e0b,0 0 0 2px rgba(245,158,11,.12)!important;
  background:#fffaf0!important;
}
.driver-reassign-only .field-complete select,
.driver-reassign-only .field-complete input{
  border-color:#22c55e!important;
  box-shadow:inset 4px 0 0 #22c55e,0 0 0 2px rgba(34,197,94,.10)!important;
  background:#fbfffd!important;
}

/* Corrección QA móvil: el encabezado debe envolver sin solapar usuario/acciones. */
@media (max-width:640px){
  .navbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    min-height:0!important;
    padding:8px 10px!important;
    overflow:visible!important;
  }
  .navbar-nav-actions{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-width:0!important;
    grid-column:1/-1!important;
  }
  .navbar>div:nth-child(2){
    grid-column:1/-1!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  .navbar h1,
  .navbar p{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .navbar .user-pill{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    gap:8px!important;
    padding:6px 8px!important;
  }
  .navbar .user-identity{
    min-width:0!important;
    overflow:hidden!important;
  }
  .navbar .role-switcher{
    min-width:0!important;
  }
  .navbar .role-switch-menu{
    left:0!important;
    right:auto!important;
    min-width:min(240px,72vw)!important;
  }
  .navbar .user-identity span,
  .navbar .user-identity strong{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1.1!important;
  }
  .navbar .navbar-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    min-width:max-content!important;
  }
  .navbar .navbar-actions .icon-btn,
  .navbar .navbar-actions .logout-btn,
  .navbar .firebase-push-button{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    padding:0!important;
  }
  .navbar .firebase-push-button span,
  .navbar .logout-btn span{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
    white-space:nowrap!important;
  }
  .navbar .notification-toggle{
    position:relative!important;
    overflow:visible!important;
  }
  .navbar .notification-toggle #notificationBadge:not([hidden]){
    position:absolute!important;
    top:-8px!important;
    right:-8px!important;
    display:grid!important;
    place-items:center!important;
    min-width:19px!important;
    height:19px!important;
    padding:0 5px!important;
    border:2px solid #fff!important;
    border-radius:999px!important;
    background:#ff6b00!important;
    color:#fff!important;
    font-size:11px!important;
    font-weight:900!important;
    line-height:1!important;
    box-shadow:0 6px 14px rgba(255,107,0,.34)!important;
    z-index:4!important;
    clip:auto!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])){
    grid-template-columns:minmax(0,1fr)!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])) .navbar-nav-actions{
    grid-template-columns:none!important;
  }
  .navbar:has(.navbar-forms-btn:not([hidden])) .navbar-forms-btn{
    min-width:116px!important;
    max-width:145px!important;
    padding:7px 9px!important;
    overflow:hidden!important;
  }
.navbar:has(.navbar-forms-btn:not([hidden])) .navbar-forms-btn span{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

.risk-row.risk-row-danger,
.doc-page .risk-row.risk-row-danger,
.approver-readonly .risk-row.risk-row-danger{
  border-color:#dc2626!important;
  box-shadow:inset 5px 0 0 #dc2626,0 10px 24px rgba(220,38,38,.12)!important;
  background:#fff5f5!important;
}
.risk-row.risk-row-danger .risk-title,
.doc-page .risk-row.risk-row-danger .risk-title,
.approver-readonly .risk-row.risk-row-danger .risk-title{
  background:#fee2e2!important;
  border-color:#fecaca!important;
  color:#7f1d1d!important;
}
.risk-row.risk-row-danger .risk-options,
.doc-page .risk-row.risk-row-danger .risk-options,
.approver-readonly .risk-row.risk-row-danger .risk-options{
  background:#fff7f7!important;
  border-color:#fecaca!important;
}
.risk-row.risk-row-danger .risk-options label:has(input:checked),
.doc-page .risk-row.risk-row-danger .risk-options label:has(input:checked),
.approver-readonly .risk-row.risk-row-danger .risk-options label:has(input:checked){
  border-color:#dc2626!important;
  background:#fee2e2!important;
  color:#7f1d1d!important;
  box-shadow:0 0 0 2px rgba(220,38,38,.14)!important;
}
.risk-row.risk-row-danger .risk-options label:has(input:checked) b,
.doc-page .risk-row.risk-row-danger .risk-options label:has(input:checked) b,
.approver-readonly .risk-row.risk-row-danger .risk-options label:has(input:checked) b,
.risk-row.risk-row-danger .risk-score{
  color:#991b1b!important;
}
.risk-row.risk-row-danger .risk-score,
.doc-page .risk-row.risk-row-danger .risk-score,
.approver-readonly .risk-row.risk-row-danger .risk-score{
  background:#fee2e2!important;
  border-color:#fecaca!important;
}

.movement-row{
  grid-template-columns:minmax(180px,220px) minmax(0,1fr)!important;
  align-items:stretch!important;
}
.movement-fields{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(140px,180px) minmax(140px,180px) minmax(260px,1fr);
  gap:12px;
  align-items:end;
}
.movement-registered-card + .movement-fields{
  grid-column:2;
}
.movement-fields label{
  min-width:0;
}
.movement-fields .movement-activity{
  min-width:0;
}
.movement-fields .movement-activity textarea{
  min-height:56px;
  resize:vertical;
}
.movement-registered-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:14px;
  border:1px solid #bde3ff;
  border-radius:12px;
  background:#eaf6ff;
  color:#07385a;
}
.movement-registered-card i{
  color:#07385a;
  margin-top:2px;
}
.movement-registered-card strong{
  display:block;
  color:#07385a;
  line-height:1.2;
}
.movement-registered-card p{
  margin:5px 0 0;
  overflow-wrap:anywhere;
  color:#37566d;
  font-size:12px;
  line-height:1.35;
}
.internal-movement-request:has(.movement-registered-card) .movement-actions{
  display:none!important;
}
:root[data-theme="dark"] .movement-registered-card{
  border-color:#31516a;
  background:#0f3047;
  color:#dff5ff;
}
:root[data-theme="dark"] .movement-registered-card strong,
:root[data-theme="dark"] .movement-registered-card i{
  color:#dff5ff;
}
:root[data-theme="dark"] .movement-registered-card p{
  color:#a9c2d4;
}
@media (max-width:900px){
  .movement-row{
    grid-template-columns:1fr!important;
  }
  .movement-registered-card + .movement-fields,
  .movement-fields{
    grid-column:1 / -1;
    grid-template-columns:1fr 1fr;
  }
  .movement-fields .movement-activity{
    grid-column:1 / -1;
  }
}
@media (max-width:560px){
  .movement-fields{
    grid-template-columns:1fr;
  }
  .movement-fields .movement-activity{
    grid-column:auto;
  }
}

.user-access-panel{
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid #d7e6f2;
  border-radius:12px;
  background:#f8fbfd;
}
.user-access-panel.field-invalid{
  border-color:#ef4444;
  background:#fff7f7;
  box-shadow:0 0 0 3px rgba(239,68,68,.1);
}
.user-access-panel header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.user-access-panel header strong{
  display:block;
  color:#07385a;
  font-size:16px;
}
.user-access-panel header span{
  display:block;
  color:#526d87;
  font-size:12px;
  line-height:1.35;
}
.user-access-panel output{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:5px;
  min-width:150px;
}
.user-role-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.user-role-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  min-height:96px;
  padding:12px;
  border:1px solid #d6e4ef;
  border-radius:12px;
  background:#fff;
  color:#203247;
  cursor:pointer;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.user-role-card:hover{
  border-color:#9cc9e9;
  box-shadow:0 8px 20px rgba(11,60,93,.08);
}
.user-role-card.selected{
  border-color:#1083e8;
  background:#edf8ff;
  box-shadow:inset 4px 0 0 #1083e8;
}
.user-role-card input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:#1083e8;
}
.user-role-card strong{
  display:block;
  color:#07385a;
  line-height:1.2;
}
.user-role-card small{
  display:block;
  margin-top:2px;
  color:#0b5f96;
  font-weight:900;
}
.user-role-card em{
  display:block;
  margin-top:5px;
  color:#526d87;
  font-style:normal;
  font-size:12px;
  line-height:1.35;
}
.user-cargo-field{
  align-self:start;
}
.user-cargo-field.field-warning select{
  border-color:#f59e0b;
  box-shadow:0 0 0 3px rgba(245,158,11,.16);
}
.user-cargo-field.field-warning [data-user-cargo-help]{
  color:#9a5a00;
  font-weight:800;
}
:root[data-theme="dark"] .user-access-panel,
:root[data-theme="dark"] .user-role-card{
  border-color:#31516a;
  background:#10283b;
  color:#dff5ff;
}
:root[data-theme="dark"] .user-role-card.selected{
  border-color:#68a6dd;
  background:#123653;
  box-shadow:inset 4px 0 0 #68a6dd;
}
:root[data-theme="dark"] .user-access-panel header strong,
:root[data-theme="dark"] .user-role-card strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .user-access-panel header span,
:root[data-theme="dark"] .user-role-card em{
  color:#a9c2d4;
}
@media (max-width:760px){
  .user-access-panel header{
    display:grid;
  }
  .user-access-panel output{
    justify-content:flex-start;
  }
  .user-role-grid{
    grid-template-columns:1fr;
  }
}

.account-password-panel{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.account-password-intro{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:14px;
  border:1px solid #d7e6f2;
  border-radius:12px;
  background:#f8fbfd;
}
.account-password-intro>span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:#e8f4ff;
  color:#07385a;
}
.account-password-intro strong{
  display:block;
  color:#07385a;
  font-size:16px;
}
.account-password-intro p{
  margin:4px 0 0;
  color:#526d87;
  line-height:1.4;
}
.sidebar-account-actions{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(216,233,245,.14);
}
.sidebar-account-actions .account-password-btn{
  color:#d8e9f5;
}
.sidebar-account-actions .account-password-btn:hover{
  background:#162238;
  color:#fff;
}
:root[data-theme="dark"] .account-password-intro{
  border-color:#31516a;
  background:#10283b;
}
:root[data-theme="dark"] .account-password-intro>span{
  background:#0d2030;
  color:#dff5ff;
}
:root[data-theme="dark"] .account-password-intro strong{
  color:#dff5ff;
}
:root[data-theme="dark"] .account-password-intro p{
  color:#a9c2d4;
}

/* Formulario documental en telefonos pequenos: evita desbordes horizontales. */
@media screen and (max-width:560px){
  #app:has(.doc-page){
    width:100%!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
    padding-left:8px!important;
    padding-right:8px!important;
    box-sizing:border-box!important;
  }
  .doc-page,
  .doc-page.document-editor-mode{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    gap:12px!important;
    box-sizing:border-box!important;
  }
  .doc-page .doc-header,
  .doc-page .doc-two-cols,
  .doc-page .doc-grid,
  .doc-page .signature-cols,
  .doc-page .signature-cols.three,
  .doc-page .departure-section .doc-grid,
  .doc-page .departure-section .departure-summary{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .doc-page .doc-section,
  .doc-page .risk-section,
  .doc-page .doc-cell,
  .doc-page .doc-cell.wide,
  .doc-page .location-cell,
  .doc-page .departure-section,
  .doc-page .departure-section .doc-cell,
  .doc-page .departure-section .departure-summary article{
    grid-column:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .doc-page .doc-cell,
  .doc-page .departure-section .doc-cell,
  .doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    overflow:hidden!important;
  }
  .doc-page .doc-cell>span,
  .doc-page .risk-title,
  .doc-page .departure-section .doc-cell>span{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    border-right:0!important;
    border-bottom:1px solid #d5dde8!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    box-sizing:border-box!important;
  }
  .doc-page .doc-cell input,
  .doc-page .doc-cell select,
  .doc-page .doc-cell textarea,
  .doc-page .location-other-input,
  .doc-page .time-input-shell,
  .doc-page .time-input-shell input,
  .doc-page .check-row,
  .doc-page .risk-options{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .doc-page .doc-cell input,
  .doc-page .doc-cell select,
  .doc-page .doc-cell textarea{
    min-height:44px!important;
    font-size:16px!important;
    line-height:1.25!important;
  }
  .doc-page .doc-cell[hidden],
  .doc-page .doc-cell input[hidden],
  .doc-page .location-other-input[hidden]{
    display:none!important;
  }
  .doc-page .time-input-shell{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 44px!important;
    align-items:stretch!important;
  }
  .doc-page .time-picker-trigger{
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
  }
  .doc-page .check-row,
  .doc-page .risk-options{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
  }
  .doc-page .check-row label,
  .doc-page .risk-options label{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* Selector de rol: en telefonos pequenos el menu debe ser legible y no quedar recortado. */
@media (max-width:640px){
  .navbar,
  .navbar .user-pill,
  .navbar .role-switcher{
    overflow:visible!important;
  }
  .navbar .role-switcher{
    position:relative!important;
    z-index:90!important;
    min-width:118px!important;
  }
  .navbar .role-switch-button{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 18px!important;
    align-items:center!important;
    width:100%!important;
    min-height:34px!important;
    padding:2px 4px!important;
  }
  .navbar .role-switch-button strong,
  .navbar .role-switch-button span{
    display:block!important;
    min-width:0!important;
    color:#07385a!important;
    opacity:1!important;
    visibility:visible!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .navbar .role-switch-button strong{
    font-size:13px!important;
    line-height:1.15!important;
  }
  .navbar .role-switch-button span{
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:900!important;
    color:#0284c7!important;
  }
  .navbar .role-switch-button svg{
    width:15px!important;
    height:15px!important;
  }
  .navbar .role-switch-menu{
    position:absolute!important;
    top:calc(100% + 6px)!important;
    left:0!important;
    right:auto!important;
    z-index:9999!important;
    width:min(265px,calc(100vw - 22px))!important;
    min-width:210px!important;
    max-width:calc(100vw - 22px)!important;
    max-height:min(270px,60vh)!important;
    overflow:auto!important;
    padding:8px!important;
    border:1px solid #cfe0ec!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:0 18px 38px rgba(11,60,93,.24)!important;
  }
  .navbar .role-switch-menu[hidden]{
    display:none!important;
  }
  .navbar .role-switch-menu button{
    display:grid!important;
    grid-template-columns:12px minmax(0,1fr) 24px!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-height:42px!important;
    padding:10px!important;
    color:#07385a!important;
    background:transparent!important;
    border:0!important;
    border-radius:8px!important;
    text-align:left!important;
    font-size:14px!important;
    font-weight:900!important;
    line-height:1.2!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .navbar .role-switch-menu button .role-switch-text{
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    color:#07385a!important;
    font-size:14px!important;
    font-weight:900!important;
    line-height:1.2!important;
  }
  .navbar .role-switch-menu .role-switch-check{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    align-self:center!important;
    justify-self:end!important;
    width:24px!important;
    min-width:24px!important;
    height:24px!important;
    margin-left:auto!important;
    color:#0b4a6f!important;
    opacity:1!important;
  }
  .navbar .role-switch-menu .role-switch-check svg,
  .navbar .role-switch-menu .role-switch-check[data-lucide]{
    width:16px!important;
    height:16px!important;
    stroke-width:3!important;
  }
  .navbar .role-switch-menu button[aria-selected="true"]{
    background:#eaf5fb!important;
  }
}

/* El selector de rol debe quedar por encima del formulario documental y mantener legibilidad. */
.navbar{
  z-index:950!important;
  overflow:visible!important;
  isolation:isolate!important;
}
.navbar > div:nth-child(2){
  min-width:0!important;
  flex:1 1 auto!important;
}
.navbar > .user-pill{
  position:relative!important;
  z-index:960!important;
  flex:0 0 auto!important;
  overflow:visible!important;
}
.navbar .role-switcher{
  position:relative!important;
  z-index:970!important;
  min-width:180px!important;
}
.navbar .role-switch-button{
  border:1px solid transparent!important;
  border-radius:9px!important;
  outline:0!important;
  padding:2px 4px!important;
}
.navbar .role-switch-button:focus,
.navbar .role-switch-button:focus-visible{
  border-color:#9cccea!important;
  box-shadow:0 0 0 3px rgba(16,131,232,.16)!important;
}
.navbar .role-switch-menu{
  z-index:980!important;
  min-width:240px!important;
  max-width:min(300px,calc(100vw - 24px))!important;
}
#app:has(.doc-page) .risk-sticky,
#app:has(.doc-page) .workflow-actions,
#app:has(.doc-page) .workflow-board{
  z-index:10!important;
}

/* Menu movil: debe cubrir el encabezado completo al abrirse. */
@media (max-width:980px){
  .navbar{
    z-index:950!important;
  }
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    z-index:1400!important;
    width:min(280px,82vw)!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:auto!important;
    transform:translateX(-105%)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    box-shadow:18px 0 46px rgba(5,18,31,.34)!important;
  }
  .sidebar.open{
    transform:translateX(0)!important;
  }
  .sidebar-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:1390!important;
    background:rgba(5,18,31,.48)!important;
    backdrop-filter:blur(2px)!important;
  }
  .sidebar.open + .sidebar-backdrop{
    display:block!important;
  }
}

/* Correccion de contraste en listados con modo oscuro. */
:root[data-theme="dark"] .forms-manager.pattern-section,
:root[data-theme="dark"] .closed-forms-page.pattern-section,
:root[data-theme="dark"] .check-page.pattern-section{
  background-color:#071525;
}
:root[data-theme="dark"] .compact-filter-shell{
  border-color:#31516a;
  background:rgba(13,32,48,.96);
  box-shadow:0 14px 32px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .compact-filter-row{
  color:#dff5ff;
}
:root[data-theme="dark"] .compact-search-field span,
:root[data-theme="dark"] .compact-sort-field span,
:root[data-theme="dark"] .compact-period-field span,
:root[data-theme="dark"] .compact-filter-panel label span{
  color:#cbe9f8;
}
:root[data-theme="dark"] .compact-search-field>i{
  color:#8fc9e8;
}
:root[data-theme="dark"] .compact-filter-shell input,
:root[data-theme="dark"] .compact-filter-shell select{
  border-color:#45677f;
  background:#071d2e;
  color:#f0fbff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
:root[data-theme="dark"] .compact-filter-shell input::placeholder{
  color:#91a9bb;
  opacity:1;
}
:root[data-theme="dark"] .compact-filter-shell input:focus,
:root[data-theme="dark"] .compact-filter-shell select:focus{
  border-color:#7bc7ef;
  box-shadow:0 0 0 3px rgba(16,131,232,.24);
}
:root[data-theme="dark"] .compact-filter-shell select option{
  background:#071d2e;
  color:#f0fbff;
}
:root[data-theme="dark"] .compact-filter-toggle,
:root[data-theme="dark"] .compact-filter-row>[data-list-order]{
  border-color:#45677f!important;
  background:#0b314a!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] .compact-filter-toggle:hover,
:root[data-theme="dark"] .compact-filter-row>[data-list-order]:hover{
  border-color:#7bc7ef!important;
  background:#0d4264!important;
}
:root[data-theme="dark"] .compact-filter-panel{
  border-color:#31516a;
  background:#0b2234;
}
:root[data-theme="dark"] .list-result-count{
  color:#dff5ff;
}
:root[data-theme="dark"] .forms-subsection-head{
  border-color:#31516a;
  background:linear-gradient(135deg,rgba(16,40,59,.98),rgba(11,31,47,.98));
  color:#eaf8ff;
  box-shadow:0 16px 34px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .forms-subsection-head h3{
  color:#f0fbff;
}
:root[data-theme="dark"] .forms-subsection-head p{
  color:#b9d2e4;
}
:root[data-theme="dark"] .forms-subsection-head .badge,
:root[data-theme="dark"] .forms-subsection-head [class*="badge"]{
  border-color:#bfe9fa;
  background:#eaf6fb;
  color:#083a59;
}

/* Correccion de contraste en reportes y formulario documental con modo oscuro. */
:root[data-theme="dark"] .reports-page .filter-chip-row{
  background:transparent;
}
:root[data-theme="dark"] .reports-page .filter-chip,
:root[data-theme="dark"] .filter-chip{
  border-color:#8fc9e8;
  background:#eaf6fb;
  color:#07385a;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
:root[data-theme="dark"] .filter-chip i,
:root[data-theme="dark"] .filter-chip svg{
  color:#0b4a6f;
  stroke:#0b4a6f;
}
:root[data-theme="dark"] .reports-screen-toolbar,
:root[data-theme="dark"] .reports-simple-actions,
:root[data-theme="dark"] .doc-actions{
  border-color:#31516a;
  background:rgba(13,32,48,.96);
  color:#eaf8ff;
  box-shadow:0 16px 34px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .reports-screen-toolbar strong,
:root[data-theme="dark"] .reports-screen-toolbar span{
  color:#eaf8ff;
}
:root[data-theme="dark"] .reports-screen-toolbar .btn.ghost,
:root[data-theme="dark"] .reports-simple-actions .btn.ghost,
:root[data-theme="dark"] .doc-actions .btn.ghost{
  border-color:#45677f;
  background:#12324a;
  color:#f0fbff;
}
:root[data-theme="dark"] .reports-screen-toolbar .btn.ghost:hover,
:root[data-theme="dark"] .reports-simple-actions .btn.ghost:hover,
:root[data-theme="dark"] .doc-actions .btn.ghost:hover{
  border-color:#7bc7ef;
  background:#0d4264;
}
:root[data-theme="dark"] .report-empty-smart{
  border-color:#31516a;
  background:linear-gradient(135deg,rgba(16,40,59,.98),rgba(11,31,47,.98));
  color:#eaf8ff;
  box-shadow:0 16px 34px rgba(0,0,0,.22);
}
:root[data-theme="dark"] .report-empty-smart>span{
  background:#eaf6fb;
  color:#0b4a6f;
}
:root[data-theme="dark"] .report-empty-smart strong{
  color:#f0fbff;
}
:root[data-theme="dark"] .report-empty-smart p{
  color:#b9d2e4;
}
:root[data-theme="dark"] .report-empty-smart .btn.ghost{
  border-color:#45677f;
  background:#12324a;
  color:#f0fbff;
}
:root[data-theme="dark"] .workflow-board{
  border-color:#31516a;
  background:linear-gradient(135deg,rgba(16,40,59,.98),rgba(10,28,43,.98));
  color:#eaf8ff;
  box-shadow:0 18px 38px rgba(0,0,0,.24);
}
:root[data-theme="dark"] .workflow-head strong,
:root[data-theme="dark"] .workflow-board h3{
  color:#f0fbff;
}
:root[data-theme="dark"] .workflow-head span,
:root[data-theme="dark"] .workflow-board>p{
  color:#cbe9f8;
}
:root[data-theme="dark"] .workflow-actions{
  border:1px solid #31516a;
  background:rgba(7,21,37,.94);
  box-shadow:0 14px 30px rgba(0,0,0,.28);
}
:root[data-theme="dark"] .workflow-step{
  border-color:#45677f;
  background:#12324a;
  color:#eaf8ff;
}
:root[data-theme="dark"] .workflow-step span{
  background:#eaf6fb;
  color:#07385a;
}
:root[data-theme="dark"] .workflow-step.active{
  border-color:#1CA3D9;
  background:#0f7faf;
  color:#fff;
}
:root[data-theme="dark"] .workflow-step.active span{
  background:#fff;
  color:#0b4a6f;
}
:root[data-theme="dark"] .responsibility-section{
  border-color:#38bdf8!important;
  background:linear-gradient(135deg,rgba(13,32,48,.98),rgba(9,26,40,.98))!important;
  color:#eaf8ff!important;
}
:root[data-theme="dark"] .responsibility-section legend{
  color:#f0fbff;
}
:root[data-theme="dark"] .responsibility-note,
:root[data-theme="dark"] .responsibility-card{
  border-color:#31516a!important;
  background:#10283b!important;
  color:#eaf8ff!important;
  box-shadow:0 14px 30px rgba(0,0,0,.24)!important;
}
:root[data-theme="dark"] .responsibility-card{
  border-left-color:#f59e0b!important;
}
:root[data-theme="dark"] .responsibility-card.is-confirmed{
  border-left-color:#16a34a!important;
  background:linear-gradient(180deg,#10283b,#0b2f35)!important;
}
:root[data-theme="dark"] .responsibility-note strong,
:root[data-theme="dark"] .responsibility-card-head strong,
:root[data-theme="dark"] .responsibility-fields label span{
  color:#f0fbff!important;
}
:root[data-theme="dark"] .responsibility-note span,
:root[data-theme="dark"] .responsibility-card-head small,
:root[data-theme="dark"] .responsibility-card p{
  color:#b9d2e4!important;
}
:root[data-theme="dark"] .responsibility-icon{
  background:#eaf6fb;
  color:#07385a;
}
:root[data-theme="dark"] .responsibility-card.is-confirmed .responsibility-icon{
  background:#dcfce7;
  color:#15803d;
}
:root[data-theme="dark"] .responsibility-fields input{
  border-color:#f59e0b!important;
  background:#071d2e!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] .responsibility-fields input[readonly],
:root[data-theme="dark"] .responsibility-fields input[data-system-filled="true"]{
  border-color:#45677f!important;
  background:#0b2234!important;
  color:#d7edf8!important;
}
:root[data-theme="dark"] .responsibility-fields input::placeholder{
  color:#91a9bb;
}
:root[data-theme="dark"] .responsibility-confirm-toggle{
  border-color:#7bc7ef;
  background:#eaf6fb;
  color:#07385a;
}
:root[data-theme="dark"] .responsibility-confirm-toggle.active{
  border-color:#86d29f;
  background:#dcfce7;
  color:#15803d;
}
:root[data-theme="dark"] .responsibility-card.field-missing,
:root[data-theme="dark"] .responsibility-card.invalid{
  border-color:#f59e0b!important;
  border-left-color:#f59e0b!important;
  background:#1f2630!important;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.3),0 14px 30px rgba(0,0,0,.24)!important;
}

.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell.conditional-other-cell:not(.conditional-visible),
.doc-page.document-editor-mode>[data-doc-panel]:not([data-doc-panel="documento"]) .doc-cell.conditional-other-cell[hidden],
.doc-page .doc-cell.conditional-other-cell:not(.conditional-visible),
.doc-page .doc-cell.conditional-other-cell[hidden]{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}

.doc-page .doc-cell.conditional-other-cell.conditional-visible{
  display:grid!important;
  grid-column:1/-1!important;
  width:100%!important;
  max-width:100%!important;
}

.doc-page .doc-cell.conditional-other-cell.conditional-visible input{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

@media (max-width:760px){
  .doc-page .doc-cell.conditional-other-cell.conditional-visible{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* La bandeja de notificaciones no debe activar la capa del menu lateral.
   En telefonos esa capa quedaba sobre la bandeja y bloqueaba tabs, botones y tarjetas. */
body.notifications-open .sidebar-backdrop{
  display:none!important;
  opacity:0!important;
  pointer-events:none!important;
  visibility:hidden!important;
}

/* Modo oscuro: contraste completo en bandeja de notificaciones. */
:root[data-theme="dark"] body.notifications-open .notification-panel,
:root[data-theme="dark"] .notification-panel{
  border-color:#31516a!important;
  background:#0b2234!important;
  color:#eaf8ff!important;
  box-shadow:0 28px 80px rgba(0,0,0,.5)!important;
}
:root[data-theme="dark"] body.notifications-open .notification-panel header,
:root[data-theme="dark"] .notification-panel header{
  border-bottom-color:#31516a!important;
  background:#10283b!important;
}
:root[data-theme="dark"] body.notifications-open .notification-panel header strong,
:root[data-theme="dark"] .notification-panel header strong{
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-panel header span,
:root[data-theme="dark"] .notification-panel header span{
  color:#b9d2e4!important;
}
:root[data-theme="dark"] body.notifications-open .notification-head-actions .btn,
:root[data-theme="dark"] .notification-head-actions .btn{
  border-color:#31516a!important;
  background:#12324a!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-head-actions .btn:disabled,
:root[data-theme="dark"] .notification-head-actions .btn:disabled{
  opacity:.52!important;
  color:#9db1c2!important;
}
:root[data-theme="dark"] body.notifications-open .notification-head-actions .danger-soft,
:root[data-theme="dark"] .notification-head-actions .danger-soft{
  border-color:#31516a!important;
  background:#12324a!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-close,
:root[data-theme="dark"] .notification-close{
  border-color:#7bc7ef!important;
  background:#dff5ff!important;
  color:#07385a!important;
}
:root[data-theme="dark"] body.notifications-open .notification-filters,
:root[data-theme="dark"] .notification-filters{
  border-bottom-color:#31516a!important;
  background:#0b2234!important;
}
:root[data-theme="dark"] body.notifications-open .notification-filters input,
:root[data-theme="dark"] body.notifications-open .notification-filters select,
:root[data-theme="dark"] .notification-filters input,
:root[data-theme="dark"] .notification-filters select{
  border-color:#45677f!important;
  background:#071d2e!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-filters input::placeholder,
:root[data-theme="dark"] .notification-filters input::placeholder{
  color:#91a9bb!important;
  opacity:1!important;
}
:root[data-theme="dark"] body.notifications-open .notification-tabs button,
:root[data-theme="dark"] .notification-tabs button{
  border-color:#45677f!important;
  background:#12324a!important;
  color:#dff5ff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-tabs button.active,
:root[data-theme="dark"] .notification-tabs button.active{
  border-color:#38bdf8!important;
  background:#0f7faf!important;
  color:#fff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-list,
:root[data-theme="dark"] .notification-list{
  background:#071d2e!important;
}
:root[data-theme="dark"] body.notifications-open .notification-group-label,
:root[data-theme="dark"] .notification-group-label{
  color:#cbe9f8!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item,
:root[data-theme="dark"] .notification-item{
  border-color:#31516a!important;
  background:#10283b!important;
  color:#eaf8ff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item.unread,
:root[data-theme="dark"] .notification-item.unread{
  border-color:#38bdf8!important;
  background:#0f2b42!important;
  box-shadow:inset 4px 0 0 #38bdf8,0 12px 26px rgba(0,0,0,.22)!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item.invalid,
:root[data-theme="dark"] .notification-item.invalid{
  opacity:1!important;
}
:root[data-theme="dark"] body.notifications-open .notification-main,
:root[data-theme="dark"] .notification-main{
  color:#eaf8ff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-main>span,
:root[data-theme="dark"] .notification-main>span{
  background:#dff5ff!important;
  color:#075985!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item.tone-warning .notification-main>span,
:root[data-theme="dark"] .notification-item.tone-warning .notification-main>span{
  background:#fff2cc!important;
  color:#a15c00!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item.tone-success .notification-main>span,
:root[data-theme="dark"] .notification-item.tone-success .notification-main>span{
  background:#dcfce7!important;
  color:#15803d!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item.tone-danger .notification-main>span,
:root[data-theme="dark"] .notification-item.tone-danger .notification-main>span{
  background:#ffe1e5!important;
  color:#c9273c!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item strong,
:root[data-theme="dark"] body.notifications-open .notification-main strong,
:root[data-theme="dark"] body.notifications-open .notification-title-row strong,
:root[data-theme="dark"] .notification-item strong,
:root[data-theme="dark"] .notification-main strong,
:root[data-theme="dark"] .notification-title-row strong{
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item p,
:root[data-theme="dark"] body.notifications-open .notification-main p,
:root[data-theme="dark"] .notification-item p,
:root[data-theme="dark"] .notification-main p{
  color:#cbe9f8!important;
}
:root[data-theme="dark"] body.notifications-open .notification-item small,
:root[data-theme="dark"] body.notifications-open .notification-date,
:root[data-theme="dark"] .notification-item small,
:root[data-theme="dark"] .notification-date{
  color:#9db1c2!important;
}
:root[data-theme="dark"] body.notifications-open .notification-trace,
:root[data-theme="dark"] .notification-trace,
:root[data-theme="dark"] body.notifications-open .notification-role-chip,
:root[data-theme="dark"] .notification-role-chip,
:root[data-theme="dark"] body.notifications-open .notification-meta-row small,
:root[data-theme="dark"] .notification-meta-row small{
  border-color:#8fc9e8!important;
  background:#dff5ff!important;
  color:#07385a!important;
}
:root[data-theme="dark"] body.notifications-open .notification-actions .badge,
:root[data-theme="dark"] .notification-actions .badge{
  background:#dff5ff!important;
  color:#07385a!important;
}
:root[data-theme="dark"] body.notifications-open .notification-delete,
:root[data-theme="dark"] .notification-delete{
  border-color:#45677f!important;
  background:#17344a!important;
  color:#f0fbff!important;
}
:root[data-theme="dark"] body.notifications-open .notification-role-warning,
:root[data-theme="dark"] .notification-role-warning{
  background:#3a2a0f!important;
  color:#ffe8a6!important;
}

/* Información del viaje: tres filas de dos campos y asterisco solo en la etiqueta. */
.doc-page .departure-section .doc-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.doc-page .doc-cell.required-cell span::after{
  content:none;
}
.doc-page .doc-cell.required-cell>span:first-child::after{
  content:" *";
  color:#ff5353;
}
.doc-page .responsibility-card.required-cell span::after{
  content:none;
}
@media (max-width:760px){
  .doc-page .departure-section .doc-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Reportes: jerarquía clara para filtros y tablas legibles en uso operativo. */
.reports-page{overflow:visible}
.report-filter-shell{
  gap:12px;
  padding:14px;
  border-radius:14px;
  border-color:#c9dfed;
  background:linear-gradient(135deg,#fafdff,#f1f8fc);
  box-shadow:0 8px 22px rgba(11,60,93,.06);
}
.report-filter-shell .compact-filter-row{
  grid-template-columns:42px minmax(156px,1fr) minmax(156px,1fr) 42px minmax(158px,190px) max-content max-content;
  gap:10px;
  align-items:end;
}
.report-filter-shell .compact-period-field span{letter-spacing:.03em}
.report-filter-shell [data-report-month]{height:42px;align-self:end}
.report-filter-shell [data-report-quick]{font-weight:800}
.report-filter-shell .compact-filter-toggle,
.report-filter-shell [data-report-clear]{min-height:42px}
.report-filter-shell .compact-filter-panel{
  padding:14px;
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.report-filter-shell .compact-filter-panel footer{grid-column:1/-1}
.report-filter-shell .compact-filter-panel footer .btn{min-height:42px}

/* A data table is never squeezed into a dashboard column. It scrolls
   horizontally in a visible container while preserving readable columns. */
.reports-page .report-tables-grid{grid-template-columns:minmax(0,1fr)}
.reports-page .report-tables-grid .report-card{grid-column:1/-1}
.reports-page .report-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:hidden;
  border:1px solid #d7e4ee;
  border-radius:10px;
  background:#fff;
  scrollbar-color:#8ba9bd #edf4f8;
  scrollbar-width:thin;
}
.reports-page .report-table{
  width:max-content;
  min-width:980px;
  max-width:none;
  table-layout:auto;
}
.reports-page .report-table th{
  position:sticky;
  top:0;
  z-index:1;
  min-width:112px;
  padding:11px 12px;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.25;
}
.reports-page .report-table td{
  min-width:112px;
  padding:11px 12px;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  line-height:1.4;
  vertical-align:top;
}
.reports-page .report-table th:first-child,
.reports-page .report-table td:first-child{min-width:86px;white-space:nowrap}

.report-table-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 2px 2px;
  color:#526d87;
  font-size:13px;
  font-weight:800;
}
.report-table-pagination>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.report-table-pagination button{
  display:grid;
  place-items:center;
  min-width:36px;
  height:36px;
  padding:0 8px;
  border:1px solid #c9dce9;
  border-radius:8px;
  background:#fff;
  color:#0b3c5d;
  font-weight:900;
  cursor:pointer;
}
.report-table-pagination button:hover:not(:disabled){border-color:#0b74ad;background:#eef8fd}
.report-table-pagination button.active{border-color:#0b74ad;background:#0b74ad;color:#fff}
.report-table-pagination button:disabled{opacity:.45;cursor:not-allowed}

@media (max-width:1180px){
  .report-filter-shell .compact-filter-row{
    grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 42px;
  }
  .report-filter-shell [data-report-quick],
  .report-filter-shell .compact-filter-toggle,
  .report-filter-shell [data-report-clear]{grid-column:span 1}
}
@media (max-width:760px){
  .report-filter-shell{padding:12px}
  .report-filter-shell .compact-filter-row{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) 42px}
  .report-filter-shell [data-report-quick],
  .report-filter-shell .compact-filter-toggle,
  .report-filter-shell [data-report-clear]{grid-column:1/-1;width:100%}
  .reports-page .report-tables-grid .report-card{padding:14px}
  .reports-page .report-table-wrap{border:0;background:transparent}
  .report-table-pagination{align-items:flex-start;flex-direction:column}
}
