:root{--navy:#071c31;--navy2:#0d3456;--blue:#145b8c;--gold:#caa75e;--bg:#eef3f7;--white:#fff;--text:#172433;--muted:#657789;--line:#d7e0e8;--green:#147a4f;--red:#b3261e;--amber:#a66508;--shadow:0 16px 42px rgba(5,28,49,.10);--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;align-items:center;background:radial-gradient(circle at 50% 0,#174c73 0,#0b2944 35%,#061827 100%);color:white;padding:28px}.login-brand{display:flex;align-items:center;justify-content:center;gap:42px;text-align:center}.login-title .kicker{font-size:12px;letter-spacing:2.4px;color:#d9e8f4;font-weight:800}.login-title h1{font-size:34px;letter-spacing:1.5px;margin:8px 0 4px}.login-title p{margin:0;color:#bdd0df}.coin{width:92px;height:92px;perspective:800px;flex:0 0 auto}.coin-face{width:100%;height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#fff 0,#e8edf1 18%,#b9c5ce 42%,#f7f9fa 52%,#8b9aa5 72%,#e7edf1 100%);border:4px solid #d4b66d;box-shadow:inset 0 0 0 3px #6c5626,0 8px 24px #0005;color:#092640;animation:coinSpin 9s linear infinite;transform-style:preserve-3d}.coin-face span{font-weight:900;font-size:26px}.coin-face small{font-weight:800;font-size:10px;letter-spacing:1px}.coin-right .coin-face{animation-delay:-4.5s}@keyframes coinSpin{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}.login-card{width:min(440px,94vw);margin:auto;background:#fff;color:var(--text);padding:34px;border-radius:20px;box-shadow:0 24px 70px #0007;border-top:4px solid var(--gold);text-align:center}.seal-mini{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:-5px auto 14px;background:var(--navy);color:white;border:3px solid var(--gold);font-weight:900}.login-card h2{margin:0 0 6px;color:var(--navy)}.login-card>p{margin:0 0 24px;color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;text-align:left;font-size:12px;font-weight:800;color:#435568}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px 12px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#5791b8;box-shadow:0 0 0 3px #dcecf6}.login-card label{margin-bottom:14px}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;font-size:12px;letter-spacing:.2px;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--navy2);color:#fff}.success{background:var(--green);color:#fff}.secondary{background:#e8eef3;color:var(--navy)}.ghost{background:#ffffff14;color:#fff;border:1px solid #ffffff33}.wide{width:100%;margin-top:6px}.security-note{display:block;margin-top:18px;color:#7b8995}.form-error{margin-top:14px;padding:10px;border-radius:9px;background:#fdecea;color:var(--red);font-size:12px}.credit{text-align:center;font-size:11px;letter-spacing:1px;color:#b8c9d7;padding-top:20px}.topbar{min-height:82px;background:linear-gradient(135deg,#071a2b,#0b3151);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 28px;border-bottom:3px solid var(--gold)}.brand{display:flex;align-items:center;gap:14px}.brand h1{font-size:18px;letter-spacing:.8px;margin:0}.brand p{margin:4px 0 0;font-size:12px;color:#bcd0df}.coin-small{width:54px;height:54px}.coin-small .coin-face{border-width:2px;box-shadow:inset 0 0 0 2px #6c5626,0 5px 12px #0004}.coin-small .coin-face span{font-size:16px}.coin-small .coin-face small{font-size:7px}.userbox{display:flex;align-items:center;gap:16px;text-align:right}.userbox strong,.userbox span{display:block}.userbox strong{font-size:13px}.userbox span{font-size:10px;color:#b9cddd;margin-top:3px}.nav{display:flex;align-items:center;gap:5px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 3px 12px #102c4010}.nav-btn{padding:15px 16px;border:0;background:transparent;color:#52677a;font-weight:800;font-size:12px;border-bottom:3px solid transparent;cursor:pointer}.nav-btn.active{color:var(--navy2);border-bottom-color:var(--gold)}.nav-credit{margin-left:auto;font-size:9px;letter-spacing:.8px;color:#788897;font-weight:800}.container{width:min(1560px,calc(100% - 36px));margin:auto;padding:24px 0 45px}.view{display:none}.view.active{display:block}.hero,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--blue);font-weight:900}.hero h2{margin:6px 0;color:var(--navy);font-size:25px}.hero p{margin:0;color:var(--muted);font-size:13px}.hero-date{text-align:right;border-left:1px solid var(--line);padding-left:25px}.hero-date span,.hero-date small{display:block;color:var(--muted);font-size:10px}.hero-date strong{display:block;color:var(--navy);margin:5px 0;font-size:15px}.panel{padding:22px;margin-bottom:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.panel-title>div:first-child{display:flex;align-items:center;gap:12px}.panel-title h3{margin:0;color:var(--navy);font-size:17px}.panel-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.section-number{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#e8f1f7;color:var(--blue);font-weight:900}.section-number.danger{background:#fdeceb;color:var(--red)}.filters{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.actions{display:flex;gap:8px}.toolbar,.history-filters{display:flex;gap:10px;margin:14px 0}.search{flex:1}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:980px}th{background:#f0f4f7;color:#3d5367;text-align:left;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:11px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}td{padding:9px 11px;border-bottom:1px solid #e8edf1;font-size:12px;vertical-align:middle}tbody tr:hover{background:#f8fbfd}td select,td input{min-width:155px;padding:8px;font-size:11px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.5px;background:#edf1f4;color:#586a79}.badge.preliminar{background:#fff4d8;color:#8a5700}.badge.finalizado{background:#e4f1fb;color:#175d8c}.badge.firmado{background:#e4f5eb;color:#146b45}.badge.nuevo,.badge.neutral{background:#edf1f4;color:#586a79}.badge.warn{background:#fff0dc;color:#965900}.summary{display:flex;gap:9px;flex-wrap:wrap;padding:13px;background:#f5f8fa;border-radius:12px}.summary>div{min-width:110px;padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:9px}.summary span{display:block;font-size:8px;color:var(--muted);font-weight:900}.summary strong{font-size:18px;color:var(--navy)}.summary-alert{border-color:#efb8b3!important;background:#fff7f6!important}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.stats article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stats span{font-size:9px;font-weight:900;color:var(--muted)}.stats strong{display:block;font-size:27px;color:var(--navy);margin-top:5px}.danger-card{border-top:3px solid var(--red)!important}.row-actions{white-space:nowrap}.mini{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:800;margin-right:4px;cursor:pointer}td small{display:block;color:var(--muted);margin-top:3px}.empty{text-align:center;color:var(--muted);padding:28px}.muted{color:#9aa7b2}code{font-size:10px}footer{background:#071a2b;color:#d6e3ec;display:flex;justify-content:space-between;align-items:center;padding:20px 30px;font-size:10px}footer span{display:block;color:#91a7b7;margin-top:3px}.footer-credit{letter-spacing:.6px;text-align:right}.loading{position:fixed;inset:0;background:#071a2bd9;z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#fff}.spinner{width:38px;height:38px;border:4px solid #ffffff35;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;right:20px;top:20px;z-index:1200;max-width:430px;padding:13px 16px;border-radius:10px;background:#173a55;color:#fff;box-shadow:0 12px 32px #0003;font-size:12px;font-weight:700}.toast.error{background:#9f2923}.toast.warn{background:#8b5a0a}.toast.ok{background:#146b45}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px #0005}dialog::backdrop{background:#071a2ba8}.modal{width:min(500px,90vw);padding:26px}.modal h3{margin:0 0 8px;color:var(--navy)}.modal p{color:var(--muted);font-size:12px}.modal label{margin:14px 0}.check{flex-direction:row;align-items:center}.check input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
@media(max-width:850px){.login-brand{gap:15px}.coin{width:68px;height:68px}.login-title h1{font-size:24px}.topbar{padding:10px 14px}.userbox>div{display:none}.nav{padding:0 10px;overflow:auto}.nav-credit{display:none}.container{width:min(100% - 18px,1560px);padding-top:12px}.hero{align-items:flex-start;padding:18px}.hero-date{display:none}.filters{grid-template-columns:1fr}.panel{padding:14px}.panel-title{align-items:flex-start;flex-direction:column}.actions{width:100%;overflow:auto}.stats{grid-template-columns:1fr 1fr}.toolbar,.history-filters{flex-direction:column}footer{flex-direction:column;gap:10px;text-align:center}.footer-credit{text-align:center}}@media(prefers-reduced-motion:reduce){.coin-face{animation:none}}

/* =========================================================
   PARTE DIARIO DMQ v1.3 - CORRECCION CONSOLIDADA
   ========================================================= */

/* LOGIN */
.login-shell{
  min-height:100vh;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:20px 28px 16px;
}
.login-brand{
  align-self:start;
}
.login-card{
  align-self:center;
}

/* EMBLEMAS SUPERIORES - TAMAÑO CONTROLADO */
.coin{
  width:112px !important;
  height:112px !important;
  perspective:1000px;
  flex:0 0 112px;
}
.coin-face{
  width:100% !important;
  height:100% !important;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent !important;
  border:0 !important;
  border-radius:50%;
  box-shadow:none !important;
  transform-style:preserve-3d;
  animation:coinSpinSeguro 10s ease-in-out infinite !important;
  overflow:visible;
}
.coin-right .coin-face{
  animation-delay:-5s !important;
}
.coin-face img{
  width:100% !important;
  height:100% !important;
  max-width:112px !important;
  max-height:112px !important;
  object-fit:contain !important;
  display:block;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
}

/* Nunca muestra el reverso espejado */
@keyframes coinSpinSeguro{
  0%,40%{transform:rotateY(0deg)}
  50%{transform:rotateY(90deg)}
  60%,100%{transform:rotateY(0deg)}
}

/* ESCUDO CENTRAL */
.seal-mini{
  width:64px !important;
  height:64px !important;
  margin:-8px auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:visible;
}
.seal-mini img{
  width:64px !important;
  height:64px !important;
  max-width:64px !important;
  max-height:64px !important;
  object-fit:contain !important;
  display:block;
  filter:drop-shadow(0 5px 7px rgba(7,28,49,.20));
}

/* ESCUDO DE LA BARRA INTERNA */
.coin-small{
  width:58px !important;
  height:58px !important;
  flex-basis:58px !important;
}
.coin-small .coin-face img{
  max-width:58px !important;
  max-height:58px !important;
}

.credit{
  padding-top:10px;
  padding-bottom:2px;
}

@media(max-width:850px){
  .login-shell{padding:16px 14px 12px}
  .coin{
    width:78px !important;
    height:78px !important;
    flex-basis:78px !important;
  }
  .coin-face img{
    max-width:78px !important;
    max-height:78px !important;
  }
  .coin-small{
    width:48px !important;
    height:48px !important;
    flex-basis:48px !important;
  }
  .coin-small .coin-face img{
    max-width:48px !important;
    max-height:48px !important;
  }
  .seal-mini{
    width:56px !important;
    height:56px !important;
  }
  .seal-mini img{
    width:56px !important;
    height:56px !important;
    max-width:56px !important;
    max-height:56px !important;
  }
  .login-brand{gap:18px}
}

@media(prefers-reduced-motion:reduce){
  .coin-face{
    animation:none !important;
    transform:none !important;
  }
}


/* DASHBOARD DMQ v1.8 */
.dashboard-hero{background:linear-gradient(135deg,#fff,#f4f8fb)}.dash-actions{display:flex;gap:8px}.dash-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.dash-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.dash-kpi{border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:14px;background:#fff;padding:17px;text-align:left;box-shadow:var(--shadow);cursor:pointer}.dash-kpi span{display:block;font-size:9px;font-weight:900;color:var(--muted)}.dash-kpi strong{display:block;font-size:27px;color:var(--navy);margin-top:5px}.dash-kpi:hover,.dash-kpi.active{transform:translateY(-1px);border-color:#9db7ca}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dash-bars{display:flex;flex-direction:column;gap:7px;max-height:460px;overflow:auto}.dash-bar{display:grid;grid-template-columns:minmax(145px,1.1fr) 2fr 55px;gap:10px;align-items:center;border:0;background:transparent;padding:5px;cursor:pointer;text-align:left}.dash-bar:hover{background:#f2f6f9;border-radius:8px}.dash-bar-label{font-size:10px;font-weight:800;color:#435568}.dash-bar i{height:12px;background:#e7edf2;border-radius:999px;overflow:hidden}.dash-bar i b{display:block;height:100%;background:linear-gradient(90deg,#0d3456,#2878ad);border-radius:999px}.dash-bar strong{text-align:right;color:var(--navy);font-size:12px}.dash-unit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.dash-unit{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:12px;cursor:pointer;text-align:left}.dash-unit:hover{border-color:#789db8;background:#eef5f9}.dash-unit span{font-size:10px;font-weight:800;color:#435568}.dash-unit strong{font-size:18px;color:var(--navy)}
@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(3,1fr)}.dash-filters{grid-template-columns:1fr 1fr}.dash-unit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:750px){.dash-grid{grid-template-columns:1fr}.dash-kpis{grid-template-columns:1fr 1fr}.dash-filters{grid-template-columns:1fr}.dash-unit-grid{grid-template-columns:1fr}.dashboard-hero{flex-direction:column;gap:15px}.dash-actions{width:100%}.dash-actions .btn{flex:1}}



/* Dashboard v1.9 */
.dash-unit-table{min-width:700px}.dash-unit-row{cursor:pointer}.dash-unit-row:hover{background:#eaf3f9}.dash-unit-row td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}

/* v1.9.1 - control de errores integrado al dashboard */
.danger-panel{border-top:3px solid var(--red)!important}.dash-error-chips{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}.dash-unit-table th:nth-child(n+2),.dash-unit-table td:nth-child(n+2){text-align:right}
