:root{--dsp-portal-navy:#0F2742;--dsp-portal-blue:#2F6F9F;--dsp-portal-bg:#F3F5F7;--dsp-portal-line:#DDE4EA;--dsp-portal-muted:#6D7A86;--dsp-portal-soft:#EDF2F6;--dsp-portal-green:#23855A;--dsp-portal-red:#B84343}.dsp-portal-root,.dsp-portal-root *{box-sizing:border-box}.dsp-portal-root{font-family:Poppins,system-ui,sans-serif;color:#1C2A36;font-size:18px;line-height:1.5}.dsp-portal-shell{min-height:70vh;background:var(--dsp-portal-bg);padding:34px 18px;display:flex;align-items:flex-start;justify-content:center}.dsp-portal-card{width:min(920px,100%);background:#fff;border:1px solid var(--dsp-portal-line);border-radius:22px;box-shadow:0 24px 70px rgba(15,39,66,.12);overflow:hidden}.dsp-portal-card.is-loading,.dsp-portal-card.is-error{padding:60px;text-align:center}.dsp-portal-card.is-loading svg,.dsp-portal-card.is-error svg{width:42px;height:42px;color:var(--dsp-portal-blue)}.dsp-portal-card.is-error h1{font-size:24px;color:var(--dsp-portal-navy)}.dsp-portal-card.is-error p,.dsp-portal-card.is-loading p{color:var(--dsp-portal-muted)}.dsp-portal-head{padding:32px;background:linear-gradient(135deg,#fff,#EEF5FA);border-bottom:1px solid var(--dsp-portal-line)}.dsp-portal-brand{display:flex;align-items:center;gap:12px}.dsp-portal-brand>svg{width:48px;height:48px;padding:12px;border-radius:14px;background:var(--dsp-portal-navy);color:#fff}.dsp-portal-brand span,.dsp-portal-brand strong{display:block}.dsp-portal-brand span{font-size:16px;text-transform:uppercase;letter-spacing:.1em;color:var(--dsp-portal-blue);font-weight:700}.dsp-portal-brand strong{font-size:20px;color:var(--dsp-portal-navy);margin-top:3px}.dsp-portal-head>p{white-space:pre-line;margin:24px 0 16px;line-height:1.75;color:#425468;font-size:18px}.dsp-portal-note{background:#FFF7E8;border:1px solid #F0D5A8;border-radius:12px;padding:13px 15px;font-size:18px;line-height:1.6;color:#6F4D18}.dsp-portal-alert{margin:22px 28px 0;border-radius:12px;padding:13px 15px;display:flex;align-items:flex-start;gap:10px;font-size:18px;line-height:1.5}.dsp-portal-alert.is-success{background:#E8F6EF;color:var(--dsp-portal-green);border:1px solid #BCE4D0}.dsp-portal-alert.is-error{background:#FCEAEA;color:var(--dsp-portal-red);border:1px solid #F1C4C4}.dsp-portal-list{padding:28px}.dsp-portal-section-title span{display:block;color:var(--dsp-portal-blue);text-transform:uppercase;letter-spacing:.1em;font-size:16px;font-weight:700}.dsp-portal-section-title h1{font-size:24px;color:var(--dsp-portal-navy);margin:5px 0 8px}.dsp-portal-section-title p{font-size:18px;line-height:1.6;color:var(--dsp-portal-muted);margin:0 0 22px}.dsp-portal-list article{border:1px solid var(--dsp-portal-line);border-radius:16px;padding:18px;margin-top:14px;background:#fff}.dsp-portal-list article.is-received{border-color:#BCE4D0;background:#FBFEFC}.dsp-portal-item-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:flex-start;margin-bottom:14px}.dsp-portal-item-head>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--dsp-portal-navy);color:#fff;font-size:18px;font-weight:700}.dsp-portal-item-head small{font-size:16px;color:var(--dsp-portal-blue);text-transform:uppercase;font-weight:700;letter-spacing:.08em}.dsp-portal-item-head h2{font-size:18px;color:var(--dsp-portal-navy);margin:3px 0}.dsp-portal-item-head p{font-size:16px;color:var(--dsp-portal-muted);line-height:1.55;margin:5px 0 0}.dsp-portal-item-head>svg{color:var(--dsp-portal-green)}.dsp-portal-list textarea{width:100%;border:1px solid var(--dsp-portal-line);border-radius:11px;padding:12px 13px;font:inherit;font-size:18px;resize:vertical;outline:none}.dsp-portal-list textarea:focus{border-color:#8AAFCB;box-shadow:0 0 0 3px rgba(47,111,159,.1)}.dsp-portal-upload{display:flex;align-items:center;gap:12px;border:1px dashed #AFC3D3;background:var(--dsp-portal-soft);border-radius:12px;padding:14px;cursor:pointer;margin-bottom:10px}.dsp-portal-upload>svg{color:var(--dsp-portal-blue);flex:none}.dsp-portal-upload div{min-width:0;flex:1}.dsp-portal-upload strong,.dsp-portal-upload span{display:block;overflow:hidden;text-overflow:ellipsis}.dsp-portal-upload strong{font-size:18px;color:var(--dsp-portal-navy)}.dsp-portal-upload span{font-size:16px;color:var(--dsp-portal-muted);margin-top:3px}.dsp-portal-upload input{position:absolute;opacity:0;pointer-events:none}.dsp-portal-received-files,.dsp-portal-selected-files{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}.dsp-portal-received-files>small{font-size:16px;font-weight:700;color:var(--dsp-portal-green);text-transform:uppercase;letter-spacing:.05em}.dsp-portal-received-files>div,.dsp-portal-selected-files>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--dsp-portal-line);border-radius:10px;background:#fff;padding:10px 12px}.dsp-portal-received-files>div>svg,.dsp-portal-selected-files>div>svg{width:18px;height:18px;color:var(--dsp-portal-blue)}.dsp-portal-received-files>div>svg:last-child{color:var(--dsp-portal-green)}.dsp-portal-received-files span,.dsp-portal-selected-files span{min-width:0}.dsp-portal-received-files strong,.dsp-portal-received-files em,.dsp-portal-selected-files strong,.dsp-portal-selected-files em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsp-portal-received-files strong,.dsp-portal-selected-files strong{font-size:16px;color:var(--dsp-portal-navy)}.dsp-portal-received-files em,.dsp-portal-selected-files em{font-size:16px;color:var(--dsp-portal-muted);font-style:normal;margin-top:2px}.dsp-portal-selected-files button{width:30px;height:30px;border:0;border-radius:8px;background:#FCEAEA;color:var(--dsp-portal-red);display:grid;place-items:center;cursor:pointer}.dsp-portal-selected-files button svg{width:15px;height:15px}.dsp-portal-footer{padding:20px 28px 28px;border-top:1px solid var(--dsp-portal-line);display:flex;align-items:center;justify-content:space-between;gap:20px}.dsp-portal-footer>div{display:flex;align-items:center;gap:8px;color:var(--dsp-portal-muted);font-size:16px}.dsp-portal-footer button{border:0;background:var(--dsp-portal-navy);color:#fff;border-radius:11px;padding:13px 18px;font:inherit;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px}.dsp-portal-footer button:disabled{opacity:.55;cursor:wait}.dsp-portal-complete{color:var(--dsp-portal-green)!important;font-weight:600}.is-spinning{animation:dspPortalSpin 1s linear infinite}@keyframes dspPortalSpin{to{transform:rotate(360deg)}}@media(max-width:640px){.dsp-portal-shell{padding:12px}.dsp-portal-card{border-radius:16px}.dsp-portal-head,.dsp-portal-list{padding:20px}.dsp-portal-alert{margin:16px 20px 0}.dsp-portal-section-title h1{font-size:20px}.dsp-portal-footer{padding:18px 20px 22px;align-items:stretch;flex-direction:column}.dsp-portal-footer button{width:100%;justify-content:center}.dsp-portal-item-head{grid-template-columns:auto minmax(0,1fr)}.dsp-portal-item-head>svg{grid-column:1/-1}}
.dsp-portal-progress{margin:18px 28px 0;padding:14px 16px;border:1px solid #C7D8E5;border-radius:12px;background:#F8FBFD}.dsp-portal-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;color:var(--dsp-portal-muted)}.dsp-portal-progress>div:first-child strong{color:var(--dsp-portal-navy);font-size:16px}.dsp-portal-progress-track{height:7px;border-radius:999px;background:#E2EAF0;overflow:hidden;margin:9px 0 6px}.dsp-portal-progress-track span{display:block;height:100%;background:var(--dsp-portal-blue);border-radius:inherit;transition:width .2s ease}.dsp-portal-progress small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsp-portal-muted);font-size:16px}.dsp-portal-selected-wrap{border:1px solid var(--dsp-portal-line);border-radius:12px;background:#F9FBFC;padding:12px;margin-bottom:10px}.dsp-portal-selected-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 9px;color:var(--dsp-portal-navy);font-size:16px;font-weight:700}.dsp-portal-selected-head strong{min-width:25px;height:25px;border-radius:999px;background:var(--dsp-portal-navy);color:#fff;display:grid;place-items:center;font-size:16px}.dsp-portal-selected-wrap .dsp-portal-selected-files{margin-bottom:9px}.dsp-portal-add-more{display:inline-flex;align-items:center;gap:6px;border:1px solid #B8CBD9;border-radius:9px;background:#fff;color:var(--dsp-portal-blue);padding:8px 10px;font-size:16px;font-weight:700;cursor:pointer}.dsp-portal-add-more svg{width:14px;height:14px}.dsp-portal-add-more input{position:absolute;opacity:0;pointer-events:none}.dsp-portal-upload:focus-within,.dsp-portal-upload:hover{border-color:#6F9DBD;background:#E9F1F7}
@media(max-width:640px){.dsp-portal-progress{margin:14px 20px 0}.dsp-portal-upload{align-items:flex-start}.dsp-portal-selected-files>div{grid-template-columns:auto minmax(0,1fr) auto}}
.dsp-portal-validity{margin-top:10px;font-size:16px;color:var(--dsp-portal-muted);font-weight:600}.dsp-portal-validity.is-warning{color:#8A5B18}.dsp-portal-upload:has(input:disabled){cursor:not-allowed;opacity:.68}
.dsp-portal-item-labels{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.dsp-portal-item-labels small:first-child{border-radius:99px;padding:4px 7px;background:#EEF5FA;color:var(--dsp-portal-blue);letter-spacing:0}.dsp-portal-item-labels small:first-child.is-required{background:#FCEAEA;color:var(--dsp-portal-red)}.dsp-portal-item-labels small:first-child.is-follow_up{background:#EDF2F6;color:var(--dsp-portal-muted)}
.dsp-portal-alert.is-readonly{background:#EEF4F8;color:var(--dsp-portal-navy);border:1px solid #C7D8E5}.dsp-portal-alert.is-readonly svg{width:18px;height:18px;flex:none;color:var(--dsp-portal-blue)}.dsp-portal-list article.is-readonly:not(.is-received){background:#F8FAFB}.dsp-portal-list article.is-readonly textarea:disabled{background:#F2F5F7;color:#6D7A86;cursor:not-allowed}.dsp-portal-list article.is-readonly .dsp-portal-upload:has(input:disabled){pointer-events:none}.dsp-portal-complete{max-width:460px;line-height:1.5}

/* Escala de legibilidad 1.1.39 */
.dsp-portal-root small{font-size:16px}
.dsp-portal-root button{min-height:48px}
.dsp-portal-root input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.dsp-portal-root select,.dsp-portal-root textarea{min-height:48px}
.dsp-portal-root textarea{line-height:1.5}
