/* Componentes visuais isolados para não alterar o layout global do portal. */
.license-simulator{--license-navy:#102451;--license-blue:#0877c1;--license-cyan:#32c3ec;--license-line:#dce8f2;--license-muted:#647891;max-width:1240px;margin:auto;padding:clamp(28px,5vw,76px) clamp(14px,3vw,28px) 70px;color:var(--license-navy)}
.license-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.55fr);gap:30px;align-items:end;margin-bottom:28px;padding:clamp(28px,5vw,52px);border-radius:26px;background:linear-gradient(135deg,#092451,#0877c1 68%,#32c3ec);color:#fff;box-shadow:0 24px 60px #09245122}.eyebrow,.summary-kicker{display:block;color:#0877c1;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.license-hero .eyebrow{color:#9aeaff}.license-hero h1{max-width:780px;margin:12px 0;color:#fff;font-size:clamp(32px,5vw,62px);line-height:1.03;text-wrap:balance}.license-hero p{max-width:720px;margin:0;color:#dbeefa;font-size:16px;line-height:1.7}.hero-trust{display:grid;gap:10px}.hero-trust span{padding:12px 14px;border:1px solid #ffffff35;border-radius:12px;background:#ffffff0d;color:#effbff;font-size:13px}
.license-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:22px}.license-steps button{display:flex;align-items:center;gap:9px;padding:12px 10px;border:1px solid var(--license-line);border-radius:12px;background:#fff;color:#71839a;text-align:left;font:inherit;cursor:pointer}.license-steps button span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#edf4f9;font-size:12px;font-weight:900}.license-steps button.is-active{border-color:var(--license-cyan);background:#effbff;color:var(--license-navy);box-shadow:0 8px 22px #0877c112}.license-steps button.is-active span{background:linear-gradient(135deg,var(--license-blue),var(--license-cyan));color:#fff}.license-steps button:focus-visible,.continue-button:focus-visible,.submit-button:focus-visible,.back-button:focus-visible{outline:3px solid #32c3ec66;outline-offset:3px}
.license-alert{margin:0 0 18px;padding:14px 16px;border-radius:12px;font-weight:700}.license-alert-error{border:1px solid #f4c7c7;background:#fff4f4;color:#a62626}.license-alert-success{border:1px solid #bce8cd;background:#f1fff5;color:#17653a}
.license-checkout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:22px;align-items:start}.step-panel,.purchase-summary,.confirmation-card{border:1px solid var(--license-line);border-radius:20px;background:#fff;box-shadow:0 12px 36px #1024510b}.step-panel{padding:clamp(20px,3vw,32px)}.step-panel[hidden]{display:none}.section-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px}.section-number{color:var(--license-cyan);font-size:12px;font-weight:900;letter-spacing:.08em}.section-heading h2{margin:0 0 5px;color:var(--license-navy);font-size:clamp(24px,3vw,34px)}.section-heading p{margin:0;color:var(--license-muted);line-height:1.6}.plan-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-choice{position:relative;display:flex;flex-direction:column;gap:11px;min-width:0;padding:18px;border:1px solid var(--license-line);border-radius:15px;background:#fff;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.plan-choice input{position:absolute;opacity:0}.plan-choice:has(input:checked),.plan-choice.is-selected{border-color:var(--license-cyan);box-shadow:0 0 0 3px #32c3ec24;transform:translateY(-2px)}.plan-choice-top{display:flex;justify-content:space-between;gap:8px;color:var(--license-navy);font-size:18px}.radio-mark{width:19px;height:19px;border:2px solid #abc3d3;border-radius:50%}.plan-choice input:checked~.plan-choice-top .radio-mark{border:5px solid var(--license-blue)}.recommend-badge{align-self:flex-start;padding:4px 8px;border-radius:20px;background:#e7f9ff;color:#0877c1;font-size:10px;font-weight:900}.plan-description{min-height:62px;color:var(--license-muted);font-size:13px;line-height:1.5}.plan-choice-price{display:flex;align-items:baseline;gap:6px;margin-top:auto}.plan-choice-price strong{color:var(--license-navy);font-size:18px}.plan-choice-price small{color:var(--license-muted)}.config-grid,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.field-block{display:grid;gap:8px;min-width:0;color:var(--license-navy);font-weight:800}.field-block>small,.field-block small{color:var(--license-muted);font-size:12px;font-weight:400;line-height:1.4}.field-block input:not([type=checkbox]):not([type=radio]){width:100%;min-height:46px;padding:11px 13px;border:1px solid #bcd0df;border-radius:10px;background:#fff;color:var(--license-navy);font:inherit}.field-block input:focus{border-color:var(--license-cyan);outline:3px solid #32c3ec26}.stepper-input{display:grid;grid-template-columns:45px minmax(70px,1fr) 45px}.stepper-input button{border:1px solid #bcd0df;background:#f3f9fc;color:var(--license-blue);font-size:22px;cursor:pointer}.stepper-input button:first-child{border-radius:10px 0 0 10px}.stepper-input button:last-child{border-radius:0 10px 10px 0}.stepper-input input{text-align:center;border-radius:0!important}.period-field{border:0;padding:0;margin:0}.period-field legend{padding:0;color:var(--license-navy);font-weight:800}.period-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.period-options label{cursor:pointer}.period-options input{position:absolute;opacity:0}.period-options span{display:grid;place-items:center;min-height:46px;padding:7px;border:1px solid #bcd0df;border-radius:10px;color:var(--license-muted);font-size:12px;text-align:center}.period-options input:checked+span{border-color:var(--license-cyan);background:#effbff;color:var(--license-blue);font-weight:900}.module-area{margin-top:28px;padding-top:21px;border-top:1px solid #edf2f6}.module-heading{display:flex;justify-content:space-between;gap:15px;margin-bottom:14px}.module-heading h3{margin:0 0 4px;color:var(--license-navy)}.module-heading p{margin:0;color:var(--license-muted);font-size:13px}.module-count{align-self:start;padding:6px 9px;border-radius:20px;background:#f0f6fa;color:var(--license-muted);font-size:11px;font-weight:800;white-space:nowrap}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module-choice{display:flex;gap:10px;padding:13px;border:1px solid var(--license-line);border-radius:12px;cursor:pointer}.module-choice:has(input:checked){border-color:var(--license-cyan);background:#f5fcff}.module-choice input{width:20px;height:20px;flex:0 0 auto;margin-top:2px;accent-color:var(--license-blue)}.module-choice span{display:grid;gap:3px}.module-choice b{font-size:13px}.module-choice small{color:var(--license-muted);font-size:11px;line-height:1.4}.module-choice strong{color:var(--license-blue);font-size:11px}.continue-button,.submit-button,.back-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 19px;border-radius:11px;font:inherit;font-weight:900;cursor:pointer}.continue-button,.submit-button{border:0;background:linear-gradient(135deg,var(--license-blue),var(--license-cyan));color:#fff;box-shadow:0 10px 22px #0877c126}.step-panel>.continue-button{width:100%;margin-top:25px}.step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px}.back-button{border:1px solid #c6d9e6;background:#fff;color:var(--license-blue)}.info-strip{margin-bottom:18px;padding:13px 15px;border-radius:11px;background:#eef9fe;color:#35627f;font-size:13px;line-height:1.5}.account-card,.payment-explanation{display:flex;gap:13px;align-items:flex-start;margin-bottom:20px;padding:17px;border:1px solid #d9edf6;border-radius:13px;background:#f7fcfe}.account-icon,.payment-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--license-cyan);color:#08234b;font-weight:900}.account-card h3,.payment-explanation h3{margin:0 0 5px}.account-card p,.payment-explanation p{margin:0;color:var(--license-muted);font-size:13px;line-height:1.6}.field-block em{color:var(--license-muted);font-size:11px;font-weight:400}.consent-list{display:grid;gap:10px;margin-top:22px;color:#4f667e;font-size:13px}.consent-list label{display:flex;gap:8px;align-items:flex-start}.consent-list input{width:19px;height:19px;accent-color:var(--license-blue)}.purchase-summary{min-width:0}.summary-sticky{position:sticky;top:95px;padding:24px}.summary-kicker{color:var(--license-blue)}.summary-sticky h2{margin:7px 0;color:var(--license-navy);font-size:24px}.summary-sticky>p{margin:5px 0;color:var(--license-muted);font-size:13px}.summary-lines{display:grid;gap:11px;margin-top:23px;padding-top:18px;border-top:1px solid #e8eff4}.summary-lines>div,.summary-total{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.summary-lines span,.summary-total span{color:var(--license-muted);font-size:13px}.summary-lines b{font-size:13px}.summary-total{margin-top:18px;padding-top:17px;border-top:2px solid var(--license-navy)}.summary-total strong{color:var(--license-blue);font-size:23px}.summary-note{display:block;margin-top:18px;color:var(--license-muted);font-size:11px;line-height:1.5}.confirmation-card{max-width:900px;margin:0 auto;padding:clamp(24px,5vw,52px);text-align:center}.confirmation-icon{display:grid;place-items:center;width:65px;height:65px;margin:0 auto 17px;border-radius:50%;background:#dff8e9;color:#0d8748;font-size:34px;font-weight:900}.confirmation-card h2{margin:10px 0;color:var(--license-navy);font-size:clamp(27px,4vw,43px)}.confirmation-card>p{max-width:650px;margin:0 auto 26px;color:var(--license-muted);line-height:1.7}.confirmation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.confirmation-grid>div,.payment-reference>div{display:grid;gap:6px;padding:14px;border:1px solid var(--license-line);border-radius:11px;background:#f8fbfd;text-align:left}.confirmation-grid small,.payment-reference small{color:var(--license-muted);font-size:11px}.confirmation-grid b,.payment-reference b{font-size:13px;overflow-wrap:anywhere}.payment-reference{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0;padding:19px;border-radius:14px;background:#effaff;text-align:left}.payment-reference .summary-kicker{grid-column:1/-1}.receipt-form{display:grid;gap:13px;margin:20px auto 15px;text-align:left}.receipt-form label{display:grid;gap:7px;color:var(--license-navy);font-weight:800}.receipt-form input{padding:11px;border:1px solid #bcd0df;border-radius:9px}.receipt-form .submit-button{justify-self:center}.invoice-link{display:inline-flex;margin-top:8px;color:var(--license-blue);font-weight:900}.confirmation-footnote{margin-top:22px!important;font-size:12px!important}
@media(max-width:900px){.license-hero,.license-checkout{grid-template-columns:1fr}.hero-trust{grid-template-columns:repeat(3,1fr)}.summary-sticky{position:static}.confirmation-grid,.payment-reference{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.license-steps{display:flex;overflow:auto;padding-bottom:3px}.license-steps button{min-width:135px}.license-steps button b{font-size:12px}.plan-choice-grid,.module-grid,.config-grid,.form-grid{grid-template-columns:1fr}.plan-description{min-height:auto}.hero-trust{grid-template-columns:1fr}.period-options{grid-template-columns:repeat(2,1fr)}.step-actions{flex-direction:column-reverse}.step-actions button{width:100%}.confirmation-grid,.payment-reference{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.plan-choice{transition:none}}
/* A linha de verificação mantém o botão confortável em ecrãs pequenos. */
.verify-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.verify-button{min-height:38px;padding:7px 11px;border:1px solid #b9d9ea;border-radius:9px;background:#f5fbfe;color:var(--license-blue);font-size:12px;font-weight:900;cursor:pointer}.verify-button:hover,.verify-button:focus-visible{border-color:var(--license-cyan);background:#effbff;outline:3px solid #32c3ec24}.verify-row small{flex:1 1 180px}
.field-wide{grid-column:1/-1}
@media(max-width:700px){.field-wide{grid-column:auto}}
.verify-row small.is-plan-warning{padding:8px 10px;border:1px solid #f0b7b7;border-radius:8px;background:#fff4f4;color:#a62626;font-weight:800}

/* Modal de regra comercial: mantém a mensagem evidente sem deslocar o
   formulário e adapta o conteúdo a telemóveis, tablets e monitores grandes. */
.license-modal-backdrop{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:clamp(14px,4vw,32px);background:#061b36b8;backdrop-filter:blur(4px)}
.license-modal-backdrop[hidden]{display:none}
.license-modal{position:relative;width:min(520px,100%);padding:clamp(24px,5vw,38px);border:1px solid #f1caca;border-radius:22px;background:#fff;box-shadow:0 26px 80px #03142e55;color:var(--license-navy);text-align:center}
.license-modal-close{position:absolute;top:10px;right:12px;width:42px;height:42px;min-height:42px;border:0;border-radius:50%;background:#f4f7fa;color:#4b6078;font-size:28px;line-height:1;cursor:pointer}
.license-modal-close:hover,.license-modal-close:focus-visible{background:#eaf0f5;color:#102451;outline:3px solid #32c3ec66;outline-offset:2px}
.license-modal-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 15px;border-radius:50%;background:#fff0f0;color:#b42318;font-size:32px;font-weight:900}
.license-modal-kicker{display:block;color:#b42318;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.license-modal h2{margin:9px 0 11px;color:var(--license-navy);font-size:clamp(22px,4vw,30px);line-height:1.15}
.license-modal p{margin:0;color:#425b73;line-height:1.6}
.license-modal-help{margin-top:12px!important;color:#718399!important;font-size:13px}
.license-modal-action{width:100%;min-height:48px;margin-top:24px;padding:11px 18px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--license-blue),var(--license-cyan));color:#fff;font:inherit;font-weight:900;cursor:pointer}
.license-modal-action:hover,.license-modal-action:focus-visible{filter:brightness(1.06);outline:3px solid #32c3ec66;outline-offset:3px}
body.license-modal-open{overflow:hidden}
@media(max-width:480px){.license-modal{border-radius:17px;padding:25px 18px 20px}.license-modal-close{top:7px;right:8px}}
