/* Editorial design system adapted from the supplied DESIGN.md. */
:root{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--cream);--font-body:"StyreneB","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;--font-display:"Copernicus","Tiempos Headline","Cormorant Garamond","EB Garamond",Georgia,"Noto Serif SC","Songti SC",serif;--cream:#faf9f5;--paper:#f5f0e8;--card:#efe9de;--strong-cream:#e8e0d2;--primary:#cc785c;--primary-active:#a9583e;--ink:#141413;--body:#3d3d3a;--muted:#6c6a64;--line:#e6dfd8;--soft-line:#ebe6df;--dark:#181715;--dark-elevated:#252320;--on-dark:#faf9f5;--on-dark-soft:#a09d96;--white:#ffffff;--success:#5db872;--success-ink:#28633a;--success-soft:#eef5ee;--warning:#d4a017;--warning-ink:#805b12;--warning-soft:#faf1dd;--error:#c64545;--error-soft:#faeeee;--focus:0 0 0 3px #cc785c26;--shadow:none;--green:var(--primary);--green-ink:var(--ink);--brown:var(--muted);--field-line:var(--line)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background-color:var(--cream);background-image:none;line-height:1.65}a{color:var(--green-ink);text-underline-offset:4px}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{transition:background-color .55s ease-in-out,border-color .55s ease-in-out,box-shadow .55s ease-in-out,transform .55s ease-in-out,color .55s ease-in-out}button{cursor:pointer;min-height:44px;padding:10px 22px;border:1px solid var(--field-line);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:none;font-weight:600}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:4px}input,textarea,select{width:100%;min-width:0;min-height:48px;border:1px solid var(--field-line);border-radius:8px;background:var(--cream);padding:12px 16px;color:var(--ink);font-size:16px;box-shadow:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus,textarea:focus,select:focus{outline:2px solid var(--green);outline-offset:2px;box-shadow:none;background:var(--paper)}input:disabled,select:disabled{background:var(--paper)}textarea{resize:vertical;line-height:1.7}label{display:block;font-size:15px;color:var(--muted);margin:20px 0 9px}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{color:var(--body);line-height:1.45;font-weight:700}h1{font-size:clamp(30px,3.6vw,46px);margin:0 0 16px;letter-spacing:0}h1>span{color:var(--green)}h2{font-size:24px;margin:0}h3{font-size:20px;margin:0 0 12px}p{margin:12px 0;max-width:74ch}small,.help,.muted{color:var(--muted)}small{font-size:14px}.help{font-size:14px;line-height:1.8}.error{font-size:14px;line-height:1.8;color:var(--error);overflow-wrap:anywhere}.error:empty{display:none}code{font:inherit;letter-spacing:.02em}strong{font-weight:700}.wide{grid-column:1/-1}
.site-header{min-height:88px;background:var(--cream);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:16px max(4vw,24px);box-shadow:none}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--body);font-size:26px;font-weight:700;white-space:nowrap}.brand small{font-weight:400;color:var(--muted);font-size:14px}.mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--card);color:var(--green-ink);font-size:34px;font-weight:400}.site-header nav{display:flex;gap:10px}.nav{box-shadow:none;background:transparent;border-color:transparent;color:var(--muted);font-weight:400}.nav.active{background:var(--card);border-color:var(--line);color:var(--green-ink);font-weight:600}.mode-pill{margin-left:auto;border:1px solid var(--line);background:var(--success-soft);color:var(--ink);border-radius:8px;padding:6px 14px;font-size:14px;white-space:nowrap}.admin-link{color:var(--muted);font-size:14px;white-space:nowrap}.admin-current-user{font-size:14px;color:var(--green-ink);white-space:nowrap}
.customer-main{max-width:1152px;margin:auto;padding:56px 32px 64px}.intro{position:relative;text-align:center;margin:0 auto 32px;padding:8px 0 28px;border-bottom:1px solid var(--line)}.intro:before{content:"❦";display:block;color:var(--green);font-size:34px;margin-bottom:12px}.intro p{margin:0 auto;color:var(--muted)}.intro h1{font-size:clamp(28px,3.3vw,40px)}.banner{max-width:860px;margin:0 auto 32px;border:1px solid var(--line);border-radius:8px;padding:14px 20px;background:var(--success-soft);color:var(--ink);font-size:14px;text-align:center}.panel{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:32px;box-shadow:none}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.section-title>small{font-size:14px;color:var(--muted);letter-spacing:0}.next-section{margin-top:28px}.form-actions{margin-top:24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dark-button,.primary{background:var(--green);color:var(--white);border-color:var(--green);box-shadow:none}.secondary{background:var(--paper);color:var(--body);border-color:var(--line)}.primary{width:100%}.input-row{display:flex;align-items:stretch;gap:12px}.input-row input{min-width:0}.input-row button{white-space:nowrap}.result{background:var(--success-soft);border:1px solid var(--line);border-radius:8px;padding:16px 20px;margin:20px 0;color:var(--ink);font-size:15px;line-height:1.8}.checkbox{display:flex;align-items:flex-start;gap:12px;line-height:1.8}.checkbox input{flex:0 0 20px;width:20px;min-height:20px;height:20px;accent-color:var(--green);margin:5px 0 0}.required{color:var(--error)}
.recharge-wizard{max-width:860px;margin:auto}.wizard-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;list-style:none;padding:0;margin:0 0 28px}.wizard-steps li{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:12px 10px;color:var(--muted);font-size:14px;background:var(--paper)}.wizard-steps li>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--card);color:var(--muted)}.wizard-steps li.active{background:var(--card);color:var(--ink);border-color:var(--line);font-weight:600}.wizard-steps li.active>span{background:var(--green);color:white}.wizard-steps li.complete{background:var(--success-soft);color:var(--ink);border-color:var(--line)}.wizard-panel{padding:32px 36px}.wizard-panel .form-actions{justify-content:flex-end}.wizard-panel .section-title{margin-bottom:24px}.wizard-error{margin:16px 0}.confirm-details{margin:24px 0;padding:0;border:0;background:transparent}.confirm-details h3{font-size:24px;color:var(--ink)}.confirm-details p{color:var(--muted)}.confirm-details dl{margin:24px 0 0}.confirm-details dl>div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--line)}.confirm-details dt{color:var(--muted)}.confirm-details dd{margin:0;text-align:right;overflow-wrap:anywhere;color:var(--ink)}.session-guide{padding:0 0 22px;margin:0 0 22px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}.session-guide h3{font-size:18px;color:var(--green-ink)}.session-guide ol{margin:0;padding-left:24px;font-size:15px;color:var(--muted);line-height:1.9}.session-guide li+li{margin-top:6px}.session-guide a{color:var(--green-ink);text-decoration:none;overflow-wrap:anywhere}.order-detail{max-width:860px;margin:28px auto}.order-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.order-progress>span{border-top:3px solid var(--line);padding-top:14px;color:var(--muted);font-size:14px}.order-progress>span.done{border-color:var(--green);color:var(--green-ink)}.order-content{margin:28px 0}.order-content p{margin:12px 0;color:var(--muted);font-size:16px}.order-content .order-product-name{font-weight:700;font-size:21px;color:var(--green-ink)}.order-detail>button{margin:0 8px 10px 0}.badge{display:inline-block;padding:5px 13px;border:1px solid var(--line);border-radius:8px;background:var(--success-soft);color:var(--success-ink);font-size:14px;white-space:nowrap}.badge.warning{background:var(--warning-soft);color:var(--warning-ink);border-color:var(--line)}.badge.danger{background:var(--error-soft);color:var(--error);border-color:var(--line)}
.lookup-panel{max-width:860px;margin:auto}.lookup-form .form-actions{justify-content:flex-end}.lookup-counts{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 18px}.lookup-count{display:inline-block;border:1px solid var(--line);background:var(--paper);color:var(--body);border-radius:8px;padding:5px 13px;font-size:14px;white-space:nowrap}.lookup-count.success{background:var(--success-soft);color:var(--success-ink);border-color:var(--line)}.lookup-count.processing{background:var(--warning-soft);color:var(--warning-ink);border-color:var(--line)}.lookup-count.invalid,.lookup-count.failed{background:var(--error-soft);color:var(--error);border-color:var(--line)}.lookup-result-card{padding:18px 24px;border:1px solid var(--line);background:var(--paper);border-radius:8px;margin:14px 0;box-shadow:none}.lookup-result-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.lookup-result-head code{font-size:17px;color:var(--ink);overflow-wrap:anywhere}.lookup-result-card dl{margin:0 0 12px}.lookup-result-card dl>div{display:flex;gap:16px;padding:4px 0}.lookup-result-card dt{flex:0 0 80px;color:var(--muted);font-size:14px}.lookup-result-card dd{margin:0;color:var(--ink);overflow-wrap:anywhere;font-size:14px}.lookup-result-card>button{font-size:14px;padding:8px 16px}.faq{max-width:860px;margin:48px auto 0}.faq h2{font-size:22px;margin-bottom:20px}.faq details{border-bottom:1px solid var(--line);padding:16px 0}.faq summary{cursor:pointer;color:var(--body);font-weight:600;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none}.faq summary:after{content:"+";color:var(--green);font-size:24px}.faq details[open] summary:after{content:"−"}.faq details p{font-size:15px;color:var(--muted);line-height:1.9}.faq summary::-webkit-details-marker{display:none}footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:0 auto;padding:28px 32px;max-width:1152px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}footer strong{color:var(--body);font-size:20px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:100;padding:14px 24px;max-width:calc(100vw - 32px);background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:none;font-size:15px}
.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 88px);max-width:1600px;margin:auto}.sidebar{padding:32px 20px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:7px}.sidebar:before{content:"❦";color:var(--green);font-size:34px;display:block;text-align:center;margin-bottom:18px}.sidebar button{text-align:left;box-shadow:none;color:var(--body);border-color:transparent;background:transparent;font-size:16px;padding:12px 20px;min-height:48px;font-weight:400}.sidebar button.active{background:var(--card);color:var(--ink);border-color:var(--line);font-weight:700}.sidebar small{color:var(--muted);line-height:1.9;margin:28px 12px 0;font-size:14px}.admin-main{min-width:0;padding:40px 36px 56px;background:transparent}.page-intro{position:relative;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line)}.page-intro:after{content:"✿";position:absolute;right:8px;top:4px;font-size:30px;color:var(--ink)}.page-intro h1{font-size:32px;margin-bottom:8px}.page-intro p{margin:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:28px}.metric{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:none}.metric small{display:block;margin-bottom:16px;font-size:14px}.metric strong{font-size:36px;line-height:1.25;color:var(--body)}.metric.highlight{background:var(--card);border-color:var(--line)}.metric.highlight strong{color:var(--ink)}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.admin-grid .panel h2{font-size:21px}.checklist{margin:20px 0}.checklist p{margin:9px 0;font-size:15px}.check-ok{color:var(--success-ink)}.check-pending{color:var(--warning-ink)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.toolbar h2{font-size:23px}.toolbar select{width:auto;font-size:15px;min-width:140px}.voucher-toolbar{justify-content:flex-start}.voucher-toolbar h2{margin-right:auto}.table-scroll{overflow:auto;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:none}table{border-collapse:collapse;min-width:740px;width:100%;font-size:15px;text-align:left}th{padding:16px 20px;background:var(--paper);color:var(--body);font-size:14px;font-weight:600;white-space:nowrap}td{padding:18px 20px;border-top:1px solid var(--line);vertical-align:top;max-width:300px;color:var(--ink);overflow-wrap:anywhere}td small{display:block;color:var(--muted);font-size:14px;margin-top:7px}td button{min-height:44px;padding:8px 14px;font-size:14px;margin:0 6px 8px 0;white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.form-grid label{margin-top:16px}.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px;font-size:16px}.pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px;margin:22px 0 28px;font-size:14px;color:var(--muted)}.pagination button{min-height:44px;padding:8px 16px}.admin-error{margin:0 0 20px}.audit-list p{border-bottom:1px solid var(--line);padding:16px 0;margin:0;font-size:15px}.audit-list small{display:block;color:var(--muted);margin-top:7px}.config-note{padding:18px 0;border-bottom:1px solid var(--line);color:var(--body);font-size:15px;line-height:1.8}.credential-row{display:flex;gap:12px;align-items:stretch}.credential-row input{flex:1;min-width:0}.credential-row button{white-space:nowrap}.points-result{padding:14px 0;margin-top:14px;color:var(--ink);font-size:15px}.points-result.error{color:var(--error)}.password-panel{max-width:640px}.password-panel .form-actions{justify-content:flex-end}.auth-panel{max-width:460px;margin:64px auto;padding:36px}.auth-panel:before{content:"❦";display:block;text-align:center;font-size:38px;color:var(--green);margin-bottom:14px}.auth-panel h2{text-align:center;font-size:28px}.auth-panel>.muted{text-align:center;font-size:15px}.auth-panel .primary{margin-top:28px}.auth-panel input{background:var(--cream)}
.voucher-dialog{width:min(650px,calc(100% - 32px));max-height:90vh;padding:32px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:none}.voucher-dialog::backdrop{background:var(--dark)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.modal-heading h2{font-size:28px}.modal-heading button{font-size:30px;padding:0;min-width:44px;border:0;background:transparent;box-shadow:none;color:var(--muted)}.voucher-dialog label{color:var(--muted)}.voucher-dialog .form-actions{justify-content:flex-end}.export-box{margin-top:28px;padding:22px 0 0;border-top:1px dashed var(--line);background:transparent;border-radius:0}.export-box textarea{font:inherit;margin-top:14px}.export-box strong{font-size:18px;color:var(--green-ink)}.batch-filters{display:grid;gap:16px;margin-bottom:24px}.batch-scope{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;color:var(--green-ink)}.batch-rate{display:flex;align-items:center;gap:12px;white-space:nowrap}.batch-rate progress{width:84px;height:8px;accent-color:var(--green)}.batch-rate span{font-size:14px}
.voucher-query{display:grid;grid-template-columns:1fr 1fr 1.4fr 1fr auto;gap:16px;align-items:start;margin-bottom:24px;padding:24px}.order-query{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(120px,.8fr) minmax(160px,1.2fr) minmax(160px,1.2fr) minmax(160px,1.2fr);gap:16px;align-items:start;padding:24px;margin-bottom:24px}.order-query>.time-picker{grid-column:1/3}.order-query>.order-query-submit{grid-column:3;justify-self:start;min-width:104px;height:48px}.order-query>input,.order-query>select,.order-query .time-trigger{height:48px}#order-table{width:100%;min-width:0}#order-table table{min-width:880px}#order-table th:first-child{width:29%}#order-table th:nth-child(2){width:27%}#order-table th:nth-child(3){width:12%}.time-picker{position:relative;min-width:0}.time-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;border-radius:8px;border:1px solid var(--field-line);background:var(--cream);color:var(--ink);padding:12px 16px;box-shadow:none;text-align:left;font-weight:400}.time-trigger span{color:var(--brown)}.time-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(420px,calc(100vw - 64px));z-index:20;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:none}.order-query .time-panel{left:0;right:auto}.time-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.time-shortcuts button{text-align:left;padding:8px 18px;box-shadow:none;background:var(--paper);border-color:var(--line);font-weight:400}.time-shortcuts button.selected{background:var(--card);color:var(--green-ink);border-color:var(--line)}.time-panel label{margin:22px 0 9px}.time-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}#discover-size{width:108px;flex:0 0 108px;min-height:44px;padding:8px 10px;font-size:14px}.busy{opacity:.7;pointer-events:none}
@media(max-width:1250px){.order-query{grid-template-columns:repeat(3,minmax(0,1fr))}.order-query>.time-picker{grid-column:3}.order-query>.order-query-submit{grid-column:1}.voucher-query{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-query>button{justify-self:start}}
@media(max-width:1050px){.brand small{display:none}.site-header{gap:20px}.admin-layout{grid-template-columns:190px minmax(0,1fr)}.admin-main{padding:32px 24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}.panel{padding:28px}.order-query{grid-template-columns:repeat(2,minmax(0,1fr))}.order-query>.time-picker{grid-column:2}.order-query>.order-query-submit{grid-column:1/-1;justify-self:end}}
@media(max-width:760px){.site-header{padding:16px 20px;flex-wrap:wrap;gap:12px}.brand{font-size:24px}.site-header nav{order:4;width:100%}.mode-pill{font-size:13px;padding:6px 11px}.admin-current-user{font-size:14px}.site-header .admin-link{font-size:14px}.site-header #logout{padding:8px 12px}.customer-main{padding:32px 20px 44px}.intro{margin-bottom:24px;padding-bottom:24px}.intro h1{font-size:28px}.intro p{font-size:15px}.banner{text-align:left;margin-bottom:24px}.wizard-steps{gap:8px;margin-bottom:24px}.wizard-steps li{flex-direction:column;gap:8px;padding:12px 6px;border-radius:8px;font-size:14px;text-align:center}.panel,.wizard-panel{padding:24px}.section-title{gap:12px;align-items:flex-start}.section-title h2{font-size:22px}.section-title small{font-size:14px}.confirm-details h3{font-size:21px}.confirm-details dl>div{flex-direction:column;gap:7px;padding:12px 0}.confirm-details dd{text-align:left}.order-progress{gap:10px}.order-progress>span{font-size:14px}.admin-layout{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow-x:auto;padding:14px 20px;gap:8px;border-right:0;border-bottom:1px solid var(--line)}.sidebar:before,.sidebar small{display:none}.sidebar button{white-space:nowrap;font-size:15px;padding:10px 18px}.admin-main{padding:28px 20px 40px}.page-intro h1{font-size:28px}.metric-grid{gap:14px}.metric{padding:20px}.metric strong{font-size:32px}.auth-panel{margin:32px 20px;padding:28px;max-width:none}.form-grid{grid-template-columns:1fr}.wide{grid-column:1}.credential-row{flex-direction:column}.credential-row button{align-self:flex-start}.order-query,.voucher-query{padding:20px}.lookup-result-card{padding:16px 20px}.lookup-result-head{align-items:flex-start}.lookup-result-card dl>div{gap:10px}.lookup-result-card dt{flex-basis:76px}.voucher-dialog{padding:24px}.modal-heading h2{font-size:25px}.batch-scope{flex-wrap:wrap}footer{padding:24px 20px;font-size:14px;justify-content:flex-start}footer>span:last-child{display:none}.toast{bottom:20px}}
@media(max-width:540px){.order-query,.voucher-query{grid-template-columns:minmax(0,1fr);gap:12px}.order-query>.time-picker,.order-query>.order-query-submit{grid-column:1}.order-query>.order-query-submit,.voucher-query>button{width:100%}.time-panel,.order-query .time-panel{left:0;right:auto;width:min(420px,calc(100vw - 80px));padding:20px}.form-actions{gap:10px}.input-row{flex-direction:column}.order-detail>button{padding:10px 18px}.section-title>small{max-width:94px;text-align:right}.brand .mark{width:38px;height:38px;font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.customer-main{padding-top:32px}.intro{margin-bottom:24px;padding-bottom:22px}.intro:before{position:absolute;right:16px;top:8px;margin:0;font-size:32px}.banner{margin-bottom:24px}.dark-button,.primary{background:var(--primary);border-color:var(--primary)}.wizard-steps li.active>span{background:var(--primary)}@media(max-width:760px){.intro:before{display:none}.customer-main{padding-top:28px}}
.intro h1{text-wrap:balance}@media(max-width:540px){.section-title>small{max-width:none;flex-shrink:0;font-size:12px;white-space:nowrap}.section-title h2{font-size:20px}}

/* Shared component hierarchy: cream canvas, restrained coral actions, dark product surfaces. */
body{color:var(--body);line-height:1.55;background:var(--cream)}
button,a,input,textarea,select,summary{transition:background-color .15s,border-color .15s,box-shadow .15s}
button{min-height:40px;padding:12px 20px;border-radius:8px;background:var(--cream);color:var(--ink);font-size:14px;font-weight:500;line-height:1.2;box-shadow:none}
button:active:not(:disabled){transform:none;background:var(--card)}
button:disabled{opacity:1;background:var(--line);color:var(--muted);border-color:var(--line)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
input,textarea,select{min-height:40px;padding:10px 14px;border-radius:8px;background:var(--cream);font-size:16px;color:var(--ink)}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--primary);box-shadow:var(--focus);background:var(--cream)}
input::placeholder,textarea::placeholder{color:var(--muted)}
h1,h2,h3{font-family:var(--font-display);font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1.2}
h1{font-size:48px}h2{font-size:28px}h3{font-size:22px}h1>span{color:var(--ink)}
code,#session,.export-box textarea{font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;font-size:14px;line-height:1.6}
a{color:var(--primary-active)}.help,small,label,.muted{color:var(--muted)}
.site-header{min-height:64px;padding:12px max(4vw,24px);background:var(--cream);box-shadow:none;gap:32px}
.brand{font-family:var(--font-display);font-size:26px;font-weight:400;color:var(--ink)}.brand small{font-family:var(--font-body)}
.mark{background:transparent;color:var(--ink);border-radius:0;width:28px;height:32px;font-size:30px}
.nav{font-size:14px;border-radius:8px}.nav.active{color:var(--ink);background:var(--card);border-color:transparent;font-weight:500}
.mode-pill{font-size:13px;background:var(--card);color:var(--body);border-color:transparent;border-radius:999px;padding:4px 12px}
.mode-pill:before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:var(--success)}
.customer-main{max-width:1200px;padding:40px 32px 64px}.intro{text-align:left;max-width:880px;margin:0 auto 24px;padding:0;border:0}.intro:before,.sidebar:before,.auth-panel:before,.page-intro:after{display:none}
.intro h1{font-size:clamp(32px,3.6vw,44px);font-weight:400;text-wrap:balance;margin-bottom:16px}.intro p{margin:0;font-size:16px}
.banner{max-width:880px;border:0;border-radius:8px;background:var(--card);color:var(--body);text-align:left;padding:12px 16px;font-size:14px;margin:0 auto 24px}
.recharge-wizard,.lookup-panel,.order-detail,.faq{max-width:880px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:none;padding:32px}
.wizard-panel{padding:32px}.wizard-steps{gap:0;margin-bottom:24px}.wizard-steps li{justify-content:flex-start;background:transparent;border:0;border-bottom:2px solid var(--line);border-radius:0;padding:12px 0 16px;font-size:14px;color:var(--muted)}
.wizard-steps li>span{width:24px;height:24px;background:var(--card);color:var(--muted);font-size:12px}.wizard-steps li.active{background:transparent;color:var(--ink);border-color:var(--primary);font-weight:500}.wizard-steps li.active>span{background:var(--dark);color:var(--on-dark)}.wizard-steps li.complete{background:transparent;color:var(--body);border-color:var(--body)}
.section-title h2{font-size:28px}.section-title small{font-size:13px}.dark-button,.primary{background:var(--primary);color:var(--white);border-color:var(--primary);font-weight:500;box-shadow:none}
.dark-button:active:not(:disabled),.primary:active:not(:disabled){background:var(--primary-active);border-color:var(--primary-active)}
.secondary{background:var(--cream);color:var(--ink);border-color:var(--line)}
.result{background:var(--card);border-color:var(--line);color:var(--body);border-radius:8px}
.confirm-details h3{color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:22px}.session-guide h3{color:var(--ink);font-family:var(--font-body);font-weight:500}.session-guide a{color:var(--primary-active)}
.order-progress>span.done{border-color:var(--primary);color:var(--ink)}.order-content .order-product-name{color:var(--ink);font-weight:700;font-size:20px}
.badge,.lookup-count{border-radius:999px;font-size:13px}.badge{background:var(--success-soft);border-color:var(--line);color:var(--success-ink)}
.lookup-result-card{border-radius:12px;box-shadow:none;background:var(--paper)}.faq{margin-top:64px}.faq h2{font-size:28px}.faq summary{font-weight:500;color:var(--ink)}.faq summary:after{color:var(--muted)}
footer{max-width:none;background:var(--dark);color:var(--on-dark-soft);border:0;padding:48px max(calc((100vw - 1136px)/2),32px);font-size:14px}footer strong{color:var(--on-dark);font-family:var(--font-display);font-weight:400}
.toast{background:var(--dark);color:var(--on-dark);border:0;border-radius:8px}
.admin-layout{grid-template-columns:216px minmax(0,1fr);min-height:calc(100vh - 64px)}.sidebar{background:var(--paper);padding:24px 16px;gap:4px}.sidebar button{font-size:14px;min-height:40px;padding:12px 16px;color:var(--muted);border-radius:8px}.sidebar button.active{background:var(--strong-cream);color:var(--ink);font-weight:500;border-color:transparent}
.admin-main{padding:32px 36px 48px}.page-intro{padding-bottom:24px;margin-bottom:24px}.page-intro h1{font-size:36px;font-weight:400;margin-bottom:12px}.toolbar h2{font-size:28px}.admin-grid .panel h2{font-size:26px}
.metric{border-radius:12px;background:var(--card);box-shadow:none;border:0}.metric strong{font-family:var(--font-display);font-size:40px;font-weight:400;color:var(--ink)}.metric.highlight{background:var(--dark);border:0}.metric.highlight strong{color:var(--on-dark)}.metric.highlight small{color:var(--on-dark-soft)}
.table-scroll{background:var(--cream);border-radius:12px;box-shadow:none}table{font-size:14px}th{background:var(--card);color:var(--muted);font-weight:500;padding:16px 20px}td{padding:16px 20px}td small{font-size:13px}
.auth-panel{margin:64px auto;padding:32px}.auth-panel h2{font-size:32px}.empty{border-radius:12px}.voucher-dialog{border-radius:16px;background:var(--cream);box-shadow:0 16px 64px #14141326}.voucher-dialog::backdrop{background:#18171566}.modal-heading button{color:var(--muted)}.export-box strong{color:var(--ink)}
.time-trigger{border-radius:8px;font-size:16px}.time-panel{border-radius:12px;background:var(--cream);box-shadow:0 4px 20px #14141314}.time-shortcuts button{border-radius:6px;background:var(--paper);border-color:var(--line)}.time-shortcuts button.selected{background:var(--card);color:var(--ink);border-color:var(--muted)}
.batch-rate progress{accent-color:var(--primary)}.points-result{color:var(--body)}
@media(max-width:1050px){.admin-layout{grid-template-columns:184px minmax(0,1fr)}.admin-main{padding:28px 24px}}
@media(max-width:760px){.site-header{padding:12px 20px;gap:12px}.customer-main{padding:28px 20px 48px}.intro h1{font-size:32px}.panel,.wizard-panel{padding:24px}.wizard-steps li{flex-direction:column;align-items:flex-start;padding:12px 6px;gap:8px;font-size:12px}.section-title h2{font-size:24px}.page-intro h1{font-size:32px}.admin-layout{grid-template-columns:1fr}.sidebar{padding:12px 20px;flex-direction:row}.sidebar button{font-size:14px}.admin-main{padding:24px 20px 40px}.auth-panel{margin:32px 20px}.toolbar h2{font-size:24px}.order-query,.voucher-query{padding:20px}.metric strong{font-size:32px}.faq{margin-top:48px}footer{padding:32px 20px}.section-title small{white-space:nowrap;font-size:12px}.voucher-dialog{padding:24px}}
@media(max-width:540px){.section-title h2{font-size:22px}.order-query,.voucher-query{grid-template-columns:minmax(0,1fr)}.time-panel,.order-query .time-panel{width:min(420px,calc(100vw - 80px))}}
button:disabled,.dark-button:disabled,.primary:disabled{background:var(--line);color:var(--muted);border-color:var(--line);opacity:1;box-shadow:none}

/* Service descriptions share the editorial palette and the recharge container. */
.service-benefits{max-width:880px;margin:40px auto 0;padding:28px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-benefit{display:flex;align-items:center;gap:16px;min-width:0}
.benefit-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:var(--card);color:var(--primary-active)}
.benefit-icon svg{width:24px;height:24px}
.service-benefit h3{font-family:var(--font-body);font-size:18px;line-height:1.4;letter-spacing:0;font-weight:600;margin:0 0 6px;color:var(--ink)}
.service-benefit p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
@media(max-width:760px){.service-benefits{gap:20px;margin-top:32px}.service-benefit{flex-direction:column;align-items:flex-start;gap:12px}.service-benefit h3{font-size:16px}.service-benefit p{font-size:13px}}
@media(max-width:540px){.service-benefits{grid-template-columns:1fr;gap:24px;padding-top:24px}.service-benefit{flex-direction:row;align-items:center;gap:16px}.service-benefit h3{font-size:18px}.service-benefit p{font-size:14px}}

/* Original card companion: masked type entrance and restrained pointer interaction. */
.motion-intro{display:grid;grid-template-columns:minmax(0,1fr) 176px;align-items:center;gap:24px;min-height:132px;margin-bottom:20px}
.motion-intro h1{font-size:clamp(30px,3.25vw,40px);margin-bottom:16px}.motion-title{display:inline;color:var(--ink)}.motion-letter{display:inline-block;animation:headline-enter .8s cubic-bezier(.22,1,.36,1) both}
.motion-letter:nth-child(1){animation-delay:0ms}
.motion-letter:nth-child(2){animation-delay:45ms}
.motion-letter:nth-child(3){animation-delay:90ms}
.motion-letter:nth-child(4){animation-delay:135ms}
.motion-letter:nth-child(5){animation-delay:180ms}
.motion-letter:nth-child(6){animation-delay:225ms}
.motion-letter:nth-child(7){animation-delay:270ms}
.motion-letter:nth-child(8){animation-delay:315ms}
.intro-copy>p{animation:caption-enter .9s .28s both}
.recharge-mascot{width:176px;pointer-events:none;--look-x:0px;--look-y:0px}.recharge-mascot svg{display:block;width:100%;overflow:visible}.mascot-card{fill:var(--primary);stroke:var(--primary-active);stroke-width:1.5}.mascot-limb,.mascot-smile{stroke:var(--ink);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.mascot-card-line{stroke:var(--on-dark);stroke-width:2;stroke-linecap:round;opacity:.65}.mascot-eye-white{fill:var(--cream)}.mascot-pupils{fill:var(--ink);transform:translate(var(--look-x),var(--look-y))}.mascot-cheek{stroke:var(--primary-active);stroke-width:4;stroke-linecap:round}.mascot-float{transform-origin:100px 110px;animation:card-breathe 4.8s ease-in-out infinite}.mascot-eyes{transform-box:fill-box;transform-origin:center;animation:card-blink 6s infinite}.mascot-shadow{fill:var(--strong-cream);animation:shadow-breathe 4.8s ease-in-out infinite;transform-origin:102px 135px}.mascot-spark{fill:var(--card);stroke:var(--primary-active);stroke-width:1.5;transform-origin:162px 99px;animation:spark-bob 5s ease-in-out infinite}.mascot-orbit{fill:var(--strong-cream);animation:orbit-bob 4s ease-in-out infinite}.mascot-wave{transform-origin:156px 43px;animation:card-wave 7s ease-in-out infinite}
.benefits-reveal .service-benefit{animation:benefit-enter .7s cubic-bezier(.22,1,.36,1) both}.benefits-reveal .service-benefit:nth-child(2){animation-delay:.1s}.benefits-reveal .service-benefit:nth-child(3){animation-delay:.2s}
.motion-paused .recharge-mascot *{animation-play-state:paused}
@keyframes headline-enter{from{opacity:0;transform:translateY(18px);clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@keyframes caption-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes card-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}
@keyframes shadow-breathe{0%,100%{transform:scaleX(1);opacity:.7}50%{transform:scaleX(.88);opacity:.45}}
@keyframes spark-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(9deg)}}
@keyframes orbit-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes card-wave{0%,7%,17%,100%{transform:rotate(0)}10%,14%{transform:rotate(14deg)}12%{transform:rotate(-10deg)}}
@keyframes benefit-enter{from{opacity:.5;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.motion-intro{grid-template-columns:minmax(0,1fr) 112px;gap:16px;min-height:120px}.recharge-mascot{width:112px}.motion-intro h1{font-size:32px}.intro-copy>p{font-size:14px}}
@media(max-width:540px){.motion-intro{grid-template-columns:minmax(0,1fr) 80px;gap:12px}.recharge-mascot{width:80px}.motion-intro h1{font-size:28px;line-height:1.3;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.motion-letter,.intro-copy>p,.recharge-mascot *, .benefits-reveal .service-benefit{animation:none!important;transform:none!important;clip-path:none!important;opacity:1!important}.mascot-pupils{transform:none!important}}

.unlock-dialog{width:min(560px,calc(100% - 32px))}.unlock-dialog #unlock-order-label{overflow-wrap:anywhere}.unlock-dialog>p{font-size:14px}.unlock-dialog .checkbox{margin-top:24px;font-size:14px}

/* Portrait receipt: keep the shareable result separate from operational controls. */
.order-detail{max-width:520px;margin:28px auto 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;scroll-margin-top:24px}
.order-receipt{padding:28px 32px 20px;background:var(--cream);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 12px #14141305}
.receipt-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--soft-line);font-size:12px;color:var(--muted)}
.receipt-brand{font-family:var(--font-display);font-size:22px;color:var(--ink)}
.receipt-status{text-align:center;padding:26px 0 0}.receipt-status-icon{width:64px;height:64px;margin:0 auto 16px;color:var(--primary-active)}
.receipt-status-icon svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.receipt-status-icon circle{fill:var(--paper);stroke:none}
.receipt-check,.receipt-cross,.receipt-question{display:none}
.receipt-state{font-family:var(--font-display);font-size:32px;font-weight:400;line-height:1.25;letter-spacing:-.02em;margin:0;color:var(--ink)}
.receipt-status>p{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.6}
.order-detail[data-status="success"] .receipt-status-icon{color:var(--success-ink)}.order-detail[data-status="success"] .receipt-status-icon circle{fill:var(--success-soft)}
.order-detail[data-status="failed"] .receipt-status-icon{color:var(--error)}.order-detail[data-status="failed"] .receipt-status-icon circle{fill:var(--error-soft)}
.order-detail[data-status="success"] .receipt-check,.order-detail[data-status="failed"] .receipt-cross,.order-detail[data-status="unknown"] .receipt-question{display:block}
.order-detail[data-status="success"] .receipt-clock,.order-detail[data-status="failed"] .receipt-clock,.order-detail[data-status="unknown"] .receipt-clock{display:none}
.order-detail .order-progress{gap:0;margin:28px 0;padding:0;position:relative}
.order-detail .order-progress>span{position:relative;text-align:center;padding:0;border:0;color:var(--muted);font-size:12px;line-height:1.5}
.order-detail .order-progress>span:before{content:"";position:relative;z-index:1;display:block;width:8px;height:8px;margin:0 auto 10px;border-radius:50%;background:var(--line);box-shadow:0 0 0 5px var(--cream)}
.order-detail .order-progress>span:not(:last-child):after{content:"";position:absolute;left:50%;right:-50%;top:3px;height:1px;background:var(--line)}
.order-detail .order-progress>span.done{color:var(--body)}.order-detail .order-progress>span.done:before{background:var(--primary)}
.order-detail[data-status="success"] .order-progress>span.done:before,.order-detail[data-status="success"] .order-progress>span.done:after{background:var(--success)}
.order-detail .order-content{margin:0}.receipt-product{text-align:center;padding:24px 0;border-top:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}
.receipt-product>span{color:var(--muted);font-size:12px}.order-detail .order-product-name{font-family:var(--font-body);font-weight:700;font-size:22px;color:var(--ink);line-height:1.4;margin:10px 0 0;overflow-wrap:anywhere}
.receipt-information{margin:24px 0 0;display:grid;gap:20px}.receipt-information>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:baseline}
.receipt-information dt{font-size:13px;color:var(--muted)}.receipt-information dd{margin:0;min-width:0;font-size:14px;line-height:1.6;color:var(--ink);text-align:right;overflow-wrap:anywhere}
.receipt-information dd.receipt-order-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.8;letter-spacing:-.02em}
.receipt-error{margin:24px 0 0;padding:14px 16px;background:var(--error-soft);border-radius:8px;font-size:13px;line-height:1.7}.receipt-error:empty{display:none}
.order-detail[data-status="unknown"] .receipt-error,.order-detail[data-status="processing"] .receipt-error{background:var(--paper);color:var(--body)}
.receipt-bottom{border-top:1px dashed var(--line);text-align:center;margin-top:28px;padding-top:16px;font-size:11px;color:var(--muted);letter-spacing:.02em}
.receipt-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px}.receipt-actions>button{margin:0;min-height:44px;flex:1 1 150px}.receipt-help{text-align:center;font-size:12px;line-height:1.7;margin:16px 12px 0}
@media(max-width:540px){.order-detail{max-width:440px;margin-top:24px;padding:0}.order-receipt{padding:24px 22px 18px;border-radius:12px}.receipt-state{font-size:30px}.receipt-information{gap:18px}.receipt-information>div{grid-template-columns:72px minmax(0,1fr);gap:12px}.receipt-information dd{font-size:13px}.receipt-information dd.receipt-order-id{font-size:11px}.receipt-product{padding:20px 0}.receipt-status{padding-top:24px}.receipt-actions{gap:10px}.receipt-actions>button{flex-basis:120px}.receipt-help{margin-left:0;margin-right:0}}
@media print{body:has(#order-detail:not([hidden])) .site-header,body:has(#order-detail:not([hidden])) .intro,body:has(#order-detail:not([hidden])) .banner,body:has(#order-detail:not([hidden])) #redeem-view,body:has(#order-detail:not([hidden])) #lookup-view,body:has(#order-detail:not([hidden])) .service-benefits,body:has(#order-detail:not([hidden])) footer,.receipt-actions,.receipt-help{display:none!important}body:has(#order-detail:not([hidden])) .customer-main{padding:0}.order-detail{max-width:520px;margin:0 auto}.order-receipt{break-inside:avoid;box-shadow:none}}
.order-receipt{padding:24px 28px 18px}.receipt-top{padding-bottom:16px}.receipt-status{padding-top:20px}.receipt-status-icon{width:52px;height:52px;margin-bottom:12px}.receipt-state{font-size:30px}.receipt-status>p{margin-top:10px}.order-detail .order-progress{margin:24px 0}.receipt-product{padding:20px 0}.receipt-information{margin-top:20px;gap:16px}.receipt-bottom{margin-top:22px;padding-top:14px}@media(max-width:540px){.order-receipt{padding:22px 20px 18px}.receipt-state{font-size:28px}}

/* Working view remains wide; the screenshot card is an independent square snapshot. */
.order-detail{max-width:880px;margin:28px auto 0;padding:32px 36px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:none}
.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.progress-heading h2{font-size:28px;margin:0}.progress-heading-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.snapshot-trigger{display:inline-flex;align-items:center;gap:8px;background:var(--cream);font-size:13px;min-height:40px;padding:10px 14px}.snapshot-trigger svg{width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}
.progress-caption{color:var(--muted);font-size:13px;margin:12px 0 0}.order-detail .order-progress{margin:28px 0 32px;gap:20px}.order-detail .order-progress>span{text-align:left;padding:12px 0 0;border-top:2px solid var(--line);font-size:14px;line-height:1.5}.order-detail .order-progress>span:before,.order-detail .order-progress>span:after{display:none}.order-detail .order-progress>span.done{border-color:var(--primary);color:var(--body)}.order-detail[data-status="success"] .order-progress>span.done{border-color:var(--success);color:var(--success-ink)}
.order-detail .receipt-product{padding:0 0 24px;text-align:left;border-top:0;border-bottom:1px solid var(--line)}.order-detail .receipt-product>span{font-size:12px}.order-detail .order-product-name{font-size:24px;margin:8px 0 0;font-weight:700;line-height:1.4}
.order-detail .receipt-information{grid-template-columns:1fr 1fr;column-gap:40px;row-gap:24px;margin-top:24px}.order-detail .receipt-information>div{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.order-detail .receipt-information dt{font-size:12px}.order-detail .receipt-information dd{text-align:left;font-size:15px}.order-detail .receipt-information dd.receipt-order-id{font-size:12px}
.order-detail .receipt-actions{justify-content:flex-start;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.order-detail .receipt-actions>button{flex:0 1 auto;min-width:116px}.order-detail .receipt-help{text-align:left;margin:16px 0 0;font-size:12px}
.result-snapshot-dialog{width:min(584px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:16px 12px 12px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 20px 70px #14141326}
.result-snapshot-dialog::backdrop{background:#18171566}.snapshot-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px 12px;font-size:13px;color:var(--muted)}.snapshot-dialog-toolbar button{min-width:36px;min-height:36px;padding:0;font-size:24px;border:0;background:transparent;color:var(--muted)}
.snapshot-card{aspect-ratio:1;min-height:500px;width:100%;padding:24px 28px;border:1px solid var(--line);border-radius:12px;background:var(--cream);display:flex;flex-direction:column}
.snapshot-card .receipt-top{padding-bottom:12px;font-size:11px}.snapshot-card .receipt-brand{font-size:20px}.snapshot-card .receipt-status{padding-top:16px}.snapshot-card .receipt-status-icon{width:40px;height:40px;margin-bottom:8px}.snapshot-card .receipt-state{font-size:28px;line-height:1.2}.snapshot-card .receipt-status>p{font-size:12px;margin-top:8px;line-height:1.5}
.snapshot-card[data-status="success"] .receipt-status-icon{color:var(--success-ink)}.snapshot-card[data-status="success"] .receipt-status-icon circle{fill:var(--success-soft)}.snapshot-card[data-status="failed"] .receipt-status-icon{color:var(--error)}.snapshot-card[data-status="failed"] .receipt-status-icon circle{fill:var(--error-soft)}
.snapshot-card[data-status="success"] .receipt-check,.snapshot-card[data-status="failed"] .receipt-cross,.snapshot-card[data-status="unknown"] .receipt-question{display:block}.snapshot-card[data-status="success"] .receipt-clock,.snapshot-card[data-status="failed"] .receipt-clock,.snapshot-card[data-status="unknown"] .receipt-clock{display:none}
.snapshot-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0;color:var(--muted);font-size:11px;text-align:center}.snapshot-progress span+span{border-left:1px solid var(--line)}
.snapshot-card .receipt-product{padding:14px 0;border-top:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}.snapshot-card .receipt-product>span{font-size:11px}.snapshot-card .order-product-name{margin:6px 0 0;font-size:21px;font-family:var(--font-body);font-weight:700;line-height:1.3;color:var(--ink);text-align:center}
.snapshot-card .receipt-information{margin:18px 0 0;gap:12px}.snapshot-card .receipt-information>div{grid-template-columns:76px minmax(0,1fr);gap:12px}.snapshot-card .receipt-information dt{font-size:12px}.snapshot-card .receipt-information dd{font-size:13px}.snapshot-card .receipt-information dd.receipt-order-id{font-size:11px}.snapshot-card .receipt-error{font-size:12px;margin-top:16px;padding:10px 12px}.snapshot-card[data-status="unknown"] .receipt-error{background:var(--paper);color:var(--body)}.snapshot-card .receipt-bottom{margin-top:auto;padding-top:16px;border-top:0;font-size:10px}.snapshot-dialog-help{margin:12px 4px 0;font-size:11px;color:var(--muted);text-align:center}
@media(max-width:760px){.order-detail{padding:24px}.progress-heading h2{font-size:24px}.progress-heading-actions{gap:10px}.order-detail .receipt-information{column-gap:24px}.order-detail .order-product-name{font-size:22px}}
@media(max-width:540px){.order-detail{padding:22px 20px}.progress-heading{align-items:flex-start;gap:12px}.progress-heading-actions{flex-direction:column;align-items:flex-end;gap:8px}.progress-heading h2{font-size:22px}.order-detail .order-progress{gap:14px;margin:24px 0}.order-detail .order-progress>span{font-size:12px}.order-detail .receipt-information{grid-template-columns:1fr;gap:18px}.order-detail .receipt-information>div{gap:6px}.order-detail .receipt-actions{gap:10px}.order-detail .receipt-actions>button{flex:1 1 120px}.snapshot-card{min-height:0;aspect-ratio:1;padding:20px 18px}.snapshot-card .receipt-state{font-size:26px}.snapshot-card .receipt-information>div{grid-template-columns:64px minmax(0,1fr);gap:8px}.snapshot-card .receipt-information dd{font-size:12px}.snapshot-card .receipt-information dd.receipt-order-id{font-size:10px}.snapshot-card .receipt-bottom{padding-top:20px}}
@media print{.result-snapshot-dialog[open]{position:static;display:block;max-height:none;border:0;padding:0;box-shadow:none}.result-snapshot-dialog[open] .snapshot-dialog-toolbar,.result-snapshot-dialog[open] .snapshot-dialog-help{display:none}body:has(.result-snapshot-dialog[open])>.site-header,body:has(.result-snapshot-dialog[open])>.customer-main,body:has(.result-snapshot-dialog[open])>footer{display:none!important}}
#order-caption:empty,#snapshot-caption:empty{display:none}

/* Session plan recognition is distinct from credential validity. */
.session-account-preview{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:20px 32px;padding:20px 22px;background:var(--cream);border:1px solid var(--line);border-radius:12px;color:var(--ink)}
.session-account-info,.session-plan-info{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;max-width:100%}.session-account-info{flex:0 1 auto}.session-plan-info{flex:0 0 auto}.session-info-label{font-size:12px;font-weight:400;color:var(--muted);line-height:1.5}.session-account-email{display:flex;align-items:center;min-height:35px;font-size:15px;font-weight:500;line-height:1.6;overflow-wrap:anywhere;color:var(--ink)}
.session-plan-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:15px;line-height:1.4;font-weight:600;overflow-wrap:anywhere;max-width:240px}
.session-plan-badge:before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:currentColor}
.session-plan-badge.plan-free{color:var(--success-ink);background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 32%,var(--cream))}
.session-plan-badge.plan-paid{color:var(--primary-active);background:color-mix(in srgb,var(--primary) 13%,var(--cream));border-color:color-mix(in srgb,var(--primary) 30%,var(--cream))}
.session-plan-badge.plan-unknown{color:var(--muted);background:var(--paper);border-color:var(--line);font-weight:400}
@media(max-width:540px){.session-account-preview{flex-direction:column;gap:16px;padding:18px}.session-plan-badge{font-size:14px;max-width:210px}.session-account-email{min-height:34px}}

.confirm-details dd .session-plan-badge{font-size:14px;padding:5px 12px;max-width:100%;text-align:left}
.confirmation-status{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:14px;font-weight:500;line-height:1.4;white-space:nowrap}
.confirmation-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.confirmation-status.status-valid{color:var(--success-ink);background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 32%,var(--cream))}
.confirmation-status.status-invalid{color:var(--error);background:var(--error-soft);border-color:color-mix(in srgb,var(--error) 25%,var(--cream))}
.confirmation-status.status-pending{color:var(--muted);background:var(--paper);border-color:var(--line);font-weight:400}

/* Inventory status uses the existing warm palette with clear semantic colors. */
.voucher-status{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:14px;font-weight:400;line-height:1.5;background:var(--paper);color:var(--muted);border-color:var(--line)}
.voucher-status::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:currentColor}
.voucher-status[data-status="available"]{background:var(--success-soft);color:var(--success-ink);border-color:#5db87235}
.voucher-status[data-status="reserved"]{background:var(--warning-soft);color:var(--warning-ink);border-color:#d4a01735}
.voucher-status[data-status="used"]{background:#cc785c14;color:var(--primary-active);border-color:#cc785c35}
.voucher-status[data-status="disabled"]{background:var(--error-soft);color:var(--error);border-color:#c6454530}

/* Order status follows the inventory palette and retains normal text weight. */
.order-status{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:14px;font-weight:400;line-height:1.5;background:var(--paper);color:var(--muted);border-color:var(--line)}
.order-status::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:currentColor}
.order-status[data-status="success"]{background:var(--success-soft);color:var(--success-ink);border-color:#5db87235}
.order-status[data-status="submitting"],.order-status[data-status="processing"]{background:var(--warning-soft);color:var(--warning-ink);border-color:#d4a01735}
.order-status[data-status="unknown"]{background:#cc785c14;color:var(--primary-active);border-color:#cc785c35}
.order-status[data-status="failed"]{background:var(--error-soft);color:var(--error);border-color:#c6454530}

/* Payment-card status shares the existing semantic palette. */
.card-status{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:14px;font-weight:400;line-height:1.5;background:var(--paper);color:var(--muted);border-color:var(--line)}
.card-status::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:currentColor}
.card-status[data-status="ready"]{background:var(--success-soft);color:var(--success-ink);border-color:#5db87235}
.card-status[data-status="reserved"],.card-status[data-status="checking"]{background:var(--warning-soft);color:var(--warning-ink);border-color:#d4a01735}
.card-status[data-status="review"]{background:#cc785c14;color:var(--primary-active);border-color:#cc785c35}
.card-status[data-status="disabled"]{background:var(--error-soft);color:var(--error);border-color:#c6454530}

.card-query{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 24px;margin-bottom:20px}
.card-query select{margin:0;min-width:0}
.card-query button{margin:0;min-width:84px}
@media(max-width:640px){.card-query{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px}.card-query button{justify-self:end}}

@media(max-width:760px){#show-result-card{display:none}}

.voucher-result-dialog{width:min(640px,calc(100% - 32px));padding:32px}
.voucher-result-dialog .modal-heading{margin-bottom:12px}
.voucher-result-summary{color:var(--muted);font-size:14px;margin:0 0 24px;overflow-wrap:anywhere}
.voucher-result-dialog .export-box{margin:0;padding:0;border:0}
.voucher-result-dialog .export-box label{color:var(--body);margin:0 0 10px}
.voucher-result-dialog #export-codes{margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;line-height:1.9;max-height:42vh;min-height:180px;resize:vertical;padding:18px;background:var(--cream)}
.voucher-result-dialog .export-box .form-actions{justify-content:flex-start;margin-top:18px}
.voucher-result-footer{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}
@media(max-width:540px){.voucher-result-dialog{padding:24px 20px}.voucher-result-dialog .modal-heading h2{font-size:24px}}

/* Mobile administration uses a modal navigation drawer. */
.admin-menu-toggle,.admin-menu-heading{display:none}
.admin-menu-dialog{display:contents}
@media(max-width:760px){
.admin-header{gap:12px;padding:12px 16px}
.admin-header .brand{font-size:22px;gap:8px}
.admin-header .brand small{display:none}
.admin-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 12px;font-weight:400;font-size:14px}
.admin-menu-toggle svg{width:18px;height:18px;stroke-linecap:round}
.admin-menu-dialog{display:none;position:fixed;inset:0 auto 0 0;margin:0;width:min(288px,85vw);height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-right:1px solid var(--line);background:var(--paper);color:var(--ink);overflow-y:auto;box-shadow:12px 0 40px #18171512}
.admin-menu-dialog[open]{display:block;animation:admin-drawer-enter .2s ease-out}
.admin-menu-dialog::backdrop{background:#18171550}
.admin-menu-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px;gap:16px;border-bottom:1px solid var(--line)}
.admin-menu-heading strong{font-size:18px;font-weight:400}
.admin-menu-heading button{min-width:40px;min-height:40px;padding:0;background:transparent;border:0;font-size:26px;color:var(--muted);font-weight:400}
.admin-menu-dialog .sidebar{display:flex;flex-direction:column;overflow:visible;padding:20px 16px;gap:6px;border:0;background:transparent}
.admin-menu-dialog .sidebar button{width:100%;text-align:left;white-space:normal;padding:12px 16px;font-size:15px}
.admin-menu-dialog .sidebar small{display:block;padding:0 4px;margin:24px 12px 0;font-size:12px}
.admin-body:has(.admin-menu-dialog[open]){overflow:hidden}
}
@keyframes admin-drawer-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.admin-menu-dialog[open]{animation:none}}

.credit-topup{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.credit-topup h3{font-size:18px;margin-bottom:16px}.credit-topup>button{margin-top:16px}.credit-topup .checkbox{font-size:14px}

.order-details-dialog{width:min(720px,calc(100% - 32px))}.order-details-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0 20px;border-bottom:1px solid var(--line)}.order-details-summary strong{font-size:20px;font-weight:500}.order-details-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin:24px 0}.order-details-fields>div{min-width:0}.order-details-fields dt{color:var(--muted);font-size:13px;margin-bottom:5px}.order-details-fields dd{margin:0;font-size:14px;color:var(--body);overflow-wrap:anywhere}.order-details-fields>div:first-child{grid-column:1/-1}.order-details-failure{padding:20px;background:var(--error-soft);border:1px solid #c6454530;border-radius:12px;margin-top:24px}.order-details-failure h3{color:var(--error);font-size:16px;margin:0 0 10px}.order-details-failure p{margin:0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.order-details-failure .order-details-handling{margin-top:12px;color:var(--muted)}.order-details-footer{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}@media(max-width:540px){.order-details-fields{grid-template-columns:1fr;gap:16px}.order-details-summary strong{font-size:18px}.order-details-failure{padding:16px}}

#audit-list table{min-width:1000px}#audit-list td:first-child{white-space:nowrap;font-size:13px}#audit-list td:nth-child(3){white-space:nowrap}#audit-list td:nth-child(4){min-width:180px}#audit-list td:nth-child(6){font-size:13px;white-space:nowrap}#audit-list td{font-size:14px}

#audit-list table{min-width:860px}#audit-list th,#audit-list td{padding:14px 12px}#audit-list td:nth-child(4){min-width:140px}#audit-list td button{margin:0;min-height:36px;padding:6px 10px}

.audit-generated-codes{padding-top:20px;border-top:1px solid var(--line)}.audit-generated-codes h3{font-size:16px;font-weight:400;margin:0 0 12px}.audit-generated-codes textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;line-height:1.8;max-height:40vh;resize:vertical}

/* Screenshot receipt: a compact horizontal product row aligned with the metadata. */
.snapshot-card .receipt-product{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;text-align:left;padding:14px 0}
.snapshot-card .receipt-product>span{font-size:12px;white-space:nowrap}
.snapshot-card .order-product-name{margin:0;font-size:20px;text-align:right;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:540px){.snapshot-card .receipt-product{grid-template-columns:64px minmax(0,1fr);gap:8px}.snapshot-card .order-product-name{font-size:18px}}

/* Confirmation details: bring values closer to their labels rather than the outer edge. */
.confirm-details dl>div{display:grid;grid-template-columns:minmax(132px,32%) minmax(0,1fr);align-items:center;column-gap:24px;row-gap:8px;padding:18px 0}
.confirm-details dd{text-align:left;min-width:0;line-height:1.6}
@media(max-width:540px){.confirm-details dl>div{grid-template-columns:1fr;gap:8px;padding:14px 0}}

.session-step-error{margin:16px 0 0;padding:12px 16px;background:var(--error-soft);border:1px solid #c6454530;border-radius:8px;font-size:14px;line-height:1.6}.session-step-error:empty{display:none}

#card-pool-size{width:108px;flex:0 0 108px;min-height:44px;padding:8px 10px;font-size:14px}

.card-bind-dialog{width:min(640px,calc(100% - 32px))}.card-bind-dialog .form-grid{grid-template-columns:1fr}.card-bind-dialog .form-actions{justify-content:flex-end}.bind-eligible-button{background:var(--success-soft);color:var(--success-ink);border-color:#5db87235;font-weight:400}#discovered td:nth-child(5) small{font-size:12px;max-width:180px}

/* Keep the screenshot result together in a compact, softly framed panel. */
.snapshot-card{aspect-ratio:auto;min-height:0;padding:20px 24px}
.snapshot-result{margin-top:16px;padding:18px 20px;border:3px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:20px;background:color-mix(in srgb,var(--paper) 24%,var(--cream));box-shadow:inset 0 0 0 1px #ffffff66}
.snapshot-card .receipt-status{padding-top:0}
.snapshot-card .receipt-status-icon{width:36px;height:36px;margin-bottom:8px}
.snapshot-card .receipt-state{font-size:26px}
.snapshot-card .snapshot-progress{margin:16px 0}
.snapshot-card .receipt-product{padding:12px 0}
.snapshot-card .receipt-information{margin-top:14px;gap:10px}
.snapshot-card .receipt-bottom{margin-top:16px;padding-top:0}
@media(max-width:540px){.snapshot-card{padding:18px 16px}.snapshot-result{padding:16px 14px}.snapshot-card .receipt-state{font-size:24px}}

.payment-verification-dialog{width:min(440px,calc(100% - 32px));padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--cream);color:var(--ink);box-shadow:0 20px 70px #14141326}
.payment-verification-dialog::backdrop{background:#18171566}
.payment-verification-mark{display:grid;place-items:center;width:44px;height:44px;margin-bottom:16px;border-radius:50%;background:var(--paper);color:var(--primary-active);font-size:24px}
.payment-verification-dialog h2{font-family:var(--font-display);font-size:26px;font-weight:400;margin:0 0 12px}
.payment-verification-dialog p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.payment-verification-dialog .form-actions{justify-content:flex-end;margin-top:24px;gap:12px}
.payment-verification-dialog .form-actions button{margin:0}
@media(max-width:540px){.payment-verification-dialog{padding:24px}.payment-verification-dialog .form-actions button{flex:1}}
