/* Two-step customer redemption flow. Scoped to avoid changing the admin UI. */
.redeem-flow-page{background:#eeede6;min-height:100vh}
.redeem-flow-page::before{content:"";position:fixed;inset:0 58% 0 0;background:#173f35;clip-path:polygon(0 0,100% 0,74% 100%,0 100%);z-index:-1}
.redeem-flow-shell{width:min(1080px,calc(100% - 40px));min-height:100vh;margin:auto;display:grid;grid-template-columns:minmax(260px,380px) minmax(420px,560px);gap:clamp(48px,8vw,110px);align-items:center;padding:48px 0}
.redeem-flow-brand{color:#f8f6ed}
.redeem-flow-brand h1{max-width:360px;font:clamp(42px,4.6vw,64px)/1 Georgia,serif;letter-spacing:-.04em;margin:18px 0 20px;text-wrap:balance}
.redeem-flow-brand p{max-width:340px;color:#c8d3ce;line-height:1.8}
.redeem-flow-card{border-radius:12px;padding:34px 38px;min-height:540px}
.flow-steps{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:38px;color:#939b97;font-size:11px;font-weight:800;letter-spacing:.08em}
.flow-steps i{height:1px;background:var(--line)}
.flow-steps span.active{color:var(--green)}
.flow-heading>span,.dialog-kicker{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.flow-heading h2{font:34px/1.1 Georgia,serif;margin:10px 0}
.flow-heading p{color:var(--muted);line-height:1.6;margin:0 0 28px}
.flow-form{display:grid;gap:12px}
.flow-form input{font:700 17px/1.2 Consolas,monospace;letter-spacing:.04em;padding:16px}
.flow-primary{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:16px 18px}
.session-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.flow-action{border:1px solid var(--line);border-radius:6px;background:#fff;text-align:left;padding:15px;display:grid;gap:4px;color:var(--ink);transition:.2s}
.flow-action:hover{border-color:var(--green);transform:translateY(-1px)}
.flow-action small{font-size:11px;color:var(--muted);line-height:1.35}
.session-field{display:grid;gap:8px}
.session-field textarea{font:12px/1.55 Consolas,monospace;resize:vertical;min-height:150px}
.session-field small{font-size:11px;font-weight:400;color:var(--muted);line-height:1.5}
.flow-buttons{display:grid;gap:10px;margin-top:18px}
.flow-back{border:0;background:transparent;color:var(--muted);padding:8px;text-decoration:underline;text-underline-offset:3px}
.confirm-dialog{width:min(460px,calc(100% - 32px));border:0;border-radius:10px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.28)}
.confirm-dialog::backdrop{background:rgba(10,22,18,.68);backdrop-filter:blur(3px)}
.confirm-dialog form{position:relative;padding:34px}
.confirm-dialog h2{font:34px Georgia,serif;margin:10px 0 22px}
.confirm-dialog p{margin:0 0 8px;color:var(--muted);font-size:13px}
.confirm-email{display:block;padding:15px;background:#ebece5;border-left:3px solid var(--green);word-break:break-all}
.dialog-close{position:absolute;top:14px;right:16px;border:0;background:transparent;font-size:26px;color:var(--muted)}
.dialog-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:26px}
.dialog-actions button{padding:13px 16px}
.tutorial-jump{display:inline-flex;align-items:center;gap:12px;margin-top:25px;padding:11px 14px;border:1px solid rgba(248,246,237,.28);border-radius:4px;color:#f8f6ed;font-size:12px;font-weight:800;text-decoration:none;transition:border-color .2s,background .2s,transform .2s}
.tutorial-jump:hover{border-color:rgba(248,246,237,.55);background:rgba(255,255,255,.07);transform:translateY(-1px)}
.redeem-tutorial{position:relative;z-index:1;background:#f4f1e8;border-top:1px solid rgba(23,32,29,.12);padding:90px max(24px,calc((100vw - 1080px)/2)) 110px}
.tutorial-intro{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:clamp(50px,8vw,130px);align-items:end;padding-bottom:38px;border-bottom:1px solid #c9c7bd}
.tutorial-intro h2{font:clamp(38px,4vw,58px)/1 Georgia,serif;letter-spacing:-.04em;margin:12px 0 0}
.tutorial-intro p{max-width:610px;color:var(--muted);font-size:14px;line-height:1.8;margin:0}
.tutorial-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0}
.tutorial-step{display:flex;flex-direction:column;min-height:250px;padding:28px 26px 28px 0;border-right:1px solid #d8d5cb}
.tutorial-step:not(:first-child){padding-left:26px}
.tutorial-step:last-child{border-right:0}
.tutorial-number{display:block;color:var(--accent);font:800 11px/1 Consolas,monospace;letter-spacing:.12em;margin-bottom:35px}
.tutorial-step h3{font:25px/1.15 Georgia,serif;margin:0 0 14px}
.tutorial-step p{color:#59635f;font-size:12px;line-height:1.75;margin:0 0 24px}
.tutorial-meta{display:inline-block;margin-top:auto;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.06em}
@media(max-width:900px){.tutorial-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-step:nth-child(2){border-right:0}.tutorial-step:nth-child(-n+2){border-bottom:1px solid #d8d5cb}.tutorial-step:nth-child(3){padding-left:0}}
@media(max-width:820px){.redeem-flow-page::before{inset:0 0 62% 0;clip-path:polygon(0 0,100% 0,100% 82%,0 100%)}.redeem-flow-shell{grid-template-columns:1fr;gap:32px;align-items:start;padding:46px 0}.redeem-flow-brand h1{font-size:48px}.redeem-flow-brand p{margin-bottom:0}.redeem-flow-card{min-height:0}.redeem-tutorial{padding-top:70px}.tutorial-intro{grid-template-columns:1fr;gap:24px;align-items:start}}
@media(max-width:520px){.redeem-flow-shell{width:min(100% - 24px,560px);padding:30px 0}.redeem-flow-card{padding:25px 20px}.session-actions{grid-template-columns:1fr}.dialog-actions{grid-template-columns:1fr}.dialog-actions .quiet{order:2}.flow-heading h2{font-size:30px}.tutorial-jump{margin-top:20px}.redeem-tutorial{padding:58px 20px 72px}.tutorial-intro h2{font-size:38px}.tutorial-steps{grid-template-columns:1fr}.tutorial-step,.tutorial-step:not(:first-child){min-height:0;padding:25px 0;border-right:0;border-bottom:1px solid #d8d5cb}.tutorial-step:last-child{border-bottom:0}.tutorial-number{margin-bottom:18px}}
