/* Rheinland Solutions service UI. Customer passes retain their own visual identity. */
:root{--navy:#10123f;--yellow:#f1e613;--line:#dfe0e8;--surface:#f5f5f8;--muted:#626579;--sans:'Avenir Next',Avenir,'Studio Sans','Segoe UI',sans-serif;--display:Baskerville,'Iowan Old Style','Palatino Linotype',Georgia,serif}
body{font-family:var(--sans);-webkit-font-smoothing:antialiased}
h1{font-size:clamp(34px,3.3vw,48px);letter-spacing:-1.3px}h1 em{font-style:normal}h2{font-size:28px;letter-spacing:-.6px}.lead{font-size:15px;line-height:1.7}.eyebrow{font-size:10px;letter-spacing:1.8px}
:is(button,a,summary):focus-visible{outline:2px solid var(--navy);outline-offset:4px;box-shadow:0 0 0 6px var(--yellow)}
:is(input,select,textarea):focus{outline:2px solid var(--navy);outline-offset:2px;box-shadow:0 0 0 5px #f1e61365}
.button,.tabs,.tabs button,.nav button,.bizpick select,.reader-shop>:is(select,strong,.button),.reader-retry,dialog .close{border-radius:0}
.button{min-height:48px;padding:13px 21px;font-size:13px;font-weight:600;letter-spacing:.1px;border-color:#c9cbd7;box-shadow:none}
.button.primary,.button.yellow{background:var(--yellow);border-color:var(--yellow);color:#10123f;box-shadow:none}
.button.primary:hover:not(:disabled),.button.yellow:hover:not(:disabled){background:#e6dc12;border-color:#e6dc12;color:#10123f}
.button:hover:not(:disabled){background:#f2f2f7;border-color:var(--navy)}
.button:disabled{opacity:.5}.button:active:not(:disabled){transform:translateY(1px)}
.inline-link{color:var(--navy);font-size:12px;line-height:1.6;text-decoration-thickness:1px}
.panel,.stat,.ops-card,.preview,.reader-result,.reader-wait,dialog{border-radius:2px;box-shadow:none}
.panel,.ops-card{padding:32px}.panel-title{margin-bottom:26px}.panel-title h2{font-size:28px}.panel-title .num{border:0;border-radius:0;background:var(--yellow);color:var(--navy)}
.sectionhead{font-size:11px;letter-spacing:1px;text-transform:uppercase}.section+.section{margin-top:32px;padding-top:32px}
.field>span{font-size:12px;line-height:1.5;margin-bottom:9px}
.field input:not([type=color]),.field select,.field textarea{border-radius:0;min-height:50px;background:#fff;font-size:16px;padding:12px 14px;border-color:#cdd0dc}
.field input[type=color]{height:50px;border-radius:0}.field input[readonly]{background:var(--surface);font-size:13px}.field textarea{min-height:130px}
.field input::placeholder{color:#777b8e}.logobox{border-radius:0}.note{border-radius:0;border-width:0 0 0 2px;border-left-color:var(--yellow);background:var(--surface);line-height:1.7}.note:empty{display:none}.checkrow{font-size:13px}.checkrow input{accent-color:var(--navy)}
.savebar{padding-top:24px;gap:16px}.savebar .button{min-width:130px}.badge,.chip,.num,.integration .bigicon,.customer-metrics{border-radius:0}.badge{background:white;padding:6px 8px;font-size:10px}.chip{background:#f6f2b4;padding:5px 8px}.integration .bigicon{background:white;border:0;border-bottom:2px solid var(--yellow)}
/* Admin: clear hierarchy, generous workspace and an anchored navigation. */
.layout{grid-template-columns:244px minmax(0,1fr)}.sidebar{padding:30px 20px 22px}.admin-partnership{padding:2px 5px 24px;border-bottom:1px solid var(--line);width:100%;margin:0}.admin-partnership img{width:100%;max-width:210px}.layout .product-name{font-size:9px;letter-spacing:1.4px;color:var(--muted);margin:28px 12px 14px}
.nav{gap:5px}.nav button{font-size:13px;min-height:48px;padding:13px 14px;gap:12px}.nav button.active{background:var(--navy);color:white;box-shadow:inset 3px 0 var(--yellow)}.nav button.active svg{color:var(--yellow)}.nav button:hover:not(.active){background:#eeeeF4;color:var(--navy)}.sidebottom{padding:24px 10px 0;font-size:11px}.sidebottom a{margin-bottom:18px}.sidebottom .badge{border:0;padding:0;font-weight:600;color:var(--navy)}
.topbar{min-height:84px;padding:18px 36px;gap:22px}.breadcrumb{font-size:11px}.bizpick{gap:16px}.bizpick select{height:46px;min-height:46px;max-width:240px;font-size:13px;border-color:#cdd0dc}.layout .admin-scanner{min-height:46px;font-size:12px;padding:12px 16px}.logout-link{padding:12px 0}
.content{padding:36px;max-width:1420px}.pagehead{margin-bottom:32px;align-items:center}.layout .pagehead h1{position:relative;padding-bottom:16px}.layout .pagehead h1:after{content:'';display:block;position:absolute;bottom:0;left:0;width:44px;height:3px;background:var(--yellow)}.layout .pagehead .lead{margin-top:12px}.workspace{gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,.86fr)}
.cards-grid{gap:20px}.stat{padding:26px 28px;border-top:2px solid var(--navy)}.stat small{font-size:12px}.stat strong{font:400 44px/1.1 var(--display);letter-spacing:-1px;margin:18px 0 6px}.stat:first-child{border-top-color:var(--yellow)}
.preview{background:#ededf3;padding:24px;top:24px}.previewlabel{font-size:11px;letter-spacing:0}.tabs{background:transparent;border-color:#cfd1dc;padding:3px;gap:3px}.tabs button{min-height:32px;padding:6px 12px;font-size:11px}.tabs button.active{background:var(--navy);color:white;box-shadow:none}.preview-counter input{accent-color:var(--navy)}
table{font-size:13px}th{padding:15px 14px;font-size:10px;background:#f5f5f9}th:first-child{padding-left:14px}td{padding:19px 14px}td:first-child{padding-left:14px}tbody tr:hover{background:#fafafd}.tablewrap{border-top:1px solid var(--line);margin-top:24px}td .button{min-height:40px;border-radius:0}.empty-state{padding:48px 24px}dialog{padding:36px;border-top:4px solid var(--yellow)}dialog::backdrop{backdrop-filter:none;background:#10123f88}dialog .close{background:white;font-size:26px}#toast{border-radius:0;border-left:3px solid var(--yellow);font-size:13px}
/* Public surfaces share the service typography; customer branding stays on the card. */
.service-brand{display:block;max-width:350px;min-width:0}.service-brand img{display:block;width:100%;height:auto}.public-header{min-height:98px;padding-block:24px}.public-header>.button{min-height:44px}.public-content{padding-top:48px;padding-bottom:56px}.public-content .panel{padding:32px}.public-content:has(#joinForm) .workspace{align-items:center}.public-content:has(#joinForm) .pagehead h1{font-size:clamp(32px,4vw,48px)}.public-content:has(#joinForm) h2{font-size:27px}.public-content:has(#joinForm) .button.primary{width:100%;margin-top:6px}.client-panel .wallet-offer .button{font-size:14px}.customer-branded .button{border-radius:0}.customer-branded .button.primary{background:var(--client-accent);border-color:var(--client-accent);color:#060709}.customer-branded .panel{border-radius:2px}.customer-branded .field input{background:#191b1d;color:var(--client-text);border-color:#39362e}.customer-branded .note{border-left-color:var(--client-accent);background:#191b1d}.customer-branded .inline-link{color:var(--client-text)}
/* Account access: one focused form, not a pile of floating boxes. */
.public-header.auth-header>.button{display:none}.public-content.auth-content{max-width:1160px;padding:48px 32px 64px}.auth-layout{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);min-height:590px;border:1px solid var(--line);background:white}.auth-story{background:var(--navy);color:white;padding:46px 42px;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-story:before{content:'';position:absolute;top:0;left:42px;width:48px;height:4px;background:var(--yellow)}.auth-story .eyebrow{color:#c1c3d5;font-size:10px;margin:0 0 44px}.auth-story h2{font:400 clamp(34px,3.5vw,45px)/1.14 var(--display);letter-spacing:-1px;max-width:360px}.auth-story h2 span{color:var(--yellow)}.auth-description{font-size:14px;line-height:1.8;color:#c9cbd9;margin-top:24px}.auth-stamp-art{display:flex;gap:12px;margin:46px 0 36px;padding:24px 0;border-block:1px solid #ffffff26}.auth-stamp-art span{width:48px;aspect-ratio:1;border:1px solid #ffffff40;border-radius:50%;display:grid;place-items:center}.auth-stamp-art span:nth-child(-n+3){background:var(--yellow);border-color:var(--yellow);color:var(--navy)}.auth-stamp-art svg{width:21px;height:21px}.auth-signature{margin-top:auto;font-size:9px;font-weight:600;letter-spacing:1.6px;color:#d2d4df}.auth-signature span{color:var(--yellow);margin:0 10px}
.auth-access{padding:48px 48px 36px;align-self:center;min-width:0}.auth-heading .eyebrow{margin-bottom:15px;font-size:9px}.auth-content .auth-heading h1{font:400 36px/1.14 var(--display);letter-spacing:-1px}.auth-heading .lead{font-size:14px;line-height:1.7;margin-top:14px}.auth-access form{margin-top:30px}.auth-access .field{margin-top:20px}.auth-access .field:first-child{margin-top:0}.auth-access .button.primary{width:100%;min-height:50px;margin-top:28px}.auth-help{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted)}.auth-help strong{font-weight:600;color:var(--navy)}.auth-help p{margin-top:6px}.auth-help .inline-link{font-size:12px}
/* Scanner: crisp frame, matched controls, clear confirmation. */
.reader{background:var(--surface)}.reader-header{min-height:84px;padding:18px clamp(20px,4vw,42px)}.reader-partnership{width:min(100%,300px)}.reader-header .reader-partnership{flex-basis:300px}.reader-logout{font-size:12px}.reader-shop{padding:16px clamp(18px,4vw,42px);gap:12px;grid-template-columns:repeat(2,minmax(0,240px))}.reader-shop>:is(select,strong,.button){min-height:48px;border-radius:0;font:600 13px/20px var(--sans);border-color:#cdd0dc}.reader-shop>.button{border-color:var(--navy)}.reader-square{border-radius:2px;background:var(--navy);box-shadow:0 0 0 1px #10123f10}.reader-square i{border-color:var(--yellow);opacity:1;width:30px;height:30px}.reader-retry{background:var(--yellow);color:var(--navy);font-weight:600;min-height:46px}.reader-tools{padding-top:22px}.reader-tools [role=status]{font-size:13px;line-height:1.6}.reader-tools [data-mode]{width:100%;margin-top:12px}.reader-tools summary{padding:16px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.reader-signup{background:white;border:1px solid var(--line)}.reader-result,.reader-wait{border-top:3px solid var(--yellow);padding:32px}.reader-result h1{font-size:clamp(32px,5vw,42px)}.reader-result .customer-metrics{padding:20px 0;background:white;border-block:1px solid var(--line);gap:12px;margin-top:24px}.customer-metrics dd{font:400 32px/1.1 var(--display);font-variant-numeric:tabular-nums;margin-top:10px}.customer-metrics dt{font-size:11px}.reader-result>.button.primary{width:100%;margin-top:6px}.reader-label{font-size:12px}.reader-result .reader-balance{border-top:0;padding-top:0;font-size:14px}
@media(min-width:1500px){.content{padding:44px 48px}.topbar{padding-inline:48px}.workspace{gap:32px}}
@media(max-width:1100px){.layout{grid-template-columns:212px minmax(0,1fr)}.sidebar{padding-inline:14px}.topbar{padding:16px 24px}.breadcrumb{display:none}.bizpick{width:100%;justify-content:flex-end}.content{padding:30px 24px}.panel{padding:24px}.workspace{gap:20px}.auth-story{padding:40px 30px}.auth-access{padding:40px 32px}.auth-story:before{left:30px}}
@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{height:auto;padding:22px 24px 0}.admin-partnership{width:255px;padding:0;border:0;margin:0}.admin-partnership img{width:100%;max-width:none}.nav{gap:4px;margin-top:22px;padding-bottom:12px}.nav button{min-height:44px;padding:11px 14px;font-size:12px;flex-shrink:0}.nav button.active{box-shadow:inset 0 -3px var(--yellow)}.topbar{padding:12px 24px}.content{padding:28px 24px}.workspace{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}.auth-layout{min-height:550px}.auth-access{padding:36px 28px}.auth-story{padding:36px 28px}.auth-story h2{font-size:36px}.auth-stamp-art{gap:8px}.auth-stamp-art span{width:40px}.public-content.auth-content{padding:32px 24px 48px}.auth-content .auth-heading h1{font-size:32px}}
@media(max-width:650px){h1{font-size:34px}h2{font-size:26px}.lead{font-size:14px}.public-header{padding:20px;min-height:82px}.service-brand{max-width:290px;width:100%}.public-content{padding:30px 20px 40px}.public-content .workspace,.workspace{grid-template-columns:minmax(0,1fr);gap:24px}.public-content .panel,.panel,.ops-card{padding:24px}.pagehead{display:block;margin-bottom:26px}.pagehead>.actions:not(:empty){margin-top:18px}.sidebar{padding:20px 18px 0}.content{padding:28px 18px}.nav{margin-top:18px}.topbar{padding:12px 18px}.bizpick{gap:10px;flex-wrap:wrap}.layout .bizpick{width:100%;grid-template-columns:minmax(0,1fr) auto;gap:10px}.bizpick select{max-width:none;font-size:12px}.layout .admin-scanner{padding-inline:12px;font-size:12px}.layout .bizpick .logout-link{padding:4px 0;min-height:28px}.cards-grid{grid-template-columns:1fr;gap:12px}.stat{padding:22px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.stat strong{margin:0;font-size:36px}.stat p{grid-column:1/-1}.twocol{gap:12px}.savebar{align-items:stretch;flex-direction:column;gap:14px}.save-status{max-width:none}.savebar .button{width:100%}.panel-title h2{font-size:26px}.preview{position:static;padding:22px 16px}.phone{max-width:306px}.public-content.auth-content{padding:24px 20px 40px}.auth-layout{display:block;min-height:0;border:0;background:none}.auth-story{display:none}.auth-access{padding:28px 24px;background:white;border:1px solid var(--line);border-top:4px solid var(--yellow)}.auth-content .auth-heading h1{font-size:36px;max-width:280px}.auth-access form{margin-top:28px}.auth-help{margin-top:28px;padding-top:22px}.public-header.auth-header{border-bottom:1px solid var(--line)}.auth-heading .eyebrow{letter-spacing:1.5px}.reader-header{min-height:78px;padding:18px 18px;gap:18px}.reader-header .reader-partnership{flex:1;max-width:270px}.reader-logout{font-size:11px}.reader-shop{padding:14px 18px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.reader-shop>:is(select,strong,.button){font-size:12px;min-height:48px;padding-inline:10px}.reader-stage{grid-template-rows:minmax(24px,1fr) auto minmax(160px,1fr);padding-inline:20px}.reader-square{width:min(100%,48svh,390px)}.reader-tools{width:min(100%,390px)}.reader-result,.reader-wait{padding:26px 22px;width:calc(100% - 36px)}.reader-result .customer-metrics{gap:8px}.customer-metrics dd{font-size:30px}.customer-metrics dt{font-size:10px}.reader-result .actions .button{width:100%}.client-panel .actions .button{width:100%}dialog{padding:30px 24px}.customer-branded .panel{padding:24px}}
@media(max-width:359px){.public-content.auth-content{padding-inline:14px}.auth-access{padding:26px 20px}.auth-content .auth-heading h1{font-size:32px}.reader-header{padding-inline:14px}.reader-shop{padding-inline:14px;gap:8px}.reader-shop>:is(select,strong,.button){font-size:11px;padding-inline:8px}.layout .admin-scanner{font-size:11px;padding-inline:9px}}
@media(prefers-reduced-motion:reduce){.button:active:not(:disabled){transform:none}}
/* Override the former single-column auth sizing, including its :has(#id) specificity. */
.public-content.auth-content:has(#loginForm,#setupForm,#registerForm){max-width:1160px;padding:48px 32px 64px}
.public-content.auth-content:has(#loginForm,#setupForm,#registerForm) h1{font-size:36px}
@media(max-width:900px){.public-content.auth-content:has(#loginForm,#setupForm,#registerForm){padding:32px 24px 48px}.public-content.auth-content:has(#loginForm,#setupForm,#registerForm) h1{font-size:32px}}
@media(max-width:650px){.public-content.auth-content:has(#loginForm,#setupForm,#registerForm){padding:24px 20px 40px}.public-content.auth-content:has(#loginForm,#setupForm,#registerForm) h1{font-size:36px}}
@media(max-width:359px){.public-content.auth-content:has(#loginForm,#setupForm,#registerForm){padding-inline:14px}.public-content.auth-content:has(#loginForm,#setupForm,#registerForm) h1{font-size:32px}}
.reader-result .customer-metrics dt{min-height:32px}
@media(max-width:650px){
 .layout .pagehead>.actions{align-items:stretch}.layout .pagehead>.actions>.button{flex:1 1 130px}
 .layout .tablewrap table{display:block;min-width:0;width:100%}.layout .tablewrap thead{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
 .layout .tablewrap tbody{display:block}.layout .tablewrap tr{display:block;border-bottom:1px solid var(--line);padding:20px 0}
 .layout .tablewrap td,.layout .tablewrap td:first-child{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:7px 0;border:0;min-width:0}
 .layout .tablewrap td:first-child{display:block;font-weight:600;padding-top:0;padding-bottom:12px}.layout .tablewrap td:first-child small{font-weight:400;font-size:11px;overflow-wrap:anywhere}
 .layout .tablewrap td:not(:first-child)[data-label]:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:400}
 .layout .tablewrap td:empty{display:none}.layout .tablewrap td:last-child:has(.button){padding-top:14px}.layout .tablewrap td .button{width:100%;min-height:44px}
}
/* Four primary areas; one home for each operation. Legacy section URLs remain valid. */
.section-nav{display:flex;align-items:stretch;gap:28px;border-bottom:1px solid var(--line);margin:-4px 0 28px;max-width:100%;overflow-x:auto}
.section-nav button{flex-shrink:0;min-height:46px;padding:12px 0;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font:500 13px/1.5 var(--sans);white-space:nowrap}
.section-nav button:hover{color:var(--navy)}.section-nav button[aria-current=page]{border-bottom-color:var(--yellow);font-weight:600;color:var(--navy)}
.settings-title{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.settings-title .lead{font-size:13px;margin-top:9px}.settings-title>.button{flex-shrink:0}
.overview-program{max-width:900px}.program-facts{margin:28px 0 24px;padding:24px 0;border-block:1px solid var(--line);display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:24px}.program-facts dt{font-size:11px;color:var(--muted);margin-bottom:8px}.program-facts dd{font-size:16px;line-height:1.6;margin:0;overflow-wrap:anywhere}
@media(max-width:650px){.section-nav{gap:22px;margin-bottom:24px}.section-nav button{font-size:12px}.settings-title{display:block}.settings-title>.button{margin-top:18px;width:100%}.program-facts{grid-template-columns:1fr;gap:20px;margin-top:24px}.program-facts dd{font-size:15px}}
@media(max-width:650px){.layout .nav{gap:3px;overflow:visible}.layout .nav button{flex:1;min-width:0;justify-content:center;padding:12px 4px;font-size:11px;letter-spacing:-.1px;white-space:normal;text-align:center}.layout .nav button svg{display:none}}
@media(max-width:359px){.layout .nav button{font-size:10px;padding-inline:2px}}
