:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#211d3c;background:#f7f7fc;--purple:#6142bd;--ink:#211d3c}*{box-sizing:border-box}body{margin:0}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button,.btn{cursor:pointer;border:0;border-radius:11px;background:var(--purple);padding:11px 16px;color:#fff;font-weight:650}button.secondary,.btn.secondary{background:#f2effb;color:#49339a}button.danger{background:#b93656}button:disabled{opacity:.5;cursor:not-allowed}a.link{color:#563fbc;font-weight:650}.layout{display:flex;min-height:100vh}.sidebar{background:linear-gradient(160deg,#302054,#21173b);color:#f8f7ff;width:252px;flex:none;min-height:100vh;position:sticky;top:0;height:100vh;overflow:auto;z-index:20}.brand{padding:25px 18px;border-bottom:1px solid #fff2;display:flex;gap:11px;align-items:center;font-weight:850}.brand i{display:grid;place-items:center;background:#c92b59;border-radius:12px;width:37px;height:37px}.brand small{display:block;font-size:10px;font-weight:400;color:#bdb0d9;margin-top:3px}.menu{padding:17px 10px}.menu a{display:flex;gap:12px;align-items:center;border-radius:9px;padding:13px 12px;color:#e7def9;font-size:13px;margin:3px 0}.menu a:hover,.menu a.active{background:#ffffff2a;color:#fff}.menu h5{font-size:10px;letter-spacing:2px;color:#ad96e9;margin:27px 10px 10px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{height:66px;background:white;border-bottom:1px solid #e8e5f2;display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:14px}.top .user{display:flex;gap:12px;align-items:center;font-size:12px}.avatar{width:36px;height:36px;object-fit:cover;border-radius:11px;background:#e2dcf8}.body{padding:32px;flex:1;max-width:1600px;width:100%;margin:auto}.eyebrow{letter-spacing:2px;text-transform:uppercase;color:#5f41c4;font-weight:800;font-size:10px}.heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:20px}h1{font-size:29px;letter-spacing:-.9px;margin:12px 0 6px}h2{margin:0 0 17px;font-size:21px}p.muted,.muted{color:#8987a0;font-size:13px}.card{background:white;border:1px solid #e5e3ef;border-radius:14px;padding:21px;box-shadow:0 8px 30px #25205507;margin-bottom:20px}.tablewrap{overflow:auto}.data{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.data th{text-align:left;color:#77728d;background:#f8f7fb;font-size:11px}.data th,.data td{padding:15px 13px;border-bottom:1px solid #eeeaf5}.data td{color:#35304d}.data tr:hover td{background:#fbfaff}.pill{display:inline-block;border-radius:20px;padding:5px 9px;background:#f1ecff;color:#563fb1;font-size:11px;font-weight:750}.pill.urgent{background:#ffe6e9;color:#a52545}.pill.ok{background:#dcf6ed;color:#167b54}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#393354}.field input,.field select,.field textarea,.search input,.search select{width:100%;padding:12px 13px;border:1px solid #dcd8e9;border-radius:9px;background:#f9f9fd;color:#29213e;outline:none}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:#7556cb;box-shadow:0 0 0 3px #754bcb16}.field.wide{grid-column:1/-1}.field textarea{min-height:88px;resize:vertical}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:21px}.search{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.search input{max-width:370px}.search select{width:auto;max-width:340px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpi{background:white;border:1px solid #e5e2f0;border-radius:12px;padding:20px}.kpi b{display:block;font-size:27px;margin-top:7px}.kpi small{font-size:12px;color:#8b879d}.notice{padding:13px 16px;border-radius:10px;margin-bottom:20px;background:#eee9fb;color:#5137aa}.notice.err{background:#fde9ed;color:#a02245}footer{padding:15px 30px;color:#9a94ad;font-size:11px;display:flex;justify-content:space-between;gap:8px}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.loginleft{background:#2a1c4b;color:#fff;position:relative;padding:44px 7%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.loginleft:after{content:'';position:absolute;width:450px;height:450px;background:#6b50a022;border-radius:50%;bottom:-200px;right:-180px}.loginleft h2{font-size:clamp(48px,5vw,88px);line-height:1.02;letter-spacing:-2px;max-width:540px;margin:0}.loginleft p{line-height:1.35;max-width:490px;font-size:clamp(18px,1.55vw,28px);margin:14px 0 0;font-weight:600}.loginright{display:grid;place-items:center;padding:30px;background:linear-gradient(0deg,#ece8f7 0%,#f4f2fb 45%,#fbfbfe 100%)}.loginbox{width:min(400px,100%)}.loginbox h1{margin:21px 0 9px}.loginbox .field{margin-top:17px}.loginbox button{width:100%;margin-top:22px}.portrait{width:100%;max-width:200px;max-height:190px;object-fit:cover;border-radius:12px;margin-top:22px}.logo{max-width:125px;max-height:75px;object-fit:contain}.toggle{display:none;background:#f1edff;color:#322057}.empty{text-align:center;padding:45px;color:#9390a4}.stack{display:grid;gap:13px}.alert{background:#fff7ea;color:#9a6104;padding:12px;border-radius:9px;font-size:12px}@media(max-width:900px){.sidebar{position:fixed;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.toggle{display:block}.top{padding:0 16px}.body{padding:20px 13px}.kpis{grid-template-columns:repeat(2,1fr)}.login{grid-template-columns:1fr}.loginleft{min-height:280px;padding:28px}.loginleft h2{font-size:30px}.loginleft p{font-size:13px}.loginright{padding:50px 22px}.loginleft .portrait{display:none}}@media(max-width:570px){.fields{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:12px}.kpi b{font-size:24px}.body h1{font-size:24px}.card{padding:14px}.heading .btn{width:100%;text-align:center}footer{font-size:10px;padding:14px}.top .user span{display:none}}@media print{.sidebar,.top,.actions,.search,button,footer{display:none!important}.body{padding:0}.card{box-shadow:none}.data{white-space:normal}}
/* Acceso: imagen de portada y control de contraseña */
.loginleft{background-color:#2a1c4b;background-position:center center;background-repeat:no-repeat;background-size:cover;text-shadow:0 1px 8px rgba(25,14,45,.4)}
.loginleft:after{display:none}
.loginleft>div,.loginleft>small{position:relative;z-index:1}
.login-password-field .password-control{position:relative;display:block}
.login-password-field .password-control input{padding-right:52px;width:100%}
.loginbox .password-visibility{position:absolute;top:50%;right:7px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:38px;height:36px;margin:0;padding:0;background:transparent;color:#6f6887;border-radius:8px;box-shadow:none}
.loginbox .password-visibility:hover{background:#eeeafa;color:#4d35a1}
.loginbox .password-visibility:focus-visible{outline:2px solid #7556cb;outline-offset:1px}
.loginbox .password-visibility svg[hidden]{display:none}
@media(max-width:900px){.loginleft{background-position:center 42%}}

/* Login v2 visual update */
.loginleft{background-position:center center;background-repeat:no-repeat;background-size:contain;text-shadow:0 2px 10px rgba(25,14,45,.28)}
.loginleft-copy{position:relative;z-index:1;max-width:540px;margin-bottom:8px}
.loginleft:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,28,75,.30) 0%,rgba(42,28,75,.12) 58%,rgba(42,28,75,.04) 100%);z-index:0;pointer-events:none}
.loginleft>*{position:relative;z-index:1}
.loginleft .eyebrow,.loginleft b,.loginleft small{display:none}
.loginbox{width:min(400px,100%);background:transparent}
@media(max-width:900px){.loginleft{min-height:380px;background-size:cover;background-position:center 20%}.loginleft-copy{margin-bottom:0}.loginleft h2{font-size:42px}.loginleft p{font-size:18px;max-width:320px}.loginright{padding:42px 22px}}


/* Login v3 positioning update */
.loginleft{justify-content:flex-end;align-items:flex-start;background-size:cover !important;background-position:center top !important;padding:34px 26px 34px 26px !important}
.loginleft-copy{max-width:320px !important;margin:0 !important;position:relative;left:0;bottom:0}
.loginleft-copy h2{font-size:clamp(42px,4.5vw,74px) !important;line-height:.98 !important;margin:0 0 10px 0 !important;font-weight:800}
.loginleft-copy p{font-size:clamp(16px,1.45vw,26px) !important;line-height:1.18 !important;font-weight:400 !important;margin:0 !important;max-width:300px !important}
@media(max-width:900px){
  .loginleft{min-height:380px !important;background-size:cover !important;background-position:center top !important;padding:24px 18px 24px 18px !important}
  .loginleft-copy{max-width:260px !important}
  .loginleft-copy h2{font-size:42px !important}
  .loginleft-copy p{font-size:18px !important;max-width:250px !important}
}



/* Login v5 crop and right-side copyright */
.login{position:relative}
.loginleft{background-position:58% 0% !important;}
.loginright{position:relative;min-height:100vh;padding-bottom:56px !important}
.loginbox{display:flex;flex-direction:column}
.login-footer{margin-top:18px;text-align:center;font-size:11px;line-height:1.35;color:#8a86a0;letter-spacing:.1px;padding:0 6px}
@media(min-width:901px){.login-footer{width:min(400px,100%);margin:22px auto 0 auto}}
@media(max-width:900px){.loginright{min-height:auto;padding-bottom:22px !important}.login-footer{font-size:10px;margin-top:16px}}

/* Identidad, audio y copyright - v7 */
.brand{gap:11px}
.brand-logo{width:39px;height:39px;flex:none;object-fit:contain;background:#fff;border-radius:11px;padding:3px}
.site-footer{display:flex;align-items:center;justify-content:center;text-align:center;padding:18px 20px;line-height:1.5}
.site-footer span{width:100%}
.login-footer{text-align:center;width:100%;max-width:400px}
@media(max-width:570px){.site-footer{padding:14px 12px}.brand-logo{width:36px;height:36px}}
