:root{--navy:#103759;--dark:#0c2d49;--blue:#235dc3;--teal:#1b8495;--bg:#f1f5fa;--border:#d9e4f0;--ink:#152c44;--muted:#60758a;--green:#138369;--red:#b42318}
*{box-sizing:border-box}html{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue)}.hidden{display:none!important}
.top-nav{background:#fff;border-bottom:1px solid var(--border)}.nav-inner{max-width:1190px;margin:auto;padding:13px 20px;display:flex;align-items:center;gap:20px;justify-content:space-between;flex-wrap:wrap}.brandmark{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none}.brandmark img{width:49px;height:52px;object-fit:contain}.brandmark strong{display:block;font-size:1.05rem;line-height:1.2}.brandmark small{color:var(--muted);font-size:.77rem}.nav-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pill{padding:7px 13px;border-radius:8px;border:1px solid var(--border);text-decoration:none;font-weight:750;font-size:.83rem;color:var(--navy);background:#fff}.pill:hover,.pill.active{background:#e9f2ff;border-color:#9ab8e0}.pill.primary{color:#fff;background:var(--blue);border-color:var(--blue)}
.content{width:min(1160px,calc(100% - 32px));margin:30px auto 55px}.intro{padding:26px 29px;border-radius:16px;background:linear-gradient(116deg,#102f54,#155281 75%,#187991);color:white;box-shadow:0 10px 27px #16436a24;margin-bottom:22px}.intro h1{font-size:clamp(1.65rem,3.5vw,2.25rem);margin:0 0 4px}.intro p{margin:0;color:#d8e9f7;max-width:780px}
.cardbox{border:1px solid var(--border);background:white;border-radius:14px;padding:23px;box-shadow:0 7px 20px #19324d0c}.cardbox h2{font-size:1.08rem;margin:0 0 14px}.tag{display:inline-flex;white-space:nowrap;font-size:.76rem;font-weight:800;padding:5px 9px;border-radius:99px;letter-spacing:.01em}.tag.BORRADOR{background:#e9eff8;color:#44607f}.tag.EN_VALIDACION{background:#e7edff;color:#2855a0}.tag.EN_AUTORIZACION{background:#fff1d7;color:#946100}.tag.AUTORIZADO{background:#dff7eb;color:#086947}.tag.CANCELADO{background:#ffe4e4;color:#a52d26}.tag.REABIERTO{background:#e8e2ff;color:#5b39a0}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:15px}.toolbar .filters{display:flex;flex:1;flex-wrap:wrap;gap:10px}.toolbar input,.toolbar select{width:min(265px,100%);border:1px solid #c7d6e7;background:#fff;border-radius:9px;padding:11px 12px}.table-wrap{width:100%;overflow-x:auto;border-radius:12px;border:1px solid var(--border)}.data-table{border-collapse:collapse;width:100%;min-width:880px}.data-table th{background:#f3f7fc;color:#3d5673;font-size:.77rem;text-align:left;white-space:nowrap}.data-table th,.data-table td{padding:12px 13px;border-bottom:1px solid #e7edf6;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f9fbff}.data-table td{font-size:.86rem}.data-table strong{color:var(--navy)}.actions-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.action{background:#f5f9fd;border:1px solid #c5d6eb;color:#164b79;font-size:.8rem;font-weight:800;border-radius:8px;padding:8px 10px}.action:hover{background:#e4f1ff}.action.danger{border-color:#f0c3c3;color:#b42318;background:#fff5f5}.action.accept{border-color:#99d8c3;color:#087c58;background:#effbf6}.action.primary{background:#225ac2;color:#fff;border-color:#225ac2}
.muted{color:var(--muted)}.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}.empty-state strong{display:block;font-size:1.04rem;color:var(--ink)}.message{border-radius:9px;padding:12px 14px;margin:12px 0;background:#e9f3ff;border:1px solid #bdd5f2;color:#1f517d}.message.error{background:#fff0f0;border-color:#f1bfc0;color:#9b261d}.message.success{background:#e8f8f0;border-color:#b7dfcc;color:#0d694b}.reason{margin-top:5px;border-left:3px solid #d29c47;background:#fff9ef;padding:10px 12px;color:#744800;white-space:pre-wrap}.modal{border:0;border-radius:16px;padding:0;box-shadow:0 20px 80px #112c465e;width:min(650px,calc(100% - 25px));max-height:90vh;overflow:auto}.modal::backdrop{background:#071c328a}.modal-head{padding:19px 23px;background:#123e67;color:white;display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:1.1rem;margin:0}.modal-head button{background:transparent;border:0;color:#fff;font-size:1.5rem}.modal-body{padding:22px 25px}.modal-body label{display:block;font-weight:750;margin:14px 0 5px}.modal-body input,.modal-body textarea{display:block;width:100%;padding:11px;border:1px solid #bbccdd;border-radius:9px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-grid div{background:#f5f8fc;padding:12px;border-radius:9px}.detail-grid span{display:block;color:var(--muted);font-size:.77rem}.detail-grid strong{overflow-wrap:anywhere}.detail-section{padding:11px 0;border-bottom:1px solid #e3ebf5}.detail-section h3{font-size:.86rem;color:#2a5280;margin:0 0 4px}.detail-section p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.detail-files{margin:9px 0}.small{font-size:.79rem}.stacked-list{display:grid;gap:10px}.info-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.login-stage{min-height:100vh;background:linear-gradient(135deg,#e8f1fb,#f3f6fb 60%,#e6f0f5);display:flex;align-items:center;justify-content:center;padding:26px 14px}.login-shell{max-width:1030px;width:100%;display:grid;grid-template-columns:1fr 420px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 23px 80px #0c30572a}.login-intro{background:linear-gradient(160deg,#082d50,#13527f 72%,#168399);color:white;padding:55px 45px;display:flex;flex-direction:column;justify-content:space-between}.login-intro img{width:110px;background:white;border-radius:20px;padding:10px}.login-intro h1{font-size:clamp(2rem,4.5vw,2.8rem);letter-spacing:-.03em;line-height:1.15;margin:25px 0 10px}.login-intro p{color:#d8e7f1}.login-side{padding:45px 34px}.login-side h2{font-size:1.55rem;margin:0 0 5px}.login-side>p{margin:0 0 27px;color:var(--muted)}.login-side label{display:block;font-size:.87rem;font-weight:800;margin:15px 0 6px}.login-side input{width:100%;border:1px solid #cbd8e8;padding:13px;border-radius:10px}.login-side .login-button{width:100%;background:#215abf;color:#fff;font-weight:850;font-size:1rem;border:0;padding:14px;border-radius:10px;margin-top:20px}.install-box{margin-top:29px;padding:19px;border-radius:12px;background:#f0f6ff;border:1px solid #d3e3f8}.install-box p{font-size:.82rem;color:var(--muted);margin:7px 0 10px}.install-button{border:1px solid #9fbde6;background:white;color:#1757a4;font-weight:800;border-radius:9px;padding:11px 15px;width:100%}
@media(max-width:790px){.login-shell{grid-template-columns:1fr;max-width:500px}.login-intro{padding:28px}.login-intro img{width:70px}.login-intro h1{font-size:1.65rem;margin:12px 0 5px}.login-intro p{font-size:.84rem}.login-side{padding:29px}.nav-inner{padding:11px 13px}.content{margin-top:16px}.intro{padding:20px}.detail-grid{grid-template-columns:1fr}}
@media print{.top-nav,.intro,.content{display:none!important}}

/* ===== UI v3 · Escritorio + móvil. Solo presentación; no modifica documento impreso ===== */
html{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}body{font-size:15px}
.top-nav{position:relative;z-index:20;background:#fff;border-bottom:1px solid #dbe5ee;box-shadow:0 2px 12px rgba(15,45,76,.04)}
.nav-inner{max-width:1220px;margin:0 auto;min-height:76px;padding:11px 20px;display:flex;align-items:center;gap:25px;justify-content:space-between;flex-wrap:nowrap}
.brandmark{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;color:#103759;flex:0 0 auto}
.brandmark img{display:block;width:46px;height:49px;max-width:46px;object-fit:contain;background:none}
.brandmark strong{font-size:1.03rem;display:block;line-height:1.25}.brandmark small{display:block;font-size:.71rem;line-height:1.35;color:#5d738a}
.nav-links{display:flex;align-items:center;gap:7px;flex:1;justify-content:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;text-decoration:none;min-height:40px;padding:9px 14px;border-radius:9px;font-size:.83rem;font-weight:750;line-height:1.25;border:1px solid transparent;color:#244668;background:transparent}
.pill:hover{background:#ecf4fd}.pill.active{background:#eaf2ff;color:#1557a4;border-color:#c7dcf7}
.nav-account{display:flex;align-items:center;gap:12px;justify-content:flex-end;flex:0 0 auto;min-width:0}
.nav-user{color:#4d647e;font-size:.79rem;font-weight:800;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill-logout{border:1px solid #cbd9e7;color:#25435f;background:white;cursor:pointer}
.content{width:min(1160px,calc(100% - 32px));margin:25px auto 55px}
.eyebrow-home{font-size:.72rem;letter-spacing:.12em;font-weight:900;color:#b5eafa;margin-bottom:8px}
.home-intro{padding:34px 35px}.home-intro h1{font-size:clamp(1.75rem,3.2vw,2.45rem)}
.home-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:0 0 22px}
.home-card{display:flex;gap:20px;align-items:flex-start;padding:31px 25px;background:#fff;text-decoration:none;border:1px solid #d7e5f2;border-radius:18px;min-height:209px;box-shadow:0 8px 28px rgba(17,54,88,.065);transition:transform .16s ease,box-shadow .16s ease}
.home-card:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(17,54,88,.13);border-color:#a7c6eb}
.home-icon{display:grid;place-items:center;background:#e6f0ff;color:#155bc2;border-radius:16px;flex:0 0 62px;height:62px;font-size:2rem;font-weight:400}
.home-icon-alt{background:#e6f7f5;color:#147b80}
.home-card-copy{display:flex;flex-direction:column;gap:9px;min-width:0}
.home-card-copy strong{font-size:1.23rem;color:#123759;line-height:1.3}
.home-card-copy>span{font-size:.91rem;color:#61768b}
.home-card-copy em{margin-top:9px;color:#1d61b7;font-size:.88rem;font-style:normal;font-weight:800}
.home-summary{padding:26px 30px}.home-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:19px}
.home-section-title h2{margin:0}.home-section-title p{margin:5px 0 0}.home-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.home-stat{background:#f4f8fd;border:1px solid #e1eaf4;border-radius:12px;padding:17px;text-align:center}
.home-stat strong{display:block;font-size:2rem;color:#124d83;line-height:1.2}.home-stat span{display:block;color:#5b7087;font-weight:650;font-size:.83rem;margin-top:7px}
.home-footnote{text-align:center;color:#718397;font-size:.77rem;margin:28px 0}
.history-main .intro{margin-bottom:20px}.history-panel{padding:24px}.history-panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}
.history-panel-head h2{margin:0 0 3px;font-size:1.15rem}.history-panel-head p{margin:0}
.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:13px;padding:18px;border-radius:12px;background:#f5f8fd;border:1px solid #e1eaf4}
.filter-item{display:flex;flex-direction:column;gap:5px;min-width:0}.filter-item span{font-size:.79rem;color:#35536f;font-weight:800}
.filter-item input,.filter-item select{width:100%;min-height:42px;padding:10px 11px;border:1px solid #c8d7e7;border-radius:9px;background:white;color:#163a5b;font-size:.88rem}
.filter-query{grid-column:auto}.filter-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}
.history-mobile{display:none}.history-record{background:white;border:1px solid #dde8f2;border-radius:13px;padding:16px;box-shadow:0 5px 18px rgba(16,52,85,.05)}
.history-record-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:13px}.history-record-head>strong{font-size:1.05rem;color:#113c63}
.history-record-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:15px}
.history-detail{min-width:0}.history-detail span{display:block;font-size:.72rem;color:#64798c;margin-bottom:4px}.history-detail strong{font-size:.89rem;color:#24405d;font-weight:650;overflow-wrap:anywhere}
.history-record .actions-inline{padding-top:12px;border-top:1px solid #e5edf5}
.history-panel .data-table{min-width:950px}.history-panel .data-table th,.history-panel .data-table td{padding:13px 11px}
@media(max-width:1100px){.nav-inner{gap:12px;flex-wrap:wrap}.brandmark{flex:1}.nav-links{order:3;flex:0 0 100%;justify-content:flex-start}.nav-account{flex:0 0 auto}}
@media(max-width:760px){.nav-inner{padding:10px 14px;gap:8px}.brandmark img{width:39px;height:43px}.brandmark strong{font-size:.9rem}.brandmark small{font-size:.66rem}
 .nav-user{max-width:135px;font-size:.72rem}.pill-logout{min-height:34px;padding:7px 8px;font-size:.76rem}
 .nav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%}.nav-links .pill{padding:8px 7px;font-size:.72rem;white-space:normal;line-height:1.2;text-align:center;min-height:39px}
 .content{width:calc(100% - 24px);margin-top:17px}.intro{padding:24px 20px}.home-intro{padding:25px 20px}
 .home-cards{grid-template-columns:1fr;gap:13px}.home-card{min-height:150px;padding:22px 18px;gap:14px}.home-icon{flex-basis:52px;height:52px;border-radius:13px}.home-card-copy strong{font-size:1.06rem}
 .home-summary{padding:20px 16px}.home-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.home-stat{padding:13px}.home-stat strong{font-size:1.6rem}
 .history-panel{padding:17px 14px}.history-panel-head{align-items:flex-start;flex-direction:column}
 .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px}.filter-query{grid-column:1/-1}
 .history-desktop{display:none}.history-mobile{display:grid;gap:12px}.history-panel .empty-state{padding:25px}
 .history-record-details{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){.nav-account{gap:5px}.nav-user{max-width:90px}.nav-links .pill{font-size:.68rem}
 .filter-grid{grid-template-columns:1fr}.filter-query{grid-column:auto}.history-record-details{grid-template-columns:1fr 1fr}.history-record .actions-inline .action{flex:1;white-space:normal}
 .home-section-title{align-items:flex-start}.home-section-title .pill{padding:7px 8px}}
@media print{.top-nav,.home-main,.history-main{display:none!important}}

/* Autorizadores: tabla adaptable y formulario SAP cómodo en celular */
@media(max-width:780px){.cardbox>.table-wrap{overflow-x:auto}.cardbox .data-table{min-width:600px}.actions-inline{flex-wrap:wrap}.modal{width:min(95vw,650px);max-height:90dvh}}
/* Notificaciones V8 */
.notification-page{max-width:1120px}.notification-options{padding:24px;margin:20px 0}.notification-options h2{margin:0 0 8px;font-size:1.17rem}.notification-options .muted{margin:6px 0 16px}
.notification-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.notification-head h2{margin:0}
.notification-list{display:grid;gap:12px}.notification-item{border:1px solid #dce7f2;border-radius:13px;padding:18px;background:#fff;overflow-wrap:anywhere}.notification-item.unread{border-left:5px solid #2563eb;background:#f5f9ff}.notification-item-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-item-top strong{color:#143958}.notification-item p{color:#344b63;white-space:pre-wrap;margin:11px 0}.notification-item .actions-inline{margin-top:15px}
.notif-number{font-size:.73rem;font-weight:850;background:#d52f41;color:white;border-radius:20px;padding:2px 8px;vertical-align:middle}
.pill-primary{background:#215abf;color:#fff;border:1px solid #215abf;cursor:pointer}.pill-primary:hover{background:#174a9e;color:#fff}
.bell-link{position:relative}.bell-count{position:absolute;top:-5px;right:-5px;border-radius:50px;background:#bd233d;color:white;font-size:10px;font-weight:800;min-width:18px;min-height:18px;padding:2px 4px;display:grid;place-items:center}.bell-count[hidden]{display:none}
@media(max-width:720px){.notification-options{padding:18px}.notification-head{align-items:flex-start;flex-direction:column}.notification-item-top{align-items:flex-start;flex-direction:column}.nav-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (display-mode: standalone){.install-box{display:none!important}}

/* V8.1 · Consentimiento en el Home posterior al login */
.push-consent-dialog{width:min(520px,calc(100% - 28px));border:1px solid #cbdced}
.push-consent-dialog .modal-head{background:linear-gradient(110deg,#103759,#17617d)}
.push-consent-dialog .modal-head h2{font-size:1.16rem;line-height:1.35}
.push-consent-dialog .modal-body{padding:25px}
.push-consent-dialog .modal-body>p:first-child{margin:0 0 12px;font-size:1rem}
.push-consent-dialog .modal-actions{align-items:center;justify-content:space-between}
.push-consent-dialog .modal-actions .pill{font-size:.91rem;padding:11px 16px}
.push-consent-dialog .message[hidden]{display:none!important}
@media(max-width:480px){.push-consent-dialog .modal-body{padding:20px 16px}.push-consent-dialog .modal-actions{flex-direction:column-reverse}.push-consent-dialog .modal-actions .pill{width:100%;text-align:center}}

/* V8.2: Instalación visible en el navegador; instrucciones adaptadas al dispositivo */
.install-title{display:flex;align-items:center;gap:8px;font-size:1.02rem;color:#153c66;margin-bottom:8px}
.install-box[hidden],.install-guide[hidden]{display:none!important}
.install-guide{margin-top:12px;padding:13px;border-radius:10px;border:1px solid #c6dcf1;background:#fff;color:#24415b}
.install-steps{margin:0;padding-left:21px;display:grid;gap:8px;font-size:.87rem;line-height:1.45}
.install-steps li{overflow-wrap:anywhere}
@media (display-mode:standalone){.install-box{display:none!important}}
