:root{--ink:#1e3549;--blue:#15598c;--green:#19765b;--line:#d8e4ed}*{box-sizing:border-box}body{background:#f2f6f8;color:var(--ink);font-family:system-ui,sans-serif}h1{font-size:2rem;font-weight:750}h2{font-size:1.22rem;font-weight:700}h3{font-size:1.1rem;font-weight:700;margin:3px 0}p{color:#536b7c}small{display:block;color:#526878}.btn{font-weight:650;border-radius:8px;padding:9px 14px}.btn-primary{background:var(--green);border-color:var(--green)}.btn-secondary,.btn-outline-primary{background:var(--blue);border-color:var(--blue);color:white}.btn-danger{background:#b12f41}header{display:flex;align-items:center;gap:18px;padding:18px 28px;background:white;border-bottom:1px solid var(--line)}header>span{margin-left:auto}.brand{text-decoration:none;color:var(--blue);font-weight:800;font-size:1.35rem}.shell{display:grid;grid-template-columns:210px minmax(0,1fr);max-width:1600px;margin:auto}nav{padding:28px 15px}.nav-item{display:block;width:100%;border:0;background:transparent;text-align:left;padding:13px;border-radius:8px;color:#354c60;font-weight:650;margin-bottom:6px}.nav-item.active{background:#dcebf6;color:#104a78}.nav-note{font-size:.8rem;padding:18px 12px}main#content{padding:30px;min-width:0}.heading,.form-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.12em;color:var(--green)}.panel,.stats section,.receipt{background:white;border:1px solid var(--line);border-radius:13px;padding:22px;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats strong{display:block;font-size:1.8rem;margin-top:9px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.split{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e4ecf1}.receipt{display:flex;gap:18px;align-items:center;border-left:4px solid var(--green);padding:17px;margin-bottom:12px}.receipt-icon{font-size:2rem;color:var(--blue)}.receipt-text{flex:1;min-width:0;overflow-wrap:anywhere}.amount{font-size:1.2rem}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:24px}label{display:block;font-size:.88rem;font-weight:650;min-width:0}.form-control,.form-select{border:2px solid #bf5861;margin-top:5px;min-width:0;width:100%;padding:9px;border-radius:7px}.form-control:focus,.form-select:focus{border-color:#15598c;box-shadow:0 0 0 2px #dcebf6}.upload{background:#eff6fb;border:2px solid var(--blue);border-radius:10px;padding:18px}.actions{display:flex;flex-wrap:wrap;gap:9px}.help{font-size:.82rem;margin:12px 0 0}section{margin-bottom:24px}.detail-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;background:#f6f9fb;padding:15px;border:1px solid #9fbed2;border-radius:9px;margin-bottom:13px}.detail-row .concept{grid-column:span 3}.check{display:inline-flex;align-items:center;gap:7px;margin:8px 16px 8px 0}.check input{width:18px;height:18px}fieldset{margin-bottom:20px}legend{font-size:.9rem;font-weight:650}.form-footer{margin-top:25px;margin-bottom:0}.table-wrap{overflow:auto}.table{min-width:650px}.table .old{font-weight:750;color:#173b5b;background:#edf4fa}.empty{background:white;padding:40px;border:1px dashed #95aaba;border-radius:12px}.login{max-width:1000px;margin:8vh auto;background:white;border-radius:20px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;box-shadow:0 14px 50px #15324a12}.brand-side{background:#15598c;color:white;padding:65px 35px;margin:0}.brand-side p{color:#e0edf6}.mark{font-size:4rem}.login-form{padding:45px}.login-form label{margin:18px 0}.login-form form>button{width:100%}.password{display:flex;gap:6px;align-items:center}.password input{flex:1;width:0}dialog{border:1px solid #9ab5c9;border-radius:12px;max-width:90vw;width:460px;padding:25px}dialog::backdrop{background:#14314988}dialog label{margin:15px 0}#message{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:16px 22px;background:#173b5b;color:white;border-radius:10px;max-width:90vw;z-index:2000;box-shadow:0 5px 25px #0003}#file-list{overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:800px){header{padding:12px;gap:10px}header>span{display:none}.shell{display:block}nav{display:flex;gap:5px;padding:10px;overflow:auto}.nav-item{width:auto;white-space:nowrap;padding:10px}.nav-note{display:none}main#content{padding:15px}.two{grid-template-columns:1fr}.stats{gap:8px}.stats section{padding:12px}.stats strong{font-size:1.2rem}.heading{flex-wrap:wrap}.receipt{flex-wrap:wrap;gap:10px}.receipt-text{min-width:50%}.receipt-icon{display:none}.fields{grid-template-columns:1fr}.detail-row{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-row .concept{grid-column:span 2}.panel{padding:16px}.login{margin:20px;display:block}.brand-side{padding:22px}.brand-side .mark{display:none}.login-form{padding:25px}.form-footer{flex-wrap:wrap}.split{flex-wrap:wrap}}

.upload a.btn { max-width:100%; white-space:normal; overflow-wrap:anywhere; word-break:break-word; }

.receipt-kind-label{display:grid;max-width:520px;gap:7px;margin:0 0 20px;padding:15px;border:2px solid var(--blue);border-radius:10px;background:#edf5fb;font-weight:750}
.receipt-kind-label .form-select{min-height:46px;border:2px solid #dc3545;font-weight:700}
.upload{padding:18px;border:2px solid var(--blue);border-radius:12px;background:#fff;margin-bottom:22px}
.upload h2{margin-bottom:14px}
.detail-locked{background:#f4f7f9;border-left:4px solid var(--blue);padding:12px;border-radius:9px}
.detail-locked input,.detail-locked textarea,.detail-locked select{background:#f8fafb!important;color:#25384b!important}
.claim-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px 0;border-top:1px solid var(--line)}
.claim-row label{display:grid;gap:5px;font-weight:650}
.claim-row .claim-description,.claim-row label:nth-child(5){grid-column:span 2}
.claim-row button{justify-self:start}
.claims-section{padding:15px 0}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-heading h3{margin:0}
.receipt-kind-label,.upload,.panel{min-width:0}
.type-compare{max-width:500px;margin:0 0 18px}
.receipt-imported-snapshot{margin:18px 0 24px;padding:22px;border:2px solid var(--blue);border-radius:12px;background:#fff}
.receipt-snapshot-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.receipt-snapshot-heading h2{margin:5px 0;font-size:1.35rem}
.receipt-snapshot-heading p{margin:0}
.receipt-snapshot-total{color:var(--green);font-size:1.8rem;white-space:nowrap}
.receipt-snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.receipt-snapshot-item{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f9fb}
.receipt-snapshot-item small{color:#66798a;font-weight:650}
.receipt-snapshot-item strong{color:#20364a;font-weight:700;overflow-wrap:anywhere}
.receipt-snapshot-table{min-width:850px;font-size:.83rem}
.receipt-line-amount{font-weight:700;white-space:nowrap}
.receipt-snapshot-notes{margin:15px 0 0;padding:12px;border-radius:8px;background:#f4f7fa}
@media(max-width:700px){.receipt-kind-label{max-width:none}.claim-row{grid-template-columns:1fr}.claim-row .claim-description,.claim-row label:nth-child(5){grid-column:auto}.section-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.receipt-imported-snapshot{padding:14px}.receipt-snapshot-heading{align-items:flex-start;flex-direction:column}.receipt-snapshot-total{font-size:1.5rem}}
.compare-details{margin-top:18px;border:2px solid var(--blue)}
.compare-details .heading{margin-bottom:10px}
.compare-details .heading h2{margin-bottom:4px}
.block-pill{display:inline-block;margin:0 7px 4px 0;padding:3px 7px;border-radius:999px;background:#e7f1f8;color:#28516f;font-size:.72rem;font-weight:700;text-transform:capitalize}
.compare-line-name{display:block}
.compare-details td small{margin-top:4px;color:#607387;font-size:.76rem}
.compare-delta{font-weight:750;white-space:nowrap}

header,nav{background:#15598c;color:#fff}
header .brand{color:#fff}
nav .nav-item{color:#fff}
nav .nav-item.active{background:#dcebf6;color:#104a78}
nav .nav-note{color:#eaf4fb}
.reminder-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 24px;background:#e5f1fa;color:#164c75}
.reminder-banner span{color:inherit}
.top-form-actions{display:flex;justify-content:flex-end;margin-bottom:16px}
#push-dialog{width:min(620px,calc(100% - 28px));border:0;border-radius:16px;padding:26px;color:var(--ink);box-shadow:0 20px 70px #102a4055}
#push-dialog::backdrop{background:#102a4080}
.push-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.push-dialog-heading h2{margin:5px 0 0}
.push-instructions{padding:15px;background:#f2f6f8;border-radius:10px;margin:18px 0}
.push-instructions p{margin:4px 0 14px}
.push-instructions p:last-child{margin-bottom:0}
.insurance-push-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#eef5fa;border-radius:9px;margin:10px 0 18px}
.insurance-push-hint p{margin:0}
.mobile-notice-time{display:grid;gap:6px;max-width:250px;margin:12px 0;font-weight:650}
.error{color:#a32735}
.access-screen{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(390px,1.05fr);min-height:100vh;background:#fff}
.access-story{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;padding:clamp(32px,5vw,76px);color:#fff;background:#174ea6}
.access-story::after{position:absolute;right:-120px;bottom:7%;width:350px;height:350px;border:1px solid rgba(255,255,255,.12);border-radius:50%;content:"";box-shadow:0 0 0 44px rgba(255,255,255,.035),0 0 0 88px rgba(255,255,255,.025);pointer-events:none}
.access-brand{position:relative;z-index:1;display:inline-flex;align-items:center;align-self:flex-start;color:#fff;font-size:1.6rem;font-weight:700;letter-spacing:-.06em}
.access-brand .brand-icon{display:inline-grid;width:36px;height:36px;margin-right:11px;place-items:center;border:1.5px solid currentColor;border-top-width:5px;border-radius:8px;font-size:1.2rem;font-weight:400}
.access-brand .brand-dot{color:#f0c778}
.access-story-copy{position:relative;z-index:1;width:min(100%,520px);margin:55px 0}
.access-story .eyebrow{color:#bed3fa}
.access-story h1{margin:15px 0 19px;color:#fff;font-size:clamp(2.5rem,5vw,4rem);font-weight:560;letter-spacing:-.055em}
.access-story-copy>p{max-width:430px;color:#d9e6fb;font-size:1.05rem}
.story-calendar{width:min(100%,370px);margin-top:42px;padding:22px 24px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.09);backdrop-filter:blur(8px)}
.story-calendar span,.story-calendar strong,.story-calendar div{display:block}
.story-calendar span{margin-bottom:10px;color:#bed3fa;font-size:.65rem;font-weight:700;letter-spacing:.13em}
.story-calendar strong{font-size:1.2rem;font-weight:560;line-height:1.45}
.story-calendar div{margin-top:13px;color:#b8d1fc;letter-spacing:.16em}
.access-story>small{position:relative;z-index:1;color:#bfd1ee;font-size:.65rem;font-weight:650;letter-spacing:.13em}
.access-form{display:grid;min-height:100vh;padding:50px;place-items:center;background:#fff}
.access-inner{width:min(100%,390px)}
.access-inner>.eyebrow{color:#174ea6}
.access-inner h2{margin:14px 0 9px;font-size:2rem;letter-spacing:-.045em}
.access-inner>p{margin-bottom:27px;color:#66758b}
.stack-form{display:grid;gap:17px}
.stack-form label{display:grid;gap:7px;color:#33445c;font-size:.89rem;font-weight:620}
.access-screen .form-control{min-height:47px;border-color:#d6deea;border-radius:9px;color:var(--ink)}
.access-screen .form-control:focus{border-color:#74a0e4;box-shadow:0 0 0 .2rem rgba(23,78,166,.12)}
.password-field{position:relative;display:block;width:100%;min-width:0}
.password-field input{width:100%;padding-right:52px}
.password-field .password-toggle{position:absolute;top:50%;right:4px;display:flex;width:44px;height:40px;align-items:center;justify-content:center;padding:0;transform:translateY(-50%);border:0;border-radius:7px;background:transparent;color:#6c757d;cursor:pointer;font-size:1.2rem;user-select:none}
.password-field .password-toggle:hover{background:#f0f4fa}
.password-field .password-toggle:focus-visible{outline:3px solid #174ea6;outline-offset:1px}
.password-field input::-ms-reveal{display:none}
.login-submit{min-height:48px;margin-top:3px;border-color:#174ea6;border-radius:9px;background:#174ea6;font-weight:650}
.login-submit:hover{border-color:#123875;background:#123875}
.access-screen [data-action="reload"]{justify-self:stretch;border-color:#d6deea;background:#fff;color:#174ea6}
#auth-form .form-control,#reset-password-form .form-control{border:2px solid #c00020}
#auth-form .form-control:focus,#reset-password-form .form-control:focus{border-color:#a0001a;box-shadow:0 0 0 .18rem rgba(192,0,32,.15)}
.forgot-password-link{justify-self:start;margin:-8px 0 0;font-size:.82rem;text-decoration:underline;text-underline-offset:3px}
.text-button{padding:0;border:0;background:none;color:#174ea6;font-weight:600}
.auth-toggle{display:block;margin:22px auto 0;font-size:.86rem}
.privacy-note{margin:29px 0 0!important;color:#768397!important;font-size:.78rem;text-align:center}
.notice{margin:12px 0 18px;padding:11px 13px;border:1px solid #c7e7d5;border-radius:9px;background:#effaf3;color:#276844;font-size:.88rem}
.notice-error{border-color:#f0cbcb;background:#fff3f3;color:#a13636}
.users-panel,.create-user-panel{margin-bottom:18px;padding:21px;border:2px solid var(--blue)}
.user-cards{display:grid;max-width:720px;gap:10px}
.user-card{display:grid;grid-template-columns:40px 1fr auto;min-height:66px;align-items:center;gap:12px;padding:11px 13px;border:2px solid var(--blue);border-radius:9px;background:#fff}
.user-card-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#edf3ff;color:var(--blue);font-weight:700}
.user-card-name strong{color:#34445a;font-size:.86rem}
.user-card-name small{display:block;color:#8490a0;font-size:.71rem}
.role-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:650}
.role-admin{background:#edf3ff;color:var(--blue)}
.role-usuario{background:#eff7f2;color:var(--green)}
.create-user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:15px}
.create-user-form>label{display:grid;gap:7px;color:#46566c;font-size:.82rem;font-weight:620}
.create-user-form .form-control,.create-user-form .form-select{min-height:43px;border:2px solid #c00020;border-radius:7px}
.create-user-form .form-control:focus,.create-user-form .form-select:focus{border-color:#990018}
.create-user-form .btn{justify-self:start}
@media(max-width:800px){.shell{grid-template-columns:1fr}nav{display:flex;gap:4px;overflow-x:auto;padding:8px 12px}nav .nav-item{width:auto;flex:0 0 auto;white-space:nowrap;padding:9px 12px}main#content{padding:18px}header{padding:12px;gap:8px;flex-wrap:wrap}header .brand{font-size:1.05rem}header>span{margin-left:auto;font-size:.85rem}header .btn{padding:7px 9px;font-size:.78rem}.stats,.two{grid-template-columns:1fr}.heading{flex-wrap:wrap}.insurance-push-hint{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.access-screen{display:block;min-height:100vh}.access-story{min-height:auto;padding:22px 24px}.access-story-copy,.access-story>small{display:none}.access-story::after{right:-200px;bottom:-260px}.access-brand{font-size:1.35rem}.access-form{min-height:calc(100vh - 80px);padding:36px 24px}.create-user-form{grid-template-columns:1fr}}
@media print{body *{visibility:hidden!important}#comparison,#comparison *{visibility:visible!important}#comparison{position:absolute;inset:0;width:100%;padding:0}#comparison .panel{box-shadow:none;border:0}#comparison table{font-size:10pt}}

/* Tarjetas y fechas con contraste, también en Safari móvil. */
.panel,.stats section{border:2px solid var(--blue)}
.receipt{border:2px solid var(--green);border-left-width:4px}
input[type="date"].form-control,input[type="time"].form-control{color:#142e43!important;-webkit-text-fill-color:#142e43!important;opacity:1!important;background-color:#fff!important;color-scheme:light;min-height:45px}
input[type="date"]::-webkit-datetime-edit,input[type="time"]::-webkit-datetime-edit{color:#142e43;opacity:1}
.compare-actions{display:flex;gap:10px;align-items:center;align-self:end;min-height:45px}
.compare-actions .btn{width:auto;flex:0 0 auto;padding:6px 14px;font-size:.9rem}
.notice-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:end;grid-column:1/-1}
.notice-controls>label{display:block;margin:0;max-width:none}
.notice-controls .form-control,.notice-controls .form-select{height:46px;margin-top:5px}
.insurance-push-hint{grid-column:1/-1}
@media(max-width:480px){.notice-controls{gap:10px}.notice-controls>label{font-size:.8rem}}

.delete-receipt-dialog{padding:0;width:min(460px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;border:2px solid var(--blue);color:var(--ink)}
.delete-dialog-heading{padding:18px 22px;background:var(--blue);color:#fff}
.delete-dialog-heading h2{margin:0}
.delete-dialog-body{padding:22px}
.delete-receipt-summary{padding:12px;background:#edf4fa;border-radius:8px;overflow-wrap:anywhere}
.delete-dialog-body .actions{justify-content:flex-end}

/* Cabecera y navegación móvil: todas las opciones visibles sin desplazamiento lateral. */
@media(max-width:800px){
 #app>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%;padding:12px}
 #app>header .brand{grid-column:1/-1;min-width:0;overflow-wrap:anywhere}
 #app>header>.btn{min-width:0;max-width:100%;min-height:44px;white-space:normal;overflow-wrap:anywhere}
 .shell>nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;min-width:0;overflow:visible;padding:10px 12px}
 .shell>nav .nav-item{width:100%;min-width:0;min-height:44px;margin:0;padding:9px 6px;white-space:normal;overflow-wrap:anywhere;text-align:center}
 .reminder-banner{flex-wrap:wrap;padding:12px;min-width:0}
 .reminder-banner>span{min-width:0;overflow-wrap:anywhere}
 .reminder-banner .btn{max-width:100%;white-space:normal}
}
/* En móvil cada concepto de factura muestra sus valores en vertical. */
@media screen and (max-width:700px){
 .receipt-imported-snapshot .table-wrap{overflow:visible;min-width:0}
 .receipt-snapshot-table{display:block;width:100%;min-width:0;font-size:.9rem}
 .receipt-snapshot-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .receipt-snapshot-table tbody{display:block;width:100%}
 .receipt-snapshot-table tbody tr{display:block;margin:12px 0;padding:10px;border:2px solid #9fbed2;border-radius:10px;background:#fff}
 .receipt-snapshot-table tbody td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px;width:100%;padding:8px 0;white-space:normal;overflow-wrap:anywhere;background:transparent;box-shadow:none}
 .receipt-snapshot-table tbody td::before{font-weight:700;color:#15598c}
 .receipt-snapshot-table td:nth-child(1)::before{content:'Bloque'}
 .receipt-snapshot-table td:nth-child(2)::before{content:'Concepto'}
 .receipt-snapshot-table td:nth-child(3)::before{content:'Período'}
 .receipt-snapshot-table td:nth-child(4)::before{content:'Cantidad'}
 .receipt-snapshot-table td:nth-child(5)::before{content:'Precio unitario'}
 .receipt-snapshot-table td:nth-child(6)::before{content:'Base'}
 .receipt-snapshot-table td:nth-child(7)::before{content:'Porcentaje'}
 .receipt-snapshot-table td:nth-child(8)::before{content:'Importe'}
 .receipt-snapshot-table td:last-child{border-bottom:0;color:#155c45;font-size:1rem}
 .receipt-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .receipt-snapshot-heading>div{min-width:0;overflow-wrap:anywhere}
}
/* Comparador móvil: cada concepto conserva ambos recibos y su diferencia. */
@media screen and (max-width:1100px), screen and (hover:none) and (pointer:coarse){
 #comparison,#comparison .panel,#comparison .table-wrap{min-width:0;max-width:100%;overflow:visible}
 #comparison h2,#comparison p{overflow-wrap:anywhere}
 #comparison .table{display:block;width:100%;min-width:0;font-size:.9rem}
 #comparison .table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #comparison .table tbody{display:block;width:100%}
 #comparison .table tbody tr{display:block;margin:12px 0;border:2px solid #9fbed2;border-radius:10px;background:white;overflow:hidden}
 #comparison .table tbody td,#comparison .table tbody th{display:block;width:100%;padding:10px 12px;white-space:normal;overflow-wrap:anywhere;box-shadow:none}
 #comparison .table tbody tr>:first-child{background:#15598c;color:#fff;font-weight:750}
 #comparison .table tbody tr>:first-child small{color:#e5f0fa}
 #comparison .table tbody tr>:nth-child(2){background:#edf4fa;color:#173b5b}
 #comparison .table tbody tr>:nth-child(3){background:#edf8f2;color:#174c39}
 #comparison .table tbody tr>:nth-child(2)::before{content:'Recibo anterior';display:block;font-weight:750;margin-bottom:5px}
 #comparison .table tbody tr>:nth-child(3)::before{content:'Recibo reciente';display:block;font-weight:750;margin-bottom:5px}
 #comparison .table tbody tr>:nth-child(4)::before{content:'Diferencia';display:block;font-weight:750;margin-bottom:5px}
 #comparison .table tbody tr>:last-child{border-bottom:0}
 #comparison .compare-delta{white-space:normal}
}
/* Los controles largos no deben ensanchar la página del comparador. */
.shell,main#content,#comparison,#compare-form{min-width:0}
#compare-form{width:100%;max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
#compare-form>label{min-width:0;max-width:100%}
#compare-form select{width:100%;min-width:0;max-width:100%;text-overflow:ellipsis}
#comparison .panel{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#comparison .table-wrap{width:100%;min-width:0;max-width:100%}
#comparison td,#comparison th,#comparison small,#comparison strong{overflow-wrap:anywhere}
@media screen and (max-width:1100px), screen and (hover:none) and (pointer:coarse){
 #compare-form{grid-template-columns:minmax(0,1fr)}
 #comparison .table tbody tr{width:100%;max-width:100%;box-sizing:border-box}
 #comparison .table tbody td,#comparison .table tbody th{min-width:0;max-width:100%;box-sizing:border-box}
}
/* Ajuste de la página al viewport móvil; mantiene el desplazamiento vertical y el zoom manual. */
@media screen and (max-width:800px), screen and (hover:none) and (pointer:coarse){
 html,body{width:100%;max-width:100%;margin:0;overflow-x:hidden;overscroll-behavior-x:none}
 @supports(overflow:clip){html,body{overflow-x:clip}}
 #app,.shell{width:100%;max-width:100%;min-width:0}
 .shell{display:block}
 main#content{width:100%;max-width:100%;min-width:0;padding:12px;box-sizing:border-box}
 #compare-form,#comparison,#comparison .panel{width:100%;max-width:100%;min-width:0;margin-left:0;margin-right:0;box-sizing:border-box}
 #compare-form{padding:12px;gap:12px}
 #comparison .panel{padding:12px}
 #compare-form label,#compare-form .compare-actions{min-width:0;max-width:100%;box-sizing:border-box}
 #compare-form select,#compare-form input{font-size:16px;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
 #compare-form .compare-actions{flex-wrap:wrap}
 #comparison .heading,#comparison .heading>div{min-width:0;max-width:100%}
 #comparison .table,#comparison .table tbody{max-width:100%;min-width:0;box-sizing:border-box}
 #comparison .table thead{left:0;top:0}
 #comparison .table-wrap{position:relative}
}
/* Cabecera de cada concepto del recibo en la vista móvil. */
@media screen and (max-width:700px){
 .receipt-snapshot-table tbody tr{padding:0;overflow:hidden}
 .receipt-snapshot-table tbody td{padding:10px 12px}
 .receipt-snapshot-table tbody td:first-child{background:#15598c;color:#fff;font-weight:750;border-bottom:0}
 .receipt-snapshot-table tbody td:first-child::before{color:#fff}
}