/* Checkout e área do aluno: usa os tokens de site.css */
.app-main{padding-block:clamp(36px,6vw,72px) 80px;background-image:linear-gradient(#1e544e0b 1px,transparent 1px),linear-gradient(90deg,#1e544e0b 1px,transparent 1px);background-size:34px 34px;min-height:calc(100vh - 77px)}
.app-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:start}
.app-title{font-size:clamp(2.2rem,4vw,3.4rem);margin:14px 0 10px}
.app-lede{color:var(--muted);max-width:560px;margin-bottom:26px}
.panel{background:var(--ivory);border:2px solid var(--ink);border-radius:14px;box-shadow:5px 6px 0 #afc5b3;padding:clamp(18px,3vw,30px)}
.panel+.panel{margin-top:22px}
.panel h2{font-size:1.5rem;margin-bottom:14px}
.form{display:grid;gap:14px}
.form fieldset{border:0;padding:0;margin:0;display:grid;gap:12px}
.form legend{font:700 .7rem/1.4 var(--mono);letter-spacing:.12em;color:var(--teal);margin-bottom:10px}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.span-2{grid-column:span 2}
.field{display:grid;gap:5px}
.field label{font-weight:900;font-size:.86rem}
.field input,.field select{width:100%;border:1px solid #a1afa5;border-radius:7px;background:var(--paper);padding:11px 12px;font-size:1rem}
.field input:focus{border-color:var(--teal)}
.field[data-erro] input{border-color:var(--rust);background:#fdeee6}
.field small{color:var(--muted);font-size:.78rem}
.field[data-erro] small{color:var(--rust);font-weight:800}
.methods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.method{position:relative;display:flex;gap:10px;align-items:center;border:2px solid var(--line);border-radius:10px;padding:13px;background:var(--paper);cursor:pointer;font-weight:900}
.method input{accent-color:var(--teal);width:18px;height:18px}
.method:has(input:checked){border-color:var(--ink);background:var(--mint)}
.method small{display:block;font-weight:600;color:var(--muted);font-size:.78rem}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}
.check input{margin-top:4px;accent-color:var(--teal);width:17px;height:17px;flex:none}
.form .button{width:100%;font-size:1.05rem;padding:15px}
.button[disabled]{opacity:.6;pointer-events:none}
.form-error{background:#fdeee6;border:1px solid var(--rust);color:var(--rust);border-radius:8px;padding:11px 13px;font-weight:800;font-size:.92rem}
.form-ok{background:var(--mint);border:1px solid var(--teal);color:var(--teal);border-radius:8px;padding:11px 13px;font-weight:800;font-size:.92rem}
.summary{position:sticky;top:100px}
.summary-item{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-block:12px;border-bottom:1px dashed var(--line)}
.summary-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;font-family:Fredoka,system-ui,sans-serif;font-size:1.9rem}
.summary-de{margin-top:14px;color:var(--muted);font-weight:800;text-align:right}
.summary-de+.summary-total{margin-top:0}
.summary-off{display:inline-block;margin-top:8px;background:var(--yellow);border:1px solid var(--ink);border-radius:6px;padding:4px 8px;font:800 .7rem/1.2 var(--mono);letter-spacing:.06em}
.summary ul{margin:16px 0 0;padding-left:18px;color:var(--muted);font-size:.9rem;display:grid;gap:6px}
.secure{display:flex;gap:8px;align-items:center;margin-top:16px;font:700 .66rem/1.4 var(--mono);letter-spacing:.08em;color:var(--teal)}
.pay{display:grid;gap:16px;justify-items:center;text-align:center}
.pay img.qr{width:min(260px,100%);aspect-ratio:1;border:2px solid var(--ink);border-radius:12px;background:#fff;padding:8px}
.code-box{width:100%;display:flex;gap:8px}
.code-box input{flex:1;min-width:0;border:1px solid #a1afa5;border-radius:7px;background:var(--paper);padding:10px;font:600 .82rem var(--mono)}
.code-box .button{width:auto;padding:10px 14px;font-size:.9rem}
.status-pill{display:inline-flex;align-items:center;gap:9px;font:800 .72rem/1 var(--mono);letter-spacing:.08em;padding:9px 12px;border-radius:999px;border:1px solid var(--ink);background:var(--yellow)}
.status-pill i{width:9px;height:9px;border-radius:50%;background:var(--rust);animation:pulse 1.2s infinite}
.status-pill.ok{background:var(--mint)}
.status-pill.ok i{background:var(--teal);animation:none}
@keyframes pulse{50%{opacity:.25}}
.link-button{background:none;border:0;padding:0;font-weight:900;text-decoration:underline;text-underline-offset:4px;color:var(--teal)}
.field small a{font-weight:900;text-decoration:underline;text-underline-offset:3px;color:var(--teal)}
.logged{background:var(--mint);border:1px solid var(--teal);border-radius:8px;padding:11px 13px}
.pay-text{color:var(--muted);max-width:420px;margin:0 auto 16px}
.pay-note{color:var(--muted);font-size:.85rem;max-width:440px}
#captcha:empty{display:none}
@media(max-width:860px){.app-grid{grid-template-columns:1fr}.summary{position:static;order:-1}}
@media(max-width:560px){.row,.row.cols-3{grid-template-columns:1fr}.row.keep{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:auto}.methods{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.status-pill i{animation:none}}
