:root{
  --bg:#f6f8fb;--surface:#fff;--surface-2:#f1f5f9;--ink:#173b63;--text:#324a62;--muted:#718198;--line:#dce5ee;
  --red:#ef3340;--red-dark:#cf2430;--navy:#1e4e7a;--navy-2:#2d638f;--green:#17734f;--amber:#a56a00;--danger:#b4232f;
  --shadow:0 18px 45px rgba(21,54,83,.09);--shadow-sm:0 8px 24px rgba(21,54,83,.07);--radius:22px;--radius-sm:14px;
  --header:72px;--max:1240px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}.header-inner{height:var(--header);max-width:var(--max);margin:auto;padding:0 22px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;font-size:1.24rem;font-weight:900;color:var(--ink);white-space:nowrap}.brand img{border-radius:50%;box-shadow:0 3px 10px rgba(239,51,64,.16)}.public-nav{display:flex;gap:4px;align-items:center}.public-nav a{padding:10px 13px;border-radius:11px;color:#4d647b;font-weight:750;font-size:.92rem}.public-nav a:hover,.public-nav a.active{background:#f0f5fa;color:var(--ink)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.language-select{height:40px;display:flex;align-items:center;gap:6px;padding:0 8px 0 11px;border:1px solid var(--line);background:#f8fafc;border-radius:999px;color:var(--ink);font-weight:800}.language-select select{border:0;background:transparent;color:inherit;outline:0;font-weight:800;max-width:92px}.lang-flag{font-size:.9rem}.header-user{display:flex;align-items:center;gap:8px}.avatar{width:36px;height:36px;border-radius:50%;background:#e9f1f8;color:var(--ink);display:grid;place-items:center;font-weight:900;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.header-user-name{font-size:.88rem;font-weight:800;color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-menu-button{display:none;width:40px;height:40px;border:0;background:transparent;border-radius:10px;padding:9px}.mobile-menu-button span{display:block;height:2px;background:var(--ink);margin:5px;border-radius:2px}.mobile-menu{background:#fff;padding:8px 20px 18px;box-shadow:0 14px 30px rgba(20,49,77,.08)}.mobile-menu a,.mobile-menu button{display:block;width:100%;text-align:left;padding:12px 10px;border:0;background:transparent;border-radius:10px;font-weight:800;color:var(--ink)}.mobile-menu a:hover,.mobile-menu button:hover{background:#f4f7fa}.app-main{min-height:calc(100vh - 140px);outline:0}.app-footer{max-width:var(--max);margin:0 auto;padding:24px 24px 30px;display:flex;justify-content:center;gap:10px;align-items:center;flex-wrap:wrap;color:#7b8998;font-size:.78rem}.footer-version:before{content:"•";margin-right:10px}.loading-screen{min-height:58vh;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid #dce5ee;border-top-color:var(--navy);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}

/* shared layout */
.page{max-width:var(--max);margin:0 auto;padding:28px 22px 44px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.page-title{margin:0;color:var(--ink);font-size:clamp(1.72rem,3vw,2.35rem);line-height:1.08;letter-spacing:-.035em}.page-subtitle{margin:7px 0 0;color:var(--muted);max-width:720px}.eyebrow{margin:0 0 7px;color:var(--red);font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900}.section-title{color:var(--ink);font-size:1.25rem;margin:0 0 12px}.stack{display:grid;gap:14px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.card-flat{box-shadow:none}.metric-card{padding:18px}.metric-label{font-size:.79rem;color:var(--muted);font-weight:800}.metric-value{color:var(--ink);font-size:1.65rem;font-weight:900;margin-top:4px;letter-spacing:-.03em}.metric-help{font-size:.76rem;color:var(--muted);margin-top:3px}.split-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:24px}.side-nav{position:sticky;top:calc(var(--header) + 20px);align-self:start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;box-shadow:var(--shadow-sm)}.side-nav .role-caption{padding:11px 12px 7px;color:var(--muted);font-size:.71rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.side-nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;color:#526981;font-size:.88rem;font-weight:800}.side-nav a.active,.side-nav a:hover{background:#eef5fb;color:var(--ink)}.side-nav .nav-dot{width:8px;height:8px;border-radius:50%;background:#b5c5d4}.side-nav a.active .nav-dot{background:var(--red)}.content-column{min-width:0}.subhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.subhead h2,.subhead h3{margin:0;color:var(--ink)}

/* buttons/forms */
.btn{border:0;border-radius:12px;padding:10px 15px;font-weight:850;display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:40px;transition:.16s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.btn-primary{background:var(--navy);color:#fff;box-shadow:0 8px 18px rgba(30,78,122,.18)}.btn-primary:hover{background:#183f64}.btn-red{background:var(--red);color:#fff}.btn-soft{background:#edf4fa;color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-danger{background:#fff1f2;color:var(--danger);border:1px solid #ffcdd2}.btn-small{padding:7px 10px;min-height:32px;border-radius:9px;font-size:.8rem}.btn-link{padding:0;border:0;background:transparent;color:var(--navy-2);font-weight:800}.form-card{max-width:660px;margin:0 auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field span,.field-label{color:#435b73;font-size:.78rem;font-weight:850}.field small{color:var(--muted)}.field input,.field select,.field textarea,.search-input{width:100%;border:1px solid #ccd8e4;background:#fff;color:var(--ink);border-radius:11px;padding:10px 12px;outline:0;min-height:42px}.field textarea{min-height:100px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#7ca7cc;box-shadow:0 0 0 3px rgba(69,127,174,.1)}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.form-note{font-size:.8rem;color:var(--muted)}.form-error{padding:10px 12px;border-radius:10px;background:#fff1f2;color:#ad2330;font-weight:750;font-size:.84rem}.form-success{padding:10px 12px;border-radius:10px;background:#eefaf5;color:#166a48;font-weight:750;font-size:.84rem}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #edf1f5}.toggle-row:last-child{border-bottom:0}.switch{position:relative;width:44px;height:24px}.switch input{position:absolute;opacity:0}.switch i{position:absolute;inset:0;border-radius:999px;background:#cbd5df;transition:.2s}.switch i:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.2s}.switch input:checked+i{background:var(--navy)}.switch input:checked+i:after{transform:translateX(20px)}

/* store */
.store-hero{background:linear-gradient(135deg,#eef7ff 0%,#fff 55%,#fff1f2 100%);border-bottom:1px solid var(--line)}.store-hero-inner{max-width:var(--max);margin:auto;padding:38px 22px 34px;display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:center}.store-hero h1{font-size:clamp(2.05rem,5vw,3.6rem);margin:0;color:var(--ink);letter-spacing:-.055em;line-height:1}.store-hero p{color:#60768d;max-width:650px;font-size:1rem}.hero-orb{justify-self:end;width:min(330px,100%);aspect-ratio:1.45;border-radius:28px;background:url('../assets/seed/tourism-04.jpg') center/cover;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-orb:after{content:"RYU Voucher Store";position:absolute;left:18px;bottom:16px;background:rgba(255,255,255,.9);color:var(--ink);font-weight:900;padding:9px 12px;border-radius:11px}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.filters .search-wrap{flex:1;min-width:220px;position:relative}.filters select{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;color:var(--text);min-height:42px}.voucher-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.voucher-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-width:0;transition:.17s ease}.voucher-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.voucher-image{height:148px;background:#e8eef5;overflow:hidden}.voucher-image img{width:100%;height:100%;object-fit:cover;display:block}.voucher-body{padding:14px 14px 12px;display:grid;gap:7px;flex:1}.voucher-meta{display:flex;align-items:center;gap:7px;justify-content:space-between;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.voucher-title{color:var(--ink);font-size:1rem;line-height:1.25;font-weight:900;margin:0}.voucher-merchant{color:#577089;font-size:.78rem;font-weight:700}.voucher-prices{display:flex;align-items:flex-end;gap:8px;margin-top:auto}.voucher-price{font-size:1.18rem;font-weight:900;color:var(--ink)}.voucher-value{font-size:.74rem;color:var(--green);font-weight:850}.stock{display:inline-flex;align-items:center;gap:5px;font-size:.71rem;font-weight:850}.stock.low{color:var(--amber)}.stock.exact{color:var(--navy-2)}.stock.sold_out{color:var(--danger)}.language-pills{display:flex;gap:4px;flex-wrap:wrap}.lang-pill{font-size:.62rem;padding:3px 6px;border-radius:999px;background:#eef3f7;color:#60758a;font-weight:800;text-transform:uppercase}.item-id{font-size:.67rem;color:#8794a2;font-weight:750}.merchant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.merchant-card{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:start}.merchant-logo{width:58px;height:58px;border-radius:16px;background:#f2f5f8;display:grid;place-items:center;color:var(--ink);font-weight:950;overflow:hidden}.merchant-logo img{width:100%;height:100%;object-fit:cover}.merchant-card h3{margin:0 0 3px;color:var(--ink);font-size:1rem}.merchant-card p{margin:4px 0;color:var(--muted);font-size:.78rem}.merchant-stats{display:flex;gap:12px;margin-top:7px;color:#506980;font-size:.7rem;font-weight:800}

/* detail */
.detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:26px;align-items:start}.detail-image{min-height:380px;border-radius:24px;overflow:hidden;background:#e8eef4}.detail-image img{width:100%;height:100%;min-height:380px;object-fit:cover}.detail-panel{display:grid;gap:15px}.detail-title{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.05;color:var(--ink);margin:0}.detail-price{display:flex;gap:14px;align-items:baseline}.detail-price strong{font-size:1.55rem;color:var(--ink)}.detail-price span{color:var(--green);font-weight:850}.detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fact{background:#f6f9fb;border:1px solid #e3eaf1;border-radius:12px;padding:10px}.fact b{display:block;color:var(--ink);font-size:.76rem}.fact span{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}.translation-tabs{display:flex;gap:6px;flex-wrap:wrap}.translation-tabs button{border:1px solid var(--line);background:#fff;color:#60758a;border-radius:999px;padding:6px 9px;font-weight:800;font-size:.72rem}.translation-tabs button.active{background:#eaf2f8;color:var(--ink);border-color:#aec6da}.terms{padding:13px;border-radius:12px;background:#f8fafc;color:#667b8f;font-size:.77rem}

/* tables */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:760px}.data-table th{text-align:left;padding:11px 12px;background:#f6f8fa;color:#64778b;font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid #edf1f4;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tr.archived td{color:#8794a2;background:#fafbfc}.data-table tr.archived .archive-name{text-decoration:line-through}.status-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef3f7;color:#576d82;font-size:.67rem;font-weight:900;text-transform:capitalize}.status-badge.approved,.status-badge.completed,.status-badge.active,.status-badge.redeemed{background:#eaf8f2;color:#176a4b}.status-badge.pending{background:#fff7df;color:#946000}.status-badge.rejected,.status-badge.failed,.status-badge.archived{background:#fff0f1;color:#a72732}.table-actions{display:flex;gap:5px;flex-wrap:wrap}.empty-state{text-align:center;padding:46px 18px;color:var(--muted)}.empty-state strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:5px}

/* dashboard/auth */
.auth-page{min-height:calc(100vh - var(--header) - 70px);display:grid;place-items:center;padding:36px 20px;background:radial-gradient(circle at 15% 10%,#eaf6ff 0,transparent 30%),radial-gradient(circle at 85% 20%,#fff0f2 0,transparent 28%)}.auth-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:900;margin-bottom:20px}.auth-brand img{width:42px;height:42px}.auth-card h1{margin:0;color:var(--ink);font-size:1.65rem;letter-spacing:-.035em}.auth-card .lead{color:var(--muted);font-size:.88rem;margin:6px 0 20px}.auth-links{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:13px;font-size:.79rem}.auth-links a,.auth-links button{color:var(--navy-2);font-weight:800;background:none;border:0;padding:0}.dashboard-banner{background:linear-gradient(135deg,#173b63,#28628d);color:#fff;border-radius:24px;padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px;box-shadow:var(--shadow)}.dashboard-banner h1{margin:0;font-size:1.75rem;letter-spacing:-.035em}.dashboard-banner p{margin:6px 0 0;color:#d7e5f1}.dashboard-banner .balance{font-size:1.7rem;font-weight:900;white-space:nowrap}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-actions a,.quick-actions button{padding:9px 12px;border-radius:11px;background:#f1f6fa;color:var(--ink);font-size:.78rem;font-weight:850;border:0}.qr-card{text-align:center}.qr-card img{width:min(260px,70vw);aspect-ratio:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px}.code-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;word-break:break-all;padding:9px;background:#f5f7f9;border-radius:9px;color:#53697d}.scanner{border:1px dashed #aec1d3;border-radius:18px;padding:14px;background:#f8fbfd}.scanner video{width:100%;max-height:330px;border-radius:14px;background:#0f1720}.scan-fallback{display:flex;gap:8px;margin-top:10px}.scan-fallback input{flex:1;min-width:0}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.support-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.support-target{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;cursor:pointer}.support-target.active{border-color:#7aa3c6;box-shadow:0 0 0 3px rgba(67,124,171,.08)}.support-target strong{color:var(--ink);display:block}.support-target small{color:var(--muted)}

.flash{position:fixed;right:18px;top:86px;z-index:80;max-width:min(430px,calc(100vw - 36px));padding:12px 14px;border-radius:12px;background:#173b63;color:#fff;box-shadow:var(--shadow);font-weight:800;font-size:.82rem}.flash.error{background:#a82a35}.flash.success{background:#166849}.modal-backdrop{position:fixed;inset:0;z-index:90;background:rgba(14,35,54,.38);display:grid;place-items:center;padding:18px}.modal{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 24px 70px rgba(9,31,51,.25);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.modal-head h2{margin:0;color:var(--ink)}.modal-close{width:34px;height:34px;border:0;background:#eef3f7;border-radius:50%;color:var(--ink);font-weight:900}.pill-row{display:flex;gap:6px;flex-wrap:wrap}.pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef3f7;color:#5c7185;font-size:.68rem;font-weight:850}.muted{color:var(--muted)}.tiny{font-size:.72rem}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:1050px){.voucher-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.merchant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:820px){.public-nav{display:none}.mobile-menu-button{display:block}.header-user-name{display:none}.store-hero-inner{grid-template-columns:1fr}.hero-orb{justify-self:start;width:100%;max-width:480px;height:190px;aspect-ratio:auto}.voucher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{display:block}.side-nav{position:static;display:flex;gap:5px;overflow-x:auto;margin-bottom:16px;border-radius:15px;padding:6px}.side-nav .role-caption{display:none}.side-nav a{white-space:nowrap;padding:9px 10px}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.detail-image,.detail-image img{min-height:280px}.settings-grid{grid-template-columns:1fr}.dashboard-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){:root{--header:64px}.header-inner{padding:0 14px;gap:10px}.brand span{font-size:1.04rem}.brand img{width:36px;height:36px}.language-select{height:36px;padding-left:8px}.language-select select{width:42px;color:transparent}.language-select select option{color:#111}.header-actions{gap:4px}.app-main{min-height:calc(100vh - 120px)}.page{padding:20px 14px 34px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:16px}.store-hero-inner{padding:27px 14px 24px}.store-hero h1{font-size:2.35rem}.hero-orb{height:150px}.voucher-grid{grid-template-columns:1fr}.voucher-card{display:grid;grid-template-columns:128px minmax(0,1fr)}.voucher-image{height:100%;min-height:158px}.voucher-body{padding:12px}.merchant-grid,.grid-2,.grid-3,.grid-4,.form-grid,.support-targets{grid-template-columns:1fr}.merchant-card{grid-template-columns:52px 1fr}.merchant-logo{width:52px;height:52px}.card{padding:16px;border-radius:17px}.auth-page{padding:22px 12px}.auth-card{padding:20px;border-radius:21px}.detail-facts{grid-template-columns:1fr}.detail-image,.detail-image img{min-height:230px}.dashboard-banner{padding:18px;border-radius:18px}.dashboard-banner h1{font-size:1.45rem}.filters{align-items:stretch}.filters .search-wrap{min-width:100%}.filters select{flex:1}.flash{top:72px;right:12px}.app-footer{padding-bottom:22px}.footer-version:before{display:none}.footer-version{width:100%;text-align:center}.scan-fallback{flex-direction:column}.mobile-menu-button{display:block}}

/* Portal list pagination */
.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:28px 0 8px;flex-wrap:wrap}

/* top-up mode selector */
.topup-options{display:grid;gap:8px}.topup-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;cursor:pointer}.topup-option input{margin-top:3px}.topup-option span{display:grid;gap:2px}.topup-option strong{color:var(--ink);font-size:.82rem}.topup-option small{color:var(--muted);font-size:.72rem}.topup-option.disabled{background:#f6f7f9;opacity:.62;cursor:not-allowed}

/* Portal 1.0.4 public pages and resilient error states */
.service-error{max-width:680px;margin:42px auto}.legal-page{max-width:900px;margin:0 auto;padding:28px 30px}.legal-page section{padding:18px 0;border-top:1px solid var(--line)}.legal-page section:first-of-type{border-top:0}.legal-page h2{margin:0 0 8px;color:var(--ink);font-size:1.08rem}.legal-page p{margin:0;color:#526980;line-height:1.72}.legal-effective{margin:0 0 10px!important;color:var(--muted)!important}.contact-form-wrap{max-width:820px;margin:0 auto;padding:28px}.portal-contact-form{display:grid;gap:16px}.portal-contact-form .field-error{display:none;color:var(--danger);font-size:.72rem;font-weight:700}.portal-contact-form .field-error.visible{display:block}.portal-contact-form input.is-invalid,.portal-contact-form textarea.is-invalid{border-color:#df7180;box-shadow:0 0 0 3px rgba(223,113,128,.09)}.captcha-block{border:1px solid var(--line);background:#f8fbfd;border-radius:16px;padding:15px}.captcha-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);font-size:.8rem}.captcha-row{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(220px,1fr);gap:16px;align-items:end;margin-top:10px}.captcha-image-wrap{min-height:74px;border:1px solid #d7e1ea;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}.captcha-image-wrap img{max-width:100%;height:72px;object-fit:contain}.contact-status{display:none;border-radius:11px;padding:11px 12px;font-size:.82rem;font-weight:750}.contact-status.visible{display:block}.contact-status.info{background:#eef4fa;color:var(--ink)}.contact-status.success{background:#eaf8f2;color:#176a4b}.contact-status.warning{background:#fff7df;color:#856000}.contact-status.error{background:#fff0f1;color:#a72732}
@media(max-width:700px){.legal-page,.contact-form-wrap{padding:18px}.captcha-row{grid-template-columns:1fr}.captcha-image-wrap{justify-content:flex-start}.portal-contact-form .form-grid{grid-template-columns:1fr}}

/* Portal 1.0.6 public layout refinements */
.auth-nav-link{padding:10px 4px;color:#355875;font-size:.9rem;font-weight:650;white-space:nowrap}.auth-nav-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.diagnostics-link{margin-left:10px;color:var(--navy-2);font-weight:750;text-decoration:underline;text-underline-offset:3px}.diagnostics-link[hidden]{display:none!important}
.legal-page{max-width:none;margin:0;padding:0}.legal-page section{padding:20px 0}.legal-effective{margin:0 0 12px!important}
.portal-contact-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:44px;align-items:start}.portal-contact-main{min-width:0}.portal-contact-form{width:100%;max-width:none}.portal-company-info{position:sticky;top:calc(var(--header) + 24px);border-left:1px solid var(--line);padding-left:30px;color:#526980}.portal-company-info .company-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.portal-company-info .company-logo{width:58px;height:58px;border-radius:50%}.portal-company-info h2{margin:0;color:var(--ink);font-size:1.05rem}.company-info-block{padding:18px 0;border-top:1px solid var(--line)}.company-info-block>strong{display:block;margin-bottom:8px;color:#5b748e;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}.company-info-block address{font-style:normal;display:grid;gap:4px}.company-info-block p{margin:0}.company-info-block .address-divider{height:8px}
@media(max-width:900px){.portal-contact-layout{grid-template-columns:1fr;gap:30px}.portal-company-info{position:static;border-left:0;border-top:1px solid var(--line);padding:26px 0 0}.header-inner{gap:16px}.public-nav a{padding-left:9px;padding-right:9px}}
@media(max-width:700px){.legal-page{padding:0}.portal-contact-layout{gap:24px}.portal-contact-main{width:100%}}

/* Portal 1.0.6 public polish */
.app-header{background:#fff;backdrop-filter:none;border-bottom:1px solid #edf1f5}
.language-select{background:#fff}
.public-nav a:hover,.public-nav a.active{background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
.hero-orb:after{display:none}
.auth-links-single{justify-content:flex-end}

/* Contact CAPTCHA is deliberately flat and aligned with the form. */
.portal-company-info{border-left:0;padding-left:0}
.captcha-block{border:0;background:transparent;border-radius:0;padding:0;margin-top:2px}
.captcha-heading{justify-content:flex-start;gap:7px}
.captcha-heading .captcha-refresh-link{border:0;background:transparent;color:var(--navy-2);padding:0 2px;min-width:24px;height:24px;font-size:1.05rem;line-height:1;border-radius:50%}
.captcha-heading .captcha-refresh-link:hover{background:transparent;color:var(--ink);transform:rotate(20deg)}
.captcha-row{grid-template-columns:minmax(250px,300px) minmax(250px,300px);justify-content:start;align-items:end;gap:18px}
.captcha-image-wrap{border:0;background:transparent;border-radius:0;justify-content:flex-start;min-height:72px}
.captcha-image-wrap img{width:300px;max-width:100%;height:72px;object-fit:contain;object-position:left center}
.captcha-field{width:100%}

/* Voucher / merchant public presentation */
.voucher-merchant-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px;padding:2px 0}
.voucher-merchant-link{color:var(--navy-2);font-weight:850;font-size:.88rem;text-decoration:underline;text-underline-offset:3px}
.merchant-chat-link{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--navy);border:1px solid var(--line);background:#fff;font-size:1rem;flex:0 0 auto}
.merchant-chat-link:hover{background:#f3f7fa}
.merchant-public-head{display:grid;grid-template-columns:88px minmax(0,1fr) 42px;gap:18px;align-items:center;margin-bottom:22px}
.merchant-public-logo{width:88px;height:88px;border-radius:22px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;font-weight:950;color:var(--ink);box-shadow:var(--shadow-sm)}
.merchant-public-logo img{width:100%;height:100%;object-fit:cover}
.merchant-public-copy .eyebrow{margin-bottom:4px}.merchant-public-copy .page-subtitle{margin-top:7px}
.merchant-profile-panel{padding:2px 0 6px}
.external-link{color:var(--navy-2);text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.detail-image img{image-rendering:auto}

@media(max-width:700px){
 .captcha-row{grid-template-columns:1fr;max-width:300px}
 .merchant-public-head{grid-template-columns:68px minmax(0,1fr) 38px;gap:12px}
 .merchant-public-logo{width:68px;height:68px;border-radius:18px}
}
.chat-icon{width:19px;height:19px;display:block}

/* Portal 1.0.8 public storefront, cart and progressive browsing */
:root{--bg:#fff}
body{background:#fff}
.app-main{background:#fff}
.app-header{background:#fff;border-bottom:1px solid #edf1f5;box-shadow:0 1px 0 rgba(23,59,99,.02)}
.header-inner{max-width:1320px}
.auth-nav-link{padding:10px 9px;color:#4d647b;font-size:.92rem;font-weight:750;line-height:1.2}
.auth-nav-link:hover{color:var(--ink);text-decoration:none}
.about-nav-link{padding:8px 11px;border-radius:999px;background:#f5f8fb;color:#49657f;font-size:.86rem;font-weight:750;white-space:nowrap}
.about-nav-link:hover{background:#edf4f9;color:var(--ink)}
.cart-nav-link{position:relative;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:var(--ink)}
.cart-nav-link:hover{background:#f3f7fa}.cart-nav-link[hidden]{display:none!important}.cart-nav-link svg{width:22px;height:22px}
.cart-badge{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:.66rem;font-weight:900;display:grid;place-items:center;border:2px solid #fff}
.cart-badge[hidden]{display:none!important}
.diagnostics-link{margin-left:8px;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none}
.diagnostics-link:hover,.diagnostics-link:focus{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}

/* Terms is deliberately flat, spacious and white. */
.legal-page{max-width:none;margin:0;padding:0;background:#fff}.legal-page section{padding:17px 0;border:0!important}.legal-page section+section{margin-top:4px}.legal-page h2{font-size:1.08rem}.legal-page p{max-width:1120px}.legal-effective{margin-bottom:18px!important}

/* Public metrics and browsing controls */
.store-hero{background:#fff;border-bottom:1px solid #edf1f5}.store-hero-inner{padding-top:36px;padding-bottom:34px}.store-hero p:not(.eyebrow){display:none}
.public-metrics{display:flex;gap:28px;flex-wrap:wrap;margin-top:24px}.public-metrics>div{display:grid;gap:2px}.public-metrics strong{font-size:1.45rem;color:var(--ink);letter-spacing:-.03em}.public-metrics span{font-size:.76rem;color:var(--muted);font-weight:750}
.browse-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 160px 135px auto;gap:9px;align-items:center}.browse-toolbar .search-wrap{min-width:0}.browse-toolbar select{min-width:0}
.browse-progress{display:flex;align-items:center;justify-content:center;gap:14px;min-height:48px;margin:24px 0 4px;color:var(--muted);font-size:.77rem}.load-more{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:7px 13px;font-size:.78rem;font-weight:800}.load-more:hover{background:#f5f8fb;border-color:#c8d6e2}.load-more:disabled{opacity:.55;cursor:wait}.all-loaded{color:#8c99a7}

/* Merchant discovery and storefront */
.merchant-list-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:30px;align-items:center;margin:4px 0 24px;padding:18px 0 22px;border-bottom:1px solid #edf1f5}.merchant-list-hero h1{margin:0;color:var(--ink);font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}.merchant-hero-art{height:150px;border-radius:24px;background:url('../assets/seed/retail-12.jpg') center/cover;box-shadow:var(--shadow-sm)}
.merchant-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:0 5px 18px rgba(21,54,83,.05);transition:.16s ease}.merchant-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.merchant-logo{background:#fff;border:1px solid #e8eef3}.merchant-logo img{object-fit:contain;padding:4px}.merchant-location{font-weight:700;color:#5e748a!important}.merchant-card-copy{min-width:0}
.merchant-store-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:34px;align-items:stretch;margin:4px 0 18px}.merchant-store-copy{padding:22px 0}.merchant-store-copy h1{margin:5px 0 9px;font-size:clamp(2rem,4vw,3.25rem);line-height:1;color:var(--ink);letter-spacing:-.05em}.merchant-store-copy>p:not(.eyebrow){max-width:720px;color:#5f7489}.merchant-store-photo{border-radius:28px;overflow:hidden;min-height:265px}.merchant-store-photo img{width:100%;height:100%;object-fit:cover}.merchant-store-copy .merchant-public-logo{width:78px;height:78px;border-radius:20px;margin-bottom:14px}.merchant-store-copy .merchant-public-logo img{object-fit:contain;padding:4px}.merchant-hero-stats{display:flex;gap:22px;flex-wrap:wrap;margin:18px 0}.merchant-hero-stats span{font-size:.78rem;color:var(--muted)}.merchant-hero-stats strong{display:block;font-size:1.35rem;color:var(--ink)}.merchant-store-links{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.merchant-store-links a{display:inline-flex;align-items:center;gap:6px;color:var(--navy-2);font-weight:800;font-size:.82rem}.merchant-store-links a:hover{text-decoration:underline;text-underline-offset:3px}.merchant-store-links .chat-icon{width:17px;height:17px}.merchant-profile-inline{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;padding:13px 0;color:#64798d;font-size:.78rem}.merchant-voucher-heading{margin-top:26px}.inline-sort{display:flex;gap:8px}.inline-sort select{border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px;color:var(--text)}

/* Product detail */
.voucher-detail-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.voucher-number{font-size:.74rem;color:#8a98a7;font-weight:750;letter-spacing:.02em}.detail-grid{grid-template-columns:minmax(0,1.12fr) minmax(370px,.88fr);gap:34px}.detail-image{min-height:470px;background:#f1f4f7}.detail-image img{min-height:470px}.detail-description{color:#526b82;line-height:1.65;margin:10px 0 0}.voucher-merchant-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.voucher-merchant-link{color:var(--navy);font-weight:850;font-size:.9rem;text-decoration:none}.voucher-merchant-link:hover,.voucher-merchant-link:focus{text-decoration:underline;text-underline-offset:3px}.merchant-mini-stats{display:flex;gap:13px;margin-top:3px;color:var(--muted);font-size:.7rem}.product-properties{display:grid;gap:0;margin:0;border-top:1px solid #edf1f5}.product-properties>div{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:10px 2px;border-bottom:1px solid #edf1f5}.product-properties dt{color:#526a80;font-size:.78rem;font-weight:800}.product-properties dd{margin:0;color:var(--ink);font-size:.78rem;text-align:right}.detail-price{padding:4px 0}.stock{font-size:.66rem;line-height:1.2;letter-spacing:.01em;text-transform:none}.stock.exact{color:#4f6c82}.stock.warning{color:#936200;font-weight:850}.stock.urgent{color:#b84e15;font-weight:900}.stock.critical{color:#b4232f;font-weight:950}.stock.sold_out{font-weight:900}.category-label{font-size:.68rem;color:#64798d}.item-id{margin-top:2px}

/* Cart */
.cart-list{display:grid;border-top:1px solid #edf1f5}.cart-row{display:grid;grid-template-columns:84px minmax(0,1fr) 90px auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #edf1f5}.cart-row img{width:84px;height:64px;object-fit:cover;border-radius:12px;background:#eef2f5}.cart-copy{display:grid;gap:2px}.cart-copy strong{color:var(--ink)}.cart-copy span,.cart-copy small{font-size:.74rem;color:var(--muted)}.cart-copy a:hover{text-decoration:underline;text-underline-offset:3px}.cart-quantity{display:grid;gap:3px;font-size:.68rem;color:var(--muted)}.cart-quantity input{width:76px;border:1px solid var(--line);border-radius:9px;padding:7px 8px}.cart-remove{border:0;background:transparent;color:#9c3340;font-size:.76rem;font-weight:800}.cart-remove:hover{text-decoration:underline}.cart-summary{display:flex;justify-content:flex-end;align-items:baseline;gap:18px;padding:16px 0;color:var(--muted)}.cart-summary strong{font-size:1.35rem;color:var(--ink)}.cart-signin{display:flex;justify-content:flex-end;align-items:center;gap:18px;flex-wrap:wrap;padding:8px 0 16px}.cart-signin p{margin:0;color:var(--muted);font-size:.8rem}.cart-row.unavailable{opacity:.58}

/* Merchant registration now uses the available screen width. */
.merchant-registration-form{display:grid;grid-template-columns:1fr 1.35fr;gap:24px;align-items:start}.merchant-registration-form fieldset{border:0;margin:0;padding:0}.merchant-registration-form legend{color:var(--ink);font-size:1.05rem;font-weight:900;margin-bottom:12px}.registration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.registration-grid .span-2{grid-column:1/-1}.merchant-registration-form textarea{min-height:78px}.registration-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;padding-top:2px}.registration-actions a{font-size:.8rem;color:var(--navy-2);font-weight:750}.registration-actions a:hover{text-decoration:underline;text-underline-offset:3px}

/* Support follows Contact instead of being a centered card. */
.support-page-form{width:100%;max-width:none;display:grid;gap:16px}.support-choice-row{display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid #edf1f5;padding-bottom:12px}.support-choice{cursor:pointer;color:#657a8e;font-size:.82rem;font-weight:750;padding:3px 0;border-bottom:2px solid transparent}.support-choice.active{color:var(--ink);border-bottom-color:var(--navy)}.support-page-form textarea{min-height:170px}

/* Contact remains flat. */
.portal-contact-layout{gap:48px}.portal-company-info{border-left:0!important}.captcha-block{border:0!important;background:transparent!important}.captcha-image-wrap{border:0!important}.captcha-heading .captcha-refresh-link{border:0!important;background:transparent!important;box-shadow:none!important}.captcha-row{grid-template-columns:300px 300px}.captcha-field input{max-width:300px}

.auth-page{background:#fff}

@media(max-width:1100px){.browse-toolbar{grid-template-columns:minmax(240px,1fr) 170px 150px auto}.browse-toolbar select[name="dir"]{grid-column:auto}.merchant-registration-form{grid-template-columns:1fr}.registration-actions{grid-column:1}}
@media(max-width:900px){.merchant-list-hero{grid-template-columns:1fr}.merchant-hero-art{display:none}.merchant-store-hero{grid-template-columns:1fr}.merchant-store-photo{min-height:220px}.browse-toolbar{display:flex}.browse-toolbar .search-wrap{flex:1 1 100%}}
@media(max-width:700px){.public-metrics{gap:18px}.public-metrics strong{font-size:1.15rem}.detail-grid{grid-template-columns:1fr}.detail-image,.detail-image img{min-height:260px}.merchant-mini-stats{flex-direction:column;gap:2px}.cart-row{grid-template-columns:64px minmax(0,1fr);gap:10px}.cart-row img{width:64px;height:54px}.cart-quantity,.cart-remove{grid-column:2}.cart-signin{justify-content:flex-start}.registration-grid{grid-template-columns:1fr}.registration-grid .span-2{grid-column:auto}.captcha-row{grid-template-columns:1fr;max-width:300px}.about-nav-link{display:none}}

/* Portal 1.0.8 final public browsing refinements */
body,.app-main{background:#fff}
.app-header{background:#fff}
.hero-orb:after{display:none!important;content:none!important}

/* Live public metrics */
.hero-metrics{display:flex;flex-wrap:wrap;gap:28px;margin-top:22px}
.hero-metrics>div{display:grid;gap:2px;min-width:115px}
.hero-metrics strong{color:var(--ink);font-size:1.42rem;line-height:1;font-weight:900;letter-spacing:-.035em}
.hero-metrics span{color:var(--muted);font-size:.74rem;font-weight:750}
.browse-heading{margin:2px 0 22px}
.browse-heading .page-title{margin-bottom:6px}
.browse-filters{display:grid;grid-template-columns:minmax(300px,1fr) 180px 160px 135px auto;gap:9px;align-items:center}
.browse-filters .search-wrap{min-width:0}

/* Manual progressive loading: footer stays reachable. */
.load-more-row{display:flex;align-items:center;justify-content:center;gap:14px;min-height:48px;margin:24px 0 3px;color:var(--muted);font-size:.75rem}
.load-more-btn{border:1px solid #d5e0e9;background:#fff;color:var(--ink);border-radius:999px;padding:7px 14px;min-height:32px;font-size:.76rem;font-weight:800;box-shadow:0 2px 7px rgba(21,54,83,.04)}
.load-more-btn:hover{background:#f7fafc;border-color:#bdcedc}
.load-more-btn:disabled{opacity:.55;cursor:wait}
.result-count,.all-loaded{font-size:.74rem;color:#7f8f9f}

/* Merchant discovery and public storefront */
.merchant-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:start}
.merchant-card .merchant-logo{width:64px;height:64px}
.merchant-card .merchant-stats{display:flex;gap:15px;flex-wrap:wrap}
.merchant-card .merchant-stats strong{color:var(--ink)}
.merchant-hero{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr);gap:34px;align-items:stretch;margin:5px 0 22px}
.merchant-hero-copy{padding:16px 0 8px;align-self:center}
.merchant-identity{display:flex;gap:18px;align-items:center;margin-bottom:10px}
.merchant-public-logo{width:82px;height:82px;border:1px solid #e5ecf2;border-radius:21px;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
.merchant-public-logo img{width:100%;height:100%;object-fit:contain;padding:5px}
.merchant-identity h1{margin:3px 0 0;color:var(--ink);font-size:clamp(2rem,4vw,3.35rem);line-height:1;letter-spacing:-.05em}
.merchant-hero-copy>p{max-width:700px;color:#5b7186;line-height:1.65}
.merchant-hero-metrics{display:flex;gap:28px;flex-wrap:wrap;margin:20px 0}
.merchant-hero-metrics span{display:grid;gap:2px;color:var(--muted);font-size:.72rem;font-weight:750}
.merchant-hero-metrics strong{color:var(--ink);font-size:1.4rem;line-height:1}
.merchant-chat-text{display:inline-flex;align-items:center;gap:7px;color:var(--navy-2);font-size:.8rem;font-weight:800}
.merchant-chat-text:hover{text-decoration:underline;text-underline-offset:3px}
.merchant-chat-text .chat-icon{width:18px;height:18px}
.merchant-hero-photo{min-height:300px;border-radius:28px;overflow:hidden;background:#eef3f6;box-shadow:0 10px 28px rgba(21,54,83,.08)}
.merchant-hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.merchant-info-strip{display:grid;grid-template-columns:1.6fr 1.2fr 1fr .8fr;gap:0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;margin-bottom:28px}
.merchant-info-strip>div{padding:13px 18px 13px 0;display:grid;gap:3px;min-width:0}
.merchant-info-strip span{font-size:.68rem;color:#8190a0;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.merchant-info-strip strong{font-size:.78rem;color:#49637b;overflow-wrap:anywhere}
.external-link{color:var(--navy-2);font-weight:750}
.external-link:hover{text-decoration:underline;text-underline-offset:3px}
.merchant-voucher-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}
.merchant-voucher-head h2{margin:0;color:var(--ink)}
.compact-sort{display:flex;gap:8px}
.compact-sort select{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:8px 10px}

/* Voucher information hierarchy */
.voucher-code{font-size:.7rem;color:#8292a2;font-weight:750;letter-spacing:.02em}
.voucher-description{color:#526b82;line-height:1.65;margin:9px 0 0}
.voucher-terms{margin-top:14px;padding-top:12px;border-top:1px solid #edf1f5;color:#647b90;font-size:.77rem;line-height:1.6}
.voucher-terms strong{color:var(--ink);font-size:.73rem}
.voucher-terms p{margin:4px 0 0}
.voucher-merchant-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}
.voucher-merchant-link{color:var(--navy);font-size:.9rem;font-weight:850;text-decoration:none}
.voucher-merchant-link:hover,.voucher-merchant-link:focus{text-decoration:underline;text-underline-offset:3px}
.merchant-inline-stats{display:flex;gap:14px;margin-top:3px;color:var(--muted);font-size:.69rem}
.voucher-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:0;border-top:1px solid #edf1f5}
.voucher-specs>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #edf1f5}
.voucher-specs dt{color:#687e91;font-size:.73rem;font-weight:800}
.voucher-specs dd{margin:0;color:var(--ink);font-size:.75rem;text-align:right}
.stock{font-size:.64rem!important;text-transform:none!important;letter-spacing:.01em!important;white-space:nowrap}
.stock-normal{color:#547088;font-weight:750}.stock-low{color:#8c6400;font-weight:800}.stock-urgent{color:#b25316;font-weight:900}.stock-critical{color:#b4232f;font-weight:950}
.item-id{font-size:.64rem;color:#9aa6b2;font-weight:700}

/* Wide merchant registration */
.merchant-registration-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 18px;width:100%;max-width:none;align-items:start}
.merchant-registration-form .field{min-width:0}
.merchant-registration-form textarea{min-height:82px}
.registration-span-2{grid-column:span 2}.registration-span-3{grid-column:1/-1}
.registration-actions{grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:3px;padding:0}
.later-link{color:var(--navy-2);font-size:.8rem;font-weight:750;text-decoration:none}
.later-link:hover{text-decoration:underline;text-underline-offset:3px}

/* Support is flat/full width like Contact. */
.support-form-wide{width:100%;max-width:none;display:grid;gap:16px}
.support-choice-row{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:0 0 10px;border-bottom:0}
.support-choice{display:flex;align-items:center;gap:7px;padding:5px 0;color:#667c90;font-size:.81rem;font-weight:750;border-bottom:2px solid transparent;cursor:pointer}
.support-choice.active{color:var(--ink);border-bottom-color:var(--navy)}
.support-form-wide textarea{min-height:180px}

/* Cart */
.cart-row{grid-template-columns:84px minmax(0,1fr) 110px 100px auto}
.cart-price{color:var(--ink);font-weight:850;text-align:right}
.cart-qty{display:grid;gap:3px;color:var(--muted);font-size:.68rem}
.cart-qty input{width:82px;border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff;color:var(--ink)}
.cart-summary{display:flex;justify-content:flex-end;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 0}
.cart-summary>div{display:grid;gap:2px;min-width:120px;text-align:right}
.cart-summary>div span{font-size:.7rem;color:var(--muted)}
.cart-summary>div strong{font-size:1.3rem;color:var(--ink)}

@media(max-width:1050px){
  .browse-filters{grid-template-columns:minmax(260px,1fr) 170px 150px auto}.browse-filters select[name="dir"]{grid-column:auto}
  .merchant-hero{grid-template-columns:1fr}.merchant-hero-photo{min-height:240px;max-height:330px}
  .merchant-info-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .merchant-registration-form{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-span-3{grid-column:1/-1}
  .cart-row{grid-template-columns:72px minmax(0,1fr) 90px auto}.cart-qty{grid-column:3}.cart-remove{grid-column:4}.cart-price{grid-column:3}
}
@media(max-width:760px){
  .hero-metrics{gap:17px}.hero-metrics strong{font-size:1.16rem}
  .browse-filters{display:flex}.browse-filters .search-wrap{flex:1 1 100%}
  .load-more-row{flex-direction:column;gap:8px}
  .merchant-info-strip{grid-template-columns:1fr 1fr}
  .merchant-voucher-head{align-items:flex-start;flex-direction:column}.compact-sort{width:100%}.compact-sort select{flex:1}
  .merchant-registration-form{grid-template-columns:1fr}.registration-span-2,.registration-span-3{grid-column:auto}
  .voucher-specs{grid-template-columns:1fr}.merchant-inline-stats{flex-direction:column;gap:2px}
  .cart-row{grid-template-columns:64px minmax(0,1fr);gap:10px}.cart-price,.cart-qty,.cart-remove{grid-column:2;text-align:left}.cart-summary{justify-content:flex-start}.cart-summary>div{text-align:left}
}
.cart-summary-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:14px;min-width:0!important;text-align:right!important}
.cart-clear{border:0;background:transparent;color:var(--muted);font-size:.74rem;font-weight:750;padding:4px 0}
.cart-clear:hover,.cart-clear:focus{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.cart-summary-actions{justify-content:flex-start;text-align:left!important}}

/* RYU 1.0.8 public-commerce refinements */
html,body,#app-shell,.app-main{background:#fff}
.app-header{border-bottom:0!important;box-shadow:0 4px 18px rgba(20,50,80,.035)}
.legal-page section{border:0!important;padding-bottom:0!important;margin-bottom:34px!important}
.store-hero,.merchant-list-hero{border-bottom:0!important}
.language-select{background:#fff;border:1px solid #dbe5ef;border-radius:999px;padding:7px 10px;box-shadow:none}
.language-select select{font-weight:750;background:transparent}
.about-nav-link,.about-nav-clean{background:transparent!important;border:0!important;padding:9px 8px!important;border-radius:10px!important}
.about-nav-link:hover,.about-nav-link:focus{background:#f3f7fb!important;text-decoration:underline;text-underline-offset:4px}
.public-nav a,.auth-nav-link{font-size:.94rem;line-height:1;align-items:center}
.public-nav a:hover,.auth-nav-link:hover{text-decoration:underline;text-underline-offset:6px}
.hero-metrics-polished{display:flex;gap:46px;margin-top:22px;flex-wrap:wrap}
.hero-metrics-polished>div{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center;min-width:120px}
.hero-metrics-polished .metric-icon{grid-row:1/3;font-size:1.15rem;color:#df3144;background:#fff1f3;border-radius:10px;width:32px;height:32px;display:grid;place-items:center}
.hero-metrics-polished strong{font-size:1.65rem;line-height:1;color:#173f73}
.hero-metrics-polished span:last-child{font-size:.72rem;color:#6b7f96;font-weight:700;margin-top:3px}
.browse-toolbar{grid-template-columns:minmax(250px,1fr) minmax(150px,190px) minmax(130px,170px) 42px!important;gap:10px}
.sort-dir-btn{width:42px;height:42px;border:1px solid #d7e2ee;border-radius:12px;background:#fff;color:#173f73;font-size:1.15rem;cursor:pointer}
.sort-dir-btn:hover{background:#f1f6fb;border-color:#b8cee2}
.voucher-card,.merchant-card{transform:none!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease!important}
.voucher-card:hover,.merchant-card:hover{transform:none!important;border-color:#a9c4de!important;box-shadow:0 12px 32px rgba(20,55,90,.10)!important}
.voucher-card{display:block;overflow:hidden}.voucher-card-main{display:block;color:inherit;text-decoration:none}
.voucher-merchant-link-card,.merchant-name-link,.merchant-website,.cart-merchant-link{color:#275d91;text-decoration:none}.voucher-merchant-link-card:hover,.merchant-name-link:hover,.merchant-website:hover,.cart-merchant-link:hover{text-decoration:underline;text-underline-offset:3px}
.voucher-value{display:none!important}
.voucher-prices{margin-top:12px}.voucher-price{font-size:1.35rem;font-weight:850;color:#173f73}
.stock{font-size:.69rem!important;font-weight:800!important;letter-spacing:.01em;padding:3px 7px;border-radius:999px}
.stock-normal{color:#4f6982;background:#eef4f8}.stock-low{color:#8a6400;background:#fff4cd}.stock-urgent{color:#a54700;background:#fff0e2}.stock-critical{color:#b22636;background:#fff0f2}
.category-link{color:#d9354b;text-decoration:none;font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;font-weight:850}.category-link:hover{text-decoration:underline;text-underline-offset:3px}
.merchant-card{display:grid!important;grid-template-columns:64px 1fr!important;gap:14px!important;padding:18px!important}
.merchant-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.merchant-title-row h3{margin:0}.merchant-category-chip{font-size:.7rem;font-weight:800;color:#d9354b;text-decoration:none;background:#fff1f3;padding:5px 8px;border-radius:999px;white-space:nowrap}.merchant-category-chip:hover{text-decoration:underline}
.merchant-address{color:#54708c!important;font-size:.8rem!important;margin:3px 0 8px!important;font-weight:700}.merchant-description{color:#71849a!important;font-size:.82rem!important;line-height:1.5!important}
.merchant-stats{display:flex;gap:8px!important;flex-wrap:wrap;margin-top:10px}.merchant-stats span{border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800}.merchant-stat-vouchers{background:#edf6ff;color:#245a88}.merchant-stat-redeemed{background:#edf9f3;color:#237250}
.view-more-tile{min-height:180px;border:1px dashed #b8cde0;border-radius:18px;background:#f8fbfe;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:#6b8095;padding:20px}.view-more-tile button{border:0;background:#173f73;color:#fff;border-radius:999px;padding:9px 15px;font-weight:800;cursor:pointer}.view-more-tile button:hover{background:#245a8b}.view-more-tile strong{color:#173f73}
.merchant-list-hero{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:44px;padding:42px 0 34px}.merchant-list-copy h1{font-size:3rem;margin:7px 0 10px;color:#173f73}.merchant-list-copy>p:not(.eyebrow){max-width:680px;color:#617a94}.merchant-hero-art{min-height:250px;border-radius:30px;background:url('../assets/seed/tourism-11.jpg') center/cover no-repeat}
.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.category-card{border:1px solid #dbe5ee;border-radius:22px;overflow:hidden;text-decoration:none;color:inherit;background:#fff;transition:border-color .18s,box-shadow .18s}.category-card:hover{border-color:#a9c4de;box-shadow:0 14px 34px rgba(20,55,90,.09)}.category-card img{width:100%;height:180px;object-fit:cover}.category-card>div{padding:18px}.category-card h2{margin:0 0 8px;color:#173f73}.category-card p{margin:0;color:#6b8096}.category-counts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.category-counts span{font-size:.76rem;font-weight:800;background:#f1f6fb;color:#315c84;padding:6px 9px;border-radius:999px}.category-counts.big span{font-size:.9rem}
.category-detail-hero{padding:10px 0 24px}.category-detail-hero h1{font-size:2.65rem;color:#173f73;margin:6px 0 8px}.category-preview{margin-bottom:34px}.subhead a{color:#245d91;text-decoration:none}.subhead a:hover{text-decoration:underline}
.back-row{display:flex;gap:16px;align-items:center;margin:0 0 18px}.back-row a{font-size:.82rem;color:#315f8d;text-decoration:none;font-weight:750}.back-row a:hover{text-decoration:underline}
.merchant-heading-line{display:flex;gap:18px;align-items:center}.merchant-heading-tools{display:flex;align-items:center;gap:10px}.merchant-language-select,#voucher-language-select{border:1px solid #d5e1ed;border-radius:999px;background:#fff;color:#173f73;padding:7px 10px;font-weight:750}
.merchant-hero-action-row{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:20px}.merchant-hero-stats{display:flex;gap:10px}.merchant-hero-stats span{padding:8px 11px;border-radius:12px;font-size:.78rem}.stat-vouchers{background:#edf6ff;color:#245a88}.stat-redeemed{background:#edf9f3;color:#237250}.merchant-hero-stats strong{font-size:1.15rem}.ask-question-link{display:flex;gap:7px;align-items:center;text-decoration:none;color:#245d91;font-weight:800}.ask-question-link:hover{text-decoration:underline}.merchant-website{text-decoration:none!important}.merchant-website:hover{text-decoration:underline!important}
.voucher-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.voucher-code{color:#7a8da1;font-size:.75rem;font-weight:750}.voucher-description{color:#58708a;line-height:1.65}.voucher-long-description{max-width:1180px;margin:40px auto 0;padding:10px 0 30px;font-size:1rem;line-height:1.72;color:#405a74}.voucher-long-description h2,.voucher-long-description h3{color:#173f73}.voucher-long-description img{display:block;width:min(100%,900px);max-height:520px;object-fit:cover;border-radius:22px;margin:24px auto}.rich-copy a,.more-info-link{color:#245d91}.more-info-link{display:inline-block;margin-top:14px;text-decoration:none;font-weight:800}.more-info-link:hover{text-decoration:underline}.detail-price span{display:none!important}.merchant-mini-stats span{font-size:.72rem;color:#6b8096}.voucher-merchant-link{text-decoration:none!important}.voucher-merchant-link:hover{text-decoration:underline!important}
.cart-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cart-heading h1{font-size:2.4rem;color:#173f73;margin:0}.icon-button{border:0;background:transparent;border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;font-size:1.1rem}.icon-button:hover{background:#f3f7fb}.icon-button.danger{color:#ad3542}.cart-row{border-top:0!important;border-bottom:1px solid #edf1f5!important}.cart-qty-inline{display:flex;align-items:center;gap:7px;font-size:.75rem;color:#687f96}.cart-qty-inline input{width:56px;border:1px solid #d7e2ed;border-radius:8px;padding:6px 7px;appearance:textfield}.cart-qty-inline input::-webkit-inner-spin-button{appearance:none}.cart-summary.refined{justify-content:flex-end!important;gap:18px;border-top:0!important}.cart-checkout{padding-left:18px!important;padding-right:18px!important}.cart-copy{gap:3px}.cart-merchant-link{font-size:.78rem}
.auth-split{max-width:1180px;margin:28px auto;display:grid;grid-template-columns:minmax(0,1fr) .9fr;gap:32px;align-items:stretch}.auth-wide-card{border:1px solid #dae5ef;border-radius:28px;padding:34px;background:#fff}.auth-photo{border-radius:28px;overflow:hidden;position:relative;min-height:520px}.auth-photo img{width:100%;height:100%;object-fit:cover}.auth-photo>div{position:absolute;left:24px;right:24px;bottom:24px;background:rgba(255,255,255,.94);padding:16px 18px;border-radius:18px;color:#173f73}.auth-photo strong,.auth-photo span{display:block}.auth-photo span{margin-top:5px;color:#5f7690}.auth-brand{display:flex;align-items:center;gap:10px;color:#173f73;text-decoration:none}.auth-brand img{width:42px;height:42px}.auth-wide-card h1{font-size:2rem;color:#173f73;margin:28px 0 8px}.auth-wide-card>p{color:#6c8198}.auth-captcha{margin-top:8px}.auth-captcha-row{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:end}.auth-captcha-row img{width:230px;height:82px;object-fit:contain;border-radius:12px;background:#f8fafc}.stable-hover{transform:none!important}.stable-hover:hover{transform:none!important;background:#174b7d!important}.polished-links a{text-decoration:none}.polished-links a:hover{text-decoration:underline;text-underline-offset:3px}
.buyer-registration-form,.merchant-registration-wide{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 20px;max-width:1180px}.span-all,.span-2{grid-column:1/-1}.preference-fieldset{border:1px solid #dce6ef;border-radius:16px;padding:14px}.preference-fieldset legend{font-weight:800;color:#35516e}.preference-checks{display:flex;gap:12px 18px;flex-wrap:wrap}.preference-checks label{font-size:.82rem;color:#58718b}.merchant-registration-wide .btn,.buyer-registration-form .btn{transform:none!important}.merchant-registration-wide .btn:hover,.buyer-registration-form .btn:hover{transform:none!important}
.diagnostics-link{font-size:inherit!important;font-weight:inherit!important;text-decoration:none!important}.diagnostics-link:hover{text-decoration:underline!important;text-underline-offset:3px}
@media(max-width:900px){.merchant-list-hero,.auth-split{grid-template-columns:1fr}.merchant-hero-art{min-height:190px}.auth-photo{min-height:260px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.browse-toolbar{grid-template-columns:1fr 1fr!important}.sort-dir-btn{width:100%}}
@media(max-width:650px){.category-grid{grid-template-columns:1fr}.buyer-registration-form,.merchant-registration-wide{grid-template-columns:1fr!important}.auth-captcha-row{grid-template-columns:1fr}.auth-captcha-row img{width:100%;max-width:230px}.merchant-title-row{flex-direction:column;gap:6px}.merchant-hero-action-row{align-items:flex-start;flex-direction:column}.hero-metrics-polished{gap:18px}.merchant-list-copy h1{font-size:2.25rem}}

/* Portal 1.0.8 final interaction refinements */
.app-header{border-bottom:0!important;box-shadow:none!important}
.store-hero,.merchant-list-hero{border-bottom:0!important}
.voucher-card-detail-link{color:inherit;text-decoration:none}.voucher-card-detail-link:hover{text-decoration:none}
.rich-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.rich-toolbar button{border:1px solid #d8e3ed;background:#fff;color:#244d75;border-radius:8px;padding:5px 8px;min-width:34px;cursor:pointer;font:inherit;font-size:.74rem}.rich-toolbar button:hover{background:#edf5fb;border-color:#b8cde0}
.voucher-translation-editor textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.profile-wide-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.55fr);gap:24px;align-items:start}
.auth-wide-card .btn,.auth-card .btn,.registration-actions .btn{transform:none!important;transition:background-color .16s ease,box-shadow .16s ease,border-color .16s ease!important}
.auth-wide-card .btn:hover,.auth-card .btn:hover,.registration-actions .btn:hover{transform:none!important}
.auth-links a,.later-link{transition:color .15s ease;text-decoration-color .15s ease}.auth-links a:hover,.later-link:hover{text-decoration:underline!important;text-underline-offset:3px}
.public-nav{border:0!important}.app-main{border-top:0!important}
.merchant-list-hero{border:0!important}
@media(max-width:900px){.profile-wide-grid{grid-template-columns:1fr}}

/* Portal 1.0.16 visual refinements */
html,body,.app-main{background:#fff}
.app-header{border-bottom:0!important;box-shadow:none!important}
.public-eyebrow{color:#d84b61!important;font-size:.72rem!important;letter-spacing:.16em!important;font-weight:900!important;text-transform:uppercase!important}
.hero-metrics-polished{display:flex;gap:38px;flex-wrap:wrap;margin-top:24px}
.hero-metrics-polished>div{display:grid;grid-template-columns:32px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.hero-metrics-polished .metric-icon{grid-row:1/3;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#edf5fb;color:#245a88}
.hero-metrics-polished .metric-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-metrics-polished>div:nth-child(2) .metric-icon{background:#eef8f3;color:#2b7656}.hero-metrics-polished>div:nth-child(3) .metric-icon{background:#fff4e8;color:#a86a1d}
.hero-metrics-polished strong{font-size:1.55rem;line-height:1;color:#173f73}.hero-metrics-polished>div>span:last-child{font-size:.72rem;color:#6b8095;font-weight:750;margin-top:3px}
.store-hero{background:#fff!important;border:0!important}.store-hero-inner{padding-top:42px;padding-bottom:38px}.hero-orb:after{display:none!important}
.merchant-list-hero{border:0!important}.categories-hero-art{min-height:250px;border-radius:30px;background:url('../assets/seed/culture-08.jpg') center/cover no-repeat}

.browse-toolbar{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(150px,190px) minmax(160px,190px) minmax(140px,160px);gap:10px;align-items:center}
.merchant-store-toolbar{grid-template-columns:minmax(300px,1fr) minmax(170px,210px) minmax(140px,160px)!important}
.search-wrap{position:relative}.search-refresh{position:absolute;right:13px;top:50%;width:15px;height:15px;margin-top:-7.5px;border:2px solid #c9d7e4;border-top-color:#245a88;border-radius:50%;opacity:0;pointer-events:none}.search-wrap.is-refreshing .search-refresh{opacity:1;animation:ryu-spin .7s linear infinite}.search-wrap.is-refreshing input{padding-right:38px}@keyframes ryu-spin{to{transform:rotate(360deg)}}
.sort-direction-select{min-width:140px}

.voucher-card,.merchant-card,.category-card,.btn{transform:none!important}.voucher-card:hover,.merchant-card:hover,.category-card:hover{transform:none!important;border-color:#9ebdd8;box-shadow:0 12px 28px rgba(19,57,91,.10)}
.voucher-card .category-link{color:#3d6d88!important;background:#eef6fa;padding:4px 7px;border-radius:999px;text-decoration:none}.voucher-card .category-link:hover{text-decoration:underline}
.stock{padding:4px 7px;border-radius:999px;background:#f4f7fa}.stock.warning{background:#fff7df}.stock.urgent{background:#fff0e7}.stock.critical{background:#ffe9ec}
.merchant-category-chip{color:#376d83!important;background:#edf6f8!important}.merchant-category-chip:hover{background:#dfeff3!important}
.merchant-logo a{width:100%;height:100%;display:grid;place-items:center}.merchant-logo img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;padding:5px}.merchant-logo-fallback{display:grid;place-items:center;width:100%;height:100%;background:#eef5fa;color:#214d75;font-weight:900}
.merchant-stats span{border:0!important}.merchant-stat-vouchers{background:#edf5fd!important;color:#245b8b!important}.merchant-stat-redeemed{background:#edf8f2!important;color:#26704f!important}

.view-more-refined{min-height:100%;border:1px dashed #b9cddd!important;background:#fbfdff!important;display:grid!important;place-items:center!important}.view-more-refined>div{display:grid;gap:10px;text-align:center}.view-more-refined>div>span{font-size:.72rem;color:#7c8fa2}.view-more-refined button{background:#173f73!important;padding:9px 16px!important}
.browse-progress-line{text-align:center;color:#8394a5;font-size:.72rem;margin:14px 0 2px}

.merchant-topline,.voucher-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px}.back-store-link{font-size:.82rem;font-weight:800;color:#285f8d;text-decoration:none}.back-store-link:hover{text-decoration:underline;text-underline-offset:3px}.detail-language{display:flex;align-items:center;gap:6px}.detail-language select{border:1px solid #d5e1ed;border-radius:999px;background:#fff;color:#173f73;padding:7px 11px;font-weight:750}.detail-language>span{font-size:1rem}
.merchant-store-hero{position:relative}.merchant-heading-line{align-items:flex-start!important}.merchant-heading-text{min-width:0}.merchant-public-logo{position:relative;z-index:2;flex:0 0 82px}.merchant-public-logo img{object-fit:contain!important}.merchant-hero-category{display:inline-block;color:#3f7289;text-decoration:none;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.merchant-hero-category:hover{text-decoration:underline}
.merchant-info-grid{display:grid;grid-template-columns:1.3fr 1.3fr .85fr .75fr;gap:22px;padding:16px 0 18px;margin:8px 0 24px}.merchant-info-grid>div{min-width:0}.merchant-info-grid span{display:block;color:#8394a5;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;margin-bottom:5px}.merchant-info-grid strong,.merchant-info-grid a{font-size:.78rem;color:#47637e;text-decoration:none;overflow-wrap:anywhere}.merchant-info-grid a:hover{text-decoration:underline}
.merchant-store-toolbar{margin-top:10px}

.voucher-detail-grid{grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr)!important;align-items:start}.voucher-detail-grid .detail-image{height:520px;min-height:0!important}.voucher-detail-grid .detail-image img{height:100%;min-height:0!important;object-fit:cover}.voucher-detail-grid .detail-panel{padding-top:4px}.voucher-description{display:block!important;position:static!important;max-height:none!important;overflow:visible!important;color:#58708a!important}.voucher-code{align-self:flex-end;margin-bottom:2px}.voucher-specs{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;margin:0}.voucher-specs>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}.voucher-specs dt{font-size:.72rem;color:#71869a;font-weight:800}.voucher-specs dd{margin:0;color:#24476a;font-size:.75rem;text-align:right}.more-info-row{display:grid;grid-template-columns:120px 1fr;align-items:start;gap:14px;padding:13px 0;border-bottom:1px solid #edf1f5}.more-info-row strong{font-size:.78rem;color:#526a80}.more-info-row a{font-size:.78rem;color:#245d91;text-decoration:none;overflow-wrap:anywhere}.more-info-row a:hover{text-decoration:underline}.voucher-actions .btn{transform:none!important}.voucher-actions .btn:hover{transform:none!important}.voucher-long-description{border-top:0!important;margin-top:30px!important;padding-top:18px!important}.voucher-long-description>h2{margin:0 0 14px}

.cart-heading{padding-bottom:4px}.cart-row{border:0!important;border-bottom:1px solid #edf1f5!important}.cart-row .icon-button{font-size:.9rem}.edit-glyph{color:#7a91a6}.cart-checkout{min-width:92px;text-align:center;justify-content:center}

.auth-center-shell{max-width:720px;margin:44px auto;padding:0 20px}.auth-login-card,.auth-forgot-card{padding:34px 38px}.auth-title-row{display:grid;grid-template-columns:1fr 72px;gap:18px;align-items:center;margin:24px 0 26px}.auth-title-row h1{margin:0 0 3px!important}.auth-title-row p{margin:0!important;color:#6f8398}.auth-title-photo{width:72px;height:72px;object-fit:cover;border-radius:16px}.forgot-row{display:flex;justify-content:flex-end;margin-top:-4px}.forgot-row a,.registration-bottom-links a,.auth-links a{color:#285f8d;text-decoration:none;font-size:.78rem;font-weight:750}.forgot-row a:hover,.registration-bottom-links a:hover,.auth-links a:hover{text-decoration:underline;text-underline-offset:3px}.auth-links-bottom{display:flex;justify-content:space-between;margin-top:14px}.auth-forgot-card h1{margin-top:26px!important;margin-bottom:5px!important}.auth-forgot-card>p{margin-top:0;margin-bottom:24px}
.auth-captcha-row.compact-captcha{grid-template-columns:230px 170px!important;align-items:end}.auth-captcha-row.compact-captcha .field input{width:150px}.auth-captcha-row.compact-captcha .field{max-width:170px}
.registration-wide-page{max-width:1180px;margin:30px auto;padding:0 20px}.registration-wide-page>h1{color:#173f73;font-size:2.25rem;margin:22px 0 6px}.registration-wide-page>p{color:#6b8096;margin:0 0 24px}.buyer-registration-wide,.merchant-registration-wide{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px 20px!important;max-width:none!important}.plain-preferences{padding:4px 0}.plain-preferences>strong{display:block;color:#35516e;margin-bottom:10px}.preference-fieldset{border:0!important;padding:0!important}.registration-bottom-links{display:flex;justify-content:space-between;margin-top:12px}.registration-actions .btn{transform:none!important}
.field input.is-invalid,.field textarea.is-invalid,.field select.is-invalid{border-color:#d85868!important;box-shadow:0 0 0 3px rgba(216,88,104,.08)}.inline-field-error{display:none;color:#b23242;font-size:.7rem;margin-top:5px}.inline-field-error.visible{display:block}

.about-nav-link,.about-nav-clean{background:transparent!important;border:0!important;box-shadow:none!important}.about-nav-link:hover,.about-nav-clean:hover{background:transparent!important;text-decoration:underline!important;text-underline-offset:4px}
.language-select{background:#fff!important}.language-select select{padding-left:2px}

@media(max-width:900px){.browse-toolbar,.merchant-store-toolbar{grid-template-columns:1fr 1fr!important}.merchant-info-grid{grid-template-columns:1fr 1fr}.voucher-detail-grid{grid-template-columns:1fr!important}.voucher-detail-grid .detail-image{height:auto;min-height:300px!important}.voucher-detail-grid .detail-image img{min-height:300px!important}.buyer-registration-wide,.merchant-registration-wide{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.browse-toolbar,.merchant-store-toolbar{grid-template-columns:1fr!important}.merchant-info-grid{grid-template-columns:1fr 1fr}.auth-center-shell{margin:24px auto;padding:0 12px}.auth-login-card,.auth-forgot-card{padding:24px}.auth-title-row{grid-template-columns:1fr 56px}.auth-title-photo{width:56px;height:56px}.auth-captcha-row.compact-captcha{grid-template-columns:1fr!important}.buyer-registration-wide,.merchant-registration-wide{grid-template-columns:1fr!important}.merchant-topline,.voucher-topline{align-items:center}.voucher-specs{grid-template-columns:1fr}.more-info-row{grid-template-columns:1fr}.hero-metrics-polished{gap:18px}.hero-metrics-polished>div{grid-template-columns:28px auto}.hero-metrics-polished .metric-icon{width:28px;height:28px}}


/* Portal 1.0.16 polish */
:root{--public-radius:12px}
.app-header{border-bottom:0!important}.app-main{background:#fff!important}.page{background:#fff}
.public-eyebrow,.store-hero .eyebrow{color:#d83b4e!important;font-size:.72rem!important;letter-spacing:.16em!important}
.hero-metrics-polished{gap:34px!important}.hero-metrics-polished>div{grid-template-columns:38px auto!important;column-gap:10px!important}.hero-metrics-polished .metric-icon{width:38px!important;height:38px!important;border-radius:10px!important;display:grid!important;place-items:center!important}.hero-metrics-polished .metric-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hero-metrics-polished strong{font-size:1.72rem!important}.hero-metrics-polished>div>span:last-child{font-size:.73rem!important}
.store-hero-inner{padding-top:30px!important}.store-hero h1{margin-top:5px!important}.store-hero .hero-orb{background-image:url('../assets/seed/tourism-17.jpg')!important;border-radius:14px!important}.merchant-hero-art{background-image:url('../assets/seed/dining-28.jpg')!important;border-radius:14px!important}.categories-hero-art{background-image:url('../assets/seed/outdoors-31.jpg')!important;border-radius:14px!important}
.browse-toolbar{grid-template-columns:minmax(320px,1fr) minmax(165px,190px) minmax(190px,210px) minmax(150px,170px)!important}.merchant-store-toolbar{grid-template-columns:minmax(320px,1fr) minmax(190px,220px) minmax(150px,170px)!important}.sort-direction-select{min-width:150px!important;width:100%!important}
.voucher-card,.merchant-card,.category-card,.auth-card,.auth-wide-card,.field input,.field select,.field textarea,.filters input,.filters select,.btn,.detail-image,.merchant-store-photo{border-radius:var(--public-radius)!important}
.voucher-image{height:245px!important}.voucher-image img{height:100%!important;object-fit:cover}.voucher-body{padding:14px 15px 15px!important}.voucher-card:hover,.merchant-card:hover,.category-card:hover{transform:none!important}.btn:hover{transform:none!important}
.view-more-refined{border:1px dashed #bfd0de!important;border-radius:12px!important;background:#fff!important;min-height:220px!important;display:grid!important;place-items:center!important}.view-more-link{border:0;background:transparent;color:#245d91;font:inherit;font-weight:800;padding:10px 12px;cursor:pointer;text-decoration:none}.view-more-link:hover,.view-more-link:focus{text-decoration:underline;text-underline-offset:4px;color:#173f73}.browse-progress-line{font-size:.7rem!important;color:#8495a5!important;margin:11px 0 2px!important;text-align:center}
.voucher-meta .stock{font-size:.64rem!important}.voucher-meta .category-link,.voucher-meta .category-label{font-size:.64rem!important}.stock{color:#8b5a16!important;background:#fff5e6!important}.stock.stock-normal,.stock.exact{color:#396884!important;background:#eef6fa!important}.stock.stock-low,.stock.warning{color:#9a6618!important}.stock.stock-urgent{color:#b34f31!important}.stock.stock-critical{color:#b02e42!important}
.merchant-logo,.merchant-public-logo{background:#f6f9fc!important;border:1px solid #e1eaf2!important;border-radius:12px!important;overflow:hidden}.merchant-logo img,.merchant-public-logo img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;padding:4px!important;opacity:1!important}.merchant-category-chip{border-radius:999px!important}.merchant-stats{gap:8px!important}.merchant-stat-vouchers,.merchant-stat-redeemed{padding:5px 9px!important;border-radius:999px!important;font-size:.72rem!important}.merchant-stat-vouchers strong,.merchant-stat-redeemed strong{font-size:.8rem!important}
.category-counts{gap:8px!important}.category-counts span{border-radius:999px!important}.cat-voucher-count{background:#edf5fd!important;color:#255d8c!important}.cat-merchant-count{background:#edf8f2!important;color:#287153!important}
.voucher-topline,.merchant-topline{border:0!important;margin-bottom:12px!important}.voucher-code-language{display:flex;align-items:center;gap:10px;margin-left:auto}.voucher-code{font-size:.72rem!important;color:#7c8fa2!important;font-weight:800}.voucher-code-language select,.merchant-topline>select{font-size:.75rem;border:1px solid #d6e2ec;background:#fff;color:#214c73;border-radius:10px!important;padding:7px 9px}
.voucher-detail-grid{grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr)!important;gap:30px!important}.voucher-detail-grid .detail-image{height:430px!important;border-radius:12px!important}.voucher-detail-grid .detail-image img{height:100%!important;object-fit:cover!important}.voucher-detail-grid .detail-panel{min-width:0!important}.voucher-merchant-summary{border:0!important;padding:14px 0!important;margin:12px 0!important}.merchant-inline-stats{display:flex;gap:8px;margin-top:7px}.merchant-inline-stats span{border-radius:999px;padding:5px 8px;font-size:.7rem}.merchant-inline-stats strong{font-size:.78rem}.detail-price{border:0!important;margin:8px 0!important;padding:7px 0!important}.voucher-specs{gap:6px 24px!important}.voucher-specs>div{border:0!important;padding:8px 0!important;display:grid!important;grid-template-columns:130px 1fr!important;justify-content:initial!important}.voucher-specs dt{align-self:center}.voucher-specs dd{text-align:left!important;justify-self:start!important;align-self:center}.voucher-specs .more-info-spec{grid-column:1/-1!important;min-height:38px!important;align-items:center!important}.more-info-spec a{font-size:.75rem;color:#245d91;text-decoration:none}.more-info-spec a:hover{text-decoration:underline;text-underline-offset:3px}.voucher-actions{margin-top:18px!important}.cart-toggle-button,.voucher-actions .btn{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease!important;transform:none!important}.cart-toggle-button:hover,.voucher-actions .btn:hover{transform:none!important}.voucher-long-description{max-width:1120px;margin:26px auto 0!important;padding:0 0 16px!important;border:0!important;line-height:1.72;overflow:auto}.voucher-long-description h2{font-size:1.35rem!important;margin-bottom:9px!important}.voucher-long-description img{float:right;max-width:320px!important;width:34%!important;height:auto!important;margin:0 0 16px 24px!important;border-radius:10px!important}.voucher-long-description:after{content:'';display:block;clear:both}
.merchant-store-hero{border:0!important}.merchant-category-id{display:flex;align-items:center;gap:12px}.merchant-category-id>span{font-size:.68rem;color:#8a9aaa;font-weight:800}.merchant-hero-action-row{border:0!important}.merchant-info-grid{border:0!important}.merchant-info-grid>div{border:0!important}.merchant-info-grid span{color:#8394a5}.merchant-store-photo,.merchant-store-photo img{border-radius:12px!important}.merchant-website{text-decoration:none!important}.merchant-website:hover{text-decoration:underline!important;text-underline-offset:3px}
.category-card{overflow:hidden!important}.category-card img{border-radius:0!important}.category-card:hover{transform:none!important}
.auth-center-shell{max-width:720px!important}.auth-login-card,.auth-forgot-card{padding:34px 38px!important}.auth-heading-with-logo{display:grid;grid-template-columns:1fr 54px;gap:20px;align-items:start;margin:0 0 26px}.auth-heading-with-logo h1{margin:0 0 4px!important}.auth-heading-with-logo p{margin:0!important;color:#6f8398}.auth-heading-with-logo img{width:54px;height:54px;object-fit:contain}.auth-brand{display:none!important}.registration-heading-row{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px}.registration-heading-row h1{margin:0!important}.registration-heading-row img{width:54px;height:54px;object-fit:contain}.registration-wide-page>p{display:none!important}.btn.stable-hover:hover,.btn-primary:hover,.btn-red:hover{transform:none!important;filter:none!important;box-shadow:0 7px 16px rgba(22,66,105,.16)!important}.btn-primary:hover{background:#194e7c!important}.btn-red:hover{background:#dc263a!important}.forgot-row{margin-top:0!important}.auth-main-form .field:nth-of-type(2){margin-bottom:0!important}
.cart-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.cart-heading h1{margin:0}.cart-column-heads,.cart-row,.cart-total-row{display:grid;grid-template-columns:76px minmax(260px,1fr) 130px 110px 44px;gap:16px;align-items:center}.cart-column-heads{font-size:.7rem;color:#7d8fa0;font-weight:800;padding:0 0 8px}.cart-column-heads span:nth-child(3),.cart-column-heads span:nth-child(4){text-align:center}.cart-row{border:0!important;border-top:1px solid #edf1f5!important;padding:14px 0!important}.cart-row:first-child{border-top:0!important}.cart-row>img{width:70px;height:58px;object-fit:cover;border-radius:9px}.cart-copy{display:grid;gap:3px}.cart-copy a{text-decoration:none}.cart-copy a:hover{text-decoration:underline;text-underline-offset:3px}.cart-price{text-align:center;font-weight:900;color:#173f73}.cart-qty-inline{display:flex!important;justify-content:center!important}.cart-qty-inline input{width:64px!important;text-align:center;border-radius:9px!important}.cart-remove-icon,.cart-clear-icon{width:36px!important;height:36px!important;border:0!important;background:transparent!important;color:#8c5e66!important;display:grid!important;place-items:center!important}.cart-remove-icon svg,.cart-clear-icon svg{width:20px;height:20px}.cart-remove-icon:hover,.cart-clear-icon:hover{background:#fff1f3!important;color:#b92d43!important}.cart-total-row{border-top:1px solid #edf1f5;padding:14px 0}.cart-total-label{grid-column:2;text-align:right;color:#75899b;font-size:.72rem}.cart-total-row strong{grid-column:3;text-align:center;font-size:1.25rem;color:#173f73}.cart-total-row>span:nth-of-type(1){grid-column:4;text-align:center;font-weight:800;color:#173f73}.cart-purchase-row{display:flex;justify-content:flex-start;margin-top:16px}.cart-checkout{min-width:0!important;padding:10px 18px!important}
.footer-version{display:flex;align-items:center;gap:0}.diagnostics-link{margin-left:0!important}.diagnostics-link:before{content:'·';display:inline-block;margin:0 8px;color:#a2afbb;text-decoration:none!important}
.language-select .lang-flag{display:none!important}.language-select select{min-width:112px!important;padding-left:10px!important}
@media(max-width:900px){.browse-toolbar,.merchant-store-toolbar{grid-template-columns:1fr 1fr!important}.voucher-detail-grid{grid-template-columns:1fr!important}.voucher-detail-grid .detail-image{height:auto!important;max-height:430px}.cart-column-heads{display:none}.cart-row{grid-template-columns:68px minmax(150px,1fr) 90px 76px 38px}.cart-total-row{grid-template-columns:68px minmax(150px,1fr) 90px 76px 38px}.voucher-long-description img{width:42%!important}}
@media(max-width:650px){.browse-toolbar,.merchant-store-toolbar{grid-template-columns:1fr!important}.voucher-code-language{gap:6px}.voucher-detail-grid .detail-image{max-height:360px}.voucher-long-description img{float:none;width:100%!important;max-width:100%!important;margin:10px 0 16px!important}.cart-row{grid-template-columns:58px 1fr 70px 38px}.cart-row>img{width:54px;height:48px}.cart-price{grid-column:3}.cart-qty-inline{grid-column:2;justify-content:flex-start!important}.cart-remove-icon{grid-column:4;grid-row:1/3}.cart-total-row{display:flex;justify-content:flex-end;gap:16px}.cart-total-label{order:0}.auth-heading-with-logo{grid-template-columns:1fr 46px}.auth-heading-with-logo img,.registration-heading-row img{width:46px;height:46px}}
.view-more-refined .view-more-link{background:transparent!important;color:#245d91!important;padding:10px 12px!important;box-shadow:none!important;border:0!important}
.view-more-refined .view-more-link:hover,.view-more-refined .view-more-link:focus{background:transparent!important;color:#173f73!important;box-shadow:none!important}

/* Portal 1.0.16 final layout corrections */
:root{--public-radius:8px}
.store-hero,.merchant-list-hero,.category-public-hero{border-bottom:0!important;background:#fff!important}
.public-eyebrow{font-size:.68rem!important;color:#c23b47!important;letter-spacing:.16em!important;font-weight:900!important;text-transform:uppercase}
.metric-strip-111{gap:38px!important}.metric-strip-111>div{grid-template-columns:42px auto!important;grid-template-rows:auto auto!important;column-gap:10px!important;align-items:center!important}.metric-strip-111 .metric-icon{grid-row:1/3;width:38px!important;height:38px!important;border-radius:9px!important}.metric-strip-111 .metric-icon svg{width:23px!important;height:23px!important}.metric-strip-111 strong{font-size:1.55rem!important}.metric-strip-111>div>span:last-child{font-size:.72rem!important}
.voucher-grid{align-items:stretch!important}.voucher-card-111{display:flex!important;flex-direction:column!important;min-height:340px!important;height:auto!important;background:#fff!important}.voucher-card-111 .voucher-image{height:165px!important;min-height:165px!important;flex:0 0 165px!important}.voucher-card-111 .voucher-body{display:flex!important;flex-direction:column!important;gap:7px!important;min-height:168px!important;padding:13px 14px 14px!important;background:#fff!important}.voucher-card-111 .voucher-title{font-size:1rem!important;line-height:1.25!important}.voucher-card-111 .voucher-merchant-link-card{font-size:.75rem!important;color:#5e7387!important;text-decoration:none!important}.voucher-card-111 .voucher-merchant-link-card:hover{text-decoration:underline!important;text-underline-offset:3px}.voucher-card-bottom{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:10px}.voucher-card-bottom .voucher-price{font-size:1.12rem!important}.voucher-card .category-link{background:#eef3f6!important;color:#607789!important;border-radius:999px!important;padding:3px 7px!important}.voucher-card .category-link:hover{background:#e7eef3!important;color:#355d7a!important}.voucher-meta{min-height:23px!important}.voucher-card:hover,.merchant-card:hover,.category-card:hover{transform:none!important;box-shadow:0 8px 24px rgba(21,54,83,.09)!important;background:#fbfdff!important}
.merchant-category-chip{background:#edf3f5!important;color:#55707b!important;border:0!important;font-size:.65rem!important;padding:4px 8px!important}.merchant-category-chip:hover{background:#e4edef!important;color:#355e6b!important}.merchant-address{font-size:.7rem!important;color:#8a98a7!important;margin-top:2px!important}.merchant-description{font-size:.75rem!important;color:#64798d!important;line-height:1.45!important}.merchant-stat-vouchers{background:#edf5fd!important;color:#235b8a!important}.merchant-stat-redeemed{background:#edf8f2!important;color:#2f7258!important}.merchant-stat-vouchers,.merchant-stat-redeemed{text-transform:none!important;font-weight:700!important}.merchant-logo{width:66px!important;height:66px!important;border-radius:8px!important;background:#fff!important}.merchant-logo img{object-fit:contain!important;padding:2px!important}
.view-more-111{min-height:170px!important;border:1px dashed #d1dde7!important;background:#fff!important;border-radius:8px!important}.view-more-111 .view-more-link{font-size:.76rem!important;font-weight:700!important;color:#56748f!important}.view-more-111 .view-more-link:hover{color:#214f76!important;text-decoration:underline!important}.merchant-grid .view-more-111{grid-column:3}.voucher-grid .view-more-111{grid-column:4}.browse-progress-line{margin:12px 0 0!important;font-size:.67rem!important;color:#8c9aaa!important}
.category-public-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:36px;align-items:center;margin:0 0 28px}.category-hero-natural{min-height:250px;border-radius:8px;background:url('../assets/seed/outdoors-18.jpg') center/cover no-repeat}.category-card{border-radius:8px!important}.category-card img{height:155px!important;object-fit:cover!important}.category-card h2{font-size:1.12rem!important}.category-counts span{text-transform:none!important;font-size:.68rem!important}
.voucher-back-row{margin-bottom:10px!important}.voucher-id-language-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:0}.voucher-id-language-row .voucher-code{font-size:.7rem!important;color:#7f90a1!important}.detail-language-select{min-width:92px!important;border:1px solid #d7e1e9!important;border-radius:8px!important;padding:6px 8px!important;background:#fff!important;color:#244f72!important;font-size:.72rem!important}.voucher-detail-grid{grid-template-columns:minmax(0,.82fr) minmax(460px,1.18fr)!important;gap:28px!important;align-items:start!important}.voucher-detail-grid .detail-image{height:390px!important;min-height:0!important;border-radius:8px!important}.voucher-detail-grid .detail-image img{height:100%!important;min-height:0!important;object-fit:cover!important}.voucher-detail-grid .detail-panel{padding-top:0!important}.detail-title{margin-top:0!important}.voucher-price-stats{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0 10px;padding:0}.detail-price-main{font-size:1.7rem;color:#173f73}.merchant-inline-metrics{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.merchant-inline-metrics span{background:#f3f7fa;border-radius:999px;padding:5px 9px;color:#698094;font-size:.68rem}.merchant-inline-metrics strong{color:#274f73;font-size:.78rem}.voucher-specs-111{grid-template-columns:repeat(2,minmax(0,1fr))!important;border:0!important;margin:0!important}.voucher-specs-111>div{display:grid!important;grid-template-columns:120px minmax(0,1fr)!important;gap:10px!important;align-items:center!important;border:0!important;border-bottom:1px solid #eef2f5!important;min-height:40px!important;padding:7px 0!important}.voucher-specs-111 dt{font-size:.7rem!important;color:#71869a!important}.voucher-specs-111 dd{font-size:.72rem!important;text-align:left!important;justify-self:start!important;margin:0!important}.voucher-specs-111 .full-spec-row{grid-column:1/-1!important;grid-template-columns:120px minmax(0,1fr)!important}.voucher-specs-111 .full-spec-row dd{width:100%!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}.voucher-specs-111 .full-spec-row a{font-size:.72rem!important;color:#2b608b!important;text-decoration:none!important}.voucher-specs-111 .full-spec-row a:hover{text-decoration:underline!important;text-underline-offset:3px}.merchant-info-row .merchant-chat-link{margin-left:auto!important;width:30px!important;height:30px!important;border:0!important;background:#f7fafc!important;border-radius:50%!important;display:grid!important;place-items:center!important}.voucher-actions{margin-top:18px!important}.voucher-actions .btn,.cart-toggle-button{transform:none!important;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease!important}.voucher-actions .btn:hover,.cart-toggle-button:hover{transform:none!important}.voucher-long-description{max-width:1120px!important;margin:28px auto 0!important;padding:0!important;border:0!important}.voucher-long-description h2{display:none!important}.voucher-long-description img{float:right!important;width:25%!important;max-width:240px!important;margin:4px 0 14px 20px!important;border-radius:8px!important}.voucher-long-description p{margin:0 0 12px!important}.voucher-long-description:after{content:'';display:block;clear:both}
.merchant-topline{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:14px!important}.merchant-store-111{grid-template-columns:minmax(0,1fr) minmax(420px,.92fr)!important;gap:38px!important;align-items:center!important}.merchant-store-111 .merchant-public-logo{width:92px!important;height:72px!important;border:0!important;background:#fff!important;border-radius:8px!important}.merchant-store-111 .merchant-public-logo img{object-fit:contain!important;padding:0!important}.merchant-category-id{display:flex!important;gap:12px!important;align-items:center!important}.merchant-category-id .merchant-hero-category{color:#5b7489!important;background:#eef3f6!important;border-radius:999px!important;padding:4px 8px!important;text-decoration:none!important}.merchant-category-id>span{font-size:.65rem!important;color:#9aa7b4!important}.merchant-hero-stats{display:flex!important;gap:8px!important}.merchant-hero-stats span{border-radius:8px!important;padding:9px 12px!important}.merchant-hero-stats .stat-vouchers{background:#edf5fd!important;color:#275d89!important}.merchant-hero-stats .stat-redeemed{background:#edf8f2!important;color:#33745b!important}.merchant-hero-stats strong{font-size:1.15rem!important}.merchant-info-grid-111{grid-template-columns:1.3fr 1.3fr .9fr .8fr!important;border:0!important;margin:18px 0 24px!important}.merchant-info-grid-111>div{border:0!important;padding:0 18px 0 0!important}.merchant-info-grid-111 span{font-size:.63rem!important;color:#8798a8!important}.merchant-info-grid-111 strong{font-size:.73rem!important;color:#4e687e!important}.merchant-store-photo,.merchant-store-photo img{border-radius:8px!important}
.terms-head-111{margin-bottom:12px}.terms-head-111 h1{margin:0!important}.terms-head-111 .legal-effective{margin:5px 0 0!important;color:#8a98a8!important;font-size:.72rem!important;font-weight:600!important}.legal-page-111 section{border:0!important;padding:0!important;margin:0 0 24px!important}.legal-page-111 section+section{border:0!important}.legal-page-111 h2{margin:0 0 8px!important}
.cart-heading{margin-bottom:12px!important}.cart-column-heads,.cart-row,.cart-total-row{grid-template-columns:76px minmax(260px,1fr) 130px 100px 42px!important}.cart-column-heads{border:0!important;padding:0 0 7px!important}.cart-row{border:0!important;border-top:1px solid #f0f3f6!important}.cart-total-row{border-top:1px solid #e9eef3!important;padding-top:14px!important}.cart-total-label{font-size:.8rem!important;font-weight:800!important;color:#60778c!important}.cart-total-row strong{font-size:1.45rem!important;font-weight:950!important}.cart-remove-icon,.cart-clear-icon{color:#8a6870!important;border-radius:8px!important}.cart-remove-icon:hover,.cart-clear-icon:hover{background:#f8eff1!important;color:#ae3f54!important}.cart-purchase-row{margin-top:16px!important}.cart-checkout:hover{transform:none!important}.cart-copy .cart-merchant-link{text-decoration:none!important}.cart-copy .cart-merchant-link:hover{text-decoration:underline!important;text-underline-offset:3px}
.auth-center-shell{max-width:720px!important;margin:0 auto!important}.auth-wide-card{border-radius:8px!important}.auth-heading-with-logo{grid-template-columns:1fr 50px!important;align-items:start!important;margin-bottom:22px!important}.auth-heading-with-logo h1{margin:0!important}.auth-heading-with-logo p{margin:3px 0 18px!important}.auth-heading-with-logo img{width:50px!important;height:50px!important}.auth-help-copy{margin:-8px 0 22px!important}.registration-111{max-width:none!important}.registration-heading-row{margin-bottom:18px!important}.buyer-grid-111{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px 20px!important;align-items:start!important}.buyer-grid-111 .password-row-111{grid-column:auto!important}.merchant-grid-111{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px 20px!important;align-items:start!important}.registration-111 .field{align-self:start!important}.registration-111 .field input,.registration-111 .field select,.registration-111 .field textarea{min-height:44px!important}.registration-111 .inline-field-error{display:block!important;min-height:17px!important;margin-top:4px!important;font-size:.68rem!important}.buyer-reg-actions-111{display:flex!important;align-items:center!important;gap:18px!important}.buyer-reg-actions-111 #form-message{width:100%!important}.later-link{text-transform:none!important}.btn-primary,.btn-red{transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease!important}.btn-primary:hover,.btn-red:hover{transform:none!important}.auth-links a:hover,.later-link:hover,.forgot-row a:hover{text-decoration:underline!important;text-underline-offset:3px}
.language-select select{min-width:104px!important}.language-select .lang-flag{display:none!important}
.app-footer .diagnostics-link{font-size:inherit!important;font-weight:inherit!important;text-decoration:none!important}.app-footer .diagnostics-link:hover{text-decoration:underline!important;text-underline-offset:3px}
@media(max-width:1050px){.metric-strip-111{gap:24px!important}.category-public-hero{grid-template-columns:1fr}.category-hero-natural{min-height:220px}.merchant-store-111{grid-template-columns:1fr!important}.merchant-info-grid-111{grid-template-columns:repeat(2,minmax(0,1fr))!important}.buyer-grid-111,.merchant-grid-111{grid-template-columns:repeat(2,minmax(0,1fr))!important}.voucher-detail-grid{grid-template-columns:1fr!important}.voucher-detail-grid .detail-image{height:360px!important}.merchant-grid .view-more-111,.voucher-grid .view-more-111{grid-column:auto}}
@media(max-width:700px){.voucher-card-111{display:grid!important;grid-template-columns:120px minmax(0,1fr)!important;min-height:165px!important}.voucher-card-111 .voucher-image{height:100%!important;min-height:165px!important}.voucher-card-111 .voucher-body{min-height:165px!important}.metric-strip-111{gap:14px!important}.metric-strip-111>div{grid-template-columns:34px auto!important}.metric-strip-111 .metric-icon{width:32px!important;height:32px!important}.merchant-info-grid-111{grid-template-columns:1fr 1fr!important}.voucher-specs-111{grid-template-columns:1fr!important}.voucher-specs-111 .full-spec-row{grid-column:auto!important}.voucher-long-description img{float:none!important;width:100%!important;max-width:100%!important;margin:8px 0 14px!important}.buyer-grid-111,.merchant-grid-111{grid-template-columns:1fr!important}.cart-column-heads{display:none!important}.cart-row{grid-template-columns:56px 1fr 76px 38px!important}.cart-row>img{width:54px!important;height:48px!important}.cart-price{grid-column:3!important}.cart-qty-inline{grid-column:2!important;justify-content:flex-start!important}.cart-remove-icon{grid-column:4!important;grid-row:1/3!important}.cart-total-row{display:flex!important;justify-content:flex-end!important;gap:16px!important}}

/* Portal 1.0.16 release-final layout corrections */
:root{--public-radius:7px}
.app-header{border-bottom:0!important;box-shadow:none!important}
.app-main{background:#fff!important}
.store-hero,.merchant-list-hero,.category-public-hero{border:0!important;background:#fff!important}
.public-eyebrow{font-size:.72rem!important;color:#e33a45!important;letter-spacing:.16em!important}
.metric-strip-111 .metric-icon{width:38px!important;height:38px!important;border-radius:9px!important}.metric-strip-111 .metric-icon svg{width:21px!important;height:21px!important}

/* Keep listing information visible below a compact image. */
.voucher-card-final{min-height:330px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;background:#fff!important}
.voucher-card-final .voucher-image{height:158px!important;min-height:158px!important;flex:0 0 158px!important}
.voucher-card-final .voucher-body{display:flex!important;flex-direction:column!important;min-height:165px!important;height:auto!important;overflow:visible!important;padding:13px 14px 14px!important;background:#fff!important}
.voucher-card-final .voucher-title{display:block!important;visibility:visible!important;color:var(--ink)!important}
.voucher-card-final .voucher-card-bottom{margin-top:auto!important}
.voucher-card-final:hover,.merchant-card-final:hover,.category-card:hover{transform:none!important;box-shadow:0 8px 24px rgba(21,54,83,.08)!important;background:#fbfdff!important}
.voucher-card .category-link,.merchant-category-chip{background:#f0f5f7!important;color:#527181!important;border-radius:999px!important;font-weight:750!important}.voucher-card .category-link:hover,.merchant-category-chip:hover{background:#e9f0f3!important;color:#315b6e!important}
.stock{font-size:.64rem!important;font-weight:750!important}.stock.exact{color:#6c7d8d!important}.stock.low{color:#b66a16!important}.stock.sold_out{color:#b8424b!important}

/* Merchant logos read as real horizontal company marks. */
.merchant-card-final{grid-template-columns:92px minmax(0,1fr)!important;gap:14px!important}.merchant-card-final .merchant-logo{width:88px!important;height:58px!important;border-radius:7px!important;background:#fafafa!important;border:1px solid #edf1f4!important}.merchant-card-final .merchant-logo img{width:100%!important;height:100%!important;object-fit:contain!important}.merchant-card-final .merchant-address{font-size:.72rem!important;color:#8190a0!important;font-weight:650!important}.merchant-card-final .merchant-description{font-size:.76rem!important;color:#74869a!important}.merchant-card-final .merchant-stats{margin-top:8px!important}.merchant-card-final .merchant-stats span{border-radius:999px!important;padding:4px 8px!important;font-size:.66rem!important;font-weight:750!important}.merchant-stat-vouchers{background:#edf5fb!important;color:#2b5f87!important}.merchant-stat-redeemed{background:#edf8f2!important;color:#35755a!important}
.merchant-public-logo{width:132px!important;height:74px!important;border-radius:7px!important;background:#fafafa!important;border:1px solid #edf1f4!important}.merchant-public-logo img{object-fit:contain!important;width:100%!important;height:100%!important}
.merchant-hero-category{background:#eef4f6!important;color:#55727f!important;border-radius:999px!important;padding:4px 8px!important}.merchant-category-id>span{color:#93a0ae!important;font-size:.67rem!important}

/* Light, unobtrusive progressive loading. */
.view-more-111{min-height:150px!important;border:1px dashed #d9e2e9!important;background:#fff!important;display:grid!important;place-items:center!important}.view-more-111 .view-more-link{font-size:.72rem!important;font-weight:700!important;color:#607c93!important;background:none!important;border:0!important;padding:10px!important}.view-more-111 .view-more-link:hover{color:#1e527c!important;text-decoration:underline!important;background:none!important}.browse-progress-line{text-align:center!important;color:#95a1ae!important;font-size:.65rem!important;margin:10px 0 0!important}

/* Voucher detail hierarchy and alignment. */
.voucher-id-language-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin:0 0 10px!important}.voucher-id-language-row .voucher-code{font-size:.69rem!important;color:#8a98a7!important;font-weight:750!important}.detail-language-select{font-size:.72rem!important;min-width:96px!important;max-width:118px!important;height:36px!important;padding:6px 28px 6px 10px!important;border-radius:7px!important}
.voucher-detail-grid{align-items:start!important;grid-template-columns:minmax(340px,.92fr) minmax(0,1.08fr)!important;gap:28px!important}.voucher-detail-grid .detail-image{height:390px!important;min-height:390px!important;border-radius:7px!important;overflow:hidden!important}.voucher-detail-grid .detail-image img{width:100%!important;height:100%!important;object-fit:cover!important}.voucher-detail-grid .detail-panel{min-width:0!important}.voucher-price-stats{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin:22px 0 12px!important}.detail-price-main{font-size:1.55rem!important;color:var(--ink)!important}.price-side-metrics{display:flex!important;gap:9px!important;justify-content:flex-end!important}.price-side-metrics span{font-size:.68rem!important;padding:5px 8px!important;border-radius:999px!important}.price-side-metrics span:first-child{background:#edf5fb!important;color:#2b5f87!important}.price-side-metrics span:last-child{background:#edf8f2!important;color:#35755a!important}
.voucher-specs-111{display:grid!important;grid-template-columns:1fr 1fr!important;column-gap:24px!important;margin:0!important}.voucher-specs-111>div{display:grid!important;grid-template-columns:140px minmax(0,1fr)!important;align-items:center!important;min-height:42px!important;padding:7px 0!important;border:0!important}.voucher-specs-111 dt{color:#72879a!important;font-size:.69rem!important;font-weight:750!important}.voucher-specs-111 dd{margin:0!important;text-align:left!important;color:#365675!important;font-size:.74rem!important}.voucher-specs-111 .full-spec-row{grid-column:1/-1!important;grid-template-columns:140px minmax(0,1fr)!important}.voucher-specs-111 .full-spec-row a{overflow-wrap:anywhere!important}.merchant-info-row dd{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important}.merchant-info-row .merchant-chat-link{flex:0 0 auto!important}
.voucher-description{color:#526d87!important;line-height:1.55!important}.voucher-long-description{clear:both!important;padding:26px 0 8px!important;border:0!important;line-height:1.7!important}.voucher-long-description h2,.voucher-long-description h3{color:var(--ink)!important;margin:0 0 12px!important}.voucher-long-description img{float:right!important;width:28%!important;max-width:240px!important;height:auto!important;margin:2px 0 14px 22px!important;border-radius:7px!important}.voucher-long-description:after{content:"";display:block;clear:both}.voucher-actions .btn{transform:none!important}.voucher-actions .btn:hover{transform:none!important;box-shadow:0 7px 16px rgba(28,70,108,.12)!important}.voucher-actions .btn-soft:hover{background:#e7f0f7!important}.voucher-actions .btn-red:hover{background:#df2837!important}

/* Remove ornamental separator lines in public detail/legal areas. */
.legal-page-111 section,.terms-head-111,.merchant-info-grid-111,.merchant-store-hero,.voucher-specs-111,.voucher-long-description,.merchant-heading-line,.voucher-price-stats{border-top:0!important;border-bottom:0!important}.legal-page-111 section{padding:0!important;margin:0 0 28px!important}.terms-head-111{margin-bottom:20px!important}.terms-head-111 h1{margin-bottom:4px!important}.legal-effective{font-size:.78rem!important;font-weight:600!important;color:#8b98a8!important;margin:0!important}

/* Merchant details stay legible and structured. */
.merchant-store-111{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr)!important;gap:34px!important;align-items:center!important}.merchant-store-111 .merchant-store-copy{min-width:0!important}.merchant-store-111 .merchant-store-photo{height:320px!important;border-radius:7px!important}.merchant-store-111 .merchant-store-photo img{width:100%!important;height:100%!important;object-fit:cover!important}.merchant-info-grid-111{display:grid!important;grid-template-columns:1.2fr 1.2fr .8fr .8fr!important;gap:24px!important;padding:18px 0 22px!important}.merchant-info-grid-111>div{min-width:0!important}.merchant-info-grid-111 span{font-size:.65rem!important;color:#91a0ae!important;letter-spacing:.08em!important;text-transform:uppercase!important}.merchant-info-grid-111 strong{font-size:.76rem!important;color:#506b84!important;overflow-wrap:anywhere!important}

/* Cart uses strong total hierarchy and clean alignment. */
.cart-column-heads,.cart-row,.cart-total-row{grid-template-columns:70px minmax(0,1fr) 126px 100px 36px!important}.cart-total-row{align-items:center!important}.cart-total-row .cart-total-label{font-size:.88rem!important;font-weight:850!important;color:#536b80!important}.cart-total-row strong{font-size:1.4rem!important;font-weight:900!important;color:var(--ink)!important}.cart-total-row>span:nth-last-child(2){font-size:1rem!important;font-weight:850!important;color:var(--ink)!important}.cart-remove-icon,.cart-clear-icon{color:#a95c64!important;background:transparent!important;border:0!important}.cart-remove-icon:hover,.cart-clear-icon:hover{color:#842f39!important;background:#fff2f3!important}.cart-purchase-row{justify-content:flex-start!important;margin-top:18px!important}.cart-checkout:hover{transform:none!important;background:#df2837!important;box-shadow:0 7px 16px rgba(225,45,59,.18)!important}

/* Registration forms keep rows aligned even when validation messages appear. */
.registration-heading-row img{width:54px!important;height:54px!important}.buyer-grid-111,.merchant-grid-111{align-items:start!important}.buyer-grid-111 .field,.merchant-grid-111 .field{align-self:start!important;min-width:0!important}.password-pair-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:20px!important}.field .field-error{min-height:0!important}.field .field-error.visible{margin-top:5px!important}.buyer-reg-actions-111{display:flex!important;align-items:center!important;gap:20px!important}.buyer-reg-actions-111 #form-message{width:100%!important;flex-basis:100%!important}.registration-actions .btn:hover,.auth-wide-card .btn:hover{transform:none!important;filter:none!important;box-shadow:0 8px 18px rgba(24,68,107,.16)!important}.registration-actions .btn-primary:hover,.auth-wide-card .btn-primary:hover{background:#174d7b!important}.later-link:hover,.polished-links a:hover{text-decoration:underline!important;text-underline-offset:3px}

.footer-version .diagnostics-link:before{content:"·";display:inline-block;margin:0 7px;color:#a6b0ba}.footer-version .diagnostics-link{font-size:inherit!important;font-weight:inherit!important;text-decoration:none!important}.footer-version .diagnostics-link:hover{text-decoration:underline!important}

@media(max-width:1050px){.voucher-detail-grid,.merchant-store-111{grid-template-columns:1fr!important}.voucher-detail-grid .detail-image{height:340px!important;min-height:340px!important}.merchant-info-grid-111{grid-template-columns:1fr 1fr!important}.merchant-grid .view-more-111,.voucher-grid .view-more-111{grid-column:auto!important}}
@media(max-width:700px){.voucher-card-final{display:grid!important;grid-template-columns:120px minmax(0,1fr)!important;min-height:165px!important}.voucher-card-final .voucher-image{height:100%!important;min-height:165px!important}.voucher-card-final .voucher-body{min-height:165px!important}.voucher-id-language-row{margin-top:0!important}.voucher-detail-grid .detail-image{height:250px!important;min-height:250px!important}.voucher-specs-111{grid-template-columns:1fr!important}.voucher-specs-111>div,.voucher-specs-111 .full-spec-row{grid-column:auto!important;grid-template-columns:110px minmax(0,1fr)!important}.voucher-long-description img{float:none!important;width:100%!important;max-width:100%!important;margin:8px 0 14px!important}.merchant-store-111{grid-template-columns:1fr!important}.merchant-store-111 .merchant-store-photo{height:220px!important}.merchant-info-grid-111{grid-template-columns:1fr 1fr!important}.merchant-card-final{grid-template-columns:80px minmax(0,1fr)!important}.merchant-card-final .merchant-logo{width:76px!important;height:52px!important}.password-pair-row{grid-template-columns:1fr!important}.cart-column-heads{display:none!important}.cart-row{grid-template-columns:56px 1fr 76px 38px!important}.cart-row>img{width:54px!important;height:48px!important}.cart-price{grid-column:3!important}.cart-qty-inline{grid-column:2!important;justify-content:flex-start!important}.cart-remove-icon{grid-column:4!important;grid-row:1/3!important}.cart-total-row{display:flex!important;justify-content:flex-end!important;gap:16px!important}}

/* RYU 1.0.16 approved final layout and commerce polish */
:root{--max:1320px;--radius:12px;--radius-sm:8px;--checkout:#176b63;--checkout-hover:#125950}
.header-inner,.page,.app-footer{max-width:var(--max)!important;padding-left:22px!important;padding-right:22px!important}
.page{padding-top:26px!important}
.language-select{height:36px!important;border-radius:8px!important;padding:0 6px 0 8px!important}.language-select select{max-width:78px!important;font-size:.82rem!important}
.field input,.field select,.field textarea,.search-input,.filters select,.detail-language-select{border-radius:7px!important}
.btn{border-radius:8px!important;transform:none!important}.btn:hover{transform:none!important}
.btn-checkout{background:var(--checkout)!important;color:#fff!important;border:0!important;box-shadow:0 7px 16px rgba(23,107,99,.14)!important}.btn-checkout:hover,.btn-checkout:focus{background:var(--checkout-hover)!important;transform:none!important;box-shadow:0 8px 18px rgba(23,107,99,.20)!important}

/* Store / Merchants / Explore use one stable hero geometry. */
.public-discovery-hero{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)!important;gap:48px!important;align-items:center!important;min-height:290px!important;padding:20px 0 32px!important;margin:0 0 20px!important}
.public-hero-copy{align-self:center;min-height:210px;display:flex;flex-direction:column;justify-content:center}.public-hero-copy h1{margin:6px 0 0!important;color:var(--ink);font-size:clamp(2.45rem,4.6vw,3.7rem)!important;line-height:.98!important;letter-spacing:-.055em!important;max-width:720px}.public-eyebrow{font-size:.68rem!important;color:#d93b4c!important;letter-spacing:.18em!important;margin:0 0 7px!important}.public-hero-image{width:100%;height:230px;border-radius:10px;background-position:center;background-size:cover;background-repeat:no-repeat}.public-store-image{background-image:url('../assets/images/public-store-hero-115.jpg')}.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-115.jpg')}.public-explore-image{background-image:url('../assets/images/public-explore-hero-115.jpg')}
.hero-metrics-115{display:flex;gap:38px;margin-top:26px;flex-wrap:wrap}.hero-metrics-115>div{display:grid;grid-template-columns:42px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:145px}.hero-metrics-115 .metric-icon{grid-row:1/3;width:42px!important;height:42px!important;border-radius:9px!important;display:grid;place-items:center}.hero-metrics-115 .metric-icon svg{width:23px!important;height:23px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hero-metrics-115 .metric-icon-voucher{background:#edf5fc;color:#24608d}.hero-metrics-115 .metric-icon-merchant{background:#edf8f2;color:#287459}.hero-metrics-115 .metric-icon-redeemed{background:#fff6e9;color:#a9691d}.hero-metrics-115 strong{font-size:1.7rem!important;color:var(--ink);line-height:1}.hero-metrics-115 span:last-child{font-size:.68rem!important;color:#71849a;font-weight:700;margin-top:4px}

/* Browsing controls align with header and use compact icon direction. */
.browse-toolbar{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(155px,190px) minmax(155px,190px) 42px!important;gap:10px!important;align-items:center!important;margin:0 0 18px!important}.merchant-store-toolbar{grid-template-columns:minmax(300px,1fr) minmax(170px,220px) 42px!important}.browse-toolbar .search-wrap,.browse-toolbar .search-input,.browse-toolbar select,.sort-direction-icon{height:42px!important;min-height:42px!important}.sort-direction-icon{width:42px;border:1px solid #ccd8e4;border-radius:7px;background:#fff;color:#315d80;display:grid;place-items:center}.sort-direction-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sort-direction-icon:hover{background:#edf5fb;border-color:#a9c4de}.search-refresh{right:11px!important}

/* Grids fill naturally; View more is simply the next grid cell. */
.voucher-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.merchant-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.view-more-115{min-height:210px!important;border:1px dashed #d6e0e8!important;border-radius:10px!important;background:#fff!important;display:grid!important;place-items:center!important}.view-more-115 .view-more-link{border:0!important;background:transparent!important;color:#56748e!important;font-size:.78rem!important;font-weight:700!important;padding:12px!important}.view-more-115 .view-more-link:hover{color:#1f567f!important;text-decoration:underline;text-underline-offset:4px}.browse-progress-line{font-size:.68rem!important;color:#8b99a8!important;text-align:center!important;margin:12px 0 0!important}

/* Voucher cards: compact detail, contextual badges and stock. */
.voucher-card-115{border-radius:10px!important;overflow:hidden!important;transform:none!important}.voucher-card-115:hover{transform:none!important;background:#fbfdff!important;border-color:#a9c4de!important}.voucher-card-115 .voucher-image{height:156px!important}.voucher-card-115 .voucher-body{padding:12px 13px 11px!important;gap:6px!important}.voucher-card-115 .category-link{color:#54798c!important;background:#eef5f6!important;border-radius:6px!important;padding:3px 7px!important;font-size:.62rem!important;letter-spacing:.07em!important}.voucher-card-115 .stock{font-size:.60rem!important;padding:2px 6px!important;border-radius:6px!important}.voucher-card-115 .voucher-title{font-size:.96rem!important}.voucher-card-115 .voucher-merchant-link-card{font-size:.72rem!important}.voucher-card-115 .voucher-price{font-size:1.12rem!important}.voucher-card-115 .item-id{font-size:.60rem!important}

/* Merchant cards: true square logo, subtle category/address, compact availability stats + id. */
.merchant-card-115{display:grid!important;grid-template-columns:68px minmax(0,1fr)!important;gap:14px!important;border-radius:10px!important;padding:15px!important;transform:none!important}.merchant-card-115:hover{transform:none!important;background:#fbfdff!important}.merchant-card-115 .merchant-logo{width:64px!important;height:64px!important;border-radius:9px!important;overflow:hidden!important;background:#fff!important;padding:0!important}.merchant-card-115 .merchant-logo img{width:100%!important;height:100%!important;object-fit:cover!important;padding:0!important}.merchant-card-115 .merchant-title-row{gap:10px!important}.merchant-card-115 .merchant-category-chip{font-size:.60rem!important;color:#4f7383!important;background:#eef5f6!important;border-radius:6px!important;padding:4px 7px!important}.merchant-card-115 .merchant-address{font-size:.69rem!important;color:#8493a3!important;margin:2px 0 6px!important}.merchant-card-115 .merchant-description{font-size:.73rem!important;line-height:1.45!important;color:#71849a!important}.merchant-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.merchant-card-115 .merchant-stats{margin:0!important;gap:6px!important}.merchant-card-115 .merchant-stats span{font-size:.62rem!important;padding:4px 7px!important;border-radius:6px!important}.merchant-card-id{font-size:.61rem;color:#9aa7b4;font-weight:700;white-space:nowrap}

/* Explore cards use category-matched imagery and independent count links. */
.category-grid{gap:18px!important}.category-card-115{border:1px solid #dbe5ee;border-radius:10px;overflow:hidden;background:#fff;transition:border-color .18s,box-shadow .18s}.category-card-115:hover{border-color:#a9c4de;box-shadow:0 10px 28px rgba(20,55,90,.08)}.category-card-main{display:block;color:inherit}.category-card-115 img{width:100%;height:180px;object-fit:cover}.category-card-main>div{padding:16px 17px 8px}.category-card-115 h2{margin:0 0 7px;color:var(--ink);font-size:1.18rem}.category-card-115 p{margin:0;color:#70849a;min-height:42px;font-size:.8rem}.category-card-115 .category-counts{padding:8px 17px 16px}.category-card-115 .category-counts a{font-size:.68rem;font-weight:800;padding:5px 8px;border-radius:6px;text-decoration:none}.category-card-115 .cat-voucher-count{background:#edf5fb;color:#295e87}.category-card-115 .cat-merchant-count{background:#eef8f2;color:#337357}.category-card-115 .category-counts a:hover{text-decoration:underline;text-underline-offset:3px}
.category-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:40px;min-height:245px;margin-bottom:22px}.category-detail-hero h1{font-size:clamp(2.1rem,4vw,3rem);color:var(--ink);margin:12px 0 7px}.category-detail-hero p{color:#70849a}.category-detail-hero>img{width:100%;height:220px;object-fit:cover;border-radius:10px}.category-detail-counts{display:flex;gap:12px;margin-top:20px;align-items:stretch}.category-detail-counts>span,.category-detail-counts>a{display:grid;padding:9px 12px;border-radius:8px;background:#edf5fb;color:#285c84;text-decoration:none}.category-detail-counts>a{background:#eef8f2;color:#337357}.category-detail-counts strong{font-size:1.15rem}.category-detail-counts span{font-size:.66rem}

/* Voucher detail: inline content-language links, clean merchant row and conditional checkout. */
.voucher-id-language-row{display:flex!important;align-items:center!important;justify-content:space-between!important;margin:0 0 10px!important}.content-language-links{display:flex;align-items:center;gap:4px}.content-language-links button{border:0;background:transparent;color:#71849a;font-size:.68rem;font-weight:750;padding:4px 6px;border-radius:5px}.content-language-links button:hover,.content-language-links button.active{color:#1d5680;background:#edf5fb}.voucher-detail-grid{grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr)!important}.voucher-specs-111>div{min-height:40px!important}.merchant-info-row dd{justify-content:flex-start!important}.merchant-chat-inline{margin-left:12px!important;display:inline-flex;align-items:center}.merchant-chat-inline svg{width:21px!important;height:21px!important}.voucher-actions{margin-top:17px!important}.voucher-actions .btn{transform:none!important}.btn-checkout{min-width:0}.voucher-long-description img{border-radius:8px!important}

/* Merchant detail: ID to category row right, business hero separate from logo, larger question action. */
.merchant-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.merchant-store-115{grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr)!important;gap:44px!important}.merchant-store-115 .merchant-public-logo{width:74px!important;height:74px!important;border-radius:10px!important;overflow:hidden}.merchant-store-115 .merchant-public-logo img{width:100%!important;height:100%!important;object-fit:cover!important;padding:0!important}.merchant-category-id{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;width:100%!important}.merchant-heading-text{min-width:0;flex:1}.merchant-hero-category{color:#557887!important;background:#eef5f6!important;border-radius:6px!important}.merchant-category-id>span{margin-left:auto!important;font-size:.65rem!important}.merchant-store-115 .merchant-store-photo{height:320px!important;border-radius:10px!important}.merchant-store-115 .merchant-store-photo img{object-fit:cover!important}.merchant-hero-action-row{align-items:center!important;gap:30px!important;margin-top:22px!important}.merchant-hero-stats{margin:0!important}.merchant-hero-stats span{border-radius:8px!important}.ask-question-115{display:inline-flex!important;align-items:center!important;gap:10px!important;max-width:145px!important;line-height:1.2!important;padding:10px 4px!important;margin-left:auto!important;color:#255e89!important;font-weight:800!important}.ask-question-115 svg{width:25px!important;height:25px!important;flex:0 0 25px!important}.ask-question-115 span{white-space:normal}.ask-question-115:hover{background:#f3f8fb!important;border-radius:7px!important}

/* Cart grouped by merchant; summary columns remain aligned. */
.cart-heading{display:flex;justify-content:space-between;align-items:center}.cart-heading h1{margin:0;color:var(--ink)}.cart-column-heads,.cart-row,.cart-total-row{grid-template-columns:70px minmax(0,1fr) 126px 100px 36px!important}.cart-column-heads{display:grid;gap:14px;padding:0 0 8px;color:#8292a3;font-size:.68rem;font-weight:800}.cart-column-heads span:nth-child(3),.cart-column-heads span:nth-child(4){text-align:center}.cart-merchant-group{margin:0 0 14px}.cart-merchant-group h2{margin:0;padding:12px 0 8px;font-size:.82rem;color:#355b78;font-weight:800}.cart-merchant-group h2 a:hover{text-decoration:underline;text-underline-offset:3px}.cart-merchant-group h2 span{font-size:.68rem;font-weight:650;color:#8190a0}.cart-row{display:grid!important;align-items:center;gap:14px!important;border-bottom:1px solid #edf1f5;padding:12px 0!important}.cart-row>img{width:70px;height:58px;object-fit:cover;border-radius:7px}.cart-price{text-align:center!important}.cart-qty-inline{display:flex;justify-content:center!important}.cart-qty-inline input{width:64px!important;text-align:center;border-radius:7px!important}.cart-summary-115{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:8px}.cart-summary-115 .cart-purchase-row{margin:0!important}.cart-total-row{display:grid;min-width:332px;margin-left:auto;align-items:center}.cart-total-label{grid-column:2;text-align:right;padding-right:14px}.cart-total-row strong{grid-column:3;text-align:center}.cart-total-row>span:nth-of-type(2){grid-column:4;text-align:center}

/* Registration geometry remains stable when inline errors appear. */
.registration-115{max-width:var(--max)!important;margin:0 auto}.buyer-grid-115,.merchant-grid-115{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px 20px!important;align-items:start}.buyer-grid-115 .field,.merchant-grid-115 .field{min-width:0}.buyer-grid-115 .span-all,.merchant-grid-115 .span-all{grid-column:1/-1!important}.preference-checks{display:flex!important;flex-wrap:wrap!important;gap:10px 20px!important;align-items:center}.preference-checks label{display:inline-flex!important;align-items:center!important;gap:6px!important;min-height:24px}.preference-checks input{margin:0!important;width:15px;height:15px}.registration-actions .btn:hover,.auth-wide-card .btn:hover{transform:none!important;background:#2e6796!important}.later-link{align-self:center}

@media(max-width:1050px){.public-discovery-hero{grid-template-columns:1fr!important;min-height:auto!important}.public-hero-copy{min-height:auto}.public-hero-image{height:210px}.voucher-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.merchant-store-115{grid-template-columns:1fr!important}.category-detail-hero{grid-template-columns:1fr!important}.category-detail-hero>img{height:200px}.buyer-grid-115,.merchant-grid-115{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.header-inner,.page,.app-footer{padding-left:16px!important;padding-right:16px!important}.browse-toolbar,.merchant-store-toolbar{display:grid!important;grid-template-columns:1fr 42px!important}.browse-toolbar .search-wrap{grid-column:1/-1}.browse-toolbar select{min-width:0}.voucher-grid,.merchant-grid,.category-grid{grid-template-columns:1fr!important}.merchant-card-115{grid-template-columns:62px minmax(0,1fr)!important}.public-hero-image{height:180px}.hero-metrics-115{gap:20px}.hero-metrics-115>div{min-width:125px}.voucher-detail-grid{grid-template-columns:1fr!important}.merchant-info-grid-111{grid-template-columns:1fr 1fr!important}.cart-column-heads{display:none!important}.cart-row{grid-template-columns:58px minmax(0,1fr) 80px 36px!important}.cart-row>img{width:58px;height:50px}.cart-qty-inline{grid-column:2}.cart-remove-icon{grid-column:4;grid-row:1/3}.cart-summary-115{display:block}.cart-total-row{min-width:0;margin:14px 0 0;display:grid!important;grid-template-columns:1fr 110px 70px!important}.cart-total-label{grid-column:1}.cart-total-row strong{grid-column:2}.cart-total-row>span:nth-of-type(2){grid-column:3}.buyer-grid-115,.merchant-grid-115{grid-template-columns:1fr!important}.merchant-store-115 .merchant-store-photo{height:220px!important}}

/* RYU 1.0.16 regression and visual-quality fixes */
:root{--shell-max:1440px;--checkout:#176b63;--checkout-hover:#125950}
.header-inner,.page,.app-footer{width:100%!important;max-width:var(--shell-max)!important;margin-left:auto!important;margin-right:auto!important;padding-left:48px!important;padding-right:48px!important}
@media(max-width:900px){.header-inner,.page,.app-footer{padding-left:22px!important;padding-right:22px!important}}
@media(max-width:700px){.header-inner,.page,.app-footer{padding-left:16px!important;padding-right:16px!important}}

/* Distinct photographic public heroes. */
.public-store-image{background-image:url('../assets/images/public-store-hero-116.jpg')!important}
.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-116.jpg')!important}
.public-explore-image{background-image:url('../assets/images/public-explore-hero-116.jpg')!important}

/* Restore polished metric icons; avoid raw black SVGs. */
.hero-metrics-115>div{grid-template-columns:48px auto!important;column-gap:12px!important;min-width:158px!important}
.hero-metrics-115 .metric-icon{width:48px!important;height:48px!important;border-radius:10px!important;display:grid!important;place-items:center!important}
.hero-metrics-115 .metric-icon svg{width:25px!important;height:25px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.hero-metrics-115 .metric-icon-voucher{background:#eaf4fd!important;color:#24608d!important}
.hero-metrics-115 .metric-icon-merchant{background:#eaf7f0!important;color:#287459!important}
.hero-metrics-115 .metric-icon-redeemed{background:#fff3e3!important;color:#a9691d!important}
.hero-metrics-115 strong{font-size:1.72rem!important}
.hero-metrics-115>div>span:last-child{text-transform:none!important}

/* Search/filter controls stay on a single visual baseline. */
.browse-toolbar .search-wrap,.browse-toolbar .search-input,.browse-toolbar select,.sort-direction-icon{height:42px!important;min-height:42px!important}
.sort-direction-icon{display:flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;font-size:18px!important;font-weight:900!important;line-height:1!important}
.sort-direction-icon .sort-up,.sort-direction-icon .sort-down{color:#a8b6c3;transition:color .15s ease,transform .15s ease}
.sort-direction-icon.is-asc .sort-up,.sort-direction-icon.is-desc .sort-down{color:#1f5d8a!important}
.sort-direction-icon.is-asc .sort-up{transform:translateY(-1px)}
.sort-direction-icon.is-desc .sort-down{transform:translateY(1px)}
.sort-direction-icon:hover{background:#edf5fb!important;border-color:#a9c4de!important}

/* Voucher cards must always show the product content below the photograph. */
.voucher-card-115{display:flex!important;flex-direction:column!important;min-height:318px!important;overflow:hidden!important;background:#fff!important}
.voucher-card-115 .voucher-image{display:block!important;height:170px!important;min-height:170px!important;max-height:170px!important;flex:0 0 170px!important;overflow:hidden!important}
.voucher-card-115 .voucher-image img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.voucher-card-115 .voucher-body{display:grid!important;align-content:start!important;min-height:145px!important;flex:1 1 auto!important;background:#fff!important;padding:12px 13px!important}
.voucher-card-115 .voucher-title{display:block!important;overflow:visible!important}

/* View-more is always the next natural grid cell; never reserve phantom columns. */
.voucher-grid>.view-more-115,.merchant-grid>.view-more-115,.category-grid>.view-more-115{grid-column:auto!important;grid-row:auto!important;align-self:stretch!important;min-height:210px!important}
.view-more-115 .view-more-link{font-weight:650!important;color:#6d8194!important}
.view-more-115 .view-more-link:hover{color:#245b84!important}

/* Voucher detail: one action area, no merchant-wide metrics, compact merchant question control. */
[data-action="add-cart"]{display:none!important}
.voucher-price-stats{justify-content:flex-start!important}
.price-side-metrics,.merchant-inline-metrics.price-side-metrics{display:none!important}
.merchant-info-row dd{justify-content:flex-start!important;gap:0!important}
.merchant-info-row .merchant-chat-link.merchant-chat-inline{margin-left:12px!important;margin-right:0!important;width:28px!important;height:28px!important;flex:0 0 28px!important;background:#f7fafc!important}
.merchant-info-row .merchant-chat-link.merchant-chat-inline svg{width:19px!important;height:19px!important}
.voucher-actions{display:flex!important;align-items:center!important;gap:10px!important}
.btn-checkout{background:var(--checkout)!important;color:#fff!important;border:0!important}
.btn-checkout:hover,.btn-checkout:focus{background:var(--checkout-hover)!important;transform:none!important}

/* Merchant hero: authentic hero photo, readable metrics, question action near content rather than at far edge. */
.merchant-store-115 .merchant-store-photo img{width:100%!important;height:100%!important;object-fit:cover!important}
.merchant-hero-action-row{justify-content:flex-start!important;gap:30px!important}
.ask-question-115{margin-left:14px!important;margin-right:0!important;max-width:130px!important;padding:8px 10px!important;gap:10px!important;align-self:center!important}
.ask-question-115 svg{width:28px!important;height:28px!important;flex:0 0 28px!important}
.ask-question-115 span{white-space:normal!important;line-height:1.12!important}
.merchant-card-115 .merchant-stats span{font-size:.60rem!important;font-weight:650!important}
.merchant-card-115 .merchant-address{font-size:.67rem!important;color:#8a98a6!important}
.merchant-card-id{margin-left:auto!important;color:#a0acb8!important}

/* Category cards use real category photography and contextual chips. */
.category-card-115 img,.category-detail-hero>img{object-fit:cover!important;background:#eef3f7!important}
.category-counts a{font-size:.68rem!important}

/* Cart summary: Total label is on the same line immediately left of amount; quantity aligns to quantity column. */
.cart-total-row{display:grid!important;grid-template-columns:70px minmax(0,1fr) 126px 100px 36px!important;gap:14px!important;align-items:center!important;margin-left:0!important;min-width:0!important;width:100%!important}
.cart-total-label{grid-column:2!important;justify-self:end!important;text-align:right!important;padding-right:12px!important;font-size:.88rem!important;font-weight:800!important}
.cart-total-amount{grid-column:3!important;text-align:center!important;font-size:1.45rem!important;font-weight:900!important;color:var(--ink)!important}
.cart-total-quantity{grid-column:4!important;text-align:center!important;font-size:1rem!important;font-weight:850!important;color:var(--ink)!important}
.cart-summary-115{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.cart-purchase-row{justify-self:start!important}
@media(max-width:700px){.cart-total-row{grid-template-columns:1fr 110px 70px!important}.cart-total-label{grid-column:1!important}.cart-total-amount{grid-column:2!important}.cart-total-quantity{grid-column:3!important}}

/* Reduce over-rounding without losing hierarchy. */
.voucher-card-115,.merchant-card-115,.category-card-115,.public-hero-image,.merchant-store-photo,.detail-image{border-radius:8px!important}

/* Real-photo long descriptions remain modest and inline. */
.voucher-long-description img{max-width:250px!important;border-radius:7px!important}

/* RYU 1.0.17 consolidated public UX */
.portal-language-dropdown{position:relative;flex:0 0 auto}.portal-language-trigger{height:34px;min-width:88px;padding:0 10px;border:1px solid #d3e0ec;border-radius:7px;background:#fff;color:#173f67;display:flex;align-items:center;justify-content:space-between;gap:8px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.portal-language-trigger:hover{background:#f5f9fc}.portal-language-menu{position:absolute;z-index:80;top:calc(100% + 6px);left:0;min-width:112px;padding:5px;background:#fff;border:1px solid #d7e2ec;border-radius:7px;box-shadow:0 10px 26px rgba(20,56,89,.13)}.portal-language-menu button{display:flex;width:100%;align-items:center;gap:7px;padding:7px 8px;border:0;border-radius:5px;background:transparent;color:#38536f;font:inherit;font-size:.8rem;text-align:left;cursor:pointer}.portal-language-menu button:hover{background:#f2f7fb}.portal-language-menu button.active{font-weight:850;color:#173f67}.portal-language-menu[hidden]{display:none!important}

.hero-metrics-115 .metric-icon-redeemed svg{fill:none!important;stroke:currentColor!important}.public-hero-image{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.sort-direction-117{gap:4px!important}.sort-direction-117 .sort-active{order:0;color:#1f5d8a;font-weight:950}.sort-direction-117 .sort-inactive{order:1;color:#b6c2cd;font-weight:750}

.voucher-card-115 .voucher-body{display:flex!important;flex-direction:column!important}.voucher-card-spacer{flex:1 1 auto;min-height:6px}.voucher-card-bottom{margin-top:auto!important;align-items:end!important}.voucher-title{min-height:2.55em}.voucher-price,.item-id{align-self:end}

.merchant-card-117{min-height:174px!important;height:100%!important}.merchant-card-117 .merchant-card-copy{display:flex!important;flex-direction:column!important;min-width:0}.merchant-card-117 .merchant-description{flex:1 1 auto!important}.merchant-card-117 .merchant-card-footer{margin-top:auto!important}.merchant-card-117 .merchant-stats strong{font-size:.76rem!important}.merchant-card-117 .merchant-stat-vouchers{background:#edf6fd!important;color:#245d88!important}.merchant-card-117 .merchant-stat-redeemed{background:#edf8f2!important;color:#287257!important}.merchant-logo img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:5px!important}

.content-language-links-117{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.content-language-links-117 button{border:0;background:transparent;color:#7c8fa1;padding:4px 6px;border-radius:4px;font:inherit;font-size:.72rem;cursor:pointer}.content-language-links-117 button:hover{background:#f2f6f9;color:#204f78}.content-language-links-117 button.active{background:#eaf3fa;color:#174c77;font-weight:850}
.merchant-info-grid-117{grid-template-columns:1.35fr 1.35fr .95fr .9fr .75fr!important}.merchant-hero-stats strong{font-size:1.05rem!important}.merchant-hero-stats span{font-size:.68rem!important}.merchant-hero-stats .stat-redeemed{color:#2a7559!important;background:#edf8f2!important}.merchant-hero-stats .stat-vouchers{color:#245d88!important;background:#eef6fd!important}

.voucher-specs-117 .full-spec-row{min-height:42px!important}.voucher-specs-117 dt,.voucher-specs-117 dd{text-align:left!important}.merchant-info-row dd{display:flex!important;align-items:center!important}.merchant-chat-inline{margin-left:10px!important}.voucher-action-language-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}.cart-state-button{display:inline-flex!important;align-items:center!important;gap:8px!important;border:0!important}.cart-state-button svg{width:18px;height:18px}.cart-state-button.add{background:#dceff2!important;color:#155f68!important}.cart-state-button.add:hover{background:#cce7eb!important}.cart-state-button.remove{background:#f0ecee!important;color:#7b4a57!important}.cart-state-button.remove:hover{background:#e7dfe2!important}

.cart-sticky-head{position:sticky;top:64px;z-index:18;background:#fff;padding-top:8px}.cart-column-heads-117{font-size:.82rem!important;font-weight:850!important;color:#405d77!important}.cart-column-heads-117 span:nth-child(2){text-align:left}.cart-merchant-group>h2{font-size:.9rem;margin:18px 0 6px;color:#315777}.cart-merchant-group>h2 small{font-weight:500;color:#7d8fa0}.cart-summary-row-117{display:grid;grid-template-columns:minmax(0,1fr) 150px 130px 40px;gap:14px;align-items:center;border-top:1px solid #dbe4ec;padding:18px 0}.cart-total-label-117{justify-self:end;font-weight:800;color:#405d77}.cart-total-amount{grid-column:2;text-align:center;font-size:1.35rem!important}.cart-proceed-cell{grid-column:3/5;justify-self:end}.cart-column-heads,.cart-row{grid-template-columns:70px minmax(0,1fr) 150px 130px 40px!important}.cart-row{align-items:center!important}.cart-qty-inline input{width:64px!important;text-align:center}.cart-heading h1{margin-bottom:4px}

.auth-center-shell.auth-background-117{min-height:calc(100vh - 120px);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:56px 20px;background:linear-gradient(rgba(238,248,253,.80),rgba(255,255,255,.86)),url('../assets/images/auth-bg-117.jpg') center/cover fixed no-repeat}.auth-background-117 .auth-wide-card{background:rgba(255,255,255,.96);box-shadow:0 22px 55px rgba(25,62,94,.15)}.auth-wide-card{width:min(100%,520px)!important;max-width:520px!important}.auth-login-card{width:min(100%,520px)!important}.auth-main-form .field input{width:100%}.auth-captcha-row.compact-captcha{grid-template-columns:230px 150px!important;gap:14px!important;align-items:end!important}.auth-captcha-row.compact-captcha .field{max-width:150px!important}.auth-captcha-row.compact-captcha .field input{width:130px!important}.auth-captcha-row img{width:230px;height:82px;object-fit:contain}.captcha-loading{position:relative;min-width:220px;min-height:72px}.captcha-loading:after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border:3px solid #c7d5e1;border-top-color:#245e8b;border-radius:50%;animation:captcha-spin .7s linear infinite}.captcha-failed:after{content:"Retry";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.75rem;color:#9f4852}@keyframes captcha-spin{to{transform:rotate(360deg)}}

.registration-117{max-width:1280px!important;margin:0 auto}.buyer-grid-117,.merchant-grid-117{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.buyer-grid-117 .span-all,.merchant-grid-117 .span-all{grid-column:1/-1}.registration-117 .field input,.registration-117 .field select,.registration-117 .field textarea{min-height:40px!important;padding:8px 11px!important}.registration-117 .field textarea{min-height:78px!important}.registration-actions-117{display:flex;align-items:center;gap:18px;justify-content:flex-start}.captcha-align-117{justify-self:start}.preference-grid-117{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:9px 14px!important}.visit-grid-117{grid-template-columns:repeat(5,minmax(0,1fr))!important}.preference-grid-117 label{display:grid!important;grid-template-columns:16px minmax(0,1fr)!important;align-items:center!important;gap:7px!important}.preference-grid-117 input{margin:0!important}.nationality-combo input{width:100%}.multi-select-117{position:relative}.multi-select-117 summary{list-style:none;cursor:pointer;min-height:40px;padding:9px 34px 9px 11px;border:1px solid #c8d8e6;border-radius:7px;background:#fff;color:#193f65;position:relative}.multi-select-117 summary::-webkit-details-marker{display:none}.multi-select-117 summary:after{content:'⌄';position:absolute;right:12px}.multi-select-panel{position:absolute;z-index:40;left:0;top:calc(100% + 5px);min-width:260px;max-height:320px;overflow:auto;padding:8px;background:#fff;border:1px solid #d2dfe9;border-radius:7px;box-shadow:0 12px 28px rgba(24,57,87,.14)}.multi-select-panel label{display:flex;gap:8px;align-items:center;padding:7px 8px;border-radius:5px}.multi-select-panel label:hover{background:#f2f7fb}

#contact-form .captcha-row{grid-template-columns:220px 155px!important;gap:14px!important;justify-content:start!important}#contact-form .captcha-field{width:155px!important;max-width:155px!important}#contact-form .captcha-field input{width:130px!important;max-width:130px!important}

@media(max-width:1050px){.merchant-info-grid-117{grid-template-columns:1fr 1fr!important}.preference-grid-117{grid-template-columns:repeat(4,minmax(0,1fr))!important}.visit-grid-117{grid-template-columns:repeat(3,minmax(0,1fr))!important}.buyer-grid-117,.merchant-grid-117{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.portal-language-trigger{min-width:78px;height:32px}.voucher-action-language-row{align-items:flex-start;flex-direction:column}.merchant-info-grid-117{grid-template-columns:1fr!important}.cart-sticky-head{top:58px}.cart-column-heads-117{display:none!important}.cart-column-heads,.cart-row{grid-template-columns:58px minmax(0,1fr) 90px 36px!important}.cart-row .cart-qty-inline{grid-column:2}.cart-summary-row-117{grid-template-columns:1fr 120px!important}.cart-total-label-117{justify-self:start}.cart-total-amount{grid-column:2}.cart-proceed-cell{grid-column:1/-1;justify-self:end}.buyer-grid-117,.merchant-grid-117{grid-template-columns:1fr}.preference-grid-117,.visit-grid-117{grid-template-columns:repeat(2,minmax(0,1fr))!important}.auth-center-shell.auth-background-117{padding:28px 14px}.auth-captcha-row.compact-captcha{grid-template-columns:1fr!important}.auth-captcha-row.compact-captcha .field{max-width:150px!important}}

/* RYU 1.0.17 final release polish */
.public-store-image{background-image:url('../assets/images/public-store-hero-117.jpg')!important}
.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-117.jpg')!important}
.public-explore-image{background-image:url('../assets/images/public-explore-hero-117.jpg')!important}
.portal-language-trigger{min-width:76px!important;height:32px!important;padding:0 8px!important;gap:5px!important;font-size:.78rem!important;border-radius:6px!important}
.portal-language-menu{min-width:102px!important;border-radius:6px!important}
.portal-language-menu button{font-size:.77rem!important;padding:6px 7px!important}
.auth-wide-card,.auth-login-card{width:min(100%,480px)!important;max-width:480px!important}
.auth-center-shell.auth-background-117{background:linear-gradient(rgba(239,248,252,.72),rgba(255,255,255,.82)),url('../assets/images/auth-bg-117.jpg') center/cover fixed no-repeat!important}
.auth-background-117 .auth-wide-card{box-shadow:0 20px 52px rgba(22,58,89,.16)!important}
.btn.stable-hover,.stable-hover{transform:none!important;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease!important}
.btn.stable-hover:hover,.stable-hover:hover{transform:none!important;box-shadow:0 8px 18px rgba(30,78,122,.18)!important}
.public-discovery-hero,.browse-toolbar,.voucher-grid,.merchant-grid,.category-grid,.category-detail-hero,.merchant-topline,.merchant-store-hero,.merchant-info-grid,.cart-sticky-head,.cart-list,.cart-summary-row-117{max-width:none!important}
.hero-metrics-115 .metric-icon{width:48px!important;height:48px!important;border-radius:8px!important}
.hero-metrics-115 .metric-icon svg{width:23px!important;height:23px!important}
.hero-metrics-115>div{align-items:center!important}
.hero-metrics-115 small{font-size:.69rem!important;line-height:1.15!important}
.sort-direction-117{min-width:44px!important;height:42px!important;padding:0 8px!important;border-radius:7px!important}
.sort-direction-117 .sort-active{font-size:1.1rem!important}.sort-direction-117 .sort-inactive{font-size:1rem!important}
.view-more-tile{min-height:100%!important;border-radius:8px!important}
.view-more-tile a,.view-more-tile button{font-weight:650!important;color:#607a92!important}
.merchant-card-117{min-height:186px!important}.merchant-card-117 .merchant-description{min-height:3.9em!important}.merchant-card-117 .merchant-card-footer{align-items:center!important;min-height:28px!important}
.merchant-card-117 .merchant-stats{display:flex!important;align-items:center!important;gap:7px!important}.merchant-card-117 .merchant-stats span{font-size:.64rem!important}.merchant-card-117 .merchant-stats strong{font-size:.72rem!important}.merchant-card-id{font-size:.63rem!important;color:#92a0ae!important}
.merchant-public-logo{width:76px!important;height:76px!important;border-radius:8px!important;overflow:hidden!important}.merchant-public-logo img{width:100%!important;height:100%!important;object-fit:cover!important}
.ask-question-115{gap:8px!important;margin-left:22px!important;max-width:150px!important;line-height:1.12!important}.ask-question-115 svg{width:22px!important;height:22px!important;flex:0 0 auto!important}.ask-question-115 span{white-space:normal!important}
.voucher-card-115{height:100%!important}.voucher-card-115 .voucher-body{min-height:178px!important}.voucher-card-bottom{min-height:30px!important;display:flex!important;justify-content:space-between!important;align-items:flex-end!important}.voucher-price{line-height:1!important}.item-id{line-height:1!important}
.merchant-chat-inline{margin-left:12px!important;margin-right:0!important;flex:0 0 auto!important}
.voucher-action-language-row{margin-top:18px!important}.voucher-action-language-row .content-language-links-117{margin-left:auto!important;justify-content:flex-end!important}
.cart-column-heads-117{font-size:.9rem!important;font-weight:900!important}.cart-column-heads-117 span:nth-child(2){font-size:.92rem!important}.cart-total-label-117{font-size:.9rem!important;font-weight:900!important}.cart-total-amount{font-size:1.45rem!important;font-weight:950!important}.cart-proceed-cell .btn{font-weight:900!important}
.registration-117 .field input,.registration-117 .field select,.registration-117 .field textarea{min-height:38px!important;padding:7px 10px!important}.registration-117 .field textarea{min-height:72px!important}.registration-117{padding-top:8px!important}.registration-heading-row{margin-bottom:14px!important}.registration-actions-117{justify-content:flex-start!important}
.multi-select-117 summary{min-height:38px!important;padding-top:8px!important;padding-bottom:8px!important}
#contact-form .captcha-row{grid-template-columns:220px 145px!important;gap:10px!important}#contact-form .captcha-field{width:145px!important;max-width:145px!important}#contact-form .captcha-field input{width:118px!important;max-width:118px!important}
@media(max-width:700px){.auth-wide-card,.auth-login-card{width:min(100%,480px)!important}.portal-language-trigger{min-width:70px!important}.merchant-card-117 .merchant-description{min-height:0!important}.ask-question-115{margin-left:0!important}.voucher-action-language-row{gap:10px!important}.voucher-action-language-row .content-language-links-117{margin-left:0!important}}

/* RYU 1.0.18 consolidated corrections */
.portal-language-trigger{min-width:68px!important;width:auto!important;height:30px!important;padding:0 7px!important;gap:4px!important;font-size:.75rem!important;border-radius:5px!important}
.portal-language-menu{min-width:92px!important;width:max-content!important;padding:4px!important}
.portal-language-menu button{padding:5px 7px!important;gap:6px!important;font-size:.75rem!important;font-weight:500!important}
.portal-language-menu button.active{font-weight:800!important;background:#f4f8fb!important}
.external-arrow{font-size:.8em;margin-left:3px;display:inline-block;transform:translateY(-1px)}

.hero-metrics-115{gap:34px!important}.hero-metrics-115>div{display:grid!important;grid-template-columns:48px auto!important;grid-template-rows:auto auto!important;column-gap:10px!important;align-items:center!important}.hero-metrics-115 .metric-icon{grid-row:1/3!important;width:44px!important;height:44px!important;border-radius:9px!important;display:grid!important;place-items:center!important}.hero-metrics-115 .metric-icon svg{width:21px!important;height:21px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}.metric-icon-voucher{background:#edf6fc!important;color:#2f6f9e!important}.metric-icon-merchant{background:#edf8f3!important;color:#2b785a!important}.metric-icon-redeemed{background:#fff4e5!important;color:#b97519!important}.hero-metrics-115 strong{font-size:1.55rem!important;line-height:1!important}.hero-metrics-115>div>span:last-child{font-size:.69rem!important;line-height:1.15!important;margin-top:3px!important}

.public-store-image,.public-merchants-image,.public-explore-image{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;border-radius:7px!important;overflow:hidden!important}
.public-store-image{background-image:url('../assets/images/public-store-hero-117.jpg')!important}
.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-117.jpg')!important}
.public-explore-image{background-image:url('../assets/images/public-explore-hero-117.jpg')!important}

.sort-direction-117{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:2px!important;min-width:42px!important;width:42px!important;height:40px!important;padding:0!important;border-radius:6px!important}.sort-direction-117 .sort-active{order:0!important;color:#17649a!important;font-weight:900!important;font-size:1.08rem!important}.sort-direction-117 .sort-inactive{order:1!important;color:#bac7d2!important;font-size:1rem!important}

.voucher-card-118 .voucher-body{display:flex!important;flex-direction:column!important;min-height:184px!important}.voucher-card-spacer{flex:1 1 auto!important;min-height:3px!important}.voucher-card-118 .voucher-card-bottom{margin-top:auto!important;padding-top:4px!important}.voucher-card-118 .voucher-title{min-height:2.5em!important}.voucher-card-118 .voucher-merchant-link-card{min-height:1.2em!important}
.merchant-card-118{display:grid!important;grid-template-columns:68px minmax(0,1fr)!important;align-items:stretch!important;min-height:194px!important}.merchant-card-118 .merchant-card-copy{display:flex!important;flex-direction:column!important;min-width:0!important}.merchant-card-spacer{flex:1 1 auto!important}.merchant-card-118 .merchant-card-footer{margin-top:auto!important;padding-top:8px!important;min-height:32px!important}.merchant-card-118 .merchant-stats strong{font-size:.7rem!important}.merchant-card-118 .merchant-stats span{font-size:.62rem!important}.merchant-card-118 .merchant-stat-vouchers{background:#edf5fd!important;color:#285f8b!important}.merchant-card-118 .merchant-stat-redeemed{background:#eef8f2!important;color:#2e7358!important}

.view-more-tile{display:grid!important;place-items:center!important;min-height:100%!important;height:auto!important;border:1px dashed #cedae5!important;background:#fff!important;border-radius:7px!important}.view-more-tile .view-more-link{font-size:.75rem!important;font-weight:600!important;color:#688097!important;background:transparent!important;border:0!important}.view-more-tile .view-more-link:hover{text-decoration:underline!important;color:#315f86!important}

.content-language-links-117{display:flex!important;align-items:center!important;gap:12px!important;white-space:nowrap!important}.content-language-links-117 button{padding:3px 4px!important;border:0!important;background:transparent!important;color:#8493a2!important;font-size:.69rem!important;border-radius:4px!important}.content-language-links-117 button.active{font-weight:900!important;color:#1d557e!important;background:#edf5fb!important}
.voucher-price-language-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin:18px 0 10px!important}.voucher-price-language-row .detail-price-main{margin:0!important}.voucher-merchant-normal{font-weight:500!important}.merchant-info-row dd{justify-content:flex-start!important}.merchant-info-row .merchant-chat-inline{margin-left:10px!important;width:28px!important;height:28px!important}
.voucher-actions-only{justify-content:flex-start!important}.cart-state-button.add{background:#e6f2f7!important;color:#194f75!important;border-color:#cfe2ec!important}.cart-state-button.add:hover{background:#d9ebf3!important}.cart-state-button.remove{background:#f3eded!important;color:#8a4d57!important;border-color:#e8d7da!important}.cart-state-button.remove:hover{background:#ecdfE1!important}.cart-state-button svg{width:15px!important;height:15px!important;margin-right:7px!important;vertical-align:-2px!important}
.merchant-info-grid-118{display:grid!important;grid-template-columns:1.3fr 1.3fr .8fr .8fr .7fr .65fr!important;gap:22px!important;align-items:start!important;margin:25px 0 30px!important}.merchant-info-grid-118>div span{display:block!important;font-size:.63rem!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:#8a9bab!important;margin-bottom:7px!important}.merchant-info-grid-118>div strong{font-size:.72rem!important;color:#47647e!important;font-weight:700!important;line-height:1.4!important}.merchant-info-grid-118 .merchant-website{text-decoration:none!important}.merchant-info-grid-118 .merchant-website:hover{text-decoration:underline!important}

.cart-column-heads-118,.cart-row{grid-template-columns:minmax(0,1fr) 130px 110px 36px!important}.cart-column-heads-118{display:grid!important;align-items:end!important;padding:0 0 12px!important;border-bottom:1px solid #e7edf2!important;font-size:.9rem!important;font-weight:900!important;color:#60778d!important}.cart-column-heads-118 span:first-child{text-align:left!important;padding-left:0!important}.cart-column-heads-118 span:nth-child(2),.cart-column-heads-118 span:nth-child(3){text-align:right!important;padding-right:12px!important}.cart-row{display:grid!important;align-items:center!important;gap:14px!important}.cart-row>img{display:none!important}.cart-copy{grid-column:1!important}.cart-price{grid-column:2!important;text-align:right!important;padding-right:12px!important}.cart-qty-inline{grid-column:3!important;justify-content:flex-end!important}.cart-remove-icon{grid-column:4!important}.cart-summary-row-118{display:grid!important;grid-template-columns:minmax(0,1fr) 130px 146px!important;align-items:center!important;gap:14px!important;border-top:1px solid #e4ebf1!important;padding:18px 0 0!important;margin-top:0!important}.cart-total-label-118{grid-column:1!important;justify-self:end!important;font-weight:900!important;font-size:.91rem!important;color:#3f5f7a!important}.cart-total-amount{grid-column:2!important;justify-self:end!important;padding-right:12px!important}.cart-proceed-cell{grid-column:3!important;justify-self:end!important}.cart-merchant-group h2{font-size:.77rem!important;margin-top:24px!important;margin-bottom:0!important}

.auth-background-118{min-height:calc(100vh - 72px)!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:52px 20px!important;background:linear-gradient(rgba(243,250,253,.70),rgba(255,255,255,.80)),url('../assets/images/auth-bg-118.jpg') center/cover fixed no-repeat!important}.auth-background-118 .auth-wide-card{background:rgba(255,255,255,.97)!important;box-shadow:0 20px 50px rgba(20,56,88,.17)!important}.auth-login-card,.auth-wide-card{width:min(100%,470px)!important;max-width:470px!important}.auth-main-form .field input{min-height:42px!important}.auth-captcha-row.compact-captcha{grid-template-columns:230px 138px!important;gap:12px!important}.auth-captcha-row.compact-captcha .field input{width:122px!important}

.registration-118{max-width:1180px!important}.registration-118 .field input,.registration-118 .field select{height:38px!important;min-height:38px!important}.registration-118 .field textarea{min-height:70px!important}.registration-118 .field>span{font-size:.71rem!important}.preference-grid-118{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px 18px!important;margin-top:9px!important}.preference-grid-118 label{display:grid!important;grid-template-columns:16px minmax(0,1fr)!important;gap:7px!important;align-items:center!important;font-size:.76rem!important}.preference-grid-118 input{margin:0!important}.registration-actions-118{justify-content:flex-start!important;padding-left:0!important;margin-left:0!important}.registration-actions-118 .btn{margin-left:0!important}.multi-select-trigger-118{width:100%!important;height:38px!important;border:1px solid #cbd9e5!important;background:#fff!important;color:#173f64!important;border-radius:6px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0 11px!important;font:inherit!important;text-align:left!important}.multi-select-panel-118{position:absolute!important;z-index:60!important;left:0!important;right:auto!important;top:calc(100% + 5px)!important;width:min(330px,90vw)!important;max-height:280px!important;overflow:auto!important;padding:6px!important;background:#fff!important;border:1px solid #d3dee8!important;border-radius:6px!important;box-shadow:0 12px 28px rgba(28,58,84,.16)!important}.sector-multi{position:relative!important}.multi-select-panel-118 label{display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;padding:7px 8px!important;border-radius:5px!important;font-size:.76rem!important}.multi-select-panel-118 label:hover{background:#f3f7fa!important}.multi-select-panel-118 input{width:15px!important;height:15px!important;margin:0!important}

@media(max-width:1100px){.merchant-info-grid-118{grid-template-columns:repeat(3,minmax(0,1fr))!important}.preference-grid-118{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:760px){.portal-language-trigger{min-width:64px!important}.hero-metrics-115{gap:18px!important}.merchant-info-grid-118{grid-template-columns:1fr 1fr!important}.content-language-links-117{gap:8px!important}.voucher-price-language-row{align-items:flex-start!important;flex-direction:column!important}.cart-column-heads-118{display:none!important}.cart-row{grid-template-columns:minmax(0,1fr) 92px 74px 32px!important}.cart-summary-row-118{grid-template-columns:minmax(0,1fr) 110px!important}.cart-proceed-cell{grid-column:1/-1!important;margin-top:8px!important}.preference-grid-118{grid-template-columns:repeat(2,minmax(0,1fr))!important}.registration-118{padding-left:4px!important;padding-right:4px!important}.auth-background-118{padding:28px 14px!important;background-attachment:scroll!important}}

/* RYU 1.0.18 final release alignment and regression fixes. */
.public-store-image{background-image:url('../assets/images/public-store-hero-118.jpg')!important}
.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-118.jpg')!important}
.public-explore-image{background-image:url('../assets/images/public-explore-hero-118.jpg')!important}
.portal-language-trigger{min-width:68px!important;max-width:82px!important;height:32px!important;padding:0 8px!important;gap:5px!important;border-radius:6px!important;font-size:.77rem!important}
.portal-language-menu{min-width:98px!important;padding:4px!important;border-radius:6px!important}
.portal-language-menu button{padding:6px 7px!important;font-size:.76rem!important;border-radius:4px!important}
.portal-language-menu button.active{font-weight:900!important;background:#f3f7fa!important}
.external-arrow{display:inline-block;margin-left:3px;font-size:.72em;transform:translateY(-.08em)}
.metric-icon-redeemed svg path:first-child{stroke-dasharray:18 2!important}
.hero-metrics-115 .metric-icon{width:44px!important;height:44px!important;border-radius:9px!important}.hero-metrics-115 .metric-icon svg{width:23px!important;height:23px!important}
.content-language-links-117 button{font-size:.69rem!important;padding:4px 6px!important;border-radius:4px!important}.content-language-links-117 button.active{font-weight:900!important;background:#eaf3f8!important;color:#1d567e!important}
.voucher-merchant-normal{font-weight:600!important}.merchant-chat-inline{margin-left:10px!important;position:static!important}
.merchant-info-row dd{justify-content:flex-start!important}
.merchant-card-118{height:100%!important;min-height:188px!important}.merchant-card-118 .merchant-card-copy{display:flex!important;flex-direction:column!important;min-height:100%!important}.merchant-card-118 .merchant-card-spacer{flex:1 1 auto!important}.merchant-card-footer{margin-top:auto!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}.merchant-card-118 .merchant-stats{margin:0!important}.merchant-card-118 .merchant-stats span{font-size:.64rem!important;padding:4px 7px!important}.merchant-card-118 .merchant-stats strong{font-size:.7rem!important}.merchant-card-id{font-size:.64rem!important;color:#8b98a6!important}
.voucher-card-118{height:100%!important}.voucher-card-118 .voucher-body{display:flex!important;flex-direction:column!important}.voucher-card-spacer{flex:1 1 auto!important}.voucher-card-118 .voucher-card-bottom{margin-top:auto!important;display:flex!important;align-items:baseline!important;justify-content:space-between!important}
.sort-direction-117{min-width:42px!important;width:42px!important;padding:0 5px!important;display:flex!important;justify-content:center!important;gap:3px!important}.sort-direction-117 .sort-active{font-weight:900!important;color:#1b5b8a!important}.sort-direction-117 .sort-inactive{font-weight:700!important;color:#b3c0ca!important}
.cart-column-heads-118,.cart-row-118{grid-template-columns:minmax(0,1fr) 130px 110px 92px!important}.cart-column-heads-118{padding-left:0!important}.cart-column-heads-118 span:first-child{text-align:left!important}.cart-item-description{display:flex!important;align-items:center!important;gap:13px!important;min-width:0!important}.cart-item-description>img{width:70px!important;height:54px!important;object-fit:cover!important;border-radius:6px!important;flex:0 0 70px!important}.cart-item-description .cart-copy{min-width:0!important}.cart-row-118{display:grid!important;align-items:center!important;gap:14px!important;min-height:76px!important}.cart-row-118 .cart-price{text-align:right!important;padding-right:12px!important}.cart-row-118 .cart-qty-inline{justify-content:flex-end!important}.cart-row-118 .cart-remove-icon{justify-self:end!important}.cart-summary-row-118{grid-template-columns:minmax(0,1fr) 130px 110px 92px!important}.cart-total-label-118{grid-column:2!important;justify-self:end!important;padding-right:12px!important}.cart-total-amount{grid-column:3!important;justify-self:end!important;padding-right:12px!important}.cart-proceed-cell{grid-column:4!important;justify-self:end!important}.cart-column-heads-118{font-size:.92rem!important;font-weight:900!important}.cart-column-heads-118 span:nth-child(2),.cart-column-heads-118 span:nth-child(3){font-size:.92rem!important;font-weight:900!important}
.auth-background-118{background:linear-gradient(rgba(239,248,252,.66),rgba(255,255,255,.76)),url('../assets/images/auth-bg-118.jpg') center/cover fixed no-repeat!important}.auth-background-118 .auth-wide-card{width:min(100%,470px)!important;max-width:470px!important}.registration-118 .field{min-width:0!important}.registration-118 .field input,.registration-118 .field select{height:38px!important;min-height:38px!important}.registration-118 .field .inline-field-error,.registration-118 .inline-field-error{min-height:16px!important;display:block!important}.captcha-align-117,.registration-actions-118{padding-left:0!important;margin-left:0!important}.preference-grid-118{align-items:start!important}.preference-grid-118 label{min-height:24px!important}
.multi-select-panel-118 input[type=checkbox]{appearance:auto!important;-webkit-appearance:checkbox!important;width:15px!important;height:15px!important;min-height:15px!important;padding:0!important;border-radius:2px!important}
.multi-select-panel-118 label{grid-template-columns:18px minmax(0,1fr)!important;text-align:left!important}.multi-select-panel-118 label span{text-align:left!important;font-weight:600!important}
@media(max-width:760px){.cart-column-heads-118{display:none!important}.cart-row-118{grid-template-columns:minmax(0,1fr) 88px 72px 32px!important}.cart-item-description>img{width:56px!important;height:46px!important;flex-basis:56px!important}.cart-summary-row-118{grid-template-columns:minmax(0,1fr) 105px!important}.cart-total-label-118{grid-column:1!important;justify-self:end!important}.cart-total-amount{grid-column:2!important}.cart-proceed-cell{grid-column:1/-1!important;margin-top:8px!important}.auth-background-118{background-attachment:scroll!important}}


/* RYU Portal 1.0.19 final UI refinements. */
.portal-language-chevron,.sector-chevron-119,.nationality-chevron-119{width:14px;height:14px;flex:0 0 14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.external-arrow-119{width:15px!important;height:15px!important;font-size:inherit!important;margin-left:5px!important;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform:none!important}
#about-link.active{background:transparent!important;text-decoration:none!important;color:inherit!important}#about-link:focus:not(:focus-visible){background:transparent!important;text-decoration:none!important;outline:none!important}

.public-store-image{background-image:url('../assets/images/public-store-hero-119.jpg')!important}.public-merchants-image{background-image:url('../assets/images/public-merchants-hero-119.jpg')!important}.public-explore-image{background-image:url('../assets/images/public-explore-hero-119.jpg')!important}.public-hero-image{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.voucher-image img,.category-card-115 img,.category-detail-hero>img,.merchant-store-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}.voucher-image,.category-card-main{overflow:hidden!important}

.auth-center-shell.auth-background-119{width:100vw!important;max-width:none!important;min-height:calc(100vh - var(--header,72px))!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:38px 20px!important;box-sizing:border-box!important;display:grid!important;place-items:center!important;background:linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,.38)),url('../assets/images/okinawa-login-bg-progressive.jpg') center/cover no-repeat!important}.auth-background-119>.auth-wide-card,.auth-background-119>.auth-login-card{margin:0 auto!important}

.portal-contact-head-119{margin:0 0 18px!important;display:block!important}.portal-contact-head-119 .page-title,.portal-contact-head-119 h1{margin:0 0 6px!important}.contact-hint-119{margin:0!important;color:#61778c!important;font-size:.92rem!important;max-width:680px!important}.portal-company-info{top:calc(var(--header) + 20px)!important}

.category-toolbar-119{display:grid!important;grid-template-columns:minmax(420px,1fr) minmax(220px,260px) 42px!important;width:100%!important;gap:10px!important}.category-toolbar-119 .search-wrap{min-width:0!important;width:100%!important}.category-toolbar-119 .search-input{width:100%!important}.category-toolbar-119 select{width:100%!important}

.merchant-info-grid-119{grid-template-columns:minmax(170px,1.35fr) minmax(155px,1.2fr) minmax(120px,.9fr) minmax(110px,.9fr) minmax(85px,.7fr) minmax(85px,.65fr) 74px!important;align-items:stretch!important}.merchant-contact-cell-119 strong{display:flex!important;align-items:center!important;min-height:30px!important}.merchant-contact-icon-119{display:inline-grid!important;place-items:center!important;width:32px!important;height:32px!important;border-radius:7px!important;background:#f2f7fb!important;color:#185681!important;text-decoration:none!important}.merchant-contact-icon-119 svg{width:21px!important;height:21px!important}.merchant-contact-icon-119:hover{background:#e5f0f8!important;text-decoration:none!important}
.merchant-website{overflow-wrap:anywhere!important;word-break:normal!important}

/* Only merchant-name links lose underline-on-hover; other link hover treatments remain unchanged. */
.merchant-name-link,.merchant-name-link:hover,.voucher-merchant-link-card,.voucher-merchant-link-card:hover,.voucher-merchant-link,.voucher-merchant-link:hover,.cart-merchant-link,.cart-merchant-link:hover,.cart-merchant-group h2>a:hover{text-decoration:none!important;cursor:pointer!important}

.voucher-merchant-normal{font-size:inherit!important;line-height:inherit!important;font-weight:600!important}.voucher-actions .btn,.btn-checkout{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important}.action-icon-119{width:22px!important;height:22px!important;flex:0 0 22px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}.cart-state-button.remove .action-icon-119{width:23px!important;height:23px!important}.voucher-long-description-119{width:100%!important;max-width:none!important;margin:30px 0 0!important;padding-left:0!important;padding-right:0!important}.voucher-long-description-119 img{float:right!important;margin:0 0 18px 28px!important;max-width:250px!important;height:auto!important}.detail-image img{object-fit:cover!important}

.sector-summary-118{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.78rem!important}.sector-more-119{font-size:.78rem!important;font-weight:850!important}.multi-select-panel-118 label span{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.multi-select-trigger-118{gap:8px!important}

.registration-119{padding-top:16px!important;padding-bottom:20px!important}.registration-119 .registration-heading-row{margin-bottom:10px!important}.registration-119 form{row-gap:8px!important;column-gap:18px!important}.registration-119 .field{gap:4px!important}.registration-119 .field textarea{min-height:54px!important}.registration-119 .plain-preferences{margin-top:4px!important}.registration-119 .preference-grid-118{margin-top:5px!important;gap:6px 14px!important}.registration-119 .captcha-align-117{margin-top:2px!important}.registration-119 .registration-actions-118{margin-top:2px!important}.registration-119 .inline-field-error{min-height:14px!important;font-size:.68rem!important}
.nationality-field-119{display:grid!important;align-content:start!important;gap:4px!important;min-width:0!important}.nationality-select-119{position:relative!important;min-width:0!important}.nationality-trigger-119{height:38px!important;width:100%!important;border:1px solid #cbd9e5!important;border-radius:6px!important;background:#fff!important;color:#173f64!important;padding:0 10px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;font:inherit!important;cursor:pointer!important}.nationality-current-119{display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:left!important}.nationality-panel-119{position:absolute!important;z-index:70!important;left:0!important;right:0!important;top:calc(100% + 5px)!important;background:#fff!important;border:1px solid #d3dee8!important;border-radius:7px!important;box-shadow:0 14px 30px rgba(28,58,84,.17)!important;padding:7px!important}.nationality-panel-119[hidden]{display:none!important}.nationality-search-119{width:100%!important;height:36px!important;min-height:36px!important;margin-bottom:6px!important}.nationality-options-119{max-height:230px!important;overflow:auto!important}.nationality-option-119{width:100%!important;border:0!important;background:transparent!important;border-radius:5px!important;padding:7px 8px!important;display:flex!important;align-items:center!important;gap:8px!important;color:#314e6b!important;font:inherit!important;font-size:.78rem!important;text-align:left!important;cursor:pointer!important}.nationality-option-119:hover{background:#f2f7fb!important}.country-flag-119{width:22px!important;flex:0 0 22px!important;font-size:1rem!important}.nationality-option-119[hidden]{display:none!important}

.cart-sticky-head{position:static!important;padding-top:0!important}.cart-merchant-group-119{padding:0!important;margin:0 0 12px!important;border:0!important}.cart-merchant-group-119 h2{margin:0 0 3px!important;padding:0 0 2px!important;border-bottom:0!important;font-size:.76rem!important}.cart-row-119{min-height:60px!important;padding:6px 0!important;border-top:1px solid #edf1f4!important;gap:12px!important}.cart-merchant-group-119 .cart-row-119:first-of-type{border-top:0!important}.cart-item-description>img{width:58px!important;height:44px!important;flex-basis:58px!important}.cart-copy strong{font-size:.88rem!important}.cart-copy small{font-size:.68rem!important}.cart-summary-row-119{margin-top:8px!important;padding-top:10px!important}.cart-proceed-119{white-space:nowrap!important;flex-wrap:nowrap!important;gap:8px!important;min-width:max-content!important}.cart-proceed-119 span{white-space:nowrap!important}

@media(max-width:1100px){.merchant-info-grid-119{grid-template-columns:repeat(4,minmax(0,1fr))!important}.category-toolbar-119{grid-template-columns:minmax(320px,1fr) minmax(210px,250px) 42px!important}}
@media(max-width:760px){.auth-center-shell.auth-background-119{padding:24px 13px!important;background-attachment:scroll!important}.category-toolbar-119{grid-template-columns:minmax(0,1fr) 42px!important}.category-toolbar-119 .search-wrap{grid-column:1/-1!important}.category-toolbar-119 select{grid-column:1!important}.category-toolbar-119 .sort-direction-icon{grid-column:2!important}.merchant-info-grid-119{grid-template-columns:1fr 1fr!important}.voucher-long-description-119 img{float:none!important;display:block!important;margin:16px 0 0 auto!important;max-width:100%!important}.registration-119 form{row-gap:7px!important}.cart-row-119{grid-template-columns:minmax(0,1fr) 78px 66px 30px!important}.cart-item-description>img{width:50px!important;height:40px!important;flex-basis:50px!important}}

/* Portal 1.0.20: final layout and interaction refinements. */
.external-arrow-120{width:18px!important;height:18px!important;margin-left:6px!important;vertical-align:-4px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.85!important;stroke-linecap:round!important;stroke-linejoin:round!important}

/* Give Recommended enough room and keep the sort-direction control on the far right. */
.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119){display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(170px,190px) minmax(230px,250px) 42px!important;gap:10px!important;align-items:center!important}
.merchant-store-toolbar{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(230px,250px) 42px!important;gap:10px!important;align-items:center!important}
.category-toolbar-119{display:grid!important;grid-template-columns:minmax(420px,1fr) minmax(230px,250px) 42px!important;gap:10px!important;align-items:center!important}
.browse-toolbar select[name="sort"]{width:100%!important;min-width:0!important;padding-right:34px!important;text-overflow:ellipsis!important}

/* Authentication pages occupy the viewport cleanly; footer overlays the background instead of creating a white band. */
.page:has(> .auth-center-shell.auth-background-119){max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
.app-main:has(.auth-center-shell.auth-background-119){min-height:0!important;overflow-x:hidden!important}
.app-main:has(.auth-center-shell.auth-background-119)+.app-footer{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:8!important;padding:12px 20px 14px!important;color:#6f8295!important;background:transparent!important;pointer-events:auto!important}
.auth-center-shell.auth-background-119{width:100%!important;max-width:none!important;height:calc(100dvh - var(--header))!important;min-height:0!important;margin:0!important;padding:16px!important;display:grid!important;place-items:center!important;overflow:hidden!important;background:linear-gradient(rgba(255,255,255,.20),rgba(255,255,255,.30)),url('../assets/images/okinawa-login-bg-progressive.jpg') center center/cover no-repeat!important}
.auth-background-119>.auth-wide-card,.auth-background-119>.auth-login-card{width:min(100%,430px)!important;max-width:430px!important;margin:0 auto!important;padding:23px 28px!important;border-radius:15px!important;box-shadow:0 20px 50px rgba(19,54,83,.16)!important}
.auth-background-119 .auth-heading-with-logo{margin-bottom:14px!important;grid-template-columns:minmax(0,1fr) 44px!important;gap:14px!important}.auth-background-119 .auth-heading-with-logo img{width:44px!important;height:44px!important}.auth-background-119 .auth-heading-with-logo h1{font-size:1.9rem!important}.auth-background-119 .stack{gap:10px!important}.auth-background-119 .field{gap:4px!important}.auth-background-119 .field input,.auth-background-119 .field select{height:40px!important;min-height:40px!important;padding-top:8px!important;padding-bottom:8px!important}.auth-background-119 .forgot-row{margin-top:-1px!important;margin-bottom:1px!important}.auth-background-119 .auth-captcha{margin-top:3px!important}.auth-background-119 .auth-captcha-row.compact-captcha{grid-template-columns:minmax(0,210px) minmax(0,128px)!important;gap:10px!important;align-items:end!important}.auth-background-119 .auth-captcha-row img{width:210px!important;height:62px!important;object-fit:cover!important}.auth-background-119 .auth-captcha-row.compact-captcha .field input{height:40px!important;min-height:40px!important}.auth-background-119 .auth-links-bottom{margin-top:8px!important}.auth-background-119 .btn{min-height:40px!important}

/* Searchable nationality: no dead space around the first "Not selected" row. */
.nationality-panel-119{padding:6px!important}.nationality-search-119{margin:0 0 2px!important}.nationality-options-119{display:flex!important;flex-direction:column!important;gap:0!important;margin:0!important;padding:0!important;max-height:230px!important}.nationality-option-119{min-height:28px!important;margin:0!important;padding:5px 8px!important;line-height:1.2!important}.nationality-option-119:first-child{min-height:27px!important;padding-top:4px!important;padding-bottom:4px!important}

/* Hero metrics are legible at a glance. */
.hero-metrics-115{gap:34px!important}.hero-metrics-115>div{grid-template-columns:54px auto!important;column-gap:10px!important}.hero-metrics-115 .metric-icon{width:52px!important;height:52px!important;border-radius:11px!important}.hero-metrics-115 .metric-icon svg{width:29px!important;height:29px!important;stroke-width:1.9!important}

/* Voucher actions: larger crisp cart glyph and a single-line Add to cart label. */
.cart-state-button.add{white-space:nowrap!important;flex-wrap:nowrap!important;min-width:168px!important;width:auto!important;gap:10px!important}.cart-state-button.add span{white-space:nowrap!important}.cart-state-button.add .action-icon-119{width:29px!important;height:29px!important;flex:0 0 29px!important;stroke-width:1.9!important}

/* Shopping cart summary lines up with the same price column as voucher rows. */
.cart-list.cart-grouped{border-top:0!important}.cart-sticky-head,.cart-heading{border-bottom:0!important}.cart-summary-row-118.cart-summary-row-119{display:grid!important;grid-template-columns:minmax(0,1fr) 130px 110px 92px!important;gap:12px!important;align-items:center!important;margin-top:8px!important;padding-top:10px!important}.cart-total-label-118{grid-column:1!important;justify-self:end!important;padding-right:12px!important;white-space:nowrap!important}.cart-total-amount{grid-column:2!important;justify-self:end!important;padding-right:12px!important;white-space:nowrap!important}.cart-proceed-cell{grid-column:3/5!important;justify-self:end!important;min-width:0!important}.cart-proceed-119{white-space:nowrap!important;flex-wrap:nowrap!important;min-width:max-content!important;gap:8px!important}

/* Card grids: consistent image, title, description and footer baselines. */
.category-grid,.voucher-grid,.merchant-grid{align-items:stretch!important}.category-card-115{display:flex!important;flex-direction:column!important;height:100%!important}.category-card-115 .category-card-main{display:flex!important;flex-direction:column!important;flex:1 1 auto!important}.category-card-115 .category-card-main>img{width:100%!important;height:180px!important;flex:0 0 180px!important;object-fit:cover!important}.category-card-115 .category-card-main>div{display:flex!important;flex-direction:column!important;flex:1 1 auto!important}.category-card-115 h2{min-height:2.5em!important;margin-bottom:7px!important}.category-card-115 p{min-height:3.05em!important;margin-bottom:8px!important}.category-card-115 .category-counts{margin-top:auto!important;min-height:46px!important;align-items:flex-end!important}
.voucher-card-118{height:100%!important}.voucher-card-118 .voucher-image{height:168px!important;flex:0 0 168px!important}.voucher-card-118 .voucher-meta{min-height:24px!important}.voucher-card-118 .voucher-title{height:2.5em!important;min-height:2.5em!important;overflow:hidden!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important}.voucher-card-118 .voucher-merchant-link-card{min-height:1.3em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.voucher-card-118 .voucher-card-bottom{min-height:30px!important}
.merchant-card-118{height:100%!important}.merchant-card-118 .merchant-title-row{min-height:42px!important;align-items:flex-start!important}.merchant-card-118 .merchant-title-row h3{margin:0!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}.merchant-card-118 .merchant-address{min-height:1.3em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.merchant-card-118 .merchant-description{height:3.35em!important;min-height:3.35em!important;overflow:hidden!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important}.merchant-card-118 .merchant-card-footer{min-height:32px!important}

.contact-subject-120{margin-bottom:14px!important}

@media(max-width:1100px){.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119){grid-template-columns:minmax(250px,1fr) minmax(150px,175px) minmax(215px,230px) 42px!important}.merchant-store-toolbar,.category-toolbar-119{grid-template-columns:minmax(250px,1fr) minmax(215px,230px) 42px!important}.hero-metrics-115{gap:24px!important}}
@media(max-width:760px){.page:has(> .auth-center-shell.auth-background-119){padding:0!important}.auth-center-shell.auth-background-119{height:calc(100dvh - var(--header))!important;padding:12px!important;overflow:auto!important;place-items:center!important}.auth-background-119>.auth-wide-card,.auth-background-119>.auth-login-card{width:min(100%,420px)!important;padding:20px 20px!important}.app-main:has(.auth-center-shell.auth-background-119)+.app-footer{position:absolute!important;padding:8px 12px!important}.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119),.merchant-store-toolbar,.category-toolbar-119{grid-template-columns:minmax(0,1fr) 42px!important}.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119) .search-wrap,.merchant-store-toolbar .search-wrap,.category-toolbar-119 .search-wrap{grid-column:1/-1!important}.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119) select[name="category"]{grid-column:1/-1!important}.browse-toolbar select[name="sort"]{grid-column:1!important}.browse-toolbar .sort-direction-icon{grid-column:2!important}.hero-metrics-115>div{grid-template-columns:48px auto!important}.hero-metrics-115 .metric-icon{width:46px!important;height:46px!important}.hero-metrics-115 .metric-icon svg{width:25px!important;height:25px!important}.cart-summary-row-118.cart-summary-row-119{grid-template-columns:minmax(0,1fr) 96px!important;row-gap:8px!important}.cart-total-label-118{grid-column:1!important}.cart-total-amount{grid-column:2!important}.cart-proceed-cell{grid-column:1/-1!important;justify-self:end!important}.category-card-115 .category-card-main>img{height:160px!important;flex-basis:160px!important}}


/* RYU Portal 1.0.21 / Landing 1.0.20 refinements. */
/* Searchable nationality sits directly below its trigger and aligns with the surrounding row. */
.buyer-grid-117{align-items:start!important}
.nationality-field-119{align-self:start!important;margin:0!important;padding:0!important}
.nationality-panel-119{top:calc(100% + 1px)!important;padding:4px!important}
.nationality-search-119{margin:0!important;height:36px!important;min-height:36px!important}
.nationality-options-119{margin:0!important;padding:0!important;gap:0!important}
.nationality-option-119{margin:0!important;min-height:27px!important;padding:4px 7px!important}
.nationality-option-119:first-child{margin:0!important;padding-top:4px!important;padding-bottom:4px!important}

/* Registration action starts line up exactly with the captcha's left edge. */
.registration-actions-121{justify-self:start!important;width:auto!important;margin-left:0!important;padding-left:0!important}
.registration-actions-121 #form-message:empty{display:none!important}
.captcha-align-117,.registration-actions-121{justify-self:start!important}

/* Merchant business details form a compact three-column row after the full-width website field. */
.merchant-website-field-121{margin-bottom:0!important}
.merchant-grid-117{row-gap:8px!important}
.merchant-business-copy-121{grid-column:auto!important;align-self:start!important;margin-top:0!important}
.merchant-business-copy-121 textarea{height:76px!important;min-height:76px!important;max-height:132px!important;resize:vertical!important}

/* Replace the icon-only sort direction affordance with a readable compact dropdown. */
.sort-direction-select-121{width:100%!important;min-width:0!important;height:42px!important;min-height:42px!important;padding:0 32px 0 12px!important;border:1px solid #c8d8e6!important;border-radius:7px!important;background-color:#fff!important;color:#244460!important;font:inherit!important;cursor:pointer!important}
.browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119){grid-template-columns:minmax(300px,1fr) minmax(170px,190px) minmax(220px,245px) minmax(120px,145px)!important}
.merchant-store-toolbar,.category-toolbar-119{grid-template-columns:minmax(300px,1fr) minmax(220px,245px) minmax(120px,145px)!important}

/* Page-view style discovery photography: one clean cover image, swipeable, with page dots below. */
.hero-carousel-121{width:100%;min-width:0;align-self:center}
.hero-carousel-viewport-121{width:100%;height:230px;overflow:hidden;border-radius:8px;background:#eef4f7;touch-action:pan-y;cursor:grab;user-select:none}
.hero-carousel-viewport-121:active{cursor:grabbing}
.hero-carousel-track-121{height:100%;display:flex;will-change:transform;transition:transform .42s cubic-bezier(.22,.61,.36,1)}
.hero-carousel-slide-121{height:100%;flex:0 0 100%;min-width:100%}
.hero-carousel-slide-121 img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-carousel-dots-121{height:22px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:5px}
.hero-carousel-dot-121{width:7px;height:7px;min-width:7px;padding:0;border:0;border-radius:50%;background:#c5d2dc;cursor:pointer;transition:transform .18s ease,background .18s ease}
.hero-carousel-dot-121.active{background:#245d8c;transform:scale(1.35)}
.hero-carousel-dot-121:focus-visible{outline:2px solid #245d8c;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.hero-carousel-track-121{transition:none!important}.hero-carousel-dot-121{transition:none!important}}

/* Stock/availability has its own semantic palette, separate from category chips. */
.voucher-card .stock.stock-normal{background:#e9f5fb!important;color:#28657e!important}
.voucher-card .stock.stock-low{background:#fff1d2!important;color:#8d5900!important}
.voucher-card .stock.stock-urgent{background:#ffeadb!important;color:#a64218!important}
.voucher-card .stock.stock-critical{background:#fdebed!important;color:#a82b3b!important}

/* Voucher actions use one common control height and crisp icon alignment. */
.voucher-actions .cart-state-button,.voucher-actions .btn-checkout{height:46px!important;min-height:46px!important;padding-top:0!important;padding-bottom:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.voucher-actions .action-icon-119{flex:0 0 auto!important}

@media(max-width:1100px){
  .browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119){grid-template-columns:minmax(250px,1fr) minmax(150px,175px) minmax(205px,225px) minmax(115px,135px)!important}
  .merchant-store-toolbar,.category-toolbar-119{grid-template-columns:minmax(250px,1fr) minmax(205px,225px) minmax(115px,135px)!important}
  .hero-carousel-viewport-121{height:210px}
}
@media(max-width:760px){
  .browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119),.merchant-store-toolbar,.category-toolbar-119{grid-template-columns:minmax(0,1fr) minmax(112px,135px)!important}
  .browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119) .search-wrap,.merchant-store-toolbar .search-wrap,.category-toolbar-119 .search-wrap{grid-column:1/-1!important}
  .browse-toolbar.live-browse:not(.merchant-store-toolbar):not(.category-toolbar-119) select[name="category"]{grid-column:1/-1!important}
  .browse-toolbar select[name="sort"]{grid-column:1!important}
  .sort-direction-select-121{grid-column:2!important}
  .hero-carousel-viewport-121{height:180px}
  .merchant-business-copy-121{grid-column:1/-1!important}
}
/* Validation messages stay above the registration actions instead of pushing the primary button sideways. */
.registration-actions-121{display:grid!important;grid-template-columns:max-content max-content!important;align-items:center!important;gap:8px 18px!important}
.registration-actions-121 #form-message:not(:empty){grid-column:1/-1!important;width:100%!important}


/* RYU Portal 1.0.22 refinements */
#about-link.about-nav-link,#about-link.about-nav-clean{display:inline-flex!important;align-items:center!important;gap:7px!important;padding:8px 11px!important;border-radius:9px!important;background:transparent!important;text-decoration:none!important}
#about-link.about-nav-link:hover,#about-link.about-nav-link:focus-visible,#about-link.about-nav-clean:hover,#about-link.about-nav-clean:focus-visible{background:#edf4f9!important;text-decoration:none!important;color:var(--ink)!important}
#about-link .external-arrow{flex:0 0 auto}
.auth-background-119 .auth-heading-with-logo{grid-template-columns:1fr!important;gap:0!important}
.auth-background-119 .auth-heading-with-logo>img{display:none!important}
.portal-company-info .company-info-block{border-top:0!important}
.merchant-enquiry-panel-122 .company-logo{border-radius:12px!important;object-fit:cover!important;background:#fff!important}
.merchant-enquiry-panel-122 .company-info-block{padding-top:10px!important;padding-bottom:10px!important}

/* Portal 1.0.22 cart cleanup: merchant grouping/spacing replaces row divider rules. */
.cart-list,.cart-list.cart-grouped{border-top:0!important}
.cart-row,.cart-row-118,.cart-row-119,.cart-merchant-group-119 .cart-row-119{border-top:0!important;border-bottom:0!important}


/* RYU Portal 1.0.23 alignment, navigation and category-page refinements */
html{scrollbar-gutter:stable!important}
.registration-wide-page.registration-117,.registration-wide-page.registration-118,.registration-wide-page.registration-119{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important}
.nationality-panel-119{top:100%!important;margin-top:-1px!important;padding:2px 4px 4px!important;border-top-left-radius:0!important;border-top-right-radius:0!important}
.nationality-trigger-119[aria-expanded="true"]{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}
.nationality-search-119{margin:0!important}
.auth-nav-link.active{color:var(--ink)!important;text-decoration:underline!important;text-underline-offset:7px!important;text-decoration-thickness:2px!important}
#about-link.about-nav-link,#about-link.about-nav-clean{gap:3px!important;padding-left:9px!important;padding-right:9px!important}
.category-detail-hero>.category-carousel-123{width:100%!important;max-width:420px!important;justify-self:end!important}
.category-detail-hero .category-carousel-123 .hero-carousel-viewport-121{height:220px!important}
.category-detail-hero .category-carousel-123 .hero-carousel-dots-121{margin-top:3px!important;height:18px!important}
@media(max-width:1050px){.category-detail-hero>.category-carousel-123{max-width:none!important;justify-self:stretch!important}.category-detail-hero .category-carousel-123 .hero-carousel-viewport-121{height:200px!important}}


/* RYU Portal 1.0.24 final spacing/alignment fixes. */
.nationality-panel-119{top:calc(100% - 1px)!important;margin-top:0!important;padding:0 4px 4px!important}
.nationality-search-119{display:block!important;margin:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}
.registration-wide-page.registration-117,.registration-wide-page.registration-118,.registration-wide-page.registration-119{padding-left:0!important;padding-right:0!important}


/* RYU Portal 1.0.26 registration dropdown and heading polish. */
.registration-heading-row{justify-content:flex-start!important}
.registration-heading-row>img{display:none!important}

/* Keep the nationality popup visually attached to the selector while giving
   the search field deliberate inset spacing instead of touching the frame. */
.nationality-panel-119{
  top:calc(100% - 1px)!important;
  margin:0!important;
  padding:6px!important;
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
  overflow:hidden!important;
}
.nationality-trigger-119[aria-expanded="true"]{
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
}
.nationality-search-119{
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:36px!important;
  min-height:36px!important;
  margin:0 0 3px!important;
  padding:7px 9px!important;
  border:1px solid #bfd1e0!important;
  border-radius:4px!important;
  box-shadow:none!important;
  background:#fff!important;
}
.nationality-search-119:focus{
  border-color:#6da8da!important;
  box-shadow:0 0 0 2px rgba(48,126,190,.12)!important;
  outline:0!important;
}
.nationality-options-119{
  margin:0!important;
  padding:0!important;
  gap:0!important;
}
.nationality-option-119{
  margin:0!important;
  padding:5px 7px!important;
}

/* RYU Portal 1.0.27 nationality popup micro-alignment patch. */
/* Lift the entire searchable nationality panel 10px closer to its trigger. */
.nationality-panel-119{top:calc(100% - 11px)!important}

/* RYU Portal 1.0.28 final visual micro-alignment. */
/* Pull the entire nationality popup a further 8px upward so it visually hugs
   the closed selector, without changing the search field or country rows. */
.nationality-panel-119{top:calc(100% - 19px)!important}

/* On the Store / Merchants / Explore discovery heroes, the carousel includes
   its dot rail beneath the image. Nudge the copy upward so the complete text
   block is optically centered against the full carousel card height. */
@media(min-width:1051px){
  .public-discovery-hero .public-hero-copy{position:relative!important;top:-16px!important}
}

/* RYU Portal 1.0.29 discovery-hero optical alignment patch. */
/* Lift the complete Store / Merchants / Explore hero copy another 8px so the
   eyebrow, heading and metric row sit optically centered against the carousel
   image plus page-indicator rail. */

/* RYU Portal 1.0.30 merchant brand-mark presentation. */
/* Seed logos are standalone transparent brand marks: do not put them back
   inside a pale app-icon tile, border or artificial rounded badge. */
.merchant-logo,
.merchant-public-logo{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.merchant-logo img,
.merchant-public-logo img,
.merchant-enquiry-logo-122{
  object-fit:contain!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}


/* RYU Portal 1.0.31 merchant logo refinement. */
/* Merchant brand marks are intentionally standalone: no badge, tile, border or
   enclosing card. Increase the mark footprint about 20% so distinctive details
   survive at list and detail sizes. */
.merchant-card-115,.merchant-card-118{grid-template-columns:82px minmax(0,1fr)!important}
.merchant-card-115 .merchant-logo,.merchant-card-118 .merchant-logo{width:77px!important;height:77px!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
.merchant-card-115 .merchant-logo img,.merchant-card-118 .merchant-logo img{width:100%!important;height:100%!important;object-fit:contain!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.merchant-public-logo{width:92px!important;height:92px!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
.merchant-public-logo img{width:100%!important;height:100%!important;object-fit:contain!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.merchant-enquiry-logo-122{width:92px!important;height:92px!important;object-fit:contain!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
@media(max-width:760px){.merchant-card-115,.merchant-card-118{grid-template-columns:72px minmax(0,1fr)!important}.merchant-card-115 .merchant-logo,.merchant-card-118 .merchant-logo{width:68px!important;height:68px!important}.merchant-public-logo{width:82px!important;height:82px!important}}

/* RYU Portal 1.0.31 mobile auth/registration viewport polish. */
html,body{max-width:100%!important;overflow-x:hidden!important}

@media(max-width:760px){
  /* Keep the footer visually one line on narrow auth screens instead of
     wrapping the version/diagnostics fragment onto an off-centre second row. */
  .app-footer{
    flex-wrap:nowrap!important;
    white-space:nowrap!important;
    justify-content:center!important;
    gap:5px!important;
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:clamp(8px,2.45vw,10px)!important;
  }
  .app-footer .footer-version{
    width:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .app-footer .footer-version:before{
    display:inline!important;
    content:"•"!important;
    margin:0 1px 0 0!important;
  }
  .app-footer .diagnostics-link{margin-left:1px!important;white-space:nowrap!important}

  /* Sign in / reset / forgot password / 2FA use the viewport exactly.  The
     footer remains fixed but no phantom horizontal or vertical scrollbar is
     created when the compact card already fits on screen. */
  body:has(.auth-center-shell.auth-background-119){overflow:hidden!important}
  .app-main:has(.auth-center-shell.auth-background-119){
    height:calc(100dvh - var(--header))!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .page:has(> .auth-center-shell.auth-background-119){
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .auth-center-shell.auth-background-119{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:10px 12px 34px!important;
    margin:0!important;
  }
  .auth-background-119>.auth-wide-card,
  .auth-background-119>.auth-login-card{
    max-height:calc(100dvh - var(--header) - 48px)!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
  }
  .app-main:has(.auth-center-shell.auth-background-119)+.app-footer{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    min-height:28px!important;
    padding-top:5px!important;
    padding-bottom:6px!important;
    background:rgba(255,255,255,.78)!important;
    backdrop-filter:blur(5px)!important;
  }

  /* Registration pages can genuinely require vertical scrolling, but they
     should never create a horizontal bar because of form grids or controls. */
  .registration-wide-page,
  .buyer-registration-form,
  .merchant-registration-wide,
  .buyer-registration-form .field,
  .merchant-registration-wide .field{
    max-width:100%!important;
    min-width:0!important;
  }
  .registration-wide-page{overflow-x:clip!important}
  .buyer-registration-form input,
  .buyer-registration-form select,
  .buyer-registration-form textarea,
  .merchant-registration-wide input,
  .merchant-registration-wide select,
  .merchant-registration-wide textarea{max-width:100%!important;min-width:0!important}
}


/* RYU Portal 1.0.33 marketplace/auth interaction, sticky header and mobile viewport polish. */
/* The Portal navigation must stay available on every route. */
.app-header{
  position:sticky!important;
  top:0!important;
  z-index:1000!important;
}

/* Marketplace content links: use a restrained colour response, never an
   underline or font/layout change. Header/menu link styling is intentionally
   excluded from this rule. */
.voucher-grid a:hover,
.voucher-grid a:focus,
.merchant-grid a:hover,
.merchant-grid a:focus,
.category-grid a:hover,
.category-grid a:focus,
.voucher-detail-grid a:hover,
.voucher-detail-grid a:focus,
.merchant-store-hero a:hover,
.merchant-store-hero a:focus,
.merchant-info-grid a:hover,
.merchant-info-grid a:focus,
.merchant-topline a:hover,
.merchant-topline a:focus,
.category-detail-hero a:hover,
.category-detail-hero a:focus,
.back-row a:hover,
.back-row a:focus,
.view-more-115 a:hover,
.view-more-115 a:focus,
.view-more-tile a:hover,
.view-more-tile a:focus{
  text-decoration:none!important;
}
.voucher-grid .voucher-merchant-link-card:hover,
.voucher-grid .voucher-merchant-link-card:focus,
.merchant-grid .merchant-name-link:hover,
.merchant-grid .merchant-name-link:focus,
.merchant-grid .merchant-category-chip:hover,
.merchant-grid .merchant-category-chip:focus,
.category-grid .category-counts a:hover,
.category-grid .category-counts a:focus,
.voucher-detail-grid a:hover,
.voucher-detail-grid a:focus,
.merchant-store-hero a:hover,
.merchant-store-hero a:focus,
.merchant-info-grid a:hover,
.merchant-info-grid a:focus,
.merchant-topline a:hover,
.merchant-topline a:focus,
.category-detail-hero a:hover,
.category-detail-hero a:focus,
.back-row a:hover,
.back-row a:focus,
.view-more-115 .view-more-link:hover,
.view-more-115 .view-more-link:focus,
.view-more-tile .view-more-link:hover,
.view-more-tile .view-more-link:focus{
  color:#1f567f!important;
}
.voucher-card:hover .voucher-title,
.voucher-card:focus .voucher-title,
.category-card-main:hover h2,
.category-card-main:focus h2{
  color:#1f567f!important;
}
.voucher-grid a,
.merchant-grid a,
.category-grid a,
.voucher-detail-grid a,
.merchant-store-hero a,
.merchant-info-grid a,
.merchant-topline a,
.category-detail-hero a,
.back-row a,
.view-more-115 a,
.view-more-tile a{
  transition:color .14s ease!important;
}

/* Auth and registration links get the same clean, non-shifting hover style.
   The Account item in the global menu is deliberately outside these scopes. */
.auth-center-shell .auth-links a:hover,
.auth-center-shell .auth-links a:focus,
.auth-center-shell .auth-links button:hover,
.auth-center-shell .auth-links button:focus,
.auth-center-shell .forgot-row a:hover,
.auth-center-shell .forgot-row a:focus,
.registration-wide-page .later-link:hover,
.registration-wide-page .later-link:focus,
.registration-wide-page a:not(.btn):hover,
.registration-wide-page a:not(.btn):focus{
  text-decoration:none!important;
  color:#174d7b!important;
}
.auth-center-shell .auth-links a,
.auth-center-shell .auth-links button,
.auth-center-shell .forgot-row a,
.registration-wide-page .later-link,
.registration-wide-page a:not(.btn){
  transition:color .14s ease!important;
}
.auth-center-shell a:focus-visible,
.auth-center-shell button:focus-visible,
.registration-wide-page a:focus-visible,
.voucher-grid a:focus-visible,
.merchant-grid a:focus-visible,
.category-grid a:focus-visible,
.voucher-detail-grid a:focus-visible,
.merchant-store-hero a:focus-visible,
.category-detail-hero a:focus-visible{
  outline:2px solid rgba(36,93,145,.42)!important;
  outline-offset:2px!important;
}

.forgot-lead-132{
  font-size:.78rem!important;
  line-height:1.45!important;
}

/* Mobile browsers should not reserve a permanent scrollbar gutter or create
   a thin white strip down the right edge. */
@media(max-width:760px){
  html{
    scrollbar-gutter:auto!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }
  body,#app-shell,.app-main{
    width:100%!important;
    max-width:100%!important;
    margin-right:0!important;
    overflow-x:clip!important;
  }
}
/* Specific legacy selectors with !important underline rules need matching or
   stronger final overrides inside the marketplace scope. */
.merchant-info-grid-118 .merchant-website:hover,
.merchant-info-grid-118 .merchant-website:focus,
.voucher-specs-111 .full-spec-row a:hover,
.voucher-specs-111 .full-spec-row a:focus,
.view-more-111 .view-more-link:hover,
.view-more-111 .view-more-link:focus,
.voucher-card-111 .voucher-merchant-link-card:hover,
.voucher-card-111 .voucher-merchant-link-card:focus{
  text-decoration:none!important;
}

/* RYU Portal 1.0.33 desktop auth viewport gutter fix. */
/* Stable scrollbar gutters are useful on ordinary content routes, but on the
   full-bleed authentication canvas they reserve a white strip at the viewport
   edge even when no scrollbar is needed. Scope the override to auth routes so
   the scenic background reaches the actual right edge without affecting the
   rest of the Portal. */
html:has(.auth-center-shell.auth-background-119){
  scrollbar-gutter:auto!important;
  overflow-x:hidden!important;
}
body:has(.auth-center-shell.auth-background-119),
#app-shell:has(.auth-center-shell.auth-background-119),
.app-main:has(.auth-center-shell.auth-background-119),
.page:has(> .auth-center-shell.auth-background-119){
  width:100%!important;
  max-width:100%!important;
  margin-right:0!important;
  overflow-x:hidden!important;
}
.auth-center-shell.auth-background-119{
  box-sizing:border-box!important;
  max-width:100%!important;
}

/* RYU Portal 1.1.0 — authenticated operational console. Public pages intentionally unaffected. */
body.authenticated-110{--ops-control:38px;--ops-gap:10px;--ops-muted:#6c8196;--ops-line:#dbe5ee;--ops-soft:#f5f8fb}
body.authenticated-110 .app-header{position:sticky!important;top:0!important;z-index:1000!important;background:rgba(255,255,255,.98)!important;backdrop-filter:saturate(140%) blur(10px);box-shadow:0 1px 0 rgba(32,70,104,.08)}
body.authenticated-110 .header-actions{display:flex;align-items:center;gap:13px}
body.authenticated-110 .about-nav-link{order:-1;margin-right:2px!important;gap:3px!important}
body.authenticated-110 .public-nav{order:0}
body.authenticated-110 #cart-link{order:1;margin-left:0!important}
body.authenticated-110 #auth-slot{order:2;position:relative;margin-left:2px}
body.authenticated-110 .external-arrow{margin-left:2px!important}
body.authenticated-110 .header-user-name{display:none!important}
.account-menu-trigger-110{width:38px;height:38px;border:0;background:transparent;padding:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#183e64}
.account-menu-trigger-110:hover{background:#eef4f8}
.account-avatar-img,.account-avatar-fallback{display:block;border-radius:50%;object-fit:cover}
.top-avatar-110{width:34px;height:34px}.account-avatar-fallback.top-avatar-110{display:grid;place-items:center;background:#e7f0f7;color:#173f64;font-weight:800;font-size:.85rem}
.account-popover-110{position:absolute;right:0;top:calc(100% + 8px);width:260px;background:#fff;border:1px solid #d9e4ed;border-radius:10px;box-shadow:0 14px 36px rgba(23,63,100,.16);padding:8px;z-index:1200}
.account-popover-id{padding:9px 10px 10px;border-bottom:1px solid #e7edf3;margin-bottom:5px;display:flex;flex-direction:column;min-width:0}.account-popover-id strong{font-size:.9rem;color:#163e65}.account-popover-id span{font-size:.75rem;color:#667d93;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-popover-id small{font-size:.7rem;color:#8193a4;margin-top:3px}
.account-popover-110 a,.account-popover-110 button{width:100%;border:0;background:transparent;color:#284d70;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;text-decoration:none!important;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.account-popover-110 a:hover,.account-popover-110 button:hover{background:#f1f6fa;color:#153e66}
.ui-icon-110{width:17px;height:17px;flex:0 0 17px}

.authenticated-page-110{max-width:1500px!important;padding-top:18px!important}
.split-layout-110{grid-template-columns:220px minmax(0,1fr)!important;gap:24px!important;align-items:start!important}
.side-nav-110{position:sticky!important;top:calc(var(--header,72px) + 16px)!important;padding:12px!important;border-radius:12px!important;max-height:calc(100vh - var(--header,72px) - 28px);overflow:auto}
.side-identity-110{display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;padding:5px 6px 12px;border-bottom:1px solid #e4ebf1;margin-bottom:6px}.side-avatar-110{width:36px;height:36px}.account-avatar-fallback.side-avatar-110{display:grid;place-items:center;background:#e9f1f7;color:#173f64;font-size:.8rem;font-weight:900}.side-identity-110 div{min-width:0;display:flex;flex-direction:column}.side-identity-110 strong{font-size:.8rem;color:#173f64;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-identity-110 span{font-size:.66rem;color:#74879b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-identity-110 small{font-size:.65rem;color:#8a99a8;margin-top:2px}
.side-nav-110 nav{display:flex;flex-direction:column;gap:2px}.side-nav-110 a,.side-logout-110{min-height:34px!important;padding:7px 9px!important;border-radius:7px!important;font-size:.78rem!important;gap:8px!important;text-decoration:none!important}.side-nav-110 .nav-dot{width:7px!important;height:7px!important}.side-logout-110{margin-top:8px;border:0;background:transparent;color:#526d86;display:flex;align-items:center;width:100%;font:inherit;font-weight:700;cursor:pointer}.side-logout-110:hover{background:#f3f7fa;color:#143f67}
.ops-content-110{min-width:0}
body.authenticated-110 .ops-content-110 .page-head{margin-bottom:12px!important;gap:12px!important;align-items:center!important}body.authenticated-110 .ops-content-110 .page-title{font-size:1.65rem!important;line-height:1.12!important;margin:0!important}body.authenticated-110 .ops-content-110 .page-subtitle{font-size:.82rem!important;margin-top:3px!important}
body.authenticated-110 .ops-content-110 .section-title,body.authenticated-110 .ops-content-110 .subhead h2{font-size:1rem!important}

.ops-toolbar-110{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px;border:1px solid var(--ops-line);background:#fff;border-radius:9px;margin-bottom:10px}.ops-toolbar-110 input,.ops-toolbar-110 select{height:36px!important;min-height:36px!important;border:1px solid #cbd9e5;border-radius:6px;padding:0 9px;color:#1a4268;background:#fff;font-size:.78rem;min-width:0}.ops-toolbar-110 input[name="q"]{flex:1 1 220px}.ops-toolbar-110 input[type="date"]{width:145px}.ops-toolbar-110 select{max-width:180px}.btn-compact{min-height:34px!important;height:34px!important;padding:0 11px!important;font-size:.76rem!important;border-radius:6px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;white-space:nowrap!important}.btn.disabled{pointer-events:none;opacity:.45}
.ops-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px 4px;color:#718397;font-size:.72rem}.ops-pager>div{display:flex;gap:6px}
.compact-table-110{font-size:.75rem!important}.compact-table-110 th{height:34px!important;padding:7px 9px!important;font-size:.65rem!important;position:sticky;top:var(--header,72px);z-index:2;background:#f4f7fa}.compact-table-110 td{height:43px!important;padding:6px 9px!important;vertical-align:middle!important}.compact-table-110 td strong{font-size:.75rem!important}.compact-table-110 td small{display:block;font-size:.64rem!important;color:#7c8fa2;margin-top:2px}.compact-table-110 input[type="checkbox"]{width:15px;height:15px}.inline-number-110{width:72px!important;height:30px!important;min-height:30px!important;padding:3px 7px!important;font-size:.74rem!important}
.icon-actions-110{display:flex;align-items:center;gap:3px}.icon-btn-110{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#315a7d;display:grid;place-items:center;padding:0;cursor:pointer;text-decoration:none!important}.icon-btn-110:hover{background:#edf4f8;color:#123e65}.icon-btn-110 .ui-icon-110{width:16px;height:16px}.bulk-bar-110{display:flex;align-items:center;gap:7px;background:#edf5fa;border:1px solid #d7e6f0;border-radius:8px;padding:7px 9px;margin-bottom:8px;position:sticky;top:calc(var(--header,72px) + 6px);z-index:5}.bulk-bar-110 span{font-size:.76rem;font-weight:800;color:#244f72;margin-right:auto}

.wallet-summary-110{display:grid;grid-template-columns:2fr 1fr 1fr;gap:9px;margin-bottom:12px}.wallet-summary-110>div{border:1px solid #dce6ee;border-radius:10px;background:#fff;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.wallet-summary-110 span{font-size:.72rem;color:#6f8294;font-weight:700}.wallet-summary-110 strong{font-size:1.15rem;color:#163e64}.wallet-list-110{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wallet-card-110{border:1px solid #dbe5ed;border-radius:10px;background:#fff;overflow:hidden;position:relative}.wallet-card-110>img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.wallet-select-wrap-110{position:absolute;top:8px;right:8px;background:#fff;border-radius:5px;padding:3px;box-shadow:0 2px 7px rgba(0,0,0,.12);z-index:2}.wallet-card-copy-110{padding:10px;display:flex;flex-direction:column;gap:4px}.wallet-card-copy-110 strong{font-size:.83rem;color:#173f64;line-height:1.2}.wallet-card-copy-110>span,.wallet-card-copy-110 small{font-size:.68rem;color:#6b8196}.link-action-110{border:0;background:none;padding:3px 0 0;text-align:left;color:#245c89;font:inherit;font-size:.68rem;font-weight:800;cursor:pointer}.link-action-110:hover{color:#143f67}
.inline-editor-110,.inline-confirm-110{margin-top:7px;padding:7px;border-radius:7px;background:#f5f8fb;border:1px solid #dce6ee;display:flex;gap:6px;align-items:center}.inline-confirm-110 input,.inline-editor-110 input{height:32px!important;min-height:32px!important;flex:1;min-width:100px;padding:5px 7px!important;font-size:.74rem!important}

.ops-form-110{max-width:1180px}.form-section-110{background:#fff;border:1px solid #dbe5ed;border-radius:10px;padding:14px;margin-bottom:10px}.form-section-110 h2{font-size:1rem;margin:0 0 10px;color:#173f64}.form-section-110 h3{font-size:.85rem;margin:0 0 8px;color:#173f64}.ops-form-grid-110{display:grid;gap:9px 12px}.ops-form-grid-110.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-form-grid-110.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-form-110 .field,.profile-panel-110 .field{gap:3px!important}.ops-form-110 .field>span,.profile-panel-110 .field>span{font-size:.67rem!important;font-weight:800!important}.ops-form-110 input,.ops-form-110 select,.profile-panel-110 input,.profile-panel-110 select{height:38px!important;min-height:38px!important;padding:6px 9px!important;font-size:.78rem!important;border-radius:6px!important}.ops-form-110 textarea,.profile-panel-110 textarea{min-height:72px!important;padding:7px 9px!important;font-size:.78rem!important;border-radius:6px!important}.ops-form-110 .form-actions,.profile-panel-110 .form-actions{margin-top:10px!important;gap:7px!important}.profile-panel-110{max-width:1180px}.security-section-110{margin-top:10px}.security-grid-110{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.security-grid-110 form{padding:2px}.compact-copy-110{font-size:.75rem!important;line-height:1.4!important;margin:0 0 7px!important}.inline-settings-110{display:flex;gap:18px;font-size:.78rem}.inline-settings-110 label{display:flex;align-items:center;gap:6px}

.support-auth-grid-110{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px;margin-bottom:14px}.compact-card-110{padding:14px!important}.compact-card-110 h2{font-size:1rem!important;margin:0 0 10px!important}.support-address-110 p{font-size:.76rem;line-height:1.55;color:#60768b}.tickets-section-110{margin-top:12px}.ticket-list-110{border:1px solid #dce6ee;border-radius:9px;overflow:hidden;background:#fff}.ticket-list-110 article{padding:9px 11px;border-bottom:1px solid #e8eef3}.ticket-list-110 article:last-child{border-bottom:0}.ticket-list-110 article>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.ticket-list-110 article strong{font-size:.78rem;color:#173f64}.ticket-list-110 article p{font-size:.72rem;color:#597087;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-list-110 article small{font-size:.65rem;color:#8293a3}
.compact-empty-110{min-height:120px!important;padding:28px!important}
.mobile-records-110{display:none}
.mobile-record-110{border:1px solid #dbe5ed;border-radius:9px;background:#fff;padding:10px}.mobile-record-110>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-record-110 h3{font-size:.8rem;color:#173f64;margin:5px 0 3px}.mobile-record-110 p{font-size:.7rem;color:#60768a;margin:3px 0}.mobile-record-110 small{font-size:.64rem;color:#8595a4}.mobile-actions-110{margin-top:6px;display:flex;justify-content:flex-end}

/* Densify all remaining authenticated operational screens that still use the legacy renderers. */
body.authenticated-110 .ops-content-110>.grid,body.authenticated-110 .ops-content-110 .grid{gap:10px!important}body.authenticated-110 .ops-content-110 .card{padding:13px!important;border-radius:10px!important}body.authenticated-110 .ops-content-110 .data-table{font-size:.75rem}body.authenticated-110 .ops-content-110 .data-table th{padding:7px 9px!important}body.authenticated-110 .ops-content-110 .data-table td{padding:7px 9px!important}body.authenticated-110 .ops-content-110 .btn{min-height:34px;padding:7px 11px;font-size:.76rem;border-radius:6px}body.authenticated-110 .ops-content-110 .field input,body.authenticated-110 .ops-content-110 .field select{min-height:38px;height:38px;padding:6px 9px;font-size:.78rem}body.authenticated-110 .ops-content-110 .field textarea{font-size:.78rem;padding:7px 9px}body.authenticated-110 .ops-content-110 .field>span{font-size:.68rem}body.authenticated-110 .ops-content-110 .metric-card{min-height:84px!important}.authenticated-110 .quick-actions{gap:6px!important}

@media(max-width:980px){
 body.authenticated-110 .public-nav{display:none!important}.split-layout-110{grid-template-columns:190px minmax(0,1fr)!important;gap:14px!important}.wallet-list-110{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-form-grid-110.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.support-auth-grid-110{grid-template-columns:1fr}.security-grid-110{grid-template-columns:1fr}
}
@media(max-width:760px){
 body.authenticated-110{--ops-control:42px}.authenticated-page-110{padding:10px 10px 24px!important}.split-layout-110{display:block!important}.side-nav-110{position:relative!important;top:auto!important;max-height:none!important;margin-bottom:10px!important;padding:8px!important}.side-identity-110{grid-template-columns:34px minmax(0,1fr);padding-bottom:8px}.side-avatar-110{width:32px;height:32px}.side-nav-110 nav{display:flex!important;flex-direction:row!important;overflow-x:auto!important;gap:4px!important;padding-bottom:2px}.side-nav-110 nav a,.side-logout-110{flex:0 0 auto;min-height:32px!important;padding:6px 8px!important}.side-logout-110{margin-top:0!important;width:auto!important}.side-nav-110 .nav-dot{display:none!important}
 .ops-content-110 .page-title{font-size:1.35rem!important}.ops-toolbar-110{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ops-toolbar-110 input[name="q"]{grid-column:1/-1;width:100%}.ops-toolbar-110 input,.ops-toolbar-110 select,.ops-toolbar-110 .btn{width:100%;max-width:none!important;height:42px!important;min-height:42px!important}.ops-toolbar-110 a.btn{display:flex!important}.desktop-records-110{display:none!important}.mobile-records-110{display:grid!important;gap:7px}.ops-pager{position:sticky;bottom:0;background:rgba(255,255,255,.96);padding:8px 2px;z-index:5}.wallet-summary-110{grid-template-columns:1fr 1fr}.wallet-summary-110>div:first-child{grid-column:1/-1}.wallet-summary-110>div{padding:10px}.wallet-list-110{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ops-form-grid-110.cols-2,.ops-form-grid-110.cols-3{grid-template-columns:1fr}.form-section-110{padding:11px}.security-grid-110{grid-template-columns:1fr}.support-auth-grid-110{grid-template-columns:1fr}.bulk-bar-110{bottom:8px;top:auto}.account-popover-110{position:fixed;right:10px;top:64px;width:min(280px,calc(100vw - 20px))}
}
@media(max-width:480px){.wallet-list-110{grid-template-columns:1fr}.wallet-summary-110{grid-template-columns:1fr}.wallet-summary-110>div:first-child{grid-column:auto}.ops-toolbar-110{grid-template-columns:1fr}.ops-toolbar-110 input[name="q"]{grid-column:auto}.side-identity-110 span{max-width:180px}}

/* 1.1.0 high-volume approval / request refinements. */
body.authenticated-110 .compact-balance-action-110{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:10px;align-items:center;margin-bottom:10px}
body.authenticated-110 .compact-balance-action-110>div{border:1px solid var(--ops-line);border-radius:9px;background:#fff;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
body.authenticated-110 .compact-balance-action-110>div span{font-size:.7rem;color:var(--ops-muted);font-weight:700}
body.authenticated-110 .compact-balance-action-110>div strong{font-size:1rem;color:#173f64}
body.authenticated-110 .compact-balance-action-110 .ops-toolbar-110{margin:0}
body.authenticated-110 .ops-list-section-110{margin-top:12px}
body.authenticated-110 .ops-list-section-110>h2{font-size:.95rem;margin:0 0 7px;color:#173f64}
body.authenticated-110 .bulk-note-110{height:32px!important;min-height:32px!important;min-width:180px;max-width:360px;border:1px solid #cbd9e5;border-radius:6px;padding:4px 8px;font-size:.74rem}
body.authenticated-110 .danger-icon-110{color:#a84049}.authenticated-110 .danger-icon-110:hover{background:#fff0f1;color:#8d2430}
body.authenticated-110 .bulk-delete-confirm-110{margin:0 0 0 8px}
@media(max-width:760px){body.authenticated-110 .compact-balance-action-110{grid-template-columns:1fr}body.authenticated-110 .bulk-note-110{min-width:0;max-width:none;flex:1 1 100%;width:100%}.authenticated-110 .bulk-bar-110{flex-wrap:wrap}}

/* RYU Portal 1.1.1 authenticated navigation / wallet polish. */
html.authenticated-110{scrollbar-gutter:auto!important;overflow-y:auto!important}
body.authenticated-110{min-height:100dvh;overflow-x:hidden!important}
body.authenticated-110 #app-shell{min-height:100dvh;display:flex;flex-direction:column}
body.authenticated-110 .app-main{flex:1 1 auto;min-height:0!important}
body.authenticated-110 .app-footer{flex:0 0 auto}

.account-popover-balance-111{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-bottom:1px solid #e7edf3;margin-bottom:5px}
.account-popover-balance-111 span{font-size:.7rem;color:#74879b;font-weight:700}
.account-popover-balance-111 strong{font-size:.9rem;color:#173f64;white-space:nowrap}
.account-popover-rolelinks-111{display:none}
.account-popover-rolelinks-111 a.active{background:#eaf2f8;color:#173f64}

.wallet-toolbar-111{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}
.wallet-toolbar-111 input,.wallet-toolbar-111 select{background:#fff}

@media(max-width:820px){
  body.authenticated-110 .about-nav-link{display:none!important}
  body.authenticated-110 .side-nav-110{display:none!important}
  body.authenticated-110 .split-layout-110{display:block!important}
  body.authenticated-110 .authenticated-page-110{padding-top:12px!important}
  body.authenticated-110 .account-popover-primary-111{display:none!important}
  body.authenticated-110 .account-popover-rolelinks-111{display:block!important}
  body.authenticated-110 .account-popover-rolelinks-111 a,body.authenticated-110 .account-popover-rolelinks-111 button{min-height:36px}
  body.authenticated-110 .account-popover-111{max-height:calc(100dvh - 76px);overflow:auto}
  body.authenticated-110 .mobile-menu-button{order:0;display:block!important;border:1px solid transparent}
  body.authenticated-110 #cart-link{order:1!important}
  body.authenticated-110 #auth-slot{order:2!important}
  body.authenticated-110 .mobile-menu-button.menu-open-111{background:#eaf2f8;border-color:#d4e2ed;color:#173f64}
  body.authenticated-110 .mobile-menu.auth-public-menu-111{position:fixed;top:calc(var(--header) + 6px);right:74px;width:min(270px,calc(100vw - 94px));padding:7px;background:#fff;border:1px solid #d9e4ed;border-radius:11px;box-shadow:0 14px 34px rgba(23,63,100,.18);z-index:1300}
  body.authenticated-110 .mobile-menu.auth-public-menu-111 a{padding:9px 10px;border-radius:7px;font-size:.82rem}
  body.authenticated-110 .mobile-menu.auth-public-menu-111 a:hover{background:#f1f6fa}
  body.authenticated-110 .wallet-toolbar-111{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}
  body.authenticated-110 .wallet-toolbar-111 input[name="q"]{grid-column:1/-1!important}
}
@media(max-width:480px){
  body.authenticated-110 .mobile-menu.auth-public-menu-111{right:66px;width:min(250px,calc(100vw - 82px))}
  body.authenticated-110 .wallet-toolbar-111{grid-template-columns:1fr!important}
  body.authenticated-110 .wallet-toolbar-111 input[name="q"]{grid-column:auto!important}
}

/* RYU Portal 1.1.2 authenticated Buyer/account refinements. */
body.authenticated-110 .balance-title-row-112{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 12px}
body.authenticated-110 .balance-title-row-112 .page-title{font-size:1.65rem!important;line-height:1.12!important;margin:0!important}
body.authenticated-110 .balance-inline-value-112{margin-left:auto;display:flex;align-items:baseline;gap:12px;white-space:nowrap;color:#173f64}
body.authenticated-110 .balance-inline-value-112 span{font-size:.72rem;color:#718397;font-weight:750}
body.authenticated-110 .balance-inline-value-112 strong{font-size:1.28rem;line-height:1;font-weight:900}
body.authenticated-110 .balance-grid-112{align-items:stretch}
body.authenticated-110 .balance-card-112{display:flex;flex-direction:column;min-height:0!important}
body.authenticated-110 .balance-form-112{display:flex;flex-direction:column;flex:1 1 auto;gap:9px}
body.authenticated-110 .balance-form-112 textarea{min-height:86px!important}
body.authenticated-110 .balance-action-112{margin-top:auto!important;padding-top:8px}

body.authenticated-110 .transactions-toolbar-112{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}
body.authenticated-110 .transactions-table-wrap-112{border-radius:9px}
body.authenticated-110 .transactions-table-112 thead th{position:static!important;top:auto!important;z-index:auto!important}

.ops-pager-112{min-height:42px}
.ops-pager-112>span{font-weight:700;color:#6e8194}
.pager-pages-112{display:flex;align-items:center;gap:3px;flex-wrap:wrap;justify-content:flex-end}
.pager-page-112,.pager-edge-112{min-width:30px;height:30px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid transparent;color:#315777;font-size:.74rem;font-weight:800;text-decoration:none!important;background:transparent}
.pager-page-112:hover,.pager-edge-112:hover{background:#eef5fa;color:#173f64}
.pager-page-112.current{background:#1f5786;color:#fff;border-color:#1f5786;pointer-events:none}
.pager-edge-112{font-size:1rem;background:#f6f9fb;border-color:#dce6ee}
.pager-edge-112.disabled{opacity:.38;pointer-events:none}
.pager-ellipsis-112{padding:0 3px;color:#8a9aab;font-weight:800}

body.authenticated-110 .profile-panel-112{max-width:1180px}
body.authenticated-110 .profile-main-section-112{padding:14px}
body.authenticated-110 .profile-core-row-112{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
body.authenticated-110 .profile-merchant-fields-112{margin-top:12px}
body.authenticated-110 .profile-actions-row-112{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid #e4ebf1}
body.authenticated-110 .twofa-inline-112{margin-left:auto;display:flex;align-items:center;gap:10px;min-height:34px}
body.authenticated-110 .twofa-inline-112>span{display:flex;flex-direction:column;line-height:1.2;text-align:right}
body.authenticated-110 .twofa-inline-112 strong{font-size:.77rem;color:#173f64}
body.authenticated-110 .twofa-inline-112 small{font-size:.65rem;color:#73879a;margin-top:2px}
.toggle-switch-112{position:relative;width:42px;height:24px;border:0;border-radius:999px;background:#c9d5df;padding:0;flex:0 0 auto;transition:background .15s ease}
.toggle-switch-112 i{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .15s ease}
.toggle-switch-112.on{background:#24795f}
.toggle-switch-112.on i{transform:translateX(18px)}
.toggle-switch-112:focus-visible{outline:3px solid rgba(31,87,134,.22);outline-offset:2px}
.security-modal-112{min-width:min(430px,calc(100vw - 56px))}
.security-modal-112 .form-actions{display:flex;gap:8px;margin-top:4px}

@media(max-width:820px){
  html.authenticated-110 .about-nav-link,body.authenticated-110 .about-nav-link{display:none!important}
  body.authenticated-110 .balance-title-row-112{align-items:flex-start;gap:10px}
  body.authenticated-110 .balance-inline-value-112{align-items:flex-end;flex-direction:column;gap:2px}
  body.authenticated-110 .balance-inline-value-112 strong{font-size:1.12rem}
  body.authenticated-110 .profile-core-row-112{grid-template-columns:1fr}
  body.authenticated-110 .twofa-inline-112{margin-left:0;width:100%;justify-content:space-between;padding-top:3px}
  body.authenticated-110 .twofa-inline-112>span{text-align:left}
  .ops-pager-112{position:static!important;display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:transparent!important;padding:9px 0 3px!important}
  .pager-pages-112{width:100%;justify-content:center}
}
@media(max-width:480px){
  body.authenticated-110 .balance-title-row-112{flex-direction:column}
  body.authenticated-110 .balance-inline-value-112{margin-left:0;flex-direction:row;align-items:baseline}
  .pager-page-112,.pager-edge-112{min-width:28px;height:28px;padding:0 5px}
}

/* RYU Portal 1.1.3 authenticated portal corrections. */
body.authenticated-110 [hidden],html.authenticated-110 [hidden]{display:none!important}
body.authenticated-110 .side-identity-110>div>span,
body.authenticated-110 #account-popover-110 .account-popover-id>span{display:none!important}

/* Reuse the public voucher-card visual system in My Wallet. */
body.authenticated-110 .wallet-voucher-grid-113{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
body.authenticated-110 .wallet-voucher-card-113{position:relative;min-width:0}
body.authenticated-110 .wallet-voucher-card-113 .voucher-body{display:flex;flex-direction:column;min-height:155px}
body.authenticated-110 .wallet-voucher-meta-113{display:flex;align-items:center;justify-content:space-between;gap:8px}
body.authenticated-110 .wallet-voucher-meta-113 .category-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.authenticated-110 .wallet-status-113{flex:0 0 auto;font-size:.66rem;font-weight:850;padding:3px 7px;border-radius:999px;background:#eaf6f1;color:#23705a;text-transform:capitalize;line-height:1.2}
body.authenticated-110 .wallet-status-113.redeemed{background:#edf2f6;color:#546d82}
body.authenticated-110 .wallet-voucher-bottom-113{margin-top:auto}
body.authenticated-110 .wallet-voucher-actions-113{display:flex;align-items:center;min-height:25px;margin-top:3px}
body.authenticated-110 .wallet-voucher-actions-113 .link-action-110{padding:3px 0}
body.authenticated-110 .wallet-select-wrap-113{position:absolute;right:9px;top:9px;z-index:6;width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(22,62,101,.42);border-radius:5px;background:transparent!important;box-shadow:none!important;cursor:pointer}
body.authenticated-110 .wallet-select-wrap-113 input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
body.authenticated-110 .wallet-select-wrap-113 span{font-size:18px;line-height:1;color:#173f64;font-weight:950;opacity:0;transform:translateY(-1px);pointer-events:none}
body.authenticated-110 .wallet-select-wrap-113:has(input:checked){border-color:transparent}
body.authenticated-110 .wallet-select-wrap-113 input:checked+span{opacity:1}
body.authenticated-110 .wallet-voucher-card-113 a:focus-visible{outline:2px solid #2b6797;outline-offset:2px}

/* Merchant filter follows the registration nationality dropdown pattern. */
body.authenticated-110 .wallet-toolbar-113{overflow:visible!important;align-items:center}
body.authenticated-110 .wallet-merchant-field-113{position:relative;min-width:170px;align-self:stretch}
body.authenticated-110 .wallet-merchant-select-113{position:relative;height:100%}
body.authenticated-110 .wallet-merchant-trigger-113{width:100%;height:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #cbd9e5;border-radius:7px;background:#fff;color:#294c6d;padding:0 10px;font:inherit;font-size:.76rem;text-align:left;cursor:pointer}
body.authenticated-110 .wallet-merchant-current-113{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.authenticated-110 .wallet-merchant-panel-113{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 2px);background:#fff;border:1px solid #d3dee8;border-radius:7px;box-shadow:0 14px 30px rgba(28,58,84,.17);padding:5px}
body.authenticated-110 .wallet-merchant-search-113{width:100%;height:36px!important;min-height:36px!important;margin:0 0 4px!important}
body.authenticated-110 .wallet-merchant-options-113{max-height:230px;overflow:auto;display:flex;flex-direction:column}
body.authenticated-110 .wallet-merchant-option-113{width:100%;border:0;background:transparent;border-radius:5px;padding:6px 8px;color:#314e6b;font:inherit;font-size:.76rem;text-align:left;cursor:pointer;min-height:29px}
body.authenticated-110 .wallet-merchant-option-113:hover{background:#f2f7fb}

/* Redemption modal: one clean QR, centered heading and compact selection summary. */
.redemption-modal-head-113 h2{width:100%;text-align:center;padding-left:30px}
.redemption-modal-113{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:min(460px,calc(100vw - 54px))}
.redemption-qr-113{margin:0 auto;display:grid;place-items:center}
.redemption-summary-113{width:100%;border-top:1px solid #e0e8ef;padding-top:12px}
.redemption-total-113{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px;color:#173f64}
.redemption-total-113 span{font-size:.75rem;font-weight:800;color:#6d8194}.redemption-total-113 strong{font-size:1rem}
.redemption-summary-113 ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.redemption-summary-113 li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:.75rem;border-bottom:1px solid #edf2f6}
.redemption-summary-113 li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.redemption-summary-113 li strong{white-space:nowrap;color:#173f64}
.redemption-more-113{margin:7px 0 3px;border:0;background:transparent;color:#245c89;font:inherit;font-size:.73rem;font-weight:850;cursor:pointer;padding:2px 0}

/* Refund form avoids native number controls and uses an inline availability meter/error. */
body.authenticated-110 .refund-amount-field-113{max-width:390px}
body.authenticated-110 .refund-amount-row-113{display:grid;grid-template-columns:minmax(100px,160px) auto;align-items:center;gap:10px}
body.authenticated-110 .refund-amount-row-113 input{width:100%!important;min-width:0!important}
body.authenticated-110 #refund-balance-meter-113{font-size:.72rem;color:#647b91;font-weight:800;white-space:nowrap}
.inline-field-error-113{display:block;color:#a12f3d;font-size:.71rem;font-weight:700;margin-top:4px;line-height:1.35}

/* Transaction export belongs with the count/pagination and exports the full authorized ledger. */
body.authenticated-110 .transaction-footer-113{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px 3px;min-height:44px}
body.authenticated-110 .transaction-footer-left-113{display:flex;align-items:center;gap:10px;min-width:0}
body.authenticated-110 .transaction-footer-left-113>span{font-size:.75rem;font-weight:750;color:#6e8194;white-space:nowrap}
body.authenticated-110 .transaction-export-113{position:relative}
body.authenticated-110 .transaction-export-button-113{height:34px;display:inline-flex;align-items:center;gap:6px;border:1px solid #d8e4ed;border-radius:7px;background:#edf4f9;color:#173f64;padding:0 10px;font:inherit;font-size:.73rem;font-weight:850;cursor:pointer}
body.authenticated-110 .transaction-export-button-113 svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.authenticated-110 .transaction-export-menu-113{position:absolute;left:0;bottom:calc(100% + 5px);z-index:80;min-width:145px;background:#fff;border:1px solid #d7e2eb;border-radius:8px;box-shadow:0 12px 28px rgba(27,58,84,.16);padding:5px}
body.authenticated-110 .transaction-export-menu-113 a{display:block;padding:8px 9px;border-radius:5px;color:#294f70;text-decoration:none;font-size:.75rem;font-weight:750}
body.authenticated-110 .transaction-export-menu-113 a:hover{background:#f0f6fa}
body.authenticated-110 .transaction-reference-113{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.69rem;white-space:nowrap}

/* Buyer profile exposes the registration/preference fields without turning email into an unverified text field. */
body.authenticated-110 .profile-panel-113{max-width:1180px}
body.authenticated-110 .profile-grid-113{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
body.authenticated-110 .profile-preference-section-113{margin-top:14px;padding-top:12px;border-top:1px solid #e4ebf1}
body.authenticated-110 .profile-preference-section-113>strong{display:block;font-size:.76rem;color:#173f64;margin-bottom:7px}
body.authenticated-110 .profile-preference-grid-113{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px}
body.authenticated-110 .profile-preference-grid-113 label{min-width:0}
body.authenticated-110 .profile-nationality-113{align-self:start}

/* Stable authenticated list/table layout. The old flex overrides caused header rows to overlap data. */
@media(min-width:821px){
  body.authenticated-110 .desktop-records-110{display:block!important;overflow-x:auto!important}
  body.authenticated-110 .desktop-records-110 table.data-table{display:table!important;width:100%!important;border-collapse:separate!important;border-spacing:0!important;table-layout:auto!important}
  body.authenticated-110 .desktop-records-110 table.data-table thead{display:table-header-group!important;position:static!important}
  body.authenticated-110 .desktop-records-110 table.data-table tbody{display:table-row-group!important}
  body.authenticated-110 .desktop-records-110 table.data-table tr{display:table-row!important;position:static!important}
  body.authenticated-110 .desktop-records-110 table.data-table th,
  body.authenticated-110 .desktop-records-110 table.data-table td{display:table-cell!important;position:static!important;vertical-align:middle!important}
  body.authenticated-110 .mobile-records-110{display:none!important}
}

@media(max-width:900px){
  html.authenticated-110 #about-link,body.authenticated-110 #about-link{display:none!important}
}
@media(max-width:820px){
  body.authenticated-110 .wallet-voucher-grid-113{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body.authenticated-110 .wallet-toolbar-113{grid-template-columns:1fr 1fr!important}
  body.authenticated-110 .wallet-toolbar-113>input[name="q"]{grid-column:1/-1!important}
  body.authenticated-110 .wallet-merchant-field-113{min-width:0;width:100%}
  body.authenticated-110 .transaction-footer-113{flex-direction:column;align-items:stretch}
  body.authenticated-110 .transaction-footer-left-113{justify-content:space-between}
  body.authenticated-110 .transaction-footer-113 .pager-pages-112{justify-content:center}
  body.authenticated-110 .profile-grid-113{grid-template-columns:1fr}
  body.authenticated-110 .profile-preference-grid-113{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  body.authenticated-110 .wallet-voucher-grid-113{grid-template-columns:1fr}
  body.authenticated-110 .wallet-toolbar-113{grid-template-columns:1fr!important}
  body.authenticated-110 .wallet-toolbar-113>input[name="q"]{grid-column:auto!important}
  body.authenticated-110 .refund-amount-row-113{grid-template-columns:minmax(90px,140px) auto}
  body.authenticated-110 .profile-preference-grid-113{grid-template-columns:1fr}
}

/* RYU Portal 1.1.4 — authenticated navigation, wallet, profile/security and list polish. */
/* Public Portal navigation stays sticky at every desktop/mobile breakpoint. */
html,body{overflow-x:clip}
.app-header{position:sticky!important;top:0!important;z-index:1200!important;align-self:stretch}

/* Authenticated shell: calm active state, no identity divider, stable chrome. */
body.authenticated-110 .side-identity-110{border-bottom:0!important;margin-bottom:7px!important;padding-bottom:8px!important}
body.authenticated-110 .side-nav-110 nav a.active .nav-dot{background:#3276a8!important;box-shadow:0 0 0 3px rgba(50,118,168,.10)!important}
body.authenticated-110 .side-nav-110 nav a.active{background:#eaf3fa!important;color:#173f64!important}
body.authenticated-110 .loading-content-114{min-height:240px!important}

/* Account popover identity and buyer balance share a single compact block. */
body.authenticated-110 #account-popover-110 .account-popover-id-114{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"name balance" "role balance"!important;
  column-gap:14px!important;row-gap:2px!important;align-items:center!important;
  border:0!important;margin:0!important;padding:10px 10px 9px!important;
}
body.authenticated-110 #account-popover-110 .account-popover-id-114>strong:not(.account-popover-balance-114){grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.authenticated-110 #account-popover-110 .account-popover-id-114>small{grid-area:role;margin:0!important}
body.authenticated-110 #account-popover-110 .account-popover-balance-114{grid-area:balance;align-self:center;white-space:nowrap;font-size:.88rem;color:#173f64}
body.authenticated-110 #account-popover-110 hr,
body.authenticated-110 #account-popover-110 .account-popover-divider-111,
body.authenticated-110 #account-popover-110 .account-popover-balance-111{display:none!important}
body.authenticated-110 #account-popover-110>a,
body.authenticated-110 #account-popover-110>button{border-top:0!important}

/* Shared authenticated toolbar: controls carry their own borders; the toolbar does not. */
body.authenticated-110 .ops-toolbar-110{
  border:0!important;background:transparent!important;box-shadow:none!important;
  border-radius:0!important;padding:0!important;margin-bottom:12px!important;
}
body.authenticated-110 .ops-toolbar-110 input,
body.authenticated-110 .ops-toolbar-110 select,
body.authenticated-110 .wallet-merchant-trigger-113{height:36px!important;min-height:36px!important}

/* My Wallet toolbar and merchant picker. */
body.authenticated-110 .wallet-toolbar-114{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) minmax(175px,220px) 120px minmax(150px,180px) 128px 66px!important;
  gap:7px!important;align-items:center!important;overflow:visible!important;
}
body.authenticated-110 .wallet-toolbar-114 .wallet-search-114{width:100%!important;min-width:0!important;grid-column:auto!important}
body.authenticated-110 .wallet-toolbar-114 .wallet-merchant-field-113{height:36px!important;min-width:0!important;align-self:center!important}
body.authenticated-110 .wallet-toolbar-114 .wallet-merchant-select-113{height:36px!important}
body.authenticated-110 .wallet-merchant-panel-113{right:auto!important;width:350px!important;max-width:min(350px,calc(100vw - 34px))!important;padding:6px!important}
body.authenticated-110 .wallet-merchant-option-113{
  display:flex!important;align-items:center!important;gap:8px!important;min-height:34px!important;
  overflow:hidden!important;white-space:nowrap!important;padding:5px 7px!important;
}
body.authenticated-110 .merchant-option-logo-114{
  width:25px!important;height:25px!important;flex:0 0 25px!important;border-radius:7px!important;
  object-fit:cover!important;background:#edf3f8!important;display:grid!important;place-items:center!important;
  color:#315b7c!important;font-size:.68rem!important;font-weight:900!important;
}
body.authenticated-110 .merchant-option-name-114{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
body.authenticated-110 .wallet-merchant-current-113{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

/* Wallet cards keep public layout while protecting small category/status labels. */
body.authenticated-110 .wallet-voucher-card-114 .wallet-voucher-meta-113{gap:6px!important;min-width:0!important}
body.authenticated-110 .wallet-voucher-card-114 .wallet-voucher-meta-113 .category-link{
  font-size:.58rem!important;letter-spacing:.025em!important;line-height:1.2!important;max-width:68%!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
body.authenticated-110 .wallet-voucher-card-114 .wallet-status-113{
  font-size:.57rem!important;line-height:1.15!important;padding:2px 6px!important;max-width:31%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
body.authenticated-110 .wallet-view-more-114{
  min-height:300px!important;border:1px dashed #bfd0de!important;background:#f7fafc!important;color:#1f557f!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:5px!important;border-radius:18px!important;font:inherit!important;box-shadow:none!important;cursor:pointer!important;
}
body.authenticated-110 .wallet-view-more-114:hover{background:#eef5fa!important;border-color:#9fb9ce!important;transform:none!important;box-shadow:none!important}
body.authenticated-110 .wallet-view-more-114 span{font-size:.9rem!important;font-weight:900!important}
body.authenticated-110 .wallet-view-more-114 small{font-size:.68rem!important;color:#71859a!important}

/* Export control shared by transactions, inventory and user management. */
body.authenticated-110 .export-menu-114{position:relative;display:inline-flex;vertical-align:middle}
body.authenticated-110 .export-trigger-114{gap:6px!important}
body.authenticated-110 .export-trigger-114 .ui-icon-110{width:16px;height:16px;flex:0 0 16px}
body.authenticated-110 .export-options-114{
  position:absolute!important;right:0!important;top:calc(100% + 5px)!important;z-index:120!important;
  min-width:128px!important;background:#fff!important;border:1px solid #d8e3eb!important;border-radius:8px!important;
  box-shadow:0 12px 28px rgba(23,62,100,.16)!important;padding:5px!important;
}
body.authenticated-110 .export-options-114 a{display:block!important;padding:8px 9px!important;border-radius:5px!important;font-size:.75rem!important;font-weight:800!important;color:#244e72!important}
body.authenticated-110 .export-options-114 a:hover{background:#eef5fa!important}
body.authenticated-110 .add-action-114:hover,
body.authenticated-110 .page-head .quick-actions .btn-primary:hover{filter:none!important;background:#2b638f!important;box-shadow:0 4px 12px rgba(32,87,132,.14)!important}
body.authenticated-110 .icon-btn-114{width:34px;height:34px;border:1px solid #d8e4ed;border-radius:7px;background:#edf4f9;color:#173f64;display:inline-grid;place-items:center}
body.authenticated-110 .icon-btn-114.primary{background:#245c89;color:#fff;border-color:#245c89}
body.authenticated-110 .icon-btn-114 svg{width:17px;height:17px}

/* Transaction voucher details. */
body.authenticated-110 .transaction-voucher-link-114{color:#245f8e!important;font-weight:800!important;text-decoration:none!important}
body.authenticated-110 .transaction-voucher-link-114:hover{text-decoration:underline!important;text-underline-offset:2px!important}
body.authenticated-110 .transactions-table-112 td{vertical-align:middle!important}
body.authenticated-110 .transactions-table-112 td:nth-child(1){white-space:nowrap!important}

/* Standard pagination stays compact on conventional data lists only. */
body.authenticated-110 .ops-pager-114{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:10px 2px 3px!important;background:transparent!important;position:static!important}
body.authenticated-110 .pager-controls-114{display:flex!important;align-items:center!important;gap:5px!important}
body.authenticated-110 .pager-btn-114,
body.authenticated-110 .pager-current-114{min-width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid #d8e3ec;border-radius:6px;background:#fff;color:#315873;font-size:.73rem;font-weight:850;padding:0 6px}
body.authenticated-110 .pager-current-114{background:#eaf3fa;color:#173f64;border-color:#c7d9e7}
body.authenticated-110 .pager-btn-114.disabled{opacity:.42;pointer-events:none}

/* Profile: one field per row, no card border/divider clutter. */
body.authenticated-110 .profile-form-114,
body.authenticated-110 .refund-request-form-114,
body.authenticated-110 .authenticated-support-form-114,
body.authenticated-110 .security-page-114,
body.authenticated-110 .settings-form-114{max-width:720px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
body.authenticated-110 .profile-form-114>.field,
body.authenticated-110 .refund-request-form-114>.field,
body.authenticated-110 .authenticated-support-form-114>.field,
body.authenticated-110 .security-inline-form-114>.field,
body.authenticated-110 .settings-form-114>.field{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:5px!important;max-width:560px!important;margin:0 0 15px!important}
body.authenticated-110 .profile-form-114>.field>span,
body.authenticated-110 .refund-request-form-114>.field>span,
body.authenticated-110 .authenticated-support-form-114>.field>span,
body.authenticated-110 .security-inline-form-114>.field>span,
body.authenticated-110 .settings-form-114>.field>span{font-size:.74rem!important;font-weight:850!important;color:#365876!important}
body.authenticated-110 .profile-form-114>.field input,
body.authenticated-110 .profile-form-114>.field select,
body.authenticated-110 .profile-form-114>.field textarea,
body.authenticated-110 .refund-request-form-114>.field input,
body.authenticated-110 .refund-request-form-114>.field textarea,
body.authenticated-110 .authenticated-support-form-114>.field input,
body.authenticated-110 .authenticated-support-form-114>.field textarea,
body.authenticated-110 .security-inline-form-114>.field input,
body.authenticated-110 .settings-form-114>.field input,
body.authenticated-110 .settings-form-114>.field select{width:100%!important;max-width:560px!important}
body.authenticated-110 .profile-preference-section-114{border-top:0!important;padding-top:0!important;margin-top:18px!important;max-width:620px!important}
body.authenticated-110 .profile-preference-section-114>strong{margin-bottom:9px!important}

/* Security is a dedicated inline settings page, not a popup. */
body.authenticated-110 .security-page-114{max-width:720px!important}
body.authenticated-110 .security-section-114{padding:0 0 22px!important;margin:0 0 22px!important;border:0!important;border-bottom:1px solid #edf2f6!important;background:transparent!important}
body.authenticated-110 .security-section-114:last-child{border-bottom:0!important}
body.authenticated-110 .security-section-114 h2{font-size:1rem!important;color:#173f64!important;margin:0 0 14px!important}
body.authenticated-110 .security-inline-form-114{max-width:560px!important}
body.authenticated-110 .security-code-actions-114{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 10px}
body.authenticated-110 .inline-success-114{font-size:.74rem;font-weight:750;color:#28705d;background:#eef8f4;border-radius:7px;padding:8px 10px;margin:7px 0}

/* Authenticated Support is an in-shell contact form. */
body.authenticated-110 .authenticated-support-form-114{max-width:680px!important}
body.authenticated-110 .authenticated-support-form-114 input[readonly]{background:#f4f7fa!important;color:#667b8f!important}

/* User management and confirmations. */
body.authenticated-110 .show-archived-114{margin-left:auto!important;display:inline-flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important;font-size:.73rem!important;font-weight:800!important;color:#48657f!important}
body.authenticated-110 .show-archived-114 input{width:15px!important;height:15px!important;min-height:0!important;margin:0!important}
.confirm-dialog-114{max-width:480px;padding:2px 0 0}
.confirm-dialog-114 p{margin:0 0 16px;color:#516b82;line-height:1.55}

/* Settings: simple vertical rows with compact, consistent field lengths. */
body.authenticated-110 .settings-form-114{max-width:610px!important}
body.authenticated-110 .settings-form-114>.field{max-width:440px!important;margin-bottom:14px!important}
body.authenticated-110 .settings-form-114>.field input,
body.authenticated-110 .settings-form-114>.field select{max-width:440px!important}
body.authenticated-110 .settings-form-114 input[type="number"]{max-width:210px!important}
body.authenticated-110 .settings-check-row-114{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;width:min(440px,100%)!important;min-height:38px!important;margin:0 0 8px!important;color:#365876!important;font-size:.76rem!important;font-weight:800!important}
body.authenticated-110 .settings-check-row-114 input{width:17px!important;height:17px!important;min-height:0!important;margin:0!important}
body.authenticated-110 .settings-invite-days-114{margin-top:20px!important}

/* Refund page is a dedicated route. */
body.authenticated-110 .refund-request-form-114{max-width:620px!important}
body.authenticated-110 .refund-request-form-114 textarea{min-height:100px!important}

/* Mobile header icon proportions. */
@media(max-width:900px){
  .mobile-menu-button{width:42px!important;height:40px!important;padding:8px 7px!important}
  .mobile-menu-button span{height:2.5px!important;margin:5px 2px!important;border-radius:3px!important}
}

@media(max-width:1100px){
  body.authenticated-110 .wallet-toolbar-114{grid-template-columns:minmax(220px,1fr) minmax(165px,205px) 115px minmax(145px,175px) 122px 64px!important}
}
@media(max-width:820px){
  body.authenticated-110 .wallet-toolbar-114{grid-template-columns:1fr 1fr!important}
  body.authenticated-110 .wallet-toolbar-114 .wallet-search-114{grid-column:1/-1!important}
  body.authenticated-110 .wallet-toolbar-114 .wallet-limit-114{justify-self:stretch!important}
  body.authenticated-110 .wallet-merchant-panel-113{width:min(350px,calc(100vw - 38px))!important}
  body.authenticated-110 .ops-pager-114{align-items:flex-start!important;flex-direction:column!important}
  body.authenticated-110 .pager-controls-114{align-self:center!important}
  body.authenticated-110 .show-archived-114{margin-left:0!important;grid-column:1/-1!important}
  body.authenticated-110 .profile-form-114,
  body.authenticated-110 .refund-request-form-114,
  body.authenticated-110 .authenticated-support-form-114,
  body.authenticated-110 .security-page-114,
  body.authenticated-110 .settings-form-114{max-width:none!important;width:100%!important}
}
@media(max-width:480px){
  body.authenticated-110 .wallet-toolbar-114{grid-template-columns:1fr!important}
  body.authenticated-110 .wallet-toolbar-114 .wallet-search-114{grid-column:auto!important}
  body.authenticated-110 .wallet-merchant-panel-113{width:100%!important;max-width:100%!important}
  body.authenticated-110 .account-popover-id-114{grid-template-columns:minmax(0,1fr) auto!important}
}

/* RYU Portal 1.1.5 — live authenticated list controls and action alignment. */
body.authenticated-110 .page-head .quick-actions{align-items:center!important}
body.authenticated-110 .show-archived-115{
  display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;
  white-space:nowrap!important;font-size:.73rem!important;font-weight:800!important;color:#48657f!important;
  min-height:36px!important;padding:0 3px!important;margin:0!important;cursor:pointer!important;
}
body.authenticated-110 .show-archived-115 input{width:15px!important;height:15px!important;min-height:0!important;margin:0!important;accent-color:#245c89}
body.authenticated-110 .icon-btn-114,
body.authenticated-110 .export-trigger-114{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  padding:0!important;margin:0!important;display:inline-grid!important;place-items:center!important;line-height:1!important;
}
body.authenticated-110 .icon-btn-114 .ui-icon-110,
body.authenticated-110 .export-trigger-114 .ui-icon-110{
  width:17px!important;height:17px!important;display:block!important;margin:0!important;transform:none!important;
}
body.authenticated-110 .export-trigger-114 span{display:none!important}
body.authenticated-110 .export-options-114 a{
  transition:background-color .12s ease,color .12s ease,transform .08s ease!important;
  outline:none!important;
}
body.authenticated-110 .export-options-114 a:hover,
body.authenticated-110 .export-options-114 a:focus-visible{background:#e8f2f9!important;color:#153f62!important}
body.authenticated-110 .export-options-114 a:active{background:#dcebf6!important;transform:translateY(1px)!important}
body.authenticated-110 .user-state-action-115 .user-state-icon-115{width:17px!important;height:17px!important;display:block!important;margin:auto!important}
body.authenticated-110 .ops-empty-state-115{
  margin:8px 0 0!important;padding:18px 14px!important;border:1px dashed #d6e1e9!important;border-radius:9px!important;
  background:#f8fafc!important;color:#6a7f92!important;text-align:center!important;font-size:.78rem!important;font-weight:700!important;
}
body.authenticated-110 form[data-live-route-115] input[name="q"]{min-width:260px}
body.authenticated-110 .add-user-icon-115{flex:0 0 36px!important}
@media(max-width:820px){
  body.authenticated-110 .page-head .quick-actions{width:100%;justify-content:flex-end!important}
  body.authenticated-110 .show-archived-115{margin-right:auto!important}
  body.authenticated-110 form[data-live-route-115] input[name="q"]{min-width:0}
}

/* RYU Portal 1.1.6 — persistent authenticated shell and unified modules. */
.authenticated-stage-116{min-height:calc(100vh - 150px)}
.authenticated-stage-116.has-persistent-side-116{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;max-width:1260px;margin:0 auto;padding:20px 18px 44px;align-items:start}
.authenticated-stage-116.has-persistent-side-116>.persistent-side-116{display:block;position:sticky;top:88px;z-index:18}
.authenticated-stage-116.has-persistent-side-116>.app-main{min-width:0;padding:0}
.authenticated-stage-116.has-persistent-side-116 .authenticated-page-116{padding:0!important;margin:0!important;max-width:none!important}
.persistent-side-116 .side-nav-116{width:100%;margin:0;min-height:auto}
.persistent-side-116 .side-identity-110{border-bottom:0!important;padding-bottom:12px!important;margin-bottom:3px!important}
.persistent-side-116 .side-identity-110>div{min-width:0}
.persistent-side-116 .side-identity-110 strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.persistent-side-116 .side-identity-110 small{display:block;margin-top:3px;color:#71869a}
.persistent-side-116 nav a .nav-dot{background:#a9bfd0!important}
.persistent-side-116 nav a.active .nav-dot{background:#2a79a8!important;box-shadow:0 0 0 3px rgba(42,121,168,.12)}
.workspace-switcher-116{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:6px 8px 12px}
.workspace-switcher-116 button{border:1px solid #d6e3ec;background:#f7fafc;color:#4b6982;border-radius:7px;min-height:28px;font-size:.66rem;font-weight:800;cursor:pointer}
.workspace-switcher-116 button:hover{background:#edf5fa}
.workspace-switcher-116 button.active{background:#e1eef7;border-color:#b7d2e4;color:#164d74}

.context-support-116{width:34px;height:34px;border:1px solid #d8e4ec;border-radius:8px;background:#f3f7fa;color:#2b5d82;display:inline-grid;place-items:center;font-weight:900;font-size:.88rem;cursor:pointer;transition:background .12s ease}
.context-support-116:hover,.context-support-116:focus-visible{background:#e6f0f7}

.flash-116{position:fixed!important;top:84px!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translateX(-50%)!important;z-index:5000!important;min-width:min(430px,calc(100vw - 32px));max-width:min(720px,calc(100vw - 32px));display:flex!important;align-items:center;justify-content:space-between;gap:18px;padding:11px 12px 11px 16px!important;border:0!important;border-radius:10px!important;color:#fff!important;box-shadow:0 12px 28px rgba(20,47,67,.2)!important;font-size:.82rem!important;font-weight:800!important}
.flash-116.error{background:#b92d3b!important}.flash-116.success{background:#236a54!important}.flash-116.warning{background:#966a13!important}
.flash-116 button{border:0;background:transparent;color:inherit;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer;width:28px;height:28px;border-radius:6px}
.flash-116 button:hover{background:rgba(255,255,255,.14)}

.heading-inline-116{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.show-archived-heading-116{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:800;color:#4d6980;white-space:nowrap;cursor:pointer}
.show-archived-heading-116 input{width:15px!important;height:15px!important;min-height:0!important;margin:0!important}
.export-dark-116 .export-trigger-114{background:#285f88!important;color:#fff!important;border-color:#285f88!important}
.export-dark-116 .export-trigger-114:hover,.export-dark-116 .export-trigger-114:focus-visible{background:#1d4e74!important;border-color:#1d4e74!important}
.export-options-114 a{cursor:pointer!important}

.sortable-heading-116{display:inline-flex;align-items:center;gap:3px;color:inherit;text-decoration:none;font-weight:850;white-space:nowrap}
.sortable-heading-116:hover,.sortable-heading-116:focus-visible{color:#1f6290;text-decoration:underline;text-underline-offset:2px}
.sortable-heading-116.active{color:#1f6290}
.id-cell-116{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.72rem;color:#536f86;white-space:nowrap}

.wallet-metrics-116{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:3px 0 22px}
.wallet-metrics-116 .metric-card{padding:16px 17px!important;min-height:98px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.wallet-metrics-116 .metric-card span{font-size:.72rem;font-weight:800;color:#6d8295}
.wallet-metrics-116 .metric-card strong{font-size:1.34rem;color:#153f64}
.section-gap-116{margin-top:22px!important}

body.authenticated-110 .wallet-voucher-card-116 .voucher-body{padding-top:10px!important}
body.authenticated-110 .wallet-voucher-card-116 .voucher-meta{margin-bottom:6px!important}
body.authenticated-110 .wallet-voucher-card-116 h3{margin-top:0!important;margin-bottom:8px!important}
body.authenticated-110 .wallet-voucher-card-116 .category-link,
body.authenticated-110 .wallet-voucher-card-116 .wallet-status-113{font-size:.61rem!important;line-height:1.15!important}
body.authenticated-110 .wallet-voucher-card-116 .wallet-status-113{max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.registration-profile-grid-116{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px 16px!important;max-width:100%!important;border:0!important;background:transparent!important;padding:0!important}
.registration-profile-grid-116>.field{margin:0!important;max-width:none!important}
.registration-profile-grid-116>.field>span{display:block;margin-bottom:6px}
.registration-profile-grid-116>.field input,.registration-profile-grid-116>.field select,.registration-profile-grid-116>.field textarea{width:100%!important;max-width:none!important}
.profile-wide-field-116,.profile-choice-block-116{grid-column:1/-1}
.profile-choice-block-116{margin:4px 0 2px;border:0!important;padding:0!important}
.profile-choice-block-116>strong{display:block;margin:0 0 10px;color:#244d70;font-size:.77rem}
.security-helper-116{font-size:.72rem!important;line-height:1.45!important;color:#75899a!important}
.reserved-names-116 textarea{width:100%;max-width:440px;resize:vertical}
.reserved-names-116 small{display:block;color:#71879a;font-size:.69rem;margin-top:5px}

.refund-dialog-116{display:grid;gap:14px;min-width:min(540px,calc(100vw - 48px))}
.refund-items-116{max-height:210px;overflow:auto;border:1px solid #dce6ed;border-radius:8px;padding:4px 10px}
.refund-items-116>div{display:flex;justify-content:space-between;gap:14px;padding:9px 2px;border-bottom:1px solid #eef3f6}
.refund-items-116>div:last-child{border-bottom:0}.refund-items-116 span{font-weight:800;color:#2d4e6a}.refund-items-116 small{color:#76899a;text-align:right}

body.authenticated-110 form[data-live-route-116]{border:0!important;box-shadow:none!important;background:transparent!important;padding-left:0!important;padding-right:0!important}
body.authenticated-110 form[data-live-route-116] input[name="q"]{min-width:260px;flex:1 1 320px}
.merchant-voucher-card-116 .voucher-meta{align-items:center}

@media(max-width:1000px){
  .authenticated-stage-116.has-persistent-side-116{grid-template-columns:190px minmax(0,1fr);gap:16px;padding-left:12px;padding-right:12px}
  .wallet-metrics-116{grid-template-columns:repeat(2,minmax(0,1fr))}
  .registration-profile-grid-116{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:820px){
  .authenticated-stage-116.has-persistent-side-116{display:block;padding:12px 12px 36px}
  .authenticated-stage-116.has-persistent-side-116>.persistent-side-116{position:relative;top:auto;margin-bottom:14px}
  .persistent-side-116 .side-nav-116{max-width:none}
  .registration-profile-grid-116{grid-template-columns:1fr!important}
  .profile-wide-field-116,.profile-choice-block-116{grid-column:auto}
  body.authenticated-110 form[data-live-route-116] input[name="q"]{min-width:0;flex-basis:100%}
}
@media(max-width:560px){.wallet-metrics-116{grid-template-columns:1fr}.flash-116{top:72px!important}.workspace-switcher-116{grid-template-columns:repeat(4,1fr)}.workspace-switcher-116 button{font-size:.6rem;padding:0 3px}}
.request-id-link-116{border:0;background:transparent;padding:0;margin:0;cursor:pointer;text-decoration:none}
.request-id-link-116:hover .id-cell-116,.request-id-link-116:focus-visible .id-cell-116{text-decoration:underline;color:#1f6290}
.request-detail-116{min-width:min(520px,calc(100vw - 48px))}.request-detail-116 dl{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px 14px;margin:0 0 18px}.request-detail-116 dt{font-size:.72rem;font-weight:850;color:#61798e}.request-detail-116 dd{margin:0;color:#294b68;min-width:0;overflow-wrap:anywhere}.request-detail-116 dd small{display:block;margin-top:3px;color:#71879a}
.route-retry-116{padding:28px 0;color:#62798d}.route-retry-116 p{margin:0 0 12px;font-weight:700}
@media(max-width:560px){.request-detail-116 dl{grid-template-columns:1fr;gap:4px}.request-detail-116 dt{margin-top:8px}}


/* RYU Portal 1.1.8 — authenticated shell, list actions, dialogs and settings polish. */
.authenticated-stage-116.has-persistent-side-116{
  max-width:var(--shell-max)!important;
  width:100%!important;
  padding-left:48px!important;
  padding-right:48px!important;
}
.persistent-side-116 .side-nav-116 nav a{gap:0!important;padding-left:12px!important}
.persistent-side-116 .side-nav-116 nav a .nav-dot{display:none!important}
.persistent-side-116 .side-nav-116 nav a.active{
  background:#e7f1f8!important;
  color:#173f64!important;
  box-shadow:inset 3px 0 0 #2a79a8!important;
}
.persistent-side-116 .side-nav-116 nav a:hover{background:#eef5fa!important}
.acting-as-118{display:grid;gap:5px;padding:7px 8px 12px;color:#577189;font-size:.67rem;font-weight:850}
.acting-as-118 span{display:block}
.acting-as-118 select{width:100%;height:32px;min-height:32px;border:1px solid #cfdde8;border-radius:7px;background:#f7fafc;color:#254f71;padding:0 28px 0 9px;font-size:.7rem;font-weight:800}

body.authenticated-110 .desktop-records-110 .compact-table-110 th,
body.authenticated-110 .table-wrap .compact-table-110 th{position:static!important;top:auto!important;z-index:auto!important}
body.authenticated-110 .desktop-records-110 .data-table{border-collapse:separate!important;border-spacing:0!important}

.header-bulk-actions-118{display:inline-flex;align-items:center;gap:5px}
.bulk-action-118:disabled{opacity:.35!important;cursor:not-allowed!important;filter:none!important}
.bulk-action-118:not(:disabled):hover{background:#e1edf6!important;border-color:#bfd3e2!important}
.danger-soft-118:not(:disabled){color:#9e2e3a!important}
.action-icon-118{width:17px!important;height:17px!important;display:block!important;margin:auto!important}

.request-type-head-118,.request-type-cell-118{min-width:175px!important;white-space:nowrap!important}
.request-date-head-118,.request-date-cell-118,.transaction-date-cell-118{min-width:126px!important;white-space:nowrap!important}
.requests-table-118 td:last-child,.requests-table-118 th:last-child{min-width:86px}

.account-editor-form-118{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 16px}
.account-editor-form-118 .field{margin:0!important}
.account-editor-form-118 .field>span{display:block;margin-bottom:5px;font-size:.72rem;font-weight:850;color:#365876}
.account-editor-form-118 .field input,.account-editor-form-118 .field select{width:100%;min-height:40px}
.account-enabled-118{align-self:end;min-height:40px;display:flex!important;align-items:center!important;gap:8px!important}
.account-editor-wide-118{grid-column:1/-1}
.account-editor-modal-118{width:min(620px,calc(100vw - 36px))!important}

body.authenticated-110 .settings-form-118{
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px 20px!important;
  align-items:start!important;
}
body.authenticated-110 .settings-form-118>.field,
body.authenticated-110 .settings-form-118>.settings-check-row-114{
  width:100%!important;max-width:none!important;margin:0!important;
}
body.authenticated-110 .settings-form-118>.field input,
body.authenticated-110 .settings-form-118>.field select,
body.authenticated-110 .settings-form-118>.field textarea{width:100%!important;max-width:none!important}
body.authenticated-110 .settings-grid-item-118{min-height:64px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-top:22px!important}
body.authenticated-110 .settings-reserved-118{grid-column:span 2}
body.authenticated-110 .settings-wide-118{grid-column:1/-1}

@media(max-width:1000px){
  body.authenticated-110 .settings-form-118{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.authenticated-110 .settings-reserved-118{grid-column:1/-1}
}
@media(max-width:900px){
  .authenticated-stage-116.has-persistent-side-116{padding-left:22px!important;padding-right:22px!important}
}
@media(max-width:820px){
  body.authenticated-110 .settings-form-118{grid-template-columns:1fr!important}
  body.authenticated-110 .settings-reserved-118,body.authenticated-110 .settings-wide-118{grid-column:auto}
}
@media(max-width:700px){
  .authenticated-stage-116.has-persistent-side-116{padding-left:16px!important;padding-right:16px!important}
}
@media(max-width:600px){
  .modal-backdrop:has(.account-editor-modal-118){padding:0!important;display:block!important}
  .account-editor-modal-118{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important;padding:18px 16px 24px!important;overflow:auto!important}
  .account-editor-form-118{grid-template-columns:1fr!important}
  .account-editor-wide-118{grid-column:auto}
}

/* RYU Portal 1.1.9 — Admin workspace identity and Inventory selection polish. */
.persistent-side-116 .side-identity-110{
  grid-template-columns:40px minmax(0,1fr)!important;
  gap:10px!important;
  align-items:center!important;
}
.persistent-side-116 .side-avatar-110{
  display:grid!important;
  width:36px!important;
  height:36px!important;
  flex:none!important;
}
.persistent-side-116 .side-identity-110 strong{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.25!important;
  overflow-wrap:anywhere!important;
}
.acting-as-118{
  display:block!important;
  padding:3px 8px 12px!important;
}
.acting-as-118 select{
  width:100%!important;
  margin:0!important;
  min-height:34px!important;
}
.persistent-side-116 .side-nav-116 nav a{
  border-radius:8px!important;
  box-shadow:none!important;
  transition:background-color .14s ease,color .14s ease!important;
}
.persistent-side-116 .side-nav-116 nav a.active,
.persistent-side-116 .side-nav-116 nav a[aria-current="page"]{
  background:#deedf7!important;
  color:#154f77!important;
  box-shadow:none!important;
  font-weight:850!important;
}
.inventory-table-119 th:first-child,.inventory-table-119 td:first-child{
  width:42px!important;
  min-width:42px!important;
  text-align:center!important;
}
.inventory-bulk-actions-119{margin-right:2px}

/* RYU Portal 1.1.10 — authenticated list/query reliability and responsive workflow polish. */
.persistent-side-116 .side-nav-116 nav a[data-side-route-116]{
  display:flex!important;align-items:center!important;min-height:36px!important;padding:8px 12px!important;
  border-radius:8px!important;color:#526d85!important;font-weight:780!important;text-decoration:none!important;
}
.persistent-side-116 .side-nav-116 nav a[data-side-route-116].active,
.persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"]{
  background:#dcecf7!important;color:#174f77!important;font-weight:880!important;box-shadow:none!important;
}
.persistent-side-116 .side-nav-116 nav a[data-side-route-116]:hover{background:#edf5fa!important;color:#174f77!important}

.ops-pager-1110{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;flex-wrap:wrap!important;margin-top:14px!important}
.pager-controls-114{display:flex!important;align-items:center!important;gap:5px!important;flex-wrap:wrap!important}
.pager-btn-114,.pager-current-114{display:inline-grid!important;place-items:center!important;min-width:30px!important;height:30px!important;padding:0 7px!important;border:1px solid #d7e3ec!important;border-radius:7px!important;background:#fff!important;color:#2f5878!important;font-size:.72rem!important;font-weight:780!important;text-decoration:none!important}
.pager-btn-114:hover{background:#edf5fa!important;border-color:#bdd2e2!important}.pager-current-114{background:#e1eef7!important;border-color:#b8d1e3!important;color:#174f77!important}
.pager-btn-114.disabled{opacity:.42!important;pointer-events:none!important}.pager-ellipsis-1110{display:inline-grid;place-items:center;min-width:22px;height:30px;color:#8295a6;font-weight:800}

.account-editor-modal-1110{width:min(660px,calc(100vw - 38px))!important}
.account-create-1110{width:min(620px,100%)!important;display:grid!important;gap:14px!important}
.account-create-1110>.field,.account-create-1110 #account-create-role-fields-1110>.field{width:100%!important;max-width:520px!important;margin:0!important}
#account-create-role-fields-1110{display:grid;gap:14px}.invite-hint-1110{max-width:620px;padding:12px 14px;border:1px solid #d7e5ee;border-radius:9px;background:#f4f8fb;color:#4f6d85;font-size:.76rem;line-height:1.5}

.admin-vouchers-table-1110 th:nth-child(6),.admin-vouchers-table-1110 td:nth-child(6),.admin-vouchers-table-1110 th:nth-child(7),.admin-vouchers-table-1110 td:nth-child(7){white-space:nowrap!important;min-width:144px!important}
.transactions-table-1110 th:last-child,.transactions-table-1110 td:last-child{width:64px!important;text-align:center!important}
.detail-list-1110{display:grid!important;grid-template-columns:140px minmax(0,1fr)!important;gap:10px 16px!important;margin:0 0 18px!important;min-width:min(560px,calc(100vw - 52px))}
.detail-list-1110 dt{font-size:.72rem;font-weight:850;color:#637b90}.detail-list-1110 dd{margin:0;min-width:0;color:#294c68;overflow-wrap:anywhere}.reference-break-1110{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}

.settings-form-1110{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(220px,.8fr)!important;gap:28px 38px!important;align-items:start!important;width:100%!important;max-width:none!important}
.settings-main-1110{display:grid!important;grid-template-columns:repeat(2,minmax(220px,1fr))!important;gap:18px 20px!important;align-items:start!important}.settings-main-1110>.field{margin:0!important;max-width:none!important}.settings-main-1110>.field input,.settings-main-1110>.field select,.settings-main-1110>.field textarea{width:100%!important;max-width:none!important}.settings-main-1110 .reserved-names-116{grid-column:1/-1!important}
.settings-options-1110{display:grid!important;gap:10px!important;padding-top:24px!important}.settings-options-1110 .settings-check-row-114{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;min-height:42px!important;margin:0!important;padding:8px 0!important;border:0!important}.settings-options-1110 .settings-check-row-114 input{flex:none!important}
.settings-actions-1110{grid-column:1/-1!important}

.staff-profile-1110{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;max-width:560px!important}.staff-profile-1110>.field{margin:0!important;max-width:520px!important}.staff-profile-1110>.field input,.staff-profile-1110>.field select{width:100%!important;max-width:none!important}
.merchant-profile-1110{width:100%!important;max-width:none!important}.merchant-profile-1110 .field{min-width:0}.profile-sector-grid-1110{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin-top:7px}.profile-sector-grid-1110 label{display:flex;align-items:flex-start;gap:7px;font-size:.76rem;color:#526f87}.sector-profile-1110{grid-column:1/-1}

.voucher-view-more-tile-1110{min-height:100%;border:1px dashed #b9cede!important;border-radius:10px!important;background:#f5f9fc!important;color:#1f5e89!important;font-weight:850!important;font-size:.9rem!important;cursor:pointer!important;display:grid!important;place-items:center!important;padding:22px!important;transition:background .14s ease,border-color .14s ease,transform .14s ease!important}.voucher-view-more-tile-1110:hover,.voucher-view-more-tile-1110:focus-visible{background:#e9f3f9!important;border-color:#7fabca!important;transform:translateY(-1px)}.voucher-display-count-1110{text-align:center!important;margin:16px 0 6px!important;color:#74899c!important;font-size:.7rem!important}

body.authenticated-110 .ops-toolbar-110{align-items:center!important}
body.authenticated-110 .ops-toolbar-110 select,body.authenticated-110 .ops-toolbar-110 input{min-height:38px!important}
body.authenticated-110 .compact-table-110 th .sortable-heading-116{font-size:inherit!important}

@media(max-width:1050px){.settings-form-1110{grid-template-columns:1fr!important}.settings-options-1110{padding-top:0!important;max-width:520px!important}.settings-actions-1110{grid-column:auto!important}.profile-sector-grid-1110{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.settings-main-1110{grid-template-columns:1fr!important}.settings-main-1110 .reserved-names-116{grid-column:auto!important}.detail-list-1110{grid-template-columns:1fr!important;gap:4px!important;min-width:0!important}.detail-list-1110 dt{margin-top:8px}.profile-sector-grid-1110{grid-template-columns:1fr}.ops-pager-1110{justify-content:center!important}.ops-pager-1110>span{width:100%;text-align:center}.pager-controls-114{justify-content:center!important}}
@media(max-width:600px){.account-editor-modal-1110{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important;margin:0!important;padding:18px 16px 26px!important;overflow:auto!important}}

/* Portal 1.1.11 authenticated interaction consistency */
.persistent-side-116 .side-nav-116 nav a[data-side-route-116].current-1111,
.persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"]{
  background:#e4f0f9!important;color:#173f67!important;font-weight:800!important;
}
.persistent-side-116 .side-nav-116 nav a[data-side-route-116]::before{display:none!important}
.ops-toolbar-110 .list-search-spinner-1111{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px;opacity:0;transition:opacity .12s ease;margin-left:-2px;margin-right:2px}
.ops-toolbar-110 .list-search-spinner-1111 span{width:13px;height:13px;border:2px solid #c8d8e6;border-top-color:#225f8e;border-radius:50%}
.ops-toolbar-110.is-querying-1111 .list-search-spinner-1111{opacity:1}
.ops-toolbar-110.is-querying-1111 .list-search-spinner-1111 span{animation:ryu-spin-1111 .7s linear infinite}
@keyframes ryu-spin-1111{to{transform:rotate(360deg)}}
.inventory-public-link-1111{color:inherit;text-decoration:none}.inventory-public-link-1111:hover{text-decoration:underline;color:#155e91}
.settings-form-1111{max-width:1120px;display:grid;gap:22px}.settings-fields-1111{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:18px 20px;align-items:start}.settings-payment-methods-1111{border:0;margin:0;padding:0;display:flex;gap:28px;flex-wrap:wrap}.settings-payment-methods-1111 legend{font-weight:800;color:#244766;margin-bottom:12px;width:100%}.settings-payment-check-1111{display:flex;align-items:center;gap:9px;font-weight:700;color:#365674}.settings-reserved-1111{max-width:760px}.settings-reserved-1111 textarea{width:100%}
.authenticated-view-more-1111{min-height:100%;height:100%}.authenticated-view-more-1111 .view-more-link{font-size:.78rem!important;font-weight:650!important}
.inventory-table-1111 th,.inventory-table-1111 td{vertical-align:middle}
@media(max-width:760px){.settings-fields-1111{grid-template-columns:1fr}.settings-payment-methods-1111{display:grid;grid-template-columns:1fr;gap:10px}.list-search-spinner-1111{order:2}}


/* Portal 1.1.12 — authenticated-flow stabilization. */
.authenticated-stage-116.has-persistent-side-116{
  width:min(100%,var(--shell-max))!important;max-width:var(--shell-max)!important;
  grid-template-columns:220px minmax(0,1fr)!important;column-gap:24px!important;
  padding-left:48px!important;padding-right:48px!important;margin-left:auto!important;margin-right:auto!important;
  box-sizing:border-box!important;
}
.authenticated-stage-116.has-persistent-side-116>.persistent-side-116{width:220px!important;min-width:220px!important;max-width:220px!important}
.authenticated-stage-116.has-persistent-side-116>.app-main,.authenticated-stage-116.has-persistent-side-116 .ops-content-116{width:100%!important;min-width:0!important;max-width:none!important}
.persistent-side-116 .side-nav-116 nav a[data-side-route-116].current-1120,
.persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"]{
  background:#e4f0f9!important;color:#173f67!important;font-weight:800!important;box-shadow:none!important;
}

.ops-toolbar-110.toolbar-stable-1120 .search-progress-1120{position:relative;flex:1 1 260px;min-width:180px}
.ops-toolbar-110.toolbar-stable-1120 .search-progress-1120>input[name="q"]{width:100%!important;max-width:none!important;padding-right:34px!important}
.ops-toolbar-110.toolbar-stable-1120 .search-progress-1120 .list-search-spinner-1111{position:absolute!important;right:9px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;z-index:2!important;pointer-events:none!important}
.transactions-toolbar-112.toolbar-stable-1120{display:grid!important;grid-template-columns:minmax(240px,1fr) 150px 150px 170px 170px 78px!important;gap:8px!important;align-items:center!important;flex-wrap:nowrap!important}
.transactions-toolbar-112.toolbar-stable-1120>.search-progress-1120{min-width:0!important;width:100%!important}
.transactions-toolbar-112.toolbar-stable-1120>input,.transactions-toolbar-112.toolbar-stable-1120>select{width:100%!important;max-width:none!important;min-width:0!important}
.wallet-toolbar-114{display:grid!important;grid-template-columns:minmax(270px,1fr) minmax(190px,250px) 140px 180px 140px 76px!important;gap:8px!important;align-items:center!important}
.wallet-toolbar-114>.search-progress-1120{min-width:0!important;width:100%!important}
.wallet-toolbar-114>select,.wallet-toolbar-114 .wallet-merchant-field-113{width:100%!important;max-width:none!important;min-width:0!important}

.settings-form-1111{max-width:1040px!important}.settings-fields-1111{grid-template-columns:260px 180px 260px!important;justify-content:start!important;gap:16px 20px!important}
.settings-fields-1111 .field{max-width:100%!important}.settings-fields-1111 [name="merchant_invitation_expiry_days"],.settings-fields-1111 [name="gateway_surcharge_percent"],.settings-fields-1111 [name="gateway_surcharge_fixed_cents"]{max-width:150px!important}
.settings-fields-1111 [name="merchant_registration_mode"],.settings-fields-1111 [name="redemption_mode"]{max-width:260px!important}.settings-fields-1111 [name="support_email"]{max-width:320px!important}
.settings-payment-methods-1111{gap:18px!important;margin-top:2px!important}.settings-payment-methods-1111 legend{font-size:.76rem!important;margin-bottom:8px!important}.settings-payment-check-1111{font-size:.74rem!important;font-weight:650!important;gap:7px!important}.settings-payment-check-1111 input{width:15px!important;height:15px!important}

.view-more-refined.view-more-tile .view-more-link{font-size:.75rem!important;font-weight:600!important;color:#688097!important}

@media(max-width:1100px){
  .transactions-toolbar-112.toolbar-stable-1120{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(130px,160px)) repeat(2,minmax(135px,1fr)) 72px!important}
  .wallet-toolbar-114{grid-template-columns:minmax(220px,1fr) minmax(170px,220px) 130px 160px 130px 72px!important}
}
@media(max-width:900px){
  .authenticated-stage-116.has-persistent-side-116{grid-template-columns:190px minmax(0,1fr)!important;column-gap:16px!important;padding-left:22px!important;padding-right:22px!important}
  .authenticated-stage-116.has-persistent-side-116>.persistent-side-116{width:190px!important;min-width:190px!important;max-width:190px!important}
  .transactions-toolbar-112.toolbar-stable-1120,.wallet-toolbar-114{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .transactions-toolbar-112.toolbar-stable-1120>.search-progress-1120,.wallet-toolbar-114>.search-progress-1120{grid-column:1/-1}
  .settings-fields-1111{grid-template-columns:repeat(2,minmax(180px,260px))!important}
}
@media(max-width:760px){
  .authenticated-stage-116.has-persistent-side-116{display:block!important;padding-left:16px!important;padding-right:16px!important}
  .authenticated-stage-116.has-persistent-side-116>.persistent-side-116{width:100%!important;min-width:0!important;max-width:none!important}
  .transactions-toolbar-112.toolbar-stable-1120,.wallet-toolbar-114,.settings-fields-1111{grid-template-columns:1fr!important}
  .transactions-toolbar-112.toolbar-stable-1120>.search-progress-1120,.wallet-toolbar-114>.search-progress-1120{grid-column:auto}
}

/* RYU Portal 1.2.1 — authenticated refinement, sticky chrome and auth canvas. */
:root{--ryu-fixed-header-h:72px}
.app-header{
  position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;
  z-index:2200!important;background:rgba(255,255,255,.985)!important;
  backdrop-filter:saturate(145%) blur(10px)!important;
  box-shadow:0 1px 0 rgba(29,68,103,.08)!important;
}
#authenticated-stage-116{padding-top:var(--ryu-fixed-header-h)!important}
html{scroll-padding-top:calc(var(--ryu-fixed-header-h) + 12px)!important}
.mobile-menu{z-index:2250!important}.account-popover-110{z-index:2300!important}

/* Authentication pages use one continuous scenic canvas, including footer. */
body:has(.auth-center-shell.auth-background-119),
#app-shell:has(.auth-center-shell.auth-background-119){
  background:linear-gradient(rgba(255,255,255,.20),rgba(255,255,255,.30)),url('../assets/images/okinawa-login-bg-progressive.jpg') center/cover fixed no-repeat!important;
}
body:has(.auth-center-shell.auth-background-119) .app-main,
#app-shell:has(.auth-center-shell.auth-background-119) .page,
#app-shell:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{background:transparent!important}
#app-shell:has(.auth-center-shell.auth-background-119) .app-footer,
.app-main:has(.auth-center-shell.auth-background-119)+.app-footer{
  background:transparent!important;backdrop-filter:none!important;border:0!important;
  color:#526a80!important;text-shadow:0 1px 2px rgba(255,255,255,.8)!important;
}

/* Current authenticated route always has a persistent background selection. */
.persistent-side-116 .side-nav-116 nav a[data-side-route-116].current-121,
.persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"],
.persistent-side-116 .side-nav-116 nav a[data-side-route-116].active{
  background:#e6f1f8!important;color:#123f67!important;font-weight:800!important;
  border-radius:8px!important;box-shadow:inset 3px 0 0 #2f78a8!important;
}
.persistent-side-116 .side-nav-116 nav a[data-side-route-116]:not(.active):not(.current-121):not([aria-current="page"]){background:transparent!important;box-shadow:none!important}

/* Account popover identity + financial balance in one compact row. */
#account-popover-110 .account-popover-id-121{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"name balance" "role balance"!important;column-gap:16px!important;row-gap:2px!important;
  align-items:center!important;border:0!important;margin:0!important;padding:10px 10px 9px!important;
}
#account-popover-110 .account-popover-id-121>strong:not(.account-popover-balance-121){grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#account-popover-110 .account-popover-id-121>small{grid-area:role;margin:0!important}
#account-popover-110 .account-popover-balance-121{grid-area:balance;align-self:center;text-align:right;white-space:nowrap;font-size:.9rem;color:#173f64}

.heading-inline-121{align-items:baseline!important}.show-archived-heading-121{transform:translateY(3px);font-size:.75rem!important}

/* Neutral list toolbar actions; primary blue is reserved for actual primary form actions. */
body.authenticated-110 .toolbar-neutral-121,
body.authenticated-110 .toolbar-export-121 .export-trigger-114,
body.authenticated-110 .ops-header-actions-114>.icon-btn-114,
body.authenticated-110 .ops-header-actions-118>.icon-btn-114{
  background:#eef4f8!important;color:#17466e!important;border:1px solid #dbe7ef!important;box-shadow:none!important;
}
body.authenticated-110 .toolbar-neutral-121:hover,
body.authenticated-110 .toolbar-export-121 .export-trigger-114:hover,
body.authenticated-110 .ops-header-actions-114>.icon-btn-114:hover,
body.authenticated-110 .ops-header-actions-118>.icon-btn-114:hover{background:#dfeaf2!important;border-color:#c5d9e7!important}
body.authenticated-110 .toolbar-neutral-121:focus-visible,
body.authenticated-110 .toolbar-export-121 .export-trigger-114:focus-visible{outline:2px solid rgba(42,105,153,.32)!important;outline-offset:2px!important}
.toolbar-popover-121{position:relative;display:inline-flex}.toolbar-popover-121>.icon-btn-114{gap:2px}.toolbar-popover-121>.icon-btn-114 svg:last-child{width:12px;height:12px}
.toolbar-menu-121{position:absolute;right:0;top:calc(100% + 6px);z-index:1700;min-width:180px;background:#fff;border:1px solid #d7e4ee;border-radius:8px;padding:5px;box-shadow:0 12px 30px rgba(22,63,99,.16)}
.toolbar-menu-121 button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:6px;padding:9px 10px;text-align:left;color:#224d70;font:inherit;cursor:pointer}.toolbar-menu-121 button:hover:not(:disabled),.toolbar-menu-121 button:focus-visible:not(:disabled){background:#eaf3f8}.toolbar-menu-121 button:disabled{opacity:.42;cursor:not-allowed}
.toolbar-menu-121 .ui-icon-110{width:16px;height:16px}

.public-entity-link-121{color:inherit;text-decoration:none}.public-entity-link-121:hover,.public-entity-link-121:focus-visible{color:#145d8d;text-decoration:underline;text-underline-offset:2px}
.inactive-title-121{text-decoration:line-through;text-decoration-thickness:1px;color:#7a8997}
.stock-badge-121{display:inline-flex;min-width:48px;justify-content:center;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}
.stock-badge-121.normal{background:#e5f5ec;color:#176c4d}.stock-badge-121.low{background:#fff1cd;color:#956100}.stock-badge-121.soldout{background:#fde5e7;color:#a52d39}
.entity-id-sub-121{display:block;margin-top:2px;font-size:.66rem;line-height:1.2;color:#8a9cac;font-weight:500;white-space:nowrap}
.nowrap{white-space:nowrap}

.voucher-stats-121 dl{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:10px 18px;margin:8px 0 18px}.voucher-stats-121 dt{font-size:.73rem;font-weight:800;color:#688096;text-transform:uppercase;letter-spacing:.04em}.voucher-stats-121 dd{margin:0;color:#264b6b}

/* Settings: compact grid then three aligned payment methods. */
.settings-form-121{max-width:980px!important}.settings-fields-121{display:grid!important;grid-template-columns:260px 170px 260px!important;gap:16px 20px!important;align-items:start!important}
.settings-fields-121 .field.compact{max-width:170px!important}.settings-fields-121 .field.medium{max-width:320px!important}
.settings-payment-methods-121{border:0!important;margin:2px 0 0!important;padding:0!important;display:grid!important;grid-template-columns:260px 170px 260px!important;column-gap:20px!important;row-gap:8px!important;align-items:center!important}
.settings-payment-methods-121 legend{grid-column:1/-1;font-size:.78rem!important;font-weight:800;color:#274966;margin-bottom:4px!important}
.settings-payment-methods-121 label{font-size:.74rem!important;font-weight:650!important;color:#365674!important;display:flex!important;align-items:center!important;gap:7px!important;white-space:nowrap!important}.settings-payment-methods-121 input{width:15px!important;height:15px!important}

.avatar-editor-121{display:flex;align-items:center;gap:16px;margin-bottom:5px;max-width:560px}.avatar-preview-121{width:72px;height:72px;flex:0 0 72px;border-radius:50%;overflow:hidden;background:#e7f1f7;display:grid;place-items:center;font-weight:850;color:#173f64;font-size:1.1rem}.avatar-preview-121 img{width:100%;height:100%;object-fit:cover}.avatar-editor-121>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.avatar-editor-121 small{display:block;flex-basis:100%;font-size:.69rem;color:#7890a4}.avatar-upload-btn-121{cursor:pointer}
.staff-profile-121{max-width:560px!important}.staff-profile-121>.avatar-editor-121{margin-bottom:2px}
.security-no-divider-121{border-top:0!important}.security-no-divider-121::before{display:none!important}

.wallet-metrics-121{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important}.wallet-date-state-121{font-size:.67rem!important;font-weight:750!important;color:#2e8063!important;white-space:nowrap}.wallet-merchant-sub-121{font-size:.76rem!important;color:#637d94!important;line-height:1.25!important}.wallet-card-114 .voucher-title,.wallet-card-114 h3{margin-top:7px!important}.wallet-card-114 .wallet-merchant-sub-121{margin-top:4px!important}

/* Prevent legacy wide controls from pushing desktop toolbars onto a second row. */
body.authenticated-110 form.ops-toolbar-110{align-items:center!important}
body.authenticated-110 form.ops-toolbar-110 select{min-width:0!important}

@media(max-width:900px){
  :root{--ryu-fixed-header-h:68px}
  .settings-fields-121,.settings-payment-methods-121{grid-template-columns:repeat(2,minmax(0,1fr))!important}.settings-payment-methods-121 legend{grid-column:1/-1}
  .wallet-metrics-121{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  :root{--ryu-fixed-header-h:70px}
  .settings-fields-121,.settings-payment-methods-121{grid-template-columns:1fr!important}.settings-payment-methods-121 legend{grid-column:auto!important}
  .settings-payment-methods-121 label{white-space:normal!important}
  .avatar-editor-121{align-items:flex-start}.wallet-metrics-121{grid-template-columns:1fr!important}
  #app-shell:has(.auth-center-shell.auth-background-119) .app-footer{background:transparent!important;backdrop-filter:none!important}
}

/* RYU Portal 1.2.2 final acceptance fixes */
:root{--ryu-fixed-header-h:72px}
.app-header{position:fixed!important;top:0;left:0;right:0;z-index:1000!important;box-shadow:none!important;border-bottom:0!important}
.app-header::after,.app-header .header-separator{display:none!important}
.header-inner,.app-header .dropdown,.app-header [role="menu"]{position:relative;z-index:1001}
#authenticated-stage-116{padding-top:var(--ryu-fixed-header-h)!important}
.authenticated-shell-116{padding-top:10px!important}
.authenticated-shell-116 .page-head{margin-top:0!important}
.public-nav a:hover,.public-nav a:focus-visible,.desktop-nav a:hover,.desktop-nav a:focus-visible{background:rgba(26,92,145,.08);outline:none}
#persistent-side-116 [data-side-route-116]:hover{background:#f1f6fa!important;color:#173f67!important}
#persistent-side-116 [data-side-route-116].active,#persistent-side-116 [data-side-route-116][aria-current="page"]{background:#e6f1f8!important;color:#123f67!important}
.mobile-menu-toggle span{height:2px!important;border-radius:2px!important;width:22px!important;margin:2.5px auto!important}
.mobile-menu-toggle{width:42px!important;height:42px!important}

/* Short authentication screens consume the remaining viewport exactly once. */
body:has(.auth-background-119) #authenticated-stage-116,body:has(.auth-center-shell) #authenticated-stage-116{min-height:calc(100svh - var(--ryu-fixed-header-h))!important}
.auth-center-shell,.auth-background-119{min-height:calc(100svh - var(--ryu-fixed-header-h) - var(--footer-h,0px))!important;height:auto!important}
.auth-center-shell .site-footer,.auth-background-119 .site-footer{margin-top:auto}

/* Account popover */
#account-popover-110{width:min(290px,calc(100vw - 24px))!important;min-width:0!important}
.account-popover-id-122{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important}
.account-popover-wallet-122{display:flex;flex-direction:column;gap:1px;color:#2c6a83;font-size:.78rem;font-weight:700;line-height:1.3;margin-top:2px}
.account-popover-balance-121{display:none!important}

/* Profile avatar owns a complete row. */
.avatar-editor-122{grid-column:1/-1!important;width:100%;display:flex!important;align-items:center!important;gap:18px!important;padding-bottom:10px}
.avatar-controls-122{display:grid;gap:7px;min-width:0}
.avatar-controls-122>div:first-child{display:flex;gap:8px;flex-wrap:wrap}
.avatar-error-122{min-height:1.1em;color:#a22b2b;font-size:.82rem}

/* Buyer voucher toolbar/cards */
.wallet-status-filter-122{min-width:150px!important}
.wallet-toolbar-114{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important}
.wallet-toolbar-114>*{min-width:0}
.wallet-toolbar-114 .wallet-search-114{flex:1 1 220px}
.wallet-voucher-grid-114 .wallet-select-wrap-122{display:none;align-items:center;justify-content:center;width:26px;height:26px}
.wallet-voucher-grid-114.selection-mode-122 .wallet-select-wrap-122{display:flex}
.wallet-select-wrap-122 input{width:16px;height:16px;margin:0}
.wallet-lower-122{display:grid;grid-template-columns:28px 1fr;align-items:end;gap:6px;margin-top:auto}
.wallet-lower-122 .voucher-card-bottom{grid-column:2}
.wallet-voucher-meta-113{min-height:30px;align-items:start}
.wallet-date-state-121{font-size:.76rem;color:#46738d;white-space:nowrap}
.wallet-title-slot-122{display:block;min-height:3.2em}
.wallet-voucher-card-116 .merchant-line-121{min-height:2.2em;font-size:.82rem;color:#5b6f7d}
.wallet-voucher-card-116 .voucher-card-bottom{min-height:34px}
[data-wallet-select-mode-122].active{background:#e6f1f8!important;border-color:#6d9cbd!important}

/* Transaction outcome is visible without a Status column and not dependent on colour alone (title/aria label). */
.tx-amount-122{font-weight:800;border-bottom:2px solid transparent;padding-bottom:1px}
.tx-amount-122.success{color:#1b6a44;border-bottom-color:#83b99f}
.tx-amount-122.error{color:#a12828;border-bottom-color:#d39a9a}
.tx-amount-122.warning{color:#765b13;border-bottom-color:#d2bd75}
.tx-amount-122.neutral{color:inherit;border-bottom-color:#c8d1d7}
.transactions-table-122 small,.requests-table-122 small{display:block;color:#6a7b86;font-size:.76rem;margin-top:2px}

/* Accounts */
.accounts-table-121 .account-name-head-122,.accounts-table-121 .account-name-cell-122{min-width:190px}
.account-disabled-name-122{text-decoration:line-through;text-decoration-thickness:1.5px}
.account-state-text-122{display:block;color:#6a6f73;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}
.account-row-archived-122{opacity:.68}
.account-balance-122>span{display:block;white-space:nowrap;font-size:.82rem}

/* Inventory */
.voucher-title-state-121.inactive{text-decoration:line-through;text-decoration-thickness:1.5px}
.inventory-archived-122{opacity:.68}
.show-archived-heading-116{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:650}

/* General compact neutral toolbar actions and focus states. */
.icon-btn-110:focus-visible,.icon-btn-114:focus-visible,.toolbar-neutral-121:focus-visible,.btn:focus-visible{outline:2px solid #397eac!important;outline-offset:2px}
.icon-btn-110:hover,.icon-btn-114:hover,.toolbar-neutral-121:hover:not(:disabled){background:#eef4f8!important}

@media(max-width:900px){
  .wallet-toolbar-114{flex-wrap:wrap!important}
  .wallet-toolbar-114>*{flex:1 1 145px}
  .wallet-toolbar-114 .wallet-search-114{flex-basis:100%}
  .avatar-editor-122{align-items:flex-start!important}
  .requests-table-122,.transactions-table-122{min-width:1050px}
}
@media(max-width:600px){
  :root{--ryu-fixed-header-h:64px}
  .authenticated-shell-116{padding-top:6px!important}
  .avatar-editor-122{flex-direction:column!important}
  #account-popover-110{width:min(278px,calc(100vw - 16px))!important}
}

/* ========================================================================== */
/* RYU Portal 1.2.3 / shared API 1.0.28 — canonical final rules.             */
/* ========================================================================== */
:root{--ryu-fixed-header-h:72px}

/* One fixed top bar for public and authenticated Portal routes. */
.app-header{
  position:fixed!important;inset:0 0 auto 0!important;height:var(--ryu-fixed-header-h)!important;
  z-index:2400!important;background:rgba(255,255,255,.97)!important;border:0!important;
  box-shadow:none!important;backdrop-filter:blur(14px)!important
}
.header-inner{height:var(--ryu-fixed-header-h)!important}
#authenticated-stage-116{padding-top:var(--ryu-fixed-header-h)!important;box-sizing:border-box!important}
.authenticated-stage-116.has-persistent-side-116>.persistent-side-116{top:calc(var(--ryu-fixed-header-h) + 12px)!important}
.mobile-menu{position:relative;z-index:2450!important}
#account-popover-110,.account-popover-110{z-index:2550!important}
.modal-backdrop{z-index:5000!important}

/* Canonical selected-state styling: hover never erases the selected route. */
#persistent-side-116 [data-side-route-116]{transition:background-color .13s ease,color .13s ease!important}
#persistent-side-116 [data-side-route-116]:not(.active):not([aria-current="page"]):hover,
#persistent-side-116 [data-side-route-116]:not(.active):not([aria-current="page"]):focus-visible{
  background:#f1f6fa!important;color:#173f67!important
}
#persistent-side-116 [data-side-route-116].active,
#persistent-side-116 [data-side-route-116].current-123,
#persistent-side-116 [data-side-route-116][aria-current="page"],
#persistent-side-116 [data-side-route-116].active:hover,
#persistent-side-116 [data-side-route-116][aria-current="page"]:hover{
  background:#dfeef8!important;color:#123f67!important;font-weight:850!important
}
.context-support-116{display:none!important}

/* Account menu: name, role and wallet lines are independent rows. */
#account-popover-110{width:min(272px,calc(100vw - 24px))!important;min-width:0!important;padding:10px!important}
#account-popover-110 .account-popover-id-123{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;
  width:100%!important;min-width:0!important;padding:8px 10px 10px!important
}
#account-popover-110 .account-popover-id-123>*{position:static!important;grid-area:auto!important;max-width:100%!important;margin:0!important}
#account-popover-110 .account-popover-name-123{display:block!important;font-size:.88rem!important;line-height:1.25!important;color:#173f64!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-role-123{display:block!important;font-size:.69rem!important;line-height:1.25!important;color:#718398!important;font-weight:650!important}
#account-popover-110 .account-popover-wallet-122{display:flex!important;flex-direction:column!important;gap:1px!important;width:100%!important;margin-top:4px!important;font-size:.74rem!important;line-height:1.3!important;color:#3f6987!important;font-weight:750!important}
#account-popover-110 .account-popover-wallet-122 span{display:block!important;white-space:nowrap!important}
#account-popover-110>a,#account-popover-110>button{width:100%!important}

/* Short auth screens use the remaining viewport once, not header + scene + footer. */
body:has(.auth-center-shell.auth-background-119){overflow:hidden!important;height:100dvh!important}
body:has(.auth-center-shell.auth-background-119) #app-shell{height:100dvh!important;min-height:0!important;overflow:hidden!important}
body:has(.auth-center-shell.auth-background-119) #authenticated-stage-116{
  height:100dvh!important;min-height:0!important;padding-top:var(--ryu-fixed-header-h)!important;overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .app-main{
  height:calc(100dvh - var(--ryu-fixed-header-h))!important;min-height:0!important;overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{
  width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;
  padding:16px 20px 48px!important;overflow:hidden!important;background-attachment:scroll!important
}
body:has(.auth-center-shell.auth-background-119) .app-footer{
  position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:35!important;
  margin:0 auto!important;padding:10px 20px 12px!important;background:transparent!important
}

/* Conventional authenticated list views are square and horizontally stable. */
body.authenticated-110 .table-wrap,
body.authenticated-110 .listview-square-123{border-radius:0!important;overflow-x:auto!important;overflow-y:visible!important}
body.authenticated-110 .table-wrap>table,
body.authenticated-110 .table-wrap thead,
body.authenticated-110 .table-wrap th:first-child,
body.authenticated-110 .table-wrap th:last-child{border-radius:0!important}
body.authenticated-110 .data-table th{white-space:nowrap!important}
body.authenticated-110 .data-table td{vertical-align:middle!important}
.entity-two-line-123 small,.requests-table-123 small,.transactions-table-123 small{display:block;margin-top:2px;color:#7a8e9f;font-size:.69rem;line-height:1.2;font-weight:500}
.actions-col-123,.select-col-123{white-space:nowrap!important;width:1%!important}

/* Transactions: concise labels, generous related-entity columns, plain amounts. */
.transactions-table-123{min-width:1120px!important;table-layout:auto!important}
.transactions-table-123 .tx-id-col-123{min-width:78px!important;width:88px!important;white-space:nowrap!important}
.transactions-table-123 .tx-time-col-123{min-width:148px!important;white-space:nowrap!important}
.transactions-table-123 .tx-type-col-123{min-width:92px!important;white-space:nowrap!important}
.transactions-table-123 .tx-user-col-123{min-width:170px!important}
.transactions-table-123 .tx-merchant-col-123{min-width:190px!important}
.transactions-table-123 .tx-voucher-col-123{min-width:260px!important}
.transactions-table-123 .tx-category-col-123{min-width:165px!important;white-space:normal!important}
.transactions-table-123 .tx-qty-col-123{min-width:54px!important;width:64px!important;text-align:center!important;white-space:nowrap!important}
.transactions-table-123 .tx-amount-col-123{min-width:105px!important;text-align:right!important;white-space:nowrap!important}
.tx-amount-122,.tx-amount-122.success,.tx-amount-122.error,.tx-amount-122.warning,.tx-amount-122.neutral{
  border:0!important;border-bottom:0!important;text-decoration:none!important;padding-bottom:0!important
}
.wallet-recent-table-123 .tx-user-col-123{min-width:170px!important}.wallet-recent-table-123 .tx-merchant-col-123{min-width:190px!important}.wallet-recent-table-123 .tx-category-col-123{min-width:165px!important}

/* Requests: requester/date-created are detail-only; Item holds its ID on row two. */
.requests-table-123{min-width:930px!important;table-layout:auto!important}
.requests-table-123 .request-id-col-123{min-width:118px!important;white-space:nowrap!important}
.requests-table-123 .request-type-col-123{min-width:105px!important}
.requests-table-123 .requester-col-123{min-width:180px!important}
.requests-table-123 .request-amount-col-123{min-width:90px!important;white-space:nowrap!important}
.requests-table-123 .request-item-col-123{min-width:190px!important}
.requests-table-123 .request-modified-col-123{min-width:155px!important}
.requests-table-123 .request-status-col-123{min-width:90px!important}

/* Voucher toolbar: Status and Sort are balanced, labels never clip. */
.wallet-toolbar-114 .wallet-status-filter-123,
.wallet-toolbar-114 .wallet-sort-filter-123{
  flex:0 0 172px!important;width:172px!important;min-width:172px!important;max-width:172px!important
}
.wallet-toolbar-114 .wallet-dir-filter-123{flex:0 0 130px!important;width:130px!important;min-width:130px!important}
.wallet-date-state-121{font-size:.75rem!important;font-weight:750!important;text-decoration:none!important}
.wallet-date-state-121.purchased{color:#46738d!important}
.wallet-date-state-121.redeemed{color:#9a465d!important}
[data-selected-refund-123],[data-create-redeem-qr-123]{opacity:1!important;cursor:pointer!important}
[data-selected-refund-123].has-selection-123,[data-create-redeem-qr-123].has-selection-123{background:#e6f1f8!important}
.portal-notice-123 p{margin:4px 0 8px;color:#405a70;line-height:1.5}

/* Merchant profile checkboxes are checkboxes, never full form controls. */
.merchant-profile-1110 .profile-sector-grid-1110 input[type="checkbox"],
.profile-sector-grid-1110 input[type="checkbox"]{
  appearance:auto!important;-webkit-appearance:checkbox!important;width:16px!important;height:16px!important;
  min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;
  padding:0!important;margin:2px 0 0!important;border-radius:2px!important;box-shadow:none!important;flex:0 0 16px!important
}
.merchant-profile-1110 .profile-sector-grid-1110 label{display:flex!important;align-items:flex-start!important;gap:8px!important;min-height:24px!important}

/* Single-symbol toolbar trigger buttons stay visually square. */
.account-bulk-121 .toolbar-popover-121>.icon-btn-114{display:inline-grid!important;place-items:center!important;width:36px!important;min-width:36px!important;height:36px!important;padding:0!important}
.account-bulk-121 .toolbar-popover-121>.icon-btn-114>svg{width:17px!important;height:17px!important}

@media(max-width:900px){
  .transactions-table-123{min-width:1120px!important}.requests-table-123{min-width:930px!important}
  .wallet-toolbar-114 .wallet-status-filter-123,.wallet-toolbar-114 .wallet-sort-filter-123{flex:1 1 172px!important;width:auto!important;max-width:none!important}
}
@media(max-width:600px){
  :root{--ryu-fixed-header-h:64px}
  body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{padding:12px 12px 44px!important}
  #account-popover-110{width:min(270px,calc(100vw - 16px))!important}
}

/* Portal 1.2.4 emergency chrome regression fix */
.app-header,body.authenticated-110 .app-header{border:0!important;border-bottom:0!important;box-shadow:none!important}
.app-header::before,.app-header::after,.app-header .header-separator{display:none!important;border:0!important;box-shadow:none!important}

/* ========================================================================== */
/* RYU Portal 1.2.5 / Landing 1.0.29 — resilient authenticated lists/chrome. */
/* ========================================================================== */
html{scrollbar-gutter:stable}

/* The authenticated header stays in normal layout flow and sticks at the top.
   This avoids the double-offset/fixed-header behavior that regressed after login. */
body.authenticated-110 .app-header{
  position:sticky!important;inset:auto!important;top:0!important;left:auto!important;right:auto!important;
  width:100%!important;height:var(--ryu-fixed-header-h)!important;flex:0 0 var(--ryu-fixed-header-h)!important;
  z-index:2400!important;border:0!important;border-bottom:0!important;box-shadow:none!important
}
body.authenticated-110 #authenticated-stage-116{
  padding-top:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important
}
body.authenticated-110 .authenticated-stage-116.has-persistent-side-116>.persistent-side-116{
  top:calc(var(--ryu-fixed-header-h) + 12px)!important;max-height:calc(100dvh - var(--ryu-fixed-header-h) - 24px)!important
}
body.authenticated-110 .ops-content-116,body.authenticated-110 .authenticated-page-116{min-width:0!important;max-width:100%!important}

/* One unmistakable selected state. data-selected-125 is owned by route state and
   cannot be erased by the separate hover treatment. */
#persistent-side-116 [data-side-route-116][data-selected-125],
#persistent-side-116 [data-side-route-116][data-selected-125]:hover,
#persistent-side-116 [data-side-route-116][data-selected-125]:focus-visible{
  background:#d9eaf6!important;color:#113f67!important;font-weight:850!important;
  box-shadow:inset 3px 0 0 #2d6f9f!important
}
#persistent-side-116 [data-side-route-116]:not([data-selected-125]):hover,
#persistent-side-116 [data-side-route-116]:not([data-selected-125]):focus-visible{
  background:#f1f6fa!important;color:#173f67!important;box-shadow:none!important
}

/* Stable list shell: use available width first, then scroll only when data truly
   cannot shrink further. Empty states retain the exact same containing width. */
body.authenticated-110 .table-wrap{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  overflow-x:auto!important;overflow-y:visible!important;scrollbar-gutter:stable both-edges;border-radius:0!important
}
body.authenticated-110 .data-table{width:100%!important;max-width:none!important;table-layout:auto!important;border-radius:0!important}
body.authenticated-110 .data-table th,body.authenticated-110 .data-table td{box-sizing:border-box!important}
body.authenticated-110 .data-table th:last-child,body.authenticated-110 .data-table td:last-child{padding-right:12px!important}
body.authenticated-110 .ops-empty-state-115{width:100%!important;min-height:56px!important;box-sizing:border-box!important}

/* Lists no longer reserve desktop-only 1100px+ widths. The minimums below are
   modest safety rails; narrower viewports get a contained horizontal scroller. */
body.authenticated-110 .accounts-table-121{min-width:860px!important}
body.authenticated-110 .transactions-table-123,body.authenticated-110 .transactions-table-125{min-width:820px!important}
body.authenticated-110 .requests-table-123{min-width:790px!important}
body.authenticated-110 .inventory-table-125{min-width:850px!important}
body.authenticated-110 .admin-vouchers-table-121{min-width:820px!important}

/* Action cells have intentional room and start at the left edge. */
.actions-col-125,.actions-col-123{
  min-width:108px!important;width:108px!important;max-width:132px!important;text-align:left!important;white-space:nowrap!important
}
th.actions-col-125,th.actions-col-123{text-align:left!important}
td.actions-col-125 .icon-actions-110,td.actions-col-123 .icon-actions-110,
.data-table td:last-child>.icon-actions-110{justify-content:flex-start!important;margin-left:0!important}
.select-col-125,.select-col-123{width:40px!important;min-width:40px!important;max-width:40px!important;text-align:left!important}
.account-self-row-125{background:#fafcfd!important}.account-self-actions-125{opacity:.46!important}

/* Accounts should flex instead of sacrificing the Actions edge. */
.accounts-table-121 th:nth-child(2),.accounts-table-121 td:nth-child(2){width:62px!important;white-space:nowrap!important}
.accounts-table-121 th:nth-child(3),.accounts-table-121 td:nth-child(3){min-width:150px!important}
.accounts-table-121 th:nth-child(5),.accounts-table-121 td:nth-child(5){min-width:170px!important}
.accounts-table-121 th:nth-child(6),.accounts-table-121 td:nth-child(6){min-width:105px!important}
.accounts-table-121 th:nth-child(7),.accounts-table-121 td:nth-child(7),
.accounts-table-121 th:nth-child(8),.accounts-table-121 td:nth-child(8),
.accounts-table-121 th:nth-child(9),.accounts-table-121 td:nth-child(9){min-width:132px!important;white-space:nowrap!important}

/* Transaction presentation: user and combined entity get priority; category is
   deliberately compact; amount remains plain text and never looks like a link. */
.transactions-table-123 .tx-id-col-123{min-width:72px!important;width:78px!important;white-space:nowrap!important}
.transactions-table-123 .tx-time-col-123{min-width:138px!important;width:142px!important;white-space:nowrap!important}
.transactions-table-123 .tx-type-col-123{min-width:88px!important;width:94px!important;white-space:nowrap!important}
.transactions-table-123 .tx-user-col-123{min-width:145px!important;width:16%!important}
.transactions-table-123 .tx-voucher-merchant-col-125{min-width:235px!important;width:29%!important}
.transactions-table-123 .tx-category-col-123{min-width:108px!important;width:13%!important;max-width:150px!important;white-space:normal!important}
.transactions-table-123 .tx-qty-col-123{min-width:48px!important;width:54px!important;text-align:left!important;white-space:nowrap!important}
.transactions-table-123 .tx-amount-col-123{min-width:92px!important;width:100px!important;text-align:left!important;white-space:nowrap!important}
.tx-id-link-125{appearance:none;border:0;background:transparent;padding:0;color:#356b91;font:inherit;cursor:pointer;text-align:left;text-decoration:none}
.tx-id-link-125:hover,.tx-id-link-125:focus-visible{text-decoration:underline;color:#174e78}
.tx-voucher-merchant-125{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.tx-voucher-merchant-125>span,.tx-voucher-merchant-125>a{min-width:0;max-width:100%}
.entity-inline-id-125{font-size:.69rem!important;color:#7a8e9f!important;font-weight:550!important;white-space:nowrap!important}
.tx-amount-122,.tx-amount-122.success,.tx-amount-122.error,.tx-amount-122.warning,.tx-amount-122.neutral{
  border:0!important;border-bottom:0!important;text-decoration:none!important;padding-bottom:0!important
}

/* Request and inventory widths remain useful without dominating the viewport. */
.requests-table-123 .request-id-col-123{min-width:110px!important;width:118px!important}
.requests-table-123 .request-type-col-123{min-width:108px!important;width:13%!important}
.requests-table-123 .requester-col-123{min-width:155px!important;width:18%!important}
.requests-table-123 .request-amount-col-123{min-width:80px!important;width:90px!important}
.requests-table-123 .request-item-col-123{min-width:175px!important;width:23%!important}
.requests-table-123 .request-modified-col-123{min-width:140px!important;width:145px!important}
.requests-table-123 .request-status-col-123{min-width:82px!important;width:88px!important}
.inventory-description-125{min-width:220px!important;width:28%!important}
.inventory-description-125 small,.entity-two-line-125 small{display:block;margin-top:3px;color:#7a8e9f;font-size:.69rem;line-height:1.2}

/* Settings sections are peers in the visual hierarchy. */
.settings-payment-methods-121{margin-top:22px!important}
.settings-reserved-1111{margin-top:22px!important}
.settings-reserved-1111>span{font-size:.74rem!important;font-weight:800!important;color:#405a70!important;letter-spacing:0!important}
.settings-payment-methods-121>legend{font-size:.74rem!important;font-weight:800!important;color:#405a70!important}

/* Buyer voucher toolbar: controls own distinct tracks and wrap as whole controls
   before they can overlap. */
.wallet-toolbar-114{
  display:grid!important;grid-template-columns:minmax(190px,1.45fr) minmax(175px,1fr) minmax(172px,.9fr) minmax(172px,.9fr) minmax(125px,.72fr) 76px!important;
  gap:8px!important;align-items:center!important;overflow:visible!important
}
.wallet-toolbar-114>*{min-width:0!important;width:100%!important;max-width:none!important}
.wallet-toolbar-114 .wallet-status-filter-123,.wallet-toolbar-114 .wallet-sort-filter-123,
.wallet-toolbar-114 .wallet-dir-filter-123{flex:auto!important;width:100%!important;min-width:0!important;max-width:none!important}
.wallet-date-state-121{font-size:.69rem!important;font-weight:750!important;text-decoration:none!important}
.wallet-date-state-121.purchased{color:#236a49!important}
.wallet-date-state-121.redeemed{color:#9a465d!important}
.wallet-voucher-bottom-113{display:flex!important;align-items:baseline!important;justify-content:flex-start!important;width:100%!important;text-align:left!important}
.wallet-voucher-bottom-113 .voucher-price{margin:0!important;text-align:left!important;align-self:flex-start!important}
.wallet-voucher-bottom-113 .item-id{margin-left:auto!important;text-align:right!important}

@media(max-width:1220px){
  .wallet-toolbar-114{grid-template-columns:minmax(210px,1.3fr) minmax(180px,1fr) minmax(175px,1fr)!important}
  .wallet-toolbar-114>*{width:100%!important}
}
@media(max-width:760px){
  .wallet-toolbar-114{grid-template-columns:1fr 1fr!important}
  .wallet-toolbar-114 .wallet-search-114{grid-column:1/-1!important}
  body.authenticated-110 .accounts-table-121{min-width:830px!important}
  body.authenticated-110 .transactions-table-123,body.authenticated-110 .transactions-table-125{min-width:800px!important}
  body.authenticated-110 .requests-table-123{min-width:770px!important}
  body.authenticated-110 .inventory-table-125{min-width:820px!important}
}
@media(max-width:520px){.wallet-toolbar-114{grid-template-columns:1fr!important}.wallet-toolbar-114 .wallet-search-114{grid-column:auto!important}}
.tx-voucher-merchant-125 small{display:inline!important;margin:0 0 0 3px!important;color:#7a8e9f!important;font-size:.69rem!important;line-height:inherit!important;font-weight:550!important;white-space:nowrap!important}
.tx-merchant-second-125{margin-top:1px!important;color:#526f88!important;font-size:.76rem!important}

/* ========================================================================== */
/* RYU Portal 1.2.6 / Landing 1.0.30 — canonical final UI rules.              */
/* ========================================================================== */
:root{--ryu-fixed-header-h:72px;--ryu-shell-max:1320px}

/* Public and authenticated routes use the same fixed full-width header. */
.app-header,body.authenticated-110 .app-header{
  position:fixed!important;inset:0 0 auto 0!important;top:0!important;left:0!important;right:0!important;
  width:100%!important;height:var(--ryu-fixed-header-h)!important;z-index:2400!important;
  background:rgba(255,255,255,.98)!important;border:0!important;border-bottom:0!important;
  box-shadow:none!important;backdrop-filter:blur(14px)!important
}
.app-header::before,.app-header::after,.app-header .header-separator{display:none!important;content:none!important}
.header-inner{
  width:100%!important;max-width:var(--shell-max)!important;height:var(--ryu-fixed-header-h)!important;
  margin:0 auto!important;padding-left:48px!important;padding-right:48px!important;box-sizing:border-box!important
}
#authenticated-stage-116{
  width:100%!important;max-width:none!important;min-width:0!important;
  padding-top:var(--ryu-fixed-header-h)!important;box-sizing:border-box!important
}
.authenticated-stage-116.has-persistent-side-116{
  width:100%!important;max-width:var(--ryu-shell-max)!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:22px!important;padding-right:22px!important;box-sizing:border-box!important
}
.authenticated-stage-116.has-persistent-side-116>.persistent-side-116{
  top:calc(var(--ryu-fixed-header-h) + 12px)!important;
  max-height:calc(100dvh - var(--ryu-fixed-header-h) - 24px)!important
}
body.authenticated-110 .ops-content-116,body.authenticated-110 .authenticated-page-116,
body.authenticated-110 .authenticated-stage-116.has-persistent-side-116>.app-main{min-width:0!important;width:100%!important;max-width:100%!important}

/* Selected sidebar route: route-derived bold text only. Hover is independent. */
#persistent-side-116 [data-side-route-116]{
  background:transparent!important;box-shadow:none!important;color:#526981!important;font-weight:750!important;
  transition:background-color .13s ease,color .13s ease!important
}
#persistent-side-116 [data-side-route-116][data-selected-126],
#persistent-side-116 [data-side-route-116][data-selected-126]:hover,
#persistent-side-116 [data-side-route-116][data-selected-126]:focus-visible{
  background:transparent!important;box-shadow:none!important;color:#173f64!important;font-weight:900!important
}
#persistent-side-116 [data-side-route-116]:not([data-selected-126]):hover,
#persistent-side-116 [data-side-route-116]:not([data-selected-126]):focus-visible{
  background:#eef5fa!important;box-shadow:none!important;color:#174f77!important;font-weight:750!important
}

/* Short auth screens: fill only the viewport under the fixed header and centre
   the card with a small downward optical offset. Registration is unaffected. */
body:has(.auth-center-shell.auth-background-119){height:100dvh!important;min-height:100dvh!important;overflow:hidden!important}
body:has(.auth-center-shell.auth-background-119) #app-shell{height:100dvh!important;min-height:0!important;overflow:hidden!important}
body:has(.auth-center-shell.auth-background-119) #authenticated-stage-116{
  height:100dvh!important;min-height:0!important;padding-top:var(--ryu-fixed-header-h)!important;overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .app-main{
  height:calc(100dvh - var(--ryu-fixed-header-h))!important;min-height:0!important;overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{
  display:grid!important;place-items:center!important;align-content:center!important;
  width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;
  margin:0!important;padding:28px 20px 48px!important;overflow:hidden!important;background-attachment:scroll!important
}
body:has(.auth-center-shell.auth-background-119) .auth-card{transform:translateY(clamp(8px,2.2vh,24px))!important}
body:has(.auth-center-shell.auth-background-119) .app-footer{
  position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:35!important;
  margin:0 auto!important;padding:9px 20px 11px!important;background:transparent!important
}

/* List surfaces own the whole width. Reserve scrollbar stability on the page,
   never by carving gutters into each table wrapper. */
html{scrollbar-gutter:stable!important}
body.authenticated-110 .table-wrap,body.authenticated-110 .listview-square-126{
  width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:0!important;
  overflow-x:auto!important;overflow-y:visible!important;scrollbar-gutter:auto!important;border-radius:0!important;box-sizing:border-box!important
}
body.authenticated-110 .data-table,body.authenticated-110 .compact-table-110{
  width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;table-layout:auto!important
}
body.authenticated-110 .data-table thead,body.authenticated-110 .data-table thead tr{background:#f1f5f8!important}
body.authenticated-110 .data-table th{background:#f1f5f8!important;border-radius:0!important}
body.authenticated-110 .data-table th:first-child,body.authenticated-110 .data-table td:first-child{padding-left:12px!important}
body.authenticated-110 .data-table th:last-child,body.authenticated-110 .data-table td:last-child{padding-right:12px!important}
body.authenticated-110 .ops-empty-state-115{width:100%!important;box-sizing:border-box!important;margin-left:0!important;margin-right:0!important}

/* Responsive widths: fit the content region first; scroll only below useful
   minimums. The final Actions column always has deliberate room. */
body.authenticated-110 .accounts-table-121{min-width:820px!important}
body.authenticated-110 .transactions-table-126{min-width:760px!important}
body.authenticated-110 .requests-table-126{min-width:760px!important}
body.authenticated-110 .inventory-table-126{min-width:800px!important}
body.authenticated-110 .admin-vouchers-table-121{min-width:790px!important}
.actions-col-126{min-width:116px!important;width:116px!important;max-width:138px!important;text-align:left!important;white-space:nowrap!important}
th.actions-col-126,td.actions-col-126{text-align:left!important}
td.actions-col-126 .icon-actions-110{justify-content:flex-start!important;margin-left:0!important;gap:7px!important}
.select-col-126{width:40px!important;min-width:40px!important;max-width:40px!important;text-align:left!important}

/* 1.2.6 account menus: one icon trigger, compact text-only choices. */
.toolbar-popover-126{position:relative!important;display:inline-flex!important;align-items:center!important}
.toolbar-menu-126{
  position:absolute!important;right:0!important;top:calc(100% + 6px)!important;z-index:3100!important;
  display:grid!important;min-width:max-content!important;width:max-content!important;padding:5px!important;gap:2px!important;
  border:1px solid #d8e4ec!important;border-radius:8px!important;background:#fff!important;
  box-shadow:0 10px 26px rgba(22,55,82,.14)!important
}
.toolbar-menu-126[hidden]{display:none!important}
.toolbar-menu-126 button,.toolbar-menu-126 a{
  display:block!important;width:100%!important;min-width:0!important;padding:7px 10px!important;border:0!important;border-radius:6px!important;
  background:transparent!important;color:#244c6c!important;text-align:left!important;font-size:.76rem!important;
  line-height:1.2!important;font-weight:650!important;white-space:nowrap!important
}
.toolbar-menu-126 button:hover,.toolbar-menu-126 button:focus-visible,.toolbar-menu-126 a:hover,.toolbar-menu-126 a:focus-visible{background:#eef5fa!important;color:#173f64!important}
.account-bulk-126{display:inline-flex!important;gap:6px!important;align-items:center!important}

/* Account store link remains visually secondary but clearly interactive. */
.account-name-cell-122 small .public-entity-link-121{text-decoration:none!important;color:#6b8498!important}
.account-name-cell-122 small .public-entity-link-121:hover,.account-name-cell-122 small .public-entity-link-121:focus-visible{color:#1f5f8b!important;text-decoration:underline!important;text-underline-offset:2px!important}

/* Compact, role-specific account summary. */
#account-popover-110 .account-popover-id-126{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:1px!important;
  width:100%!important;min-width:0!important;padding:8px 10px 10px!important
}
#account-popover-110 .account-popover-name-126{font-size:.88rem!important;line-height:1.25!important;font-weight:850!important;color:#173f64!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-role-126{font-size:.68rem!important;line-height:1.2!important;color:#72869a!important;font-weight:650!important}
#account-popover-110 .account-popover-summary-126{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;
  width:100%!important;margin-top:9px!important;padding-top:7px!important;border-top:1px solid #edf2f6!important;
  color:#3f6f8d!important;font-size:.72rem!important;font-weight:800!important;line-height:1.25!important
}
#account-popover-110 .account-popover-summary-126 span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-summary-126 span:last-child{text-align:right!important}

/* Current table renderers. */
.transactions-table-126 .tx-id-col-126{min-width:72px!important;width:76px!important;white-space:nowrap!important}
.transactions-table-126 .tx-time-col-126{min-width:138px!important;width:142px!important;white-space:nowrap!important}
.transactions-table-126 .tx-type-col-126{min-width:88px!important;width:92px!important;white-space:nowrap!important}
.transactions-table-126 .tx-user-col-126{min-width:160px!important;width:17%!important}
.transactions-table-126 .tx-voucher-merchant-col-126{min-width:250px!important;width:31%!important}
.transactions-table-126 .tx-category-col-126{min-width:105px!important;width:13%!important;max-width:145px!important}
.transactions-table-126 .tx-qty-col-126{min-width:48px!important;width:52px!important;white-space:nowrap!important}
.transactions-table-126 .tx-amount-col-126{min-width:92px!important;width:98px!important;white-space:nowrap!important;text-align:left!important}
.tx-id-link-126{appearance:none!important;border:0!important;background:transparent!important;padding:0!important;color:#356b91!important;font:inherit!important;cursor:pointer!important;text-align:left!important;text-decoration:none!important}
.tx-id-link-126:hover,.tx-id-link-126:focus-visible{text-decoration:underline!important;color:#174e78!important}
.tx-voucher-merchant-126{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;min-width:0!important}
.tx-voucher-merchant-126>div{min-width:0!important;max-width:100%!important}
.tx-merchant-second-126{color:#526f88!important;font-size:.76rem!important;margin-top:1px!important}
.entity-inline-id-126{font-size:.68rem!important;color:#8194a5!important;font-weight:550!important;white-space:nowrap!important}
.entity-two-line-126 small{display:block!important;margin-top:2px!important;color:#7a8e9f!important;font-size:.69rem!important;line-height:1.2!important;font-weight:500!important}

.requests-table-126 .request-id-col-126{min-width:110px!important;width:118px!important}
.requests-table-126 .request-type-col-126{min-width:115px!important;width:14%!important}
.requests-table-126 .requester-col-126{min-width:160px!important;width:19%!important}
.requests-table-126 .request-amount-col-126{min-width:82px!important;width:90px!important}
.requests-table-126 .request-item-col-126{min-width:180px!important;width:23%!important}
.requests-table-126 .request-modified-col-126{min-width:142px!important;width:148px!important;white-space:nowrap!important}
.requests-table-126 .request-status-col-126{min-width:88px!important;width:94px!important}

.inventory-table-126 th:nth-child(2),.inventory-table-126 td:nth-child(2){min-width:76px!important;width:82px!important;white-space:nowrap!important}
.inventory-table-126 th:nth-child(3),.inventory-table-126 td:nth-child(3){min-width:230px!important;width:31%!important}
.inventory-table-126 th:nth-child(4),.inventory-table-126 td:nth-child(4){min-width:125px!important;width:15%!important}
.inventory-table-126 th:nth-child(5),.inventory-table-126 td:nth-child(5){min-width:82px!important;width:86px!important}
.inventory-table-126 th:nth-child(6),.inventory-table-126 td:nth-child(6){min-width:86px!important;width:90px!important}

/* Wallet/recent tables inherit the same edge-to-edge header surface. */
.wallet-table-110,.wallet-recent-table-121,.recent-transactions-110 table{width:100%!important;margin:0!important}
.wallet-table-110 thead,.wallet-recent-table-121 thead,.recent-transactions-110 thead{background:#f1f5f8!important}
.wallet-table-110 th,.wallet-recent-table-121 th,.recent-transactions-110 th{background:#f1f5f8!important}

/* Buyer vouchers: stable toolbar tracks and left-aligned amount. */
.wallet-toolbar-114{
  display:grid!important;grid-template-columns:minmax(220px,1.55fr) minmax(180px,1.05fr) minmax(176px,.92fr) minmax(176px,.92fr) minmax(132px,.74fr) 76px!important;
  gap:8px!important;align-items:center!important;overflow:visible!important
}
.wallet-toolbar-114>*{min-width:0!important;width:100%!important;max-width:none!important}
.wallet-status-filter-126,.wallet-sort-filter-126,.wallet-dir-filter-126{width:100%!important;min-width:0!important;max-width:none!important}
.wallet-voucher-bottom-113{display:flex!important;align-items:baseline!important;justify-content:flex-start!important;width:100%!important;text-align:left!important}
.wallet-voucher-bottom-113 .voucher-price,.wallet-voucher-card-113 .voucher-price,.wallet-voucher-card-114 .voucher-price{
  margin-left:0!important;margin-right:auto!important;text-align:left!important;align-self:flex-start!important;justify-self:start!important
}
.wallet-voucher-bottom-113 .item-id{margin-left:auto!important;text-align:right!important}
.wallet-date-state-121{font-size:.68rem!important}
.wallet-date-state-121.purchased{color:#236a49!important}

@media(max-width:1100px){
  body.authenticated-110 .header-inner,.authenticated-stage-116.has-persistent-side-116{padding-left:16px!important;padding-right:16px!important}
  .wallet-toolbar-114{grid-template-columns:minmax(220px,1.3fr) minmax(180px,1fr) minmax(176px,1fr)!important}
}
@media(max-width:820px){
  :root{--ryu-fixed-header-h:64px}
  body.authenticated-110 .header-inner,.authenticated-stage-116.has-persistent-side-116{padding-left:12px!important;padding-right:12px!important}
  .wallet-toolbar-114{grid-template-columns:1fr 1fr!important}
  .wallet-toolbar-114 .wallet-search-114{grid-column:1/-1!important}
  body.authenticated-110 .accounts-table-121{min-width:800px!important}
  body.authenticated-110 .transactions-table-126{min-width:760px!important}
  body.authenticated-110 .requests-table-126{min-width:740px!important}
  body.authenticated-110 .inventory-table-126{min-width:790px!important}
}
@media(max-width:520px){
  .wallet-toolbar-114{grid-template-columns:1fr!important}
  .wallet-toolbar-114 .wallet-search-114{grid-column:auto!important}
  body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{padding:14px 12px 44px!important}
  body:has(.auth-center-shell.auth-background-119) .auth-card{transform:translateY(6px)!important}
}


/* ========================================================================== */
/* RYU Portal 1.2.7 / Landing 1.0.30 — focused auth/chrome alignment repair. */
/* ========================================================================== */

/* Short authentication views occupy the exact scene below the fixed header.
   The page wrapper and scene both fill that area so the compact card can be
   truly centred vertically instead of being centred inside its own content
   height.  The footer overlays the scene and does not participate in sizing. */
body:has(.auth-center-shell.auth-background-119) .page:has(> .auth-center-shell.auth-background-119){
  width:100%!important;max-width:none!important;height:calc(100dvh - var(--ryu-fixed-header-h))!important;
  min-height:calc(100dvh - var(--ryu-fixed-header-h))!important;margin:0!important;padding:0!important;
  overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{
  width:100%!important;max-width:none!important;height:100%!important;min-height:100%!important;
  margin:0!important;padding:0 20px!important;display:grid!important;grid-template-rows:minmax(0,1fr)!important;
  place-items:center!important;align-content:stretch!important;justify-content:stretch!important;overflow:hidden!important
}
body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119>.auth-wide-card,
body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119>.auth-login-card{
  align-self:center!important;justify-self:center!important;margin:0!important;transform:none!important
}

/* The authenticated stage used to be reset to max-width:100% and padding-top:0
   by a more-specific 1.2.5 selector. Match that specificity here so the fixed
   header and the content shell share exactly the same horizontal bounds, and
   both sidebar and page content start below the header on the same baseline. */
body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
  width:100%!important;max-width:var(--ryu-shell-max)!important;margin-left:auto!important;margin-right:auto!important;
  padding-top:calc(var(--ryu-fixed-header-h) + 14px)!important;padding-left:22px!important;padding-right:22px!important;
  box-sizing:border-box!important
}
body.authenticated-110 .header-inner{
  width:100%!important;max-width:var(--ryu-shell-max)!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:22px!important;padding-right:22px!important;box-sizing:border-box!important
}
body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116>.persistent-side-116,
body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116>.app-main{
  align-self:start!important;margin-top:0!important
}

/* Selected sidebar item: persistent route state is bold only.  aria-current is
   also accepted so the visual state survives any older helper that rebuilds
   the nav before the final route synchroniser runs. */
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116][data-selected-126],
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"],
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].active[aria-current="page"]{
  font-weight:900!important;color:#173f64!important;background:transparent!important;box-shadow:none!important
}
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116][data-selected-126]:hover,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"]:hover{
  font-weight:900!important;background:#eef5fa!important;box-shadow:none!important
}

@media(max-width:980px){
  body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116,
  body.authenticated-110 .header-inner{padding-left:16px!important;padding-right:16px!important}
}
@media(max-width:760px){
  body:has(.auth-center-shell.auth-background-119) .auth-center-shell.auth-background-119{padding:10px 12px 34px!important;overflow:auto!important}
  body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116,
  body.authenticated-110 .header-inner{padding-left:12px!important;padding-right:12px!important}
}

/* ========================================================================== */
/* RYU Portal 1.2.8 / Landing 1.0.30 — interaction and wide-shell hotfix.     */
/* ========================================================================== */

/* Use the available desktop viewport for authenticated operational lists.
   Header and page shell share the same small gutter so their edges align. */
body.authenticated-110 .header-inner,
body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
  width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;
  padding-left:18px!important;padding-right:18px!important;box-sizing:border-box!important
}
body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
  column-gap:18px!important
}

/* The selected authenticated route is deliberately bold-only.  The dedicated
   class is applied by the final route synchroniser and avoids legacy active/
   current class styling from earlier releases. */
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-selected-128,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-selected-128:visited{
  font-weight:900!important;color:#123f67!important;background:transparent!important;box-shadow:none!important
}
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-selected-128:hover,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-selected-128:focus-visible{
  font-weight:900!important;background:#eef5fa!important;color:#123f67!important
}

/* Rebuilding chrome must never stack multiple wallet summary rows in the
   account popover. Keep the identity block compact even after many renders. */
#account-popover-110 .account-popover-id-126>.account-popover-summary-126{
  flex:0 0 auto!important
}

@media(max-width:980px){
  body.authenticated-110 .header-inner,
  body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
    padding-left:14px!important;padding-right:14px!important
  }
}
@media(max-width:760px){
  body.authenticated-110 .header-inner,
  body.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
    padding-left:10px!important;padding-right:10px!important
  }
}


/* ========================================================================== */
/* RYU Portal 1.2.9 / Landing 1.0.32 — canonical popover/sidebar/voucher UI. */
/* ========================================================================== */

/* Public chrome returns to the original 1440px shell. Authenticated chrome is
   intentionally widened by the authenticated rules above. */
body:not(.authenticated-110) .header-inner{
  width:100%!important;max-width:var(--shell-max)!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:48px!important;padding-right:48px!important
}
@media(max-width:900px){body:not(.authenticated-110) .header-inner{padding-left:22px!important;padding-right:22px!important}}
@media(max-width:700px){body:not(.authenticated-110) .header-inner{padding-left:16px!important;padding-right:16px!important}}

/* Exactly one final route marker owns selected sidebar typography. */
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]{font-weight:650!important}
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-current-129,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-current-129:visited,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[aria-current="page"]{
  font-weight:900!important;color:#173f64!important;background:transparent!important;box-shadow:none!important
}
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-current-129:hover,
body.authenticated-110 #persistent-side-116 .side-nav-116 nav a.is-current-129:focus-visible{background:#eef5fa!important;font-weight:900!important}

/* Canonical account popover: no historical grid classes are present in this DOM. */
#account-popover-110.account-popover-129{width:min(290px,calc(100vw - 24px))!important;padding:8px!important}
#account-popover-110 .account-popover-id-129{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important;
  width:100%!important;min-width:0!important;margin:0 0 5px!important;padding:9px 10px 10px!important;
  border-bottom:1px solid #e7edf3!important
}
#account-popover-110 .account-popover-name-129{font-size:.9rem!important;line-height:1.25!important;font-weight:850!important;color:#173f64!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-role-129{margin:0!important;font-size:.68rem!important;line-height:1.2!important;color:#75899c!important;font-weight:650!important}
#account-popover-110 .account-popover-summary-129{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;
  width:100%!important;margin-top:9px!important;padding-top:7px!important;border-top:1px solid #edf2f6!important;
  color:#3f6f8d!important;font-size:.72rem!important;font-weight:800!important;line-height:1.25!important
}
#account-popover-110 .account-popover-summary-129 span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-summary-129 span:last-child{text-align:right!important}

/* Export menu rows are transparent until hover/focus. */
body.authenticated-110 .export-options-114 a,
body.authenticated-110 .quick-actions .export-options-114 a{background:transparent!important;box-shadow:none!important}
body.authenticated-110 .export-options-114 a:hover,
body.authenticated-110 .export-options-114 a:focus-visible,
body.authenticated-110 .quick-actions .export-options-114 a:hover,
body.authenticated-110 .quick-actions .export-options-114 a:focus-visible{background:#e8f2f9!important}

/* Merchant inventory is title-first again. */
.inventory-table-126 .inventory-title-129{min-width:220px!important}
.inventory-table-126 .inventory-title-129 small{display:block!important;margin-top:2px!important;color:#7c8fa2!important;font-size:.64rem!important}

/* Buyer voucher selection mode uses one native checkbox, a pressed toolbar state,
   and a live count beside the Vouchers heading. */
.wallet-select-wrap-122>span{display:none!important}
.wallet-select-wrap-122 input.wallet-select{display:block!important;width:16px!important;height:16px!important;margin:0!important}
body.authenticated-110 [data-wallet-select-mode-126][aria-pressed="true"]{
  background:#dcecf7!important;border-color:#7ca9c8!important;color:#123f67!important;box-shadow:inset 0 0 0 1px rgba(23,79,119,.08)!important
}
.wallet-selection-count-129{display:inline-block!important;margin-left:12px!important;color:#6c8194!important;font-size:.72rem!important;font-weight:700!important;vertical-align:middle!important}
.wallet-selection-count-129[hidden]{display:none!important}

/* ========================================================================== */
/* RYU Portal 1.2.10 / Landing 1.0.33 — route chrome, histories and selection. */
/* ========================================================================== */

/* Public pages keep the original public shell even while signed in. The wide
   operational shell is selected by route, not merely by authentication. */
body.authenticated-110:not(.portal-route-1210) .header-inner{
  width:100%!important;max-width:var(--shell-max)!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:48px!important;padding-right:48px!important;box-sizing:border-box!important
}
body.portal-route-1210.authenticated-110 .header-inner,
body.portal-route-1210.authenticated-110 #authenticated-stage-116.authenticated-stage-116.has-persistent-side-116{
  width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;
  padding-left:18px!important;padding-right:18px!important;box-sizing:border-box!important
}
@media(max-width:900px){body.authenticated-110:not(.portal-route-1210) .header-inner{padding-left:22px!important;padding-right:22px!important}}
@media(max-width:700px){body.authenticated-110:not(.portal-route-1210) .header-inner{padding-left:16px!important;padding-right:16px!important}}

/* A blank avatar is still unmistakably the account control. */
#account-menu-trigger-110{
  width:34px!important;height:34px!important;min-width:34px!important;padding:2px!important;border:2px solid #9db8cd!important;
  border-radius:50%!important;background:#fff!important;display:grid!important;place-items:center!important;box-sizing:border-box!important
}
#account-menu-trigger-110:hover,#account-menu-trigger-110:focus-visible{border-color:#3f769e!important;box-shadow:0 0 0 3px rgba(63,118,158,.13)!important}
#account-menu-trigger-110 .top-avatar-110{width:26px!important;height:26px!important;min-width:26px!important;border-radius:50%!important;object-fit:cover!important}

/* Canonical compact account summary: no horizontal rules and no verbose role
   labels. Icons carry accessible labels through the surrounding cell. */
#account-popover-110.account-popover-1210{width:min(278px,calc(100vw - 24px))!important}
#account-popover-110 .account-popover-id-1210{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important;width:100%!important;
  margin:0 0 4px!important;padding:8px 10px 7px!important;border:0!important
}
#account-popover-110 .account-popover-summary-1210{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;
  width:100%!important;margin-top:5px!important;padding:0!important;border:0!important;color:#56758d!important;
  font-size:.64rem!important;font-weight:600!important;line-height:1.15!important
}
#account-popover-110 .popover-summary-cell-1210{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important}
#account-popover-110 .popover-summary-cell-1210:last-child{justify-content:flex-end!important;text-align:right!important}
#account-popover-110 .popover-summary-cell-1210>span{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .popover-summary-icon-1210{width:14px!important;height:14px!important;min-width:14px!important;flex:0 0 14px!important;color:#477391!important}

/* One shared checkbox column width prevents the data columns moving between
   Accounts, Requests, Transactions and Inventory. */
.select-col-126{width:42px!important;min-width:42px!important;max-width:42px!important;padding-left:10px!important;padding-right:8px!important;text-align:center!important;box-sizing:border-box!important}
.select-col-126 input[type="checkbox"]{margin:0!important}

/* Buyer voucher card typography mirrors public cards and reserves more width
   for lifecycle status than the sort selector. */
body.portal-route-1210 .wallet-voucher-card-116 .merchant-line,
body.portal-route-1210 .wallet-voucher-card-116 .merchant-line a{font-size:.72rem!important;color:#6e8192!important;line-height:1.25!important}
body.portal-route-1210 .wallet-voucher-card-116 .merchant-line{margin-top:3px!important}
body.portal-route-1210 .wallet-voucher-card-116 .wallet-title-slot-122 h3{margin-bottom:0!important}
body.portal-route-1210 .wallet-toolbar-114{grid-template-columns:minmax(240px,1.65fr) minmax(180px,1fr) 190px 142px minmax(126px,.72fr) 74px!important}
body.portal-route-1210 .wallet-status-filter-126{min-width:190px!important;width:190px!important}
body.portal-route-1210 .wallet-sort-filter-126{min-width:142px!important;width:142px!important}
@media(max-width:1120px){body.portal-route-1210 .wallet-toolbar-114{grid-template-columns:minmax(230px,1.4fr) minmax(180px,1fr) 190px 142px!important}}

/* New operational history list views. */
.history-toolbar-1210{display:grid!important;grid-template-columns:minmax(220px,1.5fr) 150px 150px minmax(155px,.75fr) minmax(145px,.7fr) 76px!important;gap:8px!important;align-items:center!important}
.history-toolbar-1210>*{min-width:0!important;width:100%!important}
.history-table-1210 th,.history-table-1210 td{vertical-align:top!important}
.audit-table-1210{min-width:1180px!important}
.audit-description-1210{min-width:220px!important;max-width:360px!important;white-space:normal!important}
.detail-list-110{display:grid!important;grid-template-columns:minmax(135px,.35fr) minmax(0,1fr)!important;gap:0!important;margin:0!important}
.detail-list-110>div{display:contents!important}
.detail-list-110 dt,.detail-list-110 dd{padding:8px 6px!important;border-bottom:1px solid #edf1f4!important;margin:0!important;word-break:break-word!important}
.detail-list-110 dt{font-weight:750!important;color:#49677f!important}
@media(max-width:900px){.history-toolbar-1210{grid-template-columns:1fr 1fr 1fr!important}.history-toolbar-1210>input:first-child{grid-column:1/-1!important}}
@media(max-width:620px){.history-toolbar-1210{grid-template-columns:1fr!important}.history-toolbar-1210>input:first-child{grid-column:auto!important}}

/* ========================================================================== */
/* RYU Portal 1.2.11 / Landing 1.0.34 — orders, expiry and list polish.       */
/* ========================================================================== */

/* Empty authenticated lists are plain text, never a dashed callout box. */
body.authenticated-110 .ops-empty-state-115,
body.authenticated-110 .ops-empty-text-1211{
  display:block!important;width:100%!important;min-height:0!important;margin:0!important;
  padding:20px 10px!important;border:0!important;border-radius:0!important;background:transparent!important;
  box-shadow:none!important;color:#6f8497!important;text-align:center!important;font-size:.78rem!important;font-weight:650!important
}

/* Disabled current-account actions keep the same symbols but read as disabled. */
.account-self-actions-126 .icon-btn-110[disabled],
.account-stat-button-1211[disabled]{opacity:.32!important;filter:grayscale(1)!important;cursor:not-allowed!important;background:transparent!important}
.account-stat-col-1211{width:86px!important;min-width:86px!important;text-align:left!important}

/* Admin category management. */
.category-description-1211{min-width:250px!important;max-width:440px!important;white-space:normal!important;line-height:1.35!important}
.category-thumb-1211{width:76px!important;height:48px!important;object-fit:cover!important;border-radius:7px!important;border:1px solid #dbe5ed!important;display:block!important}
.category-edit-translations-1211{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
@media(max-width:760px){.category-edit-translations-1211{grid-template-columns:1fr!important}}

/* Email details remain readable without allowing long content to widen the modal. */
.email-body-1211{margin-top:14px!important;padding-top:12px!important;border-top:1px solid #e6edf3!important}
.email-body-1211 h3{margin:0 0 8px!important;font-size:.82rem!important;color:#315471!important}
.email-body-1211 pre{margin:0!important;padding:12px!important;max-height:45vh!important;overflow:auto!important;white-space:pre-wrap!important;word-break:break-word!important;background:#f7f9fb!important;border:1px solid #e4ebf1!important;border-radius:8px!important;font:inherit!important;font-size:.78rem!important;color:#38536b!important}

/* Compact account popover required by 1.2.11. */
#account-popover-110.account-popover-1211{width:min(288px,calc(100vw - 24px))!important;padding:8px!important}
#account-popover-110 .account-popover-id-1211{display:flex!important;flex-direction:column!important;gap:5px!important;width:100%!important;padding:7px 9px 6px!important;margin:0!important;border:0!important}
#account-popover-110 .account-popover-name-role-1211{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:baseline!important;gap:10px!important}
#account-popover-110 .account-popover-name-role-1211 strong{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.88rem!important;color:#173f64!important}
#account-popover-110 .account-popover-name-role-1211 small{font-size:.64rem!important;font-weight:650!important;color:#788da0!important;text-align:right!important;white-space:nowrap!important}
#account-popover-110 .account-popover-summary-1211{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important;width:100%!important;font-size:.65rem!important;font-weight:600!important;line-height:1.2!important;color:#55748d!important}
#account-popover-110 .account-popover-summary-1211 span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#account-popover-110 .account-popover-summary-1211 span:last-child{text-align:right!important}
#account-popover-110 .account-popover-summary-1211 .merchant-balance-1211{color:#8a6847!important}
#account-popover-110 .account-popover-divider-1211{height:1px!important;margin:4px 8px 5px!important;background:#e6edf3!important;border:0!important}

/* Small acknowledgement notices: no decorative close control. */
.portal-notice-1211{width:min(420px,calc(100vw - 36px))!important;padding:4px 2px 2px!important}
.portal-notice-1211 h2{margin:0 0 7px!important;font-size:1rem!important}
.portal-notice-1211 p{margin:0!important;color:#49677f!important;font-size:.82rem!important;line-height:1.4!important}
.portal-notice-1211 .form-actions{margin-top:14px!important;justify-content:flex-start!important}
.notice-ok-1211{min-width:58px!important;min-height:34px!important;padding:6px 13px!important;font-size:.78rem!important}

/* Wallet recent-history affordance. */
.more-transactions-1211{display:inline-flex!important;align-items:center!important;gap:6px!important;margin-top:10px!important;padding:7px 11px!important;font-size:.75rem!important}
.more-transactions-1211 .ui-icon-110{width:15px!important;height:15px!important}

/* Buyer voucher amount and expiry occupy the left content edge; internal ID is gone. */
.wallet-voucher-bottom-1211{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:5px!important;width:100%!important;text-align:left!important}
.wallet-voucher-bottom-1211 .voucher-price{align-self:flex-start!important;margin:0!important;text-align:left!important}
.voucher-expiry-1211{font-size:.67rem!important;font-weight:720!important;line-height:1.2!important;white-space:nowrap!important}
.expiry-normal-1211{color:#28714e!important}.expiry-warning-1211{color:#a46c16!important}.expiry-urgent-1211{color:#b7353d!important}
.inventory-expiry-col-1211{min-width:92px!important;width:98px!important}

/* Settings: give the second data-entry column enough room to align its controls. */
.settings-fields-121{grid-template-columns:260px 210px 260px!important}
.settings-fields-121 .field.compact{max-width:210px!important}
@media(max-width:900px){.settings-fields-121{grid-template-columns:repeat(2,minmax(0,1fr))!important}.settings-fields-121 .field.compact{max-width:none!important}}
@media(max-width:620px){.settings-fields-121{grid-template-columns:1fr!important}}

/* Cart and checkout must clear the fixed header in signed-in public flow. */
body.cart-route-1211 #authenticated-stage-116{padding-top:var(--ryu-fixed-header-h)!important}
body.cart-route-1211 .app-main{padding-top:0!important}
.checkout-card-1211{width:min(620px,100%)!important;margin:8px 0 0!important;padding:22px!important;border:1px solid #dce6ee!important;border-radius:12px!important;background:#fff!important;box-shadow:0 12px 28px rgba(32,66,94,.06)!important}
.checkout-total-1211{display:grid!important;grid-template-columns:1fr auto!important;gap:4px 16px!important;align-items:baseline!important;padding-bottom:15px!important;margin-bottom:16px!important;border-bottom:1px solid #e5edf3!important;color:#49677f!important}
.checkout-total-1211 strong{font-size:1.35rem!important;color:#173f64!important}.checkout-total-1211 small{grid-column:1/-1!important;color:#7c8fa1!important}
.checkout-card-1211 fieldset{margin:0 0 16px!important;padding:0!important;border:0!important}.checkout-card-1211 legend{margin-bottom:8px!important;font-size:.78rem!important;font-weight:800!important;color:#315471!important}
.checkout-method-1211{display:flex!important;align-items:center!important;gap:9px!important;padding:10px 0!important;border-bottom:1px solid #edf2f6!important;font-size:.82rem!important;color:#38556e!important}

/* Order ID is deliberately compact but easy to discover. */
.tx-order-col-1211{min-width:135px!important;width:145px!important;white-space:nowrap!important}

/* Request action buttons have identical hit areas and icon scale. */
.requests-table-126 .actions-col-126 .icon-btn-110{width:34px!important;height:34px!important;min-width:34px!important;padding:7px!important;display:inline-grid!important;place-items:center!important}
.requests-table-126 .actions-col-126 .icon-btn-110 svg{width:17px!important;height:17px!important}

/* Keep new admin operational lists usable at desktop widths. */
body.portal-route-1210 .audit-table-1210{min-width:1180px!important}
body.portal-route-1210 .history-table-1210 .email-subject-link-1211{text-align:left!important;max-width:420px!important;white-space:normal!important}
.category-language-1211{padding:10px 12px;border:1px solid #e1e9f0;border-radius:8px;background:#fbfcfd}
.category-language-1211 h3{margin:0 0 9px;font-size:.78rem;color:#315471}
.category-language-1211 .field+ .field{margin-top:8px}

/* 1.2.11 language selector must remain below its trigger and above authenticated content. */
.app-header,.header-inner,.portal-language-dropdown{overflow:visible!important}
.portal-language-dropdown{z-index:210!important}
.portal-language-menu{top:calc(100% + 6px)!important;left:0!important;z-index:220!important;max-height:min(320px,calc(100vh - 80px));overflow:auto!important}

/* ========================================================================== */
/* RYU Portal 1.2.15 / Landing 1.0.36 — corrective presentation fixes.       */
/* ========================================================================== */

/* Public Contact uses a compact responsive form rather than filling the page. */
.portal-contact-layout.portal-contact-compact-1212{max-width:1180px!important;margin:0 auto!important;grid-template-columns:minmax(0,1.35fr) minmax(250px,.55fr)!important;gap:34px!important}
.portal-contact-compact-1212 .portal-contact-main{max-width:820px!important}
.portal-contact-compact-1212 .portal-contact-form{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px 14px!important}
.portal-contact-compact-1212 .portal-contact-form>.field:has(textarea[name="message"]),
.portal-contact-compact-1212 .portal-contact-form>.field:has(input[name="subject"]),
.portal-contact-compact-1212 .portal-contact-form>.captcha-block,
.portal-contact-compact-1212 .portal-contact-form>.form-actions,
.portal-contact-compact-1212 .portal-contact-form>#contact-message{grid-column:1/-1!important}
.portal-contact-compact-1212 .portal-contact-form textarea[name="message"]{min-height:112px!important}
.portal-contact-compact-1212 .portal-company-info{padding-left:12px!important;position:static!important}
.portal-contact-compact-1212 .company-info-block{padding:11px 0!important}
.portal-contact-compact-1212 .portal-company-info .company-brand{margin-bottom:10px!important}
@media(max-width:820px){.portal-contact-layout.portal-contact-compact-1212{grid-template-columns:1fr!important;gap:24px!important}.portal-contact-compact-1212 .portal-contact-main{max-width:none!important}.portal-contact-compact-1212 .portal-company-info{padding-left:0!important}}
@media(max-width:620px){.portal-contact-compact-1212 .portal-contact-form{grid-template-columns:1fr!important}.portal-contact-compact-1212 .portal-contact-form>*{grid-column:1!important}}

/* Buyer card amount and expiry are a single aligned footer row. */
.wallet-lower-122{display:block!important;position:relative!important;margin-top:auto!important}
.wallet-lower-122 .wallet-select-wrap-122{position:absolute!important;left:0!important;bottom:30px!important;z-index:2!important}
.wallet-voucher-bottom-1211{display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:space-between!important;gap:12px!important;width:100%!important;margin:0!important}
.wallet-voucher-bottom-1211 .voucher-price{margin:0!important;align-self:auto!important;text-align:left!important}
.wallet-voucher-bottom-1211 .voucher-expiry-1211{margin-left:auto!important;text-align:right!important}

/* Popover role is easier to read; balance/expiry remains compact. */
#account-popover-110.account-popover-1212 .account-popover-name-role-1211 small{font-size:.73rem!important;font-weight:750!important}
#account-popover-110.account-popover-1212 .account-popover-summary-1211{font-size:.60rem!important;font-weight:600!important;gap:7px!important}

/* Category and audit list refinements. */
.category-thumb-1211{background:#f7f9fb!important}
.audit-table-1210 td>small{display:block!important;margin-top:2px!important;font-size:.66rem!important;color:#7b90a4!important;font-weight:500!important}

/* Admin voucher expiry stays compact. */
.admin-voucher-expiry-1212{min-width:86px!important}
/* BEGIN RYU 1.2.18 CSS */
/* ========================================================================== */
/* RYU Portal 1.2.18 — approved change request CR-1.2.18 (final overrides).   */
/* ========================================================================== */

/* (1) Header menu icon: same visual weight as the cart icon. */
#mobile-menu-button.mobile-menu-button-1218{width:38px!important;height:38px!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;color:var(--ink)!important;align-items:center!important;justify-content:center!important;box-shadow:none!important}
#mobile-menu-button.mobile-menu-button-1218:hover,#mobile-menu-button.mobile-menu-button-1218:focus-visible{background:#eef4f9!important}
#mobile-menu-button.mobile-menu-button-1218 svg{width:22px;height:22px;display:block}
#mobile-menu-button.mobile-menu-button-1218 span{display:none!important}
@media(max-width:820px){#about-link.about-nav-link{display:none!important}}

/* (4) Account menu: name and role lead, balances are secondary. */
#account-popover-110.account-popover-1218{width:280px;padding:12px 10px 8px!important}
.account-popover-1218 .pop-identity-1218{display:flex;flex-direction:column;gap:2px;padding:2px 8px 10px}
.account-popover-1218 .pop-identity-1218 strong{font-size:1rem;font-weight:800;color:var(--ink);line-height:1.25;overflow-wrap:anywhere}
.account-popover-1218 .pop-identity-1218 span{font-size:.8rem;font-weight:600;color:var(--muted)}
.account-popover-1218 .pop-balances-1218{display:flex;gap:6px;padding:0 6px 8px;flex-wrap:wrap}
.account-popover-1218 .pop-balance-1218{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:1px;background:#f4f8fb;border-radius:8px;padding:6px 9px}
.account-popover-1218 .pop-balance-1218 small{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.account-popover-1218 .pop-balance-1218 strong{font-size:.8rem;font-weight:700;color:var(--ink);white-space:nowrap}
.account-popover-1218 .pop-balance-1218.merchant strong{color:#8a5a12}
.account-popover-1218 .pop-balances-1218.loading .pop-balance-1218{min-height:36px}
.account-popover-1218 .pop-link-1218{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border:0;background:none;border-radius:8px;color:var(--ink);font:inherit;font-size:.86rem;font-weight:700;text-decoration:none;cursor:pointer;text-align:left}
.account-popover-1218 .pop-link-1218:hover{background:#f2f6fa}
.account-popover-1218 .pop-link-1218 .ui-icon-110{width:18px;height:18px;flex:none}
.account-popover-1218 .account-popover-divider-1211{height:1px;background:#e3eaf1;margin:4px 6px}
/* (6) On phones the account menu carries the sidebar entries. */
.account-popover-1218 .pop-mobile-nav-1218{display:none}
@media(max-width:820px){
  #account-popover-110.account-popover-1218{max-height:calc(100vh - 84px);overflow:auto}
  .account-popover-1218 .pop-mobile-nav-1218{display:block;padding:0 0 4px}
  .account-popover-1218 .pop-mobile-nav-1218 .acting-as-118{padding:2px 6px 6px}
  .account-popover-1218 .pop-mobile-nav-1218 select{width:100%;height:36px;font-size:.84rem}
  .account-popover-1218 .pop-mobile-nav-1218 nav{display:flex;flex-direction:column}
  .account-popover-1218 .pop-mobile-nav-1218 nav a{padding:8px 10px;border-radius:8px;color:var(--ink);font-size:.86rem;font-weight:700;text-decoration:none}
  .account-popover-1218 .pop-mobile-nav-1218 nav a:hover{background:#f2f6fa}
  .account-popover-1218 .pop-mobile-nav-1218 nav a.active{background:#eaf2fa;color:#123a62}
}

/* (6) Logged-in pages on phones: no empty sidebar box, title row with toolbar. */
@media(max-width:820px){
  body.authenticated-110 #persistent-side-116{display:none!important}
  #authenticated-stage-116.has-persistent-side-116{display:block!important}
  body.authenticated-110 .authenticated-page-116,body.authenticated-110 .authenticated-page-110{padding-top:4px!important}
  body.authenticated-110 .ops-content-110 .page-head{flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:8px 10px!important;margin:0 0 10px!important;text-align:left!important}
  body.authenticated-110 .ops-content-110 .page-head>div:first-child{flex:1 1 0;min-width:0;text-align:left!important}
  body.authenticated-110 .ops-content-110 .ops-toolbar-110:not(.history-toolbar-1210){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important;gap:6px!important}
  body.authenticated-110 .ops-content-110 .ops-toolbar-110:not(.history-toolbar-1210)>input[name="q"],body.authenticated-110 .ops-content-110 .ops-toolbar-110:not(.history-toolbar-1210)>.search-progress-1120{grid-column:1/-1!important}
  body.authenticated-110 .ops-content-110 .page-head .quick-actions{width:auto!important;margin-left:auto!important;justify-content:flex-end!important;flex:0 0 auto}
  body.authenticated-110 .ops-content-110 .page-title{font-size:1.3rem!important;margin:0!important;text-align:left!important}
  body.authenticated-110 .ops-content-110 .page-subtitle{text-align:left!important}
  body.authenticated-110 .heading-inline-116{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:2px 8px!important;justify-content:flex-start!important}
  body.authenticated-110 .heading-inline-116 .show-archived-heading-116{flex-basis:100%;transform:none!important;font-size:.7rem!important;margin:0!important;font-weight:600}
}

/* (3) Explore category cards: compact, left-aligned counts, distinct merchant colour. */
.category-card-1218{display:flex!important;flex-direction:column!important}
.category-card-1218>img{height:200px!important;flex:0 0 200px;width:100%;object-fit:cover}
.category-card-1218 .category-card-body-1218{display:flex;flex-direction:column;gap:6px;padding:14px 18px 14px!important;flex:1 1 auto}
.category-card-1218 h2{min-height:0!important;margin:0!important;font-size:1.12rem}
.category-card-1218 p{min-height:0!important;margin:0!important;line-height:1.45}
.category-card-1218 .category-counts-1218{display:flex!important;gap:6px!important;flex-wrap:wrap;justify-content:flex-start!important;align-items:center!important;padding:0!important;min-height:0!important;margin:auto 0 0!important;padding-top:6px!important}
.category-card-1218 .category-counts-1218 span{margin:0!important}
.category-card-1218 .cat-voucher-count{background:#edf4fb!important;color:#315c84!important}
.category-card-1218 .cat-merchant-count{background:#edf8f2!important;color:#287153!important}
@media(max-width:620px){.category-card-1218>img{height:170px!important;flex-basis:170px}}

/* (7) Categories editor. */
.categories-table-1218 .select-col-126{width:38px}
.categories-table-1218 td.num,.categories-table-1218 th.num{text-align:right;white-space:nowrap}
.categories-table-1218 th.num a{justify-content:flex-end}
body.authenticated-110 .heading-inline-121 .show-archived-heading-121,body.authenticated-110 .heading-inline-116 .show-archived-heading-116{font-size:.74rem!important}

/* (9, 10) Detail popups: label/value rows, no rules, no sideways scroll. */
#modal-root .modal dl.kv-1218{display:grid!important;grid-template-columns:minmax(110px,max-content) minmax(0,1fr)!important;gap:7px 16px!important;margin:4px 0 14px!important;padding:0!important;min-width:0!important;border:0!important}
#modal-root .modal dl.kv-1218>div{display:contents!important}
#modal-root .modal dl.kv-1218 dt{margin:0!important;padding:0!important;border:0!important;font-size:.76rem!important;font-weight:700!important;color:var(--muted)!important;text-transform:none!important;letter-spacing:0!important;align-self:baseline}
#modal-root .modal dl.kv-1218 dd{margin:0!important;padding:0!important;border:0!important;font-size:.88rem!important;color:var(--ink)!important;overflow-wrap:break-word!important;word-break:normal!important;min-width:0;align-self:baseline}
#modal-root .modal dl.kv-1218 dd small{display:block;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}
#modal-root .modal dl.kv-two-1218{grid-template-columns:minmax(100px,max-content) minmax(0,1fr) minmax(100px,max-content) minmax(0,1fr)!important}
#modal-root .modal .modal-head{margin-bottom:10px!important}
#modal-root .modal{padding:20px 22px!important}
#modal-root .modal .table-wrap{overflow-x:visible!important;margin:0!important}
#modal-root .modal table.modal-table-1218{min-width:0!important;width:100%!important;table-layout:fixed}
#modal-root .modal table.modal-table-1218 th,#modal-root .modal table.modal-table-1218 td{white-space:normal!important;overflow-wrap:break-word;word-break:normal;vertical-align:top}
#modal-root .modal table.order-lines-1218 th:nth-child(1){width:46%}
#modal-root .modal table.order-lines-1218 th:nth-child(3){width:52px}
#modal-root .modal table.order-lines-1218 th:nth-child(4){width:96px}
#modal-root .modal table.modal-table-1218 .num{text-align:right}
#modal-root .modal table.modal-table-1218 td small{display:block;color:var(--muted);font-size:.74rem}
#modal-root .modal .modal-pager-1218{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;font-size:.8rem;color:var(--muted)}
@media(max-width:620px){
  #modal-root .modal dl.kv-two-1218{grid-template-columns:minmax(96px,max-content) minmax(0,1fr)!important}
  #modal-root .modal table.order-lines-1218 thead{display:none}
  #modal-root .modal table.order-lines-1218,#modal-root .modal table.order-lines-1218 tbody,#modal-root .modal table.order-lines-1218 tr,#modal-root .modal table.order-lines-1218 td{display:block;width:auto!important}
  #modal-root .modal table.order-lines-1218 tr{padding:8px 0;border-bottom:1px solid #e6edf3}
  #modal-root .modal table.order-lines-1218 td{border:0!important;padding:1px 0!important;height:auto!important;min-height:0!important;line-height:1.35!important;text-align:left!important}
  #modal-root .modal table.order-lines-1218{border:0!important}
  #modal-root .modal .modal-table-wrap-1218{border:0!important;border-top:1px solid #e6edf3!important;border-radius:0!important}
  #modal-root .modal table.order-lines-1218 td[data-label="Qty"]::before{content:"× "}
  #modal-root .modal table.order-lines-1218 td[data-label="Qty"],#modal-root .modal table.order-lines-1218 td[data-label="Unit price"]{display:inline-block;margin-right:12px}
}

/* (11, 12) History filter bars: no gaps beyond the 6px rhythm, wide search. */
.ops-toolbar-110:has(> input[name="from"]){display:flex!important;flex-wrap:wrap!important;gap:6px!important;align-items:center!important;grid-template-columns:none!important}
.ops-toolbar-110:has(> input[name="from"])>input[name="q"],.ops-toolbar-110:has(> input[name="from"])>.search-progress-1120{flex:1 1 300px!important;min-width:200px!important;max-width:none!important;width:auto!important}
.ops-toolbar-110:has(> input[name="from"])>input[name="from"],.ops-toolbar-110:has(> input[name="from"])>input[name="to"]{flex:0 0 122px!important;width:122px!important}
.ops-toolbar-110:has(> input[name="from"])>select{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:220px!important}
.ops-toolbar-110:has(> input[name="from"])>select[name="limit"]{flex:0 0 74px!important;width:74px!important}
.ops-toolbar-110.history-toolbar-1210{display:flex!important;flex-wrap:wrap!important;gap:6px!important;align-items:center!important;grid-template-columns:none!important}
.ops-toolbar-110.history-toolbar-1210>*{margin:0!important}
.ops-toolbar-110.history-toolbar-1210>input[name="q"],.ops-toolbar-110.history-toolbar-1210>.search-progress-1120{flex:1 1 300px!important;min-width:200px!important;max-width:none!important;width:auto!important}
.ops-toolbar-110.history-toolbar-1210 .search-progress-1120 input{width:100%!important}
.ops-toolbar-110.history-toolbar-1210>input[name="from"],.ops-toolbar-110.history-toolbar-1210>input[name="to"]{flex:0 0 122px!important;width:122px!important}
.ops-toolbar-110.history-toolbar-1210>select{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:220px!important}
.ops-toolbar-110.history-toolbar-1210>select[name="limit"]{flex:0 0 74px!important;width:74px!important}
@media(max-width:620px){.ops-toolbar-110.history-toolbar-1210>input[name="from"],.ops-toolbar-110.history-toolbar-1210>input[name="to"]{flex:1 1 40%!important;width:auto!important}.ops-toolbar-110.history-toolbar-1210>select{flex:1 1 40%!important;max-width:none!important}}
.history-table-1210 td.provider-id-1218{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.74rem;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.audit-table-1210{min-width:960px!important}

/* (13, 16) More transactions: arrow on the right inside the button. */
.more-transactions-1211{display:inline-flex!important;align-items:center;gap:6px}
.more-transactions-1211 .ui-icon-110{width:16px;height:16px;order:2}

/* (17) Wallet selection: checkbox on the merchant row, counter beside the toggle. */
.wallet-voucher-card-116 .merchant-line-1218{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px}
.wallet-voucher-card-116 .merchant-line-1218>a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wallet-voucher-card-116 .merchant-line-1218 .wallet-select-wrap-1218{position:static!important;inset:auto!important;margin:0 8px 0 auto!important;flex:none;transform:none!important}
.selection-mode-122 .wallet-voucher-card-116 .merchant-line-1218 .wallet-select-wrap-1218{display:inline-flex!important}
.wallet-selection-count-1218{align-self:center;margin:0 10px 0 0!important;font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}

/* (18) Diagnostics. */
.diagnostics-bar-1218{display:flex;justify-content:flex-end;margin:12px 0 4px}
.diagnostics-bar-1218 .btn{display:inline-flex;align-items:center;gap:6px}
.diagnostics-bar-1218 .ui-icon-110{width:16px;height:16px}
.diag-form-1218 .diag-note-1218{font-size:.82rem;margin:0 0 12px}
.diag-form-1218 fieldset{border:0;margin:0 0 12px;padding:0}
.diag-form-1218 legend{font-size:.78rem;font-weight:700;color:var(--muted);margin-bottom:6px}
.diag-form-1218 .diag-checks-1218{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
.diag-form-1218 .diag-checks-1218 label{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink)}
.diag-form-1218 .diag-window-1218{max-width:220px}
.diag-status-1218{display:flex;align-items:center;gap:10px;margin:4px 0 10px;padding:10px 12px;border-radius:8px;background:#f4f8fb;font-size:.84rem;color:var(--ink)}
.diag-status-1218.error{background:#fdf0f1;color:var(--danger)}
.diag-status-1218.done{background:#edf8f2;color:#1f6a48}
.spinner-inline-1218{width:16px;height:16px;border-radius:50%;border:2px solid #c9d8e6;border-top-color:var(--navy);animation:spin1218 .8s linear infinite;flex:none}
@keyframes spin1218{to{transform:rotate(360deg)}}
@media(max-width:520px){.diag-form-1218 .diag-checks-1218{grid-template-columns:1fr}}

/* (19) Route error card. */
.service-error-1218{max-width:560px;margin:40px auto!important}
.service-error-1218 .route-error-id-1218{font-size:.76rem;color:var(--muted);margin:6px 0 0}
.service-error-1218 .route-error-id-1218 code{font-size:.74rem}

#modal-root .modal code.kv-code-1218{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow-wrap:anywhere;background:#f4f8fb;border-radius:4px;padding:1px 5px}
@media(max-width:820px){body:not(.authenticated-110) #auth-slot{display:none!important}}
/* END RYU 1.2.18 CSS */
/* BEGIN RYU 1.2.19 REDEEM CSS */
/* ========================================================================== */
/* RYU Portal 1.2.19 — Redemption (scanner, QR codes, Vouchers selection).     */
/* ========================================================================== */
.icon-r19{width:18px;height:18px;flex:none}
.copy-buffer-r19{position:fixed;left:-9999px;top:0;opacity:0}
.num-r19{font-variant-numeric:tabular-nums}
.tick-r19{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#17734f;color:#fff;flex:none}
.tick-r19 .icon-r19{width:16px;height:16px;stroke-width:2.6}
.qr-img-r19{display:block;width:100%;height:auto;aspect-ratio:1/1;image-rendering:pixelated;image-rendering:crisp-edges;border-radius:6px;background:#fff}
.qr-missing-r19{display:grid;place-items:center;aspect-ratio:1/1;padding:16px;border:1px dashed #c9d6e2;border-radius:10px;color:var(--muted);font-size:.84rem;text-align:center}
.copy-btn-r19{min-height:34px!important;padding:6px 11px!important;gap:6px!important;font-size:.8rem!important;flex:none}
.copy-btn-r19 .icon-r19{width:16px;height:16px}
.copy-btn-r19.copied-r19{background:#e6f5ee!important;color:#17734f!important}

/* ---------- Scanner overlay: modal on desktop, full screen on phones ---------- */
body.scan-open-r19{overflow:hidden}
.scan-overlay-r19{position:fixed;inset:0;z-index:5100;display:grid;place-items:center;padding:24px;background:rgba(11,26,43,.62);backdrop-filter:blur(2px)}
.scan-panel-r19{width:min(520px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(8,24,40,.35);padding:16px 18px 18px;display:flex;flex-direction:column;gap:12px}
.scan-head-r19{display:flex;align-items:center;gap:6px}
.scan-head-r19 h2{margin:0 auto 0 0;font-size:1.08rem;color:var(--ink);font-weight:800}
.scan-iconbtn-r19{width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;transition:background .12s}
.scan-iconbtn-r19:hover{background:#eef4f9}.scan-iconbtn-r19:active{background:#e1ebf4}
.scan-iconbtn-r19:focus-visible{outline:2px solid #5d8fbd;outline-offset:2px}
.scan-iconbtn-r19[hidden]{display:none!important}
.scan-iconbtn-r19 .icon-r19{width:21px;height:21px}
.scan-stage-r19{position:relative;width:100%;aspect-ratio:4/3;background:#0d1b2a;border-radius:12px;overflow:hidden}
.scan-stage-r19 video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s}
.scan-stage-r19.live-r19 video{opacity:1}
.scan-stage-r19.mirror-r19 video{transform:scaleX(-1)}
.scan-frame-r19{position:absolute;left:50%;top:50%;width:min(62%,250px);aspect-ratio:1/1;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .2s;box-shadow:0 0 0 999px rgba(5,15,25,.28);border-radius:14px}
.scan-stage-r19.live-r19 .scan-frame-r19{opacity:1}
.scan-frame-r19 i{position:absolute;width:30px;height:30px;border:3.5px solid #fff;border-radius:3px}
.scan-frame-r19 i:nth-child(1){left:-2px;top:-2px;border-right:0;border-bottom:0;border-top-left-radius:14px}
.scan-frame-r19 i:nth-child(2){right:-2px;top:-2px;border-left:0;border-bottom:0;border-top-right-radius:14px}
.scan-frame-r19 i:nth-child(3){left:-2px;bottom:-2px;border-right:0;border-top:0;border-bottom-left-radius:14px}
.scan-frame-r19 i:nth-child(4){right:-2px;bottom:-2px;border-left:0;border-top:0;border-bottom-right-radius:14px}
.scan-state-r19{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 22px;text-align:center;color:#e9f1f8;background:#0d1b2a}
.scan-state-r19[hidden]{display:none!important}
.scan-state-r19>.icon-r19{width:34px;height:34px;color:#9fb7cc}
.scan-state-r19 strong{font-size:1rem;color:#fff}
.scan-state-r19 p{margin:0;max-width:380px;font-size:.84rem;line-height:1.45;color:#c8d7e4}
.scan-state-r19 .btn{margin-top:6px;background:#fff!important;color:var(--ink)!important}
.scan-spinner-r19{border-color:rgba(255,255,255,.25)!important;border-top-color:#fff!important}
.scan-msg-r19{margin:0;padding:8px 11px;border-radius:9px;background:#f2f6fa;color:#40566c;font-size:.83rem;font-weight:600}
.scan-msg-r19[hidden]{display:none}
.scan-msg-r19.warn-r19{background:#fff6e5;color:#8a5a00}
.scan-manual-r19{display:grid;gap:6px;margin:0}
.scan-manual-r19 label{font-size:.78rem;font-weight:750;color:#435b73}
.scan-manual-row-r19{display:flex;gap:8px}
.scan-manual-row-r19 input{flex:1 1 auto;min-width:0;height:44px;border:1px solid #ccd8e4;border-radius:10px;padding:0 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem;color:var(--ink);background:#fff;outline:0}
.scan-manual-row-r19 input:focus{border-color:#7ca7cc;box-shadow:0 0 0 3px rgba(69,127,174,.12)}
.scan-manual-row-r19 .btn{flex:none;min-width:64px;height:44px;min-height:44px}
.scan-hint-r19{margin:0;color:var(--muted);font-size:.78rem}
@media(max-width:640px){
  .scan-overlay-r19{padding:0;background:#0d1b2a;place-items:stretch}
  .scan-panel-r19{width:100%;max-height:none;height:100%;border-radius:0;box-shadow:none;padding:calc(env(safe-area-inset-top,0px) + 8px) 14px calc(env(safe-area-inset-bottom,0px) + 14px);gap:10px;background:#0d1b2a}
  .scan-head-r19 h2{color:#fff}
  .scan-iconbtn-r19{color:#fff}.scan-iconbtn-r19:hover,.scan-iconbtn-r19:active{background:rgba(255,255,255,.14)}
  .scan-stage-r19{flex:1 1 auto;aspect-ratio:auto;min-height:260px;border-radius:14px}
  .scan-msg-r19{background:rgba(255,255,255,.1);color:#e3edf6}
  .scan-msg-r19.warn-r19{background:#5c4300;color:#ffe7b0}
  .scan-manual-r19 label,.scan-hint-r19{color:#a9bccd}
}

/* ---------- Merchant My QR / Scan QR ---------- */
.merchant-redeem-r19{display:grid;gap:18px;align-items:start}
.merchant-redeem-r19.two-r19{grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr)}
.merchant-redeem-r19.one-r19{grid-template-columns:minmax(0,640px)}
.merchant-redeem-r19 .card{border-radius:16px;padding:22px}
.myqr-loading-r19,.redeem-busy-r19,.code-loading-r19{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:var(--muted);font-size:.88rem}
.myqr-loading-r19 .spinner,.redeem-busy-r19 .spinner,.code-loading-r19 .spinner{width:22px;height:22px;border-width:2.5px}
.myqr-grid-r19{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:24px;align-items:start}
.myqr-code-r19{padding:12px;border:1px solid #dfe8f0;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(21,54,83,.06)}
.myqr-card-r19.expiring-r19 .myqr-timer-r19 strong{color:#b4232f}
.myqr-eyebrow-r19{margin:0 0 4px;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.myqr-name-r19{margin:0 0 8px;font-size:1.35rem;line-height:1.2;color:var(--ink);overflow-wrap:anywhere}
.myqr-contact-r19{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:5px}
.myqr-contact-r19 li{display:flex;gap:8px;align-items:flex-start;color:#4a6178;font-size:.86rem;line-height:1.35}
.myqr-contact-r19 .icon-r19{width:16px;height:16px;margin-top:1px;color:#7d91a5}
.myqr-timer-r19{padding:11px 13px;border-radius:11px;background:#f4f8fb;margin-bottom:12px}
.myqr-timer-row-r19{display:flex;align-items:baseline;gap:6px;font-size:.84rem;color:#4a6178}
.myqr-timer-row-r19 strong{font-size:1.12rem;color:var(--ink);font-variant-numeric:tabular-nums}
.myqr-bar-r19{height:4px;margin-top:8px;border-radius:99px;background:#dde7f0;overflow:hidden}
.myqr-bar-r19 i{display:block;height:100%;width:100%;background:#2d638f;border-radius:99px;transition:width .9s linear}
.myqr-card-r19.expiring-r19 .myqr-bar-r19 i{background:#cf2430}
.myqr-actions-r19{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.myqr-actions-r19 .btn .icon-r19,.myqr-error-r19 .btn .icon-r19{width:16px;height:16px}
.myqr-actions-r19 .loading-r19 .icon-r19{animation:spin .8s linear infinite}
.myqr-raw-r19,.code-raw-r19{display:flex;align-items:center;gap:8px;padding:7px 7px 7px 11px;border:1px solid #dfe8f0;border-radius:10px;background:#fbfcfe}
.myqr-raw-r19 code,.code-raw-r19 code{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;color:#23415f;overflow-wrap:anywhere;word-break:break-all;line-height:1.35;background:none;padding:0}
.myqr-help-r19{margin:12px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}
.myqr-error-r19{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:24px 10px;color:#4a6178}
.myqr-error-r19>.icon-r19{width:30px;height:30px;color:#b4232f}
.myqr-error-r19 p{margin:0}
.scan-card-r19{display:flex;flex-direction:column;gap:14px}
.scan-card-top-r19{display:flex;gap:14px;align-items:flex-start}
.scan-card-top-r19 h2{margin:0 0 4px;font-size:1.1rem;color:var(--ink)}
.scan-card-top-r19 p{margin:0;font-size:.86rem;line-height:1.45}
.scan-card-icon-r19{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#eaf2fa;color:#1e4e7a;flex:none}
.scan-card-icon-r19 .ui-icon-110{width:24px;height:24px}
.btn-scan-r19{align-self:flex-start;min-height:46px!important;padding:11px 20px!important;font-size:.95rem!important;gap:9px!important}
.btn-scan-r19 .ui-icon-110{width:20px;height:20px}
.redeem-result-r19:empty{display:none}
.redeem-ok-r19,.redeem-fail-r19{border-radius:12px;padding:14px;display:grid;gap:10px}
.redeem-ok-r19{background:#f0faf5;border:1px solid #bfe5d1}
.redeem-fail-r19{background:#fff4f4;border:1px solid #f4c7cb}
.redeem-fail-r19 p{margin:0;color:#7d1f28;font-size:.88rem;line-height:1.45}
.redeem-fail-head-r19{display:flex;gap:8px;align-items:center;color:#ad2330}
.redeem-fail-head-r19 .icon-r19{width:20px;height:20px}
.redeem-ok-head-r19{display:flex;gap:10px;align-items:center}
.redeem-ok-head-r19>div{display:flex;flex-direction:column}
.redeem-ok-head-r19 strong{color:#17734f;font-size:1.02rem}
.redeem-ok-head-r19>div>span{color:#3f5a4d;font-size:.84rem}
.redeem-ok-r19 .btn,.redeem-fail-r19 .btn{justify-self:start}
.redeem-ok-r19 .btn .ui-icon-110,.redeem-fail-r19 .btn .ui-icon-110{width:16px;height:16px}
.redeem-lines-r19,.code-lines-r19{list-style:none;margin:0;padding:0;display:grid;gap:0}
.redeem-lines-r19 li,.code-lines-r19 li{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px solid rgba(23,59,99,.08);font-size:.86rem;color:var(--ink)}
.redeem-lines-r19 li>span:first-child,.code-line-title-r19{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.line-qty-r19,.code-line-qty-r19{color:var(--muted);white-space:nowrap}
.redeem-lines-r19 b,.code-lines-r19 b{white-space:nowrap;font-variant-numeric:tabular-nums}
.redeem-total-r19,.code-total-r19{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;color:var(--ink)}
.redeem-total-r19 b,.code-total-r19 b{font-size:1.1rem}
@media(max-width:1100px){.merchant-redeem-r19.two-r19{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
  .merchant-redeem-r19 .card{padding:16px;border-radius:14px}
  .myqr-grid-r19{grid-template-columns:minmax(0,1fr);gap:14px}
  .myqr-code-r19{width:min(100%,300px);justify-self:center}
  .btn-scan-r19{align-self:stretch}
}

/* ---------- Merchant "Redeemed just now" notice ---------- */
.redeem-notice-r19{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 10px 10px 12px;border-radius:12px;background:#eaf7f0;border:1px solid #bfe5d1;color:#174d36;font-size:.9rem;animation:noticeInR19 .25s ease-out}
.redeem-notice-text-r19{flex:1 1 auto;min-width:0;line-height:1.4}
.redeem-notice-text-r19 strong{color:#17734f}
.redeem-notice-x-r19{width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#2c5f48;display:inline-grid;place-items:center;cursor:pointer;flex:none}
.redeem-notice-x-r19:hover{background:rgba(23,115,79,.1)}
.redeem-notice-x-r19 .icon-r19{width:16px;height:16px}
@keyframes noticeInR19{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---------- Buyer Scan QR ---------- */
.buyer-scan-card-r19{border-radius:16px;padding:22px;max-width:720px}
.buyer-merchant-r19{max-width:720px;margin-top:16px;display:grid;gap:14px}
.buyer-merchant-r19:empty{display:none}
.buyer-merchant-r19 .card{border-radius:16px;padding:18px}
.bm-head-r19{display:flex;gap:12px;align-items:flex-start;margin-bottom:6px}
.bm-head-r19>div{flex:1 1 auto;min-width:0}
.bm-head-r19 h2{margin:0;font-size:1.2rem;color:var(--ink);overflow-wrap:anywhere}
.bm-head-r19 p.muted{margin:3px 0 0;font-size:.84rem}
.bm-ic-r19{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#eaf2fa;color:#1e4e7a;flex:none}
.bm-rescan-r19 .ui-icon-110{width:16px;height:16px}
.bm-sub-r19{margin:14px 0 6px;font-size:.92rem;color:var(--ink)}
.bm-all-r19{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:#4a6178;margin:2px 0 4px;cursor:pointer}
.bm-list-r19{list-style:none;margin:0;padding:0;border-top:1px solid #e7eef4}
.bm-row-r19{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:6px;padding:10px 0;border-bottom:1px solid #e7eef4}
.bm-check-r19{display:grid;place-items:center;width:44px;min-height:30px;cursor:pointer}
.bm-check-r19 input{width:18px;height:18px;margin:0}
.bm-main-r19{display:flex;flex-direction:column;gap:2px;min-width:0}
.bm-main-r19 strong{color:var(--ink);font-size:.9rem;overflow-wrap:anywhere}
.bm-main-r19 small{color:var(--muted);font-size:.76rem}
.bm-err-r19{color:#ad2330!important}
.bm-state-r19{color:#17734f;font-weight:700}
.bm-row-r19.done-r19 strong{color:#3f5a4d}
.bm-amt-r19{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.bm-bar-r19,.bm-confirm-r19{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}
.bm-confirm-r19{justify-content:space-between;padding:12px;border-radius:12px;background:#fff6f6;border:1px solid #f4c7cb}
.bm-confirm-r19 p{margin:0;color:#6c1d25;font-size:.86rem;font-weight:600}
.bm-confirm-r19 .form-actions{margin:0}
.bm-selcount-r19{color:var(--muted);font-size:.84rem;font-weight:600}
.bm-confirm-r19 .bm-selcount-r19{display:block;margin-top:2px}
.bm-stop-r19{margin-bottom:12px}
.bm-empty-r19{margin:12px 0 0}
.bm-store-head-r19{margin:6px 0 0}
@media(max-width:640px){.buyer-scan-card-r19{padding:16px}.bm-head-r19{flex-wrap:wrap}.bm-rescan-r19{width:100%}.bm-bar-r19 .btn,.bm-confirm-r19 .form-actions,.bm-confirm-r19 .form-actions .btn{flex:1 1 auto}}

/* ---------- Buyer Vouchers: toolbar and selection ---------- */
.page-head .quick-actions.wallet-quick-r19{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.wallet-actions-r19{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.wallet-act-r19{gap:7px!important;white-space:nowrap;min-height:38px!important;padding:8px 14px!important;font-size:.86rem!important;font-weight:750!important;border-radius:10px!important}
.wallet-act-r19 .ui-icon-110{width:18px;height:18px}
.wallet-act-r19[hidden],.wallet-exit-r19[hidden],.wallet-count-r19[hidden]{display:none!important}
.wallet-act-r19.btn-primary:disabled{opacity:.5;box-shadow:none}
.wallet-exit-r19{width:38px;height:38px;border:1px solid #d6e2ec;border-radius:50%;background:#fff;color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;flex:none;transition:background .12s}
.wallet-exit-r19:hover{background:#eef4f9}.wallet-exit-r19:active{background:#e1ebf4}
.wallet-exit-r19:focus-visible{outline:2px solid #5d8fbd;outline-offset:2px}
.wallet-count-r19{font-size:.84rem;font-weight:650;color:#4a6178;white-space:nowrap;margin-right:2px}
.wallet-qr-note-r19{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2px 8px;margin:0 0 12px;padding:9px 12px;border-radius:10px;background:#f1f6fb;color:#40566c;font-size:.84rem}
.wallet-qr-note-r19 .ui-icon-110{width:17px;height:17px;color:#2d638f}
.wallet-qr-note-r19 strong{color:var(--ink);grid-column:2}
.wallet-qr-note-r19 .ui-icon-110{margin-top:1px}
.wallet-voucher-grid-114 .voucher-card.wallet-off-r19{opacity:.42;filter:grayscale(.85);transition:opacity .15s}
.wallet-voucher-grid-114 .voucher-card.wallet-off-r19 .wallet-select{cursor:not-allowed}
.wallet-voucher-grid-114.selection-mode-122 .voucher-card.wallet-picked-r19{outline:2px solid #2d638f;outline-offset:-2px}
.wallet-off-note-r19{position:absolute;top:10px;left:10px;z-index:3;padding:3px 8px;border-radius:99px;background:rgba(15,39,64,.82);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.02em}
.wallet-voucher-grid-114 .voucher-card{position:relative}
.wallet-voucher-grid-114.selection-mode-122 .wallet-select-wrap-1218 input.wallet-select{width:18px!important;height:18px!important;cursor:pointer}
/* Tablets: filters share the row without overlapping. */
@media(min-width:641px) and (max-width:820px){
  #wallet-filter-111.wallet-toolbar-r19>*{min-width:0!important;max-width:100%!important;width:100%!important;margin:0!important}
  #wallet-filter-111.wallet-toolbar-r19 select,#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-trigger-113{width:100%!important;min-width:0!important}
}
/* Phones: search on its own row, filters in an even two-column grid. */
@media(max-width:640px){
  body.authenticated-110 .ops-content-110 .page-head:has(.wallet-quick-r19){align-items:center!important}
  body.authenticated-110 .ops-content-110 .page-head .quick-actions.wallet-quick-r19{flex:1 1 100%!important;width:100%!important;margin-left:0!important;justify-content:flex-end!important}
  .wallet-actions-r19{width:100%;justify-content:flex-end;flex-wrap:wrap}
  .wallet-actions-r19.selecting-r19 .wallet-count-r19{margin-right:auto}
  .wallet-act-r19{padding:8px 12px!important}
  body.authenticated-110 .ops-content-110 #wallet-filter-111.wallet-toolbar-r19,#wallet-filter-111.wallet-toolbar-r19{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important;max-width:100%!important;position:relative}
  #wallet-filter-111.wallet-toolbar-r19>*{min-width:0!important;max-width:100%!important;width:100%!important;margin:0!important;grid-column:auto!important;flex:none!important;align-self:center!important}
  #wallet-filter-111.wallet-toolbar-r19>input[name="q"],#wallet-filter-111.wallet-toolbar-r19>.search-progress-1120{grid-column:1/-1!important;position:relative!important}
  #wallet-filter-111.wallet-toolbar-r19>.search-progress-1120 input{width:100%!important;max-width:none!important}
  #wallet-filter-111.wallet-toolbar-r19 select,#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-trigger-113,#wallet-filter-111.wallet-toolbar-r19 input[name="q"]{height:40px!important;min-height:40px!important;box-sizing:border-box!important}
  #wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-panel-113{max-width:calc(100vw - 32px)!important}
  #wallet-filter-111.wallet-toolbar-r19 select,#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-trigger-113{width:100%!important;min-width:0!important;max-width:100%!important;text-overflow:ellipsis}
  #wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-field-113,#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-select-113{width:100%!important;min-width:0!important;max-width:100%!important}
}

/* ---------- Refund dialog grouped by merchant ---------- */
.refund-items-116.refund-groups-r19{display:grid!important;gap:10px!important;max-height:min(42vh,320px);overflow:auto;padding:0!important;border:0!important;background:none!important}
.refund-items-116.refund-groups-r19>div{display:block!important;padding:8px 11px!important;margin:0!important;border:1px solid #e1e9f0!important;border-radius:10px!important;background:#fff!important}
.refund-items-116.refund-groups-r19 .refund-line-r19{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left!important;padding:4px 0!important;border:0!important;margin:0!important;background:none!important}
.refund-items-116.refund-groups-r19 .refund-line-r19>span{font-weight:600}
.refund-group-r19{border:1px solid #e1e9f0;border-radius:10px;padding:8px 11px}
.refund-group-head-r19{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding-bottom:5px;margin-bottom:3px;border-bottom:1px solid #edf2f6;font-size:.86rem;color:var(--ink)}
.refund-group-head-r19>span{color:var(--muted);font-size:.78rem;white-space:nowrap}
.refund-line-r19{display:flex;flex-direction:column;padding:4px 0;font-size:.84rem;color:var(--ink)}
.refund-line-r19 small{color:var(--muted);font-size:.76rem}
.refund-note-r19{margin:6px 0 0;color:var(--muted);font-size:.8rem}
.refund-results-r19{display:grid;gap:7px;margin-top:6px}
.refund-result-r19{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:9px;font-size:.84rem}
.refund-result-r19.ok-r19{background:#eefaf5;color:#166a48}
.refund-result-r19.fail-r19{background:#fff1f2;color:#ad2330}
.refund-result-r19 small{display:block;margin-top:2px;font-weight:600}
.refund-result-r19 .icon-r19{margin-top:1px}
.refund-retry-r19{margin:2px 0 0;color:var(--muted);font-size:.78rem}

/* ---------- Redemption code view: popup on desktop, full screen under the header on phones ---------- */
body.code-open-r19{overflow:hidden}
.code-view-r19{position:fixed;inset:0;z-index:5050;display:grid;place-items:center;padding:24px}
.code-backdrop-r19{position:absolute;inset:0;background:rgba(11,26,43,.5)}
.code-panel-r19{position:relative;width:min(440px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(8,24,40,.3);padding:16px 22px 20px}
.code-head-r19{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.code-head-r19 h2{margin:0 auto 0 0;font-size:1.05rem;color:var(--ink)}
.code-x-r19{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--ink);display:inline-grid;place-items:center;cursor:pointer}
.code-x-r19:hover{background:#eef4f9}
.code-x-r19:focus-visible{outline:2px solid #5d8fbd;outline-offset:2px}
.code-x-r19 .icon-r19{width:20px;height:20px}
.code-body-r19{display:flex;flex-direction:column;gap:10px}
.code-merchant-label-r19{margin:2px 0 -8px;text-align:center;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.code-merchant-r19{margin:0;text-align:center;font-size:1.25rem;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
.code-qr-r19{position:relative;width:min(250px,72vw);align-self:center;padding:10px;border:1px solid #dfe8f0;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(21,54,83,.06)}
.code-view-r19.redeemed-r19 .code-qr-r19 .qr-img-r19,.code-view-r19.expired-r19 .code-qr-r19 .qr-img-r19{opacity:.14;filter:grayscale(1)}
.code-qr-mark-r19{position:absolute;inset:0;display:grid;place-items:center}
.code-qr-mark-r19 .icon-r19{width:96px;height:96px;padding:18px;border-radius:50%;background:#17734f;color:#fff;stroke-width:2.4;box-shadow:0 10px 24px rgba(23,115,79,.3)}
.code-timer-r19{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 9px 13px;border-radius:11px;background:#f4f8fb}
.code-timer-text-r19{display:flex;align-items:baseline;gap:6px;font-size:.86rem;color:#4a6178}
.code-timer-text-r19 strong{font-size:1.12rem;color:var(--ink);font-variant-numeric:tabular-nums}
.code-timer-r19.ending-r19 .code-timer-text-r19 strong{color:#b4232f}
.code-timer-r19.expired-r19{background:#fff6e5}
.code-timer-r19.expired-r19 .code-timer-text-r19{color:#8a5a00;font-weight:700}
.code-timer-r19 .btn .icon-r19{width:16px;height:16px}
.code-help-r19{margin:-2px 0 0;text-align:center;color:var(--muted);font-size:.78rem;line-height:1.4}
.code-lines-r19 li{padding:8px 0}
.code-line-tick-r19{display:inline-grid;place-items:center;width:0;overflow:hidden;color:#17734f}
.code-lines-r19 li.done-r19 .code-line-tick-r19{width:20px}
.code-line-tick-r19 .icon-r19{width:18px;height:18px;stroke-width:2.6}
.code-state-r19{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:12px}
.code-state-r19>div{display:flex;flex-direction:column}
.code-state-r19 small{font-size:.8rem;font-weight:500}
.code-state-r19.ok-r19{background:#eaf7f0;color:#17734f}
.code-state-r19.ok-r19 strong{font-size:1.15rem}
.code-state-r19.warn-r19{background:#fff6e5;color:#8a5a00}
.code-state-r19.warn-r19>.icon-r19{width:22px;height:22px}
.code-error-r19{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 6px;text-align:center;color:#7d1f28}
.code-error-r19 .icon-r19{width:30px;height:30px;color:#b4232f}
.code-error-r19 p{margin:0;font-size:.9rem;line-height:1.45}
.code-foot-r19{padding-top:4px}
.code-back-r19{width:100%;gap:6px!important}
.code-back-r19 .icon-r19{width:18px;height:18px}
@media(max-width:640px){
  .code-view-r19{top:var(--code-top-r19,64px);padding:0;display:block;z-index:990}
  .code-backdrop-r19{display:none}
  .code-panel-r19{width:100%;height:100%;max-height:none;border-radius:0;box-shadow:none;padding:12px 16px 0;overflow-y:auto;-webkit-overflow-scrolling:touch;border-top:1px solid #e8eef4}
  .code-x-r19{display:none}
  .code-head-r19{justify-content:center}.code-head-r19 h2{margin:0 auto}
  .code-qr-r19{width:min(270px,76vw)}
  .code-foot-r19{position:sticky;bottom:0;margin:4px -16px 0;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 12px);background:linear-gradient(rgba(255,255,255,.85),#fff 30%)}
}
.refund-items-116.refund-groups-r19 small{text-align:left!important}
.refund-items-116.refund-groups-r19 .refund-group-head-r19 span{font-weight:600;color:var(--muted)}
.refund-items-116.refund-groups-r19 .refund-group-head-r19 strong{color:var(--ink)}
.refund-items-116.refund-groups-r19>div.sent-r19{background:#f4fbf7!important;border-color:#cbe9d9!important}
.refund-items-116.refund-groups-r19>div.sent-r19 .refund-line-r19{opacity:.6}
.refund-sent-r19{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-style:normal;font-size:.76rem;font-weight:700;color:#17734f}
.refund-sent-r19 .icon-r19{width:14px;height:14px}
.refund-sent-r19 span{color:#17734f!important;font-weight:700!important}
/* Toolbar buttons keep their own look over the generic page-head button rules. */
.page-head .wallet-actions-r19 .wallet-act-r19.btn-soft{background:#edf4fa!important;color:var(--ink)!important;border:0!important;box-shadow:none!important}
.page-head .wallet-actions-r19 .wallet-act-r19.btn-soft:hover{background:#e1ecf6!important}
.page-head .wallet-actions-r19 .wallet-act-r19.btn-primary{background:var(--navy)!important;color:#fff!important;border:0!important;box-shadow:0 6px 14px rgba(30,78,122,.18)!important}
.page-head .wallet-actions-r19 .wallet-act-r19.btn-primary:hover:not(:disabled){background:#183f64!important}
.page-head .wallet-actions-r19 .wallet-act-r19.btn-primary:disabled{opacity:.45!important;box-shadow:none!important;cursor:default}
.page-head .wallet-actions-r19 .wallet-exit-r19{width:38px!important;height:38px!important;padding:0!important;border:1px solid #d6e2ec!important;border-radius:50%!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.page-head .wallet-actions-r19 .wallet-exit-r19:hover{background:#eef4f9!important}
@media(max-width:640px){#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-field-113,#wallet-filter-111.wallet-toolbar-r19 .wallet-merchant-select-113{height:40px!important}}
/* Long voucher lists keep the redeem action in reach. */
.bm-bar-r19,.bm-confirm-r19{position:sticky;bottom:0;z-index:2}
.bm-bar-r19{background:linear-gradient(rgba(255,255,255,.9),#fff 35%);padding:10px 0 4px;margin-top:4px}
.bm-confirm-r19{box-shadow:0 -6px 18px rgba(21,54,83,.08)}
/* Per-merchant refund amounts */
.refund-items-116.refund-groups-r19 .refund-amt-r19{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:6px 0 2px;padding-top:7px;border-top:1px dashed #e1e9f0}
.refund-items-116.refund-groups-r19 .refund-amt-r19>span{font-size:.78rem;font-weight:750;color:#435b73}
.refund-items-116.refund-groups-r19 .refund-amt-r19 input{width:120px;height:34px;padding:0 9px;border:1px solid #ccd8e4;border-radius:8px;font:inherit;font-size:.86rem;color:var(--ink);text-align:right;background:#fff}
.refund-items-116.refund-groups-r19 .refund-amt-r19 input:focus{outline:0;border-color:#7ca7cc;box-shadow:0 0 0 3px rgba(69,127,174,.12)}
.refund-items-116.refund-groups-r19 .refund-amt-r19 input.invalid-r19{border-color:#d9534f;background:#fff6f6}
.refund-items-116.refund-groups-r19 .refund-amt-r19 input:disabled{background:#f1f5f8;color:var(--muted)}
.refund-items-116.refund-groups-r19 .refund-amt-r19 small{font-size:.76rem;color:var(--muted)}
.refund-items-116.refund-groups-r19>div.refund-skipped-r19{background:#fafbfc!important;opacity:.75}
.refund-summary-r19{margin:8px 0 2px}
.refund-summary-r19 .refund-note-r19{margin:0 0 6px}
.refund-total-r19{display:flex;justify-content:space-between;align-items:baseline;padding:8px 11px;border-radius:9px;background:#f4f8fb;font-weight:750;color:var(--ink)}
.refund-total-r19 b{font-size:1.05rem}
.refund-total-hidden-r19[hidden]{display:none!important}
/* The refund form never grows wider than its popup (phones). */
.modal .refund-dialog-116{min-width:0!important;max-width:100%!important;width:100%!important}
@media(max-width:640px){.refund-items-116.refund-groups-r19 .refund-amt-r19 input{width:110px}}
/* END RYU 1.2.19 REDEEM CSS */
/* BEGIN RYU 1.2.19 UI CSS */
/* ========================================================================== */
/* RYU Portal 1.2.19 — portal UI change request (Stream C overrides).         */
/* ========================================================================== */

/* (1) Language list always opens below the EN button (beats the old       */
/*     `.app-header [role="menu"]{position:relative}` rule).                  */
.app-header .portal-language-dropdown,#portal-language-dropdown{position:relative!important}
.app-header #portal-language-menu.portal-language-menu,#portal-language-menu.portal-language-menu{position:absolute!important;top:calc(100% + 6px)!important;bottom:auto!important;left:0!important;right:auto!important;margin:0!important;transform:none!important}

/* (2) A hidden message bar is always hidden. */
#flash[hidden],.flash-116[hidden],.flash[hidden]{display:none!important}

/* (3) Signed-in pages without a sidebar sit below the fixed header. */
body.authenticated-110 #authenticated-stage-116:not(.has-persistent-side-116){padding-top:var(--ryu-fixed-header-h,72px)!important}
#app .public-discovery-hero{margin-top:16px!important}
/* Terms: paragraphs use the full content width. */
body[data-route-1219="terms"] #app .page p,body[data-route-1219="terms"] #app .page li,body[data-route-1219="terms"] #app .page section,body[data-route-1219="terms"] #app .page h2{max-width:none!important}
/* Contact: same width and side margins as the header. */
#app .portal-contact-layout{max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;grid-template-columns:minmax(0,1fr) minmax(280px,360px)!important}
#app .portal-contact-layout .portal-contact-main{max-width:none!important}
@media(max-width:820px){#app .portal-contact-layout{grid-template-columns:minmax(0,1fr)!important}}
/* Registration at phone width: fields never run past the screen edge. */
@media(max-width:700px){
  .buyer-registration-form,.merchant-registration-wide,.buyer-grid-117,.merchant-grid-117,.merchant-grid-118{grid-template-columns:minmax(0,1fr)!important}
  .buyer-registration-form>*,.merchant-registration-wide>*{min-width:0!important;max-width:100%!important}
  .buyer-registration-form .field input,.buyer-registration-form .field select,.merchant-registration-wide .field input,.merchant-registration-wide .field select,.merchant-registration-wide .field textarea{min-width:0!important;max-width:100%!important}
  .buyer-registration-form .auth-captcha-row,.merchant-registration-wide .auth-captcha-row{grid-template-columns:minmax(0,1fr) minmax(110px,138px)!important}
  .buyer-registration-form .auth-captcha-row img,.merchant-registration-wide .auth-captcha-row img{max-width:100%!important;height:auto}
  .registration-wide-page,.registration-117{max-width:100%!important;min-width:0!important;overflow-wrap:anywhere}
}

/* (5) Cart heading row with Empty cart on the right. */
.cart-heading.cart-heading-1219{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px;flex-wrap:wrap}
.cart-heading-1219 h1{margin:0!important;min-width:0}
.cart-heading-1219 .cart-empty-1219{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:6px}
.cart-heading-1219 .cart-empty-1219 svg{width:16px;height:16px}

/* (7) Checkout: read-only order lines, same margins as Cart. */
.checkout-page-1219{max-width:none;margin:0}
.checkout-page-1219 .checkout-head-1219{margin:0 0 18px}
.checkout-page-1219 .checkout-head-1219 h1{margin:0 0 4px;font-size:2.4rem;line-height:1.15;color:var(--ink)}
.checkout-page-1219 .checkout-head-1219 p{margin:0;color:var(--muted);font-size:.92rem}
.checkout-card-1211.checkout-card-1219{max-width:none!important;width:auto!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important}
.checkout-card-1219{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:24px;align-items:start}
.checkout-card-1219 .checkout-lines-wrap-1219{border:1px solid #e3eaf1;border-radius:10px;overflow:hidden;background:#fff}
.checkout-lines-1219{width:100%;border-collapse:collapse;font-size:.88rem}
.checkout-lines-1219 th{background:#f4f8fb;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-align:left;padding:10px 14px;border-bottom:1px solid #e3eaf1}
.checkout-lines-1219 td{padding:10px 14px;border-bottom:1px solid #edf2f6;vertical-align:top;color:var(--ink)}
.checkout-lines-1219 tr:last-child td{border-bottom:0}
.checkout-lines-1219 .num{text-align:right;white-space:nowrap}
.checkout-lines-1219 td small{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}
.checkout-lines-1219 .cell-main-1219{font-weight:700}
.checkout-summary-1219{border:1px solid #e3eaf1;border-radius:10px;padding:18px;background:#fff;box-shadow:0 10px 26px rgba(20,47,67,.06)}
.checkout-summary-1219 .checkout-total-1219{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #e6edf3}
.checkout-summary-1219 .checkout-total-1219 strong{font-size:1.05rem;font-weight:800;color:var(--ink)}
.checkout-summary-1219 .checkout-total-1219 strong.amount-1219{font-size:1.5rem}
.checkout-summary-1219 .checkout-total-1219 small{grid-column:1/-1;color:var(--muted);font-size:.8rem}
.checkout-summary-1219 fieldset{border:0;margin:0 0 14px;padding:0}
.checkout-summary-1219 legend{font-size:.8rem;font-weight:800;color:var(--ink);margin-bottom:8px;padding:0}
.checkout-summary-1219 .checkout-method-1211{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:.9rem}
.checkout-summary-1219 .form-actions{display:flex;flex-direction:column;gap:8px;margin:0}
.checkout-summary-1219 .form-actions .btn{width:100%}
@media(max-width:820px){
  .checkout-card-1219{grid-template-columns:minmax(0,1fr)}
  .checkout-page-1219 .checkout-head-1219 h1{font-size:1.7rem}
}
@media(max-width:620px){
  .checkout-lines-1219 thead{display:none}
  .checkout-lines-1219,.checkout-lines-1219 tbody,.checkout-lines-1219 tr,.checkout-lines-1219 td{display:block;width:auto}
  .checkout-lines-1219 tr{padding:10px 12px;border-bottom:1px solid #edf2f6}
  .checkout-lines-1219 tr:last-child{border-bottom:0}
  .checkout-lines-1219 td{padding:1px 0;border:0}
  .checkout-lines-1219 td.num{display:inline-block;text-align:left;margin-right:14px;color:var(--muted)}
  .checkout-lines-1219 td[data-label="Qty"]::before{content:"× "}
  .checkout-lines-1219 td[data-label="Amount"]{color:var(--ink);font-weight:800}
}

/* (8) Cart Checkout uses the same blue as Pay. */
.cart-proceed-cell .btn-checkout,[data-checkout-1211].btn-checkout,.cart-proceed-119.btn-checkout{background:var(--navy,#1e4e7a)!important;color:#fff!important;box-shadow:0 8px 18px rgba(30,78,122,.18)!important}
.cart-proceed-cell .btn-checkout:hover,.cart-proceed-cell .btn-checkout:focus,[data-checkout-1211].btn-checkout:hover,[data-checkout-1211].btn-checkout:focus{background:#194e7c!important;box-shadow:0 7px 16px rgba(22,66,105,.16)!important}

/* (9) Spinner inside a submitting button. */
.btn.is-busy-1219{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.btn.is-busy-1219:disabled,.btn.is-busy-1219[disabled]{opacity:1!important;filter:none!important}
.btn .btn-spinner-1219{width:15px;height:15px;border-width:2px}
.btn-primary .btn-spinner-1219,.btn-checkout .btn-spinner-1219,.btn-red .btn-spinner-1219{border-color:rgba(255,255,255,.35)!important;border-top-color:#fff!important}

/* (10) Disabled controls never show the "not allowed" cursor. */
:disabled,[disabled],[aria-disabled="true"],.disabled,.topup-option.disabled,.btn:disabled,.bulk-action-118:disabled,.toolbar-menu-121 button:disabled,.account-self-actions-126 .icon-btn-110[disabled],.account-stat-button-1211[disabled]{cursor:default!important}

/* (11) Light buttons: mild hover, pressed and keyboard focus states. */
.btn.btn-soft,.more-transactions-1211,.icon-btn-114,.icon-btn-110,.export-trigger-114,.avatar-choose-121,.btn-light{transition:background-color .12s ease,box-shadow .12s ease,color .12s ease,border-color .12s ease!important}
.btn.btn-soft:hover:not(:disabled),.more-transactions-1211:hover{background:#dfeaf4!important;transform:none!important;filter:none!important}
.btn.btn-soft:active:not(:disabled),.more-transactions-1211:active{background:#d0e0ee!important;transform:none!important}
.btn.btn-soft:focus-visible,.more-transactions-1211:focus-visible,.icon-btn-114:focus-visible,.export-trigger-114:focus-visible{outline:2px solid #6f9cc6!important;outline-offset:2px!important}
.icon-btn-114:hover:not(:disabled),.export-trigger-114:hover:not(:disabled){background:#dfeaf4!important;transform:none!important}
.icon-btn-114:active:not(:disabled),.export-trigger-114:active:not(:disabled){background:#d0e0ee!important}
.btn.btn-soft:disabled,.btn.btn-soft:disabled:hover,.icon-btn-114:disabled,.icon-btn-114:disabled:hover,.icon-btn-114:disabled:active{transform:none!important;filter:none!important;box-shadow:none!important}
.btn.btn-soft:disabled:hover{background:#edf4fa!important}

/* (12) Detail popups: compact on desktop, full screen on phones. */
#modal-root .modal.modal-detail-1219{width:fit-content!important;min-width:min(360px,calc(100vw - 32px))!important;max-width:min(560px,calc(100vw - 32px))!important;padding:18px 20px!important}
#modal-root .modal.modal-detail-1219:has(table){width:min(560px,calc(100vw - 32px))!important}
#modal-root .modal.modal-detail-1219 .modal-head h2{font-size:1.18rem!important;line-height:1.25!important}
#modal-root .modal.modal-detail-1219 dl.kv-1218{grid-template-columns:max-content minmax(0,max-content)!important;gap:6px 18px!important}
#modal-root .modal.modal-detail-1219 dl.kv-two-1218{grid-template-columns:max-content minmax(0,max-content) max-content minmax(0,max-content)!important}
#modal-root .modal.modal-detail-1219 dl.kv-1218 dt{font-size:.72rem!important}
#modal-root .modal.modal-detail-1219 dl.kv-1218 dd{font-size:.82rem!important}
#modal-root .modal.modal-detail-1219 p,#modal-root .modal.modal-detail-1219 td,#modal-root .modal.modal-detail-1219 th{font-size:.8rem}
#modal-root .modal.modal-detail-1219 pre{font-size:.76rem;white-space:pre-wrap;overflow-wrap:anywhere}
#modal-root .modal .modal-back-bar-1219{display:none}
@media(max-width:620px){
  #modal-root .modal-backdrop:has(> .modal.modal-detail-1219){top:var(--ryu-fixed-header-h,64px)!important;left:0!important;right:0!important;bottom:0!important;padding:0!important;display:block!important;background:#fff!important;backdrop-filter:none!important}
  #modal-root .modal.modal-detail-1219,#modal-root .modal.modal-detail-1219:has(table){position:relative!important;width:100%!important;min-width:0!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;border:0!important;overflow:auto!important;display:flex!important;flex-direction:column!important;padding:16px 16px 0!important;transform:none!important;animation:none!important}
  #modal-root .modal.modal-detail-1219 .modal-head [data-action="close-modal"],#modal-root .modal.modal-detail-1219 .modal-close{display:none!important}
  #modal-root .modal.modal-detail-1219 dl.kv-1218,#modal-root .modal.modal-detail-1219 dl.kv-two-1218{grid-template-columns:minmax(96px,max-content) minmax(0,1fr)!important}
  #modal-root .modal.modal-detail-1219 .modal-back-bar-1219{display:flex;position:sticky;bottom:0;z-index:2;margin:auto -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #e6edf3}
  #modal-root .modal.modal-detail-1219 .modal-back-bar-1219 .btn{width:100%}
}

/* (13) Top-up: compact on desktop, stacked on phones. */
.balance-card-112:has(#topup-form){max-width:560px!important}
#topup-form{max-width:560px}
#topup-form .topup-options{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
@media(max-width:620px){
  .balance-card-112:has(#topup-form){max-width:none!important}
  #topup-form{max-width:none}
  #topup-form .balance-action-112,#topup-form .form-actions{display:flex!important}
  #topup-form .balance-action-112 .btn,#topup-form .form-actions .btn{width:100%!important}
}

/* (14) Merchant account menu: Vouchers tile. */
.account-popover-1218 .pop-balance-1218.vouchers-1219 strong{color:var(--ink)}

/* (15) Wallet recent transactions: Order ID and Qty, card layout on phones. */
.wallet-recent-1219 th.tx-qty-col-1219,.wallet-recent-1219 td.tx-qty-col-1219{text-align:center;white-space:nowrap;width:52px}
.wallet-recent-1219 td.tx-order-col-1219{white-space:nowrap}
@media(max-width:620px){
  .table-wrap:has(> .wallet-recent-1219){overflow:visible!important;border:0!important;background:transparent!important}
  .wallet-recent-1219{min-width:0!important;width:100%!important;border:0!important}
  .wallet-recent-1219 thead{display:none!important}
  .wallet-recent-1219,.wallet-recent-1219 tbody,.wallet-recent-1219 tr,.wallet-recent-1219 td{display:block!important;width:auto!important}
  .wallet-recent-1219 tr{border:1px solid #e3eaf1!important;border-radius:10px;padding:8px 12px;margin:0 0 8px;background:#fff}
  .wallet-recent-1219 td{display:flex!important;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0!important;border:0!important;height:auto!important;min-height:0!important;text-align:right!important;font-size:.82rem;white-space:normal!important}
  .wallet-recent-1219 td::before{content:attr(data-label);flex:none;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;text-align:left}
  .wallet-recent-1219 td>*{min-width:0}
  .wallet-recent-1219 td small{display:inline}
}

/* (16) Selection column: fixed 44px with a centred checkbox on every list. */
#app table.data-table th.select-col-126,#app table.data-table td.select-col-126,
#app table.data-table thead th:first-child:has(> input[type="checkbox"]),#app table.data-table tbody td:first-child:has(> input[type="checkbox"]){width:44px!important;min-width:44px!important;max-width:44px!important;padding:0!important;text-align:center!important;box-sizing:border-box!important}
#app table.data-table th.select-col-126 input[type="checkbox"],#app table.data-table td.select-col-126 input[type="checkbox"],
#app table.data-table thead th:first-child>input[type="checkbox"],#app table.data-table tbody td:first-child>input[type="checkbox"]{margin:0 auto!important;display:block!important;float:none!important;position:static!important;transform:none!important}

/* (17) Settings hints. */
#settings-form-114 small,#settings-form-114 .field small,#settings-form-114 .hint,#settings-form-114 .muted{font-size:12px!important;line-height:1.4!important;color:var(--muted)!important;font-weight:400!important}
@media(min-width:900px){
  #settings-form-114 .settings-fields-121 .qr-rotation-field-1219{grid-column:3;grid-row:2}
}

/* (18) Sidebar and phone account menu highlight. */
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]{font-weight:500!important;border-radius:8px!important;background:transparent!important;transition:background-color .12s ease,color .12s ease!important;transform:none!important;letter-spacing:0!important;box-shadow:none!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]:hover{background:#f1f6fa!important;color:var(--ink)!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]:active{background:#e3edf6!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].is-current-129,html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116][aria-current="page"],html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].active{background:#e3edf6!important;color:#173f64!important;font-weight:600!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]:focus-visible,html body.authenticated-110 #persistent-side-116 .side-nav-116 nav button:focus-visible{outline:2px solid #6f9cc6!important;outline-offset:-2px!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]::before,html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116]::after{display:none!important}
.account-popover-1218 .pop-mobile-nav-1218 nav a{font-weight:500!important;transition:background-color .12s ease!important}
.account-popover-1218 .pop-mobile-nav-1218 nav a:hover{background:#f1f6fa!important}
.account-popover-1218 .pop-mobile-nav-1218 nav a:active{background:#e3edf6!important}
.account-popover-1218 .pop-mobile-nav-1218 nav a.active{background:#e3edf6!important;color:#173f64!important;font-weight:600!important}
.account-popover-1218 .pop-mobile-nav-1218 nav a:focus-visible{outline:2px solid #6f9cc6;outline-offset:-2px}

/* (19) Admin list columns. */
.categories-table-1218 th.center-1219,.categories-table-1218 td.center-1219{text-align:center!important}
.categories-table-1218 th.center-1219 a{justify-content:center!important}
.requests-table-126 .request-merchant-col-1219{min-width:150px}
.requests-table-126 .request-merchant-col-1219 strong{display:block;font-weight:600}
.requests-table-126 .request-merchant-col-1219 small{display:block;color:var(--muted);font-size:.74rem}
.requests-table-126 .req-line2-1219{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px}
.requests-table-126 .req-cat-1219{flex:none;font-size:.66rem;font-weight:700;color:#315c84;background:#edf4fb;border-radius:999px;padding:1px 7px;white-space:nowrap}
.history-table-1210 td.email-message-1219{max-width:320px;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.8rem}
.audit-table-1219{min-width:0!important}
.audit-table-1219 td.audit-description-1210{white-space:normal!important;overflow-wrap:anywhere;word-break:normal;min-width:220px}
.audit-table-1219 td.audit-user-1219 strong{display:block;font-weight:700}
.audit-table-1219 td.audit-user-1219 small{display:block;color:var(--muted);font-size:.74rem;overflow-wrap:anywhere}
.diagnostics-bar-1218.diagnostics-left-1219{justify-content:flex-start!important}

/* (21) Profile: preferred categories as normal checkboxes in a tidy grid. */
.profile-check-grid-113{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px 18px!important;margin-top:6px!important;width:100%!important}
.profile-check-grid-113>label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;min-height:0!important;height:auto!important;padding:3px 0!important;margin:0!important;font-size:.86rem!important;font-weight:500!important;color:var(--ink)!important;line-height:1.3!important;cursor:pointer;width:auto!important;border:0!important;background:none!important}
#app .profile-check-grid-113>label>input[type="checkbox"]{width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;min-height:0!important;flex:0 0 16px!important;margin:0!important;padding:0!important;border-radius:3px!important;box-shadow:none!important;appearance:auto!important;-webkit-appearance:checkbox!important}
@media(max-width:1100px){.profile-check-grid-113{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:620px){.profile-check-grid-113{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* (22) Add / edit account: every field the same width. */
#account-create-1110 #account-create-role-fields-1110,.account-create-1110 #account-create-role-fields-1110{display:contents!important}
#account-create-1110>.field,#account-create-1110 #account-create-role-fields-1110>.field,#account-create-1110 #account-create-role-fields-1110 .field,#account-create-1110 #account-create-message-1110{width:100%!important;max-width:560px!important;box-sizing:border-box!important}
#account-create-1110 .field input,#account-create-1110 .field select{width:100%!important;max-width:none!important;box-sizing:border-box!important}

/* (23) Public voucher cards: price row follows the merchant line. */
#app .voucher-card-118:not(.wallet-voucher-card-116){display:flex!important;flex-direction:column!important;height:100%}
#app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-body{min-height:0!important;flex:1 1 auto!important;display:flex!important;flex-direction:column!important}
#app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-title{min-height:0!important;height:auto!important}
#app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-card-spacer{min-height:0!important;height:auto!important;flex:1 1 0!important}
#app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-card-bottom{margin-top:0!important;padding-top:0!important;min-height:0!important}

/* (6) One-time notice after a non-buyer signs in from Checkout. */
.checkout-role-notice-1219{display:block;margin:4px 0 14px!important;padding:10px 14px!important;border-radius:8px!important;background:#fdf0f1!important;border:1px solid #f3c9ce!important;color:#b92d3b!important;font-size:.86rem!important;font-weight:700!important}
#modal-root .modal.modal-detail-1219 dt{font-size:.72rem!important;text-transform:none!important;letter-spacing:0!important;font-weight:700!important;color:var(--muted)!important}
#modal-root .modal.modal-detail-1219 dd{font-size:.82rem!important;margin-left:0}
/* (16) Lists whose columns are all sized: the main text column absorbs the spare width so the checkbox column stays 44px. */
#app table.transactions-table-126 td.tx-voucher-merchant-col-126,#app table.transactions-table-126 th.tx-voucher-merchant-col-126,#app table.requests-table-126 td.request-item-col-126{width:100%!important}
@media(max-width:620px){#app .profile-sector-grid-1110{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px 14px!important}}

/* (M1) Requests fit their container at 1280–1440 px. */
#app table.requests-table-126{min-width:0!important;width:100%!important}
#app table.requests-table-126 th,#app table.requests-table-126 td{padding-left:8px!important;padding-right:8px!important}
#app table.requests-table-126 th.select-col-126,#app table.requests-table-126 td.select-col-126{padding:0!important}
#app table.requests-table-126 td.request-modified-col-126{white-space:normal!important;min-width:82px;font-size:.8rem}
#app table.requests-table-126 th a.sortable-heading-116{white-space:normal!important}
#app table.requests-table-126 td.requester-col-126 small,#app table.requests-table-126 td.request-merchant-col-1219 strong,#app table.requests-table-126 td.request-item-col-126{overflow-wrap:anywhere;word-break:normal}
#app table.requests-table-126 .request-merchant-col-1219{min-width:110px!important}
#app table.requests-table-126 td.request-type-col-126{min-width:80px}
#app table.requests-table-126 td.actions-col-126{white-space:nowrap;width:1%}
#app table.requests-table-126 td.actions-col-126 .icon-actions-110{gap:2px!important}
.req-more-1219{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:#eef3f8;color:#315c84;font-size:.68rem;font-weight:700;white-space:nowrap;vertical-align:1px}
#modal-root .request-vouchers-1219{margin-top:4px!important}
#modal-root .request-vouchers-1219 tfoot td{border-top:1px solid #dfe7ee;padding-top:8px}
/* (L1) Audit table fits its container. */
#app table.audit-table-1219{width:100%!important;min-width:0!important}
#app table.audit-table-1219 td.audit-user-1219 small{overflow-wrap:anywhere}
#app table.audit-table-1219 td.audit-description-1210{min-width:160px}
#app table.audit-table-1219 th a.sortable-heading-116{white-space:normal!important}
#app table.requests-table-126 td.request-modified-col-126.nowrap{white-space:normal!important}
#app table.requests-table-126 td.request-id-col-126 .id-cell-116,#app table.requests-table-126 td.request-id-col-126{font-size:.72rem!important;white-space:nowrap}
#app table.requests-table-126 td.actions-col-126 .icon-btn-110{width:30px!important;min-width:30px!important;height:30px!important;padding:0!important}
#app table.requests-table-126 td.request-type-col-126{white-space:normal!important}
#app table.requests-table-126 td.requester-col-126 strong{overflow-wrap:anywhere}
#app table.requests-table-126 thead th{white-space:normal!important}
#app table.requests-table-126 td.request-id-col-126{min-width:96px!important}
#app table.requests-table-126 td.request-type-col-126{min-width:78px!important}
#app table.requests-table-126 td.requester-col-126{min-width:120px!important}
#app table.requests-table-126 td.request-item-col-126{min-width:140px!important}
#app table.requests-table-126 td.request-modified-col-126{min-width:84px!important}
#app table.requests-table-126 td.request-amount-col-126{min-width:0!important;white-space:nowrap}
#app table.requests-table-126 td.request-status-col-126{min-width:0!important}
#app table.requests-table-126 td.actions-col-126{min-width:0!important}
/* (L3) Inline reason/apply row inside the table. */
#app tr.inline-confirm-row-1219>td{padding:8px 12px!important;background:#f7fafc!important}
#app tr.inline-confirm-row-1219 .inline-confirm-110{display:flex!important;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;position:static!important;margin:0!important;max-width:100%}
#app tr.inline-confirm-row-1219 .inline-confirm-110 input{flex:0 1 320px;min-width:160px}
/* (M2) Single-column card lists: no equalised heights, price ~12px under the merchant line. */
@media(max-width:620px){
  #app .voucher-card-118:not(.wallet-voucher-card-116){min-height:0!important;height:auto!important}
  #app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-body{min-height:0!important;height:auto!important}
  #app .voucher-card-118:not(.wallet-voucher-card-116) .voucher-card-spacer{flex:0 0 0!important}
}
/* (L5) Contact captcha row stays inside the margins on phones. */
@media(max-width:620px){
  #contact-form .captcha-row{grid-template-columns:minmax(0,1fr) minmax(110px,145px)!important;max-width:100%!important}
  #contact-form .captcha-row>*{min-width:0!important}
  #contact-form .captcha-row img,#contact-form .captcha-row canvas{max-width:100%!important;height:auto}
  #contact-form .captcha-field input{width:100%!important;min-width:0!important}
}
/* END RYU 1.2.19 UI CSS */
/* BEGIN RYU 1.2.20 FLOW CSS */
/* ========================================================================== */
/* RYU Portal 1.2.20 — FLOW layer (Stream B): checkout, order page, top-up,    */
/* payout, admin settings, My QR, recent scans, sold-out states.               */
/* ========================================================================== */
.ic-b20{width:18px;height:18px;flex:none;display:inline-block;vertical-align:middle}
.sr-only-b20{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.spin-b20{width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;animation:spinB20 .7s linear infinite;flex:none}
.is-busy-b20 .ic-b20{display:none}
@keyframes spinB20{to{transform:rotate(360deg)}}
.thumb-b20{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;overflow:hidden;background:#eef3f8;color:#6b7f93;flex:none}
.thumb-b20 img{width:40px;height:40px;object-fit:cover;display:block}
.btn-danger-soft-b20{color:#b42f3a!important;background:#fff4f5!important;border:1px solid #f6d3d6!important}
.btn-danger-soft-b20:hover{background:#ffe9eb!important}

/* ---------- Payment method buttons (checkout + top-up) ---------- */
.pm-list-b20{display:grid;gap:8px}
.pm-btn-b20{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;border:1px solid #d6e1ec;border-radius:12px;background:#fff;color:#173b63;font:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}
.pm-btn-b20:hover{border-color:#a9c2da;background:#fafcfe}
.pm-btn-b20:focus-visible,.ck-merchant-opt-b20:focus-visible,.chip-b20:focus-visible{outline:2px solid #2d638f;outline-offset:2px}
.pm-btn-b20.on{border-color:#1e4e7a;background:#f2f7fc;box-shadow:inset 0 0 0 1px #1e4e7a}
.pm-btn-b20.unsupported .pm-txt-b20 small{color:#a56a00}
.pm-ic-b20{width:36px;height:36px;border-radius:10px;background:#eaf2f9;color:#1e4e7a;display:grid;place-items:center;flex:none}
.pm-btn-b20.on .pm-ic-b20{background:#1e4e7a;color:#fff}
.pm-btn-b20.unsupported .pm-ic-b20{background:#f3f4f6;color:#8796a5}
.pm-ic-b20 .ic-b20{width:20px;height:20px}
.pm-txt-b20{display:grid;gap:2px;min-width:0;flex:1}
.pm-txt-b20 strong{font-size:14px;font-weight:750;line-height:1.25}
.pm-txt-b20 small{font-size:12px;color:#6b7f93;line-height:1.35}
.pm-dot-b20{width:18px;height:18px;border-radius:50%;border:2px solid #b8c8d8;flex:none;position:relative}
.pm-btn-b20.on .pm-dot-b20,.ck-merchant-opt-b20.on .pm-dot-b20{border-color:#1e4e7a}
.pm-btn-b20.on .pm-dot-b20::after,.ck-merchant-opt-b20.on .pm-dot-b20::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#1e4e7a}
.pm-msg-b20{display:flex;gap:9px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.45}
.pm-msg-b20 .ic-b20{margin-top:1px}
.pm-msg-b20.warn{background:#fff8e8;color:#7a5200;border:1px solid #f3dfae}
.pm-msg-b20.error{background:#fff2f3;color:#a3232e;border:1px solid #f6cfd3}
.ck-sub-b20{font-size:13px;font-weight:800;color:#173b63;margin:18px 0 8px;text-transform:none;letter-spacing:0}

/* ---------- Checkout ---------- */
.ck-page-b20{width:100%}
.ck-head-b20{margin:0 0 18px}
.ck-head-b20 .page-title{margin:0}
.ck-head-b20 .page-subtitle{margin:4px 0 0}
.ck-grid-b20{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.ck-lines-b20{background:#fff;border:1px solid #dce5ee;border-radius:14px;overflow:hidden;min-width:0}
.ck-table-b20{width:100%;border-collapse:collapse;font-size:14px}
.ck-table-b20 th{background:#f5f8fb;color:#5f738a;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:11px 14px;border-bottom:1px solid #dce5ee;white-space:nowrap}
.ck-table-b20 td{padding:12px 14px;border-bottom:1px solid #edf2f7;vertical-align:middle;color:#324a62}
.ck-table-b20 tr:last-child td{border-bottom:0}
.ck-table-b20 .num{text-align:right;white-space:nowrap}
.ck-table-b20 .ck-photo-b20{width:56px;padding-right:0}
.ck-voucher-b20 a{display:block;font-weight:700;color:#173b63;line-height:1.3}
.ck-voucher-b20 a:hover{text-decoration:underline}
.ck-voucher-b20 small,.op-voucher-b20 small,.op-merchant-b20 small{display:block;color:#8796a5;font-size:12px;margin-top:2px}
.ck-out-b20{opacity:.5}
.ck-stay-b20{display:inline-block;margin-top:4px;font-size:11.5px;font-weight:700;color:#5f738a;background:#eef3f8;border-radius:999px;padding:2px 8px}
.ck-cards-b20{display:none;list-style:none;margin:0;padding:0}
.ck-empty-b20{padding:28px;text-align:center;display:grid;gap:12px;justify-items:center}
.ck-summary-b20{position:sticky;top:calc(var(--header,72px) + 16px);background:#f7fafd;border:1px solid #dce5ee;border-radius:16px;padding:18px;display:grid;gap:0}
.ck-summary-b20 h2{font-size:16px;margin:0 0 10px;color:#173b63}
.ck-totals-b20{margin:0;display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid #dce5ee}
.ck-totals-b20 div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ck-totals-b20 dt{color:#5f738a;font-size:13px}
.ck-totals-b20 dd{margin:0;font-size:13px;color:#324a62}
.ck-total-b20 dt{font-weight:800;color:#173b63;font-size:15px}
.ck-total-b20 .amt-1220{font-size:22px}
.ck-pick-b20{margin-top:12px;display:grid;gap:8px}
.ck-pick-head-b20{display:flex;gap:8px;margin:0;font-size:12.5px;line-height:1.45;color:#4b6178}
.ck-pick-head-b20 .ic-b20{color:#2d638f;margin-top:1px}
.ck-merchant-opt-b20{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid #d6e1ec;border-radius:11px;background:#fff;text-align:left;font:inherit;color:#173b63;cursor:pointer}
.ck-merchant-opt-b20:hover{border-color:#a9c2da}
.ck-merchant-opt-b20.on{border-color:#1e4e7a;box-shadow:inset 0 0 0 1px #1e4e7a;background:#f2f7fc}
.ck-mo-name-b20{display:grid;flex:1;min-width:0}
.ck-mo-name-b20 strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-mo-name-b20 small{font-size:12px;color:#6b7f93}
.ck-hint-b20{margin:10px 0 0;font-size:12.5px;color:#6b7f93}
.ck-submit-b20{width:100%;margin-top:16px;min-height:46px;font-size:15px}
.ck-submit-b20:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.ck-back-b20{width:100%;margin-top:8px}

/* ---------- Order confirmation page ---------- */
.order-page-b20{display:grid;gap:18px;width:100%;min-width:0}
.order-hero-b20{display:flex;align-items:flex-start;gap:14px}
.order-hero-ic-b20{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;background:#e7f5ee;color:#17794f}
.order-hero-ic-b20 .ic-b20{width:26px;height:26px}
.order-hero-b20.pending .order-hero-ic-b20{background:#fff4dc;color:#a56a00}
.order-hero-b20.void .order-hero-ic-b20{background:#f1f3f5;color:#6b7f93}
.order-hero-b20 h1{margin:2px 0 4px;font-size:28px;line-height:1.2;color:#173b63}
.order-hero-b20 > div{flex:1;min-width:0}
.order-sub-b20{margin:0;color:#5f738a;font-size:14.5px;overflow-wrap:anywhere}
.order-reason-b20{margin-top:4px;color:#4b6178}
.order-badge-b20{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;margin-top:6px}
.order-badge-b20.ok{background:#e7f5ee;color:#17734f}
.order-badge-b20.pending{background:#fff4dc;color:#8a5a00}
.order-badge-b20.void{background:#f1f3f5;color:#5f738a}
.order-facts-b20{margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;background:#f5f8fb;border:1px solid #e1e9f1;border-radius:14px;overflow:hidden}
.order-facts-b20 div{padding:12px 14px;min-width:0;border-right:1px solid #e1e9f1}
.order-facts-b20 div:last-child{border-right:0}
.order-facts-b20 dt{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6b7f93;margin:0 0 4px}
.order-facts-b20 dd{margin:0;font-size:14px;color:#173b63;font-weight:600;overflow-wrap:anywhere}
.order-no-b20{font-variant-numeric:tabular-nums;font-size:13px!important;overflow-wrap:anywhere}
.order-pending-b20{border:1px solid #f0dfb6;background:#fffbf1;border-radius:14px;padding:16px 18px}
.order-pending-b20 h2{margin:0 0 8px;font-size:16px;color:#173b63}
.order-pending-b20 p{margin:0 0 6px;color:#4b6178;font-size:14px}
.order-steps-b20{margin:0;padding-left:20px;display:grid;gap:6px;color:#324a62;font-size:14px;line-height:1.5}
.order-expiry-b20{display:flex;align-items:flex-start;gap:7px;margin:10px 0 0!important;font-size:13px!important;color:#7a5200!important}
.order-pending-actions-b20{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.order-lines-b20{min-width:0}
.op-table-wrap-b20{background:#fff;border:1px solid #dce5ee;border-radius:14px;overflow-x:auto}
.op-table-b20{width:100%;border-collapse:collapse;font-size:14px}
.op-table-b20 th{background:#f5f8fb;color:#5f738a;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:11px 12px;border-bottom:1px solid #dce5ee;white-space:nowrap}
.op-table-b20 td{padding:11px 12px;border-bottom:1px solid #edf2f7;vertical-align:middle;color:#324a62}
.op-table-b20 .num{text-align:right;white-space:nowrap}
.op-table-b20 .op-photo-b20{width:56px;padding-right:0}
.op-voucher-b20 a{font-weight:700;color:#173b63}
.op-merchant-b20 a{color:#1e4e7a;font-weight:600}
.op-voucher-b20 a:hover,.op-merchant-b20 a:hover{text-decoration:underline}
.op-tx-b20{font-variant-numeric:tabular-nums;white-space:nowrap}
.op-table-b20 tfoot td{border-bottom:0;background:#fafcfe;font-weight:800;color:#173b63}
.op-foot-label-b20{text-align:right}
.op-total-b20 .amt-1220{font-size:16px}
.cat-pill-b20{display:inline-block;padding:2px 9px;border-radius:999px;background:#eef4fa;color:#2d5a85;font-size:12px;font-weight:700;white-space:nowrap}
.op-cards-b20,.op-totalbar-b20{display:none}
.order-fees-b20{border:1px solid #dce5ee;border-radius:14px;padding:14px 18px;background:#fff}
.order-fees-b20 h2{margin:0 0 8px;font-size:15px;color:#173b63}
.order-fees-b20 dl{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.order-fees-b20 dt{font-size:12px;color:#6b7f93;font-weight:700}
.order-fees-b20 dd{margin:2px 0 0}
.order-fees-b20 .amt-1220{text-align:left;font-size:16px}
.order-fees-note-b20{margin:8px 0 0;font-size:12px;color:#8796a5}
.order-actions-b20{display:flex;flex-wrap:wrap;gap:10px}
.order-missing-b20{text-align:center;display:grid;justify-items:center;gap:8px;padding:40px 16px}
.order-missing-b20 .ic-b20{width:32px;height:32px;color:#a56a00}
.order-missing-b20 h1{margin:0;font-size:22px;color:#173b63}
.modal-confirm-b20{max-width:440px}
.confirm-b20 p{margin:0 0 12px;font-size:14px;line-height:1.5;color:#324a62}
.confirm-field-b20{margin-bottom:10px}
.confirm-field-b20 textarea{width:100%}
.confirm-b20 .form-actions{justify-content:flex-end}

/* ---------- Top-up ---------- */
.topup-card-b20{max-width:640px}
.topup-form-b20{display:grid;gap:4px}
.topup-form-b20 .ck-sub-b20{margin-top:4px}
.topup-amount-b20{margin-top:16px}
.yen-input-b20{display:flex;align-items:center;border:1px solid #ccd8e4;border-radius:11px;background:#fff;padding:0 0 0 12px;min-height:44px}
.yen-input-b20:focus-within{border-color:#7ca7cc;box-shadow:0 0 0 3px rgba(69,127,174,.1)}
.yen-input-b20 > span{color:#6b7f93;font-weight:700}
.field .yen-input-b20 input{border:0!important;box-shadow:none!important;width:100%!important;min-height:42px;padding-left:6px;font-variant-numeric:tabular-nums;font-size:16px;background:transparent}
.yen-input-b20:has(input:disabled){background:#f5f7fa}
.topup-chips-b20{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip-b20{border:1px solid #d6e1ec;background:#fff;color:#1e4e7a;border-radius:999px;padding:5px 11px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.chip-b20:hover{background:#f2f7fc;border-color:#a9c2da}
.field-msg-b20{min-height:18px;margin:6px 0 0;font-size:13px;color:#a3232e}
.topup-form-b20 .form-actions{margin-top:6px}

/* ---------- Payout page ---------- */
.po-page-b20{display:grid;gap:18px;max-width:760px;width:100%}
.po-head-b20 .page-title{margin:4px 0 0}
.po-head-b20 .page-subtitle{margin:4px 0 0}
.po-back-b20{display:inline-flex;align-items:center;gap:4px;color:#1e4e7a;font-weight:700;font-size:13.5px}
.po-back-b20:hover{text-decoration:underline}
.po-stats-b20{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.po-stat-b20{border-radius:14px;padding:14px 16px;display:grid;gap:4px;align-content:start;border:1px solid transparent}
.po-stat-b20 span{font-size:12.5px;font-weight:800}
.po-stat-b20 strong{font-size:22px;font-variant-numeric:tabular-nums;color:#173b63}
.po-stat-b20 small{font-size:12px;color:#6b7f93}
.po-stat-b20.avail{background:#eef5fd;border-color:#d7e7f8}.po-stat-b20.avail span{color:#1d5a93}
.po-stat-b20.pend{background:#f4f0fd;border-color:#e3dbf8}.po-stat-b20.pend span{color:#5b3fa6}
.po-stat-b20.min{background:#f5f7fa;border-color:#e3e9f0}.po-stat-b20.min span{color:#4b6178}
.po-card-b20 form{display:grid;gap:10px}
.po-card-b20 .field textarea{width:100%}
.po-card-b20 .field-msg-b20{margin:-4px 0 0}
.po-actions-b20{margin-top:4px}
.po-actions-b20 .btn-primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.po-recent-b20 h2{font-size:16px;margin:0 0 8px;color:#173b63}
.po-recent-b20 ul{list-style:none;margin:0;padding:0;background:#fff;border:1px solid #dce5ee;border-radius:14px;overflow:hidden}
.po-recent-row-b20{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid #edf2f7}
.po-recent-row-b20:last-child{border-bottom:0}
.po-recent-row-b20 strong{display:block;font-size:13.5px;color:#173b63;font-variant-numeric:tabular-nums}
.po-recent-row-b20 small{font-size:12px;color:#8796a5}
.po-recent-row-b20 .amt-1220{text-align:right}

/* ---------- Admin Settings ---------- */
.set-form-b20{max-width:none;width:100%}
.set-form-b20{display:grid;gap:14px}
.set-sec-b20{background:#fff;border:1px solid #dce5ee;border-radius:14px;padding:16px 18px 18px}
.set-sec-b20 h2{font-size:15px;margin:0 0 12px;color:#173b63}
.set-grid-b20{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;align-items:start}
.set-field-b20{min-width:0}
.set-field-b20 > span{font-size:12.5px;font-weight:800;color:#173b63}
.set-grid-b20 .field input,.set-grid-b20 .field select,.set-grid-b20 .field textarea,.set-test-form-b20 .field input{width:100%!important;max-width:none!important;min-width:0}
.set-hint-b20{display:block;font-size:12px;color:#7a8b9d;line-height:1.4;font-weight:400}
.set-span-all-b20{grid-column:1/-1}
.set-checks-b20{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;align-items:center}
.set-checks-label-b20{grid-column:1/-1;font-size:12.5px;font-weight:800;color:#173b63}
.set-check-b20{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 12px;border:1px solid #dce5ee;border-radius:11px;background:#fafcfe;color:#173b63;font-weight:600;font-size:13.5px;cursor:pointer;min-width:0}
.set-check-b20 input{width:18px!important;height:18px;min-height:0;margin:0;flex:none;accent-color:#1e4e7a}
.set-check-b20:has(input:checked){border-color:#b9d0e6;background:#f2f7fc}
.set-key-b20,.set-key-replace-b20{display:flex;align-items:center;gap:8px;min-height:42px;flex-wrap:nowrap}
.set-key-b20{border:1px solid #dce5ee;border-radius:11px;background:#f7fafd;padding:0 6px 0 12px;justify-content:space-between}
.set-key-state-b20{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#17734f;font-weight:700;min-width:0;overflow:hidden}
.set-key-state-b20 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-key-b20 .btn{flex:none;min-height:32px;padding:5px 10px}
.set-key-replace-b20 input{flex:1;min-width:0}
.set-grid-b20 .set-key-replace-b20 input{width:auto!important}
.set-field-b20.invalid-b20 input,.set-field-b20.invalid-b20 select,.set-field-b20.invalid-b20 textarea{border-color:#d9474f}
.set-msg-b20:empty{display:none}
.set-actions-b20{margin:0}
.set-actions-b20 .btn{min-width:160px}
.set-test-b20{margin-top:18px;padding-top:16px;border-top:1px solid #e6edf4}
.set-test-b20 h3{font-size:14px;margin:0 0 4px;color:#173b63}
.set-test-intro-b20{margin:0 0 10px}
.set-test-form-b20{align-items:end}
.set-test-to-b20{grid-column:span 2}
.set-test-btn-b20{display:flex;align-items:flex-end}
.set-test-btn-b20 .btn{width:100%}
.set-test-form-b20 .btn{min-height:42px}
.test-result-b20:empty{display:none}
.test-result-b20{margin-top:14px;max-width:820px}
.test-card-b20{border:1px solid #dce5ee;border-radius:12px;padding:12px 14px;background:#fafcfe}
.test-card-b20.pass{border-color:#cfe9db;background:#f5fbf8}
.test-card-b20.fail{border-color:#f3d1d4;background:#fff8f8}
.test-top-b20{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.test-badge-b20{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-weight:800;font-size:12.5px}
.test-badge-b20.pass{background:#dff3e8;color:#17734f}
.test-badge-b20.fail{background:#fde4e6;color:#a3232e}
.test-badge-b20 .ic-b20{width:16px;height:16px}
.test-reason-b20{font-size:14px;color:#324a62;font-weight:600}
.test-meta-b20{margin:6px 0 0;font-size:12.5px;color:#6b7f93;overflow-wrap:anywhere}
.test-raw-b20{margin-top:10px}
.test-raw-b20 summary{cursor:pointer;font-size:13px;font-weight:700;color:#1e4e7a}
.test-kv-b20{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;margin:10px 0}
.test-kv-b20 dt{font-size:11.5px;color:#6b7f93;font-weight:700}
.test-kv-b20 dd{margin:1px 0 0;font-size:12.5px;color:#173b63;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.test-raw-b20 h4{margin:10px 0 4px;font-size:12px;color:#4b6178}
.test-raw-b20 pre{margin:0;background:#0f2740;color:#dbe7f3;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word}

/* ---------- Merchant My QR ---------- */
.mq-head-b20{display:block;text-align:center;margin-bottom:8px}
.mq-head-b20 .page-title{margin:0}
.mq-loc-b20{display:flex;justify-content:center;align-items:center;gap:6px;margin:6px 0 0;color:#5f738a;font-size:14px}
.mq-loc-b20 .ic-b20{width:16px;height:16px;color:#7a8b9d}
.mq-wrap-b20{width:100%;max-width:320px;margin:0 auto;display:grid;justify-items:center}
.mq-qr-b20{width:100%;display:grid;justify-items:center;gap:10px}
.mq-code-b20 .qr-img-r19{width:280px;height:280px;max-width:100%;display:block;image-rendering:pixelated;border:0;box-shadow:none;border-radius:0}
.mq-raw-b20{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%}
.mq-raw-b20 code{font-size:12.5px;color:#4b6178;overflow-wrap:anywhere;text-align:center;background:none;padding:0}
.mq-iconbtn-b20{width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:#5f738a;display:grid;place-items:center;flex:none;cursor:pointer}
.mq-iconbtn-b20:hover{background:#eef3f8;color:#1e4e7a}
.mq-iconbtn-b20.copied-b20{color:#17794f}
.mq-iconbtn-b20.loading-r19 .ic-b20{animation:spinB20 .8s linear infinite}
.mq-timer-b20{display:flex;align-items:center;gap:8px;width:100%}
.mq-bar-b20{flex:1;height:4px;border-radius:4px;background:#e3eaf2;overflow:hidden;margin:0}
.mq-bar-b20 i{display:block;height:100%;background:#2d638f;border-radius:4px}
.expiring-r19 .mq-bar-b20 i{background:#c98a00}
.mq-scan-b20{width:100%;margin-top:24px;min-height:48px;font-size:15px}
.mq-qr-b20 + .mq-scan-b20{margin-top:24px}
.mq-wrap-b20 > .mq-scan-b20:first-child{margin-top:8px}
.mq-result-b20{width:100%;margin-top:12px}
.mq-result-b20:empty{display:none}

/* ---------- Buyer Scan QR — recent scans ---------- */
.rs-b20{margin-top:20px}
.rs-head-b20{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.rs-head-b20 h2{font-size:17px;margin:0;color:#173b63}
.rs-sub-b20{font-size:12.5px;color:#8796a5}
.rs-loading-b20{display:flex;gap:8px;align-items:center;color:#6b7f93;padding:16px}
.rs-empty-b20{display:grid;justify-items:center;gap:4px;text-align:center;padding:26px 16px;background:#fff;border:1px dashed #d3dee9;border-radius:14px;color:#5f738a;margin:0}
.rs-empty-b20 .ic-b20{width:28px;height:28px;color:#9aabbc}
.rs-empty-b20 p{margin:4px 0 0;font-weight:700;color:#324a62}
.rs-empty-b20 small{font-size:12.5px}
.rs-table-wrap-b20{background:#fff;border:1px solid #dce5ee;border-radius:14px;overflow-x:auto}
.rs-table-b20{width:100%;border-collapse:collapse;font-size:13.5px}
.rs-table-b20 th{background:#f5f8fb;color:#5f738a;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:10px 12px;border-bottom:1px solid #dce5ee;white-space:nowrap}
.rs-table-b20 td{padding:10px 12px;border-bottom:1px solid #edf2f7;vertical-align:middle;color:#324a62}
.rs-table-b20 tbody tr{cursor:pointer}
.rs-table-b20 tbody tr:hover{background:#f8fbfd}
.rs-table-b20 tr:last-child td{border-bottom:0}
.rs-table-b20 .num{text-align:right}
.rs-merchant-b20{display:inline-flex;align-items:center;gap:8px;font-weight:650;color:#173b63}
.rs-logo-b20{width:28px;height:28px;border-radius:50%;overflow:hidden;background:#eef3f8;color:#6b7f93;display:grid;place-items:center;flex:none}
.rs-logo-b20 img{width:100%;height:100%;object-fit:cover}
.rs-logo-b20 .ic-b20{width:16px;height:16px}
.rs-vcell-b20 small{display:block;color:#8796a5;font-size:12px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs-count-b20{font-weight:650}
.rs-reason-b20{color:#6b7f93;font-size:12.5px;max-width:260px}
.rs-badge-b20{display:inline-flex;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.rs-badge-b20.ok{background:#e3f4ea;color:#17734f}
.rs-badge-b20.fail{background:#fde8ea;color:#a3232e}
.rs-list-b20{display:none;list-style:none;margin:0;padding:0;background:#fff;border:1px solid #dce5ee;border-radius:14px;overflow:hidden}
.rs-row-b20{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;padding:10px 12px;border:0;border-bottom:1px solid #edf2f7;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer}
.rs-list-b20 li:last-child .rs-row-b20{border-bottom:0}
.rs-row-b20 .rs-logo-b20{width:36px;height:36px}
.rs-row-main-b20{flex:1;min-width:0;display:grid;gap:2px}
.rs-row-l1-b20{display:flex;align-items:center;gap:6px;min-width:0}
.rs-row-l1-b20 strong{font-size:14px;color:#173b63;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs-row-main-b20 small{font-size:12px;color:#8796a5}
.rs-row-right-b20{display:grid;justify-items:end;gap:2px;flex:none}
.rs-row-right-b20 small{font-size:12px;color:#6b7f93}
.rs-pager-b20{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:#5f738a}
.rs-pager-b20 .btn{min-height:32px;padding:4px 8px}
.rs-detail-sub-b20{font-size:14px;margin:14px 0 6px;color:#173b63}
.rs-detail-lines-b20{list-style:none;margin:0;padding:0;border:1px solid #e3eaf2;border-radius:10px}
.rs-detail-lines-b20 li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid #edf2f7;font-size:13.5px}
.rs-detail-lines-b20 li:last-child{border-bottom:0}
.modal-head .rs-badge-b20{margin-left:8px;margin-right:auto}

/* ---------- Sold out / unavailable ---------- */
.btn-unavailable-b20,.btn-unavailable-b20:hover,.btn-unavailable-b20:focus{background:#eef1f4!important;color:#6b7785!important;border:1px solid #dde3e9!important;box-shadow:none!important;cursor:default!important;min-height:44px;padding:10px 18px}
.btn-unavailable-b20 .ic-b20{color:#8a96a3}
.voucher-actions-b20{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.voucher-card .voucher-image{position:relative}
.soldout-badge-b20{position:absolute;left:10px;top:10px;z-index:2;background:rgba(23,37,54,.82);color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px;pointer-events:none}
.sold-out-b20 .voucher-image img{filter:grayscale(.35) brightness(.96)}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .ck-grid-b20{grid-template-columns:minmax(0,1fr) 300px;gap:18px}
  .order-facts-b20{grid-template-columns:repeat(3,minmax(0,1fr))}
  .order-facts-b20 div{border-bottom:1px solid #e1e9f1}
  .order-facts-b20 div:nth-child(3n){border-right:0}
}
@media (max-width:900px){
  .set-test-to-b20{grid-column:auto}
  .ck-grid-b20{grid-template-columns:1fr}
  .ck-summary-b20{position:static}
  .set-grid-b20,.set-checks-b20{grid-template-columns:repeat(2,minmax(0,1fr))}
  .order-facts-b20{grid-template-columns:repeat(2,minmax(0,1fr))}
  .order-facts-b20 div:nth-child(3n){border-right:1px solid #e1e9f1}
  .order-facts-b20 div:nth-child(2n){border-right:0}
  .op-table-wrap-b20{display:none}
  .op-cards-b20{display:grid;list-style:none;margin:0;padding:0;gap:8px}
  .op-card-b20{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dce5ee;border-radius:12px;padding:10px 12px}
  .op-card-b20 .thumb-b20,.op-card-b20 .thumb-1220,.op-card-b20 .thumb-b20 img,.op-card-b20 .thumb-1220 img{width:56px;height:56px;border-radius:10px}
  .op-card-main-b20{flex:1;min-width:0;display:grid;gap:2px}
  .op-card-main-b20 strong{font-size:14px;color:#173b63;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .op-card-main-b20 > small{font-size:12.5px;color:#6b7f93}
  .op-card-meta-b20{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}
  .op-card-qty-b20{font-size:12.5px;color:#5f738a}
  .op-totalbar-b20{display:flex;align-items:center;gap:10px;margin-top:8px;background:#f5f8fb;border:1px solid #e1e9f1;border-radius:12px;padding:12px 14px;font-weight:800;color:#173b63}
  .op-totalbar-qty-b20{flex:1;font-weight:600;color:#5f738a;font-size:13px}
  .op-totalbar-b20 .amt-1220{font-size:17px}
}
@media (max-width:640px){
  .ck-table-b20{display:none}
  .ck-cards-b20{display:block}
  .ck-card-b20{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #edf2f7}
  .ck-card-b20:last-child{border-bottom:0}
  .ck-card-main-b20{flex:1;min-width:0;display:grid;gap:1px}
  .ck-card-main-b20 strong{font-size:14px;color:#173b63;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ck-card-main-b20 small{font-size:12px;color:#6b7f93}
  .ck-summary-b20{padding:16px}
  .order-hero-b20 h1{font-size:22px}
  .order-hero-ic-b20{width:40px;height:40px}
  .order-facts-b20{grid-template-columns:1fr}
  .order-facts-b20 div,.order-facts-b20 div:nth-child(3n){border-right:0;display:flex;justify-content:space-between;gap:12px;padding:10px 14px}
  .order-facts-b20 div:last-child{border-bottom:0}
  .order-facts-b20 dt{margin:0;flex:none}
  .order-facts-b20 dd{text-align:right}
  .order-actions-b20 .btn,.order-pending-actions-b20 .btn{flex:1 1 100%}
  .order-fees-b20 dl{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .topup-form-b20 .form-actions .btn{width:100%}
  .po-stats-b20{grid-template-columns:1fr 1fr}
  .po-stat-b20.min{grid-column:1/-1}
  .po-stat-b20 strong{font-size:19px}
  .po-actions-b20{flex-direction:column}
  .po-actions-b20 .btn{width:100%}
  .po-recent-row-b20{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 12px}
  .po-recent-row-b20 > div{grid-row:1/3}
  .po-recent-row-b20 .amt-1220{grid-column:2;grid-row:1}
  .po-recent-row-b20 > :nth-child(2){grid-column:2;grid-row:2;justify-self:end}
  .set-sec-b20{padding:14px}
  .set-grid-b20,.set-checks-b20{grid-template-columns:1fr}
  .set-actions-b20 .btn{width:100%}
  .set-test-to-b20{grid-column:auto}
  .test-kv-b20{grid-template-columns:1fr 1fr}
  .rs-table-wrap-b20{display:none}
  .rs-list-b20{display:block}
  .rs-pager-b20{justify-content:center}
  .mq-code-b20 .qr-img-r19{width:260px;height:260px}
  .confirm-b20 .form-actions{flex-direction:column-reverse}
  .confirm-b20 .form-actions .btn{width:100%}
}
.dash-b20{color:#8796a5}
.field-msg-b20:empty{min-height:0;margin:0}
.topup-form-b20 .form-actions{margin-top:16px}
body .page-head.mq-head-b20,body.authenticated-110 .ops-content-110 .page-head.mq-head-b20{display:block!important;text-align:center!important}
body .mq-head-b20 .page-title,body.authenticated-110 .ops-content-110 .page-head.mq-head-b20 .page-title{width:100%;text-align:center!important}
/* END RYU 1.2.20 FLOW CSS */
/* BEGIN RYU 1.2.20 UI CSS */
/* ========================================================================== */
/* RYU Portal 1.2.20 — portal UI (Stream C). Spliced last.                     */
/* ========================================================================== */

/* ---------- 1.6 Public top menu: hover = soft rounded background only; selected keeps underline ---------- */
html body .app-header .public-nav a:hover,html body .app-header .public-nav a:focus-visible{text-decoration:none!important;background:rgba(26,92,145,.08)!important;border-radius:11px}
html body .app-header .public-nav a.active,html body .app-header .public-nav a.active:hover,html body .app-header .public-nav a.active:focus-visible{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:7px!important}
html body .app-header .about-nav-link:hover{text-decoration:none!important}

/* ---------- 1.7 Hamburger: icon centred in the fixed 38×38 circle, like the cart ---------- */
html body #mobile-menu-button.mobile-menu-button-1218{text-align:center;line-height:0}
html body #mobile-menu-button.mobile-menu-button-1218 svg{margin:0 auto!important;width:22px!important;height:22px!important}

/* ---------- §5.2 Sidebar: icons, states without weight shift ---------- */
.nav-ico-1220{width:20px;height:20px;flex:none;display:block}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220{display:flex!important;align-items:center!important;gap:11px!important;font-weight:500!important;color:#33475b!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220 .nav-ico-1220{color:#6b7f93}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220:hover{background:#f1f6fa!important;color:var(--ink)!important;font-weight:500!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220.active,
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220[aria-current="page"],
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220.is-current-129,
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220.active:hover,
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220[aria-current="page"]:hover{background:#dce8f4!important;color:#123a62!important;font-weight:600!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220.active .nav-ico-1220,
html body.authenticated-110 #persistent-side-116 .side-nav-116 nav a[data-side-route-116].nav-item-1220[aria-current="page"] .nav-ico-1220{color:#123a62}
html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220{display:flex!important;align-items:center!important;gap:11px!important}
html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220 .nav-ico-1220{color:#6b7f93}

/* Phone merged account menu: same icons, Profile in sidebar order, no line above Profile. */
.account-popover-1218 .pop-mobile-nav-1220 nav a{display:flex!important;align-items:center;gap:11px}
.account-popover-1218 .pop-mobile-nav-1220 nav a .nav-ico-1220{color:#6b7f93}
.account-popover-1218 .pop-mobile-nav-1220 nav a.active .nav-ico-1220{color:#123a62}
.account-popover-1218 .pop-mobile-nav-1220 nav a.active,.account-popover-1218 .pop-mobile-nav-1220 nav a.active:hover{background:#dce8f4!important;color:#123a62!important;font-weight:600!important}
.account-popover-1218 .pop-mobile-nav-1220 nav a:not(.active):hover{font-weight:500!important}
.account-popover-1218 .pop-link-1218 .nav-ico-1220{width:20px;height:20px;color:#6b7f93}
@media(max-width:820px){
  #account-popover-110.account-popover-1218 .account-popover-divider-1211{display:none!important}
  #account-popover-110.account-popover-1218 > a.pop-link-1218[href="#/profile"]{display:none!important}
  #account-popover-110.account-popover-1218 .pop-link-1218[data-action="logout"]{padding:8px 10px;font-weight:500}
}

/* ---------- §8.4 Account menu tiles: distinct soft colours ---------- */
.account-popover-1218 .pop-balances-1220 .pop-balance-1218{border:1px solid transparent}
.account-popover-1218 .pop-balances-1220 .tile-balance-1220{background:#eaf2fc}
.account-popover-1218 .pop-balances-1220 .tile-balance-1220 small{color:#2c5d93}
.account-popover-1218 .pop-balances-1220 .tile-balance-1220 strong{color:#173f64}
.account-popover-1218 .pop-balances-1220 .tile-expiry-1220{background:#fdf3e1}
.account-popover-1218 .pop-balances-1220 .tile-expiry-1220 small{color:#94600f}
.account-popover-1218 .pop-balances-1220 .tile-expiry-1220 strong{color:#6f4708}
.account-popover-1218 .pop-balances-1220 .tile-expiry-1220.soon-1220{background:#fdeceb}
.account-popover-1218 .pop-balances-1220 .tile-expiry-1220.soon-1220 small,.account-popover-1218 .pop-balances-1220 .tile-expiry-1220.soon-1220 strong{color:#a82a35}
.account-popover-1218 .pop-balances-1220 .tile-merchant-1220{background:#e8f6ef}
.account-popover-1218 .pop-balances-1220 .tile-merchant-1220 small{color:#1d7350}
.account-popover-1218 .pop-balances-1220 .tile-merchant-1220 strong{color:#155a3e}
.account-popover-1218 .pop-balances-1220 .tile-vouchers-1220{background:#e6f5f4}
.account-popover-1218 .pop-balances-1220 .tile-vouchers-1220 small{color:#16716b}
.account-popover-1218 .pop-balances-1220 .tile-vouchers-1220 strong{color:#0f5550}

/* ---------- §6.4 One amount style ---------- */
.amt-1220{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:#173f64;display:inline-block;text-align:right}
.amt-1220.in{color:#17794f}
.amt-1220.out{color:#b42f3a}
.amt-1220.neutral{color:#173f64}
.amt-1220.pending{opacity:.8;font-style:italic}
.amt-1220.void{color:#8796a5;text-decoration:line-through}
td.amt-col-1220,th.amt-col-1220{text-align:right!important;white-space:nowrap}
th.amt-col-1220 a{justify-content:flex-end}

/* ---------- §6.5 Photo column ---------- */
.thumb-1220{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;overflow:hidden;background:#eef3f8;color:#6b7f93;flex:none;vertical-align:middle}
.thumb-1220 img{width:40px;height:40px;object-fit:cover;display:block}
.thumb-1220.thumb-icon-1220 .ico-1220{width:20px;height:20px}
th.photo-col-1220,td.photo-col-1220{width:56px;min-width:56px;padding-right:4px!important}
.sr-only-1220{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- §6.1 Wallet tiles (4 in a row desktop, 2 per row phone) ---------- */
.wallet-tiles-1220{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 22px}
.fee-tiles-1220{grid-template-columns:repeat(2,minmax(0,260px));margin:0 0 16px}
.tile-1220{border-radius:14px;padding:14px 16px 15px;display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid transparent}
.tile-1220 .tile-label-1220{font-size:13px;font-weight:600;line-height:1.3}
.tile-1220 .tile-sub-1220{font-size:12px;font-weight:500;color:#7a8a99;white-space:nowrap}
.tile-1220 strong{font-size:24px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;color:#173f64;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile-1220 > small{font-size:12px;color:#6b7f93}
.tile-1220.tone-blue{background:#edf4fc;border-color:#dbe8f6}.tile-1220.tone-blue .tile-label-1220{color:#24598f}.tile-1220.tone-blue strong{color:#163f66}
.tile-1220.tone-amber{background:#fdf5e6;border-color:#f6e6c4}.tile-1220.tone-amber .tile-label-1220{color:#8f5d0c}.tile-1220.tone-amber strong{color:#6b4609}
.tile-1220.tone-green{background:#ebf7f0;border-color:#d3eedd}.tile-1220.tone-green .tile-label-1220{color:#1d7350}.tile-1220.tone-green strong{color:#155a3e}
.tile-1220.tone-violet{background:#f3effc;border-color:#e4dcf7}.tile-1220.tone-violet .tile-label-1220{color:#5b3fa0}.tile-1220.tone-violet strong{color:#432b7e}
.tile-1220.tone-teal{background:#e8f6f5;border-color:#cfeceb}.tile-1220.tone-teal .tile-label-1220{color:#16716b}.tile-1220.tone-teal strong{color:#0f5550}
@media(max-width:640px){
  .wallet-tiles-1220{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
  .fee-tiles-1220{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile-1220{padding:11px 12px 12px;gap:4px}
  .tile-1220 strong{font-size:19px}
  .tile-1220 .tile-label-1220{font-size:12px}
  .tile-1220 .tile-sub-1220{display:block;white-space:normal;font-size:11px}
}

/* ---------- §6.2 Recent transactions: table on desktop, compact rows on phones ---------- */
.wallet-recent-phone-1220{display:none}
.tx-rows-1220{list-style:none;margin:0;padding:0;border:1px solid #e3eaf1;border-radius:12px;background:#fff;overflow:hidden}
.tx-rows-1220 li + li{border-top:1px solid #edf1f5}
.tx-row-1220{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 12px;background:none;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.tx-row-1220:hover,.tx-row-1220:focus-visible{background:#f6f9fc}
.tx-row-main-1220{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.tx-row-l1-1220{display:flex;align-items:baseline;gap:10px;min-width:0}
.tx-row-title-1220{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;color:#173f64}
.tx-row-l1-1220 .amt-1220{font-size:14px;flex:none}
.tx-row-l2-1220{font-size:12px;color:#748596;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){
  .wallet-recent-desk-1220{display:none!important}
  .wallet-recent-phone-1220{display:block}
}

/* ---------- §6.3 Transactions table ---------- */
.transactions-table-1220 .tx-id-col-1220,.wallet-recent-1220 .tx-id-col-1220{white-space:nowrap}
.transactions-table-1220 .tx-order-col-1220,.wallet-recent-1220 .tx-order-col-1220{white-space:nowrap}
.tx-category-col-1220{min-width:150px;white-space:nowrap}
th.num,td.num{text-align:right}
.transactions-table-1220 th.num a,.transactions-table-1220 th.amt-col-1220 a{justify-content:flex-end}
.transactions-table-1220 tfoot td,.order-lines-1220 tfoot td{background:#f6f9fc;border-top:2px solid #dfe7ef;padding-top:12px;padding-bottom:12px;font-variant-numeric:tabular-nums}
.tx-total-label-1220 small{color:#6b7f93;font-weight:500;margin-left:6px}
.muted-1220{color:#9aa8b5}
.mono-1220{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;word-break:break-all}

/* ---------- Details content (transaction, order) ---------- */
.detail-head-1220 .detail-title-1220{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.detail-head-1220 .detail-title-1220 h2{margin:0}
.detail-body-1220{display:flex;flex-direction:column;gap:16px}
.detail-photo-1220 .thumb-1220,.detail-photo-1220 .thumb-1220 img{width:64px;height:64px;border-radius:10px}
.detail-grid-1220{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin:0}
.detail-grid-1220 > div{min-width:0}
.detail-grid-1220 dt{font-size:12px;font-weight:600;color:#6b7f93;margin:0 0 3px}
.detail-grid-1220 dd{margin:0;font-size:14px;color:#1d3550;overflow-wrap:anywhere}
.detail-grid-1220 dd small{display:block;color:#7a8a99;font-size:12px}
.detail-grid-1220 .wide-1220{grid-column:1/-1}
.detail-note-1220 h3{font-size:13px;margin:0 0 4px;color:#6b7f93}
.detail-note-1220 p{margin:0;font-size:14px;white-space:pre-wrap}
.fee-block-1220{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#f6f9fc;border:1px solid #e3eaf1;border-radius:12px;padding:12px 14px}
.fee-block-1220 > div{display:flex;flex-direction:column;gap:3px}
.fee-block-1220 > div > span:first-child{font-size:12px;font-weight:600;color:#6b7f93}
.fee-block-1220 .amt-1220{text-align:left;font-size:16px}
@media(max-width:640px){.detail-grid-1220{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Date + time in two lines (Transactions Time, Requests Last modified) ---------- */
.dt-1220{display:inline-flex;flex-direction:column;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.dt-1220 small{color:#7a8a99;font-size:12px}
html body .transactions-table-1220 th.tx-time-col-1220,html body .transactions-table-1220 td.tx-time-col-1220{white-space:nowrap;width:1%}
html body .transactions-table-1220 .tx-order-col-1220 .tx-id-link-126{font-size:12.5px}
html body .transactions-table-1220 .tx-user-col-126 small{word-break:break-all}
html body .transactions-table-1220 .tx-qty-col-1220{width:1%;white-space:nowrap}
html body .transactions-table-1220 td.tx-amount-col-126{width:1%}
html body .transactions-table-1220{table-layout:auto}
html body .transactions-table-1220 .tx-voucher-merchant-col-126{min-width:220px}

/* ---------- §6.6 Requests ---------- */
html body .requests-table-1220 th.request-modified-col-1220,html body .requests-table-1220 td.request-modified-col-1220{width:118px;min-width:118px;white-space:nowrap}
html body .requests-table-1220 th.request-modified-col-1220 a{white-space:nowrap}
html body .requests-table-1220 .request-merchant-col-1220{min-width:140px}
html body .requests-table-1220 .request-merchant-col-1220 a.merchant-link-1220{font-weight:600;color:#1a5c91;text-decoration:none}
html body .requests-table-1220 .request-merchant-col-1220 a.merchant-link-1220:hover{text-decoration:underline}
html body .requests-table-1220 .request-merchant-col-1220 small,html body .requests-table-1220 .requester-col-126 small{display:block;color:#7a8a99;font-size:12px;word-break:break-all}
html body .requests-table-1220 td.request-amount-col-126{width:1%}
html body .requests-table-1220 .request-item-col-126 .tx-id-link-126{font-size:12px;padding:0}
html body .requests-table-1220 .request-item-col-126{min-width:180px}

/* ---------- §10 Row action icons: 20 px glyph in a 32 px button, every list ---------- */
html body .icon-actions-110{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap}
html body .icon-actions-110 .icon-btn-110,html body .icon-actions-110 a.icon-btn-110{width:32px!important;height:32px!important;min-width:32px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:8px}
html body .icon-actions-110 .icon-btn-110 svg{width:20px!important;height:20px!important;flex:none}

/* ---------- §6.5 Photo column in admin lists ---------- */
html body .categories-table-1220 td.photo-col-1220 img,html body .categories-table-1220 td.photo-col-1220 img.category-thumb-1211{width:40px!important;height:40px!important;border-radius:8px!important;object-fit:cover;display:block}
html body .categories-table-1220 th:nth-child(2){width:56px}
html body .admin-vouchers-table-1220 td.photo-col-1220,html body .inventory-table-1220 td.photo-col-1220{padding-top:6px!important;padding-bottom:6px!important}

/* ---------- §5.4 Popups — shared typography ---------- */
#modal-root .modal.pop-1220 .modal-head h2,#modal-root .modal.pop-1220 .msg-1220 h2{font-size:17px!important;line-height:1.3!important;font-weight:700!important;color:#173f64;margin:0}
#modal-root .modal.pop-1220 p,#modal-root .modal.pop-1220 .field>span,#modal-root .modal.pop-1220 dd{font-size:14px}
#modal-root .modal.pop-1220 .modal-close{width:32px;height:32px;flex:none}
#modal-root .modal.pop-1220 .pop-back-1220{display:none}
#modal-root .modal.pop-1220 .btn-danger{background:#b42f3a!important;border-color:#b42f3a!important;color:#fff!important}
#modal-root .modal.pop-1220 .btn-danger:hover{background:#9a2530!important}

/* Confirm + Message: 420 px, buttons right */
#modal-root .modal.pop-confirm-1220,#modal-root .modal.pop-message-1220{width:min(420px,calc(100vw - 32px))!important;max-width:min(420px,calc(100vw - 32px))!important;min-width:0!important;padding:20px 22px 18px!important;border-radius:16px!important}
#modal-root .modal.pop-confirm-1220 .modal-head{margin-bottom:6px!important}
#modal-root .modal.pop-confirm-1220 .modal-close{display:none!important}
#modal-root .modal.pop-confirm-1220 .confirm-dialog-114 p{margin:0 0 4px;color:#3b5068;line-height:1.5}
#modal-root .modal.pop-confirm-1220 .form-actions,#modal-root .modal.pop-message-1220 .form-actions{display:flex!important;flex-direction:row-reverse!important;justify-content:flex-start!important;gap:8px!important;margin-top:18px!important;padding:0!important;border:0!important}
#modal-root .modal.pop-confirm-1220 .form-actions .btn,#modal-root .modal.pop-message-1220 .form-actions .btn{min-width:96px;width:auto!important}
.msg-1220{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 14px;align-items:start}
.msg-1220 .msg-ico-1220{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;grid-row:1}
.msg-1220 .msg-ico-1220 .ico-1220{width:22px;height:22px}
.msg-1220.tone-info .msg-ico-1220{background:#eaf2fc;color:#1f5f99}
.msg-1220.tone-success .msg-ico-1220{background:#e6f5ed;color:#17794f}
.msg-1220.tone-error .msg-ico-1220{background:#fdeceb;color:#b42f3a}
.msg-1220.tone-warning .msg-ico-1220{background:#fdf3e1;color:#94600f}
.msg-1220 .msg-text-1220{padding-top:8px;min-width:0}
.msg-1220 .msg-text-1220 p{margin:6px 0 0;color:#3b5068;line-height:1.5;overflow-wrap:anywhere}
.msg-1220 .msg-actions-1220{grid-column:1/-1}

/* Details: ≤720 px */
#modal-root .modal.pop-1220.pop-details-1220,#modal-root .modal.pop-1220.pop-details-1220:has(table){width:min(720px,calc(100vw - 32px))!important;max-width:min(720px,calc(100vw - 32px))!important;min-width:min(420px,calc(100vw - 32px))!important;padding:20px 24px 22px!important;border-radius:16px!important}
#modal-root .modal.pop-details-1220:not(:has(table)):not(:has(.detail-grid-1220)){width:fit-content!important;max-width:min(560px,calc(100vw - 32px))!important}
#modal-root .modal.pop-details-1220 .modal-head{padding-bottom:12px;margin-bottom:14px!important;border-bottom:1px solid #edf1f5}
#modal-root .modal.pop-details-1220 .modal-head h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#modal-root .modal.pop-details-1220 dl.detail-grid-1220{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px 18px!important}
#modal-root .modal.pop-details-1220 dl.detail-grid-1220>div{display:block!important}
#modal-root .modal.pop-details-1220 dl.detail-grid-1220 dt{font-size:12px!important;margin:0 0 3px!important}
#modal-root .modal.pop-details-1220 dl.detail-grid-1220 dd{font-size:14px!important}
#modal-root .modal.pop-details-1220 dl.detail-grid-1220 .wide-1220{grid-column:1/-1}
#modal-root .modal.pop-details-1220 dl.kv-1218:not(.detail-grid-1220) dt{font-size:12px!important}
#modal-root .modal.pop-details-1220 dl.kv-1218:not(.detail-grid-1220) dd{font-size:14px!important}
#modal-root .modal.pop-details-1220 td,#modal-root .modal.pop-details-1220 th{font-size:13px}
#modal-root .modal.pop-details-1220 table.order-lines-1220 th.photo-col-1220{width:56px}
#modal-root .modal.pop-details-1220 table.order-lines-1220 th:nth-child(2){width:auto}
#modal-root .modal.pop-details-1220 table.order-lines-1220 th.num{width:52px}
#modal-root .modal.pop-details-1220 table.order-lines-1220 th.amt-col-1220{width:92px}
#modal-root .modal.pop-details-1220 table.order-lines-1220 tfoot td{font-size:13px}

/* Form: ≤560 px, footer bar */
#modal-root .modal.pop-form-1220{width:min(560px,calc(100vw - 32px))!important;max-width:min(560px,calc(100vw - 32px))!important;padding:20px 24px 0!important;border-radius:16px!important;display:flex;flex-direction:column}
#modal-root .modal.pop-form-1220 .pop-footer-1220{position:sticky;bottom:0;z-index:2;display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important;margin:18px -24px 0!important;padding:14px 24px!important;background:#f7fafc;border-top:1px solid #e6edf3;border-radius:0 0 16px 16px}
#modal-root .modal.pop-form-1220 .pop-footer-1220 .btn{width:auto}
#modal-root .modal.pop-form-1220 .field>span{font-size:13px;font-weight:600}

/* Phone: confirm/message = bottom sheet; details/form = full page below the header */
@media(max-width:640px){
  #modal-root .modal-backdrop.pop-bd-confirm-1220,#modal-root .modal-backdrop.pop-bd-message-1220{display:flex!important;align-items:flex-end!important;justify-content:center!important;padding:0!important}
  #modal-root .modal.pop-confirm-1220,#modal-root .modal.pop-message-1220{width:100%!important;max-width:none!important;border-radius:18px 18px 0 0!important;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px))!important;max-height:85vh;margin:0!important}
  #modal-root .modal.pop-confirm-1220 .form-actions,#modal-root .modal.pop-message-1220 .form-actions{flex-direction:column!important;gap:8px!important}
  #modal-root .modal.pop-confirm-1220 .form-actions .btn,#modal-root .modal.pop-message-1220 .form-actions .btn{width:100%!important;min-height:44px}
  #modal-root .modal-backdrop.pop-bd-form-1220{top:var(--ryu-fixed-header-h,64px)!important;left:0!important;right:0!important;bottom:0!important;padding:0!important;display:block!important;background:#fff!important;backdrop-filter:none!important}
  #modal-root .modal.pop-form-1220{position:relative!important;width:100%!important;max-width:none!important;min-width:0!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;border:0!important;overflow:auto!important;padding:12px 16px 0!important;transform:none!important;animation:none!important}
  #modal-root .modal.pop-form-1220 .modal-head{display:flex;align-items:center;gap:6px;justify-content:flex-start}
  #modal-root .modal.pop-form-1220 .modal-head .modal-close{display:none!important}
  #modal-root .modal.pop-form-1220 .pop-back-1220{display:inline-flex;align-items:center;gap:2px;border:0;background:none;color:#1a5c91;font:inherit;font-size:14px;font-weight:600;padding:6px 6px 6px 0;margin-right:4px;cursor:pointer}
  #modal-root .modal.pop-form-1220 .pop-back-1220 .ico-1220{width:20px;height:20px}
  #modal-root .modal.pop-form-1220 .modal-head h2{flex:1;min-width:0}
  #modal-root .modal.pop-form-1220{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
  #modal-root .modal.pop-form-1220 .pop-footer-1220{position:fixed!important;left:0;right:0;bottom:0;margin:0!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))!important;border-radius:0;background:#fff;box-shadow:0 -6px 18px rgba(15,40,70,.06)}
  #modal-root .modal.pop-form-1220 .pop-footer-1220 .btn{flex:1 1 auto;min-height:44px}
  #modal-root .modal.pop-details-1220{min-width:0!important}
  #modal-root .modal.pop-details-1220 .modal-head{border-bottom:0;padding-bottom:0}
  #modal-root .modal.pop-details-1220 dl.detail-grid-1220{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 thead{display:none}
  #modal-root .modal.pop-details-1220 table.order-lines-1220,#modal-root .modal.pop-details-1220 table.order-lines-1220 tbody,#modal-root .modal.pop-details-1220 table.order-lines-1220 tfoot{display:block;width:100%!important}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody tr{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid #e6edf3}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td{display:block;border:0!important;padding:0!important;text-align:left!important}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td.photo-col-1220{grid-row:1/span 3;width:auto;min-width:0}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Amount"]{grid-column:3;grid-row:1;text-align:right!important}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Qty"]{grid-column:2;font-size:12px;color:#6b7f93}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Qty"]::before{content:"× "}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Unit price"],#modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Platform fee"],#modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Earnings"]{grid-column:3;text-align:right!important;font-size:12px}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tbody td[data-label="Merchant"]{grid-column:2;font-size:12px;color:#6b7f93}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tfoot tr{display:flex;justify-content:space-between;align-items:center;padding:12px 0}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tfoot td{display:block;border:0!important;padding:0 4px!important;background:none!important}
  #modal-root .modal.pop-details-1220 table.order-lines-1220 tfoot td:empty{display:none}
  html.pop-open-1220 body{overflow:hidden}
}

/* ---------- §7.3 Buyer Vouchers cards: same height rhythm as the public store cards ---------- */
html body .wallet-voucher-card-116 .voucher-body{min-height:0!important;padding:12px 13px!important;gap:6px!important}
html body .wallet-voucher-card-116 .voucher-image,html body .wallet-voucher-card-116 .voucher-image img{height:170px!important;min-height:0!important}
html body .wallet-voucher-card-116 .wallet-title-slot-122{min-height:38.4px!important;text-decoration:none}
html body .wallet-voucher-card-116 h3{font-size:15.36px!important;font-weight:800!important;line-height:19.2px!important;margin:0!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html body .wallet-voucher-card-116 .merchant-line{margin:0!important;min-height:0!important;line-height:16.7px!important}
html body .wallet-voucher-card-116 .voucher-card-spacer{display:none!important}
html body .wallet-voucher-card-116 .wallet-lower-122{min-height:0!important;margin-top:auto}
html body .wallet-voucher-card-116 .voucher-card-bottom{min-height:0!important;padding-top:2px!important}
html body .wallet-voucher-card-116 .voucher-image img{height:100%!important;width:100%!important;object-fit:cover}

/* ---------- §8.3 Profile avatar row ---------- */
html body .avatar-editor-1220{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:18px!important;flex-wrap:nowrap!important;text-align:left!important}
html body .avatar-editor-1220 .avatar-preview-121{flex:none}
html body .avatar-editor-1220 .avatar-controls-122{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;min-width:0}
html body .avatar-editor-1220 .avatar-buttons-1220{display:flex!important;flex-wrap:wrap;gap:8px;align-items:center}
html body .avatar-editor-1220 .avatar-hint-1220{display:block;font-size:12px;color:#7a8a99;margin:0}
@media(max-width:340px){html body .avatar-editor-1220{flex-wrap:wrap!important}}

/* ---------- §8.5 Merchants toolbar: controls fill the list width ---------- */
html body #merchant-filter.browse-toolbar-1220{display:grid!important;grid-template-columns:minmax(0,1fr) 190px 210px 170px!important;gap:10px!important}
html body #merchant-filter.browse-toolbar-1220 select{width:100%!important;min-width:0!important}
@media(max-width:900px){html body #merchant-filter.browse-toolbar-1220{grid-template-columns:repeat(3,minmax(0,1fr))!important}html body #merchant-filter.browse-toolbar-1220 .search-wrap{grid-column:1/-1}}
@media(max-width:520px){html body #merchant-filter.browse-toolbar-1220{grid-template-columns:repeat(2,minmax(0,1fr))!important}html body #merchant-filter.browse-toolbar-1220 select[name="category"]{grid-column:1/-1}}

/* ---------- §10 Edit account (role read-only + Reset password) and Add account hint ---------- */
.role-locked-1220 .role-value-1220{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid #dfe7ef;border-radius:10px;background:#f4f7fa;color:#3b5068;font-size:14px;cursor:not-allowed}
.role-locked-1220 .role-value-1220 .ico-1220{width:16px;height:16px;color:#7a8a99;flex:none}
.field-hint-1220{display:block;margin-top:4px;font-size:12px;color:#7a8a99;font-weight:400}
html body .account-editor-actions-1220 .reset-password-1220{margin-left:auto!important;display:inline-flex;align-items:center;gap:6px}
html body .account-editor-actions-1220 .reset-password-1220 .ico-1220{width:16px;height:16px}
@media(max-width:640px){html body .account-editor-actions-1220 .reset-password-1220{margin-left:0!important;flex-basis:100%!important;order:3}}
html body .account-create-1110 .invite-hint-1220,html body #account-create-role-fields-1110 .invite-hint-1220{width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin-left:0!important;margin-right:0!important}

/* Edit account: fields aligned to the top of each grid cell, inputs one height */
html body #modal-root .account-editor-form-1220{align-items:start!important}
html body #modal-root .account-editor-form-1220 .field input,html body #modal-root .account-editor-form-1220 .field select{height:44px!important;min-height:44px!important}
html body #modal-root .account-editor-form-1220 .role-value-1220{height:44px;min-height:44px;box-sizing:border-box}
#modal-root .modal.pop-1220 .pop-footer-1220 .btn,#modal-root .modal.pop-1220 .form-actions .btn{font-size:14px!important;font-weight:700;min-height:40px;padding:0 18px}
#modal-root .modal.pop-message-1220 .form-actions .btn:focus-visible{outline:2px solid #9cc3e6;outline-offset:2px}
td.dt-cell-1220{white-space:nowrap}
html body .icon-actions-110{white-space:nowrap}
/* Accounts list fits the page: two-line dates, compact headers */
html body .accounts-table-121 th:nth-child(n+7):nth-child(-n+9),html body .accounts-table-121 td:nth-child(n+7):nth-child(-n+9){min-width:96px!important;width:auto!important}
html body .accounts-table-121 th:nth-child(n+7):nth-child(-n+10){white-space:normal!important}
/* Transactions fit the page at 1440 for every role (overrides the 1.2.6/1.2.11 fixed widths) */
html body #app table.transactions-table-1220 .tx-time-col-126{min-width:88px!important;width:92px!important}
html body #app table.transactions-table-1220 .tx-type-col-126{min-width:80px!important;width:auto!important;white-space:normal!important}
html body #app table.transactions-table-1220 .tx-order-col-1220{min-width:96px!important;width:auto!important;white-space:normal!important}
html body #app table.transactions-table-1220 .tx-order-col-1220 .tx-id-link-126{text-align:left;line-height:1.3}
html body #app table.transactions-table-1220 .tx-id-col-126{min-width:64px!important;width:auto!important}
html body #app table.transactions-table-1220 .tx-user-col-126{min-width:140px!important;width:auto!important}
html body #app table.transactions-table-1220 td.tx-voucher-merchant-col-126,html body #app table.transactions-table-1220 th.tx-voucher-merchant-col-126{min-width:200px!important;width:100%!important}
html body #app table.transactions-table-1220 .tx-category-col-126{min-width:150px!important;width:auto!important;max-width:none!important;white-space:nowrap!important}
html body #app table.transactions-table-1220 .tx-amount-col-126{min-width:84px!important;width:1%!important;text-align:right!important}
html body #app table.transactions-table-1220 th.tx-id-col-126,html body #app table.transactions-table-1220 th.tx-order-col-1220{white-space:normal!important}

.nw-1220{white-space:nowrap}
html body #app .requests-table-1220 th.request-modified-col-1220,html body #app .requests-table-1220 th.request-modified-col-1220 *{white-space:nowrap!important}
html body #app .requests-table-1220 th.request-modified-col-1220,html body #app .requests-table-1220 td.request-modified-col-1220{width:136px!important;min-width:136px!important}
/* Inventory: column widths shift by one after the photo column */
html body .inventory-table-126.inventory-table-1220 th:nth-child(3),html body .inventory-table-126.inventory-table-1220 td:nth-child(3){min-width:56px!important;width:56px!important}
html body .inventory-table-126.inventory-table-1220 th:nth-child(4),html body .inventory-table-126.inventory-table-1220 td:nth-child(4){min-width:230px!important;width:31%!important;white-space:normal!important}
html body .inventory-table-126.inventory-table-1220 th:nth-child(5),html body .inventory-table-126.inventory-table-1220 td:nth-child(5){min-width:125px!important;width:15%!important}
html body .inventory-table-126.inventory-table-1220 th:nth-child(6),html body .inventory-table-126.inventory-table-1220 td:nth-child(6){min-width:82px!important;width:86px!important}
html body .inventory-table-126.inventory-table-1220 th:nth-child(7),html body .inventory-table-126.inventory-table-1220 td:nth-child(7){min-width:86px!important;width:90px!important}
@media(max-width:640px){html body .wallet-voucher-card-116 .wallet-title-slot-122{min-height:0!important}}
.earn-line-1220{display:block;margin-top:2px;font-size:11.5px;color:#6b7f93;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
/* Requests fit the page at 1440 (admin/operations: requester + merchant + photo columns) */
html body #app table.requests-table-1220 th.request-type-col-126,html body #app table.requests-table-1220 td.request-type-col-126{min-width:84px!important;width:auto!important;white-space:normal!important}
html body #app table.requests-table-1220 .requester-col-126{min-width:130px!important;width:auto!important}
html body #app table.requests-table-1220 .request-merchant-col-1220{min-width:116px!important}
html body #app table.requests-table-1220 .request-id-col-126{min-width:96px!important;width:auto!important}
html body #app table.requests-table-1220 td.request-item-col-126,html body #app table.requests-table-1220 th.request-item-col-126{min-width:160px!important;width:100%!important}
html body #app table.requests-table-1220 .request-status-col-126{min-width:80px!important;width:auto!important}
#modal-root .modal .modal-head .detail-title-1220{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
#modal-root .modal .modal-head .detail-title-1220 h2{margin:0}

/* ---------- QA fix round ---------- */
/* M3: the visually-hidden "Photo" header label escaped the scrolling table wrapper and widened the page */
.sr-only-1220{left:0;top:0}
th.photo-col-1220{position:relative}
html body #app .table-wrap{position:relative;max-width:100%}
html,body{max-width:100%}
/* L10: every row action icon in every list: 20 px glyph in a 32 px button */
html body #app table.data-table td .icon-btn-110,html body #app table.data-table td a.icon-btn-110{width:32px!important;height:32px!important;min-width:32px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
html body #app table.data-table td .icon-btn-110 svg{width:20px!important;height:20px!important}
/* L10: emails in lists never break mid-word: one line with ellipsis (full value in details) */
html body #app .requester-col-126 small,html body #app .tx-user-col-126 small,html body #app .tx-user-col-123 small,html body #app .entity-two-line-126 small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal!important;overflow-wrap:normal!important}
html body #app .requester-col-126 .entity-two-line-126,html body #app .tx-user-col-126 .entity-two-line-126{min-width:0;max-width:220px}
#modal-root .mail-1220{overflow-wrap:normal!important;word-break:normal!important}
/* L10: footer version identical on phone and desktop */
html body .footer-version{display:inline-block!important;gap:0!important;white-space:nowrap}
html body .footer-version #portal-version{margin:0!important;padding:0!important}
/* L1: header fits 320–380 px (avatar never clipped) */
@media(max-width:380px){
  html body .app-header .header-inner{gap:8px!important;padding-left:12px!important;padding-right:12px!important}
  html body .app-header .brand img{width:34px!important;height:34px!important}
  html body .app-header .brand span{font-size:17px!important}
  html body .app-header .brand{gap:6px!important}
  html body .app-header .header-actions{gap:4px!important;margin-left:auto}
  html body .app-header .portal-language-trigger{padding:0 6px!important;gap:3px!important}
  html body .app-header #mobile-menu-button,html body .app-header .cart-link{width:36px!important;height:36px!important}
}
@media(max-width:340px){
  html body .app-header .brand span{display:none!important}
}
.fee-block-1220{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:640px){.fee-block-1220{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* END RYU 1.2.20 UI CSS */
/* BEGIN RYU 1.2.20 EDITORS CSS */
/* RYU Portal 1.2.20 — voucher and category editors (Stream D). Classes end in -1220e. */
.ed-page-1220e{max-width:1180px;min-width:0}
.ed-back-1220e{display:inline-flex;align-items:center;gap:4px;margin:0 0 6px -4px;padding:4px 8px 4px 4px;border-radius:7px;color:var(--navy-2);font-size:.84rem;font-weight:750}
.ed-back-1220e:hover{background:#f1f6fa;color:var(--ink)}
.ed-back-1220e .ico-1220e{width:18px;height:18px}
.ed-head-1220e{margin-bottom:16px!important;align-items:flex-start!important}
.ed-meta-1220e{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:8px;color:var(--muted);font-size:.84rem}
.ed-meta-item-1220e strong{color:var(--ink);font-weight:750}
.ed-chip-1220e{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:#eef3f8;color:#47627c;font-size:.78rem;font-weight:750;font-variant-numeric:tabular-nums}
.ico-1220e{width:16px;height:16px;flex:0 0 auto}

.ed-hint-box-1220e{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;border:1px solid #cfe0ef;background:#f3f8fc;border-radius:10px;color:#35536f;font-size:.85rem;line-height:1.5}
.ed-hint-box-1220e .ico-1220e{width:20px;height:20px;color:var(--navy-2);margin-top:1px}
.ed-hint-box-1220e p{margin:0}

.ed-layout-1220e{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.ed-main-1220e,.ed-side-1220e{display:grid;gap:18px;min-width:0}
.ed-side-1220e{position:sticky;top:calc(var(--header) + 18px)}
.ed-card-1220e{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px 20px;min-width:0;container-type:inline-size}
.ed-card-head-1220e{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ed-card-head-1220e h2{margin:0;color:var(--ink);font-size:1.02rem;font-weight:800;letter-spacing:-.01em}

/* Aligned responsive field grid: 3 / 2 / 1 columns by card width. */
.ed-grid-1220e{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 16px;align-items:start}
.span2-1220e{grid-column:span 2}.span3-1220e{grid-column:1/-1}
@container (max-width:640px){.ed-grid-1220e{grid-template-columns:repeat(2,minmax(0,1fr))}.span2-1220e,.span3-1220e{grid-column:1/-1}}
@container (max-width:400px){.ed-grid-1220e{grid-template-columns:minmax(0,1fr)}}
.ed-stack-1220e{display:grid;gap:16px}

.edf-1220e{display:flex;flex-direction:column;gap:6px;min-width:0}
.edl-1220e{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px}
.edl-1220e>label{color:#435b73;font-size:.8rem;font-weight:750;line-height:1.2}
.req-1220e{color:var(--danger);font-style:normal;margin-left:2px}
.ed-form-1220e input:not([type=checkbox]):not([type=file]),.ed-form-1220e select,.ed-form-1220e textarea{width:100%;min-height:42px;margin:0;border:1px solid #ccd8e4;border-radius:7px;background:#fff;color:var(--ink);padding:9px 12px;font-size:.9rem;line-height:1.35;outline:0;box-shadow:none}
.ed-form-1220e textarea{min-height:120px;resize:vertical}
.ed-form-1220e input:focus,.ed-form-1220e select:focus,.ed-form-1220e textarea:focus{border-color:#7ca7cc;box-shadow:0 0 0 3px rgba(69,127,174,.12)}
.ed-form-1220e input:disabled{background:#f4f7fa;color:#94a3b3;cursor:not-allowed}
.ed-form-1220e input[readonly]{background:#f6f8fa;color:#4c6378}
.ed-form-1220e .is-invalid-1220e{border-color:#d85868!important;box-shadow:0 0 0 3px rgba(216,88,104,.1)!important}
.edh-1220e{color:var(--muted);font-size:.74rem;line-height:1.4}
.ede-1220e{color:#b23242;font-size:.76rem;font-weight:650;line-height:1.35}
.ede-1220e:empty{display:none}

/* ¥ prefix, % suffix, lock prefix */
.ed-affix-1220e{position:relative;display:flex;align-items:center}
.ed-affix-1220e>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7a8ea2;font-size:.9rem;font-weight:650;pointer-events:none;display:flex}
.ed-affix-1220e>input{padding-left:28px!important;font-variant-numeric:tabular-nums}
.ed-affix-1220e.suffix>span{left:auto;right:12px}
.ed-affix-1220e.suffix>input{padding-left:12px!important;padding-right:30px!important}
.ed-affix-1220e.locked>input{padding-left:34px!important}

/* Normal-size inline checkbox (No expiry) */
.ed-check-1220e{display:inline-flex!important;align-items:center;gap:6px;margin:0;color:#435b73;font-size:.8rem;font-weight:650;cursor:pointer;white-space:nowrap;line-height:1}
.ed-check-1220e input[type=checkbox]{width:16px!important;height:16px!important;min-height:0!important;margin:0;padding:0;flex:0 0 16px;accent-color:var(--navy)}

/* Language switcher */
.lang-bar-1220e{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lang-tabs-1220e{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:#eef2f6}
.lang-tab-1220e{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 12px;border:0;border-radius:7px;background:transparent;color:#5b7189;font-size:.83rem;font-weight:750;white-space:nowrap}
.lang-tab-1220e:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.lang-tab-1220e.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(23,59,99,.14)}
.lang-tab-1220e:focus-visible{outline:2px solid #7ca7cc;outline-offset:1px}
.lang-dot-1220e{display:inline-block;width:7px;height:7px;border-radius:50%;border:1.5px solid #b6c4d2;background:transparent;flex:0 0 7px}
.lang-dot-1220e.on{background:#1f9d6b;border-color:#1f9d6b}
.lang-legend-1220e{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.74rem}
.lang-note-1220e{margin:-4px 0 14px;color:var(--muted);font-size:.8rem}

/* Photo */
.photo-frame-1220e{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#f1f5f9;border:1px solid #e3eaf1}
.photo-frame-1220e.empty{border:1.5px dashed #c6d3df}
.photo-frame-1220e img{width:100%;height:100%;object-fit:cover;display:block}
.photo-empty-1220e{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8a9bad;font-size:.84rem;font-weight:650}
.photo-empty-1220e .ico-1220e{width:36px;height:36px;stroke-width:1.4}
.photo-actions-1220e{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.photo-actions-1220e .btn{width:100%;min-height:36px;padding:7px 8px;font-size:.8rem;gap:5px;white-space:nowrap}
.photo-hint-1220e{margin:10px 0 0}
.photo-status-1220e{margin:8px 0 0;color:#35536f;font-size:.78rem;line-height:1.4}
.photo-status-1220e:empty{display:none}
.link-1220e{display:inline-flex;align-items:center;gap:4px;font-size:.78rem}

/* Visibility toggle */
.ed-toggle-1220e{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer}
.ed-toggle-1220e strong{display:block;color:var(--ink);font-size:.88rem}
.ed-toggle-1220e small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.ed-toggle-1220e .switch{flex:0 0 44px}

/* Category details */
.slug-preview-1220e{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:.78rem;color:var(--muted)}
.slug-preview-1220e code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:#4c6378;word-break:break-all}
.slug-preview-1220e code b{color:var(--ink)}
.ed-stats-1220e{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid #edf1f5}
.ed-stats-1220e dt{color:var(--muted);font-size:.74rem;font-weight:650}
.ed-stats-1220e dd{margin:3px 0 0;color:var(--ink);font-weight:750;font-variant-numeric:tabular-nums}

/* Footer */
.ed-footer-1220e{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin-top:18px;padding:14px 20px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ed-footer-actions-1220e{display:flex;gap:10px;margin-left:auto}
.ed-footer-actions-1220e .btn{min-width:120px}
.ed-msg-1220e{font-size:.84rem;font-weight:650;min-width:0;flex:1 1 240px}
.ed-msg-1220e:empty{flex:0 0 0}
.ed-msg-1220e.error{color:#b23242}

@media (max-width:1100px){
  .ed-layout-1220e{grid-template-columns:minmax(0,1fr)}
  .ed-side-1220e{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}
@media (max-width:720px){
  .ed-side-1220e{grid-template-columns:minmax(0,1fr)}
  .ed-card-1220e{padding:16px}
  .ed-card-head-1220e{flex-direction:column;align-items:stretch}
  .lang-bar-1220e{flex-direction:column;align-items:stretch;gap:8px}
  .lang-tabs-1220e{display:flex}
  .lang-tab-1220e{flex:1 1 0;justify-content:center;padding:5px 6px}
  .ed-footer-1220e{position:sticky;bottom:0;z-index:5;margin:18px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-radius:0;border-left:0;border-right:0;box-shadow:0 -6px 18px rgba(23,59,99,.08)}
  .ed-footer-actions-1220e{width:100%;margin-left:0}
  .ed-footer-actions-1220e .btn{flex:1 1 0;min-width:0}
  .ed-stats-1220e{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.photo-size-1220e{display:block;margin-top:2px;color:var(--muted);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-error-1220e{max-width:560px;margin-top:8px;padding:28px 24px;text-align:center}
.ed-error-1220e>.ico-1220e{width:40px;height:40px;color:#8a9bad;margin:0 auto 6px}
.ed-error-1220e h1{margin:0 0 6px;color:var(--ink);font-size:1.25rem}
.ed-error-1220e p{margin:0 0 6px;color:var(--muted)}
.ed-error-actions-1220e{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}
/* END RYU 1.2.20 EDITORS CSS */
/* BEGIN RYU 1.2.21 SHELL CSS */
/* RYU Portal 1.2.21 — SHELL stream (settings, popups, page footers, editors, menu spinner, dashboard, page views). */

/* ---------- shared spinner ---------- */
.spin-1221,.nav-spin-1221{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid #cfdbe7;border-top-color:#1f5f99;animation:spin1221 .7s linear infinite;vertical-align:middle;flex:none}
@keyframes spin1221{to{transform:rotate(360deg)}}

/* ---------- §5 menu loading ---------- */
#persistent-side-116 a.nav-loading-1221,#account-popover-110 a.nav-loading-1221{position:relative}
#persistent-side-116 a.nav-loading-1221 .nav-spin-1221,#account-popover-110 a.nav-loading-1221 .nav-spin-1221{margin-left:auto;width:13px;height:13px}
html.nav-busy-1221 #persistent-side-116 a[href^="#/"]:not(.nav-loading-1221),html.nav-busy-1221 #account-popover-110 a[href^="#/"]:not(.nav-loading-1221){cursor:progress}

/* ---------- §1 Admin settings ---------- */
.set-form-b20.set-form-1221{display:block;gap:0}
.set-sec-1221{padding:0;margin:0 0 26px;border:0;background:none}
.set-sec-1221 h2{margin:0 0 12px;font-size:15px;font-weight:800;color:#173b63}
.set-grid-1221{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;align-items:start}
.set-grid-1221 .field{margin:0;min-width:0}
.set-grid-1221 .field input,.set-grid-1221 .field select,.set-grid-1221 .field textarea,.set-test-row-1221 .field input{width:100%!important;max-width:none!important;min-width:0}
.set-grid-1221 textarea{min-height:120px}
.set-f-1221 > span:first-child{font-size:12.5px;font-weight:800;color:#173b63}
.set-cbs-1221{margin:0 0 14px}
.set-cbs-label-1221{display:block;font-size:12.5px;font-weight:800;color:#173b63;margin-bottom:8px}
.set-cbs-row-1221{display:flex;flex-wrap:wrap;gap:8px 28px}
.set-cb-1221{display:inline-flex;align-items:center;gap:8px;margin:0;color:#173b63;font-size:14px;font-weight:500;cursor:pointer}
.set-cb-1221 input{width:18px!important;height:18px;min-height:0;margin:0;flex:none;accent-color:#1e4e7a}
.set-key-1221{min-height:42px;border:1px solid #dce5ee;border-radius:9px;background:#f7fafd;padding:0 6px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.set-key-1221 .set-key-state-b20{color:#173b63;font-weight:600}
.set-key-1221 .set-key-state-b20.unset-1221{color:#7a8b9d;font-weight:500}
.key-mask-1221{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.02em}
.set-form-1221 .set-key-replace-b20{display:flex;min-height:42px}
.set-form-1221 .set-key-replace-b20 input{width:100%!important}
.set-test-1221{margin-top:18px}
.set-test-1221 h3{margin:0 0 10px;font-size:14px;font-weight:800;color:#173b63}
.set-test-row-1221{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;align-items:end}
.set-test-to-1221{grid-column:span 2;margin:0}
.set-test-btn-1221 .btn{width:100%;min-height:42px}
.set-test-result-1221.test-result-b20{grid-column:1 / span 3;min-width:0;max-width:none;margin-top:0}
.set-test-result-1221:empty{display:none}
.set-form-1221 .set-actions-b20{margin-top:4px;justify-content:flex-start}
@media (max-width:1279.98px){
  .set-grid-1221{grid-template-columns:repeat(3,minmax(0,1fr))}
  .set-test-row-1221{grid-template-columns:repeat(3,minmax(0,1fr))}
  .set-test-result-1221.test-result-b20{grid-column:1 / -1}
}
@media (max-width:999.98px){
  .set-grid-1221,.set-test-row-1221{grid-template-columns:repeat(2,minmax(0,1fr))}
  .set-test-to-1221{grid-column:auto}
}
@media (max-width:640px){
  .set-grid-1221,.set-test-row-1221{grid-template-columns:minmax(0,1fr)}
  .set-cbs-row-1221{flex-direction:column;gap:10px}
  .set-form-1221 .set-actions-b20 .btn{width:100%}
}

/* ---------- §2 Popup chrome: header band, plain footer ---------- */
#modal-root .modal.pop-chrome-1221:not(.pop-message-1220):has(> .modal-head){padding-top:0!important}
#modal-root .modal.pop-chrome-1221 > .modal-head.pop-band-1221{margin:0 -24px 16px!important;padding:13px 16px 13px 24px!important;background:#f3f7fb;border-bottom:1px solid #e2eaf2!important;border-radius:16px 16px 0 0;display:flex;align-items:center;gap:10px;justify-content:space-between}
#modal-root .modal.pop-confirm-1220.pop-chrome-1221 > .modal-head.pop-band-1221{margin:0 -22px 14px!important;padding:13px 22px!important}
#modal-root .modal.pop-chrome-1221 > .modal-head.pop-band-1221 h2{margin:0!important}
#modal-root .modal.pop-chrome-1221 > .modal-head.pop-band-1221 .modal-close{background:transparent!important;border:0!important;box-shadow:none!important;color:#4b6178;border-radius:8px}
#modal-root .modal.pop-chrome-1221 > .modal-head.pop-band-1221 .modal-close:hover{background:#e3ecf5!important;color:#173f64}
#modal-root .modal.pop-chrome-1221 .pop-foot-1221,#modal-root .modal.pop-form-1220.pop-chrome-1221 .pop-footer-1220{background:#fff!important;border-top:0!important;box-shadow:none!important;margin:18px 0 0!important;padding:0 0 20px!important;border-radius:0!important;justify-content:flex-start!important;display:flex!important;flex-wrap:wrap;gap:8px!important}
#modal-root .modal.pop-confirm-1220.pop-chrome-1221 .pop-foot-1221{padding:0!important}
#modal-root .modal.pop-details-1220.pop-chrome-1221 > .modal-head.pop-band-1221{border-bottom:1px solid #e2eaf2!important}
/* Download diagnostics */
.diag-form-1221 .diag-note-1221{margin:0 0 14px;color:#4b6178;font-size:14px;line-height:1.5}
.diag-form-1221 .diag-sec-1221{margin:0 0 14px}
.diag-form-1221 .diag-label-1221{display:block;font-size:13px;font-weight:700;color:#173f64;margin:0 0 6px}
.diag-form-1221 .diag-checks-1221{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.diag-form-1221 .diag-checks-1221 label{display:flex;align-items:center;gap:8px;font-size:14px;margin:0}
.diag-form-1221 .diag-checks-1221 input{width:16px;height:16px;margin:0;accent-color:#1e4e7a}
.diag-form-1221 .diag-window-1218{max-width:240px;margin:0}

/* ---------- §2/§4 page footers (voucher/category editors, Edit user) ---------- */
.ed-footer-1220e{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;margin-top:22px!important;border-radius:0!important;justify-content:flex-start!important}
.ed-footer-1220e .ed-footer-actions-1220e{order:-1;margin-left:0!important}
.ed-footer-1220e .ed-msg-1220e{order:1}
.page-footer-1221{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-start;margin-top:22px}
.page-footer-1221 .btn,.ed-footer-1220e .ed-footer-actions-1220e .btn{min-width:120px}
/* §4 stacked sections without borders */
.ed-layout-1220e.ed-stacked-1221{grid-template-columns:minmax(0,1fr)!important;max-width:980px}
.ed-stacked-1221 .ed-main-1220e{gap:28px}
.ed-stacked-1221 .ed-card-1220e{border:0;background:transparent;padding:0;border-radius:0}
.ed-stacked-1221 .ed-card-head-1220e{margin-bottom:12px}
.ed-stacked-1221 .ed-card-head-1220e h2{font-size:1.02rem;font-weight:800}
.ed-stacked-1221 .ed-photo-1220e .photo-frame-1220e{max-width:420px}
.ed-stacked-1221 .ed-photo-1220e .photo-actions-1220e{max-width:420px}
.ed-stacked-1221 .ed-stats-1220e{border-top:0;padding-top:0}
@media (max-width:720px){
  .ed-footer-1220e{position:sticky;bottom:0;z-index:5;margin:22px -16px 0!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom))!important;background:#fff!important;border:0!important;box-shadow:none!important}
  .ed-footer-1220e .ed-footer-actions-1220e{width:auto}
  .ed-footer-1220e .ed-footer-actions-1220e .btn{flex:0 0 auto;min-width:110px}
  .page-footer-1221{position:sticky;bottom:0;z-index:5;margin:22px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff}
}

/* ---------- §2 Edit user page ---------- */
.ue-page-1221{max-width:980px;min-width:0}
.page-back-1221.ed-back-1220e .ico-1220{width:18px;height:18px}
.ue-head-1221{margin-bottom:10px!important}
.ue-sec-1221{margin:18px 0 12px;font-size:1.02rem;font-weight:800;color:var(--ink,#173f64)}
.ue-grid-1221{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;align-items:start}
.ue-grid-1221 .field{margin:0;min-width:0}
.ue-grid-1221 .field input,.ue-grid-1221 .field select{width:100%!important;max-width:none!important;height:44px;min-height:44px}
.ue-grid-1221 .role-value-1220{height:44px;min-height:44px;box-sizing:border-box}
.ue-form-1221 .is-invalid-1221{border-color:#d85868!important}
.ue-pw-1221{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ue-pw-1221 p{margin:0;color:#4b6178;font-size:14px}
.ue-pw-1221 .btn{display:inline-flex;align-items:center;gap:6px}
.ue-pw-1221 .btn .ico-1220{width:17px;height:17px}
.ue-msg-1221{margin-top:14px}
.ue-msg-1221:empty{display:none}
@media (max-width:640px){.ue-grid-1221{grid-template-columns:minmax(0,1fr)}}

/* ---------- §10 Dashboard ---------- */
.dash-1221{min-width:0}
.dash-head-1221{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin:0 0 14px}
.dash-hello-1221{min-width:0}
.dash-greet-1221{display:block;color:#6b7f93;font-size:14px;font-weight:600;margin-bottom:2px}
.dash-hello-1221 .page-title{margin:0;overflow-wrap:anywhere}
.dash-badges-1221{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.role-badge-1221,.ws-badge-1221{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}
.role-badge-1221{background:#e7f0fa;color:#1d4f80}
.role-badge-1221.role-merchant{background:#e6f5ed;color:#17663f}
.role-badge-1221.role-accounts{background:#f1ebfb;color:#5b3a99}
.role-badge-1221.role-admin{background:#173f64;color:#fff}
.ws-badge-1221{background:#f1f4f8;color:#41576e}
.seg-1221{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:#eef2f6;margin:0 0 16px}
.seg-btn-1221{border:0;background:transparent;min-height:34px;padding:5px 18px;border-radius:8px;color:#4b6178;font:inherit;font-size:14px;font-weight:650;cursor:pointer;white-space:nowrap}
.seg-btn-1221:hover{color:#173f64;background:rgba(255,255,255,.6)}
.seg-btn-1221.on{background:#fff;color:#173f64;box-shadow:0 1px 3px rgba(23,59,99,.16)}
.dash-notice-1221{margin:0 0 14px}
.dash-grid-1221{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.dtile-1221{display:flex;align-items:flex-start;gap:12px;min-width:0;min-height:92px;padding:14px;border:1px solid #e3eaf1;border-radius:12px;background:#fff;color:inherit;text-decoration:none;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.dtile-1221:hover{border-color:#bcd0e3;box-shadow:0 4px 14px rgba(23,59,99,.07);text-decoration:none}
.dtile-1221:focus-visible{outline:2px solid #7ca7cc;outline-offset:2px}
.dtile-ico-1221{flex:none;width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
.dtile-ico-1221 .ico-1220{width:21px;height:21px}
.dtile-ico-1221.tone-blue{background:#eaf2fc;color:#1f5f99}
.dtile-ico-1221.tone-green{background:#e6f5ed;color:#17794f}
.dtile-ico-1221.tone-teal{background:#e4f5f3;color:#127068}
.dtile-ico-1221.tone-amber{background:#fdf3e1;color:#94600f}
.dtile-ico-1221.tone-violet{background:#f1ebfb;color:#6440a8}
.dtile-ico-1221.tone-rose{background:#fdecef;color:#a8344c}
.dtile-ico-1221.tone-sky{background:#e6f4fb;color:#1a6f99}
.dtile-ico-1221.tone-slate{background:#eef2f6;color:#41576e}
.dtile-ico-1221.tone-muted{background:#f4f6f8;color:#6b7f93}
.dtile-body-1221{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.dtile-label-1221{color:#41576e;font-size:13.5px;font-weight:650;line-height:1.3}
.dtile-fig-1221{color:#173f64;font-size:20px;font-weight:800;line-height:1.2;min-height:24px;display:flex;align-items:center;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dtile-sub-1221{color:#6b7f93;font-size:12px;line-height:1.35}
.dtile-sub-1221:empty{display:none}
.dtile-hint-1221{color:#6b7f93;font-size:12.5px;line-height:1.4}
.dtile-na-1221{color:#9aabbc}
.dtile-logout-1221{background:#fafbfc}
@media (max-width:640px){
  .seg-1221{display:flex;width:100%}
  .seg-btn-1221{flex:1 1 0;padding:5px 8px}
  .dash-grid-1221{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .dtile-1221{flex-direction:column;gap:8px;padding:12px;min-height:118px}
  .dtile-ico-1221{width:34px;height:34px}
  .dtile-fig-1221{font-size:17px}
}

/* ---------- §12 Full-page views below 900 px ---------- */
html.pop-page-open-1221,html.pop-page-open-1221 body{overflow:hidden!important}
html.pop-page-open-1221 #modal-root .modal-backdrop.pop-page-bd-1221{position:fixed!important;top:var(--page-top-1221,64px)!important;left:0!important;right:0!important;bottom:0!important;padding:0!important;margin:0!important;display:block!important;background:#fff!important;backdrop-filter:none!important;z-index:60;overflow:hidden!important}
html.pop-page-open-1221 body #modal-root .modal-backdrop > .modal.pop-page-1221.pop-page-1221{position:absolute!important;inset:0!important;width:100%!important;max-width:none!important;min-width:0!important;height:auto!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;border:0!important;transform:none!important;animation:none!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 16px calc(24px + env(safe-area-inset-bottom,0px))!important;background:#fff!important;display:block!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head{position:sticky!important;top:0!important;z-index:4;display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;gap:2px 10px!important;margin:0 -16px 14px!important;padding:6px 16px 10px!important;background:#fff!important;border:0!important;border-bottom:1px solid #e6edf3!important;border-radius:0!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .page-back-row-1221{flex:0 0 100%;width:100%;order:-1;display:block}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221{display:inline-flex;align-items:center;gap:2px;width:auto;border:0;background:none;color:#1a5c91;font:inherit;font-size:14px;font-weight:600;padding:4px 6px 2px 0;margin:0;cursor:pointer}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221 .ico-1220{width:20px;height:20px}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .modal-close,html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .pop-back-1220{display:none!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head h2,html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .detail-title-1220{flex:1 1 auto;min-width:0;font-size:19px!important;line-height:1.3!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .detail-title-1220 h2{font-size:19px!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-foot-1221,html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-footer-1220{position:sticky!important;bottom:calc(-24px - env(safe-area-inset-bottom,0px))!important;left:auto!important;right:auto!important;z-index:3;display:flex!important;flex-wrap:wrap;justify-content:flex-start!important;gap:8px!important;margin:18px -16px 0!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))!important;background:#fff!important;border:0!important;box-shadow:none!important;border-radius:0!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-foot-1221 .btn,html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-footer-1220 .btn{flex:0 0 auto!important;width:auto!important;min-width:110px;min-height:44px}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-foot-1221 .btn[data-action="close-modal"]{order:0}
html.pop-page-open-1221 #modal-root .modal.pop-confirm-1220.pop-page-1221 .form-actions{flex-direction:row!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 dl.detail-grid-1220{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .table-wrap{max-width:100%;overflow-x:auto}
html.pop-page-open-1221 #modal-root .page-head-only-1221{padding-bottom:6px!important}
@media (max-width:420px){html.pop-page-open-1221 #modal-root .modal.pop-page-1221 dl.detail-grid-1220{grid-template-columns:minmax(0,1fr)!important}}
.ed-stacked-1221 .ed-toggle-1220e{max-width:460px}
.ed-stacked-1221 .ed-photo-1220e .photo-frame-1220e,.ed-stacked-1221 .ed-photo-1220e .photo-actions-1220e{max-width:360px}
.page-back-row-1221{display:none}
html.pop-page-open-1221 .page-back-row-1221{display:block}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .pop-foot-closeonly-1221{display:none!important}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 .modal-back-bar-1219{display:none!important}
/* §12 Simple messages / yes-no confirms below 900 px: bottom sheet (1.2.20 did this only below 640 px). */
@media (max-width:899.98px){
  #modal-root .modal-backdrop.pop-bd-confirm-1220:not(.pop-page-bd-1221),#modal-root .modal-backdrop.pop-bd-message-1220{display:flex!important;align-items:flex-end!important;justify-content:center!important;padding:0!important}
  #modal-root .modal.pop-confirm-1220:not(.pop-page-1221),#modal-root .modal.pop-message-1220{width:100%!important;max-width:none!important;border-radius:18px 18px 0 0!important;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))!important;max-height:85vh;margin:0!important}
  #modal-root .modal.pop-confirm-1220.pop-chrome-1221 > .modal-head.pop-band-1221{border-radius:18px 18px 0 0}
}
/* QA round */
#modal-root .modal.pop-confirm-1220.pop-chrome-1221 > .modal-head .modal-close{display:inline-flex!important;align-items:center;justify-content:center;width:32px;height:32px;flex:none;font-size:18px;line-height:1;cursor:pointer}
html.pop-page-open-1221 #modal-root .modal.pop-page-1221 > .modal-head .modal-close{display:none!important}
.dash-notice-1221{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:11px 14px;border-radius:10px;background:#fdecee;border:1px solid #f3c2c8;color:#a5222f;font-size:14px;font-weight:600;line-height:1.45}
.dash-notice-1221 .ico-1220{width:20px;height:20px;flex:none;color:#c0303d;margin-top:0}
/* Sticky page footers need the window to be the scroller: clip instead of hidden on html/body. */
html:root{overflow-x:clip!important}
html body,html body.authenticated-110{overflow-x:clip!important;overflow-y:visible!important}
html.pop-page-open-1221 body{overflow:hidden!important}
/* Footer version: "Portal v1.2.21" without a flex gap between the text and the number. */
html body .app-footer .footer-version{gap:0!important;column-gap:0!important}
html body .app-footer .footer-version:before{margin-right:5px!important}
/* END RYU 1.2.21 SHELL CSS */
/* BEGIN RYU 1.2.21 LISTS CSS */
/* ===== RYU Portal 1.2.21 — Stream LISTS ===== */

/* §3 Photo links */
.thumb-link-1221{cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}
.thumb-link-1221:hover{box-shadow:0 0 0 2px #9cc3ea}
img.category-thumb-1211.thumb-link-1221:hover{box-shadow:0 0 0 2px #9cc3ea}

/* §5 Requests: merchant logo + photo at the right of the Item cell */
.req-merchant-1221{display:flex;align-items:center;gap:8px;min-width:0}
.req-merchant-1221 .entity-two-line-126{min-width:0}
.mlogo-1221{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;overflow:hidden;background:#fff;border:1px solid #e3eaf1}
.mlogo-1221 img{width:100%;height:100%;object-fit:contain;display:block}
.mlogo-ph-1221{background:#eef3f8;color:#4b6178;font-size:12px;font-weight:700}
.req-item-1221{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.req-item-text-1221{min-width:0;flex:1}
.req-photo-1221{flex:none}

/* §6 Transactions summary row */
.sum-row-1221{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:4px 0 20px}
.sum-tile-1221{border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0;border:1px solid #e3e9f0;background:#f7f9fb}
.sum-label-1221{font-size:12.5px;font-weight:600;line-height:1.3;color:#4b6178}
.sum-tile-1221 strong{font-size:21px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;color:#173f64;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sum-tile-1221 small{font-size:11.5px;color:#7a8a99}
.sum-tile-1221.tone-teal{background:#e8f6f5;border-color:#cfeceb}.sum-tile-1221.tone-teal .sum-label-1221{color:#16716b}
.sum-tile-1221.tone-green{background:#ebf7f0;border-color:#d3eedd}.sum-tile-1221.tone-green .sum-label-1221{color:#1d7350}
.sum-tile-1221.tone-blue{background:#edf4fc;border-color:#dbe8f6}.sum-tile-1221.tone-blue .sum-label-1221{color:#24598f}
.sum-tile-1221.tone-violet{background:#f3effc;border-color:#e4dcf7}.sum-tile-1221.tone-violet .sum-label-1221{color:#5b3fa0}
.sum-tile-1221.tone-amber{background:#fdf5e6;border-color:#f6e6c4}.sum-tile-1221.tone-amber .sum-label-1221{color:#8f5d0c}
@media(max-width:1100px){.sum-row-1221{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.sum-row-1221{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.sum-tile-1221{padding:10px 12px}.sum-tile-1221 strong{font-size:17px}.sum-label-1221{font-size:11.5px}}

/* §6 Details content: compact header + two-column property table */
#modal-root .modal.pop-1220.pop-details-1220.dpop-1221,#modal-root .modal.dpop-1221{width:min(720px,calc(100vw - 32px))!important;max-width:min(720px,calc(100vw - 32px))!important}
#modal-root .modal.pop-1220.pop-details-1220.dpop-order-1221,#modal-root .modal.dpop-order-1221{width:min(960px,calc(100vw - 32px))!important;max-width:min(960px,calc(100vw - 32px))!important}
.dh-1221{display:flex;align-items:center;gap:12px}
.dh-line-1221{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0;flex:1}
.dh-line-1221 h2{margin:0;font-size:18px;line-height:1.25}
.dh-id-1221{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;color:#36516d;background:#f1f5f9;border-radius:6px;padding:2px 7px;white-space:nowrap}
.dh-time-1221{font-size:13px;color:#6b7f93;white-space:nowrap}
.dh-line-1221 .status-badge{white-space:nowrap}
.dbody-1221{display:flex;flex-direction:column;gap:16px}
.dh-voucher-1221{display:flex;align-items:center;gap:12px}
.dh-voucher-1221 .thumb-1220,.dh-voucher-1221 .thumb-1220 img,.pld-photo-1221 .thumb-1220,.pld-photo-1221 .thumb-1220 img{width:56px;height:56px;border-radius:10px}
.dh-voucher-1221 > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dh-voucher-1221 strong{color:#173f64;font-size:15px}
.dh-voucher-1221 small{color:#6b7f93;font-size:12.5px}
dl.props-1221{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;border-top:1px solid #edf1f5}
.prop-1221{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid #edf1f5;align-items:start;min-width:0}
.prop-1221 dt{padding-top:2px}
.prop-1221 .tx-id-link-126{white-space:nowrap}
.prop-1221 .mono-1220{word-break:break-all}
.prop-1221 dt{margin:0;font-size:12.5px;font-weight:600;color:#6b7f93}
.prop-1221 dd{margin:0;font-size:14px;color:#1f3550;min-width:0;overflow-wrap:anywhere}
.prop-1221 dd small{display:block;color:#748596;font-size:12px}
.prop-1221 dd small.muted-1221{display:inline}
.prop-1221.wide-1221{grid-column:1/-1}
.muted-1221{color:#8395a7}
.dnote-1221 h3{font-size:13px;margin:0 0 4px;color:#4b6178}
.dnote-1221 p{margin:0;font-size:14px;color:#1f3550;white-space:pre-wrap}
.dacts-1221{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-start;margin:0}
/* Order lines: one line per cell, no word-per-line wrapping */
.ol-wrap-1221{margin:0;overflow-x:auto}
table.order-lines-1221{width:100%;min-width:640px}
#modal-root .modal table.data-table.order-lines-1221 th,#modal-root .modal table.data-table.order-lines-1221 td{white-space:nowrap!important;vertical-align:middle;word-break:normal!important;overflow-wrap:normal!important}
#modal-root .modal table.data-table.order-lines-1221 td.ol-voucher-1221{white-space:normal!important;min-width:200px}
#modal-root .modal table.data-table.order-lines-1221 td.ol-merchant-1221{white-space:normal!important;min-width:150px}
table.order-lines-1221 .ol-voucher-1221 .ol-name-1221{display:block;font-weight:600}
table.order-lines-1221 td small{display:block;color:#748596;font-size:11.5px}
table.order-lines-1221 .ol-photo-1221{width:52px}
table.order-lines-1221 tfoot td{border-top:1px solid #dfe7ef}
ul.ol-cards-1221{display:none;list-style:none;margin:0;padding:0;border:1px solid #e3eaf1;border-radius:12px;overflow:hidden}
ul.ol-cards-1221 li{display:flex;align-items:center;gap:12px;padding:10px 12px}
ul.ol-cards-1221 li + li{border-top:1px solid #edf1f5}
.ol-card-main-1221{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ol-card-main-1221 strong{font-size:14px;color:#173f64;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ol-card-main-1221 small{font-size:12px;color:#748596}
.ol-card-amt-1221{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.ol-card-amt-1221 small{font-size:11.5px;color:#748596}
/* Generic row details: actions */
.pld-actions-1221{display:flex;flex-wrap:wrap;gap:8px}
.pld-act-1221{display:inline-flex!important;align-items:center;justify-content:center!important;gap:6px}
.pld-act-1221 svg{width:18px;height:18px}
.pld-danger-1221{color:#b42318}
@media(max-width:720px){
  dl.props-1221{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:899.98px){.ol-wrap-1221{display:none}ul.ol-cards-1221{display:block}}
@media(max-width:640px){
  .pld-actions-1221 .btn{flex:1 1 calc(50% - 8px);justify-content:center}
}

/* §7 Request payout */
.po-page-1221 .po-new-1221{font-size:16px;margin:6px 0 -4px;color:#173b63}
body.authenticated-110 .po-page-1221 section.po-card-1221.card,.po-page-1221 .po-card-1221{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}
.po-page-1221 .po-card-1221 form{max-width:560px;padding:0!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important}
.po-recent-1221 h2{font-size:16px;margin:4px 0 8px;color:#173b63}
.po-table-1221 td,.po-table-1221 th{white-space:nowrap}
.po-table-1221 .po-note-1221{white-space:normal;min-width:160px;max-width:320px;overflow-wrap:anywhere}
.po-phone-1221{display:none}
@media(max-width:640px){.po-desk-1221{display:none!important}.po-phone-1221{display:block}}

/* §7 My QR: no progress bar / refresh row (auto refresh continues) */
.mq-timer-b20{display:none!important}
/* §7 Buyer Scan QR: scan card as wide as the Recent scans list */
.buyer-scan-card-r19{max-width:none!important;width:100%;box-sizing:border-box}

/* §8 Phone list views */
.pl-host-1221{display:none}
@media(max-width:640px){
  .table-wrap.pl-on-1221{display:none!important}
  .pl-host-1221{display:block;margin-bottom:12px}
  .pl-bar-1221{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 8px;min-height:32px}
  .pl-bar-1221:empty{display:none}
  .pl-all-1221{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:#36516d}
  .pl-count-1221{font-size:12.5px;color:#1d5a93;font-weight:600}
  .pl-sorts-1221{display:flex;gap:6px;margin-left:auto;min-width:0}
  .pl-sort-1221{height:34px;font-size:13px;padding:0 24px 0 10px;max-width:160px;border-radius:10px;border:1px solid #cfdbe7;background-color:#fff;color:#1f3550}
  .pl-list-1221 .pl-row-1221{display:flex;align-items:stretch}
  .pl-row-1221.selected{background:#f2f7fd}
  .pl-check-1221{display:flex;align-items:center;padding:0 0 0 12px;flex:none}
  .pl-check-1221 input{width:20px;height:20px;margin:0}
  .pl-main-1221{flex:1;min-width:0}
  .pl-row-1221 .pl-check-1221 + .pl-main-1221{padding-left:10px}
  .pl-chev-1221{flex:none;display:inline-flex;color:#9aaabb;margin-left:-4px}
  .pl-chev-1221 .ico-1220{width:18px;height:18px}
  .pl-main-1221 .tx-row-l2-1220 .status-badge{font-size:11px;padding:1px 7px;vertical-align:1px}
  .pl-empty-1221{padding:18px 14px;color:#6b7f93;font-size:14px}
  .pl-empty-1221 .ops-empty-state-115{border:0;padding:0;background:none}
  .pl-thumb-1221{display:inline-flex;flex:none}
}

/* §11 Selection-dependent toolbar buttons */
.sel-off-1221,.sel-off-1221:hover,.sel-off-1221:focus{opacity:.42!important;cursor:default!important;box-shadow:none!important;transform:none!important;filter:grayscale(1);pointer-events:none}
.thumb-logo-1221{background:#fff;border:1px solid #e3eaf1}
.thumb-logo-1221 img{object-fit:contain!important}
.requests-table-1221 td.request-merchant-col-1220{min-width:180px}
.requests-table-1221 td.request-item-col-1221{min-width:220px}
.prop-1221 small.mono-1220{white-space:normal!important;word-break:break-all}
.pld-act-1221 svg{margin:0!important;flex:none}
.order-plain-1221{color:#1f3550}
.rs-row-b20 .pl-chev-1221{display:inline-flex;flex:none;color:#9aaabb;align-self:center}
.rs-row-b20 .pl-chev-1221 .ico-1220{width:18px;height:18px}
@media(max-width:640px){
  .pl-sorts-1221{margin-left:0!important;width:100%;display:grid!important;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8px}
  .pl-sort-1221{max-width:none!important;width:100%;margin:0}
}
/* END RYU 1.2.21 LISTS CSS */
/* BEGIN RYU 1.2.22 STORE CSS */
/* ===== RYU 1.2.22 STORE — voucher editor photos, Storefront page ===== */
.ico-1222s{width:18px;height:18px;flex:0 0 18px;display:inline-block;vertical-align:middle}

/* ---------- Voucher editor: Main photo + Description photo ---------- */
.ed-photos-1222s .photo-slots-1222s{display:grid;grid-template-columns:repeat(2,minmax(0,360px));gap:20px 28px;align-items:start}
.photo-slot-1222s{min-width:0}
.photo-slot-1222s h3{margin:0 0 2px;font-size:.86rem;font-weight:750;color:var(--ink)}
.photo-slot-hint-1222s{margin:0 0 8px;color:#6b7f93;font-size:.74rem;line-height:1.4;min-height:2.8em}
.ed-stacked-1221 .ed-photos-1222s .photo-frame-1220e,.ed-stacked-1221 .ed-photos-1222s .photo-actions-1220e,.ed-photos-1222s .photo-frame-1220e,.ed-photos-1222s .photo-actions-1220e{max-width:none}
.ed-photos-1222s .photo-status-1220e:empty{display:none}
.ed-photos-1222s .photo-hint-1220e{margin-top:12px}
.detailed-1222s{min-height:180px;line-height:1.55;resize:vertical}
@media (max-width:640px){
  .ed-photos-1222s .photo-slots-1222s{grid-template-columns:1fr;gap:22px}
  .photo-slot-hint-1222s{min-height:0}
}

/* ---------- Public voucher page: description photo ---------- */
.voucher-long-description img[data-desc-photo-1222s]{float:right;width:28%;max-width:250px;margin:0 0 14px 22px;border-radius:7px;object-fit:cover}
@media (max-width:650px){.voucher-long-description img[data-desc-photo-1222s]{float:none;width:100%;max-width:100%;margin:10px 0 16px}}

/* ---------- Storefront page ---------- */
.sf-page-1222s{max-width:980px;min-width:0}
.sf-page-1222s .page-head{margin-bottom:4px}
.sf-lead-1222s{margin:0 0 6px;color:#5b7088;font-size:.86rem;line-height:1.5;max-width:720px}
.sf-sec-1222s{padding:20px 0 4px;border-top:1px solid #e6edf3;margin-top:8px}
.sf-sec-1222s:first-of-type{border-top:0}
.sf-sec-head-1222s{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.sf-sec-head-1222s h2{margin:0;font-size:1.06rem;color:var(--ink)}
.sf-view-1222s{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;color:#2d5f8f;text-decoration:none;white-space:nowrap}
.sf-view-1222s .ico-1222s{width:15px;height:15px;flex-basis:15px}
.sf-view-1222s:hover{text-decoration:underline}
.sf-field-1222s{display:flex;flex-direction:column;gap:6px;min-width:0;margin-bottom:12px}
.sf-label-1222s{font-size:.76rem;font-weight:750;color:var(--ink)}
.sf-field-1222s textarea{width:100%;box-sizing:border-box;border:1px solid #d5e0ea;border-radius:9px;padding:10px 12px;font:inherit;font-size:.88rem;line-height:1.5;resize:vertical;min-height:132px}
.sf-field-1222s textarea:focus{outline:2px solid #9cc3e6;outline-offset:0;border-color:#6aa0d0}
.sf-address-grid-1222s{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.sf-hint-1222s{margin:0 0 10px;color:#6b7f93;font-size:.76rem;line-height:1.45}
.sf-save-row-1222s{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.sf-msg-1222s{margin:0;font-size:.8rem;font-weight:650;line-height:1.4;flex:1 1 280px}
.sf-msg-1222s.ok{color:#14704a}
.sf-msg-1222s:empty{display:none}
.sf-cache-note-1222s{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;color:#6b7f93;font-size:.74rem;line-height:1.45;max-width:640px}
.sf-cache-note-1222s .ico-1220e{width:15px;height:15px;flex:0 0 15px;margin-top:1px}
.sf-page-1222s .ede-1220e{display:block;color:#b42335;font-size:.78rem;font-weight:650;margin:0 0 6px}
.sf-page-1222s .ede-1220e:empty{display:none}

/* Logo */
.sf-logo-row-1222s{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px 24px;align-items:start}
.sf-logo-previews-1222s{display:flex;gap:14px;align-items:flex-start}
.sf-logo-big-1222s{width:112px;height:112px;border-radius:14px;border:1px solid #e1e9f0;display:grid;place-items:center;background:#fff;background-image:linear-gradient(45deg,#f2f5f8 25%,transparent 25%),linear-gradient(-45deg,#f2f5f8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f2f5f8 75%),linear-gradient(-45deg,transparent 75%,#f2f5f8 75%);background-size:14px 14px;background-position:0 0,0 7px,7px -7px,-7px 0}
.sf-logo-big-1222s img{max-width:88px;max-height:88px;object-fit:contain}
.sf-logo-uses-1222s{display:flex;flex-direction:column;gap:8px}
.sf-use-1222s{display:flex;align-items:center;gap:8px}
.sf-use-1222s small{color:#7b8ea2;font-size:.68rem}
.sf-use-header-1222s{display:inline-flex;align-items:center;gap:6px;padding:4px 9px 4px 5px;border:1px solid #e6edf3;border-radius:8px;background:#fff}
.sf-use-header-1222s img{width:22px;height:22px;object-fit:contain}
.sf-use-header-1222s b{font-size:.74rem;color:#173b63}
.sf-use-tab-1222s{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:7px 7px 0 0;background:#eef2f6}
.sf-use-tab-1222s img{width:16px;height:16px;object-fit:contain}
.sf-use-tab-1222s i{display:block;width:34px;height:5px;border-radius:3px;background:#c9d4de}
.sf-use-touch-1222s{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff;border:1px solid #e1e9f0;overflow:hidden}
.sf-use-touch-1222s img{width:30px;height:30px;object-fit:contain}
.sf-logo-side-1222s .photo-actions-1220e{margin-top:0;max-width:420px}
.sf-logo-side-1222s .sf-hint-1222s{margin-top:10px;max-width:520px}
.sf-logo-side-1222s .photo-status-1220e:empty{display:none}

/* Carousel mode */
.sf-mode-1222s{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;max-width:760px}
.sf-mode-1222s label{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid #d9e3ec;border-radius:10px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}
.sf-mode-1222s label.on{border-color:#2d5f8f;background:#f3f8fc;box-shadow:inset 0 0 0 1px #2d5f8f}
.sf-mode-1222s input{margin:3px 0 0;width:16px;height:16px;flex:0 0 16px;accent-color:#1f4e7a}
.sf-mode-1222s strong{display:block;font-size:.84rem;color:var(--ink)}
.sf-mode-1222s small{display:block;color:#6b7f93;font-size:.74rem;line-height:1.4;margin-top:2px}
.sf-slots-hint-1222s b{color:#9a5b00;font-weight:700;margin-left:4px}
.sf-only-phone-1222s{display:none}

/* Photo slots */
.sf-slots-1222s{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sf-slot-1222s{position:relative;min-width:0;border:1px solid #e1e9f0;border-radius:10px;background:#fff;overflow:visible}
.sf-slot-1222s:not(.empty){cursor:grab}
.sf-slot-1222s.dragging-1222s{opacity:.45}
.sf-slot-1222s.drop-1222s{outline:2px dashed #2d5f8f;outline-offset:2px}
.sf-slot-img-1222s{position:relative;aspect-ratio:16/9;border-radius:9px 9px 0 0;overflow:hidden;background:#eef3f7}
.sf-slot-img-1222s img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.sf-slot-n-1222s{position:absolute;left:7px;top:7px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:rgba(14,35,54,.72);color:#fff;font-size:.72rem;font-weight:800;display:grid;place-items:center}
.sf-drag-1222s{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.88);display:grid;place-items:center;color:#35506b}
.sf-drag-1222s .ico-1222s{width:16px;height:16px;flex-basis:16px}
.sf-new-1222s{position:absolute;left:7px;bottom:7px;padding:2px 7px;border-radius:9px;background:#1f7a52;color:#fff;font-size:.66rem;font-weight:800}
.sf-slot-actions-1222s{display:flex;justify-content:flex-end;gap:2px;padding:5px 6px}
.sf-ibtn-1222s{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#35506b;display:inline-grid;place-items:center;cursor:pointer;text-decoration:none}
.sf-ibtn-1222s:hover:not([disabled]){background:#eef3f7;color:#173b63}
.sf-ibtn-1222s.danger{color:#b42335}
.sf-ibtn-1222s.danger:hover{background:#fdecee;color:#9b1c2c}
.sf-ibtn-1222s[disabled]{opacity:.35;cursor:default}
.sf-ibtn-1222s .ico-1220e,.sf-ibtn-1222s .ico-1222s{width:17px;height:17px;flex-basis:17px}
.sf-move-1222s{display:none}
.sf-slot-1222s.empty{border-style:dashed;border-color:#c7d5e2;background:#fafcfe}
.sf-add-1222s{width:100%;aspect-ratio:16/9;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#2d5f8f;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;border-radius:9px}
.sf-add-1222s:hover{background:#f0f6fb}
.sf-add-1222s small{color:#93a4b5;font-weight:700;font-size:.68rem}
.sf-slot-1222s.empty::after{content:"";display:block;height:42px}
.sf-add-menu-1222s{position:absolute;left:8px;right:8px;top:calc(50% - 10px);z-index:5;background:#fff;border:1px solid #d9e3ec;border-radius:10px;box-shadow:0 12px 30px rgba(9,31,51,.16);padding:5px;display:flex;flex-direction:column}
.sf-add-menu-1222s button{display:flex;align-items:center;gap:9px;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:7px;font:inherit;font-size:.8rem;font-weight:650;color:var(--ink);cursor:pointer}
.sf-add-menu-1222s button:hover,.sf-add-menu-1222s button:focus-visible{background:#eef3f7;outline:0}

/* Voucher photo picker */
.sf-picker-modal-1222s{width:min(860px,100%)!important}
.sf-picker-search-1222s{display:flex;align-items:center;gap:8px;border:1px solid #d5e0ea;border-radius:9px;padding:0 11px;margin-bottom:8px;color:#6b7f93}
.sf-picker-search-1222s input{border:0!important;outline:0;flex:1;min-width:0;height:40px;font:inherit;font-size:.88rem;background:transparent;box-shadow:none!important;padding:0!important}
.sf-picker-search-1222s:focus-within{border-color:#6aa0d0;box-shadow:0 0 0 2px #cfe2f3}
.sf-picker-grid-1222s{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:min(58vh,560px);overflow:auto;padding:2px}
.sf-pick-1222s{display:flex;flex-direction:column;border:1px solid #e1e9f0;border-radius:9px;background:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left;font:inherit}
.sf-pick-1222s:hover,.sf-pick-1222s:focus-visible{border-color:#2d5f8f;box-shadow:0 0 0 2px #cfe2f3;outline:0}
.sf-pick-1222s img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#eef3f7}
.sf-pick-1222s span{padding:6px 8px 8px;min-width:0}
.sf-pick-1222s strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.72rem;line-height:1.3;color:var(--ink)}
.sf-pick-1222s small{display:block;color:#7b8ea2;font-size:.66rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sf-picker-empty-1222s{grid-column:1/-1;padding:28px 10px;text-align:center;color:#6b7f93;font-size:.84rem}
.spinner-1222s{display:inline-block;width:14px;height:14px;border:2px solid #cfdbe6;border-top-color:#2d5f8f;border-radius:50%;animation:spin1222s .8s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes spin1222s{to{transform:rotate(360deg)}}

@media (max-width:900px){
  .sf-page-1222s{max-width:none}
  .sf-only-desk-1222s{display:none}
  .sf-only-phone-1222s{display:inline}
  .sf-slots-1222s{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .sf-slot-1222s:not(.empty){cursor:default}
  .sf-drag-1222s{display:none}
  .sf-move-1222s{display:inline-grid}
  .sf-slot-actions-1222s{justify-content:space-between;gap:0;padding:3px 2px}
  .sf-ibtn-1222s{width:30px;height:34px}
  .sf-slot-1222s.empty::after{height:40px}
  .sf-address-grid-1222s{grid-template-columns:1fr}
  .sf-mode-1222s{grid-template-columns:1fr}
  .sf-logo-row-1222s{grid-template-columns:1fr}
  .sf-save-row-1222s .btn{width:100%;justify-content:center}
  .sf-picker-grid-1222s{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
}
.sf-cache-note-1222s[hidden]{display:none}
/* END RYU 1.2.22 STORE CSS */
/* BEGIN RYU 1.2.22 SHELL CSS */
/* RYU Portal 1.2.22 — SHELL stream (dashboard tiles, back links, settings, top-up, vouchers, payout, icons, unavailable). */

/* ---------- Icon set: fixed 20 px slot ---------- */
svg.navset-1222{flex:none}
.nav-ico-1220.navset-1222{width:20px;height:20px}

/* ---------- Dashboard ---------- */
/* Two lines per tile: label / figure (+ small grey qualifier) or a one-line hint. */
/* Column count is picked from the tile count so every row is complete. */
.dash-1222 .dash-head-1221{margin-bottom:12px}
.dash-grid-1222{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:1200px){
  .dash-grid-1222.cols-5-1222{grid-template-columns:repeat(5,minmax(0,1fr))}
  .dash-grid-1222.cols-4-1222{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dash-grid-1222.cols-3-1222{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.dtile-1222{align-items:center;min-height:74px;padding:12px;gap:10px}
.dtile-1222 .dtile-ico-1221{width:38px;height:38px}
.dtile-1222 .dtile-ico-1221 .ico-1220{width:20px;height:20px}
.dtile-1222 .dtile-body-1221{gap:2px;justify-content:center;min-width:0}
.dtile-1222 .dtile-label-1221{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.dtile-1222 .dtile-fig-1221{font-size:19px;min-height:23px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.dtile-1222 .dtile-fig-1221 .spin-1221{margin-top:4px}
.dtile-fs-1222{color:#7a8b9d;font-size:12px;font-weight:500;letter-spacing:0}
.dtile-label-1221 .dtile-fs-1222{font-size:11.5px}
.dtile-fs-1222:empty{display:none}
@media (min-width:1200px){.cols-5-1222 .dtile-1222{padding:12px 10px;gap:10px}.cols-5-1222 .dtile-1222 .dtile-ico-1221{width:36px;height:36px}.dash-grid-1222.cols-5-1222{gap:10px}}
.dtile-1222 .dtile-hint-1221{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;font-size:12.5px}
.seg-1222 .seg-btn-1221{padding:5px 16px}
@media (max-width:640px){
  .dash-grid-1222{gap:10px}
  .dtile-1222{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:0;padding:12px}
  .dtile-1222 .dtile-ico-1221{width:34px;height:34px}
  .dtile-1222 .dtile-body-1221{align-self:stretch;width:100%}
  .dtile-1222 .dtile-fig-1221{font-size:17px}
  .dtile-1222 .dtile-fs-1222{font-size:11px}
  .dtile-1222 .dtile-label-1221 .dtile-fs-1222{font-size:10.5px}
  .dtile-wide-1222{grid-column:1 / -1;flex-direction:row;align-items:center}
  .seg-1222 .seg-btn-1221{padding:5px 4px;font-size:13px}
}

/* ---------- Back to Dashboard (phones only) ---------- */
.dash-back-1222{display:none}
.dash-back-row-1222{display:block}
.dash-back-center-1222{display:none}
@media (max-width:899.98px){
  .dash-back-1222{display:inline-flex;align-items:center;gap:4px;margin:0 0 6px;color:#1a5c91;font-size:13.5px;font-weight:600;text-decoration:none;line-height:1.3}
  .dash-back-1222:hover{text-decoration:underline}
  .dash-back-qr-1222{font-size:12.5px}
  .dash-back-row-1222{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px;width:100%}
  .dash-back-row-1222 > .dash-back-1222,.dash-back-row-1222 > .po-back-b20{margin:0!important;position:static!important;flex:0 0 auto}
  .dash-back-center-1222{display:flex;justify-content:center}
}

/* ---------- Admin Settings ---------- */
.set-form-1222 .set-sec-1222{margin:0;padding-top:20px}
.set-form-1222 .set-sec-1222:first-child{padding-top:4px}
.set-form-1222 .set-sec-1222 h2{margin:0 0 10px}
.set-form-1222 .set-grid-1221{gap:12px 18px}
.set-form-1222 .set-cbs-1221{margin:0 0 12px}
.set-form-1222 .set-cb-1222{font-size:13.5px;gap:7px}
.set-form-1222 .set-cb-1222 input{width:15px!important;height:15px!important;min-width:0}
.set-form-1222 .set-test-1221{margin-top:14px}
.set-form-1222 .set-test-1221 h3{margin:0 0 8px}
.set-form-1222 .set-actions-b20{margin-top:20px}
body[data-route-1219="settings"] .content-column > .page-head,body[data-route-1219="settings"] .content-column > h1{margin-bottom:6px!important}

/* ---------- Top-up ---------- */
body.authenticated-110 .balance-title-row-112.tu-head-1222{max-width:640px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px 18px;margin:0 0 14px}
.tu-bal-1222{display:flex;flex-direction:column;gap:4px;min-width:0}
.tu-amt-1222{font-size:1.5rem;font-weight:850;line-height:1.1;color:#173f64;font-variant-numeric:tabular-nums}
.tu-exp-1222{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.tu-exp-1222 span{font-size:.78rem;font-weight:700;color:#718397}
.tu-exp-1222 strong{font-size:1rem;font-weight:750;color:#173f64;font-variant-numeric:tabular-nums}
.tu-extend-1222{margin:-4px 0 14px;color:#4b6178;font-size:13.5px;line-height:1.45}
@media (max-width:640px){
  body.authenticated-110 .balance-title-row-112.tu-head-1222{flex-direction:row!important;align-items:flex-end}
  .tu-amt-1222{font-size:1.3rem}
}

/* ---------- Buyer Vouchers: Refund / My QR beside the title on phones ---------- */
@media (max-width:899.98px){
  body.authenticated-110 .page-head.wallet-head-1222{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between;gap:8px}
  body.authenticated-110 .page-head.wallet-head-1222 > :first-child{min-width:0;flex:1 1 auto}
  body.authenticated-110 .page-head.wallet-head-1222 .quick-actions{flex:0 0 auto;width:auto!important;margin:0!important;justify-content:flex-end}
  body.authenticated-110 .page-head.wallet-head-1222 .wallet-actions-r19{flex-wrap:nowrap;gap:6px}
  body.authenticated-110 .page-head.wallet-head-1222 .wallet-act-r19{min-height:36px;padding:0 10px;font-size:13.5px;white-space:nowrap}
  body.authenticated-110 .page-head.wallet-head-1222 .wallet-actions-r19.selecting-r19{flex-wrap:wrap;justify-content:flex-end}
}

/* ---------- Request payout (phone): buttons on one row ---------- */
@media (max-width:899.98px){
  .po-actions-b20{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:10px!important}
  .po-actions-b20 > .btn{flex:1 1 0!important;width:auto!important;min-width:0!important;margin:0!important}
}

/* ---------- Unavailable voucher / merchant ---------- */
.unav-1222{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:28px;align-items:center;max-width:980px;margin:8px 0 40px;padding:24px;border:1px solid #e3eaf1;border-radius:16px;background:#fff}
.unav-1222:not(:has(.unav-img-1222)){grid-template-columns:minmax(0,1fr)}
.unav-img-1222 img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;filter:grayscale(.85);opacity:.7;display:block}
.unav-ico-1222{display:inline-flex;width:40px;height:40px;border-radius:12px;background:#eef2f6;color:#41576e;align-items:center;justify-content:center;margin-bottom:10px}
.unav-ico-1222 .ico-1220{width:22px;height:22px}
.unav-body-1222 .page-title{margin:0 0 6px;font-size:1.6rem}
.unav-title-1222{margin:0 0 6px;font-weight:700;color:#173f64}
.unav-body-1222 .muted{margin:0 0 18px}
.unav-body-1222 .form-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0}
@media (max-width:720px){.unav-1222{grid-template-columns:minmax(0,1fr);padding:18px;gap:16px}}

/* ---------- Compact spacing on form pages: DESKTOP ONLY (phones unchanged) ---------- */
/* ~20 px above section headings, 12 px between rows, no empty hint lines, title closer to the first section. */
@media (min-width:900px){
  /* Title → first section */
  body[data-route-1219="profile"] .content-column > .page-head,
  body[data-route-1219="security"] .content-column > .page-head,
  body[data-route-1219="checkout"] .content-column .page-head,
  body[data-route-1219="order"] .content-column .page-head,
  .ed-page-1220e .ed-head-1220e,.ue-page-1221 .ue-head-1221{margin-bottom:8px!important}
  body[data-route-1219="balance"] .balance-title-row-112{margin-bottom:12px!important}
  /* Empty hint / error lines take no room */
  .content-column .field-error:empty,.content-column .avatar-error-122:empty,.content-column small:empty,.content-column .edh-1220e:empty,.content-column .field-hint-1220:empty,.content-column .set-hint-b20:empty{display:none!important}
  /* Profile */
  body[data-route-1219="profile"] form.registration-profile-grid-116{row-gap:12px!important}
  body[data-route-1219="profile"] .avatar-editor-1220{margin-bottom:0!important;padding-bottom:4px!important}
  body[data-route-1219="profile"] .field > span:first-child{margin-bottom:0!important}
  body[data-route-1219="profile"] .profile-check-grid-113{margin-top:2px!important;row-gap:4px!important}
  body[data-route-1219="profile"] form .form-actions{margin-top:8px!important}
  /* Security */
  body[data-route-1219="security"] .content-column h2{margin:20px 0 10px!important}
  body[data-route-1219="security"] .content-column h2:first-of-type{margin-top:4px!important}
  body[data-route-1219="security"] .content-column label.field{margin-bottom:12px!important}
  body[data-route-1219="security"] .content-column hr,body[data-route-1219="security"] .content-column .divider{margin:16px 0 0!important}
  /* Edit user */
  .ue-page-1221 .ue-sec-1221{margin:20px 0 10px!important}
  .ue-page-1221 .ue-sec-1221:first-of-type{margin-top:8px!important}
  .ue-page-1221 .ue-grid-1221{row-gap:12px!important}
  .ue-page-1221 .page-footer-1221{margin-top:20px}
  /* Voucher / category editors */
  .ed-page-1220e .ed-hint-box-1220e{margin-bottom:12px!important}
  .ed-stacked-1221 .ed-main-1220e{row-gap:20px!important}
  .ed-stacked-1221 .ed-card-head-1220e{margin-bottom:10px!important}
  .ed-stacked-1221 .ed-stack-1220e,.ed-stacked-1221 .ed-grid-1220e{row-gap:12px!important}
  .ed-stacked-1221 .edf-1220e{row-gap:5px!important}
  .ed-page-1220e .ed-footer-1220e{margin-top:20px!important}
  /* Top-up */
  body[data-route-1219="balance"] .topup-card-b20 .section-title{margin-bottom:8px!important}
  body[data-route-1219="balance"] .topup-card-b20 .ck-sub-b20{margin:8px 0 8px!important}
  body[data-route-1219="balance"] .topup-amount-b20{margin-top:12px!important}
  /* Request payout */
  .po-page-b20{row-gap:12px!important}
  .po-page-b20 .po-head-b20 .page-title{margin-bottom:2px!important}
  .po-page-b20 form{row-gap:12px!important}
  .po-page-b20 #payout-msg-b20:empty{display:none!important}
  .po-page-b20 h2.po-new-1221{margin:8px 0 0!important}
  .po-page-b20 .po-recent-b20 h2{margin:8px 0 10px!important}
  /* Checkout + order page */
  body[data-route-1219="checkout"] .content-column h2,body[data-route-1219="order"] .content-column h2{margin-top:0;margin-bottom:10px}
  .order-page-b20{row-gap:12px!important}
  body[data-route-1219="checkout"] .pm-list-b20{row-gap:8px}
  /* Dashboard */
  .dash-1222 .dash-head-1221{margin-bottom:10px}
  .dash-1222 .seg-1221{margin-bottom:12px}
}
/* END RYU 1.2.22 SHELL CSS */
/* BEGIN RYU 1.2.22 LISTS CSS */
/* ===== RYU Portal 1.2.22 — Stream LISTS ===== */

/* §1 Toolbar: desktop inline row, tighter; search shares the row */
.lt-bar-1222{display:none}
@media(min-width:900px){
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important;margin-bottom:12px!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > input[name="q"]{flex:1 1 220px!important;min-width:180px;width:auto!important;max-width:none!important;order:0}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > input[name="from"],body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > input[name="to"]{flex:0 0 128px!important;width:128px!important;min-width:0!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > select{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:220px}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > select[name="limit"]{max-width:150px}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > input,body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > select{height:38px!important;font-size:14px}
  .lt-all-1222{display:none!important}
}

/* §1 Phones / narrow (<900 px): sticky search + View options */
@media(max-width:899.98px){
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222{display:none!important}
  .lt-bar-1222{display:flex;align-items:center;gap:8px;position:sticky;top:var(--lt-top-1222,64px);z-index:40;background:var(--bg,#fff);margin:0 -16px 10px;padding:8px 16px;border-bottom:1px solid #e8eef4;box-shadow:0 6px 10px -10px rgba(23,59,99,.35)}
  .lt-search-1222{flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:40px;padding:0 10px;border:1px solid #cfdbe7;border-radius:10px;background:#fff;color:#7a8a99}
  .lt-search-1222[hidden]{display:none}
  .lt-search-1222 .ico-1220{width:18px;height:18px;flex:none}
  .lt-search-1222 input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;background:transparent!important;height:38px;padding:0!important;font-size:15px;color:#1f3550}
  .lt-search-1222:focus-within{border-color:#5b8fc7;box-shadow:0 0 0 3px rgba(91,143,199,.18)}
  .lt-vo-1222{flex:none;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px;border:1px solid #cfdbe7;border-radius:10px;background:#fff;color:#1f3550;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
  .lt-vo-1222 .ico-1220{width:18px;height:18px}
  .lt-vo-1222.on-1222{border-color:#9cc3ea;background:#f2f7fd;color:#174a7c}
  .lt-badge-1222{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#1d5a93;color:#fff;font-size:12px;font-weight:700;line-height:1}
  .lt-badge-1222[hidden]{display:none}
  /* 1.2.21 phone bar (select all + sort) is replaced by the title row and View options */
  .pl-bar-1221{display:none!important}
}
@media(max-width:380px){.lt-vo-text-1222{display:none}}
@media(max-width:430px){.lt-arch-dot-1222{display:none}.lt-arch-1222{padding:0 9px!important}.lt-all-1222{font-size:12.5px}.page-head.lt-head-1222 > .quick-actions{gap:5px!important}}
.chips-l1-1222{flex:none}

/* View options page */
.vo-form-1222{display:flex;flex-direction:column;gap:18px}
.vo-group-1222 h3{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.02em;color:#4b6178;text-transform:none}
.vo-grid-1222{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.vo-dates-1222{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.vo-field-1222{display:flex;flex-direction:column;gap:4px;margin:0!important}
.vo-field-1222 > span{font-size:12.5px;font-weight:600;color:#6b7f93}
.vo-field-1222 select,.vo-field-1222 input{width:100%;height:42px;font-size:15px;box-sizing:border-box}
.vo-sort-1222{display:flex;align-items:flex-end;gap:8px}
.vo-sort-1222 .vo-field-1222{flex:1;min-width:0}
.vo-dir-1222{flex:none;width:46px;height:42px;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}
.vo-dir-1222 .ico-1220{width:20px;height:20px}
#modal-root .vo-actions-1222.form-actions,.vo-actions-1222{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 0!important}
.vo-actions-1222 .btn{width:100%;justify-content:center}
@media(max-width:420px){.vo-grid-1222{grid-template-columns:minmax(0,1fr)}}

/* §1 Title row: Select all + All items / Active only */
.lt-arch-hidden-1222{display:none!important}
.lt-arch-1222{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:10px;border:1px solid #cfdbe7;background:#fff;color:#36516d;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.lt-arch-1222:hover{background:#f2f7fd}
.lt-arch-1222[data-state="all"]{background:#fff6e5;border-color:#f0d9a8;color:#7a5208}
.lt-arch-dot-1222{width:8px;height:8px;border-radius:50%;background:#2f9e6b;flex:none}
.lt-arch-1222[data-state="all"] .lt-arch-dot-1222{background:#d29a22}
.lt-all-1222{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#36516d;white-space:nowrap;cursor:pointer;margin-right:2px}
.lt-all-1222 input{width:18px;height:18px;margin:0}
.page-head.lt-head-1222 .quick-actions{align-items:center}
@media(max-width:899.98px){
  .page-head.lt-head-1222{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
  .page-head.lt-head-1222 > div:first-child{flex:0 0 auto!important;min-width:0;max-width:100%}
  .page-head.lt-head-1222 > .quick-actions{flex:1 1 auto!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:6px!important;margin-left:0!important;width:auto!important;min-width:0}
  .page-head.lt-head-1222 .lt-all-1222{margin-right:auto}
  .page-head.lt-head-1222 > .quick-actions .icon-btn-114,.page-head.lt-head-1222 > .quick-actions .export-trigger-114{width:36px!important;min-width:36px!important;height:36px!important;padding:0!important}
  .lt-arch-1222{height:34px;padding:0 10px;font-size:12.5px}
  .page-head.lt-head-1222 .page-subtitle{display:none}
}

/* Result summary after bulk actions */
.br-sum-1222{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.br-sum-1222 > span{display:inline-flex;align-items:baseline;gap:6px;padding:8px 12px;border-radius:10px;font-size:14px}
.br-done-1222{background:#ebf7f0;color:#1d7350}
.br-skip-1222{background:#f4f6f8;color:#4b6178}
.br-sum-1222 strong{font-size:18px}
.br-why-1222{margin:0 0 12px;padding:0 0 0 18px;color:#4b6178;font-size:13.5px;line-height:1.6}
.br-n-1222{font-weight:700;color:#1f3550}

/* §2 Requests desktop: wider Merchant (2 lines), narrower Item with photo/logo/icon */
html body #app table.requests-table-1221.requests-table-1221 .request-merchant-col-1220{min-width:158px!important;width:14%}
.requests-table-1221 td.request-merchant-col-1220 .entity-two-line-126 > a,.requests-table-1221 td.request-merchant-col-1220 .entity-two-line-126 > strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:normal;overflow-wrap:anywhere;line-height:1.3}
html body #app table.requests-table-1221.requests-table-1221 td.request-item-col-1221{min-width:150px!important;max-width:196px;width:15%}
.req-item-1222 .req-item-text-1221 .entity-two-line-126 > span,.req-item-1222 .req-item-text-1221 .entity-two-line-126 > a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.req-item-1222 .req-photo-1221 .thumb-1220{width:40px;height:40px}
.req-icon-1222 .thumb-icon-1220{background:#eef3f8;color:#4b6178}
.req-logo-1222 .thumb-1220{border-radius:50%}

/* Request type icons (phones + desktop item icon) */
.rq-ico-1222{position:relative;overflow:visible!important}
.rt-topup_bank-1222,.rt-topup-1222{background:#e9f7ef!important;color:#1d7350!important}
.rt-buyer_balance_refund-1222,.rt-voucher_refund-1222{background:#fdf1e7!important;color:#a3540d!important}
.rt-merchant_payout-1222{background:#eaf2fb!important;color:#24598f!important}
.rt-merchant_registration-1222{background:#f2eefc!important;color:#5b3fa0!important}
.rt-support-1222{background:#eef4f6!important;color:#2d6470!important}
.rt-order_payment-1222{background:#fdf6e3!important;color:#8f5d0c!important}
.st-dot-1222{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border-radius:50%;border:2px solid #fff;box-sizing:border-box;background:#9aaabb}
.po-phone-1221 .st-dot-1222,.pl-row-1222 .st-dot-1222{display:block}
.st-dot-1222.tone-amber{background:#e0a020}
.st-dot-1222.tone-green{background:#2f9e6b}
.st-dot-1222.tone-red{background:#d1453b}
.st-dot-1222.tone-blue{background:#2f7bd0}
.st-dot-1222.tone-grey{background:#9aaabb}

/* §2 Transactions desktop: voucher photo at the right of the Voucher / Merchant cell */
.tx-vm-1222{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.tx-vm-text-1222{min-width:0;flex:1}
.tx-photo-1222{flex:none}
.tx-photo-1222 .thumb-1220{width:40px;height:40px;border-radius:8px}

/* §2 Transactions: six summary tiles */
.sum-row-1221.sum-row-1222{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.sum-row-1222 .sum-tile-1221{padding:10px 12px}
.sum-tile-1221.tone-rose{background:#fdeff2;border-color:#f6d9e0}.sum-tile-1221.tone-rose .sum-label-1221{color:#9c2f4c}
@media(max-width:1280px){.sum-row-1221.sum-row-1222{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.sum-row-1221.sum-row-1222{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Colourful top-up icon (phones) */
.thumb-topup-1222{position:relative;background:linear-gradient(135deg,#ffe7a3,#ffc857)!important;color:#7a4b00!important;overflow:visible!important}
.thumb-topup-1222 > .ico-1220{width:22px;height:22px}
.topup-coin-1222{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:50%;background:#2f9e6b;color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-style:normal}
.topup-coin-1222 .ico-1220{width:13px;height:13px;stroke-width:2}

/* Email History / Audit Log icons */
.mail-ok-1222{background:#e9f7ef!important;color:#1d7350!important}
.mail-bad-1222{background:#fdecea!important;color:#b42318!important}
.mail-off-1222{background:#f1f4f7!important;color:#7a8a99!important}
.mail-ok-1222 .ic-badge-1222,.mail-bad-1222 .ic-badge-1222{fill:currentColor;fill-opacity:.14}
.audit-ico-1222{background:#eef3f8!important;color:#36516d!important}
.audit-bad-1222{background:#fdecea!important;color:#b42318!important}

/* Mismatch badge */
.mm-badge-1222{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px 1px 5px;border-radius:999px;background:#fff4e0;border:1px solid #f3d29a;color:#8a5a00;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:1px;cursor:help}
.mm-badge-1222 .ico-1220{width:12px;height:12px;stroke-width:2}
td .mm-badge-1222{margin:4px 0 0}

/* Chips (Categories) */
.chips-1222{display:inline-flex;gap:6px;flex-wrap:wrap}
.l2-left-1222 .chips-1222{flex-wrap:nowrap;max-width:100%;overflow:hidden}
.chip-1222{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.6;white-space:nowrap}
.chip-v-1222{background:#e8f6f5;color:#16716b}
.chip-m-1222{background:#f3effc;color:#5b3fa0}

/* §1 Phone rows: line 2 = description left, date right */
.l2-1222{display:flex!important;align-items:center;gap:8px;min-width:0}
.l2-left-1222{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.l2-date-1222{flex:none;margin-left:auto;text-align:right;font-variant-numeric:tabular-nums;color:#7a8a99;font-size:12px;white-space:nowrap}
.mono-1222{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
.pl-row-1222 .tx-row-l1-1220 .mm-badge-1222{flex:none}
.pl-row-1222 .thumb-icon-1220{position:relative}

/* §8 phone lists now cover everything below 900 px */
@media(min-width:641px) and (max-width:899.98px){
  .table-wrap.pl-on-1221{display:none!important}
  .pl-host-1221{display:block;margin-bottom:12px}
  .pl-list-1221 .pl-row-1221{display:flex;align-items:stretch}
  .pl-row-1221.selected{background:#f2f7fd}
  .pl-check-1221{display:flex;align-items:center;padding:0 0 0 12px;flex:none}
  .pl-check-1221 input{width:20px;height:20px;margin:0}
  .pl-main-1221{flex:1;min-width:0}
  .pl-row-1221 .pl-check-1221 + .pl-main-1221{padding-left:10px}
  .pl-chev-1221{flex:none;display:inline-flex;color:#9aaabb;margin-left:-4px}
  .pl-chev-1221 .ico-1220{width:18px;height:18px}
  .pl-main-1221 .tx-row-l2-1220 .status-badge{font-size:11px;padding:1px 7px;vertical-align:1px}
  .pl-empty-1221{padding:18px 14px;color:#6b7f93;font-size:14px}
  .pl-thumb-1221{display:inline-flex;flex:none}
  .po-desk-1221{display:none!important}.po-phone-1221{display:block}
}

/* Details pages: action buttons on one row, compact and equal */
.pld-actions-1221.pld-row-1222{display:grid!important;grid-template-columns:repeat(var(--n-1222,3),minmax(0,1fr));gap:8px;flex-wrap:nowrap}
.pld-actions-1221.pld-row-1222 .btn{flex:none!important;width:100%;min-width:0;min-height:38px;height:38px;padding:0 8px!important;font-size:13.5px;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pld-actions-1221.pld-row-1222 .btn span{overflow:hidden;text-overflow:ellipsis}
.pld-actions-1221.pld-row-1222 .btn svg{width:16px;height:16px}
html body #app table.requests-table-1221.requests-table-1221 td.requester-col-126{max-width:165px}
html body #app table.requests-table-1221.requests-table-1221 td.requester-col-126 small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal!important}
.pl-row-1222 .mm-badge-1222{padding:1px 4px}.pl-row-1222 .mm-badge-1222 > span{display:none}
/* Buyer Vouchers (#/wallet) toolbar: same pattern */
@media(max-width:899.98px){html body #app form#wallet-filter-111.lt-form-1222{display:none!important}}
@media(min-width:900px){
  html body #app form#wallet-filter-111.lt-form-1222{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important;grid-template-columns:none!important}
  html body #app form#wallet-filter-111.lt-form-1222 > .search-progress-1120{flex:1 1 220px!important;min-width:180px;width:auto!important;max-width:none!important}
  html body #app form#wallet-filter-111.lt-form-1222 > .search-progress-1120 input{width:100%!important}
  html body #app form#wallet-filter-111.lt-form-1222 > .wallet-merchant-field-113{flex:0 1 240px!important;width:240px!important;min-width:0!important;max-width:240px!important}
  html body #app form#wallet-filter-111.lt-form-1222 > select{flex:0 0 auto!important;width:auto!important;max-width:200px}
}
/* END RYU 1.2.22 LISTS CSS */
/* BEGIN RYU 1.2.23 SHELL CSS */
/* ========================================================================== */
/* RYU Portal 1.2.23 — SHELL stream styles (identifiers end in 1223).         */
/* ========================================================================== */

/* 1.5 One header width on every page: the scrollbar gutter is always reserved
   on desktop (sign-in, forgot password, registrations, terms, contact, store),
   and the scenic sign-in canvas also paints the gutter. */
@media (min-width:761px){
  html,html.authenticated-110,html:has(.auth-center-shell.auth-background-119){scrollbar-gutter:stable!important}
  html:has(.auth-center-shell.auth-background-119){overflow-y:scroll!important;background:linear-gradient(rgba(255,255,255,.20),rgba(255,255,255,.30)),url('../assets/images/okinawa-login-bg-progressive.jpg') center/cover fixed no-repeat!important}
}
@media (max-width:760px){
  html,html.authenticated-110,html:has(.auth-center-shell.auth-background-119){scrollbar-gutter:auto!important}
}

/* 1.8 Sidebar role select: exactly the width of a menu item. */
#persistent-side-116 .acting-as-118{padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box}
#persistent-side-116 .acting-as-118 select{display:block;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important}

/* 1.1 Field messages under inputs */
html body .fmsg-1223{display:block!important;margin-top:5px!important;color:#b42335!important;font-size:12.5px!important;font-weight:500!important;line-height:1.35!important}
input.is-invalid-1223,select.is-invalid-1223,textarea.is-invalid-1223{border-color:#d0475a!important;box-shadow:0 0 0 3px rgba(208,71,90,.12)!important}
.btn.is-busy-1223{opacity:.75;cursor:progress}

/* §3 Dashboard ------------------------------------------------------------ */
.dash-head-1223{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:6px 16px}
.dash-head-1223 .dash-badges-1221{justify-self:end}
.clock-1223{font-variant-numeric:tabular-nums;white-space:nowrap}
.dash-clock-1223{color:#41576e;font-size:14px;font-weight:600;letter-spacing:.01em;line-height:26px;justify-self:end}
.dtile-1223 .dtile-label-1223{display:block;color:#173f64;font-size:14px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dtile-1223 .dtile-lq-1223{font-weight:600;color:#5b6f83;font-size:12.5px}
.dtile-1223 .dtile-fig-1223{display:block;color:#173f64;font-size:19px;font-weight:800;line-height:1.2;min-height:23px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.dtile-1223 .dtile-fig-1223 .dtile-num-1222{font-weight:800}
.dtile-1223 .dtile-body-1223{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;flex:1}
.dtile-1223.dtile-one-1223{align-items:center}
.dtile-1223 .dtile-hint-1221,.dtile-1223 .dtile-sub-1221,.dtile-1223 .dtile-fs-1222{display:none!important}
@media (max-width:899.98px){
  .dash-head-1223{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 10px}
  .dash-head-1223 .dash-hello-1221{grid-column:1;grid-row:1}
  .dash-head-1223 .dash-badges-1221{grid-column:2;grid-row:1;align-self:end}
  .dash-head-1223 .dash-clock-1223{grid-column:1 / -1;grid-row:2;justify-self:start;font-size:13px;line-height:20px}
  .dtile-1223 .dtile-label-1223{font-size:13.5px}
  .dtile-1223 .dtile-lq-1223{display:block;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dtile-1223 .dtile-fig-1223{font-size:17px}
  .dtile-1223.dtile-one-1223{align-items:flex-start}
  .dtile-1223.dtile-one-1223 .dtile-body-1223{flex:1;align-self:stretch;justify-content:center}
  .dtile-1223.dtile-wide-1222.dtile-one-1223{align-items:center}
}

/* "← Dashboard" (phones): same text, tap area at least 44 px high. */
@media (max-width:899.98px){
  .content-column .dash-back-1222,.dash-back-1222{min-height:44px;padding:0 14px 0 10px;margin:-13px 0 -7px -10px!important;box-sizing:border-box;align-items:center}
  .dash-back-row-1222{margin:0 0 6px!important}
  .dash-back-row-1222 > .dash-back-1222{margin:-13px 0 -13px -10px!important}
  .dash-back-center-1222 > .dash-back-1222{margin:-13px auto -13px!important;padding:0 14px!important}
}

/* 1.4 Confirm sheet over a phone page view */
html.stack-1223 #modal-root .modal-backdrop.under-bd-1223{pointer-events:none}

/* Admin Settings: System time zone ---------------------------------------- */
.tz-combo-1223{position:relative}
.tz-combo-1223 .tz-input-1223{width:100%;padding-right:30px!important;box-sizing:border-box;text-overflow:ellipsis}
.tz-caret-1223{position:absolute;right:11px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:1.8px solid #5b6f83;border-bottom:1.8px solid #5b6f83;transform:rotate(45deg);pointer-events:none}
.tz-list-1223{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;max-height:280px;overflow:auto;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid #d5e0ea;border-radius:9px;box-shadow:0 12px 28px rgba(23,59,99,.14)}
.tz-list-1223[hidden]{display:none}
.tz-list-1223 li{padding:7px 10px;border-radius:6px;font-size:13px;line-height:1.3;color:#24384d;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tz-list-1223 li.act-1223,.tz-list-1223 li:hover{background:#eef4fa}
.tz-list-1223 li.on{font-weight:700;color:#173f64}
.tz-list-1223 li.tz-none-1223{color:#7a8b9d;cursor:default;background:none}
.tz-confirm-1223 p{line-height:1.5}

/* Buyer top-up result / pending request ------------------------------------ */
.tu-result-1223{max-width:560px;padding:24px!important;display:flex;flex-direction:column;gap:12px}
.tu-result-1223 h2{margin:0;font-size:1.25rem;color:#173f64}
.tu-result-1223 p{margin:0;color:#41576e;line-height:1.5}
.tu-res-ico-1223{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.tu-res-ico-1223 svg{width:24px;height:24px}
.tu-res-ico-1223.ok{background:#e6f5ed;color:#17794f}
.tu-res-ico-1223.warn{background:#fdf3e1;color:#94600f}
.tu-kv-1223{display:grid;grid-template-columns:auto 1fr;gap:0;margin:4px 0 0;border:1px solid #e3eaf1;border-radius:10px;overflow:hidden}
.tu-kv-1223 > div{display:contents}
.tu-kv-1223 dt,.tu-kv-1223 dd{margin:0;padding:9px 12px;border-top:1px solid #edf2f6;font-size:13.5px}
.tu-kv-1223 > div:first-child dt,.tu-kv-1223 > div:first-child dd{border-top:0}
.tu-kv-1223 dt{color:#5b6f83;font-weight:600;background:#f8fafc}
.tu-kv-1223 dd{color:#173f64;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.tu-res-actions-1223{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.tu-hold-msg-1223:empty{display:none}
@media (max-width:899.98px){
  .tu-result-1223{max-width:none;padding:18px!important}
  .tu-res-actions-1223{flex-direction:column}
  .tu-res-actions-1223 .btn{width:100%;justify-content:center;min-height:46px}
}

/* Buyer Scan QR: one large button --------------------------------------- */
.scan-head-1223{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
html body .card.scan-card-r19.scan-solo-1223{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:4px 0 22px!important;max-width:none!important;width:auto!important}
html body .scan-solo-1223 .btn.btn-scan-r19{width:480px!important;max-width:100%!important;min-height:56px!important;font-size:16px!important;justify-content:center;margin:0!important}
@media (max-width:899.98px){html body .scan-solo-1223 .btn.btn-scan-r19{width:100%!important}}

/* Merchant My QR: live clock --------------------------------------------- */
.mq-clock-row-1223{display:flex;justify-content:center;margin:2px 0 10px}
.mq-clock-1223{color:#173f64;font-size:15px;font-weight:700;letter-spacing:.01em}
html.tu-wait-1223 [data-topup-b20]{visibility:hidden}

/* L10 carried toast: a notice at the top of the page content (never over it). */
.toast-inline-1223{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#e8f1fa;color:#173f64;font-size:13.5px;font-weight:600;line-height:1.35}
.toast-inline-1223.success{background:#e6f5ed;color:#17663f}
.toast-inline-1223.error{background:#fdecef;color:#a8344c}
.toast-inline-1223.warning{background:#fdf3e1;color:#7a4f0c}
.toast-inline-1223 button{flex:none;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer}
/* END RYU 1.2.23 SHELL CSS */
/* BEGIN RYU 1.2.23 LISTS CSS */
/* ===== RYU Portal 1.2.23 — Stream LISTS ===== */

/* §2 Desktop filter toolbar: one row (search flexible, date range, selects, page size) */
.dr-src-1223{display:none!important}
@media(min-width:900px){
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important;grid-template-columns:none!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > .search-progress-1120,
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > input[name="q"]{flex:1 1 200px!important;min-width:170px!important;width:auto!important;max-width:none!important;margin:0!important;order:0}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > .search-progress-1120 > input[name="q"]{width:100%!important;max-width:none!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > select{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:210px;margin:0!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > select[name="limit"]{max-width:84px;min-width:68px!important}
  body form.ops-toolbar-110.lt-form-1222.lt-form-1222.lt-form-1222.lt-form-1222 > .dr-btn-1223{flex:0 0 auto!important;width:auto!important;min-width:150px!important;margin:0!important}
}
/* Date-range button */
.dr-btn-1223{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid #cfdbe7;border-radius:10px;background:#fff;color:#1f3550;font:inherit;font-size:14px;line-height:1;white-space:nowrap;cursor:pointer;min-width:150px;box-sizing:border-box}
.dr-btn-1223:hover{border-color:#9cc3ea;background:#f7fafd}
.dr-btn-1223:focus-visible{outline:2px solid #5b8fc7;outline-offset:2px}
.dr-btn-1223 .ico-1220{width:18px;height:18px;flex:none;color:#4b6178}
.dr-btn-1223.on-1223{border-color:#9cc3ea;background:#f2f7fd;color:#174a7c;font-variant-numeric:tabular-nums}
.dr-btn-1223.on-1223 .ico-1220{color:#24598f}
.dr-btn-text-1223{overflow:hidden;text-overflow:ellipsis}
.vo-dates-1223{display:block!important}
.dr-vo-btn-1223{width:100%;height:44px;font-size:15px}

/* Picker popover (desktop) / bottom sheet (phones, View options) */
.dr-back-1223{display:none}
.dr-pop-1223{position:absolute;z-index:100001;background:#fff;border:1px solid #d6e1ec;border-radius:14px;box-shadow:0 18px 44px -12px rgba(23,59,99,.35),0 2px 6px rgba(23,59,99,.08);padding:12px 14px 14px;width:max-content;max-width:calc(100vw - 16px);box-sizing:border-box;color:#1f3550}
.dr-head-1223{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}
.dr-head-1223 strong{font-size:15px;color:#173b63}
.dr-x-1223{border:0;background:none;font-size:22px;line-height:1;width:34px;height:34px;border-radius:8px;color:#4b6178;cursor:pointer}
.dr-x-1223:hover{background:#f1f5f9}
.dr-fields-1223{display:flex;align-items:flex-end;gap:8px}
.dr-field-1223{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;margin:0}
.dr-field-1223 > span{font-size:12px;font-weight:600;color:#6b7f93}
.dr-field-1223 input{height:38px;width:100%;box-sizing:border-box;border:1px solid #cfdbe7;border-radius:9px;padding:0 10px;font-size:14.5px;font-variant-numeric:tabular-nums;color:#1f3550;background:#fff}
.dr-field-1223 input:focus{outline:0;border-color:#5b8fc7;box-shadow:0 0 0 3px rgba(91,143,199,.18)}
.dr-field-1223.bad-1223 input{border-color:#d1453b;box-shadow:0 0 0 3px rgba(209,69,59,.12)}
.dr-arrow-1223{color:#9aaabb;padding-bottom:10px}
.dr-err-1223{margin:6px 0 0;color:#b42318;font-size:12.5px}
.dr-err-1223[hidden]{display:none}
.dr-cal-1223{position:relative;margin-top:10px}
.dr-months-1223{display:flex;gap:22px}
.dr-month-1223{width:252px}
.dr-mtitle-1223{text-align:center;font-weight:700;font-size:14px;color:#173b63;height:32px;line-height:32px}
.dr-grid-1223{border-collapse:separate;border-spacing:0 2px;width:100%;table-layout:fixed}
.dr-grid-1223 th{font-size:11.5px;font-weight:600;color:#7a8a99;text-align:center;height:26px;padding:0}
.dr-grid-1223 td{padding:0;text-align:center;height:34px}
.dr-grid-1223 td.in-range-1223{background:#e6f0fa}
.dr-grid-1223 td.rng-start-1223{background:linear-gradient(90deg,transparent 50%,#e6f0fa 50%)}
.dr-grid-1223 td.rng-end-1223{background:linear-gradient(90deg,#e6f0fa 50%,transparent 50%)}
.dr-day-1223{width:34px;height:34px;border:0;border-radius:50%;background:none;color:#1f3550;font:inherit;font-size:13.5px;font-variant-numeric:tabular-nums;cursor:pointer;padding:0}
.dr-day-1223:hover:not([disabled]){background:#eef4fb}
.dr-day-1223:focus-visible{outline:2px solid #2f7bd0;outline-offset:1px}
.dr-day-1223.is-today-1223{box-shadow:inset 0 0 0 1.5px #9cc3ea;font-weight:700}
.dr-day-1223.is-from-1223,.dr-day-1223.is-to-1223{background:#1d5a93!important;color:#fff;font-weight:700}
.dr-day-1223[disabled]{color:#c3ccd5;cursor:default;text-decoration:line-through;text-decoration-color:rgba(195,204,213,.6)}
.dr-nav-1223{position:absolute;top:0;width:32px;height:32px;border:1px solid #dbe4ee;border-radius:8px;background:#fff;color:#36516d;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:1}
.dr-nav-1223 .ico-1220{width:18px;height:18px}
.dr-nav-1223[disabled]{opacity:.35;cursor:default}
.dr-prev-1223{left:0}.dr-next-1223{right:0}
.dr-quick-1223{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f5}
.dr-quick-1223 button{height:30px;padding:0 11px;border:1px solid #d6e1ec;border-radius:999px;background:#f7f9fb;color:#24598f;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.dr-quick-1223 button:hover{background:#eaf2fb;border-color:#9cc3ea}
.dr-quick-1223 button[data-dr-quick-1223="clear"]{color:#6b7f93}
.dr-foot-1223{display:flex;align-items:center;gap:8px;margin-top:12px}
.dr-foot-1223 .btn{min-height:36px;height:36px;padding:0 16px}
.dr-tz-1223{margin-right:auto;font-size:11.5px;color:#8395a7}
@media(max-width:639.98px){
  .dr-back-1223{display:block;position:fixed;inset:0;z-index:100000;background:rgba(15,32,52,.42)}
  .dr-pop-1223,.dr-pop-1223.dr-sheet-1223{position:fixed;left:0!important;right:0;bottom:0;top:auto!important;width:100%;max-width:none;border-radius:16px 16px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));max-height:92vh;overflow:auto}
  .dr-months-1223{display:block}
  .dr-month-1223{width:100%}
  .dr-day-1223{width:40px;height:40px;font-size:15px}
  .dr-grid-1223 td{height:42px}
  .dr-quick-1223 button{height:36px;padding:0 13px;font-size:14px}
  .dr-foot-1223 .btn{flex:1;height:44px;min-height:44px}
  .dr-tz-1223{display:none}
  .dr-field-1223 input{height:42px;font-size:16px}
}
@media(min-width:640px){.dr-pop-1223.dr-sheet-1223{position:fixed;left:50%!important;top:50%!important;transform:translate(-50%,-50%)}}
.dr-back-1223.on-1223{display:block;position:fixed;inset:0;z-index:100000;background:rgba(15,32,52,.42)}

/* §2 Page size select: just "25" */
select[name="limit"]{font-variant-numeric:tabular-nums}

/* §2 All items / Active only: icon-only square button */
.lt-arch-1222.lt-arch-1223{width:38px;min-width:38px;height:38px;padding:0!important;justify-content:center;gap:0;border-radius:10px}
.lt-arch-1223 .ico-1220{width:20px;height:20px}
.lt-arch-1223[data-state="active"]{background:#ebf7f0;border-color:#cbe9d8;color:#1d7350}
.lt-arch-1223[data-state="active"]:hover{background:#dff2e7}
.lt-arch-1223[data-state="all"]{background:#fff6e5;border-color:#f0d9a8;color:#7a5208}
.lt-arch-1223[aria-pressed]:focus-visible{outline:2px solid #5b8fc7;outline-offset:2px}
@media(max-width:899.98px){.lt-arch-1222.lt-arch-1223{width:36px;min-width:36px;height:36px}}

/* §2 Select all (phones): icon-only square at the left of the title toolbar */
.lt-sa-1223{display:none}
@media(max-width:899.98px){
  .lt-sa-1223{display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;height:36px;padding:0;border:1px solid #cfdbe7;border-radius:10px;background:#fff;color:#36516d;cursor:pointer;margin-right:auto;flex:none}
  .lt-sa-1223 .ico-1220{width:20px;height:20px}
  .lt-sa-1223[aria-pressed="true"]{background:#1d5a93;border-color:#1d5a93;color:#fff}
  .lt-all-1222{display:none!important}
}

/* §2 View options (phones): icon-only square with filter-count badge */
@media(max-width:899.98px){
  .lt-vo-1222{position:relative;width:40px;min-width:40px;padding:0!important;justify-content:center}
  .lt-vo-text-1222{display:none!important}
  .lt-vo-1222 .lt-badge-1222{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;font-size:11px;border:2px solid #fff}
}

/* §2 Stats boxes: label + figure only, shorter */
.sum-tile-1223{padding:9px 12px!important;gap:2px!important;justify-content:center}
.sum-tile-1223 strong{font-size:20px}
@media(max-width:640px){.sum-tile-1223{padding:8px 10px!important}.sum-tile-1223 strong{font-size:17px}}

/* §2 Requests desktop: no category chip in Item */
.requests-table-1221 .req-cat-1219{display:none!important}
.requests-table-1221 .req-line2-1219{gap:0}
.rej-1223{white-space:pre-wrap}
dl .dl-wide-1223{grid-column:1/-1}

/* §2 Transactions desktop: photo LEFT of the voucher / merchant text */
.tx-cols-1223 .tx-vm-1222{flex-direction:row-reverse;justify-content:flex-end}
.tx-cols-1223 .tx-photo-1222{margin:0}

/* §2 Email History: Type on one line */
th.eh-type-1223,td.eh-type-1223{white-space:nowrap!important;min-width:112px}

/* §2 Accounts: avatars + user-check / user-x */
.acc-name-1223{display:flex;align-items:center;gap:10px;min-width:0}
.acc-text-1223{min-width:0}
.acc-av-1223{flex:none;display:inline-flex}
.av-1223{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;flex:none;background:#eef3f8;color:#36516d;font-weight:700;letter-spacing:.02em}
.av-1223 img{width:100%;height:100%;object-fit:cover;display:block}
.av-s-1223{width:32px;height:32px;font-size:12px}
.av-m-1223{width:40px;height:40px;font-size:14px}
.thumb-1220.av-1223{border-radius:50%!important}
.hue-0-1223{background:#e3f0fb;color:#24598f}.hue-1-1223{background:#e6f6ef;color:#1d7350}.hue-2-1223{background:#fdf1e7;color:#a3540d}.hue-3-1223{background:#f2eefc;color:#5b3fa0}
.hue-4-1223{background:#fdecf1;color:#9c2f4c}.hue-5-1223{background:#e8f6f5;color:#16716b}.hue-6-1223{background:#fdf6e3;color:#8f5d0c}.hue-7-1223{background:#eef1f5;color:#3e5268}
.user-ico-1223{width:20px;height:20px}

/* §2 System records: Delete greyed out with tooltip */
.sys-lock-1223{display:inline-flex;cursor:not-allowed;border-radius:8px}
.sys-lock-1223 .icon-btn-110[disabled]{opacity:.35;pointer-events:none;filter:grayscale(1)}
.sys-lock-1223:focus-visible{outline:2px solid #5b8fc7;outline-offset:2px}

/* §3 Payout Withdraw */
.po-row-1223{position:relative}
.po-wd-1223{flex:none;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 6px 0 0;border:1px solid #f1d4d0;border-radius:10px;background:#fff;color:#b42318;cursor:pointer;padding:0}
.po-wd-1223 .ico-1220{width:20px;height:20px}
.wd-icon-1223{color:#b42318}
.wd-btn-1223{display:inline-flex!important;align-items:center;gap:6px;color:#b42318}
.wd-btn-1223 .ico-1220{width:18px;height:18px}
.po-acts-1223{margin-top:4px}
@media(min-width:641px){.po-acts-1223.pld-row-1222{grid-template-columns:minmax(0,200px)!important}}
.po-page-1221 > *{min-width:0}
.po-recent-1221{min-width:0;max-width:100%}
.po-row-1223 .pl-main-1221{min-width:0}
/* QA M1: Recent payout requests fit the column (no horizontal scroll ≥1024) */
.po-desk-1221{overflow-x:visible!important}
html body #app table.po-table-1221{width:100%;min-width:0!important;table-layout:auto}
html body #app table.po-table-1221 th,html body #app table.po-table-1221 td{white-space:normal!important;padding-left:8px!important;padding-right:8px!important;word-break:normal;overflow-wrap:normal}
html body #app table.po-table-1221 th{font-size:11px;line-height:1.3}
html body #app table.po-table-1221 td .id-cell-116{white-space:nowrap;font-size:12px}
html body #app table.po-table-1221 td.amt-col-1220,html body #app table.po-table-1221 td .status-badge{white-space:nowrap!important}
html body #app table.po-table-1221 td .dt-1220{white-space:nowrap}
html body #app table.po-table-1221 td.po-note-1221{min-width:110px!important;max-width:170px;overflow-wrap:anywhere}
html body #app table.po-table-1221 td.actions-col-126{width:1%;white-space:nowrap!important}
html body #app table.po-table-1221 .icon-actions-110{flex-wrap:nowrap;gap:2px}
/* END RYU 1.2.23 LISTS CSS */
/* BEGIN RYU 1.2.23 STORE CSS */
/* ===== RYU 1.2.23 STORE — merchant profile, public merchant page, Storefront ===== */
.ico-1223s{width:18px;height:18px;flex:0 0 18px;display:inline-block;vertical-align:middle}

/* ---------- Storefront: cache note under the Company heading ---------- */
.sf-cache-note-1222s.sf-cache-top-1223s{margin:-4px 0 16px;max-width:none}

/* ---------- Merchant profile: Public profile section ---------- */
.mp-public-1223s{margin:14px 0 6px;padding:20px 22px 18px;border:1px solid #e3eaf1;border-radius:12px;background:#fbfcfe;min-width:0}
.mp-head-1223s{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mp-head-1223s h2{margin:0;font-size:1.05rem;font-weight:800;color:var(--ink)}
.mp-view-1223s{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border-radius:8px;border:1px solid #d6e0ea;background:#fff;color:var(--ink);font-size:.83rem;font-weight:750;text-decoration:none;white-space:nowrap}
.mp-view-1223s:hover,.mp-view-1223s:focus-visible{border-color:#9db6cd;background:#f4f8fb}
.mp-view-1223s .ico-1223s{width:16px;height:16px;flex-basis:16px}
.mp-view-1223s .ico-1223s:last-child{width:13px;height:13px;flex-basis:13px;opacity:.7}
.mp-lead-1223s{margin:4px 0 16px;color:#6b7f93;font-size:.8rem}
.mp-photos-1223s{display:grid;grid-template-columns:minmax(0,320px) minmax(0,480px);gap:20px 28px;align-items:start}
.mp-slot-1223s{min-width:0}
.mp-slot-1223s h3{margin:0 0 2px;font-size:.86rem;font-weight:750;color:var(--ink)}
.mp-hint-1223s{margin:0 0 8px;color:#6b7f93;font-size:.74rem;line-height:1.4}
.mp-slot-1223s .mp-hint-1223s{min-height:2.8em}
.mp-slot-1223s .photo-frame-1220e{max-width:none}
.mp-slot-logo-1223s .photo-frame-1220e{aspect-ratio:1/1;width:240px;max-width:100%;background:#fff}
.mp-slot-logo-1223s .photo-frame-1220e img{object-fit:contain;padding:14px}
.mp-slot-hero-1223s .photo-frame-1220e{aspect-ratio:2/1}
.mp-slot-1223s .photo-actions-1220e{max-width:none}
.mp-slot-logo-1223s .photo-actions-1220e{grid-template-columns:1fr 1fr 1fr}
.mp-slot-1223s .photo-status-1220e:empty{display:none}
.mp-slot-1223s .ede-1220e:empty{display:none}
.mp-photos-1223s + .mp-hint-1223s{margin:12px 0 0}
.mp-desc-1223s{margin-top:20px}
.mp-desc-head-1223s{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.mp-label-1223s{font-size:.82rem;font-weight:750;color:var(--ink)}
.mp-desc-panel-1223s textarea{display:block;width:100%;min-height:170px;padding:9px 11px;border:1px solid #ccd8e4;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:.82rem;line-height:1.55;resize:vertical}
.mp-desc-panel-1223s textarea:focus{outline:2px solid #7ca7cc;outline-offset:0;border-color:#7ca7cc}
.mp-desc-panel-1223s .mp-hint-1223s{margin:0 0 6px}
.mp-format-1223s{margin:6px 0 0}
@media (max-width:1180px) and (min-width:761px){.mp-photos-1223s{grid-template-columns:minmax(0,300px) minmax(0,1fr)}.mp-slot-1223s .photo-actions-1220e .btn{font-size:.74rem;padding:6px 4px}}
@media (max-width:760px){
  .mp-public-1223s{padding:16px 14px 14px;margin:10px 0 4px}
  .mp-photos-1223s{grid-template-columns:1fr;gap:22px}
  .mp-slot-1223s .mp-hint-1223s{min-height:0}
  .mp-slot-logo-1223s .photo-frame-1220e{width:180px}
  .mp-slot-logo-1223s .photo-actions-1220e .btn{font-size:.8rem;padding:7px 8px}
  .mp-desc-head-1223s{align-items:stretch;flex-direction:column}
  .mp-tabs-1223s{display:flex}
  .mp-tabs-1223s .lang-tab-1220e{flex:1 1 0;justify-content:center;padding:5px 6px}
}

/* ---------- Public merchant page: Registration No. + description ---------- */
.merchant-reg-cell-1223s strong{min-width:0;white-space:normal}
.merchant-reg-cell-1223s strong.merchant-reg-value-1223s{overflow-wrap:anywhere}
.merchant-copy-1223s{display:inline-grid;place-items:center;vertical-align:middle;width:26px;height:22px;margin:-4px 0 -3px 4px;padding:0;border:0;border-radius:7px;background:transparent;color:#5b7189;cursor:pointer}
.merchant-copy-1223s:hover,.merchant-copy-1223s:focus-visible{background:#eef3f8;color:var(--ink)}
.merchant-copy-1223s .ico-1223s{width:16px;height:16px;flex-basis:16px}
.merchant-copy-1223s.copied-1223s{color:#1f9d6b}
@media (min-width:1101px){
  .merchant-info-grid-119.has-reg-1223s{grid-template-columns:minmax(150px,1.3fr) minmax(170px,1.35fr) minmax(115px,.95fr) minmax(90px,.8fr) minmax(75px,.6fr) minmax(75px,.6fr) minmax(125px,.95fr) 64px!important;gap:18px!important}
  .merchant-info-grid-119.has-reg-1223s.no-est-1223s{grid-template-columns:minmax(160px,1.35fr) minmax(150px,1.2fr) minmax(120px,.9fr) minmax(100px,.85fr) minmax(85px,.65fr) minmax(130px,1fr) 64px!important}
}
.merchant-description-1223s{margin:0;color:#4d6176;font-size:1rem;line-height:1.6}
.merchant-description-1223s p{margin:0 0 .7em}
.merchant-description-1223s p:last-child{margin-bottom:0}
.merchant-description-1223s h2,.merchant-description-1223s h3{margin:.9em 0 .3em;font-size:1.02rem;line-height:1.3;font-weight:800;letter-spacing:0;color:var(--ink)}
.merchant-description-1223s h2:first-child,.merchant-description-1223s h3:first-child{margin-top:0}
.copy-buffer-1223s{position:fixed;left:-9999px;top:0;opacity:0}

/* ---------- Explore: a wide last card completes the last row ---------- */
.category-card-1218.cat-wide-1223s>img{object-position:center 45%}
/* END RYU 1.2.23 STORE CSS */
/* BEGIN RYU 1.2.25 SHELL CSS */
/* ========================================================================== */
/* RYU Portal 1.2.25 — Stream SHELL.                                           */
/* ========================================================================== */

/* ---------- §13 / §28 Desktop top menu ------------------------------------------
   One order signed out and signed in: About RYU ↗ · Vouchers · Merchants ·
   Explore · Terms · Contact · Account · cart. The account slot and the cart
   slot keep a fixed width, so nothing moves on sign-in / sign-out. Hover and
   keyboard focus = the same light rounded background on every item; the
   underline only marks the current page; padding never changes on hover. */
:root{--menu-hover-1225:rgba(26,92,145,.08);--menu-ink-1225:#173b63;--acct-slot-1225:104px}
@media (min-width:900px){
  html body .app-header .header-actions{display:flex!important;align-items:center!important;gap:4px!important;flex-wrap:nowrap!important}
  html body .app-header #about-link{order:-1!important;display:inline-flex!important;align-items:center!important;gap:3px!important;margin:0 2px 0 0!important}
  html body .app-header .public-nav,html body.authenticated-110 .app-header .public-nav,html.authenticated-110 body .app-header .public-nav{order:0!important;display:flex!important;align-items:center;gap:2px!important}
  html body .app-header #auth-slot{order:1!important;margin:0!important;min-width:var(--acct-slot-1225);display:flex!important;justify-content:flex-start;align-items:center;flex:none}
  html body .app-header #cart-link{order:2!important;flex:none}
  html body .app-header #cart-link[hidden]{display:grid!important;visibility:hidden!important;pointer-events:none}
  html body .app-header #mobile-menu-button{display:none!important}
  html body .app-header .public-nav a,
  html body .app-header #auth-slot .auth-nav-link,
  html body .app-header #about-link.about-nav-link,html body .app-header #about-link.about-nav-clean{
    padding:9px 11px!important;border-radius:11px!important;border:0!important;background:transparent!important;
    text-decoration:none!important;line-height:1.1!important;font-weight:750!important;white-space:nowrap;box-shadow:none!important}
  html body .app-header .public-nav a:hover,html body .app-header .public-nav a:focus-visible,
  html body .app-header #auth-slot .auth-nav-link:hover,html body .app-header #auth-slot .auth-nav-link:focus-visible,
  html body .app-header #about-link:hover,html body .app-header #about-link:focus-visible{
    background:var(--menu-hover-1225)!important;color:var(--menu-ink-1225)!important;text-decoration:none!important;outline:none}
  html body .app-header .public-nav a.active,html body .app-header .public-nav a[aria-current="page"],
  html body .app-header #auth-slot .auth-nav-link.active,html body .app-header #auth-slot .auth-nav-link[aria-current="page"]{
    color:var(--menu-ink-1225)!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:7px!important}
  html body .app-header .public-nav a.active:hover,html body .app-header #auth-slot .auth-nav-link.active:hover{text-decoration:underline!important}
  html body .app-header #about-link,html body .app-header #about-link:hover{text-decoration:none!important}
  html body .app-header #about-link .external-arrow{margin:0 0 0 2px!important}
  html body .app-header #account-menu-trigger-110,html body .app-header #cart-link{border-radius:11px!important;transition:background-color .12s}
  html body .app-header #account-menu-trigger-110{border-color:transparent!important;box-shadow:none!important}
  html body .app-header #account-menu-trigger-110:hover,html body .app-header #account-menu-trigger-110:focus-visible,
  html body .app-header #cart-link:hover,html body .app-header #cart-link:focus-visible{background:var(--menu-hover-1225)!important;box-shadow:none!important;outline:none}
}
/* Narrow desktop (900–1199 px): tighter spacing so the whole menu fits on one line. */
@media (min-width:900px) and (max-width:1199.98px){
  :root{--acct-slot-1225:88px}
  html body .app-header .header-inner{gap:10px!important}
  html body .app-header .public-nav a,html body .app-header #auth-slot .auth-nav-link,html body .app-header #about-link.about-nav-link,html body .app-header #about-link.about-nav-clean{padding:8px 7px!important;font-size:.86rem!important}
  html body .app-header #about-link .external-arrow{width:9px;height:9px}
}
@media (min-width:900px) and (max-width:1023.98px){
  html body .app-header .brand span{display:none}
}

/* ---------- §23 Phone menu: current page marker (same accent as the desktop underline) ---------- */
#mobile-menu a{position:relative;font-weight:700!important}
#mobile-menu a.is-current-1225,#mobile-menu a[aria-current="page"]{background:var(--menu-hover-1225)!important;color:var(--menu-ink-1225)!important;font-weight:850!important}
#mobile-menu a.is-current-1225::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:0 3px 3px 0;background:var(--menu-ink-1225)}
#mobile-menu a.about-mobile-1225{display:flex!important;align-items:center;gap:4px}
#mobile-menu a.about-mobile-1225 .ext-1225{font-size:.8em;opacity:.8}

/* ---------- §5 Dashboard tiles: slate label (heading) + navy figure (value) ---------- */
html body .dtile-1223 .dtile-label-1223{color:#4b5d70!important;font-weight:700!important}
html body .dtile-1223 .dtile-label-1223 .dtile-name-1222{color:#4b5d70!important}
html body .dtile-1223 .dtile-lq-1223{color:#66788a!important;font-weight:600!important}
html body .dtile-1223 .dtile-fig-1223,html body .dtile-1223 .dtile-fig-1223 .dtile-num-1222{color:#0f2a44!important;font-weight:800!important}
html body .dtile-1223 .dtile-fig-1223{font-size:20px}
@media (max-width:899.98px){html body .dtile-1223 .dtile-fig-1223{font-size:18px}}
.dash-hello-1221 .dash-mname-1225{display:block;color:#4b5d70;font-size:14px;font-weight:650;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pop-identity-1218 .pop-mname-1225{display:block;color:#4b5d70;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ---------- §1 Contact: telephone / support email ---------- */
.company-tel-1225,.company-mail-1225{color:inherit;font-variant-numeric:tabular-nums}
a.company-tel-1225,a.company-mail-1225{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (max-width:899.98px){a.company-tel-1225,a.company-mail-1225{display:inline-flex;align-items:center;min-height:44px}}
a.company-mail-1225{word-break:break-all}

/* ---------- §34 toast with a link ---------- */
#flash.flash-has-link-1225{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#flash .flash-link-1225{color:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;min-height:32px;display:inline-flex;align-items:center}

/* ---------- §24 Short cart labels on phones ---------- */
.lbl-short-1225{display:none}
@media (max-width:899.98px){
  .lbl-full-1225{display:none!important}
  .lbl-short-1225{display:inline!important}
  .voucher-actions .btn,.voucher-actions a.btn{white-space:nowrap!important;min-width:auto!important;max-width:100%}
  /* Buttons share the row when their labels fit; otherwise the next one moves to its own full-width row (never clipped, never two-line). */
  .voucher-actions{width:100%;max-width:100%;box-sizing:border-box;align-self:stretch;display:flex!important;flex-wrap:wrap!important;gap:10px!important}
  .voucher-actions > .btn:not(:only-child){flex:1 0 auto!important;justify-content:center}
  .voucher-actions .btn > span,.voucher-actions a.btn > span{white-space:nowrap}
}
@media (max-width:359.98px){
  .voucher-actions .btn,.voucher-actions a.btn{padding-left:10px!important;padding-right:10px!important;gap:6px!important;font-size:.92rem!important}
}

/* ---------- §29 Top up / Request payout = Refund / My QR geometry ---------- */
html body .btn.act-1225{display:inline-flex!important;align-items:center!important;justify-content:center;gap:7px!important;white-space:nowrap!important;
  min-height:38px!important;height:auto;padding:8px 14px!important;font-size:.86rem!important;font-weight:750!important;line-height:1.2!important;border-radius:10px!important;
  background:var(--navy,#1e4e7a)!important;color:#fff!important;border:0!important;box-shadow:0 6px 14px rgba(30,78,122,.18)!important;text-decoration:none!important}
html body .btn.act-1225:hover{background:#183f64!important;color:#fff!important}
html body .btn.act-1225 .ico-act-1225{width:18px!important;height:18px!important;flex:none}
@media (max-width:899.98px){
  html body .btn.act-1225{min-height:38px!important;padding:8px 12px!important;font-size:.86rem!important}
}

/* ---------- §30 Scan merchant QR: bigger icon and label ---------- */
html body .btn.btn-scan-r19,html body .scan-solo-1223 .btn.btn-scan-r19{min-height:64px!important;gap:12px!important;font-size:1.25rem!important;font-weight:800!important;white-space:nowrap!important;line-height:1.15!important;padding:10px 18px!important}
html body .btn.btn-scan-r19 .ui-icon-110,html body .btn.btn-scan-r19 svg{width:30px!important;height:30px!important;flex:none}
@media (max-width:899.98px){
  html body .btn.btn-scan-r19,html body .scan-solo-1223 .btn.btn-scan-r19{font-size:clamp(1rem,5.4vw,1.2rem)!important;padding:10px 12px!important}
  html body .btn.btn-scan-r19 .ui-icon-110,html body .btn.btn-scan-r19 svg{width:28px!important;height:28px!important}
}

/* ---------- §16 Fewer horizontal lines ------------------------------------------
   No line under sticky Back + title headings, page or section headings; no
   stacked double lines; no line directly above or below a button row; thin
   dividers between field rows stay. A very light shadow appears under a sticky
   heading only once content has scrolled under it. */
html body #modal-root .modal-head,html body #modal-root .pop-band-1221,html body #modal-root .dh-1221,
html body .page-head,html body .ops-content-110 .page-head,html body .page-back-row-1221,
html body .subhead,html body .section-head,html body .po-head-b20,html body .dash-head-1221{border-bottom:0!important}
html body #modal-root .modal-head,html body #modal-root .pop-band-1221{box-shadow:none!important;transition:box-shadow .15s}
html body #modal-root .modal > .modal-head,html body #modal-root .modal.pop-chrome-1221 > .modal-head.pop-band-1221,
html body #modal-root .modal.pop-details-1220.pop-chrome-1221 > .modal-head.pop-band-1221,
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head,html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head.pop-band-1221{border-bottom:0!important;box-shadow:none!important}
html body #modal-root .modal.scrolled-1225 > .modal-head,html body #modal-root .modal.pop-chrome-1221.scrolled-1225 > .modal-head.pop-band-1221,
html.pop-page-open-1221.page-scrolled-1225 body #modal-root .modal.pop-page-1221 > .modal-head,html.pop-page-open-1221.page-scrolled-1225 body #modal-root .modal.pop-page-1221 > .modal-head.pop-band-1221,
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221.scrolled-1225 > .modal-head.pop-band-1221{box-shadow:0 4px 10px -8px rgba(15,42,68,.28)!important}
/* Field rows: dividers between rows only (none above the first, none below the last). */
html body .props-1221,html body #modal-root .props-1221{border-top:0!important;border-bottom:0!important}
html body .props-1221 > .prop-1221:first-child{border-top:0!important}
html body .props-1221 > .prop-1221:last-child{border-bottom:0!important}
html body .detail-list-1110{border-top:0!important;border-bottom:0!important}
/* Button rows: no line directly above or below. */
html body .form-actions,html body .modal-actions,html body .pld-actions-1221,html body .modal-back-bar-1219,html body .tu-res-actions-1223,html body .confirm-actions-114,html body .dialog-actions,html body .detail-actions{border-top:0!important;border-bottom:0!important}
html body #modal-root .modal-foot,html body #modal-root .modal-footer{border-top:0!important}
/* Section headings inside forms and settings pages. */
html body .security-section-114 h2,html body .settings-section h2,html body .profile-section h2,html body .card > h2:first-child,html body .ops-form-110 h2,html body .po-new-1221,html body .po-recent-1221 h2{border-bottom:0!important}
html body .security-section-114{border-top:0!important;border-bottom:0!important}
html body .security-section-114 + .security-section-114{margin-top:22px}

/* ---------- §36 Auth forms: field messages ---------- */
.has-err-1225 > .fmsg-1223{display:block;margin-top:6px}
.auth-captcha > .fmsg-cap-1225{display:block;margin-top:8px}

/* §13 QA fix: the wide operational pages (dashboard, lists …) keep their left
   gutter, but the menu's right edge matches the public 1440 px shell exactly,
   so no menu item moves between the sign-in page and the dashboard. */
@media (min-width:900px){
  html body.portal-route-1210.authenticated-110 .app-header .header-inner,
  html body.authenticated-110 .app-header .header-inner{padding-right:calc(max(0px, (100% - var(--shell-max, 1440px)) / 2) + 48px)!important}
  html body:not(.authenticated-110) .app-header .header-inner,
  html body.authenticated-110:not(.portal-route-1210) .app-header .header-inner{padding-right:48px!important}
}
@media (min-width:900px) and (max-width:900.98px){
  html body.portal-route-1210.authenticated-110 .app-header .header-inner,
  html body.authenticated-110 .app-header .header-inner,
  html body:not(.authenticated-110) .app-header .header-inner,
  html body.authenticated-110:not(.portal-route-1210) .app-header .header-inner{padding-right:22px!important}
}
.portal-company-info [data-tel-block-1225][hidden]{display:none!important}

/* §5 QA: the Balance qualifier ("expires in N days") is a second small line under
   the label at every width, so neither line is cut off. */
html body .dtile-1223 .dtile-label-1223{white-space:normal!important;overflow:visible!important}
html body .dtile-1223 .dtile-label-1223 .dtile-name-1222{display:block;white-space:normal;overflow-wrap:anywhere;overflow:visible}
html body .dtile-1223 .dtile-lq-1223{display:block!important;font-size:12px!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
html body .dtile-1223 .dtile-lq-1223:empty{display:none!important}
/* END RYU 1.2.25 SHELL CSS */
/* BEGIN RYU 1.2.25 LISTS CSS */
/* RYU Portal 1.2.25 — Stream LISTS. */

/* §3 / §4 Raw codes (Email History type, Audit Log action) */
.code-1225{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.35;color:#2b4560;background:#f1f5f9;border:1px solid #e1e8ef;border-radius:5px;padding:1px 6px;white-space:nowrap;letter-spacing:0}
.code-link-1225{background:none!important;border:0!important;padding:0!important;cursor:pointer}
.code-link-1225:hover .code-1225,.code-link-1225:focus-visible .code-1225{border-color:#9cc3ea;background:#eaf3fc;color:#174a7c}
select option.code-opt-1225{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.tx-row-title-1220 .code-1225,.l2-left-1222 .code-1225{font-size:11.5px;padding:0 5px}
.pl-row-1222 .tx-row-title-1220 > .code-1225{font-size:12.5px}
#modal-root dd .code-1225{font-size:12.5px}

/* §2 / §8 Voucher photo on the LEFT of the voucher name (Requests, Wallet recent transactions) */
.req-item-1225{justify-content:flex-start!important}
.req-item-1225 .req-photo-1221{margin:0!important;order:0}
.req-item-1225 .req-item-text-1221{min-width:0;flex:1 1 auto}
.wallet-recent-1220 .tx-vm-1222{flex-direction:row-reverse;justify-content:flex-end}
.wallet-recent-1220 .tx-photo-1222{margin:0}
.wallet-recent-1220 .tx-vm-text-1222{min-width:0;flex:1 1 auto}

/* §14 Show deleted items: checkbox right of the heading (desktop); View options (phones) */
.lt-arch-1222,[data-lt-arch-1222]{display:none!important}
.page-head .heading-inline-116 > label.sd-1225,label.sd-1225{display:inline-flex!important;align-items:center;gap:7px;margin:0 0 0 18px!important;padding:0;flex:none!important;flex-basis:auto!important;transform:none!important;font-size:13.5px!important;font-weight:600!important;color:#36516d;white-space:nowrap;cursor:pointer;line-height:1.2;align-self:center}
label.sd-1225 input{width:17px;height:17px;margin:0;flex:none;accent-color:#1d5a93;cursor:pointer}
.heading-inline-116:has(> label.sd-1225){display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:0!important}
@media(max-width:899.98px){
  label.sd-1225,.page-head .heading-inline-116 > label.sd-1225{display:none!important}
  /* Select all: one look, in the toolbar slot with the other icons */
  .lt-sa-1223.lt-sa-1225{margin-right:0!important}
  .lt-sa-1223.lt-sa-1225[aria-pressed],.lt-sa-1223.lt-sa-1225[aria-pressed="true"]{background:#fff!important;border-color:#cfdbe7!important;color:#36516d!important}
  .lt-sa-1225:active{background:#eef4fa!important}
}
.vo-sd-group-1225{margin-top:2px}
.vo-sd-1225{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border:1px solid #d7e2ec;border-radius:12px;background:#fff;font-size:15px;font-weight:600;color:#1f3550;cursor:pointer}
.vo-sd-1225 input{width:20px;height:20px;margin:0;flex:none;accent-color:#1d5a93}
/* View options page: no line under the heading */
#modal-root .modal.vo-modal-1225 > .modal-head,#modal-root .modal.vo-modal-1225 .modal-head{border-bottom:0!important;box-shadow:none!important}
#modal-root .modal.vo-modal-1225 > .modal-head::after,#modal-root .modal.vo-modal-1225 > .modal-head::before{display:none!important}
#modal-root .modal.vo-modal-1225{max-width:100%;box-sizing:border-box;overflow-x:hidden}
#modal-root .modal.vo-modal-1225 .vo-form-1222{min-width:0;max-width:100%}

/* §18 Bulk confirm + result: fits its frame, OK fully visible, phone bottom sheet */
#modal-root .modal.bk-modal-1225{box-sizing:border-box;max-width:min(480px,calc(100vw - 32px))!important;width:min(480px,calc(100vw - 32px))!important;overflow-x:hidden!important}
#modal-root .modal.bk-modal-1225 *{box-sizing:border-box}
#modal-root .modal.bk-modal-1225 .bk-1225,#modal-root .modal.bk-modal-1225 .portal-notice-1211{width:auto!important;max-width:100%!important;min-width:0!important;margin:0!important}
.bk-1225 h2{margin:0 0 10px;font-size:18px;line-height:1.3}
.bk-sec-1225{margin:2px 0 6px;font-size:12.5px;font-weight:700;letter-spacing:.02em;text-transform:none;color:#4b6178}
.bk-sec-skip-1225{margin-top:14px;color:#8a5a12}
.bk-list-1225{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.bk-list-1225 > li{display:flex;align-items:center;gap:10px;min-width:0;font-size:14px;line-height:1.35;color:#1f3550}
.bk-list-1225 .bk-th-1225{flex:none;display:inline-flex}
.bk-list-1225 .bk-th-1225 .thumb-1220,.bk-list-1225 .bk-th-1225 .av-1223,.bk-req-ph-1225 .thumb-1220{width:28px!important;height:28px!important;min-width:28px;border-radius:7px;font-size:11px}
.bk-list-1225 .bk-th-1225 .thumb-1220 .ico-1220{width:16px;height:16px}
.bk-list-1225 .bk-th-1225 img{width:28px;height:28px;object-fit:cover;border-radius:7px}
.bk-name-1225{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.bk-why-1225{flex:none;max-width:55%;color:#8a5a12;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-dash-1225{color:#9aa9b8}
.bk-more-1225{color:#6b7f93!important;font-size:13px!important;padding-left:2px}
.bk-msg-1225{margin:0 0 6px;font-size:15px;line-height:1.5;color:#26405c;overflow-wrap:anywhere}
.bk-msg-1225 strong{color:#0f2a44}
.bk-sum-1225{margin:4px 0 10px!important}
.bk-groups-1225{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.45;color:#26405c}
.bk-groups-1225 .bk-reason-1225{font-weight:700;color:#8a5a12}
.bk-groups-1225 .bk-names-1225{overflow-wrap:anywhere}
#modal-root .bk-acts-1225.form-actions{display:flex!important;flex-wrap:wrap;justify-content:flex-end;gap:8px!important;margin:18px 0 0!important;padding:0!important;width:100%;max-width:100%;border-top:0!important;background:none!important;position:static!important}
#modal-root .bk-acts-1225 .btn{min-width:96px;min-height:40px;margin:0!important;white-space:nowrap}
.portal-notice-1211.bk-1225 .bk-acts-1225{justify-content:flex-end}
.bk-vname-1225{margin:0 0 6px;font-weight:700;color:#0f2a44;overflow-wrap:anywhere}
@media(max-width:899.98px){
  #modal-root .modal.bk-modal-1225{width:100%!important;max-width:none!important}
  #modal-root .bk-acts-1225.form-actions{flex-direction:column-reverse!important;align-items:stretch}
  #modal-root .bk-acts-1225 .btn{width:100%!important;min-height:46px}
  .portal-notice-1211.bk-1225 .bk-acts-1225{flex-direction:column!important}
  .bk-why-1225{max-width:50%}
}

/* §7 / §22 Voucher badges */
.vb-wrap-1225{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px}
.vb-1225{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1;white-space:nowrap;cursor:default;vertical-align:middle}
.vb-1225 .ico-1220{width:13px;height:13px;flex:none;stroke-width:2}
.vb-inactive-1225{background:#fff3df;color:#8a5a12;border:1px solid #f0d9a8}
.vb-hidden-1225{background:#eef1f4;color:#4f6276;border:1px solid #dce3ea}
.vb-active-1225{background:#e8f6ee;color:#1d7350;border:1px solid #cbe9d8}
.vb-public-1225{color:#1d7350;font-weight:600}
.vb-why-1225{display:block;margin-top:4px;color:#4b6178;font-size:13.5px;line-height:1.45}
.vb-link-1225{display:inline-block;margin-top:4px;font-weight:600}
.vb-eye-1225{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;margin:0 4px 0 -2px;color:#6b7f93}
.vb-eye-1225 .ico-1220{width:16px;height:16px}
.l2-left-1222 .vb-1225{height:18px;font-size:11px;padding:0 6px;margin-right:2px}
.voucher-title-state-121.inactive,.voucher-title-state-121.inactive a{text-decoration:none!important;opacity:1!important}
.vtable-1225 .vcol-1225{white-space:nowrap}
.va-1225 .ico-1220{width:20px;height:20px}
.va-1225[data-vact-1225="deactivate"]{color:#1d7350}
.va-off-1225{color:#7a8a9b}
.va-lock-1225 .va-1225{opacity:.45}
.vf-1225{min-width:0}

/* Toolbar: Activate / Deactivate menu, Delete, Restore */
.vbulk-1225{display:inline-flex;align-items:center;gap:inherit}
.vbulk-menu-wrap-1225{position:relative;display:inline-flex}
.vbulk-pop-1225{position:absolute;top:calc(100% + 6px);right:0;z-index:40;display:flex;flex-direction:column;min-width:170px;padding:6px;background:#fff;border:1px solid #d7e2ec;border-radius:12px;box-shadow:0 12px 28px rgba(15,40,70,.14)}
.vbulk-pop-1225[hidden]{display:none}
.vbulk-pop-1225 button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:#1f3550;font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;white-space:nowrap}
.vbulk-pop-1225 button:hover,.vbulk-pop-1225 button:focus-visible{background:#f2f7fd}
.vbulk-pop-1225 .ico-1220{width:20px;height:20px}
@media(max-width:899.98px){.vbulk-pop-1225{right:auto;left:0}}

/* §16 List details pages: no line under the title band, none above the first row */
#modal-root .modal.dpop-1221 > .modal-head,#modal-root .modal.dpop-1221 .dh-1221{border-bottom:0!important}
#modal-root .modal.dpop-1221 dl.props-1221 > .prop-1221:first-child{border-top:0!important}
#modal-root .modal.dpop-1221 .pld-actions-1221{border-top:0!important}
#modal-root .modal.dpop-1221 dl.props-1221{border-top:0!important}
/* Admin Vouchers / Inventory: room for the selection column and four row actions at 1440 px */
#app table.vtable-1225 th,#app table.vtable-1225 td{padding-left:7px!important;padding-right:7px!important}
#app table.vtable-1225 th.select-col-126,#app table.vtable-1225 td.select-col-126{padding-left:12px!important;padding-right:4px!important}
#app table.vtable-1225 .icon-actions-110{gap:0!important}
#app table.vtable-1225 td.actions-col-126,#app table.vtable-1225 th.actions-col-126{width:1%;white-space:nowrap}
#app table.vtable-1225 .icon-actions-110 .icon-btn-110,#app table.vtable-1225 .icon-actions-110 .sys-lock-1223 .icon-btn-110{width:28px!important;min-width:28px!important;height:32px!important;padding:0!important}
#app table.vtable-1225 .vb-1225{font-size:11px;padding:0 6px;gap:3px}
#app table.vtable-1225 .vb-1225 .ico-1220{width:12px;height:12px;stroke-width:2}
#app table.vtable-1225 th.select-col-126,#app table.vtable-1225 td.select-col-126{width:36px!important;min-width:36px!important;max-width:40px}
html body #modal-root .modal.vo-modal-1225 > .modal-head,html.pop-page-open-1221 body #modal-root .modal.vo-modal-1225.pop-page-1221 > .modal-head.pop-band-1221{border-bottom:0!important;box-shadow:none!important}
html body #modal-root .modal.vo-modal-1225 .vo-actions-1222 .btn{flex:1 1 0!important;width:auto!important;min-width:0}
html.pop-page-open-1221 body #modal-root .modal.vo-modal-1225 .form-actions.vo-actions-1222.pop-footer-1220 > .btn,html body #modal-root .modal.vo-modal-1225 .form-actions.vo-actions-1222 > .btn.btn{flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:none!important}
.tx-row-title-1220.pl-code-1225{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:13px;font-weight:600;letter-spacing:0}
.l2-left-1222 .code-1225{flex:none}
html body #modal-root .modal.dpop-1221 > .modal-head,html.pop-page-open-1221 body #modal-root .modal.dpop-1221.pop-page-1221 > .modal-head.pop-band-1221{border-bottom:0!important;box-shadow:none!important}
/* QA: bulk dialogs — one title band, no sideways scroll at any width */
#modal-root .modal.bk-modal-1225{padding:0!important;overflow-x:hidden!important}
#modal-root .modal.bk-modal-1225.pop-chrome-1221 > .modal-head.pop-band-1221,#modal-root .modal.bk-modal-1225.pop-confirm-1220.pop-chrome-1221 > .modal-head.pop-band-1221,#modal-root .modal.bk-modal-1225 > .modal-head{margin:0!important;width:auto!important;max-width:100%!important;padding:16px 20px!important;box-sizing:border-box}
#modal-root .modal.bk-modal-1225 > .bk-1225{padding:16px 20px 20px!important;overflow-x:hidden}
#modal-root .modal-backdrop.bk-bd-1225{overflow-x:hidden!important}
.email-msg-h-1225{margin:16px 0 6px;font-size:14px;font-weight:700;color:#26405c}
/* QA: phone details actions keep full labels (wrap to a second row) */
#modal-root .modal.dpop-1225 .pld-actions-1221{display:flex!important;flex-wrap:wrap;gap:8px}
#modal-root .modal.dpop-1225 .pld-actions-1221 .pld-act-1221{flex:1 1 140px;min-width:0;max-width:100%;white-space:normal!important;height:auto!important;min-height:44px;line-height:1.25;text-align:center}
#modal-root .modal.dpop-1225 .pld-actions-1221 .pld-act-1221 span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.acc-pop-1225{padding:6px!important;border:1px solid #d7e2ec!important;border-radius:12px!important;background:#fff!important;box-shadow:0 12px 28px rgba(15,40,70,.14)!important;min-width:180px}
.acc-pop-1225 button{display:flex!important;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px!important;border:0!important;border-radius:8px!important;background:none!important;color:#1f3550!important;font:inherit;font-size:14px!important;font-weight:600!important;text-align:left;cursor:pointer;white-space:nowrap}
.acc-pop-1225 button:hover,.acc-pop-1225 button:focus-visible{background:#f2f7fd!important}
.acc-pop-1225 button svg{width:20px;height:20px;flex:none}
html body #modal-root .email-msg-h-1225 + .email-body-1211{border-top:0!important;padding-top:0!important;margin-top:0!important}
/* END RYU 1.2.25 LISTS CSS */
/* BEGIN RYU 1.2.25 STORE CSS */
/* RYU Portal 1.2.25 — Stream STORE. Classes end in -1225s. */
.ico-1225s{width:20px;height:20px;flex:none}
.sr-only-1225s{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}

/* §9 Merchant Profile: Public profile is set apart by its heading and spacing only. */
.mp-public-1223s{border:0;border-radius:0;background:transparent;padding:0;margin:22px 0 6px}

/* §10 Empty cart */
.cart-empty-1225s{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:520px;margin:36px auto 48px;padding:0 16px}
.cart-empty-art-1225s{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:#eef4fa;color:#2b5d8a;margin-bottom:18px}
.cart-empty-art-1225s .ico-1225s{width:48px;height:48px;stroke-width:1.5}
.cart-empty-1225s h2{margin:0 0 6px;font-size:1.35rem;color:var(--ink,#0f2a44)}
.cart-empty-1225s p{margin:0 0 22px;color:#5b6f84}
.cart-empty-actions-1225s{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.cart-empty-actions-1225s .btn{min-height:44px;white-space:nowrap}
.cart-empty-mine-1225s{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;padding:0 10px;font-weight:650;color:#2b5d8a}
@media (max-width:899.98px){
  .cart-empty-1225s{margin:20px auto 32px;padding:0}
  .cart-empty-actions-1225s{flex-direction:column;align-self:stretch}
  .cart-empty-actions-1225s .btn{width:100%;justify-content:center}
}

/* §19 Editors: the legend is gone; the dot keeps its tooltip. */
.lang-legend-1220e{display:none!important}

/* §20 Storefront hint under the title */
.sf-lead-1225s{margin:-4px 0 18px;color:#5b6f84;font-size:.86rem}

/* §31 Redemption code screen */
.code-1225s .code-head-r19{min-height:0}
.code-1225s .code-sum-1225s{text-align:center}
.code-1225s .code-count-1225s{margin:2px 0 8px;color:#5b6f84;font-size:.88rem}
.code-1225s .code-sum-1225s .code-lines-r19{text-align:left}
.code-clock-row-1225s{display:flex;justify-content:center;margin:14px 0 10px}
.code-clock-1225s{font-variant-numeric:tabular-nums}
.code-raw-1225s{margin:8px auto 0;max-width:100%;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;color:#8a99a8;word-break:break-all;user-select:text;pointer-events:none}
.code-reconnect-1225s{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0 0;font-size:.8rem;color:#8a5a00}
.code-reconnect-1225s[hidden]{display:none}
.code-foot-1225s{display:flex;justify-content:center;margin:14px 0 4px}
.code-back-1225s{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;color:#2b5d8a;font-weight:650;text-decoration:none;background:none;border:0}
.code-back-1225s:hover,.code-back-1225s:focus-visible{text-decoration:underline}

/* §32 Merchant scan result page */
.mqr-page-1225s{display:flex;justify-content:center;padding:24px 0 40px}
.mqr-res-1225s{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;text-align:center}
.mqr-res-1225s.busy{gap:10px;padding:40px 0;color:#5b6f84}
.mqr-icon-1225s{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;margin-bottom:12px}
.mqr-icon-1225s .ico-1225s{width:46px;height:46px;stroke-width:2.2}
.mqr-icon-1225s.ok{background:#e3f5ea;color:#16794a}
.mqr-icon-1225s.fail{background:#fdf0e1;color:#b45d00}
.mqr-res-1225s h1{margin:0 0 4px;font-size:1.6rem;color:var(--ink,#0f2a44)}
.mqr-sub-1225s{margin:0 0 14px;color:#5b6f84}
.mqr-reason-1225s{margin:2px 0 8px;font-size:1.02rem;color:#2c3e50;max-width:420px}
.mqr-lines-1225s{list-style:none;margin:6px 0 0;padding:0;width:100%;text-align:left}
.mqr-lines-1225s li{display:flex;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid #edf1f5}
.mqr-line-title-1225s{flex:1;min-width:0}
.mqr-line-qty-1225s{color:#5b6f84;white-space:nowrap}
.mqr-lines-1225s b{white-space:nowrap}
.mqr-total-1225s{display:flex;justify-content:space-between;width:100%;padding:12px 0 4px;font-weight:750}
.mqr-actions-1225s{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin-top:22px}
.mqr-scan-1225s{min-height:56px;padding:0 26px;font-size:1.05rem;white-space:nowrap;flex:1 1 auto;justify-content:center;gap:10px}
.mqr-scan-1225s .ico-1225s{width:24px;height:24px}
.mqr-back-1225s{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;color:#2b5d8a;font-weight:650;white-space:nowrap;text-decoration:none}
.mqr-back-1225s:hover,.mqr-back-1225s:focus-visible{text-decoration:underline}
.mqr-count-1225s{margin:12px 0 0;font-size:.82rem;color:#7a8a9a}
.mqr-count-1225s[hidden]{display:none}
@media (max-width:899.98px){
  .mqr-page-1225s{padding:12px 0 28px}
  .mqr-actions-1225s{flex-direction:column;align-items:stretch;gap:6px}
  .mqr-scan-1225s{width:100%;font-size:1rem;padding:0 14px}
}
.mq-wrap-b20 .mq-result-b20:empty{display:none}
.mqr-actions-1225s .btn.mqr-scan-1225s{font-size:1.05rem;font-weight:750;min-height:56px}

/* §27 Buyer Vouchers selection */
.wallet-sel-1225s .voucher-card{cursor:pointer;transition:box-shadow .15s,background-color .15s}
.wallet-sel-1225s .voucher-card a{pointer-events:none}
.wallet-sel-1225s .voucher-card.wallet-picked-r19{outline:2px solid #1f4e79;outline-offset:-2px;background:#f2f7fc;box-shadow:0 0 0 1px #1f4e79}
.wallet-sel-1225s .voucher-card.wallet-off-r19{cursor:default}
.qr-locked-1225s .voucher-card.wallet-off-r19{display:none}
.wallet-sel-1225s .voucher-card{position:relative}
.wallet-tap-hint-1225s{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);max-width:88%;padding:8px 12px;border-radius:8px;background:rgba(15,42,68,.92);color:#fff;font-size:.82rem;font-weight:650;text-align:center;z-index:60;pointer-events:none}
.wallet-showall-1225s{display:inline-flex;align-items:center;min-height:32px;margin-left:4px;padding:0 6px;border:0;background:none;color:#1f4e79;font-weight:700;text-decoration:underline;cursor:pointer}
.wallet-qr-note-r19 strong{font-weight:750}
@media (max-width:899.98px){
  .wallet-selecting-1225s .page-title{display:none}
  .wallet-selecting-1225s{flex-wrap:nowrap}
  .wallet-selecting-1225s > div:first-child{display:none}
  .wallet-selecting-1225s .quick-actions{flex:1 1 auto;width:100%}
  .wallet-selecting-1225s .wallet-actions-r19{display:flex;align-items:center;gap:8px;width:100%;flex-wrap:nowrap}
  .wallet-selecting-1225s .wallet-count-r19{order:1;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:750;position:static}
  .wallet-selecting-1225s .wallet-exit-r19{order:2;min-width:44px;min-height:44px}
  .wallet-selecting-1225s .wallet-act-r19{order:3;min-height:44px;white-space:nowrap}
  .wallet-sel-1225s .wallet-select{width:22px;height:22px}
}

/* Refund result page */
.rr-page-1225s{max-width:640px;margin:8px auto 40px}
.rr-hero-1225s{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:18px}
.rr-hero-1225s h1{margin:0 0 6px;font-size:1.45rem;color:var(--ink,#0f2a44)}
.rr-hero-1225s p{margin:0;color:#5b6f84}
.rr-list-1225s{list-style:none;margin:0;padding:0}
.rr-row-1225s{display:grid;grid-template-columns:1fr auto auto;gap:4px 14px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}
.rr-main-1225s{display:flex;flex-direction:column;min-width:0}
.rr-id-1225s{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;font-weight:650}
.rr-merchant-1225s{font-weight:650;overflow-wrap:anywhere}
.rr-count-1225s{color:#5b6f84;white-space:nowrap;font-size:.88rem}
.rr-amt-1225s{white-space:nowrap}
.rr-total-1225s{display:flex;justify-content:space-between;padding:12px 0;font-weight:750}
.rr-actions-1225s{display:flex;gap:10px;justify-content:center;margin-top:16px}
.rr-actions-1225s .btn{min-height:44px}
@media (max-width:899.98px){
  .rr-row-1225s{grid-template-columns:1fr auto}
  .rr-count-1225s{grid-column:1}
  .rr-amt-1225s{grid-column:2;grid-row:1 / span 2}
  .rr-actions-1225s{flex-direction:column}
  .rr-actions-1225s .btn{width:100%;justify-content:center}
}

/* §35 Scan merchant QR selection */
.bm-row-1225s{cursor:pointer}
.bm-row-1225s.on{background:#f2f7fc}
.bm-row-1225s .bm-check-r19{min-width:44px;min-height:44px;display:grid;place-items:center}
.bm-row-1225s .bm-check-r19 input{width:20px;height:20px}
.bm-list-r19.loading-1225s{opacity:.5;pointer-events:none}
.bm-all-1225s{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.bm-pager-1225s{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 4px;flex-wrap:wrap}
.bm-pg-1225s,.bm-num-1225s{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:40px;padding:0 10px;border:1px solid #d6e0ea;border-radius:8px;background:#fff;color:#1f4e79;font-weight:650;cursor:pointer}
.bm-num-1225s.on{background:#1f4e79;border-color:#1f4e79;color:#fff}
.bm-pg-1225s:disabled{opacity:.45;cursor:default}
.bm-pnum-1225s{display:inline-flex;gap:4px;align-items:center}
.bm-gap-1225s{padding:0 2px;color:#8a99a8}
.bm-pof-1225s{display:none;font-weight:650;color:#2c3e50;white-space:nowrap}
.bm-redeem-short-1225s{display:none}
.bm-ok-1225s{display:flex;align-items:center;gap:8px;margin:8px 0;padding:10px 12px;border-radius:8px;background:#e3f5ea;color:#16794a;font-weight:650}
.bm-ok-1225s svg{width:18px;height:18px}
@media (max-width:899.98px){
  .bm-pnum-1225s{display:none}
  .bm-pof-1225s{display:inline}
  .bm-pager-1225s{justify-content:space-between;flex-wrap:nowrap}
  .bm-pg-1225s{min-height:44px;flex:0 0 auto}
  body.bm-fixed-1225s .bm-bar-1225s{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 16px rgba(15,42,68,.12);display:flex;align-items:center;gap:10px}
  body.bm-fixed-1225s .bm-bar-1225s .bm-selcount-r19{display:none}
  body.bm-fixed-1225s .bm-bar-1225s .btn{flex:1;min-height:48px;justify-content:center;white-space:nowrap}
  body.bm-fixed-1225s .bm-redeem-long-1225s{display:none}
  body.bm-fixed-1225s .bm-redeem-short-1225s{display:inline}
  body.bm-fixed-1225s .bm-redeem-1225s:disabled .bm-redeem-long-1225s{display:inline}
  body.bm-fixed-1225s .bm-redeem-1225s:disabled .bm-redeem-short-1225s{display:none}
  body.bm-fixed-1225s .app-main{padding-bottom:84px}
}
/* The "Also available from this merchant" section is gone (§35). */
.bm-store-head-r19,.bm-store-r19{display:none!important}

/* §21 Validity field + displays */
.vd-row-1225s{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vd-row-1225s .vd-input-1225s{flex:1 1 72px;min-width:72px;max-width:140px}
.vd-picks-1225s{display:inline-flex;gap:6px}
.vd-pick-1225s{min-width:48px;min-height:44px;padding:0 12px;border:1px solid #ccd8e4;border-radius:8px;background:#fff;color:#1f4e79;font:inherit;font-weight:700;cursor:pointer}
.vd-pick-1225s:hover,.vd-pick-1225s:focus-visible{border-color:#7ca7cc;background:#f4f8fb}
.vd-pick-1225s.on{background:#1f4e79;border-color:#1f4e79;color:#fff}
.vc-valid-1225s{display:block;margin-top:4px;font-size:.76rem;color:#5b6f84}
.cart-valid-1225s{display:block;color:#5b6f84}
.not-on-sale-1225s{font-weight:700;color:#8a5a00}
/* §7 Sales switch */
.ed-active-why-1225s{margin:6px 0 0;font-size:.8rem;color:#8a5a00}
.ed-toggle-1225s.blocked{opacity:.75}

/* §37 Names EN / JA */
.nm-grid-1225s{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;min-width:0}
.nm-grid-1225s .nm-field-1225s{margin:0;min-width:0}
.nm-grid-1225s textarea{min-height:76px;resize:vertical}
.nm-err-1225s{display:block;min-height:0;color:#b42318;font-size:.78rem}
.nm-err-1225s:empty{display:none}
.nm-hint-1225s{grid-column:1 / -1;margin:-4px 0 4px;font-size:.8rem;color:#5b6f84}
@media (max-width:899.98px){.nm-grid-1225s{grid-template-columns:minmax(0,1fr)}}

/* §25 Payment instructions */
.pi-sec-1225s{margin:28px 0 8px;max-width:100%}
.pi-sec-1225s h2{margin:0 0 4px;font-size:1.05rem;color:var(--ink,#0f2a44)}
.pi-lead-1225s{margin:0 0 14px;font-size:.84rem;color:#5b6f84;max-width:760px}
.pi-method-1225s{margin:0 0 18px}
.pi-head-1225s{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pi-label-1225s{font-weight:750;font-size:.86rem;color:var(--ink,#0f2a44)}
.pi-hint-1225s{margin:4px 0 6px;font-size:.8rem;color:#5b6f84}
.pi-panel-1225s textarea{display:block;width:100%;min-height:150px;padding:9px 11px;border:1px solid #ccd8e4;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:.84rem;line-height:1.55;resize:vertical;box-sizing:border-box}
.pi-panel-1225s textarea:focus{outline:2px solid #7ca7cc;outline-offset:0;border-color:#7ca7cc}
.pi-count-1225s{display:block;text-align:right;font-size:.74rem;color:#8a99a8;margin-top:2px}
.pi-save-1225s{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pi-save-1225s .btn{min-height:44px}
.pi-msg-1225s{margin:0;font-size:.84rem}
.pi-msg-1225s.ok{color:#16794a}.pi-msg-1225s.error{color:#b42318}
.pi-tabs-1225s .lang-tab-1220e,.mp-tabs-1223s .lang-tab-1220e,.lang-tabs-1220e .lang-tab-1220e{min-height:40px}
@media (max-width:899.98px){
  .pi-head-1225s{flex-direction:column;align-items:stretch}
  .pi-tabs-1225s{display:flex;width:100%}
  .pi-tabs-1225s .lang-tab-1220e{flex:1;min-height:44px;justify-content:center}
  .pi-save-1225s .btn{width:100%;justify-content:center}
}

/* §25 Checkout */
.pm-off-1225s{opacity:.6;cursor:not-allowed}
.pm-why-1225s{color:#8a5a00}
.ck-direct-1225s{display:flex;gap:8px;align-items:flex-start;margin:10px 0 4px;padding:10px 12px;border-radius:8px;background:#f1f6fb;color:#2c3e50;font-size:.84rem;line-height:1.45}
.ck-direct-1225s svg{flex:none;width:17px;height:17px;margin-top:1px;color:#2d638f}
.ck-pick-label-1225s{margin:12px 0 6px;font-weight:750;font-size:.84rem;color:var(--ink,#0f2a44)}
.ck-mo-off-1225s{opacity:.6;cursor:not-allowed}
.ck-mo-off-1225s small{color:#8a5a00}
.ck-pick-1225s .ck-merchant-opt-b20{min-height:52px}
.ck-valid-1225s{display:block;color:#5b6f84;font-size:.76rem;margin-top:2px}
/* Order: how to pay */
.order-pay-1225s .op-direct-1225s{margin:0 0 10px;color:#2c3e50}
.op-pay-facts-1225s{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px;margin:0 0 14px}
.op-pay-facts-1225s dt{font-size:.76rem;color:#5b6f84;font-weight:650}
.op-pay-facts-1225s dd{margin:2px 0 0;font-weight:750}
.op-ref-1225s{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.op-instr-1225s h3{margin:0 0 6px;font-size:.9rem}
.op-instr-text-1225s{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 14px;border-radius:8px;background:#fff;border:1px solid #e3eaf1;font-size:.88rem;line-height:1.55}
.op-contacts-1225s{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px;font-size:.86rem}
.op-contact-label-1225s{color:#5b6f84}
.op-contact-1225s{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#1f4e79;font-weight:650;overflow-wrap:anywhere}
.op-contact-1225s .ico-1225s{width:17px;height:17px}
/* §1 Storefront contact */
.sf-contact-1225s{margin-top:14px}
.sf-contact-1225s input{width:100%;min-height:44px;box-sizing:border-box}
.sf-opt-1225s{font-weight:500;color:#5b6f84}

/* §27 Phone tap-target review (screens owned by STORE): at least 44 px. */
@media (max-width:899.98px){
  .cart-sticky-head .btn,.cart-empty-1219,.cart-proceed-119,.cart-proceed-cell .btn{min-height:44px!important}
  .cart-row .cart-qty-inline input{min-height:44px!important;min-width:56px}
  .cart-row .cart-remove-icon{min-width:44px;min-height:44px!important}
  .cart-merchant-link{display:inline-flex;align-items:center;min-height:44px!important}
  .ck-page-b20 .ck-submit-b20,.ck-page-b20 .ck-back-b20{min-height:44px!important}
  .ed-page-1220e .lang-tab-1220e{min-height:44px!important}
  .ed-page-1220e input:not([type=checkbox]):not([type=radio]):not([type=file]),.ed-page-1220e select{min-height:44px!important}
  .ed-page-1220e .photo-actions-1220e .btn,.ed-page-1220e .ed-footer-actions-1220e .btn{min-height:44px!important}
  .ed-page-1220e .ed-back-1220e,.page-back-1221{display:inline-flex;align-items:center;min-height:44px!important}
  .ed-page-1220e .ed-toggle-1220e{min-height:48px!important}
  #profile-merchant-1110 input:not([type=checkbox]):not([type=radio]):not([type=hidden]),#profile-merchant-1110 select{min-height:44px!important}
  #profile-merchant-1110 .profile-sector-grid-1110 label{display:flex;align-items:center;gap:8px;min-height:44px!important}
  #profile-merchant-1110 .photo-actions-1220e .btn,#profile-merchant-1110 .form-actions .btn,#profile-merchant-1110 .mp-view-1223s{min-height:44px!important}
  .sf-page-1222s .photo-actions-1220e .btn,.sf-page-1222s .sf-save-row-1222s .btn{min-height:44px!important}
  .sf-page-1222s .sf-ibtn-1222s{min-width:44px;min-height:44px!important}
  .sf-page-1222s .sf-view-1222s{display:inline-flex;align-items:center;min-height:44px!important}
  .ue-form-1221 .nm-grid-1225s input,.ue-form-1221 .nm-grid-1225s textarea{min-height:44px!important}
}
@media (max-width:899.98px){
  #profile-merchant-1110 .lang-tab-1220e,.pi-sec-1225s .lang-tab-1220e{min-height:44px!important}
  .pi-save-1225s .btn{min-height:44px!important}
}
/* §31 the heading is never shown (also while the code is being created) */
.code-view-r19 #code-title-r19{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.code-1225s .code-body-r19{padding-top:14px}
/* §35 the selection page ends at the selection card (Redeem selected) */
body.bm-open-1225s [data-recent-scans-b20],body.bm-open-1225s .bm-store-head-r19,body.bm-open-1225s .bm-store-r19{display:none!important}

/* QA-1 Buyer Vouchers title row: the title keeps its width; the actions wrap below when there is no room. */
@media (max-width:899.98px){
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s){flex-wrap:wrap!important;align-items:center;row-gap:8px;column-gap:10px}
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s) > div:first-child{flex:0 0 auto!important;min-width:max-content!important}
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s) .page-title{white-space:nowrap;min-width:max-content}
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s) .quick-actions{flex:1 1 auto!important;width:auto!important;min-width:0!important;display:flex;justify-content:flex-end}
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s) .wallet-actions-r19{flex-wrap:nowrap;justify-content:flex-end}
  body.authenticated-110 .page-head.wallet-head-1222:not(.wallet-selecting-1225s) .wallet-act-r19{white-space:nowrap}
}
.unav-staff-1225s{margin:10px 0 12px;padding:10px 14px;border-radius:10px;background:#fff7e6;border:1px solid #f3d9a4;color:#6b4a00;font-size:.88rem;text-align:left}
.unav-staff-1225s strong{display:block;font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}
.unav-staff-1225s p{margin:0}
.unav-staff-link-1225s{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#1f4e79}
.set-pm-1225s{display:flex;flex-direction:column;gap:10px}
.set-pm-group-1225s{display:flex;flex-direction:column;gap:4px}
.set-pm-label-1225s{font-size:.8rem;font-weight:750;color:var(--ink,#0f2a44)}
.set-pm-hint-1225s{font-size:.76rem;color:#5b6f84}
/* QA-7 code screen: label above the name, raw code breaks evenly */
.code-1225s .code-merchant-label-r19{margin:0 0 4px;line-height:1.3}
.code-1225s .code-merchant-r19{margin:0}
.code-raw-1225s{word-break:break-all;text-wrap:balance;font-size:clamp(9.5px,2.9vw,11.5px);line-height:1.4;max-width:300px}
/* QA-11 registration sectors: an empty validation slot inserted on focus change must not move the rows
   (the tap on the box was lost because the row jumped between mousedown and mouseup). */
#register-merchant-form .sector-multi .inline-field-error:empty,#register-merchant-form .multi-select-panel-118 label .inline-field-error:empty{display:none!important}
#register-merchant-form .multi-select-panel-118 label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
#register-merchant-form .multi-select-panel-118 label input{width:20px;height:20px;flex:none;margin:0}
/* QA-12 empty cart buttons on one row on desktop */
@media (min-width:900px){.cart-empty-1225s{max-width:720px}.cart-empty-actions-1225s{flex-wrap:nowrap}}
.cart-sticky-head{margin-top:0}
/* QA-9 scan result buttons: large primary, aligned with the Back link */
body.authenticated-110 .mqr-actions-1225s .btn.mqr-scan-1225s{min-height:56px!important;padding:0 26px!important;font-size:1.05rem!important;font-weight:750;border-radius:10px!important}
@media (max-width:899.98px){body.authenticated-110 .mqr-actions-1225s .btn.mqr-scan-1225s{font-size:1rem!important;padding:0 14px!important}}
.mqr-actions-1225s{align-items:center}
.mqr-back-1225s{min-height:56px}
@media (max-width:899.98px){.mqr-back-1225s{min-height:44px}}
/* QA-10 scan selection: counter visible on phones; on desktop the bar is part of the page (no overlap with the pager) */
@media (min-width:900px){.bm-card-1225s .bm-bar-1225s{position:static!important;box-shadow:none!important;margin-top:10px}}
@media (max-width:899.98px){
  body.bm-fixed-1225s .bm-bar-1225s .bm-selcount-r19{display:block!important;flex:0 0 auto;font-weight:750;white-space:nowrap;font-size:.86rem;color:var(--ink,#0f2a44)}
  body.bm-fixed-1225s .bm-bar-1225s .btn{flex:1 1 auto;min-width:0}
}
/* QA-14 Storefront contact inputs match the address fields; invalid values get a red border */
.sf-contact-1225s input{border:1px solid #d5e0ea;border-radius:9px;padding:10px 12px;font:inherit;font-size:.88rem;background:#fff;color:var(--ink)}
.sf-contact-1225s input:focus{outline:2px solid #9cc3e6;outline-offset:0;border-color:#6aa0d0}
.sf-contact-1225s input.is-invalid-1220e{border-color:#d85868!important;box-shadow:0 0 0 3px rgba(216,88,104,.1)!important}
.nm-grid-1225s .is-invalid-1220e{border-color:#d85868!important;box-shadow:0 0 0 3px rgba(216,88,104,.1)!important}
.cart-ny-1225s{display:block;color:#8a5a00;font-weight:650}
.cart-notyet-1225s .cart-price{opacity:.6}
.ck-ny-list-1225s{list-style:none;margin:0 0 10px;padding:0}
.ck-ny-1225s{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px dashed #e3c98f;border-radius:10px;background:#fffaf0;margin-bottom:8px;opacity:.9}
.ck-ny-1225s > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ck-ny-1225s small{color:#8a5a00}
.ck-ny-1225s .ck-stay-b20{align-self:flex-start}
.cart-later-1225s{display:block;margin-top:6px;max-width:320px;color:#8a5a00;font-size:.8rem;font-weight:650;text-align:right}
.cart-proceed-cell button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.refund-dup-1225s strong{font-weight:750}
/* END RYU 1.2.25 STORE CSS */
/* BEGIN RYU 1.2.26 SHELL CSS */
/* ========================================================================== */
/* RYU Portal 1.2.26 — Stream SHELL.                                           */
/* ========================================================================== */

/* ---------- §23 ONE shared light button style (= the My QR button) ----------------
   No solid navy / blue / teal background buttons anywhere in the portal. Every
   .btn-primary-like button takes the My QR look: light blue-grey background,
   navy text and icon, radius 10 px, weight 750, no shadow. Hover / focus a
   little darker, a clear keyboard focus ring, disabled greyed. Danger buttons
   keep their light red style. Other streams: use class "btn-light-1226" (or
   keep .btn-primary — it is overridden here). The :not(#z1226) part adds one
   ID to the specificity so this beats every earlier layer's !important rule. */
:root{
  --btn-l-bg-1226:#edf4fa;--btn-l-bg-h-1226:#dfeaf5;--btn-l-bg-a-1226:#d2e2f0;
  --btn-l-fg-1226:#173b63;--btn-l-ring-1226:#2d638f;
  --btn-l-dis-bg-1226:#f1f4f7;--btn-l-dis-fg-1226:#97a5b4;
}
html body .btn-light-1226:not(#z1226),
html body .btn-primary:not(#z1226),
html body .btn-checkout:not(#z1226),
html body .btn.act-1225:not(#z1226),
html body .view-more-tile button:not(#z1226),
html body .view-more-refined button:not(#z1226),
html body .icon-btn-114.primary:not(#z1226),
html body .wallet-act-r19.btn-primary:not(#z1226){
  background:var(--btn-l-bg-1226)!important;background-image:none!important;
  color:var(--btn-l-fg-1226)!important;border-color:transparent!important;
  box-shadow:none!important;border-radius:10px!important;font-weight:750!important;
  text-shadow:none!important;
}
html body .btn-light-1226:not(#z1226),
html body .btn-primary:not(#z1226),
html body .btn-checkout:not(#z1226){border:0!important}
html body .btn-light-1226:not(#z1226) svg,
html body .btn-primary:not(#z1226) svg,
html body .btn-checkout:not(#z1226) svg,
html body .btn.act-1225:not(#z1226) svg{color:var(--btn-l-fg-1226)!important}
html body .btn-light-1226:not(#z1226):hover:not(:disabled),
html body .btn-primary:not(#z1226):hover:not(:disabled),
html body .btn-checkout:not(#z1226):hover:not(:disabled),
html body .btn.act-1225:not(#z1226):hover:not(:disabled),
html body .view-more-tile button:not(#z1226):hover,
html body .view-more-refined button:not(#z1226):hover,
html body .icon-btn-114.primary:not(#z1226):hover,
html body .btn-light-1226:not(#z1226):focus-visible,
html body .btn-primary:not(#z1226):focus-visible,
html body .btn-checkout:not(#z1226):focus-visible,
html body .btn.act-1225:not(#z1226):focus-visible{
  background:var(--btn-l-bg-h-1226)!important;color:var(--btn-l-fg-1226)!important;box-shadow:none!important;
}
html body .btn-light-1226:not(#z1226):active:not(:disabled),
html body .btn-primary:not(#z1226):active:not(:disabled),
html body .btn-checkout:not(#z1226):active:not(:disabled),
html body .btn.act-1225:not(#z1226):active:not(:disabled){background:var(--btn-l-bg-a-1226)!important}
html body .btn:not(#z1226):focus-visible,
html body .btn-light-1226:not(#z1226):focus-visible,
html body .view-more-tile button:not(#z1226):focus-visible,
html body .icon-btn-114:not(#z1226):focus-visible{
  outline:2px solid var(--btn-l-ring-1226)!important;outline-offset:2px!important;
}
html body .btn-light-1226:not(#z1226):disabled,html body .btn-light-1226:not(#z1226)[aria-disabled="true"],
html body .btn-primary:not(#z1226):disabled,html body .btn-primary:not(#z1226)[aria-disabled="true"],
html body .btn-checkout:not(#z1226):disabled,html body .btn-checkout:not(#z1226)[aria-disabled="true"],
html body .btn.act-1225:not(#z1226):disabled{
  background:var(--btn-l-dis-bg-1226)!important;color:var(--btn-l-dis-fg-1226)!important;
  opacity:1!important;cursor:not-allowed!important;box-shadow:none!important;transform:none!important;
}
html body .btn-primary:not(#z1226):disabled svg,html body .btn-light-1226:not(#z1226):disabled svg,
html body .btn-checkout:not(#z1226):disabled svg{color:var(--btn-l-dis-fg-1226)!important}

/* ---------- §1 Desktop header: ONE container for every page --------------------------
   Header, public pages, the signed-in stage (side menu + content) and the footer
   share max-width 1440 px and the same side padding, so the logo's left edge is
   the content's left edge (the side menu on signed-in pages) and the profile
   icon / Account ends at the content's right edge, on every page. The cart and
   the profile sit in one right-aligned slot of fixed width (cart + "Account" in
   the current language): the menu items never move on sign-in, sign-out or page
   change; roles without a cart get no placeholder at the far right. */
:root{--shell-max-1226:1440px;--shell-pad-1226:48px}
@media (min-width:900px) and (max-width:1180.98px){:root{--shell-pad-1226:28px}}
.acct-probe-1226{position:absolute!important;visibility:hidden!important;pointer-events:none!important;left:0;top:0;white-space:nowrap;
  padding:9px 11px!important;font-weight:750!important;font-size:.94rem;line-height:1.1!important;border:0!important}
@media (min-width:900px) and (max-width:1199.98px){.acct-probe-1226{padding:8px 7px!important;font-size:.86rem!important}}
@media (min-width:900px){
  html body #app-shell .app-header .header-inner{width:100%!important;max-width:var(--shell-max-1226)!important;margin-left:auto!important;margin-right:auto!important;
    padding-left:var(--shell-pad-1226)!important;padding-right:var(--shell-pad-1226)!important;box-sizing:border-box!important}
  html body #app-shell .app-header .brand{margin-left:0!important}
  html body #app-shell .app-header .header-actions{margin-left:auto!important;margin-right:0!important;padding-right:0!important}
  html body #app-shell .app-header .header-actions > .hdr-right-1226{order:5!important;display:flex!important;align-items:center;justify-content:flex-end;gap:4px;
    flex:none;margin:0 0 0 4px!important;position:relative}
  html body #app-shell .app-header .hdr-right-1226 > #cart-link{order:0!important;flex:none;margin:0!important}
  html body #app-shell .app-header .hdr-right-1226 > #cart-link[hidden]{display:none!important}
  html body #app-shell .app-header.no-cart-1226 .hdr-right-1226 > #cart-link{display:none!important}
  html body #app-shell .app-header .hdr-right-1226 > #auth-slot{order:1!important;width:var(--acct-w-1226,85px)!important;min-width:0!important;margin:0!important;flex:none;display:flex!important;justify-content:flex-end}
  /* Roles without a cart: no fixed slot — the menu closes up to the profile icon. */
  html body #app-shell .app-header.no-cart-1226 .hdr-right-1226 > #auth-slot{width:auto!important}
  html body #app-shell .app-header .hdr-right-1226 #account-menu-trigger-110{margin:0!important}
  html body #app-shell .app-header .hdr-right-1226 #auth-slot .auth-nav-link{margin-right:0!important}
  /* Public pages (and signed-in pages without the side menu). */
  html body #app-shell #authenticated-stage-116:not(.has-persistent-side-116) > #app > .page,
  html body #app-shell .app-footer{width:100%!important;max-width:var(--shell-max-1226)!important;margin-left:auto!important;margin-right:auto!important;
    padding-left:var(--shell-pad-1226)!important;padding-right:var(--shell-pad-1226)!important;box-sizing:border-box!important}
  /* Signed-in pages: side menu + content inside the same box. */
  html body #app-shell #authenticated-stage-116.has-persistent-side-116{width:100%!important;max-width:var(--shell-max-1226)!important;margin-left:auto!important;margin-right:auto!important;
    padding-left:var(--shell-pad-1226)!important;padding-right:var(--shell-pad-1226)!important;box-sizing:border-box!important}
}
@media (max-width:899.98px){
  html body #app-shell .app-header .hdr-right-1226{display:contents!important}
  html body #app-shell .app-header .acct-probe-1226{display:none!important}
}

/* ---------- §24 Phone site header: exactly the screen width, never wider ---------- */
@media (max-width:899.98px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  html body #app-shell .app-header{left:0!important;right:0!important;width:auto!important;max-width:100%!important;box-sizing:border-box!important}
  html body #app-shell .app-header .header-inner{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;gap:8px!important}
  html body #app-shell .app-header .brand{min-width:0!important;flex:0 1 auto!important}
  html body #app-shell .app-header .brand img{flex:none}
  html body #app-shell .app-header .brand span{min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap}
  html body #app-shell .app-header #portal-language-dropdown{flex:none!important;min-width:0}
  html body #app-shell .app-header .header-actions{flex:none!important;min-width:0!important;margin-left:auto!important;gap:2px!important}
  html body #app-shell .app-header .header-actions > *{flex:none}
}
/* Too narrow for "RYU App" next to the language button and three icons. */
@media (max-width:379.98px){html body #app-shell .app-header .brand span{display:none!important}}

/* ---------- §24/§25 Portal-wide phone width hygiene -------------------------------- */
@media (max-width:899.98px){
  html body #app-shell #app,html body #app-shell #app > .page,html body .content-column,html body .ops-content-110{min-width:0!important;max-width:100%!important}
  html body .split-layout,html body .split-layout-110{min-width:0!important}
  html body .split-layout > *,html body .split-layout-110 > *{min-width:0!important}
  html body #modal-root .modal{max-width:100%!important;box-sizing:border-box}
  html body .auth-center-shell.auth-background-119{width:auto!important;margin-left:0!important;margin-right:0!important}
}

/* ---------- §15 No needless vertical scrollbar on public / sign-in pages -------------
   The stage had min-height: 100vh - 150 px, which plus the footer made short
   pages a few pixels taller than the window. The shell is now a column whose
   stage fills the free height; the page scrolls only when the content needs it.
   The reserved scrollbar gutter of 1.2.23 (no header jump) stays. */
html body #app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
html body #app-shell > #authenticated-stage-116{flex:1 0 auto}
html body:not(:has(.auth-background-119)):not(:has(.auth-center-shell)) #app-shell > #authenticated-stage-116,
html body:not(:has(.auth-background-119)):not(:has(.auth-center-shell)) #app-shell > #authenticated-stage-116 > #app{min-height:0!important}
html body #app-shell > .app-footer{flex:none}

/* ---------- §8 / §24 Dashboard tiles -------------------------------------------------
   Balance: "(expires 08 Sep)" on the heading line, small and grey. Every tile is
   back to one compact two-line height (label, figure), equal per row; long
   labels wrap instead of being cut off or widening a tile. Two tiles per row on
   phones, sized to the width. */
html body .dash-1223 .dtile-1223{position:relative;min-width:0!important;box-sizing:border-box}
html body .dash-1223 .dtile-1223 .dtile-body-1223{min-width:0!important}
html body .dash-1223 .dtile-1223 .dtile-label-1223{display:flex!important;flex-wrap:wrap;align-items:baseline;column-gap:5px;row-gap:0;white-space:normal!important;overflow:visible!important;min-width:0}
html body .dash-1223 .dtile-1223 .dtile-label-1223 .dtile-name-1222{display:inline!important;white-space:normal!important;overflow-wrap:anywhere;min-width:0}
@media (min-width:900px){
  html body .dash-1223 .dtile-1223:not(#z1226){padding-left:10px!important;padding-right:8px!important;column-gap:8px!important;gap:8px!important}
}
@media (min-width:900px) and (max-width:1399.98px){
  html body .dash-1223 .dtile-1223 .dtile-label-1223{font-size:13px!important}
}
html body .dash-1223 .dtile-1223 .dtile-lq-1223{display:inline!important;font-size:11px!important;line-height:1.2!important;font-weight:600!important;color:#7a8a9b!important;white-space:nowrap!important;overflow:visible!important}
html body .dash-1223 .dtile-1223 .dtile-lq-1223:empty{display:none!important}
html body .dash-1223 .dtile-1223 .dtile-fig-1223{min-width:0;max-width:100%;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere}
html body .dash-1223 .dtile-1223 .dtile-fig-1223 .dtile-num-1222{white-space:nowrap}
html body .dash-1223 .dtile-1223 .dtile-fig-text-1226 .dtile-num-1222{white-space:normal}
html body .dash-1223 .dtile-1223 .dtile-unit-1226{font-size:13px;font-weight:650;color:#4b5d70;white-space:nowrap}
html body .dash-1223 .dtile-1223 .dtile-n-1226{white-space:nowrap}
@media (min-width:900px) and (max-width:1399.98px){html body .dash-1223 .dtile-1223 .dtile-fig-1223{font-size:17px!important}}
html body .dash-1223 .dash-grid-1221{align-items:stretch!important}
html body .dash-1223 .dash-grid-1221 > *{min-width:0!important}
@media (max-width:899.98px){
  html body .dash-1223{min-width:0;max-width:100%}
  html body .dash-1223 .dash-grid-1221{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
  html body .dash-1223 .dtile-1223 .dtile-fig-1223{font-size:clamp(15px,4.6vw,18px)!important}
  html body .dash-1223 .dtile-1223 .dtile-fig-1223 .dtile-num-1222{white-space:nowrap}
  /* Workspace switch (admin): one line, or scrolls inside itself, never the page. */
  html body .dash-1223 .seg-1222{max-width:100%!important;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap!important;box-sizing:border-box}
  html body .dash-1223 .seg-1222::-webkit-scrollbar{display:none}
  html body .dash-1223 .seg-1222 .seg-btn-1221{flex:1 0 auto;white-space:nowrap}
}

/* ---------- §14 Phone dashboard header: name, role (small grey), live clock ---------- */
.dash-role-1226{display:none}
@media (max-width:899.98px){
  html body .dash-1223 .dash-head-1221 .dash-greet-1221,
  html body .dash-1223 .dash-head-1221 .dash-badges-1221{display:none!important}
  html body .dash-1223 .dash-head-1226{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:2px!important;align-items:start!important}
  html body .dash-1223 .dash-head-1226 .dash-hello-1221{grid-column:1!important;grid-row:1!important;min-width:0}
  html body .dash-1223 .dash-head-1226 .dash-hello-1221 .page-title{margin:0!important;overflow-wrap:anywhere}
  html body .dash-1223 .dash-head-1226 .dash-role-1226{display:block;color:#718198;font-size:13px;font-weight:600;line-height:1.35;margin-top:1px}
  html body .dash-1223 .dash-head-1226 .dash-clock-1223{grid-column:1!important;grid-row:2!important;justify-self:start!important;font-size:13px;line-height:20px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
}

/* ---------- §17 Requests badge (side menu, account menu, dashboard tile) ---------- */
.rq-badge-1226{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;box-sizing:border-box;
  background:#d92d3a;color:#fff!important;font-size:11.5px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:0;flex:none;white-space:nowrap}
html body #persistent-side-116 a.has-rq-badge-1226,html body .side-nav a.has-rq-badge-1226,html body #account-popover-110 a.has-rq-badge-1226{display:flex!important;align-items:center}
html body #persistent-side-116 a .rq-side-1226,html body .side-nav a .rq-side-1226,html body #account-popover-110 a .rq-pop-1226{margin-left:auto;order:9}
html body .dash-1223 a.dtile-1223 > .dtile-ico-1221.has-rq-badge-1226{position:relative;overflow:visible!important}
html body .dash-1223 a.dtile-1223 .dtile-ico-1221 > .rq-tile-1226{position:absolute;top:-9px;right:-6px;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;border-radius:9px;box-shadow:0 0 0 2px #fff}

/* ---------- §16 Fields never move: empty message slots take no room; row partners
   stay top-aligned when a message appears under the other field. ---------- */
html body .inline-field-error:not(.visible):not(#z1226),html body .inline-field-error:empty:not(#z1226),
html body .fmsg-1223:empty:not(#z1226),html body .field-msg-b20:empty:not(#z1226),html body .inline-field-error-113:empty:not(#z1226),
html body #form-message:empty,html body [id$="-message-114"]:empty:not(#z1226),html body [id$="-message-113"]:empty:not(#z1226),html body [id$="-message-116"]:empty:not(#z1226),html body [id$="-message-1110"]:empty:not(#z1226){display:none!important;min-height:0!important;margin:0!important;padding:0!important}
html body #app form .field,html body #modal-root form .field,html body #app form label.field{align-content:start!important}
html body #app form:is(.merchant-registration-wide,.buyer-registration-wide,.registration-grid,.form-grid,.settings-form-118,.stack),
html body #app form :is(.registration-grid,.form-grid,.settings-grid,.settings-form-118,.grid-2){align-items:start!important}

/* ---------- §19 Password checklist ---------- */
.pwck-1226{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:3px 12px;font-size:12px;line-height:1.35;color:#66788a;font-weight:600}
.pwck-1226 li{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;margin:0;padding:0}
.pwck-1226 li::before{content:none!important}
.pwck-ico-1226{width:14px;height:14px;flex:none}
.pwck-1226 .pwck-tick-1226{display:none}
.pwck-1226 li.ok-1226{color:#17734f}
.pwck-1226 li.ok-1226 .pwck-tick-1226{display:inline}
.pwck-1226 li.ok-1226 .pwck-dot-1226{display:none}
.pwck-1226 li.bad-1226{color:#b42335}

/* ---------- §21 Scan merchant QR: fits phones, ~56 px, 24 px icon, 1.1 rem, one line ---------- */
@media (max-width:899.98px){
  html body .btn.btn-scan-r19:not(#z1226),html body .scan-solo-1223 .btn.btn-scan-r19:not(#z1226){
    display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;margin-left:0!important;margin-right:0!important;
    min-height:56px!important;height:auto!important;padding:8px 14px!important;gap:10px!important;font-size:1.1rem!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden}
  html body .btn.btn-scan-r19:not(#z1226) .ui-icon-110,html body .btn.btn-scan-r19:not(#z1226) svg{width:24px!important;height:24px!important;flex:none}
  html body .btn.btn-scan-r19:not(#z1226) > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:339.98px){html body .btn.btn-scan-r19:not(#z1226){font-size:1.02rem!important;padding:8px 10px!important}}

/* ---------- §5 Account menu: user ID right-aligned on the name row (like Merchant ID) ---------- */
html body #account-popover-110 .pop-namerow-1226{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px;min-width:0;width:100%}
html body #account-popover-110 .pop-namerow-1226 > strong{min-width:0;overflow-wrap:anywhere;display:block}
html body #account-popover-110 .pop-uid-1226{flex:none;margin-left:auto;color:#8794a2!important;font-size:.72rem!important;font-weight:750!important;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;display:inline!important}
html body #account-popover-110 .pop-uid-1226[hidden]{display:none!important}
/* §15: registration pages — no tall empty band above the footer either. */
@media (min-width:900px){
  html body #app > .page:has(> .registration-wide-page){padding-bottom:12px!important}
  html body #app > .page > .registration-wide-page{padding-bottom:0!important}
}

/* ---------- §20 (portal side): language panel = flag + language name, current marked ----------
   The landing page (1.0.44) uses the same look; ≥44 px rows on phones; never off-screen. */
html body .app-header #portal-language-menu.portal-language-menu:not(#z1226){min-width:150px!important;width:max-content!important;max-width:calc(100vw - 24px)!important;
  padding:4px!important;border-radius:8px!important;border:1px solid #d7e2ec!important;box-shadow:0 10px 26px rgba(20,56,89,.13)!important;background:#fff!important;box-sizing:border-box}
html body .app-header #portal-language-menu.portal-language-menu:not(#z1226) button{display:flex!important;align-items:center!important;gap:8px!important;width:100%!important;min-height:36px;
  padding:6px 10px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#173b63!important;font-size:.84rem!important;font-weight:600!important;text-align:left;white-space:nowrap;line-height:1.2}
html body .app-header #portal-language-menu.portal-language-menu:not(#z1226) button:hover,
html body .app-header #portal-language-menu.portal-language-menu:not(#z1226) button:focus-visible{background:#f3f7fa!important;outline:none}
html body .app-header #portal-language-menu.portal-language-menu:not(#z1226) button.active{font-weight:800!important;background:#eef4f9!important}
html body .app-header #portal-language-menu .lang-name-1226{flex:1 1 auto}
html body .app-header #portal-language-menu .lang-check-1226{flex:none;width:15px;height:15px;margin-left:10px;visibility:hidden;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html body .app-header #portal-language-menu button.active .lang-check-1226{visibility:visible}
@media (max-width:899.98px){
  html body .app-header #portal-language-menu.portal-language-menu:not(#z1226) button{min-height:44px;font-size:.92rem!important}
}

/* §24/§25: the toast (flash) stays inside the screen on phones: fixed 16 px side
   margins, no translateX centring, message wraps, close button never pushed out. */
@media (max-width:899.98px){
  html body #flash:not(#z1226),html body .flash-116:not(#z1226){left:16px!important;right:16px!important;transform:none!important;width:auto!important;
    min-width:0!important;max-width:none!important;box-sizing:border-box!important}
  html body #flash:not(#z1226) > *:not(button){min-width:0;overflow-wrap:anywhere}
  html body #flash:not(#z1226) > button{flex:none}
}
html body .dash-1223 .dtile-1223 [data-dash-fig-1221="qr"] .dtile-num-1222{white-space:normal!important;overflow-wrap:anywhere}
/* §25: "← Dashboard" back links no longer pull 10 px past the left edge (negative margin). */
@media (max-width:899.98px){
  html body .dash-back-1222:not(#z1226){margin-left:0!important;padding-left:0!important}
  html body .dash-back-center-1222 > .dash-back-1222:not(#z1226){margin-left:auto!important;padding-left:14px!important}
}

/* QA §8: phone tiles compact like desktop — icon beside the text (label, figure),
   every tile on the dashboard the same height. */
@media (max-width:899.98px){
  html body .dash-1223 .dash-grid-1221{grid-auto-rows:1fr!important;gap:10px!important}
  html body .dash-1223 .dtile-1223:not(#z1226){display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;
    gap:9px!important;padding:10px 8px 10px 10px!important;min-height:64px!important;height:100%!important;text-align:left!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-ico-1221{width:32px!important;height:32px!important;min-width:32px!important;margin:0!important;flex:none!important;align-self:center!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-ico-1221 svg{width:18px!important;height:18px!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-body-1223{flex:1 1 auto!important;align-self:center!important;justify-content:center!important;gap:1px!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-label-1223{font-size:12.5px!important;line-height:1.25!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-fig-1223{font-size:16px!important;line-height:1.2!important;min-height:0!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-unit-1226{font-size:11.5px}
}

/* QA §16: field messages from blur validation never move anything: the message sits in
   the space under its field (absolute), and empty slots take no room. */
html body #app form label.field:not(#z1226),html body #app form .field:not(#z1226){position:relative}
/* The message sits on the label line, right-aligned (no reserved space, no row-gap change). */
html body #app form .field > .inline-field-error.visible:not(#z1226){position:absolute!important;right:0;top:0;left:auto;max-width:70%;margin:0!important;min-height:0!important;
  font-size:11px!important;line-height:16px!important;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:1;background:transparent}
@media (max-width:899.98px){html body #app form .field > .inline-field-error.visible:not(#z1226){max-width:78%;font-size:10.5px!important;letter-spacing:-.01em}}
.pwerr-1226{margin:5px 0 0;color:#b42335;font-size:12.5px;line-height:1.35;font-weight:600}
.pwerr-1226[hidden]{display:none!important}

/* QA §20/§24: language button keeps its look but gets a ≥44 px tap area. */
html body .app-header #portal-language-trigger:not(#z1226){position:relative}
html body .app-header #portal-language-trigger:not(#z1226)::after{content:"";position:absolute;left:-2px;right:-2px;top:-7px;bottom:-7px;z-index:2}
html body .app-header #portal-language-dropdown:not(#z1226){z-index:3}
@media (max-width:359.98px){
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-fig-1223{font-size:14.5px!important}
  html body .dash-1223 .dtile-1223:not(#z1226) .dtile-unit-1226{white-space:normal;overflow-wrap:anywhere}
  html body .dash-1223 .dtile-1223:not(#z1226){gap:7px!important;padding-left:8px!important;padding-right:6px!important}
}

/* ---------- §23 Danger buttons: ONE light red style portal-wide (desktop + phone
   dialogs/sheets): light red background, red text/icon, darker on hover, clear
   focus ring. Solid red action buttons (.btn-red: Purchase, Checkout, Redeem) are
   main actions, not danger: they take the shared light style like every primary. */
:root{--btn-d-bg-1226:#fff1f2;--btn-d-bg-h-1226:#ffe1e5;--btn-d-bg-a-1226:#ffd3d9;--btn-d-fg-1226:#b4232f;--btn-d-bd-1226:#ffcdd2}
html body .btn-danger:not(#z1226),html body #modal-root .modal .btn-danger:not(#z1226),html body .btn-danger-soft-b20:not(#z1226),
html body .pld-danger-1221:not(#z1226),html body .btn.danger:not(#z1226){
  background:var(--btn-d-bg-1226)!important;background-image:none!important;color:var(--btn-d-fg-1226)!important;
  border:1px solid var(--btn-d-bd-1226)!important;box-shadow:none!important;border-radius:10px!important;font-weight:750!important;text-shadow:none!important}
html body .btn-danger:not(#z1226) svg,html body .btn-danger-soft-b20:not(#z1226) svg,html body .pld-danger-1221:not(#z1226) svg{color:var(--btn-d-fg-1226)!important}
html body .btn-danger:not(#z1226):hover:not(:disabled),html body .btn-danger:not(#z1226):focus-visible,
html body .btn-danger-soft-b20:not(#z1226):hover,html body .pld-danger-1221:not(#z1226):hover,html body .btn.danger:not(#z1226):hover{
  background:var(--btn-d-bg-h-1226)!important;color:var(--btn-d-fg-1226)!important;border-color:#f6b4bd!important}
html body .btn-danger:not(#z1226):active:not(:disabled){background:var(--btn-d-bg-a-1226)!important}
html body .btn-danger:not(#z1226):focus-visible,html body .btn-danger-soft-b20:not(#z1226):focus-visible,html body .pld-danger-1221:not(#z1226):focus-visible,
html body .icon-btn-110.danger-icon-110:not(#z1226):focus-visible,html body .icon-button.danger:not(#z1226):focus-visible{outline:2px solid var(--btn-d-fg-1226)!important;outline-offset:2px!important}
html body .btn-danger:not(#z1226):disabled{background:#f7f2f3!important;color:#c49aa0!important;border-color:#eddde0!important;opacity:1!important;cursor:not-allowed!important}
html body .btn-red:not(#z1226){
  background:var(--btn-l-bg-1226)!important;background-image:none!important;color:var(--btn-l-fg-1226)!important;border:0!important;
  box-shadow:none!important;border-radius:10px!important;font-weight:750!important}
html body .btn-red:not(#z1226) svg{color:var(--btn-l-fg-1226)!important}
html body .btn-red:not(#z1226):hover:not(:disabled),html body .btn-red:not(#z1226):focus-visible{background:var(--btn-l-bg-h-1226)!important;color:var(--btn-l-fg-1226)!important}
html body .btn-red:not(#z1226):focus-visible{outline:2px solid var(--btn-l-ring-1226)!important;outline-offset:2px!important}
html body .btn-red:not(#z1226):disabled{background:var(--btn-l-dis-bg-1226)!important;color:var(--btn-l-dis-fg-1226)!important;opacity:1!important}
/* §15 QA: registration fits the window — one-line password checklist, tighter top/bottom
   spacing on short desktop windows. Nothing here changes on focus / blur. */
.pwck-1226{gap:2px 9px!important;font-size:11.5px!important;margin-top:4px!important}
.pwck-1226 li{gap:3px!important}
.pwck-ico-1226{width:12px!important;height:12px!important}
@media (min-width:900px) and (max-height:960px){
  html body #app > .page:has(> .registration-wide-page){padding-top:8px!important;padding-bottom:4px!important}
  html body #app > .page > .registration-wide-page{padding-top:4px!important}
  html body:has(.registration-wide-page) #app-shell > .app-footer{padding-top:12px!important;padding-bottom:14px!important}
}
html body #modal-root .modal .btn-danger:not(#z1226):hover:not(:disabled),html body #modal-root .modal .btn-danger:not(#z1226):focus-visible{background:var(--btn-d-bg-h-1226)!important;color:var(--btn-d-fg-1226)!important;border-color:#f6b4bd!important}
html body #modal-root .modal .btn-danger:not(#z1226):active:not(:disabled){background:var(--btn-d-bg-a-1226)!important}
html body #modal-root .modal .btn-primary:not(#z1226):hover:not(:disabled),html body #modal-root .modal .btn-red:not(#z1226):hover:not(:disabled){background:var(--btn-l-bg-h-1226)!important;color:var(--btn-l-fg-1226)!important}
/* END RYU 1.2.26 SHELL CSS */
/* BEGIN RYU 1.2.26 LISTS CSS */
/* RYU Portal 1.2.26 — Stream LISTS. */

/* ---------- §6 Requests (desktop): voucher photo at the right end of the Item cell ---------- */
@media(min-width:900px){
  #app td.request-item-col-1221 .req-item-1221.req-item-1225{display:flex!important;align-items:center;justify-content:space-between!important;gap:10px}
  #app td.request-item-col-1221 .req-item-1225 .req-item-text-1221{order:1;flex:1 1 auto;min-width:0;text-align:left}
  #app td.request-item-col-1221 .req-item-1225 .req-photo-1221{order:2;flex:none;margin:0 0 0 auto!important}
  /* Room for the three row actions at 1280–1440 px (the table never scrolls sideways inside its frame). */
  #app table.requests-table-126 th,#app table.requests-table-126 td{padding-left:6px!important;padding-right:6px!important}
  #app table.requests-table-126 th.select-col-126,#app table.requests-table-126 td.select-col-126{padding-left:12px!important}
  #app table.requests-table-126 td.request-id-col-126{padding-left:11px!important}
  html body #app table.requests-table-1221.requests-table-1221 .request-merchant-col-1220{min-width:132px!important}
  html body #app table.requests-table-1221.requests-table-1221 td.requester-col-126{max-width:140px}
  html body #app table.requests-table-1221.requests-table-1221 th.request-modified-col-1220,html body #app table.requests-table-1221.requests-table-1221 td.request-modified-col-1220{width:112px!important;min-width:112px!important}
  html body #app table.requests-table-1221.requests-table-1221 td.requester-col-126 small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* ---------- §7 Show deleted items (desktop): filter-label size, normal weight ---------- */
html body .page-head .heading-inline-116 > label.sd-1225,html body label.sd-1225{font-size:13px!important;font-weight:400!important;color:#4b6178;gap:6px;letter-spacing:0}
html body label.sd-1225 input{width:15px;height:15px}
html body label.sd-1225 .sd-text-1225{font-weight:400}

/* ---------- §12 / §26 Phone sticky search + View options bar ----------
   One fixed offset from CSS (the fixed phone header's own height variable),
   no shadow, no border, no gradient under it, and nothing that changes size
   when it sticks. Own compositing layer so iOS moves it with the header. */
@media(max-width:899.98px){
  html body .lt-bar-1222{position:-webkit-sticky;position:sticky;top:var(--ryu-fixed-header-h,64px)!important;box-shadow:none!important;border-bottom:0!important;border-top:0!important;background:var(--bg,#fff);background-image:none!important;transition:none!important;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 0 8px!important;padding-left:0!important;padding-right:0!important}
  /* Full-bleed background without negative margins, so the bar is never wider than the
     page whatever the column padding is: a page-coloured outline, clipped to the sides,
     fills the 16 px gutters (outlines add no layout or scroll width; no blur, no shade). */
  html body .lt-bar-1222{outline:16px solid var(--bg,#fff);outline-offset:0;clip-path:inset(0 -16px)}
  html body .lt-bar-1222::before,html body .lt-bar-1222::after{content:none!important;display:none!important}
  /* No rubber-band bounce of the page under the fixed header on list pages. */
  html:has(.lt-bar-1222){overscroll-behavior-y:none}
}

/* ---------- §13 Phone View options ---------- */
/* Show deleted items: a plain checkbox row (no border or box). */
#modal-root .vo-sd-1225,#modal-root .vo-sd-plain-1226 .vo-sd-1225{border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0 2px!important;min-height:44px;font-weight:500;font-size:15px}
#modal-root .vo-sd-group-1225{margin-top:0}
.vo-nohead-1226 > h3{display:none}

/* ---------- §17 Requests: rows that need attention ---------- */
.att-dot-1226{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#d93a3a;margin-right:6px;vertical-align:middle;position:relative;top:-1px}
#app table.requests-table-126 tbody tr.att-1226 > td{background-color:#f3f8fe}
#app table.requests-table-126 tbody tr.att-1226:hover > td{background-color:#eaf3fc}
#app li.pl-row-1221.att-1226,#app li.pl-row-1221.att-1226 > .pl-main-1221,#app li.pl-row-1221.att-1226 .tx-row-1220{background-color:#f3f8fe}
#app li.pl-row-1221.att-1226 .tx-row-l1-1220 > .att-dot-1226{align-self:center;margin-right:0}
/* Desktop: the dot sits in the cell's left padding, so the ID column never gets wider. */
#app table.requests-table-126 td.request-id-col-126{position:relative}
#app td.request-id-col-126 > .att-dot-1226{position:absolute;left:1px;top:50%;margin:-4px 0 0 0;width:7px;height:7px}

/* §26 (phones, list pages only): no backdrop blur on the fixed header above the
   sticky bar — iOS repaints a blurred fixed layer on every scroll frame, a known
   trigger of sticky-element jitter. The header background is already opaque. */
@media(max-width:899.98px){
  html:has(.lt-bar-1222) body .app-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:#fff!important}
}

/* QA 1: "+1 more" stays a small inline pill after the title (list cell and details).
   The 1.2.22 two-line clamp (`.entity-two-line-126 > span`) also caught the pill and
   made it a full-width block. Title + pill share one flex line; the title truncates. */
html body .entity-two-line-126:has(> .req-more-1219){display:grid!important;grid-template-columns:minmax(0,max-content) max-content;justify-content:start;align-items:center;column-gap:6px;row-gap:0;min-width:0}
html body .entity-two-line-126:has(> .req-more-1219) > a,html body .entity-two-line-126:has(> .req-more-1219) > strong{min-width:0;max-width:100%}
html body .entity-two-line-126 > .req-more-1219,html body .req-item-1222 .req-item-text-1221 .entity-two-line-126 > span.req-more-1219{display:inline-flex!important;align-items:center;gap:3px;flex:none;justify-self:start;align-self:center;width:max-content!important;max-width:none;margin:0!important;padding:0 7px;height:18px;line-height:18px;overflow:visible!important;-webkit-line-clamp:unset;white-space:nowrap;vertical-align:middle}
html body .entity-two-line-126 > .req-more-1219 > span{display:inline}
html body .entity-two-line-126:has(> .req-more-1219) > .req-line2-1219,html body .entity-two-line-126:has(> .req-more-1219) > small,html body .entity-two-line-126:has(> .req-more-1219) > div{grid-column:1 / -1;min-width:0}

/* QA 3: Admin Vouchers / merchant Inventory fit their frame at 1280 and 1440 px
   (no sideways scrolling inside the table): headings may wrap, tighter cells,
   smaller dates, compact photo and actions. */
@media(min-width:900px){
  html body #app table.vtable-1225 th{white-space:normal!important;line-height:1.25;vertical-align:bottom;overflow-wrap:normal;word-break:normal;hyphens:none}
  html body #app table.vtable-1225 th .sortable-heading-116,html body #app table.vtable-1225 th a{white-space:normal!important}
  html body #app table.vtable-1225 th,html body #app table.vtable-1225 td{padding-left:5px!important;padding-right:5px!important}
  html body #app table.vtable-1225 th.select-col-126,html body #app table.vtable-1225 td.select-col-126{padding-left:10px!important;padding-right:2px!important;width:30px!important;min-width:30px!important}
  html body #app table.vtable-1225 td.photo-col-1220,html body #app table.vtable-1225 th.photo-col-1220{width:44px!important;min-width:44px!important;max-width:44px}
  html body #app table.vtable-1225 td.photo-col-1220 .thumb-1220,html body #app table.vtable-1225 td.photo-col-1220 img{width:36px!important;height:36px!important;min-width:36px}
  html body #app table.vtable-1225 .id-cell-116{font-size:11.5px;white-space:normal!important;overflow-wrap:normal;word-break:normal}
  html body #app table.vtable-1225 thead th{font-size:10px!important;letter-spacing:.02em!important}
  html body #app table.vtable-1225 td{font-size:12.5px}
  html body #app table.vtable-1225 td.dt-cell-1220,html body #app table.vtable-1225 td.last-used-1219{font-size:11.5px!important}
  html body #app table.vtable-1225 td.dt-cell-1220,html body #app table.vtable-1225 td.last-used-1219{font-size:12px;white-space:nowrap}
  html body #app table.vtable-1225 td.dt-cell-1220 small,html body #app table.vtable-1225 td.last-used-1219 small{font-size:11px}
  html body #app table.vtable-1225 td .voucher-title-state-121,html body #app table.vtable-1225 td .entity-two-line-126{display:block;min-width:0}
  html body #app table.vtable-1225 td,html body #app table.vtable-1225 td a{overflow-wrap:normal}
  /* Long single words in title / merchant / category may break only when the table would
     otherwise overflow (min-content shrinks; columns still size by their full text). */
  html body #app table.vtable-1225 td .voucher-title-state-121 a,html body #app table.vtable-1225 td .entity-two-line-126 > a,html body #app table.vtable-1225 td > a.public-entity-link-121{overflow-wrap:anywhere}
  html body #app table.vtable-1225 td.actions-col-126,html body #app table.vtable-1225 th.actions-col-126{min-width:0!important;padding-right:6px!important}
  html body #app table.vtable-1225 .icon-actions-110{gap:0!important}
  html body #app table.vtable-1225 .icon-actions-110 .icon-btn-110,html body #app table.vtable-1225 .icon-actions-110 .sys-lock-1223 .icon-btn-110{width:26px!important;min-width:26px!important}
  html body #app table.vtable-1225 td .voucher-title-state-121{min-width:94px}
  html body #app table.vtable-1225 td > a.public-entity-link-121{-webkit-hyphens:auto;hyphens:auto}
  html body #app table.vtable-1225 td:has(> a[href^="#/category/"]){min-width:66px}
  /* merchant Inventory had fixed minimum column widths (title 230, category 125 …). */
  html body #app table.vtable-1225.inventory-table-1220 th:not(.select-col-126):not(.photo-col-1220),html body #app table.vtable-1225.inventory-table-1220 td:not(.select-col-126):not(.photo-col-1220){min-width:0!important}
  html body #app table.vtable-1225.inventory-table-1220 td.amt-col-1220,html body #app table.vtable-1225.inventory-table-1220 td .amt-1220{white-space:nowrap}
}
/* END RYU 1.2.26 LISTS CSS */
/* BEGIN RYU 1.2.26 STORE CSS */
/* RYU Portal 1.2.26 — Stream STORE. */

/* ---------- §23 shared light button (My QR style) on STORE buttons ---------- */
html body .btn.lb-1226s,html body a.btn.lb-1226s,
html body .btn.act-1225.lb-1226s,
html body .scan-solo-1223 .btn.btn-scan-r19.lb-1226s,html body .btn.btn-scan-r19.lb-1226s{
  background:#edf4fa!important;color:var(--ink,#173b63)!important;border:0!important;box-shadow:none!important;text-decoration:none!important;box-sizing:border-box!important}
html body .btn.lb-1226s:hover:not(:disabled),html body .btn.lb-1226s:focus-visible,
html body .btn.act-1225.lb-1226s:hover,html body .scan-solo-1223 .btn.btn-scan-r19.lb-1226s:hover{background:#dde9f4!important;color:var(--ink,#173b63)!important}
html body .btn.lb-1226s:focus-visible{outline:3px solid rgba(30,78,122,.45)!important;outline-offset:2px!important}
html body .btn.lb-1226s:disabled,html body .btn.lb-1226s[aria-disabled="true"]{background:#f1f4f7!important;color:#98a6b5!important;opacity:1!important;cursor:not-allowed}
.ico-1226s{width:18px;height:18px;flex:none}

/* ---------- §4 Empty cart ---------- */
.cart-empty-1226s .cart-empty-art-1225s .ico-1226s{width:34px;height:34px}
.cart-empty-actions-1226s{display:flex;flex-wrap:nowrap;justify-content:center;align-items:stretch;gap:10px}
.cart-empty-actions-1226s .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;height:44px;padding:0 16px!important;font-weight:750;font-size:.92rem;white-space:nowrap;border-radius:10px!important}
.cart-empty-actions-1226s .btn .ico-1226s{width:18px;height:18px}
@media (max-width:899.98px){
  .cart-empty-actions-1226s{flex-direction:column;align-self:stretch;width:100%}
  .cart-empty-actions-1226s .btn{width:100%;height:48px;min-height:48px}
}

/* ---------- §9 Top-up header: same width as the card below; smaller balance ---------- */
body.authenticated-110 .content-column:has(> .tu-result-1223) > .balance-title-row-112.tu-head-1222{max-width:560px}
.tu-amt-1222{font-size:1.2rem!important;font-weight:800}
@media (max-width:899.98px){
  body.authenticated-110 .content-column:has(> .tu-result-1223) > .balance-title-row-112.tu-head-1222{max-width:none}
  .tu-amt-1222{font-size:1.1rem!important}
}

/* ---------- §22 Buyer redeem result page ---------- */
.rr-page-1226s{width:100%;max-width:480px;min-width:0}
.rr-1226s{box-sizing:border-box;width:100%;min-width:0;padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;margin:8px 0 24px}
.rr-ico-1226s{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin-bottom:12px}
.rr-ico-1226s .ico-1226s{width:34px;height:34px;stroke-width:2.4}
.rr-ok-1226s .rr-ico-1226s{background:#e5f6ee;color:#14804f}
.rr-fail-1226s .rr-ico-1226s{background:#fff4e0;color:#a35b00}
.rr-title-1226s{margin:0 0 6px;font-size:1.55rem;line-height:1.2;color:var(--ink,#0f2a44)}
.rr-merchant-1226s{margin:0;font-weight:750;font-size:1.02rem;color:var(--ink,#173b63);overflow-wrap:anywhere}
.rr-when-1226s{margin:4px 0 0;color:#5b6f84;font-size:.88rem;font-variant-numeric:tabular-nums}
.rr-reason-1226s{margin:10px 0 0;color:#3c5266;overflow-wrap:anywhere}
.rr-sum-1226s{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin:20px 0 0}
.rr-sum-1226s > div{background:#f4f8fb;border-radius:10px;padding:10px 12px;min-width:0;text-align:left}
.rr-sum-1226s dt{font-size:.76rem;font-weight:700;color:#62778c;margin:0}
.rr-sum-1226s dd{margin:3px 0 0;font-size:1.12rem;font-weight:800;color:var(--ink,#173b63);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rr-lines-1226s{list-style:none;margin:16px 0 0;padding:0;width:100%;border-top:1px solid #e6edf3}
.rr-line-1226s{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #e6edf3;text-align:left}
.rr-img-1226s{width:40px;height:40px;border-radius:8px;overflow:hidden;background:#edf4fa;color:#5c7c9b;display:grid;place-items:center}
.rr-img-1226s img{width:100%;height:100%;object-fit:cover;display:block}
.rr-img-1226s .ico-1226s{width:20px;height:20px}
.rr-lt-1226s{min-width:0;font-weight:650;font-size:.9rem;color:var(--ink,#173b63);overflow-wrap:anywhere;line-height:1.3}
.rr-lq-1226s{color:#5b6f84;font-size:.86rem;white-space:nowrap}
.rr-la-1226s{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.92rem}
.rr-actions-1226s{display:flex;gap:10px;width:100%;margin-top:22px}
.rr-actions-1226s .btn{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750;white-space:nowrap;border-radius:10px!important}
@media (max-width:899.98px){
  .rr-page-1226s{max-width:none}
  .rr-1226s{padding:22px 16px 18px}
  .rr-actions-1226s{flex-direction:column}
  .rr-actions-1226s .btn{width:100%;flex:none}
}
@media (max-width:359.98px){.rr-sum-1226s{grid-template-columns:1fr}.rr-line-1226s{grid-template-columns:36px minmax(0,1fr) auto;}.rr-line-1226s .rr-la-1226s{grid-column:2 / -1;justify-self:end}.rr-img-1226s{width:36px;height:36px}}

html body .rr-actions-1226s .btn.lb-1226s{min-height:48px!important;height:auto!important;padding:10px 16px!important;font-size:.95rem!important}

/* ---------- §27b Voucher page: Buy again + Show QR, ownership line ---------- */
.detail-panel.owned-1226s .voucher-actions.own-acts-1226s{display:flex!important;flex-wrap:wrap!important;gap:10px!important;align-items:stretch}
.detail-panel.owned-1226s .own-acts-1226s > .btn{flex:1 1 0!important;min-width:0!important;justify-content:center}
.detail-panel.owned-1226s .own-acts-1226s > .btn > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.own-qr-1226s{display:inline-flex;align-items:center;gap:7px;min-height:44px}
html body .detail-panel.owned-1226s .own-acts-1226s > .btn{min-height:46px!important;height:46px!important;margin:0!important;box-sizing:border-box!important}
.own-scan-1226s{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;font-weight:700;color:#2d5f8f;text-decoration:none;white-space:nowrap}
.own-scan-1226s:hover{text-decoration:underline}
.own-line-1226s{margin:8px 0 0;font-size:.86rem}
.own-line-1226s a{display:inline-flex;align-items:center;gap:6px;min-height:32px;color:#2d5f8f;font-weight:650;text-decoration:none}
.own-line-1226s a:hover{text-decoration:underline}
.own-line-1226s .ico-1226s{width:16px;height:16px}
@media (min-width:900px){.detail-panel.owned-1226s .own-acts-1226s > .btn{flex:0 1 auto!important;min-width:150px!important}}
@media (max-width:899.98px){
  .own-line-1226s a{min-height:44px}
  .detail-panel.owned-1226s .own-acts-1226s{flex-wrap:nowrap!important}
  .detail-panel.owned-1226s .own-acts-1226s:has(> .btn:nth-child(3)){flex-wrap:wrap!important}
  .detail-panel.owned-1226s .own-acts-1226s > .btn{padding-left:8px!important;padding-right:8px!important;gap:6px!important}
}
@media (max-width:359.98px){.detail-panel.owned-1226s .own-acts-1226s > .btn{font-size:.86rem!important}.detail-panel.owned-1226s .own-acts-1226s > .btn svg{width:16px!important;height:16px!important}}

/* ---------- §28 Merchant Profile: "View public profile" = small text link ---------- */
html body a.mp-view-1223s.mp-view-1226s{display:inline-flex;align-items:center;gap:5px;min-height:0;padding:0;border:0!important;border-radius:0;background:none!important;box-shadow:none!important;color:#2d5f8f;font-size:.875rem;font-weight:700;text-decoration:none;white-space:nowrap}
html body a.mp-view-1223s.mp-view-1226s:hover,html body a.mp-view-1223s.mp-view-1226s:focus-visible{text-decoration:underline;background:none!important}
html body a.mp-view-1223s.mp-view-1226s .ico-1226s{width:14px;height:14px;opacity:.85}
@media (max-width:899.98px){html body a.mp-view-1223s.mp-view-1226s,html body #profile-merchant-1110 a.mp-view-1223s.mp-view-1226s{min-height:44px!important;padding:0 2px}}
.rr-1226s .dash-back-1222{display:none!important}
html body .detail-panel.owned-1226s .own-acts-1226s > .btn svg{width:20px!important;height:20px!important;margin:0!important;flex:none}
@media (max-width:899.98px){html body .detail-panel.owned-1226s .own-acts-1226s:has(> .own-scan-1226s){flex-wrap:wrap!important}html body .detail-panel.owned-1226s .own-acts-1226s:has(> .own-scan-1226s) > .btn{flex:1 0 100%!important}}

/* §23 validity quick picks: the selected chip is light, not solid navy */
html body .vd-pick-1225s.on{background:#e3eef8;border-color:#1f4e79;color:#173b63;box-shadow:inset 0 0 0 1px #1f4e79}

/* §16 Merchant Profile / admin merchant edit / registration name grid: a message under
   one field never moves its neighbour; empty message slots take no space. */
.nm-grid-1225s{align-items:start}
.nm-grid-1225s .nm-field-1225s{align-content:start;align-self:start}
.nm-err-1225s:empty{display:none!important}
#profile-merchant-1110 .field,#ed-form-1220e .field,.sf-page-1222s .sf-field-1222s{align-content:start}

/* §21/§25 photo action rows (Replace · Download · Remove) never push the page wider:
   on phones they wrap instead of overflowing (narrow screens / wider system fonts). */
@media (max-width:899.98px){
  html body .photo-actions-1220e{display:flex!important;flex-wrap:wrap!important;gap:8px!important;max-width:100%!important;min-width:0}
  html body .photo-actions-1220e > .btn{flex:1 1 auto!important;width:auto!important;min-width:0!important;max-width:100%}
}
/* Storefront carousel slots (two per row on phones): the 44 px slot buttons wrap inside the slot. */
@media (max-width:899.98px){
  html body .sf-page-1222s .sf-slot-actions-1222s{flex-wrap:wrap!important;justify-content:center!important;gap:0!important;padding:2px 0!important;min-width:0;max-width:100%}
}
/* END RYU 1.2.26 STORE CSS */
/* BEGIN RYU 1.2.27 SHELL CSS */
/* ========================================================================== */
/* RYU Portal 1.2.27 — Stream SHELL (CSS).                                     */
/* Shared strong buttons (.btn-strong-1227 / .btn-strong-alt-1227), CR 1, 3,   */
/* 4, 5, 12, 15, 16a, 17, 23, 24b, 29, 36, 52.                                  */
/* Specificity: three :not(#…1227) IDs beat every 1.2.26 rule (at most two).   */
/* ========================================================================== */

/* ---------- Shared strong buttons (BUILD.md decision) -------------------------------
   .btn-strong-1227      — main action: #cfe2f5, hover/focus #bcd6ef, active #aecdea.
   .btn-strong-alt-1227  — lighter companion: #e1edf8, hover/focus #d3e4f4.
   Text + icon #123a62, weight 750, radius 10 px, no shadow. Disabled = the 1.2.26
   disabled look. Works on <button> and <a>, with or without .btn-primary/.btn-soft. */
:root{
  --btn-s-bg-1227:#cfe2f5;--btn-s-bg-h-1227:#bcd6ef;--btn-s-bg-a-1227:#aecdea;
  --btn-sa-bg-1227:#e1edf8;--btn-sa-bg-h-1227:#d3e4f4;--btn-sa-bg-a-1227:#c6dcf0;
  --btn-s-fg-1227:#123a62;
}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227),
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227){
  background:var(--btn-s-bg-1227)!important;background-image:none!important;color:var(--btn-s-fg-1227)!important;
  border:0!important;border-color:transparent!important;box-shadow:none!important;border-radius:10px!important;
  font-weight:750!important;text-shadow:none!important;text-decoration:none!important;opacity:1;
}
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227){background:var(--btn-sa-bg-1227)!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227) svg,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227) svg,
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227) .ui-icon-110,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227) .ui-icon-110{color:var(--btn-s-fg-1227)!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):hover:not(:disabled):not([aria-disabled="true"]),
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):focus-visible:not(:disabled){
  background:var(--btn-s-bg-h-1227)!important;color:var(--btn-s-fg-1227)!important;box-shadow:none!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):active:not(:disabled):not([aria-disabled="true"]){background:var(--btn-s-bg-a-1227)!important}
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):hover:not(:disabled):not([aria-disabled="true"]),
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):focus-visible:not(:disabled){
  background:var(--btn-sa-bg-h-1227)!important;color:var(--btn-s-fg-1227)!important;box-shadow:none!important}
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):active:not(:disabled):not([aria-disabled="true"]){background:var(--btn-sa-bg-a-1227)!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):focus-visible,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):focus-visible{outline:2px solid var(--btn-l-ring-1226,#2d638f)!important;outline-offset:2px!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):disabled,
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227)[aria-disabled="true"],
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):disabled,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227)[aria-disabled="true"]{
  background:var(--btn-l-dis-bg-1226,#f1f4f7)!important;color:var(--btn-l-dis-fg-1226,#97a5b4)!important;
  opacity:1!important;cursor:not-allowed!important;box-shadow:none!important;transform:none!important}
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227):disabled svg,
html body .btn-strong-1227:not(#z1227):not(#y1227):not(#x1227)[aria-disabled="true"] svg,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227):disabled svg,
html body .btn-strong-alt-1227:not(#z1227):not(#y1227):not(#x1227)[aria-disabled="true"] svg{color:var(--btn-l-dis-fg-1226,#97a5b4)!important}
/* A busy (spinning) strong button keeps its colour; only the label is replaced by the spinner. */
html body .btn-strong-1227:is(.is-busy-1219,.is-busy-1223,[aria-busy="true"]):not(#z1227):not(#y1227):not(#x1227):disabled{background:var(--btn-s-bg-1227)!important;color:var(--btn-s-fg-1227)!important;cursor:progress!important}

/* ---------- CR 1 Header language switcher (portal): same label on the button and in the
   list; the button never overflows the phone header (≥320 px). ---------- */
html body .app-header #portal-language-current:not(#z1227){white-space:nowrap}

/* ---------- CR 4 Dashboard: coloured icons on the plain tiles; same label colour/weight ---------- */
.dtile-ico-1221.tone-indigo{background:#eceefd;color:#4146b0}
html body .dash-1223 .dtile-1223.dtile-logout-1221:not(#z1227){background:#fff!important}
html body .dash-1223 .dtile-1223.dtile-logout-1221:not(#z1227) .dtile-label-1223,
html body .dash-1223 .dtile-1223.dtile-logout-1221:not(#z1227) .dtile-name-1222{color:#4b5d70!important;font-weight:700!important;opacity:1!important}

/* ---------- CR 5 Desktop dashboard header: name large, role small grey under it, live
   clock on the right; no "Welcome back", no role badge. (Phones: 1.2.26 §14, unchanged.) ---------- */
@media (min-width:900px){
  html body .dash-1223 .dash-head-1221 .dash-greet-1221:not(#z1227),
  html body .dash-1223 .dash-head-1221 .dash-badges-1221:not(#z1227){display:none!important}
  html body .dash-1223 .dash-head-1226:not(#z1227){display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px!important}
  html body .dash-1223 .dash-head-1226 .dash-hello-1221:not(#z1227){min-width:0;flex:1 1 auto}
  html body .dash-1223 .dash-head-1226 .dash-hello-1221 .page-title:not(#z1227){margin:0!important}
  html body .dash-1223 .dash-head-1226 .dash-role-1226:not(#z1227){display:block;color:#718198;font-size:14px;font-weight:600;line-height:1.35;margin-top:2px}
  html body .dash-1223 .dash-head-1226 .dash-clock-1223:not(#z1227){margin-left:auto!important;flex:none;white-space:nowrap}
}

/* ---------- CR 17 Desktop dashboard: no Admin / Operations / Buyer / Merchant tabs
   (switching stays in the side menu's "Acting as"). Phones keep the tabs. ---------- */
@media (min-width:900px){
  html body .dash-1223 :is(.seg-1221,.seg-1222):not(#z1227){display:none!important}
}

/* ---------- CR 52 Requests tile: no badge on the tile (the figure is the count) ---------- */
html body .dash-1223 a.dtile-1223 .dtile-ico-1221 > .rq-tile-1226{display:none!important}

/* ---------- CR 12 Signed-in pages WITH the side menu use the full width (desktop),
   24–32 px side margins; header and footer widen with them so the logo lines up with
   the side menu. Public pages, the landing page, signed-in pages without the side
   menu and phones keep the 1440 px container. ---------- */
@media (min-width:900px){
  html body.authenticated-110:has(#authenticated-stage-116.has-persistent-side-116){--shell-max-1227:none;--shell-pad-1227:32px}
  html body.authenticated-110:has(#authenticated-stage-116.has-persistent-side-116) #app-shell .app-header .header-inner:not(#z1227),
  html body.authenticated-110:has(#authenticated-stage-116.has-persistent-side-116) #app-shell .app-footer:not(#z1227),
  html body.authenticated-110 #app-shell #authenticated-stage-116.has-persistent-side-116:not(#z1227){
    max-width:var(--shell-max-1227)!important;padding-left:var(--shell-pad-1227)!important;padding-right:var(--shell-pad-1227)!important}
}
@media (min-width:900px) and (max-width:1180.98px){
  html body.authenticated-110:has(#authenticated-stage-116.has-persistent-side-116){--shell-pad-1227:24px}
}

/* ---------- CR 15 Security → Change password: no live checklist, one grey line ---------- */
html body #password-form-114 .pwck-1226:not(#z1227){display:none!important}
.pwhint-1227{display:block;margin:6px 0 0;color:#718198;font-size:12px;line-height:1.4;font-weight:500}

/* ---------- CR 16a Security: the "Change password" heading is hidden (the button says it) ---------- */
html body .security-page-114 > section:has(> #password-form-114) > h2:not(#z1227){display:none!important}

/* ---------- CR 16a Admin Settings: field labels hidden (kept as aria-label), the
   reserved-names box + hint span two columns on desktop. ---------- */
html body #app label.field.set-reserved-1227 > span:first-child:not(#z1227),
html body #app .set-test-1221 label.set-test-to-1221 > span:first-child:not(#z1227){display:none!important}
@media (min-width:900px){
  html body #app .set-grid-1221 > label.field.set-reserved-1227:not(#z1227){grid-column:span 2!important}
}

/* ---------- CR 24b Desktop lists: breathing room after the right-most column ---------- */
@media (min-width:900px){
  html body #app .table-wrap > table.data-table:not(#z1227) > :is(thead,tbody,tfoot) > tr > :is(th,td):last-child,
  html body #app .table-wrap > table.data-table:not(#z1227) > :is(thead,tbody,tfoot) > tr > :is(th,td).lastvis-1227{padding-right:16px!important}
}

/* ---------- CR 29 Desktop "Show deleted items": on the heading's text baseline ---------- */
@media (min-width:900px){
  html body .heading-inline-116:has(> label.sd-1225):not(#z1227){align-items:baseline!important}
  html body .heading-inline-116:not(#z1227) > label.sd-1225{align-self:baseline!important;align-items:baseline!important}
  html body .heading-inline-116:not(#z1227) > label.sd-1225 input{align-self:center;position:relative;top:-1px}
}

/* ---------- CR 36 Side menu (desktop): Logout lines up with the menu items above it
   (same icon column, padding, height, size, weight); faint divider above; neutral hover. ---------- */
@media (min-width:900px){
  html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220:not(#z1227){
    display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:11px!important;
    width:100%!important;min-height:36px!important;height:auto!important;box-sizing:border-box!important;
    padding:8px 12px!important;margin:13px 0 0!important;border:0!important;border-radius:8px!important;
    background:transparent!important;color:#33475b!important;font-size:inherit;font-weight:500!important;text-align:left!important;
    line-height:inherit;position:relative;box-shadow:none!important}
  html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220:not(#z1227)::before{
    content:"";position:absolute;left:0;right:0;top:-7px;height:1px;background:#e6edf3;pointer-events:none}
  html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220:not(#z1227):hover,
  html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220:not(#z1227):focus-visible{background:#f1f6fa!important;color:var(--ink,#173b63)!important}
  html body.authenticated-110 #persistent-side-116 .side-nav-116 .side-logout-110.nav-item-1220:not(#z1227) .nav-ico-1220{color:#6b7f93!important}
}

/* ---------- CR 23 Phone menu (signed in): directly under the menu button ---------- */
@media (max-width:899.98px){
  html body.authenticated-110 #mobile-menu.mobile-menu.auth-public-menu-111:not(#z1227){
    top:var(--mm-top-1227,calc(var(--header) + 6px))!important;right:var(--mm-right-1227,74px)!important;left:auto!important;
    max-width:var(--mm-maxw-1227,calc(100vw - 16px))!important;margin:0!important;transform:none!important}
}
/* END RYU 1.2.27 SHELL CSS */
/* BEGIN RYU 1.2.27 LISTS CSS */
/* RYU Portal 1.2.27 — Stream LISTS. CR items 10, 11, 18, 20, 21, 28, 34, 35, 41, 47, 48, 51. */

/* ---------- §10 Requests (desktop): Status column hidden, badge under the ID, wider Merchant ---------- */
.rq-st-1227L{display:none}
#modal-root .rq-st-1227L{display:none!important}
@media(min-width:900px){
  html body #app table.requests-table-126:not(#z1227) th.request-status-col-126,
  html body #app table.requests-table-126:not(#z1227) td.request-status-col-126{display:none!important}
  html body #app table.requests-table-126:not(#z1227) td.request-id-col-126 > .rq-st-1227L{display:block;margin-top:4px;line-height:1}
  html body #app table.requests-table-126:not(#z1227) td.request-id-col-126 > .rq-st-1227L .status-badge{font-size:11px;padding:2px 7px;line-height:1.35;white-space:nowrap}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-merchant-col-1220,
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-merchant-col-1220{min-width:170px!important;width:auto!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-merchant-col-1220 .entity-two-line-126 > strong{-webkit-line-clamp:2;line-clamp:2}
  /* The rest gives a little so the row (incl. three actions) fits the 1280 px frame. */
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-type-col-126,
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-type-col-126{min-width:74px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-item-col-126,
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-item-col-126{min-width:128px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-amount-col-126{min-width:70px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-modified-col-1220,
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-modified-col-1220{min-width:96px!important;width:100px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.actions-col-126{min-width:104px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.requester-col-126,
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.requester-col-126{min-width:112px!important;max-width:124px!important}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) td.request-item-col-126 .entity-two-line-126 > small{white-space:normal!important;overflow-wrap:anywhere}
  html body #app table.requests-table-1221.requests-table-1221:not(#z1227) th.request-modified-col-1220 a.sortable-heading-116{white-space:normal!important;flex-wrap:wrap}
}

/* ---------- §21 Requests: no attention dot; phone status word on line 2 ---------- */
html body .att-dot-1226{display:none!important}
.rq-ico-1227L .st-dot-1222{display:none!important}
.l2-left-1222 .rq-stw-1227L{font-size:11.5px;font-weight:700;letter-spacing:.01em;color:#5d7186}
.l2-left-1222 .rq-stw-1227L.tone-amber{color:#9a6200}
.l2-left-1222 .rq-stw-1227L.tone-green{color:#1d7350}
.l2-left-1222 .rq-stw-1227L.tone-red{color:#b42318}
.l2-left-1222 .rq-stw-1227L.tone-blue{color:#24598f}
.l2-left-1222 .rq-stw-1227L.tone-grey{color:#6b7f93}

/* ---------- §11 Transactions (desktop): the table fits its frame ---------- */
@media(min-width:900px){
  html body #app table.transactions-table-1220:not(#z1227){width:100%!important;min-width:0!important;table-layout:auto!important}
  html body #app table.transactions-table-1220:not(#z1227) td.tx-voucher-merchant-col-126,
  html body #app table.transactions-table-1220:not(#z1227) th.tx-voucher-merchant-col-126{width:auto!important;min-width:124px!important}
  html body #app table.transactions-table-1220:not(#z1227) .tx-category-col-126{min-width:76px!important;width:auto!important;white-space:normal!important;overflow-wrap:anywhere}
  html body #app table.transactions-table-1220:not(#z1227) th.tx-id-col-126,
  html body #app table.transactions-table-1220:not(#z1227) td.tx-id-col-126{min-width:58px!important}
  html body #app table.transactions-table-1220:not(#z1227) .tx-user-col-126{min-width:104px!important}
  html body #app table.transactions-table-1220:not(#z1227) td.tx-user-col-126 .entity-two-line-126 > *{white-space:normal!important;overflow-wrap:anywhere;word-break:normal}
  html body #app table.transactions-table-1220:not(#z1227) .tx-order-col-1220{min-width:84px!important}
  html body #app table.transactions-table-1220:not(#z1227) th{white-space:normal!important}
  html body #app table.transactions-table-1220:not(#z1227) th:not(.select-col-126),
  html body #app table.transactions-table-1220:not(#z1227) td:not(.select-col-126){padding-left:6px!important}
  html body #app table.transactions-table-1220:not(#z1227) th:not(.select-col-126):not(:last-child),
  html body #app table.transactions-table-1220:not(#z1227) td:not(.select-col-126):not(:last-child){padding-right:6px!important}
  html body #app table.transactions-table-1220:not(#z1227) tr > :first-child:not(.select-col-126){padding-left:12px!important}
  html body #app table.transactions-table-1220:not(#z1227) td.tx-amount-col-126,
  html body #app table.transactions-table-1220:not(#z1227) th.tx-amount-col-126{min-width:84px!important;white-space:nowrap!important}
}

/* ---------- §18 Wallet → Recent transactions: sortable headings (desktop) ---------- */
table.wr-sortable-1227L th .wr-sort-1227L{appearance:none;-webkit-appearance:none;background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0;min-height:0!important;height:auto!important;width:auto!important;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border-radius:4px}
table.wr-sortable-1227L th .wr-sort-1227L:hover{color:#1f6290;text-decoration:underline;text-underline-offset:3px}
table.wr-sortable-1227L th .wr-sort-1227L:focus-visible{outline:2px solid #6aa3d8;outline-offset:2px}
table.wr-sortable-1227L th .wr-sort-1227L.active{color:#1f6290}
table.wr-sortable-1227L th.num .wr-sort-1227L,table.wr-sortable-1227L th.amt-col-1220 .wr-sort-1227L{justify-content:flex-end}
table.wr-sortable-1227L .wr-arr-1227L:empty{display:none}

/* ---------- §20 Top-up icon: one coin glyph, no badge ---------- */
.thumb-topup-1227L > .ico-1220{width:24px!important;height:24px!important}
.thumb-topup-1227L .topup-coin-1222{display:none!important}

/* ---------- §34 Wallet tiles are links ---------- */
a.tile-1220.tile-link-1227L{text-decoration:none!important;color:inherit;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease}
a.tile-1220.tile-link-1227L:hover{filter:brightness(.975);border-color:#b9cfe6}
a.tile-1220.tile-link-1227L:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(47,111,173,.35)}
a.tile-1220.tile-link-1227L .tile-label-1220,a.tile-1220.tile-link-1227L strong{text-decoration:none}

/* ---------- §28 Request decision summary ---------- */
#modal-root .rqsum-1227L{margin:10px 0 4px;padding:10px 12px;border:1px solid #e3ebf3;border-radius:10px;background:#f7fafd;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.4}
#modal-root .rqsum-1227L > div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:baseline}
#modal-root .rqsum-1227L dt{margin:0;color:#6b7f93;font-size:12.5px;font-weight:600}
#modal-root .rqsum-1227L dd{margin:0;min-width:0;color:#1f3550;overflow-wrap:anywhere}
#modal-root .rqsum-1227L dd .mono-1222{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
#modal-root .rqsum-1227L .rqs-name-1227L{font-weight:600}
#modal-root .rqsum-1227L .rqs-mail-1227L{display:block;color:#6b7f93;font-size:12.5px}
#modal-root .rqsum-1227L .rqs-more-1227L{color:#6b7f93;font-size:12.5px}
#modal-root .confirm-b20 .rqsum-1227L + .confirm-field-b20{margin-top:12px}

/* ---------- §41 Shared bulk confirm ---------- */
#modal-root .bk-1227L .bk-skip-1227L{margin-top:14px;padding-top:10px;border-top:1px solid #e6edf3}
#modal-root .bk-1227L .bk-skiplab-1227L{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.02em;color:#7a8a99;text-transform:none}
#modal-root .bk-1227L .bk-total-1227L{margin:12px 0 0!important;font-size:14px;color:#26405c;display:flex;gap:8px;align-items:baseline}
#modal-root .bk-1227L .bk-total-1227L > span{color:#6b7f93;font-weight:600}

/* ---------- §51 Result notices ---------- */
#modal-root .bk-1225 p.bk-msg-1227L{margin-bottom:8px!important}
#modal-root .bk-1227L .bk-grp-1227L + .bk-grp-1227L{margin-top:12px}
#modal-root .bk-1227L .bk-gh-1227L{margin:0 0 6px;font-size:12.5px;font-weight:700;color:#8a5a12}
#modal-root .bk-1227L .bk-gh-1227L::first-letter{text-transform:uppercase}
#modal-root .bk-1227L .bk-sum-1225 + .bk-msg-1227L{margin-top:6px}

/* ---------- §47 View options (phones): less blank space ---------- */
@media(max-width:899.98px){
  html body #modal-root .modal.vo-modal-1227L:not(#z1227) .vo-actions-1222{margin-top:0!important;padding-top:2px!important}
  html body #modal-root .modal.vo-modal-1227L:not(#z1227) > .modal-head{padding-top:0!important}
  html body #modal-root .modal.vo-modal-1227L:not(#z1227) > .modal-head .page-back-row-1221{margin-top:0!important}
}
/* §48: the Sort by select fills the row (no direction button). */
#modal-root .vo-sort-1227L{display:block}
#modal-root .vo-sort-1227L .vo-field-1222{width:100%}
@media(min-width:900px){
  html body #app table.transactions-table-1220:not(#z1227) .tx-time-col-126{min-width:0!important;width:auto!important}
  html body #app table.transactions-table-1220:not(#z1227) .tx-qty-col-1220{min-width:0!important}
}
/* END RYU 1.2.27 LISTS CSS */
/* BEGIN RYU 1.2.27 ADMIN CSS */
/* RYU Portal 1.2.27 — Stream ADMIN CSS. CR items 6, 13, 14, 16b, 30, 42, 43, 44, 45, 46, 49, 50. */

/* §6 Add account: role notice at the top, exactly as wide as the fields. */
html body #account-create-1110 > .acc-notice-1227A:not(#z1227){width:100%;max-width:560px;box-sizing:border-box;margin:0 0 4px;padding:12px 14px;border-radius:9px;font-size:.78rem;line-height:1.55;border:1px solid #cfe0ef;background:#eef5fb;color:#24557f}
html body #account-create-1110 > .acc-notice-warn-1227A:not(#z1227){border-color:#efd58c;background:#fff7e0;color:#6a4b00}

/* §16b Accounts (desktop): Statistics lives in the Actions column. */
@media (min-width:900px){
  html body table.accounts-table-121 th.account-stat-col-1211:not(#z1227),
  html body table.accounts-table-121 td.account-stat-col-1211:not(#z1227){display:none}
  html body table.accounts-table-121 .acc-stat-desk-1227A[hidden]:not(#z1227){display:inline-flex!important}
}
.lock-1227A{display:inline-flex}
.lock-1227A > button[disabled]{opacity:.38;cursor:not-allowed}

/* §44 Struck-through name only for deleted accounts (class is set only on deleted rows). */
html body .account-name-cell-122 strong.account-disabled-name-122:not(#z1227){text-decoration:line-through}

/* §45 Admin Vouchers / Inventory (desktop): Category column hidden, pill under the title. */
@media (max-width:899.98px){html body .vcat-pill-1227A:not(#z1227){display:none!important}}
@media (min-width:900px){
  html body table.vtable-1225 th.vcat-col-1227A:not(#z1227),html body table.vtable-1225 td.vcat-col-1227A:not(#z1227){display:none}
  html body table.vtable-1225 td .vcat-pill-1227A:not(#z1227){display:block!important;width:max-content!important;max-width:100%!important;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;margin-top:4px;padding:1px 8px;border-radius:999px;background:#eef2f6;color:#4f6478!important;font-size:11px!important;line-height:18px;font-weight:600;white-space:nowrap;margin-top:4px!important}
  html body table.vtable-1225 .vcat-pill-1227A a:not(#z1227),html body table.vtable-1225 .vcat-pill-1227A span:not(#z1227){color:inherit;text-decoration:none;font-size:11px;font-weight:600}
  html body table.vtable-1225 .vcat-pill-1227A a:hover:not(#z1227){text-decoration:underline}
  html body table.vtable-1225 th.vmer-col-1227A:not(#z1227),html body table.vtable-1225 td.vmer-col-1227A:not(#z1227){min-width:130px}
}

/* §45 Merchant ≈170px only where the frame has room (1.2.26 QA3: no sideways scroll at 1280). */
@media (min-width:1440px){
  html body table.vtable-1225 th.vmer-col-1227A:not(#z1227),html body table.vtable-1225 td.vmer-col-1227A:not(#z1227){min-width:170px}
}

/* §13 Email History (desktop): wider Subject (≤ 2 lines), Message clamped to 2 lines, narrow Provider ID. */
@media (min-width:900px){
  html body table.history-table-1210 td.em-subj-1227A:not(#z1227),html body table.history-table-1210 th.em-subj-1227A:not(#z1227){min-width:230px;width:24%}
  html body table.history-table-1210 td.em-subj-1227A .email-subject-link-1211:not(#z1227){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:none}
  html body table.history-table-1210 td.email-message-1219:not(#z1227){white-space:normal!important;min-width:220px;max-width:340px;overflow:visible;text-overflow:clip}
  html body table.history-table-1210 .em-msg-1227A:not(#z1227){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.4}
  html body table.history-table-1210 td.provider-id-1218:not(#z1227){max-width:96px;width:96px}
}

/* §14 Audit Log (desktop): no Portal Version column; version as a small grey line under the Action. */
.aver-1227A{display:none}
@media (min-width:900px){
  html body table.history-table-1210 th.aver-col-1227A:not(#z1227),html body table.history-table-1210 td.aver-col-1227A:not(#z1227){display:none}
  html body table.history-table-1210 .aver-1227A:not(#z1227){display:block;margin-top:3px;color:#8796a5;font-size:11px;line-height:1.3;font-family:inherit}
}

/* §46 Categories (phone): voucher count as plain small grey text on line 2. */
@media (max-width:899.98px){
  html body .pl-row-1221 .cat-vc-1227A:not(#z1227){color:#6b7c8d;font-size:.78rem;font-weight:500}
  /* §49 Email History (phone): the recipient fills line 2 up to the date. */
  html body.portal-route-1210 .pl-list-1221 .l2-left-1222:not(#z1227){min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* §50 Diagnostics dialog: icon + label buttons. */
html body .diag-acts-1227A button:not(#z1227){display:inline-flex;align-items:center;justify-content:center;gap:7px}
html body .diag-acts-1227A .diag-ico-1227A:not(#z1227){width:17px;height:17px;flex:0 0 auto}
html body .diag-acts-1227A [data-action="close-modal"] .diag-ico-1227A:not(#z1227){width:14px;height:14px}

/* §30 Activate / Deactivate eye icons in the row's navy (no green for "active"). */
html body .va-1225[data-vact-1225]:not(#z1227),html body .va-lock-1225 .va-1225:not(#z1227){color:#315a7d}

/* QA: Add account — even spacing between every field (top-level fields carried a 15px bottom margin on top of the grid gap). */
html body #account-create-1110 > .field:not(#z1227),html body #account-create-1110 #account-create-role-fields-1110 > .field:not(#z1227){margin:0!important}

/* QA: Email History (desktop) — the Status pill stays on one line. */
@media (min-width:900px){
  html body table.history-table-1210 td:has(> .status-badge):not(#z1227),html body table.history-table-1210 th.eh-status-1227A:not(#z1227){white-space:nowrap;min-width:84px}
  html body table.history-table-1210 td > .status-badge:not(#z1227){white-space:nowrap}
}
@media (min-width:900px) and (max-width:1439.98px){
  html body table.history-table-1210 td.em-subj-1227A:not(#z1227),html body table.history-table-1210 th.em-subj-1227A:not(#z1227){min-width:150px;width:auto}
  html body table.history-table-1210 td.email-message-1219:not(#z1227){min-width:120px;max-width:220px}
  html body table.history-table-1210 td.provider-id-1218:not(#z1227){max-width:64px;width:64px}
}
/* END RYU 1.2.27 ADMIN CSS */
/* BEGIN RYU 1.2.27 STORE CSS */
/* RYU Portal 1.2.27 STORE — CR items 9, 19, 22, 25, 26, 27, 31, 32, 33, 37, 38, 40, 43, 53.
   Strong button colours come from SHELL (.btn-strong-1227 / .btn-strong-alt-1227). */

/* ---------- 9 Storefront: no rule above the carousel sections ---------- */
html body .sf-page-1222s .sf-sec-1222s:not(#z1227){border-top:0!important}

/* ---------- 19 Buyer Scan QR (desktop): large button hidden, small one on the Recent scans row ---------- */
.rs-scan-1227s{display:none!important}
@media (min-width:900px){
  html body:not(.bm-open-1225s) #app:has([data-recent-scans-b20]) .buyer-scan-card-r19.scan-solo-1223:not(#z1227){display:none!important}
  html body .rs-head-b20.rs-head-1227s:not(#z1227){display:flex;align-items:center;gap:10px}
  html body .rs-head-1227s .rs-scan-1227s:not(#z1227){display:inline-flex!important;align-items:center;gap:7px;margin-left:auto;min-height:36px!important;height:36px!important;padding:0 14px!important;font-size:13.5px!important;white-space:nowrap}
  html body .rs-head-1227s .rs-scan-1227s:not(#z1227) svg{width:18px!important;height:18px!important;flex:none}
  /* 40: freed width to Merchant and Vouchers; the Failed badge shows its reason on hover. */
  .rs-table-1227s .rs-badge-b20.fail[title]{cursor:help}
}

/* ---------- 22 Merchant My QR: Scan buyer QR 48 px tall ---------- */
html body .mq-scan-b20.mq-scan-1227s:not(#z1227){min-height:48px!important;height:48px!important}

/* ---------- 25 Portal Contact (desktop): two fields per row ---------- */
@media (min-width:900px){
  html body .portal-contact-form.contact-form-1227s:not(#z1227) > .form-grid{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px 14px!important}
  html body .portal-contact-form.contact-form-1227s:not(#z1227) > .form-grid > .field{min-width:0}
}

/* ---------- 26 Request refund: flat compact list ---------- */
html body .refund-items-116.refund-flat-1227s:not(#z1227){gap:0!important;border:1px solid #e1e9f0!important;border-radius:10px!important;padding:2px 12px!important}
html body .refund-items-116.refund-flat-1227s:not(#z1227) > div.rf-group-1227s{border:0!important;border-radius:0!important;background:none!important;padding:8px 0!important;border-top:1px solid #edf2f7!important}
html body .refund-items-116.refund-flat-1227s:not(#z1227) > div.rf-group-1227s:first-child{border-top:0!important}
html body .refund-items-116.refund-flat-1227s:not(#z1227) > div.sent-r19{background:none!important}
html body .refund-items-116.refund-flat-1227s:not(#z1227) > div.sent-r19 .rf-line-1227s{opacity:.6}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-head-1227s{display:flex;align-items:center;gap:8px;margin:0 0 2px;padding:0!important;border:0!important;font-size:.74rem;text-transform:none}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-head-1227s strong{font-weight:750;color:#5f738a!important}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-line-1227s{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:baseline;padding:3px 0!important;border:0!important;font-size:.84rem}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-name-1227s{font-weight:600;color:var(--ink,#173b63);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-id-1227s{font-weight:500;color:#76899a;font-size:.76rem}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .rf-amt-1227s{font-weight:650;color:#324a62;text-align:right;min-width:64px;font-variant-numeric:tabular-nums}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .refund-amt-r19{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:4px 0 0;padding-top:4px;border-top:0}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .refund-amt-r19 input{height:32px}
html body .refund-items-116.refund-flat-1227s:not(#z1227) .refund-amt-r19 small{font-weight:500}
html body .refund-items-116.refund-flat-1227s:not(#z1227) > div.refund-skipped-r19{opacity:.7}
html body .refund-1227s .refund-total-r19 > span{font-weight:700}

/* ---------- 31 / 32 Voucher page Checkout next to Remove from cart ---------- */
html body .voucher-actions .ck-go-1227s:not(#z1227){text-decoration:none}
html body .voucher-actions .ck-go-1227s .action-icon-119{width:22px!important;height:22px!important;flex:none}

/* ---------- 43 Deleted voucher ---------- */
.vdel-1227s{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid #f3d27a;border-radius:12px;background:#fff8e6;color:#7a5200;font-size:14px;line-height:1.5}
.vdel-1227s p{margin:0}
.vdel-1227s .ico-1227s{width:20px;height:20px;flex:none;margin-top:1px;color:#b77800}
.unav-del-1227s .unav-body-1222 h1.page-title{font-size:24px}

/* ---------- 37 Empty cart: soft red ---------- */
html body .btn.cart-empty-red-1227s:not(#z1227){background:#fdeeee!important;background-image:none!important;color:#b42318!important;border:1px solid #f6caca!important;box-shadow:none!important}
html body .btn.cart-empty-red-1227s:not(#z1227) svg{color:#b42318!important}
html body .btn.cart-empty-red-1227s:not(#z1227):hover:not(:disabled),html body .btn.cart-empty-red-1227s:not(#z1227):focus-visible{background:#fbe0e0!important;color:#b42318!important;border-color:#f1b5b5!important}
html body .btn.cart-empty-red-1227s:not(#z1227):focus-visible{outline:2px solid #b42318!important;outline-offset:2px!important}

/* ---------- 33 Checkout: wallet card, balance checkbox, summary lines ---------- */
.ck-wallet-1227s{display:grid;gap:8px;margin:0 0 10px;padding:10px 12px;border:1px solid #d6e1ec;border-radius:12px;background:#fff}
.ck-wallet-row-1227s{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;justify-content:flex-start;font-size:13.5px;color:#324a62}
.ck-wallet-row-1227s .ico-1227s{width:18px;height:18px;align-self:center;color:#2d638f;flex:none}
.ck-wallet-lbl-1227s{font-weight:650;color:#435b73}
.ck-wallet-amt-1227s{font-weight:800;color:#173b63;font-variant-numeric:tabular-nums}
.ck-wallet-exp-1227s{display:block;margin:-6px 0 0 26px;color:#6b7f93;font-size:12.5px}
.ck-usebal-1227s{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:650;color:#173b63;cursor:pointer;min-height:32px}
.ck-usebal-1227s input{width:18px;height:18px;margin:0;accent-color:#2d638f;flex:none}
.ck-totals-b20 .ck-bal-1227s dd{color:#17794f!important;font-weight:650}
.ck-totals-b20 .ck-rest-1227s dt,.ck-totals-b20 .ck-rest-1227s dd{color:#173b63!important;font-weight:750}
.ck-note-1227s{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;font-size:12.5px;line-height:1.45;color:#435b73}
.ck-note-1227s .ico-1227s{width:16px;height:16px;flex:none;margin-top:1px;color:#17794f}
.pm-btn-b20.pm-bal-off-1227s{opacity:.6}
html body .ck-back-1227s:not(#z1227){display:inline-flex!important;align-items:center;justify-content:center;gap:8px}
html body .ck-back-1227s:not(#z1227) svg{width:18px;height:18px;flex:none}

/* ---------- 38 Order confirmation: one solid badge ---------- */
html body .order-hero-b20 .order-hero-ic-b20.order-hero-solid-1227s:not(#z1227){width:40px;height:40px;border-radius:50%;background:#1f9d55;color:#fff;box-shadow:none;border:0}
html body .order-hero-b20.pending .order-hero-ic-b20.order-hero-solid-1227s:not(#z1227){background:#d98a04}
html body .order-hero-b20.void .order-hero-ic-b20.order-hero-solid-1227s:not(#z1227){background:#7b8794}
html body .order-hero-ic-b20.order-hero-solid-1227s .ico-hero-1227s{width:24px;height:24px;color:#fff;stroke:#fff}
html body .order-actions-1227s .btn:not(#z1227){display:inline-flex;align-items:center;gap:8px}
html body .order-actions-1227s .btn:not(#z1227) svg{width:18px;height:18px;flex:none}

/* ---------- 53 Empty cart: no subtitle line, so the heading keeps the gap above the buttons ---------- */
html body .cart-empty-1227s:not(#z1227) > h2{margin-bottom:18px!important}
html body .unav-del-1227s .unav-body-1222 .form-actions:not(#z1227):not(#y1227){margin-top:16px!important}
html body .voucher-specs > div[hidden]{display:none!important}
.order-pm-1227s{display:flex;flex-direction:column;gap:2px}
.order-split-1227s{font-size:12px;font-weight:500;color:#5f738a;font-variant-numeric:tabular-nums}
/* QA: in the cart on phones, Remove + Checkout share the first row; an owner's Show QR takes its own row. */
@media (max-width:899.98px){html body .voucher-actions:has(.ck-go-1227s) > .own-qr-1226s:not(#z1227){flex:1 0 100%!important}}
/* END RYU 1.2.27 STORE CSS */
/* BEGIN RYU 1.2.28 SHELL CSS */
/* ========================================================================== */
/* RYU Portal 1.2.28 — Stream SHELL (CSS).                                     */
/* CR items 1 (primary buttons solid blue), 2 (header language arrow),        */
/* 3 (signed-out "Sign in" spacing), 4 (My QR tile unit), 5/34 (dashboard     */
/* header), 19b/20 (registration password rules line, Website column),        */
/* 21 (security-code message under the box), 22 (login message at the top),  */
/* 23 (phone back links), 30 (phone header stays put).                         */
/* Specificity: four :not(#…1228) IDs beat the 1.2.27 three-ID rules.          */
/* ========================================================================== */

/* ---------- CR 1 Primary buttons: solid blue #1d6fd8 with white text and icons;
   hover/focus #175fbd, active #134f9e; disabled = the 1.2.26 grey disabled look.
   Secondary .btn-strong-alt-1227 takes the former light blue #cfe2f5 / #123a62.
   The 1.2.27 rules read their colours from custom properties, so the classes only
   re-point those properties on the element itself (every screen follows). ---------- */
html body .btn-strong-1227:not(#z1228){
  --btn-s-bg-1227:#1d6fd8;--btn-s-bg-h-1227:#175fbd;--btn-s-bg-a-1227:#134f9e;--btn-s-fg-1227:#fff}
html body .btn-strong-alt-1227:not(#z1228){
  --btn-sa-bg-1227:#cfe2f5;--btn-sa-bg-h-1227:#bcd6ef;--btn-sa-bg-a-1227:#aecdea;--btn-s-fg-1227:#123a62}
/* Everything inside a primary button (labels, counts, icons drawn with fill or stroke) is white. */
html body .btn-strong-1227:not(#z1228):not(#y1228):not(#x1228):not(:disabled):not([aria-disabled="true"]) :is(span,strong,b,small,em,i,svg,.ui-icon-110,.action-icon-119,.ico-1227s){color:#fff!important}
html body .btn-strong-1227:not(#z1228):not(#y1228):not(#x1228):not(:disabled):not([aria-disabled="true"]) :is(svg,svg *)[stroke]:not([stroke="none"]){stroke:currentColor!important}
html body .btn-strong-1227:not(#z1228):not(#y1228):not(#x1228):not(:disabled):not([aria-disabled="true"]) :is(svg,svg *)[fill]:not([fill="none"]){fill:currentColor!important}
/* Spinners on a primary button: white on translucent white. */
html body .btn-strong-1227:not(#z1228):not(#y1228):not(#x1228) :is(.spinner,.btn-spinner-1219,.spinner-inline-1218,.spinner-1222s,[class*="spinner"]){
  border-color:rgba(255,255,255,.38)!important;border-top-color:#fff!important}
/* A busy primary button keeps the solid blue and white label. */
html body .btn-strong-1227:is(.is-busy-1219,.is-busy-1223,[aria-busy="true"]):not(#z1228):not(#y1228):not(#x1228):not(#w1228):disabled{
  background:#1d6fd8!important;color:#fff!important;opacity:1!important}
/* Focus ring: dark navy, 2 px outside a 2 px white gap, visible on white pages, grey
   cards and inside dialogs / phone sheets (the gap keeps it apart from the blue fill). */
html body .btn-strong-1227:not(#z1228):not(#y1228):not(#x1228):not(#w1228):focus-visible,
html body .btn-strong-alt-1227:not(#z1228):not(#y1228):not(#x1228):not(#w1228):focus-visible{
  outline:2px solid #0b2e57!important;outline-offset:2px!important;box-shadow:0 0 0 2px #fff!important}

/* ---------- CR 2 Header language switcher (JA / KO / ZH): the arrow sits right after the
   label inside the button (2 px gap, 5 px right padding, 11 px arrow),
   so the native names fit the existing 82 px cap — the button never gets wider, at any
   width incl. 320 px. EN keeps its look. Landing: www/home/css/styles.css (1.0.46). ---------- */
html body .app-header #portal-language-trigger:not(#z1228):has(> #portal-language-current:not([lang="en"])){
  gap:2px!important;padding-left:6px!important;padding-right:5px!important;justify-content:flex-start!important}
html body .app-header #portal-language-trigger:not(#z1228):has(> #portal-language-current:not([lang="en"])) > #portal-language-current{
  word-spacing:-.06em;flex:0 1 auto;min-width:0}
html body .app-header #portal-language-trigger:not(#z1228):has(> #portal-language-current:not([lang="en"])) > .portal-language-chevron{
  width:11px!important;height:11px!important;flex:0 0 11px!important;margin:0 0 0 auto!important}

/* ---------- CR 30 Phone header stays put on every page. Two real causes found by
   measuring the header at 390 px across routes:
   (a) signed-in "portal" routes (dashboard, wallet, lists …) used an 18 px header gutter,
       public routes (store, merchants, cart …) 16 px (12 px at ≤380 px signed out only),
       so the logo, language button and right icons jumped 2 px on every such switch;
   (b) a browser with classic scrollbars (desktop at phone width, some Android) showed a
       scrollbar only on long pages (gutter "auto" below 761 px), moving the right icons by
       its width. Fix: one gutter for every route and role (16 px, 12 px at ≤380 px) with the
       signed-in content using the same 16 px, and a stable scrollbar gutter at every width
       (no effect with overlay scrollbars, e.g. iPhone). ---------- */
/* The reserved gutter is only for classic scrollbars (fine pointer) and from 361 px up: touch
   phones use overlay scrollbars (no gutter), and a desktop window under 361 px keeps every pixel
   for the content (e.g. Buy again + Show QR on one line at 320 px). */
@media (min-width:361px) and (max-width:899.98px) and (hover:hover) and (pointer:fine){
  html:not(#z1228),html.authenticated-110:not(#z1228){scrollbar-gutter:stable!important}
}
@media (max-width:899.98px){
  html body #app-shell .app-header .header-inner:not(#z1228){padding-left:16px!important;padding-right:16px!important}
  html body #app-shell #authenticated-stage-116.has-persistent-side-116:not(#z1228){padding-left:16px!important;padding-right:16px!important}
}
@media (max-width:380px){
  html body #app-shell .app-header .header-inner:not(#z1228){padding-left:12px!important;padding-right:12px!important}
}

/* ---------- CR 3 Desktop header, signed out: "Sign in" with a clear gap after the cart.
   The fixed right slot is measured on "Sign in" + a 16 px lead-in (the probe's left
   padding), so the cart keeps one position signed in and signed out. ---------- */
@media (min-width:900px){
  html body .app-header .acct-probe-1226:not(#z1228){padding-left:27px!important}
}
@media (min-width:900px) and (max-width:1199.98px){
  html body .app-header .acct-probe-1226:not(#z1228){padding-left:23px!important}
}

/* ---------- CR 4 Merchant My QR tile: the number stays large; "scans today" small,
   regular weight, grey (desktop and phone). ---------- */
html body .dash-1223 .dtile-1223:not(#z1228) .dtile-unit-1226{font-size:12px!important;font-weight:400!important;color:#718198!important;letter-spacing:0}

/* ---------- CR 34 Phone dashboard header (every role): name on line 1 and role /
   "Acting as …" on line 2 at the left; the live clock at the far right, on the name's
   baseline. Long names wrap before the clock; below 380 px the clock is short (JS). ---------- */
@media (max-width:899.98px){
  html body .dash-1223 .dash-head-1226:not(#z1228){grid-template-columns:minmax(0,1fr) auto!important;column-gap:12px!important;row-gap:0!important}
  html body .dash-1223 .dash-head-1226:not(#z1228) .dash-hello-1221{grid-column:1!important;grid-row:1!important;min-width:0}
  html body .dash-1223 .dash-head-1226:not(#z1228) .dash-clock-1223{grid-column:2!important;grid-row:1!important;justify-self:end!important;align-self:baseline!important;
    text-align:right;white-space:nowrap!important;max-width:none!important;overflow:visible!important;font-size:13px;line-height:20px;font-variant-numeric:tabular-nums}
}
@media (max-width:379.98px){
  html body .dash-1223 .dash-head-1226:not(#z1228){column-gap:8px!important}
  html body .dash-1223 .dash-head-1226:not(#z1228) .dash-clock-1223{font-size:12.5px}
}

/* ---------- CR 22 Sign in: failures show at the top of the card; no subtitle ---------- */
html body .auth-login-card:has(#login-form) .auth-heading-with-logo p:not(#z1228){display:none!important}
html body #login-form > #form-message.login-top-1228:empty{display:none!important}
html body #login-form > #form-message.login-top-1228:not(#z1228){margin:0 0 2px!important;order:-1}
html body #login-form > #form-message.login-top-1228:not(#z1228) > :is(.form-error,.form-success){margin:0!important}

/* ---------- CR 21 Security code: the field's own floating message is not used; its text
   shows under the code row (.fmsg-cap-1225, JS) on its own line. ---------- */
html body #app .auth-captcha .auth-captcha-row .inline-field-error:not(#z1228){display:none!important}

/* ---------- CR 19b / 20 Registration: no live checklist; the grey rules line instead ---------- */
html body :is(#register-buyer-form,#register-merchant-form) .pwck-1226:not(#z1228){display:none!important}
/* 19b Merchant registration (desktop): Website in the third column of the password row. */
@media (min-width:900px){
  html body #register-merchant-form .merchant-website-field-121:not(#z1228){grid-column:auto!important}
}

/* ---------- CR 23 Phone: back links at the top of pages ("← Dashboard", "← Back to Store",
   editor "‹ Accounts" …) get a ≥44 px pill tap area; font, size and text position unchanged
   (the extra room is padding offset by negative margins), drawn above the heading below. ---------- */
@media (max-width:899.98px){
  html body #app :is(.dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,.ed-back-1220e,.page-back-1221):not(#z1228):not(button){
    display:inline-flex!important;align-items:center!important;min-height:44px!important;box-sizing:border-box!important;
    padding-left:10px!important;padding-right:14px!important;margin-left:-10px!important;border-radius:999px!important;
    -webkit-tap-highlight-color:transparent;text-decoration:none!important}
  /* Above the heading below (its negative bottom margin overlaps it). Low specificity on
     purpose: a sticky back link (STORE 1.2.28 item 31, .stk-1228s) keeps its own position. */
  .dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,a.ed-back-1220e{position:relative;z-index:3}
  html body #app :is(.back-store-link,.voucher-back-row > a,.po-back-b20):not(#z1228){margin-top:-12px!important;margin-bottom:-12px!important}
  html body #app .dash-back-center-1222 > .dash-back-1222:not(#z1228){margin-left:auto!important;margin-right:auto!important;padding-left:14px!important}
  html body #app :is(.dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,.ed-back-1220e,.page-back-1221):not(#z1228):not(button):is(:hover,:active,:focus-visible){background:#eef4f9!important}
  html body #app :is(.dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,.ed-back-1220e,.page-back-1221):not(#z1228):not(button):focus-visible{outline:2px solid #2d638f!important;outline-offset:0!important}
}
/* CR 30: with a reserved (classic-scrollbar) gutter, the scenic sign-in canvas also paints the
   gutter (same as desktop 1.2.23 §1.5). Only for fine pointers: touch phones (overlay scrollbars)
   keep their look. */
@media (min-width:361px) and (max-width:760px) and (hover:hover) and (pointer:fine){
  html:has(.auth-center-shell.auth-background-119):not(#z1228){background:linear-gradient(rgba(255,255,255,.20),rgba(255,255,255,.30)),url('../assets/images/okinawa-login-bg-progressive.jpg') center/cover fixed no-repeat!important}
}
/* END RYU 1.2.28 SHELL CSS */
/* BEGIN RYU 1.2.28 LISTS CSS */
/* RYU Portal 1.2.28 — Stream LISTS. CR items 10a+16, 10b, 13, 15, 17, 24, 25, 26, 33. */

/* Small grey category badge (Transactions / Wallet recent "Description" line 3) */
.cat-badge-1228L{display:inline-block;max-width:100%;padding:1px 7px;border-radius:999px;background:#eef2f6;color:#5b6b7c;font-size:11.5px;font-weight:600;line-height:1.5;white-space:normal;overflow-wrap:anywhere;vertical-align:baseline}
.tx-cat-1228L{margin-top:3px;line-height:1.2}
/* Request type badge (Requests "Description" line 2) */
.rq-tb-1228L{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:#e8f0f9;color:#24598f;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:baseline;letter-spacing:.01em}
.rq-amt-1228L{margin-top:3px;line-height:1.25}
.rq-amt-1228L .amt-1220{font-size:13px;font-weight:700;white-space:nowrap}
.rq-hide-1228L{display:none!important}
html body #app .rq-desc-1228L > .req-line2-1219:not(#z1228){justify-content:flex-start!important;gap:6px;flex-wrap:wrap;align-items:center}
html body #app .rq-desc-1228L > .req-line2-1219:not(#z1228) .rq-tb-1228L{margin-right:0}

/* ---------- §10a + 16 Requests (desktop) ---------- */
@media(min-width:900px){
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.request-type-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-type-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.request-amount-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-amount-col-126{display:none!important}
  /* Requester and Merchant: whole names and emails, wrapped rather than cut. */
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.requester-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.requester-col-126{min-width:172px!important;max-width:none!important;width:auto!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.requester-col-126 .entity-two-line-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-merchant-col-1220 .entity-two-line-126{min-width:0;max-width:none!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.requester-col-126 .entity-two-line-126 > *,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-merchant-col-1220 .entity-two-line-126 > *{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;-webkit-line-clamp:unset!important;line-clamp:none!important;display:block!important;max-width:none!important;overflow-wrap:break-word!important;word-break:normal!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.request-merchant-col-1220,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-merchant-col-1220{min-width:184px!important;width:auto!important;max-width:none!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.request-item-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-item-col-126{min-width:170px!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-item-col-126 .rq-desc-1228L > small,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-item-col-126 .rq-desc-1228L > .req-line2-1219{display:block;margin-top:2px}
}

/* ---------- §10b / 15 Transactions (desktop): narrow ID, no Category column, no page total ---------- */
html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) tfoot .tx-total-row-1220{display:none!important}
@media(min-width:900px){
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) th.tx-category-col-126,
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) td.tx-category-col-126,
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) th.tx-category-col-1220,
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) td.tx-category-col-1220{display:none!important}
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) th.tx-id-col-126,
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) td.tx-id-col-126{min-width:0!important;width:1%!important;white-space:nowrap!important}
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) td.tx-voucher-merchant-col-126,
  html body #app table.transactions-table-1220.transactions-table-1220:not(#z1228) th.tx-voucher-merchant-col-126{min-width:180px!important}
}

/* ---------- §13 / 17 Wallet → Recent transactions ---------- */
table.wr-nocat-1228L td.tx-voucher-merchant-col-126 .tx-cat-1228L{margin-top:3px}

/* ---------- §25 View options: filter count inside the button's top-right corner ---------- */
html body .lt-vo-1222:not(#z1228){position:relative}
@media(max-width:899.98px){
  html body .lt-vo-1222:not(#z1228) .lt-badge-1222{top:2px!important;right:2px!important;min-width:16px!important;height:16px!important;padding:0 4px!important;font-size:10px!important;border:1.5px solid #fff!important;box-sizing:border-box}
}

/* ---------- §24 + 33 Requests phone rows: status word on line 2; name above the date ---------- */
@media(max-width:899.98px){
  html body #app li.rq-row-1228L .tx-row-l2-1220.l2-1222{align-items:flex-start}
  html body #app li.rq-row-1228L .l2-rt-1228L{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:0;max-width:62%;margin-left:auto;text-align:right}
  html body #app li.rq-row-1228L .l2-who-1228L{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:#3c5168}
  html body #app li.rq-row-1228L .l2-rt-1228L .l2-date-1222{margin-left:0!important}
}

/* ---------- §26 Accounts phone rows: email under the balance ---------- */
@media(max-width:899.98px){
  html body #app li.ac-row-1228L:not(#z1228) .l2-left-1222{flex:0 0 auto!important;min-width:0;max-width:45%!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html body #app li.ac-row-1228L:not(#z1228) .l2-mail-1228L{flex:1 1 auto;min-width:0;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;margin-left:auto}
}
@media(min-width:1360px){
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.requester-col-126,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.requester-col-126{min-width:190px!important}
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) th.request-merchant-col-1220,
  html body #app table.requests-table-126.requests-table-126.requests-table-126:not(#z1228) td.request-merchant-col-1220{min-width:232px!important}
}

/* ---------- §40 Phone list rows: hover / pressed / selected / attention fill the whole row ---------- */
/* The row (li) carries the colour; the row button is transparent so the checkbox column is included. */
html body #app li.pl-row-1221:not(#z1228) > .pl-main-1221,
html body #app li.pl-row-1221:not(#z1228) > .pl-main-1221.tx-row-1220,
html body #app li.pl-row-1221:not(#z1228) > .pl-check-1221{background:transparent!important;background-color:transparent!important}
html body #app li.pl-row-1221:not(#z1228){transition:background-color .12s ease}
html body #app li.pl-row-1221.att-1226:not(#z1228){background-color:#f3f8fe!important}
html body #app li.pl-row-1221.selected:not(#z1228){background-color:#eaf2fc!important}
@media(hover:hover){
  html body #app li.pl-row-1221:not(#z1228):hover{background-color:#f6f9fc!important}
  html body #app li.pl-row-1221.att-1226:not(#z1228):hover{background-color:#eaf3fc!important}
  html body #app li.pl-row-1221.selected:not(#z1228):hover{background-color:#e2edfa!important}
}
html body #app li.pl-row-1221:not(#z1228):has(> .pl-main-1221:focus-visible){background-color:#f0f6fc!important}
html body #app li.pl-row-1221:not(#z1228):has(> .pl-main-1221:active){background-color:#e6eff9!important}
/* Rounded list frames: the first / last row follow the frame's corners. */
html body #app ul.pl-list-1221 > li.pl-row-1221:first-child:not(#z1228){border-top-left-radius:inherit;border-top-right-radius:inherit}
html body #app ul.pl-list-1221 > li.pl-row-1221:last-child:not(#z1228){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}

/* ---------- §43 Reject dialogs: optional reason ---------- */
#modal-root .rj-field-1228L{display:block;margin:12px 0 4px}
#modal-root .rj-field-1228L > span{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:#3c5168}
#modal-root .rj-field-1228L textarea{width:100%;box-sizing:border-box;min-height:76px;resize:vertical;font:inherit;font-size:14px}
/* END RYU 1.2.28 LISTS CSS */
/* BEGIN RYU 1.2.28 ADMIN CSS */
/* RYU Portal 1.2.28 — Stream ADMIN CSS. CR items 6, 7/14, 8, 11, 12, 28, 37. */

/* §6 Admin Vouchers / Inventory (desktop): one "Last updated" column; Date added, Last modified and Last used hidden. */
@media (min-width:900px){
  html body table.vtable-1225 th.vold-date-1228A:not(#z1228),html body table.vtable-1225 td.vold-date-1228A:not(#z1228){display:none}
  html body table.vtable-1225 th.vupd-col-1228A:not(#z1228),html body table.vtable-1225 td.vupd-col-1228A:not(#z1228){white-space:nowrap;min-width:86px}
}
@media (max-width:899.98px){
  html body table.vtable-1225 .vupd-col-1228A:not(#z1228){display:none}
}

/* §7/§14 Nothing left of the activate controls (in case an older pass re-adds one). */
html body .vbulk-1225 .vbulk-menu-wrap-1225:not(#z1228),html body .va-1225:not(#z1228),html body .va-lock-1225:not(#z1228),html body .vb-inactive-1225:not(#z1228){display:none!important}

/* §8 Category popup. */
html body .cat-block-1228A p:not(#z1228){margin:0 0 4px;line-height:1.55}

/* §11 Email History (desktop): Type and Provider ID columns hidden (details popup keeps both). */
@media (min-width:900px){
  html body table.history-table-1210 th.eh-type-1228A:not(#z1228),html body table.history-table-1210 td.eh-type-1228A:not(#z1228),
  html body table.history-table-1210 th.eh-prov-1228A:not(#z1228),html body table.history-table-1210 td.eh-prov-1228A:not(#z1228){display:none}
}

/* §12 Settings: Send test email button exactly as tall as the email box beside it. */
html body .set-test-1221 .set-test-row-1221 .field input:not(#z1228){height:38px;min-height:38px;box-sizing:border-box}
html body .set-test-1221 .set-test-btn-1221 .btn:not(#z1228){height:38px;min-height:38px;max-height:38px;box-sizing:border-box;padding-top:0;padding-bottom:0}

/* §38 Voucher editor: without the quick picks the Validity box fills its field like the others. */
html body #ed-form-1220e .vd-row-1225s:not(#z1228){display:block}
html body #ed-form-1220e .vd-row-1225s .vd-input-1225s:not(#z1228){width:100%!important;max-width:none!important}
/* END RYU 1.2.28 ADMIN CSS */
/* BEGIN RYU 1.2.28 STORE CSS */
/* ========================================================================== */
/* RYU Portal 1.2.28 — Stream STORE (CSS).                                     */
/* CR items 19a (Recent scans Vouchers cell), 27 (refund-mode labels),         */
/* 31 (phone sticky tops on buyer Vouchers / Scan QR), 32 (My QR buttons),     */
/* 36 (gateway greyed on Checkout / Top up).                                   */
/* ========================================================================== */

/* ---------- 19a Recent scans (desktop table): up to three titles, then "+N more" ---------- */
html body .rs-table-b20 td.rs-vcell-1228s{white-space:normal}
.rs-vlist-1228s{display:flex;flex-direction:column;gap:2px;min-width:0}
.rs-vt-1228s{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.35;color:var(--ink,#0f2a44)}
html body .rs-vcell-b20 small.rs-vmore-1228s{display:block;max-width:none;color:#6b7c8f;font-size:12px;line-height:1.35}

/* ---------- 27 Buyer Vouchers, Refund mode: label on each greyed card ----------
   The card's content stays faded as before; the label on the photo is not. */
.wallet-voucher-grid-114 .voucher-card.wnr-on-1228s{position:relative}
html body .wallet-voucher-grid-114 .voucher-card.wallet-off-r19.wnr-on-1228s:not(#z1228){opacity:1;filter:none;border-color:#e6ebf0}
html body .wallet-voucher-grid-114 .voucher-card.wallet-off-r19.wnr-on-1228s:not(#z1228) > :not(.wnr-1228s){opacity:.42;filter:grayscale(.85);transition:opacity .15s}
.wnr-1228s{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;max-width:calc(100% - 20px);padding:4px 10px;border-radius:999px;background:#f3f5f8;border:1px solid #d5dde6;color:#4f6072;font-size:12px;font-weight:650;line-height:1.3;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 1px 2px rgba(15,42,68,.08)}

/* ---------- 31 Phone: sticky top areas (buyer Vouchers, buyer Scan QR) ----------
   Same pattern as the 1.2.26 list bar (.lt-bar-1222): CSS sticky at the fixed
   header's height variable, own compositing layer, no transitions. The middle piece
   (page head / Scan card) carries a page-coloured curtain that also fills the space
   up to the back link and down to the search bar, so nothing shows through gaps. */
@media (max-width:899.98px){
  html body .stk-1228s > a.dash-back-1222:not(#z1228){position:-webkit-sticky;position:sticky;top:var(--ryu-fixed-header-h,64px);z-index:42;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:none}
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1228),
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1228){
    position:-webkit-sticky;position:sticky;top:calc(var(--ryu-fixed-header-h,64px) + var(--stk-d1-1228s,37px));z-index:41;
    background-color:var(--bg,#fff)!important;box-shadow:0 0 0 var(--stk-sp-1228s,64px) var(--bg,#fff)!important;
    -webkit-clip-path:inset(calc(-1 * var(--stk-d1-1228s,37px)) -16px calc(-1 * var(--stk-dn-1228s,10px)) -16px);
    clip-path:inset(calc(-1 * var(--stk-d1-1228s,37px)) -16px calc(-1 * var(--stk-dn-1228s,10px)) -16px);
    -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:none}
  html body .stk-wallet-1228s > .lt-bar-1222:not(#z1228){top:calc(var(--ryu-fixed-header-h,64px) + var(--stk-d2-1228s,85px))!important}
  /* One synchronous read of the natural positions (never painted). */
  html body .stk-1228s.stk-measure-1228s > :is(a.dash-back-1222,.lt-bar-1222):not(#z1228):not(#y1228),
  html body .stk-wallet-1228s.stk-measure-1228s > .page-head.wallet-head-1222:not(#z1228):not(#y1228),
  html body .stk-scan-1228s.stk-measure-1228s > .buyer-scan-card-r19:not(#z1228):not(#y1228){position:relative!important;top:0!important}
  html:has(.stk-scan-1228s){overscroll-behavior-y:none}
}

/* ---------- 32 Merchant My QR: Scan buyer QR + Back to dashboard, same size, ~17 px labels ---------- */
html body .mq-wrap-1228s > :is(.mq-scan-b20,.mq-back-1228s):not(#z1228):not(#y1228){width:100%!important;min-height:52px!important;height:52px!important;font-size:17px!important;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;border-radius:10px;text-decoration:none}
html body .mq-wrap-1228s > :is(.mq-scan-b20,.mq-back-1228s):not(#z1228):not(#y1228) > span{font-size:17px!important;line-height:1.2}
html body .mq-wrap-1228s > :is(.mq-scan-b20,.mq-back-1228s):not(#z1228):not(#y1228) > svg{width:20px;height:20px;flex:none}
html body .mq-wrap-1228s > .mq-back-1228s:not(#z1228){margin-top:12px}

/* ---------- 36 Online payment gateway: greyed like an unavailable Cash / Bank transfer ---------- */
html body .pm-btn-b20.pm-gw-off-1228s:not(#z1228){opacity:.6;cursor:not-allowed;background:#fff;border-color:#d6e1ec;box-shadow:none}
html body .pm-btn-b20.pm-gw-off-1228s:not(#z1228):hover{background:#fff;border-color:#d6e1ec}
html body .pm-btn-b20.pm-gw-off-1228s:not(#z1228) .pm-ic-b20{background:#f3f4f6;color:#8796a5}
html body .pm-btn-b20.pm-gw-off-1228s:not(#z1228) .pm-txt-b20 strong{color:#6b7c8f}
html body .pm-btn-b20.pm-gw-off-1228s:not(#z1228) .pm-dot-b20{border-color:#c9d3dd;background:#f5f7f9}

/* ---------- 41 Phone public voucher cards (Store, category, merchant pages):
   no "Valid for N days from purchase" line (the voucher page keeps it);
   voucher and merchant names a little larger. Desktop unchanged. ---------- */
@media (max-width:899.98px){
  html body.pubcards-1228s #app .voucher-card:not(.wallet-voucher-card-113) .vc-valid-1225s:not(#z1228){display:none!important}
  html body.pubcards-1228s #app .voucher-card:not(.wallet-voucher-card-113) .voucher-title:not(#z1228){font-size:17px!important;line-height:1.3!important}
  html body.pubcards-1228s #app .voucher-card:not(.wallet-voucher-card-113) .voucher-merchant-link-card:not(#z1228){font-size:13px!important}
}

/* ---------- 42 Phone Store / Merchants: only the search box stays under the fixed
   header (sticky at var(--ryu-fixed-header-h), like the list bar). The filter form's
   own box is dissolved (display: contents) so the search box sticks within the page;
   category and sort selectors keep their layout and scroll away. ---------- */
@media (max-width:899.98px){
  html body.pubbar-1228s form.pubbar-form-1228s:not(#z1228){display:contents!important}
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1228){
    position:-webkit-sticky!important;position:sticky!important;top:calc(var(--ryu-fixed-header-h,64px) + 8px)!important;z-index:40;
    margin:0 0 10px!important;background-color:var(--bg,#fff)!important;box-shadow:0 0 0 24px var(--bg,#fff)!important;border-radius:0;
    -webkit-clip-path:inset(-8px -16px -8px -16px);clip-path:inset(-8px -16px -8px -16px);
    -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:none}
  html body.pubbar-1228s form.pubbar-form-1228s > select:not(#z1228){display:block;box-sizing:border-box;margin:0 0 10px!important}
  html body.pubbar-1228s form.pubbar-form-1228s > select:nth-of-type(1):not(#z1228){width:100%!important}
  html body.pubbar-1228s form.pubbar-form-1228s > select:nth-of-type(2):not(#z1228){float:left;width:calc(100% - 145px)!important;margin-bottom:18px!important}
  html body.pubbar-1228s form.pubbar-form-1228s > select:nth-of-type(3):not(#z1228){float:right;width:135px!important;margin-bottom:18px!important}
  html body.pubbar-1228s form#merchant-filter.pubbar-form-1228s > select:is(:nth-of-type(2),:nth-of-type(3)):not(#z1228):not(#y1228){width:calc(50% - 5px)!important}
  html body.pubbar-1228s form.pubbar-form-1228s ~ :is(#store-grid,#merchant-grid,div,section):not(#z1228){clear:both}
  html:has(body.pubbar-1228s){overscroll-behavior-y:none}
}
/* END RYU 1.2.28 STORE CSS */
/* BEGIN RYU 1.2.29 MAIN CSS */
/* RYU Portal 1.2.29 — items 2, 3, 5, 6, 7, 8, 9, 12 (see the JS layer header). */

/* ---------- 2 Desktop: row action icons as on Accounts (32 px buttons, 7 px apart) ---------- */
@media (min-width:900px){
  html body #app table.vtable-1225 td.actions-col-126 .icon-actions-110:not(#z1229){gap:7px!important}
  html body #app table.vtable-1225 td.actions-col-126 .icon-actions-110 .icon-btn-110:not(#z1229),
  html body #app table.vtable-1225 td.actions-col-126 .icon-actions-110 .sys-lock-1223 .icon-btn-110:not(#z1229){width:32px!important;min-width:32px!important;height:32px!important}
  html body #app table.po-table-1221 td.actions-col-126 .icon-actions-110:not(#z1229){gap:7px!important}
}

/* ---------- 3 Requests desktop: no voucher photo; Merchant column wider ---------- */
@media (min-width:900px){
  html body #app table.requests-table-126 :is(th,td).photo-col-1220:not(#z1229),
  html body #app table.requests-table-126 td .req-photo-1221:not(#z1229){display:none!important}
}
@media (min-width:1280px){
  html body #app table.requests-table-126.requests-table-126.requests-table-126 th.request-merchant-col-1220:not(#z1229),
  html body #app table.requests-table-126.requests-table-126.requests-table-126 td.request-merchant-col-1220:not(#z1229){min-width:220px!important}
}
@media (min-width:1360px){
  html body #app table.requests-table-126.requests-table-126.requests-table-126 th.request-merchant-col-1220:not(#z1229),
  html body #app table.requests-table-126.requests-table-126.requests-table-126 td.request-merchant-col-1220:not(#z1229){min-width:290px!important}
}

/* ---------- 5 Phone: the back link's 44 px tap area ends above the page heading ---------- */
@media (max-width:899.98px){
  html body #app :is(.dash-back-1222,.ed-back-1220e,.page-back-1221):not(#z1229):not(button){margin-bottom:8px!important}
  html body #app :is(.back-store-link,.voucher-back-row > a,.po-back-b20):not(#z1229){margin-bottom:-4px!important}
}

/* ---------- 6 Requests phone: line 1 subject | amount, line 2 status | date, line 3 name ---------- */
@media (max-width:899.98px){
  html body #app .rq-row-1228L .tx-row-l2-1220:not(#z1229){display:flex!important;align-items:baseline!important;justify-content:flex-start!important;column-gap:8px!important;row-gap:1px!important;flex-wrap:wrap!important}
  html body #app .rq-row-1228L .l2-left-1222:not(#z1229){flex:0 0 auto!important;display:inline-flex!important;align-items:baseline!important;order:0}
  html body #app .rq-row-1228L .l2-rt-1228L:not(#z1229){display:contents!important}
  html body #app .rq-row-1228L .l2-date-1222:not(#z1229){flex:0 0 auto!important;margin-left:auto!important;text-align:right!important;white-space:nowrap!important;order:1}
  html body #app .rq-row-1228L .l2-who-1228L:not(#z1229){flex:0 0 100%!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#5b6b7c!important;font-weight:600!important;font-size:12px!important;order:2}
}

/* ---------- 7 Email History (own emails: buyer / merchant): no recipient ---------- */
html body.eh-own-1229 #app :is(th,td).eh-rcpt-1229:not(#z1229){display:none!important}
@media (max-width:899.98px){
  html body.eh-own-1229 #app .pl-row-1221 .tx-row-l2-1220 > .l2-left-1222:not(#z1229){display:none!important}
  html body.eh-own-1229 #app .pl-row-1221 .tx-row-l2-1220 > .l2-date-1222:not(#z1229){margin-left:0!important;text-align:left!important}
}

/* ---------- 8 Buyer phone Recent scans: badge only when a scan failed ---------- */
@media (max-width:899.98px){
  html body.rs-buyer-1229 #app .rs-badge-b20.ok:not(#z1229){display:none!important}
}

/* ---------- 9 Voucher cards in public listings: no "Valid for N days from purchase" ---------- */
html body #app .vc-valid-1225s:not(#z1229){display:none!important}

/* ---------- 12 The Store dashboard tile is for phones only ---------- */
@media (min-width:900px){
  html body #app a.dtile-1221[href="#/store"]:not(#z1229){display:none!important}
}
/* END RYU 1.2.29 MAIN CSS */
/* BEGIN RYU 1.2.30 MAIN CSS */
/* RYU Portal 1.2.30 — layout for items 1, 5–9, 11, 12, 14, 17, 18, 20–22 (see the JS layer header). */

/* ---------- 1 Phone dashboard: Diagnostics tile hidden (Store replaces it) ---------- */
@media (max-width:899.98px){
  html body #app [data-dash-diag-1222]:not(#z1230),html body #app .dtile-1221[data-dash-diag-1222]:not(#z1230){display:none!important}
}

/* ---------- 5 Desktop: every list's Actions column — 32 px buttons, 18 px icons, 7 px apart ---------- */
@media (min-width:900px){
  html body #app table td.actions-col-126 .icon-actions-110:not(#z1230){display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;flex-wrap:nowrap!important;margin-left:0!important}
  html body #app table td.actions-col-126 .icon-actions-110 .icon-btn-110:not(#z1230),
  html body #app table td.actions-col-126 .icon-actions-110 .sys-lock-1223 .icon-btn-110:not(#z1230){width:32px!important;min-width:32px!important;height:32px!important;padding:0!important;display:inline-grid!important;place-items:center!important}
  html body #app table td.actions-col-126 .icon-actions-110 .icon-btn-110 svg:not(#z1230){width:18px!important;height:18px!important}
  html body #app table th.actions-col-126:not(#z1230){min-width:0!important}
}

/* ---------- 8 / 24 Square icons: approve keeps its blue-green, reject its red ---------- */
html body .icon-btn-110 svg.sq-approve-1230:not(#z1230){color:#1b7a5a}
html body .icon-btn-110.danger-icon-110 svg.sq-reject-1230:not(#z1230),html body .icon-btn-110 svg.sq-reject-1230:not(#z1230){color:#c0392b}

/* ---------- 6 / 7 New date columns ---------- */
@media (min-width:900px){
  html body #app table :is(th,td).vlu-col-1230:not(#z1230),html body #app table :is(th,td).rq-created-1230:not(#z1230){white-space:nowrap!important}
  html body #app table.vtable-1225 :is(th,td).vlu-col-1230:not(#z1230){display:table-cell!important}
  html body #app table td.vlu-col-1230 small,html body #app table td.rq-created-1230 small{font-size:11px}
}
@media (max-width:899.98px){
  html body #app table :is(th,td).vlu-col-1230:not(#z1230),html body #app table :is(th,td).rq-created-1230:not(#z1230){display:none}
}

/* ---------- 9 Request details popup: Approve / Reject ---------- */
html body .dpd-acts-1230:not(#z1230){display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px 20px;border-top:1px solid #e6edf4;margin-top:4px}
html body .dpd-acts-1230 .btn:not(#z1230){display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 18px;border-radius:10px;font-weight:750}
html body .dpd-acts-1230 .btn svg{width:18px;height:18px}
html body .dpd-acts-1230 .dpd-rej-1230:not(#z1230){background:#fdecec!important;color:#a3232e!important;border:1px solid #f4c9cc!important}
html body .dpd-acts-1230 .dpd-rej-1230:not(#z1230):hover{background:#fbdcdc!important}
html body .dpd-acts-1230 .dpd-ok-1230 svg{color:#fff!important}
html body .dpd-acts-1230 .dpd-rej-1230 svg{color:#a3232e!important}
html body .modal:has(.dpd-acts-1230) .form-actions:has(> [data-action="close-modal"]:only-child),
html body .modal:has(.dpd-acts-1230) .modal-back-bar-1219{display:none!important}

/* ---------- 11 Top up: amount box beside the preset amounts ---------- */
html body .tu-row-1230:not(#z1230){display:flex;align-items:flex-end;gap:12px;flex-wrap:nowrap;margin:16px 0 4px}
html body .tu-row-1230 > label.topup-amount-b20:not(#z1230){flex:0 0 150px;width:150px;margin:0!important}
html body .tu-row-1230 > label.topup-amount-b20 .yen-input-b20{width:100%}
html body .tu-row-1230 > .topup-chips-b20:not(#z1230){flex:1 1 auto;display:flex;flex-wrap:wrap;gap:8px;margin:0!important;align-items:center}
@media (max-width:899.98px){
  html body .tu-row-1230:not(#z1230){align-items:flex-end;gap:10px}
  html body .tu-row-1230 > label.topup-amount-b20:not(#z1230){flex:0 0 132px;width:132px}
  html body .tu-row-1230 > .topup-chips-b20:not(#z1230){display:grid;grid-template-columns:1fr 1fr;gap:6px}
  html body .tu-row-1230 > .topup-chips-b20 .chip-b20:not(#z1230){width:100%;min-width:0;padding-left:4px;padding-right:4px;justify-content:center;text-align:center}
}

/* ---------- 12 Balance figure: smaller, slate ---------- */
html body #app .tu-head-1222 .tu-amt-1222:not(#z1230){font-size:18px!important;font-weight:650!important;color:#3d5a75!important;letter-spacing:0}
html body #app .tu-head-1222 .tu-exp-1222 strong:not(#z1230){font-size:15px!important;font-weight:600!important;color:#3d5a75!important}
html body #app .tu-head-1222 .tu-exp-1222 span:not(#z1230){font-size:12px!important}

/* ---------- 14 Email History (own, phone): start of the message on line 2 ---------- */
@media (max-width:899.98px){
  html body.eh-own-1229 #app .pl-row-1221 .tx-row-l2-1220 > .l2-left-1222.eh-snip-1230:not(#z1230):not(#y1230){display:block!important;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5b6b7c;font-size:12px;margin-right:8px}
  html body.eh-own-1229 #app .pl-row-1221 .tx-row-l2-1220:has(> .eh-snip-1230) > .l2-date-1222:not(#z1230):not(#y1230){margin-left:auto!important;text-align:right!important;flex:0 0 auto}
}

/* ---------- 17 Request refund ---------- */
html body form.rf-1230 .refund-items-116:not(#z1230){border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}
html body form.rf-1230 .refund-group-r19:not(#z1230){padding:14px 0 16px!important;border:0!important;border-bottom:1px solid #e8eef4!important;margin:0!important;background:transparent!important}
html body form.rf-1230 .refund-group-r19:last-child:not(#z1230){border-bottom:0!important}
html body form.rf-1230 .rf-head-1227s:not(#z1230){margin-bottom:6px}
html body form.rf-1230 .rf-line-1227s:not(#z1230){display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;column-gap:10px;row-gap:2px;align-items:baseline;margin:0 0 10px}
html body form.rf-1230 .rf-line-1227s .rf-name-1227s:not(#z1230){white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
html body form.rf-1230 .rf-line-1227s .rf-bought-1230{grid-column:1/-1;font-size:12px;color:#6b7c8d;font-weight:500}
html body form.rf-1230 label.refund-amt-r19:not(#z1230){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:4px 0 0!important}
html body form.rf-1230 label.refund-amt-r19 > .rf-lab-1230{flex:1 1 auto;min-width:0;font-weight:650;color:#3d5a75;font-size:13px}
html body form.rf-1230 label.refund-amt-r19 > input:not(#z1230){flex:0 0 120px!important;width:120px!important;margin-left:auto!important;text-align:right!important}
html body form.rf-1230 [data-refund-summary-r19]:not(#z1230){margin:14px 0 4px!important}

/* ---------- 18 Phone rows without a second line: title centred against icon and amount ---------- */
@media (max-width:899.98px){
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty):not(#z1230){display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t a" "t d";column-gap:8px;align-items:center}
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) > .tx-row-l1-1220:not(#z1230),
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) > .tx-row-l2-1220:not(#z1230){display:contents!important}
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) .tx-row-title-1220:not(#z1230){grid-area:t;align-self:center}
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) .tx-row-l1-1220 > :not(.tx-row-title-1220):not(#z1230){grid-area:a;justify-self:end}
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) .l2-left-1222:not(#z1230){display:none!important}
  html body #app .tx-row-main-1220:has(> .tx-row-l2-1220 > .l2-left-1222:empty) .l2-date-1222:not(#z1230){grid-area:d;justify-self:end;margin:0!important}
}

/* ---------- 20 / 21 Merchant profile helper texts hidden ---------- */
html body #app :is(.mp-lead-1223s,.pi-lead-1225s,.pi-hint-1225s,.nm-hint-1225s):not(#z1230){display:none!important}

/* ---------- 22 Workspace dropdown ---------- */
html body select.wsd-native-1230:not(#z1230){position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;margin:0!important;padding:0!important;border:0!important}
html body .wsd-1230{position:relative;width:100%}
html body .wsd-btn-1230:not(#z1230){display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 12px;border:1px solid #cfdbe8;border-radius:10px;background:#f4f8fc;color:#173d63;font:inherit;font-size:13px;font-weight:750;cursor:pointer;text-align:left;box-sizing:border-box}
html body .wsd-btn-1230:hover,html body .wsd-1230.open .wsd-btn-1230{background:#eaf2fa;border-color:#b9cde2}
html body .wsd-btn-1230:focus-visible,html body .wsd-opt-1230:focus-visible{outline:2px solid #2d638f;outline-offset:2px}
html body .wsd-btn-1230 .wsd-cur-1230{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .wsd-1230 .wsd-ico-1230{width:18px;height:18px;flex:0 0 18px;color:#2d638f}
html body .wsd-chev-1230{display:inline-flex;width:16px;height:16px;color:#5b7590;transition:transform .15s}
html body .wsd-chev-1230 svg{width:16px;height:16px}
html body .wsd-1230.open .wsd-chev-1230{transform:rotate(180deg)}
html body .wsd-list-1230:not(#z1230){position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:400;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #d7e2ec;border-radius:12px;box-shadow:0 12px 32px rgba(18,42,71,.16),0 2px 6px rgba(18,42,71,.08)}
html body .wsd-1230.up .wsd-list-1230:not(#z1230){top:auto;bottom:calc(100% + 6px)}
html body .wsd-list-1230[hidden]{display:none!important}
html body .wsd-opt-1230:not(#z1230){display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:8px;color:#173d63;font-size:13.5px;font-weight:650;cursor:pointer;outline:none}
html body .wsd-opt-1230:hover,html body .wsd-opt-1230:focus{background:#f1f6fb}
html body .wsd-opt-1230.on:not(#z1230){background:#e3eef9;color:#123a62;font-weight:750}
html body .wsd-opt-1230 > span:not(.wsd-tick-1230){flex:1 1 auto}
html body .wsd-tick-1230{display:inline-flex;width:18px;height:18px;color:#1d6fd8}
html body .wsd-tick-1230 svg{width:18px;height:18px}
@media (max-width:899.98px){
  html body .wsd-btn-1230:not(#z1230){min-height:48px;font-size:15px;padding:0 14px}
  html body .wsd-opt-1230:not(#z1230){min-height:48px;font-size:15px;padding:0 12px}
  html body .wsd-1230 .wsd-ico-1230{width:20px;height:20px;flex-basis:20px}
}

/* ---------- Phone merchant page hero: the grid column may shrink to the screen
   (wide fonts pushed it 19 px past a 320 px screen); its rows wrap instead. ---------- */
@media (max-width:899.98px){
  html body #app section.merchant-store-hero:not(#z1230){grid-template-columns:minmax(0,1fr)!important}
  html body #app section.merchant-store-hero > :is(.merchant-store-copy,.merchant-store-photo):not(#z1230){min-width:0!important;max-width:100%!important}
  html body #app section.merchant-store-hero .merchant-heading-line:not(#z1230),
  html body #app section.merchant-store-hero .merchant-hero-action-row:not(#z1230){flex-wrap:wrap!important;min-width:0!important}
  html body #app section.merchant-store-hero :is(h1,p):not(#z1230){overflow-wrap:anywhere;min-width:0}
}
/* END RYU 1.2.30 MAIN CSS */
/* BEGIN RYU 1.2.31 MAIN CSS */
/* RYU Portal 1.2.31 — whole-card click target; merchant card description clamp. */
html body #app :is(article.merchant-card,article.voucher-card):not(#z1231){cursor:pointer}
html body #app .wallet-voucher-grid-114:is(.selection-mode,.selection-mode-122) article.voucher-card:not(#z1231){cursor:default}
/* Merchant card description: exactly two lines with an ellipsis (no half-cut third line). */
html body #app article.merchant-card .merchant-description:not(#z1231){display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2;overflow:hidden!important;line-height:1.45!important;height:2.9em!important;min-height:2.9em!important;max-height:2.9em!important;flex:0 0 auto!important}
/* END RYU 1.2.31 MAIN CSS */
/* BEGIN RYU 1.2.32 MAIN CSS */
/* RYU Portal 1.2.32 — phones, public pages: no smooth (animated) page scrolling. */
@media (max-width:899.98px){
  html[data-pub-1232]:not(#z1232){scroll-behavior:auto!important}
}
/* END RYU 1.2.32 MAIN CSS */
/* BEGIN RYU 1.2.33 MAIN CSS */

/* END RYU 1.2.33 MAIN CSS */
/* BEGIN RYU 1.2.34 MAIN CSS */
/* RYU Portal 1.2.34 — CR-1.2.34 (see the JS layer header). */

/* ---------- N2 / N3 Phone top bar: one menu per view ---------- */
@media (max-width:899.98px){
  html .app-header .header-actions #cart-link:not(#z1234){order:1!important}
  html .app-header .header-actions #mobile-menu-button:not(#z1234){order:2!important}
  html .app-header .header-actions #auth-slot:not(#z1234){order:2!important}
  /* signed-in view: no ☰ */
  html[data-pview-1234="acct"].signed-in-1225 .app-header #mobile-menu-button:not(#z1234),
  html[data-pview-1234="acct"].signed-in-1225 #mobile-menu:not(#z1234){display:none!important}
  /* public view while signed in: no profile icon / menu */
  html[data-pview-1234="pub"].signed-in-1225 .app-header #auth-slot:not(#z1234){display:none!important}
  /* the cart icon carries its own count badge in both views */
  html .app-header #cart-link .cart-badge:not([hidden]):not(#z1234){display:inline-grid!important}
  html #mobile-menu .mm-count-1234:not(#z1234){font-weight:600;color:#5b6b7c}
}

/* ---------- N3 / O6 Phone profile menu: one inset (17 px) for balances, switcher and rows ---------- */
@media (max-width:899.98px){
  html body .account-popover-1218 .pb-desk-1234:not(#z1234){display:none!important}
  html body .account-popover-1218 .pb-none-1234:not(#z1234){display:none!important}
  html body .account-popover-1218 .pop-identity-1218 .role-desk-1234:not(#z1234){display:none!important}
  html body .account-popover-1218 .pop-mobile-nav-1218 .acting-as-118:not(#z1234){padding:2px 6px 8px!important}
  html body .account-popover-1218 .pop-mobile-nav-1218 nav a:not(#z1234){margin:0 6px!important;width:calc(100% - 12px)!important;box-sizing:border-box!important;min-height:40px!important;display:flex!important;align-items:center!important}
  html body .account-popover-1218 .pop-link-1218:not(#z1234){margin:0 6px!important;min-height:40px!important;width:calc(100% - 12px)!important;box-sizing:border-box!important}
  html body .account-popover-1218 a.pop-link-1218[href="#/profile"]:not(#z1234),
  html body .account-popover-1218 .account-popover-divider-1211:not(#z1234){display:none!important}
  /* N4 neater workspace switcher: ~40 px closed, 14 px text, 44 px rows when open */
  html body .account-popover-1218 .wsd-btn-1230:not(#z1234){min-height:40px!important;height:40px!important;font-size:14px!important;padding-top:0!important;padding-bottom:0!important;border-radius:10px!important}
  html body .account-popover-1218 .wsd-btn-1230 .wsd-cur-1230:not(#z1234){font-size:14px!important}
  html body .account-popover-1218 .wsd-btn-1230 .wsd-ico-1230:not(#z1234){width:18px!important;height:18px!important}
  html body .account-popover-1218 .wsd-opt-1230:not(#z1234){min-height:44px!important;font-size:14px!important}
}
@media (min-width:900px){
  html body .account-popover-1218 .pb-phone-1234:not(#z1234),
  html body .account-popover-1218 .pop-identity-1218 .role-phone-1234:not(#z1234){display:none!important}
  /* O5 Desktop: Profile / Logout rows use the balance boxes' inset */
  html body .account-popover-1218 .pop-link-1218:not(#z1234){margin-left:6px!important;margin-right:6px!important;width:calc(100% - 12px)!important;box-sizing:border-box!important}
}

/* ---------- O1 Popups with action buttons: × only (no Close / Back button) ---------- */
html body .dpd-acts-1230 > [data-action="close-modal"]:not(#z1234){display:none!important}
@media (min-width:900px){
  html body .modal:has([data-payout-withdraw-1223]) .form-actions > [data-action="close-modal"]:not(#z1234){display:none!important}
  /* O2 Reject / Approve end at the table's right edge (24 px side margin) */
  html body .dpd-acts-1230:not(#z1234){padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important}
}
/* ---------- O3 Phone request details: one page, Reject + Approve side by side ---------- */
@media (max-width:899.98px){
  html body .dpd-acts-1230:not(#z1234){display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px))!important;margin:8px 0 0!important}
  html body .dpd-acts-1230 .btn:not(#z1234){width:100%!important;justify-content:center!important;min-height:46px!important;padding:0 10px!important;white-space:normal!important;line-height:1.2!important;text-align:center}
  /* O4 Merchant My QR: no "Back to dashboard" button on phones (the ← Dashboard link stays) */
  html body #app .mq-back-1228s:not(#z1234){display:none!important}
}

/* ---------- R1 Request payout form as wide as the first two tiles (desktop) ---------- */
@media (min-width:900px){
  html body #app #payout-form-b20:not(#z1234){max-width:calc((100% - 24px) * 2 / 3 + 12px)!important;width:100%!important}
  html body #app #payout-form-b20 :is(.yen-input-b20,textarea,input):not(#z1234){max-width:none!important;width:100%!important;box-sizing:border-box!important}
}
/* R2 "N pending requests": 12 px, regular, grey-violet */
html body #app .po-stat-b20.pend small:not(#z1234),
html body #app .po-stat-b20.pend small *:not(#z1234){font-size:12px!important;font-weight:400!important;color:#6b5b95!important}
/* R3 the Pending payouts tile is a link */
html body #app .po-stat-b20.po-link-1234:not(#z1234){cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease,border-color .12s ease}
html body #app .po-stat-b20.po-link-1234:not(#z1234):hover{box-shadow:0 4px 14px rgba(70,50,130,.12);border-color:#cbbfe6}
html body #app .po-stat-b20.po-link-1234:not(#z1234):focus-visible{outline:2px solid #6b5b95;outline-offset:2px}
/* R5 Requests heading counts */
html body #app .rq-head-1234:not(#z1234){display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px}
html body #app .rq-counts-1234:not(#z1234){color:#7a8796;font-size:14px;font-weight:500;letter-spacing:0;white-space:nowrap}
@media (max-width:899.98px){html body #app .rq-counts-1234:not(#z1234){font-size:12.5px;white-space:normal}}

/* ---------- A1 Audit Log: diagnostics icon button left of Export ---------- */
html body #app .toolbar-export-121.has-diag-1234:not(#z1234){display:inline-flex;align-items:center;gap:8px}
html body #app .diagnostics-bar-1218:not(#z1234){display:none!important}

/* ---------- A2 Take Photo / Choose Photo; camera view ---------- */
html body #app .avatar-editor-122 :is(.av-take-1234,.av-choose-1234):not(#z1234){display:inline-flex!important;align-items:center;gap:7px}
html body #app .avatar-editor-122 :is(.av-take-1234,.av-choose-1234) .ico-1220{width:18px;height:18px;flex:none}
html body .cam-modal-1234 .cam-1234{display:flex;flex-direction:column;gap:14px;padding:0 20px 20px}
html body .cam-modal-1234 .cam-view-1234{position:relative;width:100%;max-width:420px;margin:0 auto;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#0f1722}
html body .cam-modal-1234 .cam-view-1234 video{width:100%;height:100%;object-fit:cover;display:block}
html body .cam-modal-1234 .cam-view-1234 video.mirror-1234{transform:scaleX(-1)}
html body .cam-modal-1234 .cam-acts-1234{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;max-width:420px;width:100%;margin:0 auto}
html body .cam-modal-1234 .cam-cancel-1234{justify-self:start;min-height:44px}
html body .cam-modal-1234 .cam-switch-1234{justify-self:end;width:48px;height:48px;padding:0;display:inline-grid;place-items:center;border-radius:999px}
html body .cam-modal-1234 .cam-switch-1234[hidden]{display:none!important}
html body .cam-modal-1234 .cam-switch-1234 .ico-1220{width:22px;height:22px}
html body .cam-modal-1234 .cam-shutter-1234{width:68px;height:68px;border-radius:999px;border:4px solid #173b63;background:#fff;padding:5px;cursor:pointer}
html body .cam-modal-1234 .cam-shutter-1234 span{display:block;width:100%;height:100%;border-radius:999px;background:#d92d3a}
html body .cam-modal-1234 .cam-shutter-1234:active span{background:#b61f2b}

/* ---------- A3 clickable Public URL ---------- */
html body #app a.slug-link-1234:not(#z1234){text-decoration:none;color:inherit}
html body #app a.slug-link-1234 code:not(#z1234){color:#1f5fa8;text-decoration:underline;text-decoration-color:rgba(31,95,168,.35);text-underline-offset:3px;cursor:pointer}
html body #app a.slug-link-1234:hover code:not(#z1234){text-decoration-color:#1f5fa8}

/* ---------- A4 Phone photo editors: the photo is as wide as its button row ---------- */
@media (max-width:899.98px){
  html body #app .photo-frame-1220e:not(#z1234){max-width:none!important;width:100%!important;aspect-ratio:3/2;box-sizing:border-box}
  html body #app :has(> .photo-frame-1220e):not(#z1234){max-width:none!important}
}

/* ---------- A5 Editor buttons: Save primary blue + tick; Cancel quiet light + ✕ ---------- */
html body .btn.btn-save-1234:not(#z1234){background:#1f63b5!important;background-image:none!important;border:1px solid #1f63b5!important;color:#fff!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px}
html body .btn.btn-save-1234:not(#z1234):hover{background:#18559d!important;border-color:#18559d!important}
html body .btn.btn-save-1234:not(#z1234):disabled,html body .btn.btn-save-1234[aria-disabled="true"]:not(#z1234){opacity:.55!important;cursor:not-allowed}
html body .btn.btn-cancel-1234:not(#z1234){background:#eef2f6!important;background-image:none!important;border:1px solid #dbe3ec!important;color:#2a3a4d!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px}
html body .btn.btn-cancel-1234:not(#z1234):hover{background:#e3e9f0!important}
html body .btn :is(.bi-1234):not(#z1234){width:16px;height:16px;flex:none}
html body .btn.btn-save-1234 svg:not(#z1234){color:#fff!important;stroke:currentColor}

/* ---------- A6 / A7 Phone back links: whole pill visible, sticky under the top bar ---------- */
@media (max-width:899.98px){
  html body #app :is(.dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,.ed-back-1220e,.page-back-1221):not(#z1234):not(button){
    margin-left:0!important;padding-left:8px!important;background-color:var(--bg,#fff)}
  html body #app .dash-back-center-1222 > .dash-back-1222:not(#z1234){margin-left:auto!important}
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e):not(#z1234):not(button):not(.stk-1228s > *),
  html body #app .voucher-back-row:not(#z1234){
    position:-webkit-sticky!important;position:sticky!important;top:var(--ryu-fixed-header-h,64px)!important;z-index:39!important;
    box-shadow:0 0 0 100vmax var(--bg,#fff)!important;-webkit-clip-path:inset(0 -100vmax);clip-path:inset(0 -100vmax);
    -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:none!important}
  html body #app .voucher-back-row:not(#z1234){background:var(--bg,#fff)}
  html body #app .voucher-back-row > a:not(#z1234){box-shadow:none!important}
  /* list pages: the fixed search / View options bar sits directly under the back link */
  html body #app .content-column:has(> :is(.dash-back-1222,.back-store-link,.po-back-b20)):not(.stk-1228s) .lt-bar-1222:not(#z1234){top:calc(var(--ryu-fixed-header-h,64px) + 44px)!important}
}

/* ---------- A8 Phone public sort: narrower sort, wider direction ---------- */
@media (max-width:899.98px){
  html body #app :is(.browse-toolbar,:has(> .browse-toolbar)):has(select[name="sort"]):has(select[name="dir"]):not(#z1234){grid-template-columns:var(--sortw-1234,minmax(0,1fr)) var(--dirw-1234,minmax(0,1fr))!important}
  html body #app .browse-toolbar select[name="sort"]:not(#z1234){grid-column:1!important;min-width:0!important}
  html body #app .browse-toolbar select[name="dir"]:not(#z1234){grid-column:2!important;min-width:0!important}
}

/* ---------- A9 Empty cart: square icon-only light red ---------- */
html body #app .cart-empty-1234:not(#z1234){width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:inline-grid!important;place-items:center;background:#fdecec!important;border:1px solid #f4c9cc!important;color:#a3232e!important;flex:none}
html body #app .cart-empty-1234:not(#z1234):hover{background:#fbdcdc!important}
html body #app .cart-empty-1234 .ico-1220:not(#z1234){width:22px;height:22px;color:#a3232e}

/* ---------- A10 empty hint lines are not shown ---------- */
html body .pm-txt-b20 small:empty:not(#z1234){display:none!important}

/* ---------- A12 No "Ask a question" icon on public pages ---------- */
html body #app :is(a.merchant-chat-link,a[href^="#/contact?merchant="]):not(#z1234){display:none!important}

/* ---------- A13 Voucher editors: no Reference value field ---------- */
html body [data-field-1220e="fixedValueCents"]:not(#z1234){display:none!important}

/* ---------- P1 numbered pagers ---------- */
html body .np-1234:not(#z1234){display:flex!important;flex-direction:column;align-items:center;gap:4px;margin:12px 0 4px}
html body .np-1234 .np-row-1234:not(#z1234){display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:4px;max-width:100%}
html body .np-1234 :is(.np-btn-1234,.np-cur-1234,.np-ell-1234):not(#z1234){min-width:34px;height:34px;padding:0 6px;box-sizing:border-box;display:inline-grid;place-items:center;font-size:14px}
html body .np-1234 button.np-btn-1234:disabled:not(#z1234){opacity:.4;cursor:default}
html body .np-1234 .np-range-1234:not(#z1234){font-size:12px;color:#6b7a8c}
@media (max-width:359.98px){html body .np-1234 :is(.np-btn-1234,.np-cur-1234,.np-ell-1234):not(#z1234){min-width:29px;height:32px;padding:0 3px;font-size:13px}html body .np-1234 .np-row-1234:not(#z1234){gap:2px}}

/* ---------- E1 provider reply in Email History details ---------- */
html body .eh-resp-1234:not(#z1234){margin:14px 0 4px}
html body .eh-resp-1234 h3:not(#z1234){font-size:13px;font-weight:700;color:#4b5b6d;margin:0 0 6px;text-transform:none}
html body .eh-resp-1234 pre:not(#z1234){margin:0;padding:10px 12px;border-radius:10px;background:#f4f7fa;border:1px solid #e1e8ef;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;color:#1f2a44}
html body .eh-resp-1234.failed pre:not(#z1234){background:#fdf3f3;border-color:#f3d0d3}
@media (max-width:899.98px){
  html body #app .browse-toolbar select:is([name="sort"],[name="dir"],[name="category"]):not(#z1234):not(#y1234){-webkit-appearance:none!important;appearance:none!important;padding-left:12px!important;padding-right:30px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173b63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-size:16px 16px!important;background-position:right 10px center!important;text-overflow:ellipsis}
}
@media (max-width:359.98px){
  html body #app .browse-toolbar select:is([name="sort"],[name="dir"]):not(#z1234):not(#y1234):not(#x1234){padding-left:10px!important;padding-right:26px!important;background-position:right 8px center!important}
}
@media (max-width:899.98px){
  html body.pubbar-1228s form.pubbar-form-1228s > select[name="sort"]:not(#z1234):not(#y1234):not(#x1234){width:var(--sortw-1234,calc(50% - 5px))!important}
  html body.pubbar-1228s form.pubbar-form-1228s > select[name="dir"]:not(#z1234):not(#y1234):not(#x1234){width:var(--dirw-1234,calc(50% - 5px))!important}
}
/* A9: the square Empty cart button stays on the heading line */
html body #app .cart-heading-1219:has(.cart-empty-1234):not(#z1234){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:nowrap!important}
html body #app .cart-heading-1219:has(.cart-empty-1234) > :not(.cart-empty-1234):not(#z1234){min-width:0;flex:1 1 auto}
/* O3: Reject sized to its label, the approve action takes the rest */
@media (max-width:899.98px){
  html body .dpd-acts-1230:not(#z1234){grid-template-columns:auto minmax(0,1fr)!important}
  html body .dpd-acts-1230 .btn:not(#z1234){font-size:15px!important;gap:8px!important}
  html body .dpd-acts-1230 .dpd-rej-1230:not(#z1234){padding:0 16px!important}
}
/* END RYU 1.2.34 MAIN CSS */
/* BEGIN RYU 1.2.35 MAIN CSS */
/* RYU Portal 1.2.35 — CR-1.2.35 (see the JS layer header). */

/* ---------- M1 Profile menu: the open workspace list sits in the menu's flow (no inner scrollbar) ---------- */
html body #account-popover-110 .wsd-list-1230:not(#z1235){position:static!important;margin-top:6px!important;box-shadow:none!important;max-height:none!important;overflow:visible!important}
html body #account-popover-110 .wsd-1230.up .wsd-list-1230:not(#z1235){margin-top:6px!important}
@media (max-width:899.98px){
  html body #account-popover-110.account-popover-1218:not(#z1235){overflow-y:auto!important;scrollbar-width:none}
  html body #account-popover-110.account-popover-1218:not(#z1235)::-webkit-scrollbar{display:none}
  /* M2 no current-page highlight in the phone menus (a pressed row still tints) */
  html body .account-popover-1218 .pop-mobile-nav-1218 nav a.active:not(#z1235){background:transparent!important;color:var(--ink)!important;font-weight:500!important}
  html body .account-popover-1218 .pop-mobile-nav-1218 nav a:not(#z1235):active{background:#e3edf6!important}
  html body #mobile-menu a.is-current-1225:not(#z1235),html body #mobile-menu a[aria-current="page"]:not(#z1235){background:transparent!important;font-weight:700!important}
  html body #mobile-menu a.is-current-1225:not(#z1235)::before{display:none!important}
  html body #mobile-menu a:not(#z1235):active{background:var(--menu-hover-1225,#eef3f8)!important}
}

/* ---------- D1 / D2 Desktop profile menu: balances + role line follow the workspace; workspace selector ---------- */
@media (min-width:900px){
  html body .account-popover-1218 .pb-desk-1234:not(#z1235):not(#y1235),
  html body .account-popover-1218 .pb-none-1234:not(#z1235):not(#y1235),
  html body .account-popover-1218 .pop-identity-1218 .role-desk-1234:not(#z1235):not(#y1235){display:none!important}
  html body .account-popover-1218 .pb-phone-1234:not(#z1235):not(#y1235){display:flex!important}
  html body .account-popover-1218 .pop-identity-1218 .role-phone-1234:not(#z1235):not(#y1235){display:block!important}
  html body .account-popover-1218 .pop-mobile-nav-1218:not(#z1235):not(#y1235){display:block!important;padding:0 0 4px!important}
  html body .account-popover-1218 .pop-mobile-nav-1218 > nav:not(#z1235){display:none!important}
  html body .account-popover-1218 .pop-mobile-nav-1218 .acting-as-118:not(#z1235){padding:2px 6px 8px!important}
  html body .account-popover-1218 .wsd-btn-1230:not(#z1235){min-height:40px!important;height:40px!important;font-size:14px!important;padding-top:0!important;padding-bottom:0!important;border-radius:10px!important}
  html body .account-popover-1218 .wsd-btn-1230 .wsd-cur-1230:not(#z1235){font-size:14px!important}
  html body .account-popover-1218 .wsd-opt-1230:not(#z1235){min-height:40px!important;font-size:14px!important}
}

/* ---------- L1 Requests counts: phones put them on their own line under the title row ---------- */
html body #app .rq-counts-1234.rq-line-1235:not(#z1235){display:block!important;margin:-6px 0 10px!important;font-size:12.5px!important;white-space:normal!important;color:#7a8796}

/* ---------- L2 Phone request details: icon + label centred together ---------- */
html body .dpd-acts-1230 .btn svg:not(#z1235){margin:0!important;flex:0 0 auto!important}
html body .dpd-acts-1230 .btn > span:not(#z1235){flex:0 1 auto!important;margin:0!important}

/* ---------- L5 Pending payouts tile: no "N pending requests" line ---------- */
html body #app .po-stat-b20.pend small:not(#z1235){display:none!important}

/* ---------- E2 / E4 Email History ---------- */
html body .eh-resp-1234.none-1235 p:not(#z1235){margin:0;padding:10px 12px;border-radius:10px;background:#f4f7fa;border:1px dashed #d5dee8;color:#5b6b7c;font-size:13px}
html body #app .mail-bad-1222:not(#z1235){background:#d92d20!important;color:#fff!important}
html body #app .mail-bad-1222 .ic-badge-1222:not(#z1235){fill:#fff!important;fill-opacity:.28!important}
html body #app .mail-off-1222:not(#z1235){background:#e9edf2!important;color:#6b7a8c!important}
html body #app .eh-st-1235:not(#z1235){display:inline-block;margin-right:6px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.6;background:#eef1f5;color:#5b6b7c;vertical-align:baseline;white-space:nowrap}
html body #app .eh-st-1235.bad-1235:not(#z1235){background:#fdecea;color:#b42318}

/* ---------- G1 Download diagnostics: no intro; Time window label left, dropdown right ---------- */
html body .diag-form-1221 .diag-note-1221:not(#z1235){display:none!important}
html body .diag-form-1221 .diag-window-1218:not(#z1235){display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}
html body .diag-form-1221 .diag-window-1218 > span:not(#z1235){margin:0!important;flex:0 0 auto}
html body .diag-form-1221 .diag-window-1218 select:not(#z1235){width:auto!important;min-width:150px!important;max-width:60%!important;flex:0 1 auto}

/* ---------- P2 / P3 Profile photo ---------- */
html body #app .avatar-preview-121.av-pending-1235:not(#z1235){opacity:.75;transition:opacity .2s}
html body #app .avatar-editor-122 .av-remove-1235:not(#z1235){display:inline-flex!important;align-items:center;gap:7px;background:#fdecec!important;border:1px solid #f4c9cc!important;color:#a3232e!important}
html body #app .avatar-editor-122 .av-remove-1235:not(#z1235):hover{background:#fbdcdc!important}
html body #app .avatar-editor-122 .av-remove-1235 .ico-1220{width:18px;height:18px;color:#a3232e}
html body #app .avatar-editor-122 .avatar-buttons-1220:not(#z1235){display:flex!important;flex-wrap:nowrap!important;gap:8px!important}
html body #app .avatar-editor-122 .avatar-buttons-1220 > .btn:not(#z1235){white-space:nowrap!important;padding-left:12px!important;padding-right:12px!important}
@media (max-width:359.98px){html body #app .avatar-editor-122 .avatar-buttons-1220 > .btn:not(#z1235){padding-left:9px!important;padding-right:9px!important;gap:5px!important}}

/* ---------- P4 Take in the photo editors ---------- */
html body #app .take-1235:not(#z1235){display:inline-flex;align-items:center;gap:6px}
html body #app .take-1235 .take-ico-1235{width:18px;height:18px}
html body #app .sf-ibtn-1222s.take-1235 .take-ico-1235{width:18px;height:18px}
@media (max-width:899.98px){
  html body #app .photo-actions-1220e.has-take-1235:not(#z1235){display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
  html body #app .photo-actions-1220e.has-take-1235 > .btn:not(#z1235){width:100%!important;min-width:0!important;justify-content:center!important;padding-left:6px!important;padding-right:6px!important;white-space:nowrap}
}
@media (max-width:359.98px){
  html body #app .photo-actions-1220e.has-take-1235:not(#z1235){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
html body .cam-modal-1234 .cam-view-1234.cam-wide-1235:not(#z1235){aspect-ratio:4/3}
html body .sf-add-menu-1222s [data-take-add-1235]:not(#z1235){display:flex;align-items:center;gap:8px}

/* ---------- S1 Recent scans placeholder rows ---------- */
html body #app .rs-skel-1235:not(#z1235){list-style:none;margin:0;padding:0;border:1px solid #e3eaf1;border-radius:14px;overflow:hidden;background:#fff}
html body #app .rs-skel-1235 li:not(#z1235){display:flex;align-items:center;gap:12px;padding:14px;border-top:1px solid #edf1f5;min-height:64px;box-sizing:border-box}
html body #app .rs-skel-1235 li:first-child:not(#z1235){border-top:0}
html body #app .rs-skel-1235 :is(.sk-logo-1235,.sk-lines-1235 i,.sk-amt-1235):not(#z1235){background:linear-gradient(90deg,#eef2f6 0%,#f6f8fb 50%,#eef2f6 100%);background-size:200% 100%;animation:sk1235 1.2s ease-in-out infinite;border-radius:8px}
html body #app .rs-skel-1235 .sk-logo-1235{width:36px;height:36px;border-radius:999px;flex:none}
html body #app .rs-skel-1235 .sk-lines-1235{flex:1;display:flex;flex-direction:column;gap:6px}
html body #app .rs-skel-1235 .sk-lines-1235 i{display:block;height:11px;width:70%}
html body #app .rs-skel-1235 .sk-lines-1235 i+i{width:45%}
html body #app .rs-skel-1235 .sk-amt-1235{width:56px;height:14px;flex:none}
@keyframes sk1235{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){html body #app .rs-skel-1235 :is(.sk-logo-1235,.sk-lines-1235 i,.sk-amt-1235){animation:none}}
html body #app .rs-stale-1235:not(#z1235){opacity:.7}
@media (min-width:900px){html body #app .rs-skel-1235 li:not(#z1235){min-height:52px}}

/* ---------- X1 Export processing screen ---------- */
html body .xp-modal-1235 .xp-1235:not(#z1235){padding:4px 24px 22px}
html body .xp-modal-1235 .xp-state-1235:not(#z1235){display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:18px 0 10px}
html body .xp-modal-1235 .xp-spin-1235 .spinner:not(#z1235){display:block!important;width:34px!important;height:34px!important;box-sizing:border-box;border:3px solid #dbe5ef!important;border-top-color:#1f63b5!important;border-radius:50%!important;background:none!important;animation:xpspin1235 .8s linear infinite!important}
@keyframes xpspin1235{to{transform:rotate(360deg)}}
html body .xp-modal-1235 .xp-msg-1235{margin:6px 0 0;font-size:16px;font-weight:700;color:var(--ink,#173b63)}
html body .xp-modal-1235 .xp-sub-1235{margin:0;color:#5b6b7c;font-size:13px}
html body .xp-modal-1235 .xp-sub-1235 b{font-variant-numeric:tabular-nums}
html body .xp-modal-1235 .xp-note-1235{margin:8px 0 0;color:#7a8796;font-size:12.5px;max-width:340px}
html body .xp-modal-1235 :is(.xp-ok-1235,.xp-bad-1235){width:44px;height:44px;border-radius:999px;display:grid;place-items:center;font-weight:800;font-size:22px}
html body .xp-modal-1235 .xp-ok-1235{background:#e9f7ef;color:#1d7350}
html body .xp-modal-1235 .xp-ok-1235 svg{width:24px;height:24px}
html body .xp-modal-1235 .xp-bad-1235{background:#fdecea;color:#b42318}
html body .xp-modal-1235 .xp-acts-1235:not(#z1235){display:flex!important;justify-content:center!important;gap:10px!important;margin-top:10px!important}
@media (min-width:900px){html body .modal.xp-modal-1235:not(#z1235){max-width:460px!important}}
#modal-root .modal.xp-modal-1235 .form-actions.xp-acts-1235{display:flex!important;flex-direction:row!important;justify-content:center!important;gap:10px!important}
/* P3: the three photo buttons stay on one line where they fit, and wrap rather than widen the page */
html body #app .avatar-editor-122 .avatar-controls-122:not(#z1235){min-width:0!important}
html body #app .avatar-editor-122 .avatar-buttons-1220:not(#z1235):not(#y1235){flex-wrap:wrap!important;row-gap:8px!important}
/* END RYU 1.2.35 MAIN CSS */
/* BEGIN RYU 1.2.36 MAIN CSS */
/* RYU Portal 1.2.36 — CR-1.2.36 (see the JS layer header). */

/* ---------- M5 Phone, signed in: no ☰ in either view; the profile icon shows in the public view too ---------- */
@media (max-width:899.98px){
  html.signed-in-1225 .app-header #mobile-menu-button:not(#z1236),
  html.signed-in-1225 #mobile-menu:not(#z1236){display:none!important}
  html[data-pview-1234="pub"].signed-in-1225 .app-header #auth-slot:not(#z1236){display:flex!important}
  /* the public-view menu: top part (no workspace switcher), public pages, Account last; no Profile / Logout rows */
  html body .account-popover-1218:has(.pop-pub-1236) :is(.acting-as-118,.wsd-1230,.account-popover-divider-1211,.pop-link-1218):not(#z1236){display:none!important}
  html body .account-popover-1218 .pop-pub-1236 nav a .ext-1225:not(#z1236){margin-left:4px;font-size:12px;color:#7a8796}
  html body .account-popover-1218 .pop-pub-1236 nav a[data-acct-1236]:not(#z1236){margin-top:4px!important;border-top:1px solid #edf1f5;border-radius:0 0 10px 10px}
  /* M7 workspace list open: Portal / Dashboard / Profile / Logout step aside until it closes */
  html body .account-popover-1218:has(.wsd-1230.open) :is(.pop-mobile-nav-1218 > nav,.account-popover-divider-1211,.pop-link-1218):not(#z1236){display:none!important}
}

/* ---------- M6 Tap outside the ☰ menu: the page ignores that tap ---------- */
html.mm-shield-1236 body *:not(#z1236){pointer-events:none!important}

/* ---------- B1 Export screen ---------- */
html body #modal-root .modal.xp-modal-1235 .form-actions.xp-acts-1235:not(#z1236){display:flex!important;flex-direction:row!important;justify-content:center!important;align-items:center!important;gap:10px!important;width:auto!important;box-sizing:border-box}
@media (max-width:899.98px){
  html body #modal-root .modal.xp-modal-1235 .xp-acts-1235 .btn.xp-dismiss-1236:not(#z1236){display:none!important}
  html body #modal-root .modal.xp-modal-1235 .xp-acts-1235[data-xp-kind-1236="done"]:not(#z1236){display:none!important}
  html body #modal-root .modal.xp-modal-1235 .xp-acts-1235 .btn:not(#z1236){flex:0 0 auto!important;width:auto!important;min-width:140px!important}
}

/* ---------- B2 Phone request details: Reject / Approve the same width (JS sets it), together on the right ---------- */
@media (max-width:899.98px){
  html body #modal-root .dpd-acts-1230.dpd-acts-1234:not(#z1236){display:flex!important;flex-direction:row!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px!important}
  html body #modal-root .dpd-acts-1230.dpd-acts-1234 > [data-action="close-modal"]:not(#z1236){display:none!important}
  html body #modal-root .dpd-acts-1230.dpd-acts-1234 > .btn:not(#z1236){flex:0 0 auto!important;min-width:0!important;max-width:none!important;white-space:normal!important;line-height:1.2!important;padding-left:12px!important;padding-right:12px!important}
  html body #modal-root .dpd-acts-1230.dpd-acts-1234.dpd-measure-1236 > .btn:not(#z1236){width:max-content!important;white-space:nowrap!important}
  html body #modal-root .dpd-acts-1230.dpd-acts-1234.dpd-tight-1236 > .btn svg:not(#z1236){display:none!important}
  html body #modal-root .dpd-acts-1230.dpd-acts-1234.dpd-tight-1236 > .btn:not(#z1236){font-size:14px!important;padding-left:10px!important;padding-right:10px!important}
}

/* ---------- B3 Photo editors: square icon-only buttons (44 × 44) ---------- */
html body #app .photo-actions-1220e.ico-acts-1236:not(#z1236):not(#y1236){display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;align-items:center!important;gap:8px!important;grid-template-columns:none!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-btn-1236:not(#z1236):not(#y1236):not(#x1236){width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;min-height:44px!important;padding:0!important;margin:0!important;display:inline-grid!important;place-items:center!important;flex:0 0 44px!important;border-radius:10px!important;gap:0!important;font-size:0!important;line-height:0!important;box-sizing:border-box!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-btn-1236 .ico-lbl-1236:not(#z1236):not(#y1236):not(#x1236){display:none!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-btn-1236 svg:not(#z1236):not(#y1236):not(#x1236){width:20px!important;height:20px!important;margin:0!important;flex:none!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-soft-1236:not(#z1236):not(#y1236):not(#x1236){background:#eef3f8!important;border:1px solid #dbe5ef!important;color:#1f4f7d!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-soft-1236:not(#z1236):not(#y1236):not(#x1236):not([disabled]):hover{background:#e2ecf5!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-rm-1236:not(#z1236):not(#y1236):not(#x1236){background:#fdecec!important;border:1px solid #f4c9cc!important;color:#a3232e!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-rm-1236:not(#z1236):not(#y1236):not(#x1236):not([disabled]):hover{background:#fbdcdc!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-btn-1236[disabled]:not(#z1236):not(#y1236):not(#x1236){opacity:.45!important;cursor:not-allowed}

/* ---------- B4 Centred titles on tool screens (Take a photo, Export, Download diagnostics, Scan QR) ---------- */
html body #modal-root .modal.tool-modal-1236 .modal-head .detail-title-1220:not(#z1236){flex:1 1 auto!important;min-width:0!important;text-align:center!important;justify-content:center!important;display:flex!important}
html body #modal-root .modal.tool-modal-1236 .modal-head .detail-title-1220 h2:not(#z1236),
html body #modal-root .modal.tool-modal-1236 .modal-head > h2:not(#z1236){text-align:center!important;justify-content:center!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
@media (min-width:900px){
  /* the × on the right is balanced by the same space on the left */
  html body #modal-root .modal.tool-modal-1236 .modal-head .detail-title-1220:not(#z1236){padding-left:var(--xw-1236,36px)!important}
  html body #modal-root .modal.tool-modal-1236 .modal-head > h2:not(#z1236){flex:1 1 auto!important;padding-left:var(--xw-1236,36px)!important}
}
html body .scan-head-r19:not(#z1236){display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;column-gap:8px!important}
html body .scan-head-r19 > h2:not(#z1236){grid-column:2!important;grid-row:1!important;text-align:center!important;margin:0!important;min-width:0}
html body .scan-head-r19 > :not(h2):not(#z1236){grid-row:1!important;grid-column:3!important;justify-self:end!important}
html body .scan-head-r19 > [data-scan-switch-r19]:not([hidden]):not(#z1236){justify-self:end!important;margin-right:48px!important}
@media (max-width:359.98px){html body .scan-head-r19 > h2:not(#z1236){font-size:15px!important}}

/* ---------- K1 / K2 Back links: one chevron, on the left ---------- */
html body .bk-1236:not(#z1236){align-items:center!important;gap:3px!important}
html body .bk-1236 > .bk-ico-1236:not(#z1236){width:18px;height:18px;flex:0 0 18px;margin-left:-3px;display:inline-block;vertical-align:-4px}
html body .bk-1236:not(#z1236)::before{content:none!important}
html body #app .dash-back-row-1222:not(#z1236),
html body #app .dash-back-row-1222.dash-back-center-1222:not(#z1236){justify-content:flex-start!important;text-align:left!important}
html body #app .dash-back-row-1222 > .bk-1236:not(#z1236),
html body #app .dash-back-center-1222 > .dash-back-1222:not(#z1236),
html body #app .po-back-b20:not(#z1236){margin-left:0!important;margin-right:auto!important}
html body #app .po-head-b20 .po-back-b20:not(#z1236){align-self:flex-start!important}

/* ---------- K3 Phone sticky bars: exactly at the top bar's bottom edge, the white overlapping it a little ---------- */
@media (max-width:899.98px){
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e):not(#z1236):not(button):not(.stk-1228s > *),
  html body #app .voucher-back-row:not(#z1236){-webkit-clip-path:inset(-6px -100vmax 0)!important;clip-path:inset(-6px -100vmax 0)!important}
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1236){top:var(--ryu-fixed-header-h,64px)!important;margin-top:-8px!important;padding-top:8px!important;
    box-shadow:0 0 0 24px var(--bg,#fff)!important;-webkit-clip-path:inset(-6px -16px -8px -16px)!important;clip-path:inset(-6px -16px -8px -16px)!important;background-color:var(--bg,#fff)!important}
  /* merchant / category pages: the whole top line (back link + language links) sticks */
  html body #app .merchant-topline:has(> .back-store-link):not(#z1236){margin-top:-12px!important;position:-webkit-sticky!important;position:sticky!important;top:var(--ryu-fixed-header-h,64px)!important;z-index:39!important;background:var(--bg,#fff)!important;
    box-shadow:0 0 0 100vmax var(--bg,#fff)!important;-webkit-clip-path:inset(-6px -100vmax 0)!important;clip-path:inset(-6px -100vmax 0)!important;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
  html body #app .merchant-topline > .back-store-link:not(#z1236):not(#y1236):not(#x1236){position:static!important;margin-top:0!important;box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important;transform:none!important}
  html body #app .lt-bar-1222:not(#z1236){-webkit-clip-path:inset(-2px -100vmax -2px)!important;clip-path:inset(-2px -100vmax -2px)!important}
}

/* ---------- K4 Phone dashboard: the header sticks under the top bar ---------- */
@media (max-width:899.98px){
  html body #app .dash-1221 > .dash-head-1221:not(#z1236){position:-webkit-sticky!important;position:sticky!important;top:var(--ryu-fixed-header-h,64px)!important;z-index:38!important;background:var(--bg,#fff)!important;
    box-shadow:0 0 0 100vmax var(--bg,#fff)!important;-webkit-clip-path:inset(-6px -100vmax calc(-1 * var(--dgap-1236,12px)));clip-path:inset(-6px -100vmax calc(-1 * var(--dgap-1236,12px)));
    -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
  html body #app .dash-1221:not(.has-seg-1236) > .dash-head-1221:not(#z1236){-webkit-clip-path:inset(-6px -100vmax -10px);clip-path:inset(-6px -100vmax -10px)}
  html body #app .dash-1221 > .seg-1221:not(#z1236){position:-webkit-sticky!important;position:sticky!important;top:calc(var(--ryu-fixed-header-h,64px) + var(--dhh-1236,42px) + var(--dgap-1236,12px))!important;z-index:37!important;background:var(--bg,#fff)!important;
    box-shadow:0 0 0 100vmax var(--bg,#fff)!important;-webkit-clip-path:inset(-2px -100vmax -10px);clip-path:inset(-2px -100vmax -10px);
    -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
}

/* ---------- P5 Phone merchant page: counts in the info table ---------- */
html body #app .merchant-info-grid > .mi-vouchers-1236:not(#z1236){display:none!important}
@media (max-width:899.98px){
  html body #app .merchant-store-copy .merchant-hero-stats:not(.mi-stats-1236):not(#z1236){display:none!important}
  html body #app .merchant-hero-action-row:not(:has(> :not(.merchant-hero-stats))):not(#z1236){display:none!important}
  html body #app .merchant-info-grid > .mi-vouchers-1236:not(#z1236){display:block!important;grid-column:1 / -1!important}
  html body #app .merchant-store-hero:has(.merchant-hero-action-row):not(#z1236){row-gap:18px!important}
  html body #app .merchant-store-hero .merchant-store-copy:has(> .merchant-hero-action-row):not(#z1236){padding-bottom:0!important}
  html body #app .merchant-store-hero .merchant-store-copy:has(> .merchant-hero-action-row) > p:last-of-type:not(#z1236){margin-bottom:0!important}
  html body #app .merchant-info-grid .mi-stats-1236 > span:not(#z1236):not(#y1236){text-transform:none!important;letter-spacing:0!important;font-weight:600!important}
  html body #app .merchant-info-grid .mi-stats-1236:not(#z1236){display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important;margin:6px 0 0!important;padding:0!important;width:auto!important}
  html body #app .merchant-info-grid .mi-stats-1236 > span:not(#z1236){display:inline-flex!important;flex-direction:row!important;align-items:baseline!important;gap:5px!important;min-width:0!important;padding:5px 10px!important;border-radius:9px!important;font-size:12px!important;line-height:1.3!important;margin:0!important}
  html body #app .merchant-info-grid .mi-stats-1236 > span strong:not(#z1236){font-size:14px!important;line-height:1.3!important;margin:0!important}
}

/* ---------- P6 Telephone numbers: no underline (a light one on mouse hover) ---------- */
html body a.company-tel-1225:not(#z1236),html body a[href^="tel:"]:not(#z1236){text-decoration:none!important}
@media (hover:hover) and (pointer:fine){html body a.company-tel-1225:not(#z1236):hover,html body a[href^="tel:"]:not(#z1236):hover{text-decoration:underline!important;text-decoration-color:rgba(23,59,99,.35)!important;text-underline-offset:3px}}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-soft-1236:not(#z1236):not(#y1236):not(#x1236) svg{color:#1f4f7d!important;stroke:currentColor!important;fill:none!important}
html body #app .photo-actions-1220e.ico-acts-1236 > .ico-rm-1236:not(#z1236):not(#y1236):not(#x1236) svg{color:#a3232e!important;stroke:currentColor!important;fill:none!important}
/* K2 Request payout: "‹ Wallet" is the one back link, on the left */
html body #app .dash-back-row-1222:has(> .po-back-b20) > .dash-back-1222:not(#z1236){display:none!important}
html body #app .dash-back-row-1222 > .po-back-b20:not(#z1236){margin-left:0!important;margin-right:auto!important;order:-1}
/* END RYU 1.2.36 MAIN CSS */
/* BEGIN RYU 1.2.38 MAIN CSS */
/* RYU Portal 1.2.38 — CR-1.2.38 (see the JS layer header). */

/* ---------- H1 Phones: the top bar (profile and language menus) stays above full-page screens ---------- */
@media (max-width:899.98px){
  html.pop-page-open-1221 .app-header:not(#z1238){z-index:5200!important}
}

/* ---------- H2 Today's earnings box ---------- */
html body .account-popover-1218 .pop-balance-1218.tile-earn-1238:not(#z1238) strong{white-space:nowrap}

/* ---------- U1 Profile photo: status / errors replace the hint line, nothing moves ---------- */
html body #app .avatar-editor-122 .avatar-error-122:not(#z1238){display:none!important}
html body #app .avatar-editor-122 .avatar-hint-1220:not(#z1238){display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%}
html body #app .avatar-editor-122 .avatar-hint-1220.av-busy-1238:not(#z1238){color:#1f63b5!important;font-weight:600}
html body #app .avatar-editor-122 .avatar-hint-1220.av-err-1238:not(#z1238){color:#b42318!important;font-weight:600}

/* ---------- U2 Save / Create icons ---------- */
html body .btn.btn-save-1234 svg.bi-save-1238:not(#z1238),html body .btn.btn-save-1234 svg.bi-plus-1238:not(#z1238){width:16px;height:16px;flex:none;color:#fff!important;stroke:currentColor}

/* ---------- U4 Storefront carousel photos: all six buttons on one line; Move up / down shown (greyed when not possible) ---------- */
html body #app .sf-slot-1222s .sf-slot-actions-1222s:not(#z1238):not(#y1238){display:flex!important;flex-wrap:nowrap!important;justify-content:space-between!important;gap:2px!important;padding:3px 4px!important;min-width:0}
html body #app .sf-slot-1222s .sf-slot-actions-1222s > .sf-ibtn-1222s:not(#z1238):not(#y1238){display:inline-grid!important;place-items:center!important;flex:1 1 0!important;min-width:0!important;max-width:40px!important;width:auto!important;height:36px!important;min-height:36px!important;padding:0!important;margin:0!important}
html body #app .sf-slot-1222s .sf-slot-actions-1222s > .sf-ibtn-1222s svg:not(#z1238){width:18px!important;height:18px!important}
html body #app .sf-slot-1222s .sf-slot-actions-1222s > .sf-ibtn-1222s[disabled]:not(#z1238){opacity:.35!important;cursor:not-allowed}
@media (max-width:359.98px){
  html body #app :has(> li.sf-slot-1222s):not(#z1238){grid-template-columns:minmax(0,1fr)!important}
}

/* ---------- C1 Cart: ← Continue shopping beside Checkout ---------- */
html body #app .cart-proceed-cell.has-cont-1238:not(#z1238){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;width:100%!important;grid-column:1 / -1!important;flex-wrap:nowrap!important}
html body #app [class*="cart-summary-row"].has-cont-1238 > .cart-proceed-cell:not(#z1238){grid-column:1 / -1!important;justify-self:stretch!important}
html body #app .btn.btn-cont-1238:not(#z1238){display:inline-flex!important;align-items:center;gap:8px;background:#fff!important;border:1.5px solid #9dbbd8!important;color:#1f4f7d!important;font-weight:700;white-space:nowrap;min-height:44px;padding:0 16px!important;border-radius:12px;box-shadow:none!important;text-decoration:none!important}
html body #app .btn.btn-cont-1238:not(#z1238):hover{background:#f2f7fc!important;border-color:#6f9bc6!important}
html body #app .btn.btn-cont-1238 svg{width:18px;height:18px;flex:none}
html body #app .cart-proceed-cell.has-cont-1238 > :not([data-cont-1238]):not(#z1238){margin-left:auto!important;white-space:nowrap}
@media (max-width:379.98px){
  html body #app .btn.btn-cont-1238:not(#z1238){padding:0 10px!important;font-size:13px!important;gap:5px}
  html body #app .cart-proceed-cell.has-cont-1238 .btn-checkout:not(#z1238){padding-left:14px!important;padding-right:14px!important;font-size:14px!important}
}

/* ---------- C2 Merchant page (phone): Opening hours / Employees beside Vouchers ---------- */
html body #app .merchant-info-grid > .mi-side-1238:not(#z1238){display:none!important}
@media (max-width:899.98px){
  html body #app .merchant-info-grid > .mi-vouchers-1236.with-side-1238:not(#z1238){grid-column:auto!important}
  html body #app .merchant-info-grid > .mi-side-1238:not(#z1238){display:block!important}
}
/* ---------- C4 Contact: the public contact email, or the cell is hidden ---------- */
html body #app .merchant-contact-cell-119.mc-empty-1238:not(#z1238){display:none!important}
html body #app .merchant-contact-cell-119 a.mc-mail-1238:not(#z1238){display:inline!important;color:inherit;font-weight:inherit;text-decoration:none!important;word-break:break-all;background:none!important;width:auto!important;height:auto!important}
@media (hover:hover) and (pointer:fine){html body #app .merchant-contact-cell-119 a.mc-mail-1238:not(#z1238):hover{text-decoration:underline!important;text-decoration-color:rgba(23,59,99,.35)!important;text-underline-offset:3px}}

/* ---------- C3 Buyer Vouchers toolbar (desktop): one text size ---------- */
@media (min-width:900px){
  html body #app .wallet-merchant-field-113 :is(.wallet-merchant-trigger-113,.wallet-merchant-current-113):not(#z1238){font-size:14px!important}
  html body #app .wallet-merchant-field-113 .wallet-merchant-trigger-113:not(#z1238){min-height:var(--wtb-h-1238,40px)}
}

/* ---------- X3 Export: file size ---------- */
html body .xp-modal-1235 .xp-size-1238{font-weight:700;color:#3b4f63;font-variant-numeric:tabular-nums}

/* ---------- S1 Phone sticky bars: opaque top bar, a plain white strip, no graphics-layer tricks ---------- */
@media (max-width:899.98px){
  html body .app-header:not(#z1238){background:#fff!important;background-color:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  /* first-level bars (directly under the top bar) */
  html body #app :is(.dash-back-1222:not(.stk-1228s > *),.back-store-link:not(.stk-1228s > *):not(.merchant-topline > *),.po-back-b20:not(.stk-1228s > *),a.ed-back-1220e:not(.stk-1228s > *),.voucher-back-row,.merchant-topline:has(> .back-store-link),.dash-1221 > .dash-head-1221):not(#z1238):not(#y1238),
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1238):not(#y1238),
  html body #app :is(.lt-bar-1222,.dash-1221 > .seg-1221):not(#z1238):not(#y1238){
    box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important;
    -webkit-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;will-change:auto!important;isolation:isolate}
  html body #app :is(.dash-back-1222:not(.stk-1228s > *),.back-store-link:not(.stk-1228s > *):not(.merchant-topline > *),.po-back-b20:not(.stk-1228s > *),a.ed-back-1220e:not(.stk-1228s > *),.voucher-back-row,.merchant-topline:has(> .back-store-link),.dash-1221 > .dash-head-1221):not(#z1238):not(#y1238)::after,
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1238):not(#y1238)::after{
    content:""!important;display:block!important;position:absolute!important;z-index:-1!important;pointer-events:none!important;
    left:-100vw!important;right:-100vw!important;top:-6px!important;bottom:-2px!important;background:var(--bg,#fff)!important}
  /* the dashboard header's strip also covers the gap above the workspace tabs */
  html body #app .dash-1221.has-seg-1236 > .dash-head-1221:not(#z1238):not(#y1238)::after{bottom:calc(-1 * var(--dgap-1236,12px))!important}
  /* second-level bars (under a back link / the dashboard header): overlap the bar above by 2px */
  html body #app :is(.lt-bar-1222,.dash-1221 > .seg-1221):not(#z1238):not(#y1238)::after{
    content:""!important;display:block!important;position:absolute!important;z-index:-1!important;pointer-events:none!important;
    left:-100vw!important;right:-100vw!important;top:-2px!important;bottom:-2px!important;background:var(--bg,#fff)!important}
  /* the pill / search box draws its own background above the strip */
  html body #app .merchant-topline > .back-store-link:not(#z1238)::after{content:none!important;display:none!important}
  html body #app .merchant-topline > .back-store-link:not(#z1238){isolation:auto}
  /* the strips reach past the page sides: no sideways scrolling */
  html,html body{overflow-x:clip}
}
html body .account-popover-1218 .pop-balance-1218.tile-earn-1238:not(#z1238):not(#y1238){background:#e9f7ef!important;border-color:#cdebd9!important}
html body .account-popover-1218 .pop-balance-1218.tile-earn-1238:not(#z1238):not(#y1238) small{color:#1d7350!important;white-space:nowrap!important;letter-spacing:.02em!important;font-size:10px!important;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%}
html body .account-popover-1218 .pop-balance-1218.tile-earn-1238:not(#z1238):not(#y1238) strong{color:#14563b!important}
@media (max-width:899.98px){
  html body #app .merchant-info-grid > .mi-vouchers-1236.with-side-1238 .mi-stats-1236:not(#z1238){gap:4px!important}
  html body #app .merchant-info-grid > .mi-vouchers-1236.with-side-1238 .mi-stats-1236 > span:not(#z1238):not(#y1238){padding:4px 6px!important;font-size:10.5px!important;gap:3px!important}
  html body #app .merchant-info-grid > .mi-vouchers-1236.with-side-1238 .mi-stats-1236 > span strong:not(#z1238):not(#y1238){font-size:12px!important}
}
@media (max-width:899.98px){
  /* Store / Merchants: keep the 8px white band under the stuck search box */
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1238):not(#y1238)::after{bottom:-8px!important}
}
/* ---------- C4 Public contact email field ---------- */
html body #app .pe-field-1238 .pe-hint-1238:not(#z1238){display:block;margin-top:4px;color:#6b7a8c;font-size:12px;line-height:1.35}
html body #app .pe-field-1238 .pe-err-1238:not(#z1238){display:block;color:#b42318;font-size:12px;font-weight:600}
html body #app .pe-field-1238 .pe-err-1238:empty{display:none}
html body #app .pe-field-1238 input.pe-bad-1238:not(#z1238){border-color:#d92d20!important}
/* S1 (cont.) buyer Vouchers / Scan QR sticky stack (back link · page head or Scan card · list bar) */
@media (max-width:899.98px){
  html body .stk-1228s > a.dash-back-1222:not(#z1238):not(#y1238),
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1238):not(#y1238),
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1238):not(#y1238){
    box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important;
    -webkit-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;isolation:isolate}
  html body .stk-1228s > a.dash-back-1222:not(#z1238):not(#y1238)::after{
    content:""!important;display:block!important;position:absolute!important;z-index:-1!important;pointer-events:none!important;
    left:-100vw!important;right:-100vw!important;top:-6px!important;bottom:-2px!important;background:var(--bg,#fff)!important}
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1238):not(#y1238)::after,
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1238):not(#y1238)::after{
    content:""!important;display:block!important;position:absolute!important;z-index:-1!important;pointer-events:none!important;
    left:-100vw!important;right:-100vw!important;top:calc(-1 * var(--stk-d1-1228s,37px))!important;bottom:calc(-2px - var(--stk-dn-1228s,10px))!important;background:var(--bg,#fff)!important}
}
/* END RYU 1.2.38 MAIN CSS */
/* BEGIN RYU 1.2.39 MAIN CSS */
/* RYU Portal 1.2.39 — CR-1.2.39 (see the JS layer header). */

/* ---------- S2 Phones: page wrappers use the stable screen height, not the one that changes with the address bar ---------- */
@media (max-width:899.98px){
  html body.authenticated-110:not(#z1239),
  html body.authenticated-110 #app-shell:not(#z1239),
  html body #app-shell:not(#z1239){min-height:100svh!important}
}

/* ---------- S4 Phone sticky bars: plain white bands, no extra layer, nothing outside the screen ---------- */
@media (max-width:899.98px){
  /* undo the 1.2.38 strip layer and the sideways clipping it needed */
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e,.voucher-back-row,.merchant-topline,.dash-1221 > .dash-head-1221,.lt-bar-1222,.dash-1221 > .seg-1221,.page-head.wallet-head-1222,.buyer-scan-card-r19):not(#z1239):not(#y1239):not(#x1239):not(#w1239)::after,
  html body :is(.stk-1228s > a.dash-back-1222,.stk-wallet-1228s > .page-head.wallet-head-1222,.stk-scan-1228s > .buyer-scan-card-r19):not(#z1239):not(#y1239):not(#x1239):not(#w1239)::after,
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1239):not(#y1239):not(#x1239):not(#w1239)::after{content:none!important;display:none!important}
  html:not(#z1239),html body:not(#z1239){overflow-x:visible}

  /* full-width bars: their own white background reaches the screen edges (border-image paints outside the box
     without taking space or scrolling) and 2px under the bar above */
  html body #app :is(.voucher-back-row,.merchant-topline:has(> .back-store-link),.dash-1221 > .dash-head-1221,.lt-bar-1222,.dash-1221 > .seg-1221):not(#z1239):not(#y1239),
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1239):not(#y1239),
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1239):not(#y1239){
    box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important;isolation:auto!important;
    -webkit-transform:none!important;transform:none!important;will-change:auto!important;
    border-image:linear-gradient(var(--bg,#fff),var(--bg,#fff)) fill 0 / 0 / 2px 100vw 0 100vw!important}
  /* the dashboard header's band also covers the gap above the role tabs */
  html body #app .dash-1221.has-seg-1236 > .dash-head-1221:not(#z1239):not(#y1239){border-image-outset:2px 100vw var(--dgap-1236,12px) 100vw!important}
  /* buyer Vouchers / Scan QR: the band reaches up to the back link and down to the search bar */
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1239):not(#y1239),
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1239):not(#y1239){border-image-outset:var(--stk-d1-1228s,37px) 100vw var(--stk-dn-1228s,10px) 100vw!important}
  html body .stk-scan-1228s > .buyer-scan-card-r19:not(#z1239):not(#y1239){border-radius:0!important}

  /* back-link pills: a white band from screen edge to screen edge, 2px into the top bar, nothing below the pill;
     the pill keeps its own (pressed) background */
  html body #app :is(.dash-back-1222,.back-store-link:not(.merchant-topline > *),.po-back-b20,a.ed-back-1220e):not(.stk-1228s > *):not(#z1239):not(#y1239),
  html body .stk-1228s > a.dash-back-1222:not(#z1239):not(#y1239){
    -webkit-transform:none!important;transform:none!important;will-change:auto!important;isolation:auto!important;
    box-shadow:0 0 0 100vmax var(--bg,#fff)!important;-webkit-clip-path:inset(-2px -100vmax 0)!important;clip-path:inset(-2px -100vmax 0)!important}

  /* S3 Store / Merchants search bar: 8px under the top bar, an exact 8px white band above and below */
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1239):not(#y1239){
    top:calc(var(--ryu-fixed-header-h,64px) + 8px)!important;margin-top:0!important;padding-top:0!important;
    box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important;isolation:auto!important;
    -webkit-transform:none!important;transform:none!important;
    border-image:linear-gradient(var(--bg,#fff),var(--bg,#fff)) fill 0 / 0 / 10px 100vw 8px 100vw!important}
}

/* ---------- R1 Buyer Scan QR: "Recent scans" at the page heading size (merchant My QR unchanged) ---------- */
html body #app .stk-scan-1228s .rs-head-b20 h2:not(#z1239){font-size:var(--rs-h-1239,26.4px)!important;line-height:1.15!important;font-weight:700!important;letter-spacing:-.01em}
@media (max-width:899.98px){html body #app .stk-scan-1228s .rs-head-b20 h2:not(#z1239){font-size:20.8px!important}}

/* ---------- B1 bulk dialogs: count after the name; sentence headings ---------- */
html body .bk-list-1225 li .bk-det-1239{margin-left:6px;color:#7a8796;font-size:12.5px;font-weight:500;white-space:nowrap}
html body .bk-grp-1227L h4.bk-gh-1239:not(#z1239){text-transform:none!important;letter-spacing:0!important;font-size:13px!important;line-height:1.4}

/* ---------- B2 list tables: the select-all box sits exactly over the row boxes (every browser) ---------- */
html body #app table.data-table :is(thead th,tbody td) > input[type="checkbox"]:not(#z1239),
html body #app table.data-table :is(thead th,tbody td) > label > input[type="checkbox"]:not(#z1239){width:16px!important;height:16px!important;min-width:16px!important;margin:0 auto!important;display:block!important;font-size:16px!important;vertical-align:middle!important}
html body #app table.data-table thead th:has(> input[type="checkbox"]):not(#z1239){vertical-align:middle!important;text-align:center!important;padding-left:0!important;padding-right:0!important}

/* ---------- O1 Order popup: transaction IDs on each line and the order's transactions ---------- */
html body #app :is(.tx-order-col-1220,.tx-order-col-1211) .order-plain-1239{color:inherit;font-variant-numeric:tabular-nums;white-space:nowrap}
#modal-root .modal.dpop-order-1239 .txid-1239{display:inline-block;font:600 12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#1f5f99;background:#eef4fa;border:1px solid #d6e3ef;border-radius:6px;padding:0 6px;margin:1px 4px 1px 0;white-space:nowrap}
#modal-root .modal.dpop-order-1239 .txid-1239.is-focus{color:#fff;background:#1f5f99;border-color:#1f5f99}
#modal-root .modal.dpop-order-1239 table.order-lines-1239 th.ol-tx-1239{width:1%;white-space:nowrap}
#modal-root .modal.dpop-order-1239 table.order-lines-1239 td.ol-tx-1239{width:1%;white-space:normal;max-width:84px;line-height:1.2}
#modal-root .modal.dpop-order-1239 table.order-lines-1239 td.ol-tx-1239 .txid-1239{display:block;width:max-content;margin:2px 0}
#modal-root .modal.dpop-order-1239 table.order-lines-1239 tr.is-focus-1239 > td{background:#f3f8fd}
#modal-root .modal.dpop-order-1239 ul.ol-cards-1221 li.is-focus-1239{background:#f3f8fd}
#modal-root .modal.dpop-order-1239 .ol-card-tx-1239{display:block;margin-top:3px}
#modal-root .modal.dpop-order-1239 .otx-1239{margin:16px 0 0}
#modal-root .modal.dpop-order-1239 h3.ol-h-1239{margin:18px 0 8px;font-size:.92rem;font-weight:750;color:var(--ink,#16324f)}
#modal-root .modal.dpop-order-1239 .otx-1239 h3{margin:0 0 8px;font-size:.92rem;font-weight:750;color:var(--ink,#16324f)}
#modal-root .modal.dpop-order-1239 .otx-n-1239{color:#7a8796;font-weight:500}
#modal-root .modal.dpop-order-1239 ul.otx-list-1239{list-style:none;margin:0;padding:0;border:1px solid #e3eaf1;border-radius:12px;overflow:hidden}
#modal-root .modal.dpop-order-1239 .otx-item-1239 + .otx-item-1239{border-top:1px solid #edf1f5}
#modal-root .modal.dpop-order-1239 .otx-item-1239.is-focus{background:#f3f8fd;box-shadow:inset 3px 0 0 #1f5f99}
#modal-root .modal.dpop-order-1239 .otx-item-1239 summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none}
#modal-root .modal.dpop-order-1239 .otx-item-1239 summary::-webkit-details-marker{display:none}
#modal-root .modal.dpop-order-1239 .otx-item-1239 summary .txid-1239{margin:0}
#modal-root .modal.dpop-order-1239 .otx-type-1239{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:.86rem}
#modal-root .modal.dpop-order-1239 .otx-type-1239 small{font-weight:500;color:#6b7f93;margin-left:4px}
#modal-root .modal.dpop-order-1239 .otx-time-1239{color:#6b7f93;font-size:.78rem;white-space:nowrap}
#modal-root .modal.dpop-order-1239 .otx-amt-1239{white-space:nowrap;text-align:right}
#modal-root .modal.dpop-order-1239 .otx-item-1239 details > .otx-props-1239,#modal-root .modal.dpop-order-1239 .otx-item-1239 details > .dnote-1221{margin:0 12px 12px}
@media (max-width:899.98px){
  #modal-root .modal.dpop-order-1239 .otx-item-1239 summary{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"id type amt" "time time st";row-gap:4px}
  #modal-root .modal.dpop-order-1239 .otx-item-1239 summary > .txid-1239{grid-area:id}
  #modal-root .modal.dpop-order-1239 .otx-type-1239{grid-area:type}
  #modal-root .modal.dpop-order-1239 .otx-amt-1239{grid-area:amt}
  #modal-root .modal.dpop-order-1239 .otx-time-1239{grid-area:time}
  #modal-root .modal.dpop-order-1239 .otx-item-1239 summary > .status-badge{grid-area:st;justify-self:end}
}

/* ---------- P1 Two-photo editors: limits line under each photo, replaced by the status ---------- */
html body #app .hint-moved-1239:not(#z1239){display:none!important}
html body #app :is(.photo-slots-1222s,.mp-photos-1223s) .photo-hint-1239{margin:8px 0 0;color:#6b7f93;font-size:.76rem;line-height:20px;min-height:20px}
html body #app :is(.photo-slots-1222s,.mp-photos-1223s) .photo-status-1220e:not(#z1239){margin:8px 0 0;font-size:.76rem;line-height:20px;min-height:20px}
html body #app :is(.photo-slots-1222s,.mp-photos-1223s) .photo-status-1220e:not(:empty) + .photo-hint-1239{display:none}
html body #app :is(.photo-slots-1222s,.mp-photos-1223s) .photo-status-1220e .btn-link:not(#z1239){padding:0!important;margin:0 0 0 4px!important;min-height:0!important;height:20px!important;line-height:20px!important;vertical-align:top!important;display:inline-flex!important;align-items:center;gap:3px}
html body #app :is(.photo-slots-1222s,.mp-photos-1223s) .photo-status-1220e .btn-link svg{width:14px;height:14px}

/* ---------- M1 Merchant page: no Merchant ID / Phone number cells; Contact = email, then phone ---------- */
html body #app .merchant-info-grid > :is(.mi-mid-1239,.mi-phone-1239):not(#z1239){display:none!important}
html body #app .merchant-info-grid > .merchant-contact-cell-119.mc-has-1239:not(#z1239){display:block!important}
html body #app .merchant-info-grid > .merchant-contact-cell-119.mc-has-1239 > strong:not(#z1239){display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px}
html body #app .merchant-contact-cell-119 :is(a.mc-mail-1238,a.mc-tel-1239):not(#z1239){display:block!important;color:inherit;text-decoration:none!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;max-width:100%}
html body #app .merchant-contact-cell-119 a.mc-tel-1239:not(#z1239){white-space:nowrap!important}
@media (max-width:899.98px){html body #app .merchant-contact-cell-119 a.mc-mail-1238:not(#z1239){overflow-wrap:anywhere!important}}
html body #app .merchant-contact-cell-119 :is(a.mc-mail-1238,a.mc-tel-1239):hover{text-decoration:underline!important}
@media (min-width:900px){
  html body #app .merchant-info-grid:not(#z1239):not(#y1239){grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
}
/* END RYU 1.2.39 MAIN CSS */
/* BEGIN RYU 1.2.40 MAIN CSS */
/* RYU Portal 1.2.40 — CR-1.2.40 (see the JS layer header). */

/* ---------- L1 Phone list search row: no white outline over its neighbours (the 1.2.39 band does the job) ---------- */
html body .lt-bar-1222:not(#z1240):not(#y1240):not(#x1240){outline:0!important;outline-offset:0!important;-webkit-clip-path:none!important;clip-path:none!important}

/* ---------- L2 Android: the top bar is sticky (moves with the page like the bars under it), not fixed ---------- */
@media (max-width:899.98px){
  html body #app-shell > header.app-header:not(#z1240):not(#y1240){position:-webkit-sticky!important;position:sticky!important;top:0!important;left:auto!important;right:auto!important;margin-bottom:calc(-1 * var(--hdr-h-1240,64px))!important;width:auto!important}
}

/* ---------- O2–O4 Order popup ---------- */
html.noanim-1240 #modal-root *{animation:none!important;transition:none!important}
#modal-root .modal.dpop-order-1240 .ord-loading-1240{display:flex;align-items:center;gap:10px;padding:28px 4px;color:#5d7389;font-size:.9rem}
@media (min-width:900px){
  html body #modal-root .modal.dpop-order-1240:not(#z1240):not(#y1240){display:flex!important;flex-direction:column!important;max-height:calc(100vh - 64px)!important;overflow:hidden!important;padding-bottom:0!important}
  html body #modal-root .modal.dpop-order-1240 > .modal-head:not(#z1240){flex:0 0 auto;position:relative!important;top:auto!important}
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221:not(#z1240){flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:20px}
  html body #modal-root .modal.dpop-order-1240 .ol-wrap-1221:not(#z1240){overflow:visible!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239:not(#z1240){width:100%!important;table-layout:fixed!important;min-width:0!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 :is(th,td):not(#z1240){white-space:normal!important;overflow-wrap:anywhere;padding-left:8px!important;padding-right:8px!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 th.ol-tx-1239{width:100px!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 td.ol-tx-1239{max-width:none!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 th.ol-photo-1221{width:52px!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 th.num{width:84px!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 th.num:first-of-type{width:44px!important}
  html body #modal-root .modal.dpop-order-1240 table.order-lines-1239 td.num{white-space:nowrap!important;overflow-wrap:normal}
}
@media (max-width:899.98px){
  html body #modal-root .modal.dpop-order-1240 .dbody-1221:not(#z1240){overflow-x:hidden!important}
  html body #modal-root .modal.dpop-order-1240 .props-1221:not(#z1240):not(#y1240){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px 16px!important}
  html body #modal-root .modal.dpop-order-1240 .props-1221 > div:not(#z1240):not(#y1240){display:block!important;min-width:0;border:0!important;padding:0!important;margin:0!important}
  html body #modal-root .modal.dpop-order-1240 .props-1221 > div > dt:not(#z1240){display:block!important;margin:0 0 2px!important;font-size:11px!important;width:auto!important}
  html body #modal-root .modal.dpop-order-1240 .props-1221 > div > dd:not(#z1240){display:block!important;margin:0!important;overflow-wrap:anywhere;min-width:0}
  html body #modal-root .modal.dpop-order-1240 .props-1221 > div > dd small{display:block}
  html body #modal-root .modal.dpop-order-1240 .otx-props-1239 > div:not(#z1240){display:block!important}
}

/* ---------- K2/K3 Checkout payment instructions panel (under the cart table, left-aligned with it) ---------- */
html body #app .ck-left-1240{min-width:0}
html body #app .ck-left-1240 > .ck-pi-1240{margin:18px 0 0;padding:14px 16px;border:1px solid #dbe5ee;border-radius:12px;background:#f8fbfd}
html body #app .ck-pi-1240 h3{margin:0 0 8px;font-size:.92rem;font-weight:750;color:var(--ink,#16324f)}
html body #app .ck-pi-1240 .ck-pi-text-1240{margin:0;white-space:pre-line;font-size:.88rem;line-height:1.55;color:#24415f;overflow-wrap:anywhere}
html body #app .ck-pi-1240 .ck-pi-fallback-1240 a{color:inherit;font-weight:600}
html body #app .pm-btn-b20.pm-off-1225s .pm-why-1225s{color:#8a6d3b}

/* ---------- T2 Status badge in transaction lists ---------- */
html body #app .tx-st-row-1240{margin-top:4px;line-height:1}
html body #app .status-badge.tx-st-1240{font-size:11px;padding:2px 7px}
html body #app .tx-row-l2-1220 .status-badge.tx-st-1240{margin-left:auto;flex:0 0 auto}
html body #app .tx-row-l2-1220 .l2-left-1222 .status-badge.tx-st-1240{margin-left:0}

/* ---------- R2 Buyer Scan QR: "Last 30 days" on the heading's baseline ---------- */
html body #app .stk-scan-1228s .rs-head-b20:not(#z1240){align-items:baseline!important}
html body #app .stk-scan-1228s .rs-head-b20 .rs-sub-b20:not(#z1240){position:relative;top:0}

/* ---------- M2 Merchant page Contact: phone smaller and grey under the email ---------- */
html body #app .merchant-contact-cell-119 a.mc-tel-1239:not(#z1240):not(#y1240){font-size:13px!important;font-weight:500!important;color:#6b7f93!important;font-variant-numeric:tabular-nums}
/* END RYU 1.2.40 MAIN CSS */
/* BEGIN RYU 1.2.41 MAIN CSS */
/* RYU Portal 1.2.41 — CR-1.2.41 (see the JS layer header). */

/* ---------- D1 No animated scroll when a page changes (scrollIntoView calls that ask for smooth keep it) ---------- */
html:not(#z1241),html[data-pub-1232]:not(#z1241){scroll-behavior:auto!important}

/* ---------- T3 Status badge positions ---------- */
html body #app .tx-st-row-1241{margin-top:4px;line-height:1}
html body #app .tx-st-row-1240{display:none!important}
html body #app .tx-row-l2-1220 > .status-badge.tx-st-l-1241{margin:0 6px 0 0!important;flex:0 0 auto;order:-1}

/* ---------- B3 Phone back links: transparent at rest, white band only while stuck ---------- */
@media (max-width:899.98px){
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e):not(.stuck-1241):not(:hover):not(:active):not(:focus-visible):not(#z1241):not(#y1241):not(#x1241):not(#w1241){background:transparent!important;box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important}
  html body #app :is(.voucher-back-row,.merchant-topline:has(> .back-store-link)):not(.stuck-1241):not(#z1241):not(#y1241):not(#x1241):not(#w1241){background:transparent!important;border-image:none!important;box-shadow:none!important}
  html body #app :is(.voucher-back-row,.merchant-topline):not(.stuck-1241) > :is(a,.back-store-link):not(:hover):not(:active):not(:focus-visible):not(#z1241):not(#y1241):not(#x1241){background:transparent!important;box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important}
}

/* ---------- H4 Back links / back buttons: one highlight everywhere (page, popups, phone detail pages) ---------- */
html body :is(#app,#modal-root) :is(.page-back-1221,.page-back-row-1221 > a,.page-back-row-1221 > button):not(#z1241){border-radius:999px!important;padding:0 14px 0 8px!important;min-height:36px;display:inline-flex!important;align-items:center;gap:4px;transition:background-color .12s}
html body :is(#app,#modal-root) :is(.dash-back-1222,.back-store-link,.voucher-back-row > a,.po-back-b20,.ed-back-1220e,.page-back-1221,.page-back-row-1221 > a,.page-back-row-1221 > button):not(#z1241):not(#y1241):is(:hover,:active,:focus-visible){background:#eef4f9!important;text-decoration:none!important}
html body :is(#app,#modal-root) :is(.page-back-1221,.page-back-row-1221 > button):focus-visible{outline:2px solid #9cc0e0;outline-offset:1px}

/* ---------- C6 Cool colours for tiles that used amber / rose ---------- */
html body .sum-tile-1221.tone-indigo{background:#eef0fd!important;border-color:#dcdff8!important}
html body .tone-indigo .sum-label-1221{color:#4146b0!important}
html body .sum-tile-1221.tone-sky{background:#e9f5fb!important;border-color:#d1e8f4!important}
html body .tone-sky .sum-label-1221{color:#1a6f99!important}
html body .dtile-ico-1221.tone-indigo{background:#eceefd;color:#4146b0}
html body .dtile-ico-1221.tone-sky{background:#e6f4fb;color:#1a6f99}

/* ---------- P9 Store / Merchants / Explore on phones: 16px under the top bar ---------- */
@media (max-width:899.98px){
  html body #app .page:has(> .public-discovery-hero:first-child):not(#z1241){padding-top:16px!important}
  html body #app .page > .public-discovery-hero:first-child:not(#z1241){margin-top:0!important;padding-top:0!important}
}

/* ---------- O5 Order popup ---------- */
#modal-root .modal.dpop-order-1240 .obody-1241 .osec-1241{margin-top:20px}
#modal-root .modal.dpop-order-1240 .obody-1241 .osec-1241 h3{margin:0 0 10px;font-size:.95rem;font-weight:750;color:var(--ink,#16324f)}
#modal-root .modal.dpop-order-1240 .osec-n-1241{color:#7a8796;font-weight:500}
#modal-root .modal.dpop-order-1240 .obody-1241 ul{list-style:none;margin:0;padding:0}
/* voucher cards */
#modal-root .modal.dpop-order-1240 .ov-1241{border:1px solid #e3eaf1;border-radius:12px;padding:12px 14px;background:#fff}
#modal-root .modal.dpop-order-1240 .ov-1241 + .ov-1241{margin-top:10px}
#modal-root .modal.dpop-order-1240 .ov-1241.is-focus{border-color:#9cc0e0;background:#f7fbfe}
#modal-root .modal.dpop-order-1240 .ov-main-1241{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center}
#modal-root .modal.dpop-order-1240 .ov-photo-1241 :is(img,.thumb-1220){width:52px!important;height:52px!important;border-radius:10px;object-fit:cover}
#modal-root .modal.dpop-order-1240 .ov-text-1241{min-width:0;display:flex;flex-direction:column;gap:2px}
#modal-root .modal.dpop-order-1240 .ov-name-1241{font-size:.92rem;line-height:1.3;overflow-wrap:anywhere}
#modal-root .modal.dpop-order-1240 .ov-text-1241 small{color:#6b7f93;font-size:.8rem;line-height:1.35}
#modal-root .modal.dpop-order-1240 .ov-facts-1241{display:flex;flex-wrap:wrap;gap:2px 8px}
#modal-root .modal.dpop-order-1240 .ov-facts-1241 i{font-style:normal;color:#b5c2cf}
#modal-root .modal.dpop-order-1240 .ov-facts-1241 b{font-weight:600}
#modal-root .modal.dpop-order-1240 .ov-amt-1241{font-weight:750;white-space:nowrap;font-size:.98rem}
#modal-root .modal.dpop-order-1240 .ov-tx-1241{margin-top:10px;border-top:1px solid #edf1f5;padding-top:8px}
/* expanders */
#modal-root .modal.dpop-order-1240 .obody-1241 details > summary{cursor:pointer;list-style:none}
#modal-root .modal.dpop-order-1240 .obody-1241 details > summary::-webkit-details-marker{display:none}
#modal-root .modal.dpop-order-1240 .ov-tx-1241 > summary,#modal-root .modal.dpop-order-1240 .ofocus-more-1241{color:#1f5f99;font-size:.82rem;font-weight:600}
#modal-root .modal.dpop-order-1240 .ov-tx-1241 > summary::before,#modal-root .modal.dpop-order-1240 .og-1241 > details > summary::before{content:'';display:inline-block;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);margin:0 8px 2px 2px;transition:transform .12s}
#modal-root .modal.dpop-order-1240 :is(.ov-tx-1241,.og-1241 > details)[open] > summary::before{transform:rotate(45deg)}
/* type groups */
#modal-root .modal.dpop-order-1240 .og-list-1241{border:1px solid #e3eaf1;border-radius:12px}
#modal-root .modal.dpop-order-1240 .og-1241 + .og-1241{border-top:1px solid #edf1f5}
#modal-root .modal.dpop-order-1240 .og-1241 > details > summary{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#24415f}
#modal-root .modal.dpop-order-1240 .og-type-1241{font-weight:650;font-size:.88rem}
#modal-root .modal.dpop-order-1240 .og-n-1241{color:#7a8796;font-size:.82rem}
#modal-root .modal.dpop-order-1240 .og-sum-1241{margin-left:auto;font-weight:700;white-space:nowrap}
#modal-root .modal.dpop-order-1240 .og-1241 .otx-list-1241{padding:0 14px 8px!important}
/* transaction lines */
#modal-root .modal.dpop-order-1240 .otx-1241 + .otx-1241{border-top:1px dashed #e6ecf2}
#modal-root .modal.dpop-order-1240 .otx-1241 > details > summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:7px 0;font-size:.84rem}
#modal-root .modal.dpop-order-1240 .otx-1241.is-focus > details > summary{font-weight:600}
#modal-root .modal.dpop-order-1240 .otx-type-1241{color:#24415f}
#modal-root .modal.dpop-order-1240 .otx-time-1241{color:#7a8796;font-size:.78rem}
#modal-root .modal.dpop-order-1240 .otx-amt-1241{margin-left:auto;white-space:nowrap;font-weight:650}
#modal-root .modal.dpop-order-1240 .otx-1241 .otx-props-1239{margin:2px 0 10px;padding:10px 12px;background:#f7f9fb;border-radius:10px}
/* the clicked transaction, under the header */
#modal-root .modal.dpop-order-1240 .ofocus-1241{border:1px solid #cfe0ef;background:#f5f9fd;border-radius:12px;margin:2px 0 14px}
#modal-root .modal.dpop-order-1240 .ofocus-1241 > summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;font-size:.86rem}
#modal-root .modal.dpop-order-1240 .ofocus-lbl-1241{color:#5d7389;font-size:.78rem;font-weight:600}
#modal-root .modal.dpop-order-1240 .ofocus-1241 .otx-amt-1241{margin-left:auto}
#modal-root .modal.dpop-order-1240 .ofocus-1241[open] .ofocus-more-1241{display:none}
#modal-root .modal.dpop-order-1240 .ofocus-1241 > .otx-props-1239,#modal-root .modal.dpop-order-1240 .ofocus-1241 > .dnote-1221{margin:0 14px 12px}
/* one scroll area; scrollbar 12px from the popup edge; room at the end */
@media (min-width:900px){
  html body #modal-root .modal.dpop-order-1240:not(#z1241):not(#y1241){padding-right:12px!important}
  html body #modal-root .modal.dpop-order-1240 > .modal-head:not(#z1241):not(#y1241):not(#x1241){margin-right:-12px!important}
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221:not(#z1241):not(#y1241){padding-right:16px!important;padding-bottom:28px!important;scrollbar-width:thin;scrollbar-gutter:stable;scrollbar-color:#c3cfdb transparent}
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221::-webkit-scrollbar{width:8px}
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221::-webkit-scrollbar-thumb{background:#c3cfdb;border-radius:8px}
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221::-webkit-scrollbar-track{background:transparent}
}
@media (max-width:899.98px){
  html body #modal-root .modal.dpop-order-1240 > .dbody-1221:not(#z1241){padding-bottom:40px!important}
  #modal-root .modal.dpop-order-1240 .ov-main-1241{grid-template-columns:44px minmax(0,1fr) auto;gap:10px}
  #modal-root .modal.dpop-order-1240 .ov-photo-1241 :is(img,.thumb-1220){width:44px!important;height:44px!important}
}

/* ---------- M3 Signed-out phone menu: a card like the signed-in account menu ---------- */
@media (max-width:899.98px){
  html body #mobile-menu.mm-card-1241:not(#z1241):not([hidden]){position:absolute!important;top:100%!important;z-index:2500!important;left:auto!important;right:10px!important;width:270px!important;max-width:calc(100vw - 20px)!important;border:1px solid #d9e4ed!important;border-radius:10px!important;box-shadow:0 14px 36px rgba(23,63,100,.16)!important;padding:8px 10px 8px!important;background:#fff!important;box-sizing:border-box}
  html body #mobile-menu.mm-card-1241 a:not(#z1241){display:flex!important;align-items:center!important;gap:11px!important;min-height:40px!important;padding:8px 10px!important;border-radius:8px!important;font-size:13.76px!important;font-weight:500!important;color:#173b63!important;line-height:1.2!important;margin:0!important;border:0!important}
  html body #mobile-menu.mm-card-1241 a:is(:hover,:active,:focus-visible):not(#z1241){background-color:#eef4f9!important}
  html body #mobile-menu.mm-card-1241 a.is-current-1225:not(:hover):not(:active):not(:focus-visible):not(#z1241):not(#y1241){background-color:transparent!important}
  html body #mobile-menu.mm-card-1241 a.is-current-1225::before{display:none!important}

  html body #mobile-menu.mm-card-1241 a:not(#z1241):not(#y1241){padding-left:41px!important;background-repeat:no-repeat!important;background-position:10px 50%!important;background-size:20px 20px!important}
  html body #mobile-menu.mm-card-1241 a.about-mobile:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%2F%3E%3Cpath%20d%3D%22M12%2011v5.5M12%207.6v.2%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a[href="#/store"]:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%208h12l-1%2011.5H7z%22%2F%3E%3Cpath%20d%3D%22M9%208V6.8a3%203%200%200%201%206%200V8%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a[href="#/merchants"]:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%209.5%205.5%205h13L20%209.5%22%2F%3E%3Cpath%20d%3D%22M4%209.5a2.7%202.7%200%200%200%205.3%200%202.7%202.7%200%200%200%205.4%200%202.7%202.7%200%200%200%205.3%200%22%2F%3E%3Cpath%20d%3D%22M5.5%2012.5V19h13v-6.5M10%2019v-4h4v4%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a[href="#/categories"]:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%2F%3E%3Cpath%20d%3D%22m15.3%208.7-2%204.6-4.6%202%202-4.6z%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a[href="#/terms"]:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8.5%205h7l3%203v11h-10z%22%2F%3E%3Cpath%20d%3D%22M15.5%205v3h3M11%2012h5M11%2015.5h5%22%2F%3E%3Cpath%20d%3D%22M5.5%208v12h9%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a[href="#/contact"]:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%226%22%20width%3D%2216%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m4.5%207.5%207.5%205.5%207.5-5.5%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a.mm-account-1234:not(#z1241):not(#y1241){background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233d5f80%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228.5%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M5%2019.5c1.2-3.6%203.8-5.2%207-5.2s5.8%201.6%207%205.2%22%2F%3E%3C%2Fsvg%3E")!important}
  html body #mobile-menu.mm-card-1241 a.mm-account-1234:not(#z1241){margin-top:9px!important;position:relative}
  html body #mobile-menu.mm-card-1241 a.mm-account-1234::before{content:'';position:absolute;left:4px;right:4px;top:-5px;border-top:1px solid #e3eaf1}
}
/* END RYU 1.2.41 MAIN CSS */
/* BEGIN RYU 1.2.42 MAIN CSS */
/* RYU Portal 1.2.42 — CR-1.2.42 (see the JS layer header). */

/* ---------- B4 Back links inside a row (voucher, merchant page): never a white shape of their own;
   while stuck the row's band reaches down past the link ---------- */
@media (max-width:899.98px){
  html body #app :is(.voucher-back-row,.merchant-topline) > :is(a,.back-store-link):not(:hover):not(:active):not(:focus-visible):not(#z1242):not(#y1242):not(#x1242):not(#w1242){background:transparent!important;box-shadow:none!important;-webkit-clip-path:none!important;clip-path:none!important}
  html body #app :is(.voucher-back-row,.merchant-topline:has(> .back-store-link)).stuck-1241:not(#z1242):not(#y1242):not(#x1242):not(#w1242){border-image:linear-gradient(var(--bg,#fff),var(--bg,#fff)) fill 0 / 0 / 2px 100vw 8px 100vw!important}
}

/* ---------- N1 Nationality list: 6px below its selector ---------- */
html body .nationality-select-119 > .nationality-panel-119:not(#z1242),html body .nationality-panel-119:not(#z1242):not(#y1242){top:calc(100% + 6px)!important;margin-top:0!important;border-radius:8px!important}

/* ---------- B5 Phones: back button in the heading row; the separate back row hidden ---------- */
html body .hb-1242{display:none}
@media (max-width:899.98px){
  html body #app .hb-src-1242:not(#z1242):not(#y1242):not(#x1242){display:none!important}
  html body #app :is(h1.page-title,.cart-heading h1).has-hb-1242:not(#z1242){display:flex!important;align-items:center!important;gap:6px!important}
  html body #app a.hb-1242:not(#z1242){display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;margin:0 2px 0 -8px;border-radius:999px;color:#1a5c91;background:transparent;text-decoration:none!important;position:relative;-webkit-tap-highlight-color:transparent;transition:background-color .12s}
  html body #app a.hb-1242::after{content:'';position:absolute;inset:-4px}
  html body #app a.hb-1242:is(:hover,:active,:focus-visible){background:#eef4f9}
  html body #app a.hb-1242:focus-visible{outline:2px solid #9cc0e0;outline-offset:1px}
  html body #app a.hb-1242 svg{width:22px;height:22px;display:block}
}

/* ---------- A3 Phone account menu ---------- */
html body #account-popover-110 .pop-ph-1242,html body #account-popover-110 .pp-ph-1242{display:none!important}
@media (max-width:899.98px){
  html body #account-popover-110 a.pop-ph-1242:not(#z1242){display:flex!important}
  html body #account-popover-110 .pp-ph-1242:not(#z1242){display:inline!important}
  html body #account-popover-110 .pp-desk-1242:not(#z1242){display:none!important}
  html body #account-popover-110 .pop-badge-1242{margin-left:auto}
  html body #account-popover-110 [data-action="logout"]:not(#z1242){position:relative;margin-top:9px!important}
  html body #account-popover-110 [data-action="logout"]::before{content:'';position:absolute;left:4px;right:4px;top:-5px;border-top:1px solid #e3eaf1}
}
@media (max-width:899.98px){
  html body #app .page:has(.cart-heading h1.has-hb-1242):not(#z1242){padding-top:14px!important}
}

/* ---------- X1 Cross icons: a slightly bigger × in Cancel-type buttons and in the popup close button ---------- */
html body :is(#app,#modal-root) :is(button,a) svg:has(> path[d="M6.5 6.5l11 11M17.5 6.5l-11 11"]):not(#z1242){width:20px!important;height:20px!important;margin:-2px -1px!important;flex:0 0 20px}
html body :is(#app,#modal-root) :is(button,a) svg > path[d="M6.5 6.5l11 11M17.5 6.5l-11 11"]{stroke-width:2.4}
html body #modal-root .modal-close:not(#z1242):not(#y1242){font-size:0!important;color:#4b6179;position:relative}
html body #modal-root .modal-close::before,html body #modal-root .modal-close::after{content:'';position:absolute;left:50%;top:50%;width:18px;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
html body #modal-root .modal-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

/* ---------- B5 The list bar sticks right under the top bar once the back row is gone ---------- */
@media (max-width:899.98px){
  html body #app .content-column:has(> .hb-src-1242):not(.stk-1228s) .lt-bar-1222:not(#z1242):not(#y1242){top:var(--ryu-fixed-header-h,64px)!important}
}
@media (max-width:359.98px){
  html body #app a.hb-1242:not(#z1242):not(#y1242){width:32px;height:32px;flex-basis:32px;margin:0 0 0 -8px}
  html body #app a.hb-1242::after{inset:-6px}
  html body #app :is(h1.page-title,.cart-heading h1).has-hb-1242:not(#z1242):not(#y1242){gap:2px!important}
  html body #app .page-head:has(h1.has-hb-1242) > .quick-actions:not(#z1242){gap:4px!important}
  html body #app .page-head:has(h1.has-hb-1242) > .quick-actions > :is(a,button):not(#z1242):not(#y1242){width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important}
}
/* END RYU 1.2.42 MAIN CSS */
/* BEGIN RYU 1.2.43 MAIN CSS */
/* RYU Portal 1.2.43 — CR-1.2.43 (see the JS layer header). */

/* ---------- W1 Phones: nothing wider than the screen ---------- */
@media (max-width:899.98px){
  /* guard: the portal frame is never wider than the screen; clipped on the frame (not a scroller, so sticky bars keep working) */
  html body #app-shell:not(#z1243){max-width:100vw!important;overflow-x:clip!important}
  @supports not (overflow-x:clip){html body #app-shell:not(#z1243){overflow-x:hidden!important}}
  /* top bar: the screen's width, never its container's */
  html body #app-shell > header.app-header:not(#z1243):not(#y1243):not(#x1243){width:100%!important;max-width:100vw!important;box-sizing:border-box!important}
  /* headings with the back button wrap a long title instead of widening the page */
  html body #app :is(h1.page-title,.cart-heading h1).has-hb-1242:not(#z1243):not(#y1243){white-space:normal!important;min-width:0!important;overflow-wrap:anywhere;flex-wrap:nowrap!important}
  html body #app .page-head > div:has(> h1.has-hb-1242):not(#z1243){min-width:0!important;flex:1 1 auto}

  /* white bands: from the screen's left edge to its right edge, not 100vw past the bar */
  html body #app :is(.voucher-back-row,.merchant-topline:has(> .back-store-link),.dash-1221 > .dash-head-1221,.lt-bar-1222,.dash-1221 > .seg-1221):not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243){border-image-outset:2px var(--br-1243,16px) 0 var(--bl-1243,16px)!important}
  html body #app .dash-1221.has-seg-1236 > .dash-head-1221:not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243):not(#u1243){border-image-outset:2px var(--br-1243,16px) var(--dgap-1236,12px) var(--bl-1243,16px)!important}
  html body .stk-wallet-1228s > .page-head.wallet-head-1222:not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243){border-image-outset:var(--stk-d1-1228s,37px) var(--br-1243,16px) var(--stk-dn-1228s,10px) var(--bl-1243,16px)!important}
  html body #app :is(.voucher-back-row,.merchant-topline:has(> .back-store-link)).stuck-1241:not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243):not(#u1243){border-image-outset:2px var(--br-1243,16px) 8px var(--bl-1243,16px)!important}
  html body.pubbar-1228s form.pubbar-form-1228s > .search-wrap:not(#z1243):not(#y1243):not(#x1243){border-image-outset:10px var(--br-1243,16px) 8px var(--bl-1243,16px)!important}
  /* back-link pills: the band is the pill's shadow cut exactly at the screen edges */
  html body #app :is(.dash-back-1222,.back-store-link:not(.merchant-topline > *),.po-back-b20,a.ed-back-1220e):not(.stk-1228s > *):is(.stuck-1241,:hover,:active,:focus-visible):not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243),
  html body .stk-1228s > a.dash-back-1222.stuck-1241:not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243){box-shadow:0 0 0 var(--bs-1243,20px) var(--bg,#fff)!important;-webkit-clip-path:inset(-2px calc(-1 * var(--br-1243,16px)) 0 calc(-1 * var(--bl-1243,16px)))!important;clip-path:inset(-2px calc(-1 * var(--br-1243,16px)) 0 calc(-1 * var(--bl-1243,16px)))!important}
  /* the wallet title kept its full width (max-content); with the back button it may wrap */
  html body.authenticated-110 .page-head.wallet-head-1222 .page-title.has-hb-1242:not(#z1243){min-width:0!important}
}

/* ---------- W1 check page (?wide=1) ---------- */
.wide-hit-1243{outline:2px solid #e11d48!important;outline-offset:-2px!important}
#wide-1243{position:fixed;left:8px;right:8px;bottom:8px;z-index:2147483000;max-height:40vh;overflow:auto;background:#fff;color:#14304d;border:2px solid #e11d48;border-radius:10px;padding:8px 10px;font:12px/1.35 ui-monospace,Menlo,monospace;box-shadow:0 6px 20px rgba(0,0,0,.18)}
#wide-1243 ol{margin:4px 0 0;padding-left:18px}
#wide-1243 i{color:#b42318;font-style:normal}
#wide-1243 .ok{color:#067647;font-weight:700;margin-top:3px}
#wide-1243:has(.ok){border-color:#12b76a}

/* ---------- H5 Heading back button: 26px chevron in a 44px button ---------- */
@media (max-width:899.98px){
  html body #app a.hb-1242:not(#z1242):not(#z1243){flex:0 0 44px;width:44px;height:44px;margin:0 0 0 -10px}
  html body #app a.hb-1242::after{inset:0}
  html body #app a.hb-1242 svg:not(#z1243){width:26px!important;height:26px!important;stroke-width:2.5}
  html body #app :is(h1.page-title,.cart-heading h1).has-hb-1242:not(#z1242):not(#z1243){gap:2px!important}
}
@media (max-width:359.98px){
  html body #app a.hb-1242:not(#z1242):not(#y1242):not(#z1243){width:32px;height:32px;flex-basis:32px;margin:0 0 0 -8px}
  html body #app a.hb-1242::after{inset:-6px}
  html body #app a.hb-1242 svg:not(#z1243):not(#y1243){width:22px!important;height:22px!important;stroke-width:2.3}
}

/* ---------- H6 Phone detail pages: "‹ Title" on one row (round back button, no "Back" text) ---------- */
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head:not(#z1243){flex-wrap:nowrap!important;align-items:flex-start!important;gap:0 4px!important;padding-top:8px!important}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-row-1221:not(#z1243){flex:0 0 auto!important;width:auto!important;order:-1;display:block;margin:-6px 0 -6px -10px}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-row-1221 ~ :not(.modal-close):not(.pop-back-1220):not(#z1243){flex:1 1 0!important;min-width:0!important}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221:not(#z1243):not(#y1243){width:44px!important;height:44px!important;padding:0!important;justify-content:center!important;border-radius:999px!important;gap:0!important;position:relative}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221 > span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221 svg:not(#z1243):not(#y1243){width:26px!important;height:26px!important;stroke-width:2.5}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221:is(:hover,:active,:focus-visible):not(#z1243){background:#eef4f9!important}
/* the title's first line sits level with the button */
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head :is(.dh-line-1221,.detail-title-1220,h2):first-of-type{padding-top:2px}
@media (max-width:359.98px){
  html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221:not(#z1243):not(#y1243):not(#x1243){width:36px!important;height:36px!important}
  html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-row-1221:not(#z1243){margin:-3px 0 -3px -8px}
  html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head .page-back-1221 svg:not(#z1243):not(#y1243):not(#x1243){width:22px!important;height:22px!important}
}

/* ---------- M4 Account menu: the current item highlights on hover / press like the others ---------- */
html body #account-popover-110 :is(a,button):is(:hover,:active):not(#z1243){background:#f1f6fa!important;color:#153e66!important}
html body #account-popover-110 a.active:is(:hover,:active):not(#z1243):not(#y1243){background:#e6eff7!important}

/* ---------- Q1 Buyer Scan QR (phones): a compact "Scan merchant QR" on the right of the ‹ Dashboard row ---------- */
@media (max-width:899.98px){
  html body #app .stk-scan-1228s > .buyer-scan-card-r19:not(#z1243):not(#y1243):not(#x1243):not(#w1243):not(#v1243){
    margin:-52px 0 4px auto!important;width:max-content!important;max-width:calc(100% - 140px);padding:0!important;min-height:0!important;height:44px;
    display:flex!important;align-items:center!important;background:transparent!important;border:0!important;box-shadow:none!important;border-image:none!important;
    z-index:43!important;top:var(--ryu-fixed-header-h,64px)!important}
  html body #app .stk-scan-1228s > .buyer-scan-card-r19 > button[data-buyer-scan-r19]:not(#z1243):not(#y1243){
    width:auto!important;min-width:0!important;height:36px!important;min-height:36px!important;padding:0 12px!important;font-size:14px!important;gap:6px!important;border-radius:10px!important;position:relative;white-space:nowrap}
  html body #app .stk-scan-1228s > .buyer-scan-card-r19 > button[data-buyer-scan-r19]::after{content:'';position:absolute;inset:-4px 0}
  html body #app .stk-scan-1228s > .buyer-scan-card-r19 > button[data-buyer-scan-r19] svg:not(#z1243){width:18px!important;height:18px!important}
}

/* ---------- Q2 Merchant My QR: ‹ Dashboard centred ---------- */
html body #app .dash-back-row-1222.dash-back-center-1222:not(#z1243):not(#y1243):not(#x1243){display:flex!important;justify-content:center!important;text-align:center!important}
html body #app .dash-back-row-1222.dash-back-center-1222 > a:not(#z1243):not(#y1243):not(#x1243){margin-left:auto!important;margin-right:auto!important}

/* ---------- O7 Order popup: "Loading order…" in the middle ---------- */
html body #modal-root .modal.dpop-order-1240 .ord-loading-1240:not(#z1243){justify-content:center;min-height:240px;padding:28px 4px}
html.pop-page-open-1221 body #modal-root .modal.dpop-order-1240 .ord-loading-1240:not(#z1243):not(#y1243){min-height:calc(100svh - var(--ryu-fixed-header-h,64px) - 150px)}
html body #modal-root .modal.dpop-order-1240:not(.pop-page-1221) .ord-loading-1240:not(#z1243):not(#y1243){margin-right:-14px}
/* tool screens (Take a photo, Export, Download diagnostics) keep their title centred: a space on the right as wide as the back button */
html.pop-page-open-1221 body #modal-root .modal.tool-modal-1236.pop-page-1221 > .modal-head:has(.page-back-row-1221):not(#z1243):not(#y1243){padding-right:50px!important}
@media (max-width:359.98px){html.pop-page-open-1221 body #modal-root .modal.tool-modal-1236.pop-page-1221 > .modal-head:has(.page-back-row-1221):not(#z1243):not(#y1243):not(#x1243){padding-right:44px!important}}
/* END RYU 1.2.43 MAIN CSS */
/* BEGIN RYU 1.2.44 MAIN CSS */
/* RYU Portal 1.2.44 — CR-1.2.44 (see the JS layer header). */

/* ---------- P2 Phones: the editor's ID chip at the right end of the title row ---------- */
html body #app h1.page-title > .ed-chip-1244{display:none}
@media (max-width:899.98px){
  html body #app h1.page-title.has-chip-1244 > .ed-chip-1244:not(#z1244){display:inline-flex!important;align-items:center;margin:0 0 0 auto!important;padding-left:10px;flex:0 0 auto;align-self:center;font-size:13px!important;line-height:1.2!important;font-weight:600;letter-spacing:0;white-space:nowrap}
  html body #app h1.page-title.has-chip-1244:not(#z1244){display:flex!important;align-items:center!important}
  html body #app .page-head > div:has(> h1.has-chip-1244):not(#z1244){flex:1 1 auto!important;min-width:0!important;width:100%}
  html body #app .ed-meta-1220e.has-chip-1244 > .ed-chip-1220e:not(.ed-chip-1244):not(#z1244){display:none!important}
  html body #app .ed-meta-1220e.has-chip-1244:not(:has(> :not(.ed-chip-1220e))):not(#z1244){display:none!important}
}

/* ---------- P3 Phones: a detail page keeps the top bar, whatever the list's scroll position ---------- */
@media (max-width:899.98px){
  html.pop-page-open-1221 body #app-shell > header.app-header:not(#z1244):not(#y1244):not(#x1244){position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;max-width:100vw!important;margin-bottom:0!important}
}

/* ---------- A1 / A2 The RYU app: no footer line, no "About RYU" (it leads to the landing page) ---------- */
html.app-1244 body .app-footer:not(#z1244){display:none!important}
html.app-1244 body :is(#about-link,a[href="/home/"]):not(.about-app-1244):not(#z1244){display:none!important}
html body .about-app-1244{display:none}
html.app-1244 body #mobile-menu a.about-app-1244:not(#z1244){display:flex!important}
html.app-1244 body #account-popover-110 a.about-app-1244:not(#z1244){display:flex!important}
@media (min-width:900px){html.app-1244 body #about-app-desk-1244:not(#z1244){display:inline-flex!important}}

/* ---------- A3 About page ---------- */
html body #modal-root .about-1244 .ab-brand-1244{display:flex;align-items:center;gap:14px;margin:4px 0 18px}
html body #modal-root .about-1244 .ab-brand-1244 img{width:56px;height:56px;border-radius:14px;object-fit:contain}
html body #modal-root .about-1244 .ab-brand-1244 strong{display:block;font-size:20px;color:#14304d}
html body #modal-root .about-1244 .ab-brand-1244 small{display:block;color:#5d7389;font-size:13px;margin-top:2px}
html body #modal-root .about-1244 .ab-list-1244{margin:0 0 18px;border-top:1px solid #e6edf3}
html body #modal-root .about-1244 .ab-row-1244{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e6edf3}
html body #modal-root .about-1244 .ab-row-1244 dt{color:#5d7389;font-size:14px;font-weight:600}
html body #modal-root .about-1244 .ab-row-1244 dd{margin:0;color:#14304d;font-size:14px;text-align:right;overflow-wrap:anywhere}
html body #modal-root .about-1244 .ab-sec-1244{margin:0 0 18px}
html body #modal-root .about-1244 .ab-sec-1244 h3{font-size:15px;margin:0 0 6px;color:#14304d}
html body #modal-root .about-1244 .ab-sec-1244 p{margin:0;color:#3d5f80;font-size:14px;line-height:1.5}
html body #modal-root .about-1244 .ab-acts-1244{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
html body #modal-root .about-1244 .ab-acts-1244 .btn{min-height:44px}
/* END RYU 1.2.44 MAIN CSS */
/* BEGIN RYU 1.2.45 MAIN CSS */
/* RYU Portal 1.2.45 — CR-1.2.45 (see the JS layer header). */

/* ---------- B6 Phones: one chevron. Round back buttons 26px, back links with text 22px ---------- */
@media (max-width:899.98px){
  html body #modal-root .modal .modal-head .page-back-1221 svg:not(#z1245):not(#y1245):not(#x1245),
  html body #modal-root .modal .modal-head .page-back-1221 > .bk-ico-1236:not(#z1245):not(#y1245):not(#x1245){width:26px!important;height:26px!important;flex:0 0 26px!important;margin:0!important;vertical-align:middle!important;stroke-width:2.5!important}
  html body #app a.hb-1242 svg:not(#z1245):not(#y1245){stroke-width:2.5!important}
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e,.voucher-back-row a,.merchant-topline a) > .bk-ico-1236:not(#z1245):not(#y1245):not(#x1245),
  html body #app :is(.dash-back-1222,.back-store-link,.po-back-b20,a.ed-back-1220e,.voucher-back-row a,.merchant-topline a) > svg:not(#z1245):not(#y1245):not(#x1245){width:22px!important;height:22px!important;flex:0 0 22px!important;stroke-width:2.5!important;margin-left:-4px!important;vertical-align:-5px!important}
}
@media (max-width:359.98px){
  html body #modal-root .modal .modal-head .page-back-1221 svg:not(#z1245):not(#y1245):not(#x1245):not(#w1245),
  html body #modal-root .modal .modal-head .page-back-1221 > .bk-ico-1236:not(#z1245):not(#y1245):not(#x1245):not(#w1245){width:22px!important;height:22px!important;flex-basis:22px!important}
}

/* ---------- H7 Phones: every detail-page title's first line is level with the ‹ button ---------- */
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > :is(h2,.detail-title-1220):not(#z1245){display:flex!important;align-items:flex-start!important;min-height:44px!important;margin-top:-6px!important;margin-bottom:-6px!important;padding-top:10px!important;padding-bottom:6px!important;line-height:1.25!important;box-sizing:border-box!important}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > .detail-title-1220 > h2:not(#z1245):not(#y1245){line-height:1.25!important}
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > .detail-title-1220 > h2:not(#z1245){margin:0!important}
@media (max-width:359.98px){
  html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > :is(h2,.detail-title-1220):not(#z1245):not(#y1245){min-height:36px!important;margin-top:-3px!important;margin-bottom:-3px!important;padding-top:6px!important}
}

/* ---------- M6 The line above Account shows on every page, the sign-in page included ---------- */
html body #mobile-menu.mm-card-1241 a.mm-account-1234:not(#z1245)::before{content:''!important;display:block!important;position:absolute!important;left:4px!important;right:4px!important;top:-5px!important;border-top:1px solid #e3eaf1!important;height:0!important;bottom:auto!important;width:auto!important;border-radius:0!important;background:none!important}

/* ---------- O8 No transaction box at the top of the order popup (phones and desktop) ---------- */
html body #modal-root .obody-1241 > .ofocus-1241:not(#z1245){display:none!important}

/* ---------- K5 Phones: cart heading at the normal page-title size; a calmer empty cart ---------- */
@media (max-width:899.98px){
  html body #app .cart-heading h1:not(#z1245):not(#y1245):not(#x1245){font-size:20.8px!important;line-height:1.25!important;letter-spacing:-.01em!important}
  html body #app .cart-empty-1225s > h2:not(#z1245):not(#y1245){font-size:18px!important;line-height:1.3!important;margin-top:10px!important}
  html body #app .cart-empty-1225s > .cart-empty-art-1225s:not(#z1245):not(#y1245){width:72px!important;height:72px!important;min-width:72px!important;background-size:30px 30px!important}
}

/* ---------- AL1 Phones: audit log IP at the right of the first line ---------- */
html body #app .al-ip-1245{display:none}
@media (max-width:899.98px){
  html body #app .tx-row-l1-1220 > .al-ip-1245:not(#z1245){display:inline-block!important;margin-left:auto;padding-left:10px;flex:0 0 auto;font-size:12px;font-weight:500;color:#6b7f93;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
  html body #app .tx-row-l1-1220:has(> .al-ip-1245):not(#z1245){display:flex!important;align-items:baseline!important;min-width:0}
  html body #app .tx-row-l1-1220:has(> .al-ip-1245) > .tx-row-title-1220:not(#z1245){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* ---------- AB2 / AB4 About page ---------- */
html body #modal-root .about-1245 .ab-list-1244{margin-top:4px}
html body #modal-root .about-1245 .ab-copy-1245{margin:28px 0 8px;text-align:center;font-size:12.5px;color:#7a8b9c;letter-spacing:.02em}
html body #modal-root .about-1245 .ab-acts-1244{gap:10px}
html body #modal-root .about-1245 .ab-btn-1245{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s;-webkit-tap-highlight-color:transparent}
html body #modal-root .about-1245 .ab-btn-1245 svg{width:18px;height:18px;flex:0 0 18px}
html body #modal-root .about-1245 .ab-reload-1245{background:#e8f1fa;border:1px solid #cfe0f1;color:#1a5c91}
html body #modal-root .about-1245 .ab-reload-1245:is(:hover,:active,:focus-visible){background:#d9e8f6;border-color:#b9d3ec}
html body #modal-root .about-1245 .ab-reset-1245{background:#fff;border:1px solid #efc2bd;color:#b42318}
html body #modal-root .about-1245 .ab-reset-1245:is(:hover,:active,:focus-visible){background:#fef3f2;border-color:#e8a29b}
html body #modal-root .about-1245 .ab-btn-1245:focus-visible{outline:2px solid #9cc0e0;outline-offset:2px}

/* ---------- AB1 never a spinner on the About item or page ---------- */
html body [data-app-about-1244] .nav-spin-1221,html body #modal-root .about-1244 .spinner{display:none!important}

/* ---------- K6 Phones: compact cart rows — name across the row, delete under the photo, quantity at the far right ---------- */
@media (max-width:899.98px){
  html body #app .cart-merchant-group .cart-row:not(#z1245):not(#y1245):not(#x1245){display:grid!important;grid-template-columns:56px minmax(0,1fr) auto!important;grid-template-areas:"img copy copy" "del price qty"!important;column-gap:12px!important;row-gap:6px!important;align-items:center!important;padding:10px 0!important}
  html body #app .cart-merchant-group .cart-row > .cart-item-description:not(#z1245):not(#y1245){display:contents!important}
  html body #app .cart-merchant-group .cart-row > .cart-item-description > img:not(#z1245):not(#y1245){grid-area:img!important;width:56px!important;height:56px!important;object-fit:cover;border-radius:10px;align-self:start;margin:0!important}
  html body #app .cart-merchant-group .cart-row .cart-copy:not(#z1245):not(#y1245){grid-area:copy!important;display:block!important;min-width:0;align-self:start}
  html body #app .cart-merchant-group .cart-row .cart-copy > a:not(#z1245){display:block!important;line-height:1.3!important}
  html body #app .cart-merchant-group .cart-row .cart-copy > a strong:not(#z1245){font-size:15px!important;line-height:1.3!important}
  html body #app .cart-merchant-group .cart-row .cart-copy > small:not(#z1245):not(#y1245){display:inline!important;font-size:12.5px!important;color:#6b7f93!important;line-height:1.4!important}
  html body #app .cart-merchant-group .cart-row .cart-copy > small + small:not(#z1245)::before{content:' · '}
  html body #app .cart-merchant-group .cart-row > .cart-remove-icon:not(#z1245):not(#y1245){grid-area:del!important;justify-self:center;width:44px!important;height:44px!important;margin:0!important}
  html body #app .cart-merchant-group .cart-row > .cart-price:not(#z1245):not(#y1245){grid-area:price!important;justify-self:start;text-align:left!important;font-size:17px!important;margin:0!important}
  html body #app .cart-merchant-group .cart-row > .cart-qty-inline:not(#z1245):not(#y1245){grid-area:qty!important;justify-self:end;margin:0!important}
  html body #app .cart-merchant-group .cart-row > .cart-qty-inline input:not(#z1245):not(#y1245){width:64px!important;height:40px!important;min-height:40px!important}
}
/* H7: the ‹ row always sits the same way (an older rule reset its offset on some pages) */
html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > .page-back-row-1221:not(#z1245):not(#y1245):not(#x1245){margin:-6px 0 -6px -10px!important}
@media (max-width:359.98px){html.pop-page-open-1221 body #modal-root .modal.pop-page-1221 > .modal-head > .page-back-row-1221:not(#z1245):not(#y1245):not(#x1245):not(#w1245){margin:-3px 0 -3px -8px!important}}
/* END RYU 1.2.45 MAIN CSS */
/* BEGIN RYU 1.2.46 MAIN CSS */
/* RYU Portal 1.2.46 — CR-1.2.46: one top bar on phones (see the JS layer header). */

/* The bar exists on every screen size but only shows on phones in a mode that uses it. */
html body #app-shell > header.app-header .tb-1246{display:none}
html body .tb-menu-1246[hidden]{display:none!important}

@media (max-width:899.98px){
  /* ---------- the bar: ‹ · title · tools, then the header's own language / cart / profile ---------- */
  html.tb-on-1246 body #app-shell > header.app-header .header-inner > .brand:not(#z1246){display:none!important}
  html.tb-on-1246 body #app-shell > header.app-header .header-inner > .tb-1246:not(#z1246){display:flex!important;align-items:center;gap:2px;flex:1 1 auto;min-width:0;margin-left:-10px;margin-right:4px}
  html body .tb-1246 .tb-back-1246{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:999px;color:#1a5c91;text-decoration:none!important;-webkit-tap-highlight-color:transparent;transition:background-color .12s}
  html body .tb-1246 .tb-back-1246:is(:active,:focus-visible){background:#eef4f9}
  html body .tb-1246 .tb-back-1246 svg{width:26px;height:26px;display:block}
  html body .tb-1246 .tb-title-1246{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;line-height:1.25;color:#14304d;letter-spacing:-.01em}
  html.tb-pub-1246 body .tb-1246 .tb-title-1246{font-size:15px;font-weight:600;color:#1a5c91}
  html body .tb-1246 .tb-tools-1246{position:relative;display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:6px}
  html body .tb-1246 .tb-tools-1246:empty{display:none}
  html body .tb-1246 .tb-tool-1246:not(#z1246):not(#y1246){display:inline-flex!important;align-items:center;justify-content:center;gap:6px;min-width:36px!important;width:auto!important;height:36px!important;min-height:36px!important;padding:0 9px!important;margin:0!important;border-radius:10px!important;font-size:13.5px!important;white-space:nowrap;position:relative}
  html body .tb-1246 .tb-tool-1246:not(:has(span:not(:empty))):not(#z1246){padding:0!important;width:36px!important}
  html body .tb-1246 .tb-tool-1246::after{content:'';position:absolute;inset:-4px -2px}
  html body .tb-1246 .tb-tool-1246 svg{width:20px;height:20px;flex:0 0 20px}
  html body .tb-1246 .tb-tool-1246[aria-disabled="true"]{opacity:.45;pointer-events:none}
  html body .tb-1246 .tb-more-1246{background:#f1f6fa;border:1px solid #dbe6f0;color:#1a5c91;cursor:pointer}
  html body .tb-1246 .tb-menu-1246{position:absolute;top:calc(100% + 8px);right:-90px;z-index:3000;min-width:210px;padding:6px;background:#fff;border:1px solid #d9e4ed;border-radius:12px;box-shadow:0 14px 30px -12px rgba(15,42,68,.35);display:flex;flex-direction:column}
  html body .tb-1246 .tb-mi-1246{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;background:transparent;border-radius:8px;color:#14304d;font:inherit;font-size:14.5px;font-weight:600;text-align:left;cursor:pointer}
  html body .tb-1246 .tb-mi-1246:is(:active,:focus-visible){background:#f1f6fa}
  html body .tb-1246 .tb-mi-1246[aria-disabled="true"]{opacity:.45;pointer-events:none}
  html body .tb-1246 .tb-mi-1246 svg{width:20px;height:20px;flex:0 0 20px;color:#3d5f80}
  html body .tb-1246 .tb-badge-1246{white-space:nowrap}
  html body .tb-1246 .tb-xpwrap-1246{position:relative;display:inline-flex}
  html body .tb-1246 .tb-xmenu-1246:not(#z1246){right:0;min-width:170px}
  html body .tb-1246 .tb-chip-1246{font-size:13px;font-weight:600;white-space:nowrap}
  html body .tb-1246 .tb-tool-1246.btn-scan-r19 svg{width:18px;height:18px}

  /* ---------- what the bar replaces is hidden ---------- */
  html.tb-on-1246 body #app .tb-src-1246:not(#z1246):not(#y1246):not(#x1246):not(#w1246){display:none!important}
  html.tb-acct-1246 body #app .tb-head-1246 .tb-orig-1246:not(#z1246):not(#y1246):not(#x1246){display:none!important}
  html.tb-acct-1246 body #app .cart-heading.tb-head-1246:not(:has(> :not(.tb-src-1246):not(.tb-orig-1246))):not(#z1246){display:none!important}
  html.tb-acct-1246 body #app .page:has(.cart-heading.tb-head-1246):not(#z1246):not(#y1246){padding-top:4px!important}
  html.tb-acct-1246 body #app .page-head.tb-head-1246:not(#z1246){min-height:0!important;margin-bottom:6px!important}
  html.tb-acct-1246 body #app .tb-head-1246.tb-empty-1246:not(#z1246):not(#y1246):not(#x1246){display:none!important}
  html.tb-acct-1246 body #app .ed-meta-1220e > .ed-chip-1220e:not(#z1246):not(#y1246){display:none!important}
  html.tb-acct-1246 body #app .ed-meta-1220e:not(:has(> :not(.ed-chip-1220e))):not(#z1246){display:none!important}
  /* language selector: in the profile menu on inner pages */
  html:is(.tb-acct-1246,.tb-pop-1246) body #app-shell > header.app-header #portal-language-dropdown:not(#z1246){display:none!important}
  /* the cart icon only where you can shop */
  html.tb-nocart-1246 body #app-shell > header.app-header #cart-link:not(#z1246){display:none!important}
  /* full-screen detail pages: their ‹ title and badge are in the bar; the rest of their header (ID, time) stays */
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head :is(.page-back-row-1221,h2,.status-badge,.detail-title-1220):not(#z1246):not(#y1246){display:none!important}
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head:not(:has(:is(.dh-id-1221,.dh-time-1221,.dh-line-1221 > :not(h2):not(.status-badge)))):not(#z1246){display:none!important}
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head:not(#z1246):not(#y1246){padding:10px 16px 8px!important;min-height:0!important}
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head .dh-line-1221:not(#z1246){gap:2px 10px!important}
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head .dh-id-1221:not(#z1246){font-size:13px!important}
  html.tb-pop-1246 body #modal-root .modal.pop-page-1221.tb-popped-1246:not(#z1246){padding-top:6px!important}

  /* ---------- dashboard: no name / role / time row (the profile menu shows them) ---------- */
  html body #app .dash-1221 > .dash-head-1221:not(#z1246):not(#y1246):not(#x1246):not(#w1246){display:none!important}
  html body #app .dash-1221:not(#z1246){padding-top:0}

  /* ---------- the merchant's language bar under the merchant name ---------- */
  html body #app .merchant-heading-text > .mlang-1246:not(#z1246){display:flex!important;margin:8px 0 2px!important;justify-content:flex-start!important}

  /* ---------- Requests: counts without brackets, in colour ---------- */
  html body #app .rq-sum-1246{display:none}
  html body #app .rq-counts-1234:has(+ .rq-sum-1246):not(#z1246){display:none!important}
  html body #app .rq-sum-1246:not(#z1246){display:block!important;flex:0 0 100%;order:5;font-size:inherit;margin-top:2px;color:#6b7f93}
  html body #app .rq-sum-1246 i{font-style:normal;color:#9aaab9}
  html body #app .rq-sum-1246 .rq-pend-1246{color:#b54708}
  html body #app .rq-sum-1246 .rq-unread-1246{color:#1a5c91}
  html body #app .rq-sum-1246 .rq-zero-1246{color:#8193a5}
  html body #app .rq-sum-1246 b{font-weight:700}

  /* ---------- profile menu language selector (inner pages) ---------- */
  html body #account-popover-110 .pop-lang-1246{margin-left:auto;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px;border:1px solid #d9e4ed;border-radius:8px;background:#fff;color:#14304d;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
  html body #account-popover-110 .pop-langs-1246{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0 4px}
  html body #account-popover-110 .pop-lang-opt-1246{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:1px solid #e3eaf1;border-radius:8px;background:#fff;color:#14304d;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
  html body #account-popover-110 .pop-lang-opt-1246.is-on-1246{border-color:#9cc0e0;background:#eef4f9}
}
/* account number: on the Profile page now (every screen size) */
html body #account-popover-110 .pop-uid-1226.uid-off-1246:not(#z1246){display:none!important}
html body #app .acct-id-1246{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid #e6edf3;margin-top:4px}
html body #app .acct-id-1246 span{color:#5d7389;font-weight:600;font-size:14px}
html body #app .acct-id-1246 strong{color:#14304d;font-size:15px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

@media (max-width:899.98px){
  /* sticky stacks: with the page row folded into the bar, their bars stick right under it */
  html.tb-acct-1246 body #app .stk-1228s > .lt-bar-1222:not(#z1246):not(#y1246):not(#x1246):not(#w1246),
  html.tb-acct-1246 body #app .stk-wallet-1228s > .lt-bar-1222:not(#z1246):not(#y1246):not(#x1246):not(#w1246){top:var(--ryu-fixed-header-h,64px)!important}
  html.tb-acct-1246 body #app .stk-1228s.tb-stk-1246{padding-top:0!important}
  /* buyer Scan QR: the Scan merchant QR card is in the bar */
  html.tb-acct-1246 body #app .stk-scan-1228s > .buyer-scan-card-r19.tb-src-1246:not(#z1246):not(#y1246):not(#x1246):not(#w1246):not(#v1246):not(#u1246){display:none!important}
  /* tools turn icon-only when the title needs the room */
  html body .tb-1246.tb-icons-1246 .tb-tool-1246 > span:not(.status-badge):not(#z1246){display:none!important}
  html body .tb-1246.tb-icons-1246 .tb-tool-1246:not(.tb-badge-1246):not(#z1246):not(#y1246):not(#x1246){width:36px!important;padding:0!important}
  /* public detail pages: content starts closer to the bar */
  html.tb-pub-1246 body #app .page:not(#z1246){padding-top:12px!important}
  html.tb-pub-1246 body #app .merchant-store-hero:not(#z1246){margin-top:0!important}
}

/* touch screens keep :hover after a tap, so hover colours only where there is a real pointer */
@media (max-width:899.98px) and (hover:hover){
  html body .tb-1246 .tb-back-1246:hover{background:#eef4f9}
  html body .tb-1246 .tb-mi-1246:hover{background:#f1f6fa}
}
/* the narrowest phones (320–359px): a little more room for the title */
@media (max-width:359.98px){
  html.tb-on-1246 body #app-shell > header.app-header .header-inner > .tb-1246:not(#z1246){margin-left:-8px;margin-right:2px}
  html body .tb-1246 .tb-back-1246:not(#z1246){flex-basis:40px;width:40px;height:40px}
  html body .tb-1246 .tb-title-1246:not(#z1246){font-size:16px}
  html body .tb-1246 .tb-tools-1246:not(#z1246){gap:4px;margin-left:4px}
  html body .tb-1246 .tb-tool-1246:not(#z1246):not(#y1246):not(#x1246){min-width:34px!important;height:34px!important;min-height:34px!important}
  html body .tb-1246.tb-icons-1246 .tb-tool-1246:not(.tb-badge-1246):not(#z1246):not(#y1246):not(#x1246):not(#w1246){width:34px!important}
}
/* dashboard: with the name row gone, the workspace tabs stick right under the top bar (no gap for cards to show through) */
@media (max-width:899.98px){
  html body #app .dash-1221 > .seg-1221:not(#z1246):not(#y1246):not(#x1246):not(#w1246){top:var(--ryu-fixed-header-h,64px)!important;padding-top:10px!important}
}
/* END RYU 1.2.46 MAIN CSS */
/* BEGIN RYU 1.2.47 MAIN CSS */
/* RYU Portal 1.2.47 — CR-1.2.47 (see the JS layer header). */

@media (max-width:899.98px){
  /* 18: an old back row never shows on phones, also while the next page loads */
  html body #app .tb-src-1246:not(#z1247):not(#y1247):not(#x1247):not(#w1247){display:none!important}

  /* 2: "‹ Store" reads and taps as one control */
  html.tb-pub-1246 body .tb-1246 .tb-title-1246:not(#z1247){cursor:pointer;-webkit-tap-highlight-color:transparent}
  html.tb-pub-1246 body .tb-1246:has(.tb-title-1246:active) .tb-back-1246{background:#eef4f9}

  /* 22: on public pages the bar is only as wide as "‹ Store", so the language selector stays on the left */
  html.tb-pub-1246 body #app-shell > header.app-header .header-inner > .tb-1246:not(#z1247):not(#y1247){flex:0 1 auto!important;max-width:58%;margin-right:8px}

  /* 4: less space between the top bar and the page */
  html.tb-acct-1246 body .authenticated-stage-116:not(#z1247):not(#y1247){padding-top:var(--ryu-fixed-header-h,64px)!important}
  html.tb-acct-1246 body #app .page:not(#z1247):not(#y1247){padding-top:10px!important}
  html.tb-acct-1246 body #app .page > .content-column:not(#z1247):not(#y1247){padding-top:0!important}
  html.tb-acct-1246 body #app .lt-bar-1222:not(#z1247):not(#y1247){padding-top:2px!important}
  html.tb-acct-1246 body #app .balance-title-row-112:not(#z1247){margin-top:0!important;padding-top:0!important}

  /* 6 / 1 / 10: the profile menu's name row stays on one line */
  html body #account-popover-110 .pop-namerow-1226.nr-1247:not(#z1247){display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;grid-template-columns:none!important}
  html body #account-popover-110 .pop-namerow-1226.nr-1247 > strong:not(#z1247){flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  html body #account-popover-110 .pop-namerow-1226.nr-1247 > .pop-uid-1226:not(.uid-off-1246):not(#z1247){flex:0 0 auto;margin-left:auto;display:inline-block!important;font-size:12.5px;font-weight:600;color:#6b7f93;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
  html body #account-popover-110 .pop-lang-1246:not(#z1247):not(#y1247){flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:76px!important;height:30px!important;padding:0 8px!important;margin-left:auto!important;gap:2px!important;font-size:12.5px!important}

  /* 11: menu items line up whether or not they can be used */
  html body .tb-1246 .tb-mi-1246:not(#z1247){white-space:nowrap}
  html body .tb-1246 .tb-mi-1246[aria-disabled="true"]:not(#z1247){opacity:1!important;color:#9aaab9!important}
  html body .tb-1246 .tb-mi-1246[aria-disabled="true"] svg:not(#z1247){color:#b7c3cf!important}
  html body .tb-1246 .tb-mi-1246 svg:not(#z1247){width:20px!important;height:20px!important;flex:0 0 20px!important;margin:0!important}
  html body .tb-1246 .tb-menu-1246:not(#z1247){max-width:calc(100vw - 16px)}

  /* 7 / 9: About — less space at the top, no line above the first row, equal buttons */
  html body #modal-root .about-1245 .ab-list-1244:not(#z1247){margin-top:0!important;padding-top:0!important}
  html body #modal-root .about-1245 .ab-list-1244 > .ab-row-1244:first-child:not(#z1247){border-top:0!important}
  html body #modal-root .modal.pop-page-1221.tb-popped-1246 > .dbody-1221.about-1245:not(#z1247){padding-top:0!important;margin-top:0!important}
  html body #modal-root .modal.pop-page-1221.tb-popped-1246:has(.about-1245) > .modal-head:not(#z1247):not(#y1247){display:none!important}
  html body #modal-root .about-1245 .ab-acts-1244:not(#z1247){display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  html body #modal-root .about-1245 .ab-acts-1244 > .ab-btn-1245:not(#z1247){width:100%!important;min-width:0!important}

  /* 8: cart total — amount under the prices, "Total: n items" at the right */
  html body #app .cart-summary-row-118:not(#z1247):not(#y1247){display:grid!important;grid-template-columns:56px minmax(0,1fr) auto!important;grid-template-areas:". amt lbl" "cell cell cell"!important;column-gap:12px!important;align-items:baseline!important}
  html body #app .cart-summary-row-118 > .cart-total-amount:not(#z1247):not(#y1247){grid-area:amt!important;justify-self:start!important;text-align:left!important;margin:0!important}
  html body #app .cart-summary-row-118 > .cart-total-label-118:not(#z1247):not(#y1247){grid-area:lbl!important;justify-self:end!important;text-align:right!important;margin:0!important}
  html body #app .cart-summary-row-118 > .cart-proceed-cell:not(#z1247):not(#y1247){grid-area:cell!important}

  /* 12: top-up — "Expires 15/04/2027" on one line, level with the balance */
  html body #app .tu-exp-1222:not(#z1247):not(#y1247){display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:5px!important;align-self:flex-end!important}
  html body #app .tu-exp-1222 > span:not(#z1247){font-size:12.5px!important;margin:0!important}
  html body #app .tu-exp-1222 > strong:not(#z1247){font-size:13.5px!important;margin:0!important}
  html body #app .balance-title-row-112.tu-head-1222:not(#z1247){align-items:flex-end!important}

  /* 15: View more is a small row, not a tile */
  html body #app .view-more-115.view-more-tile:not(#z1247):not(#y1247){display:flex!important;justify-content:center!important;grid-column:1 / -1!important;min-height:0!important;padding:4px 0 8px!important;margin:4px 0 0!important;background:none!important;border:0!important;box-shadow:none!important;aspect-ratio:auto!important}
  html body #app .view-more-115.view-more-tile > .view-more-link:not(#z1247):not(#y1247){display:inline-flex!important;align-items:center;gap:6px;min-height:40px!important;height:auto!important;width:auto!important;padding:0 14px!important;border:0!important;border-radius:999px!important;background:none!important;box-shadow:none!important;color:#1a5c91!important;font-size:14px!important;font-weight:700!important;text-decoration:none!important;-webkit-tap-highlight-color:transparent}
  html body #app .view-more-115.view-more-tile > .view-more-link:is(:hover,:focus,:active,:visited):not(#z1247){text-decoration:none!important}
  html body #app .view-more-115.view-more-tile > .view-more-link:active:not(#z1247){background:#eef4f9!important}

}

/* 16 / 17 (every screen size): search buttons in the box (→ search, × clear) and a spinner while loading */
  html body #app .sx-1247:not(#z1247){position:relative}
  html body #app .sx-1247 input:not(#z1247){padding-right:78px!important}
  html body #app .sx-1247 input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
  html body #app .sx-btns-1247{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:2px;z-index:2}
  html body #app .sx-btns-1247 button{display:none;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:999px;background:transparent;color:#6b7f93;cursor:pointer;-webkit-tap-highlight-color:transparent}
  html body #app .sx-btns-1247 .sx-go-1247{color:#fff;background:#1a5c91}
  html body #app .sx-has-1247 .sx-btns-1247 .sx-x-1247{display:inline-flex}
  html body #app .sx-dirty-1247 .sx-btns-1247 .sx-go-1247{display:inline-flex}
  html body #app .sx-btns-1247 .spin-1247{display:none}
  html body #app :is(.sx-busy-1247,.is-refreshing) .sx-btns-1247 .spin-1247{display:inline-block}
  html body #app :is(.sx-busy-1247,.is-refreshing) .sx-btns-1247 button{display:none!important}
  html body #app .sx-1247 .search-refresh:not(#z1247){display:none!important}

/* spinner used by search boxes and connection screens */
.spin-1247{width:18px;height:18px;margin:0 8px;border-radius:50%;border:2.2px solid rgba(26,92,145,.22);border-top-color:#1a5c91;animation:spin1247 .8s linear infinite;flex:0 0 auto}
@keyframes spin1247{to{transform:rotate(360deg)}}

/* 13: the Reload prompt — icons, calm colours */
html body #modal-root .reload-confirm-1247 .form-actions .btn:not(#z1247){display:inline-flex!important;align-items:center;justify-content:center;gap:8px}
html body #modal-root .reload-confirm-1247 .form-actions .btn svg{width:18px;height:18px;flex:0 0 18px}
html body #modal-root .reload-confirm-1247 [data-confirm-run-114]:not(#z1247):not(#y1247){background:#1a5c91!important;border-color:#1a5c91!important;color:#fff!important}
html body #modal-root .reload-confirm-1247 [data-action="close-modal"].btn:not(#z1247):not(#y1247){background:#f1f4f7!important;border-color:#dfe6ed!important;color:#3d5f80!important}

/* 19: four public counts — one row on desktop, 2 × 2 on phones */
html body #app .hero-metrics-115.hero-metrics-1247 .metric-icon-users{background:#f0ecfb;color:#6941c6}
html body #app .hero-metrics-115.hero-metrics-1247 .metric-icon-users svg{width:23px;height:23px;fill:none!important;stroke:currentColor!important}
@media (min-width:900px){
  html body #app .hero-metrics-115.hero-metrics-1247:not(#z1247){gap:26px!important;flex-wrap:nowrap!important}
}
@media (max-width:899.98px){
  html body #app .hero-metrics-115.hero-metrics-1247:not(#z1247):not(#y1247){display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px 12px!important;flex-direction:initial!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > div:not(#z1247):not(#y1247){display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;grid-template-rows:auto auto;column-gap:9px!important;row-gap:0!important;align-items:start!important;align-content:start!important;min-width:0}
  html body #app .hero-metrics-115.hero-metrics-1247 > div > .metric-icon:not(#z1247):not(#y1247){grid-row:1 / 3;align-self:start!important;width:40px!important;height:40px!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > div > .metric-icon svg:not(#z1247){width:21px!important;height:21px!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > div > strong:not(#z1247){font-size:21px!important;line-height:1.15!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > div > span:not(.metric-icon):not(#z1247){font-size:11.5px!important;line-height:1.25!important;white-space:normal!important}
}

/* 23: phones — no square tap flash in the top bar; each control lights up in its own rounded shape */
@media (max-width:899.98px){
  html body #app-shell > header.app-header :is(a,button,[role="button"]){-webkit-tap-highlight-color:transparent}
  html body #app-shell > header.app-header #cart-link:not(#z1247){border-radius:999px!important;-webkit-tap-highlight-color:transparent}
  html body #app-shell > header.app-header #cart-link:active:not(#z1247){background:#eef4f9!important}
  html body #app-shell > header.app-header #account-menu-trigger-110:not(#z1247){border-radius:999px!important}
  html body #app-shell > header.app-header #account-menu-trigger-110:active:not(#z1247){box-shadow:0 0 0 4px #eef4f9!important}
  html body .tb-1246 .tb-tool-1246:active:not(#z1247){filter:brightness(.95)}
  html body #app-shell > header.app-header :is(#portal-language-trigger,.portal-language-trigger):active:not(#z1247){background:#eef4f9!important}
  html body #app-shell > header.app-header :is(#mobile-menu-button,.menu-toggle):not(#z1247){border-radius:12px}
  html body #app-shell > header.app-header :is(#mobile-menu-button,.menu-toggle):active:not(#z1247){background:#eef4f9!important}
}
/* 11: ⋯ and Export menus open under the bar, inside the screen */
@media (max-width:899.98px){
  html body .tb-1246 .tb-menu-1246:not(#z1247):not(#y1247){position:fixed!important;top:calc(var(--ryu-fixed-header-h,64px) - 6px)!important;right:8px!important;left:auto!important;max-width:calc(100vw - 16px)!important}
}

/* 21: connection screens (every screen size) */
html.conn-open-1247 body{overflow:hidden}
#conn-1247.conn-1247{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:24px 20px calc(24px + env(safe-area-inset-bottom));background:#fff;overflow:auto}
.conn-card-1247{width:100%;max-width:420px;text-align:center;color:#14304d}
.conn-ico-1247{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;background:#eef4f9;color:#1a5c91;margin-bottom:18px}
.conn-down-1247 .conn-ico-1247{background:#fff4e5;color:#b54708}
.conn-failed-1247 .conn-ico-1247{background:#f1f4f7;color:#3d5f80}
.conn-ico-1247 svg{width:38px;height:38px}
.conn-card-1247 h2{margin:0 0 10px;font-size:22px;line-height:1.25;font-weight:800;letter-spacing:-.01em}
.conn-card-1247 > p{margin:0 auto 22px;max-width:340px;font-size:15px;line-height:1.5;color:#4b6178}
.conn-try-1247{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:200px;min-height:48px;padding:0 24px;border:0;border-radius:12px;background:#1a5c91;color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}
.conn-try-1247:disabled{opacity:.9;cursor:default}
.conn-try-1247 .spin-1247{margin:0;border-color:rgba(255,255,255,.35);border-top-color:#fff}
.conn-card-1247 > p.conn-code-1247{margin:14px auto 0;font-size:12px;color:#8a9bab;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.conn-card-1247 > p.conn-help-1247{margin:26px auto 0;font-size:13.5px;color:#6b7f93}
.conn-help-1247 a{color:#1a5c91;font-weight:700;text-decoration:none}
.conn-inline-1247{display:flex;justify-content:center;padding:48px 4px}
html.conn-open-1247 body #flash:not(#z1247){position:fixed!important;z-index:2147483600!important;left:12px;right:12px;bottom:calc(20px + env(safe-area-inset-bottom));top:auto}

/* 28: buttons that moved to the top bar are kept out of sight but laid out, so the page can still show or hide them */
@media (max-width:899.98px){
  html.tb-acct-1246 body #app .tb-moved-1247:not(#z1247):not(#y1247):not(#x1247){position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;overflow:hidden!important;clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important;border:0!important}
  html.tb-acct-1246 body #app :is(.page-head,.cart-heading).tb-head-1246.tb-empty-1246:not(#z1247):not(#y1247):not(#x1247):not(#w1247){display:block!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
}
/* END RYU 1.2.47 MAIN CSS */
/* BEGIN RYU 1.2.48 MAIN CSS */
/* RYU Portal 1.2.48 — CR-1.2.48 (see the JS layer header). */

@media (max-width:899.98px){
  /* 1: public pages — the page starts right under the bar */
  html.tb-pub-1246 body #app .page:not(#z1248):not(#y1248):not(#x1248){padding-top:8px!important}
  html.tb-pub-1246 body #app .first-1248:not(#z1248):not(#y1248):not(#x1248){margin-top:0!important;padding-top:0!important}
  /* 3: signed-in pages, the Dashboard included */
  html body.authenticated-110 .authenticated-stage-116:not(#z1248):not(#y1248){padding-top:var(--ryu-fixed-header-h,64px)!important}
  html.tb-acct-1246 body #app .page:not(#z1248):not(#y1248):not(#x1248){padding-top:6px!important}
  html body.authenticated-110 #app .page:has(> .content-column > .dash-1221):not(#z1248):not(#y1248):not(#x1248){padding-top:0!important}
  html body #app .dash-1221 > .seg-1221:not(#z1248):not(#y1248):not(#x1248):not(#w1248):not(#v1248){padding-top:4px!important}
  html.tb-acct-1246 body #app .first-1248:not(#z1248):not(#y1248):not(#x1248){margin-top:0!important}

  /* 20: the bar title is the same blue as the ‹ */
  html body .tb-1246 .tb-title-1246:not(#z1248):not(#y1248){color:#1a5c91!important}

  /* 4: About — no lines at the top and bottom of the list, Troubleshooting higher, copyright at the foot */
  html body #modal-root .about-1245 .ab-list-1244:not(#z1248):not(#y1248){border-top:0!important;border-bottom:0!important}
  html body #modal-root .about-1245 .ab-list-1244 > .ab-row-1244:first-child:not(#z1248){border-top:0!important}
  html body #modal-root .about-1245 .ab-list-1244 > .ab-row-1244:last-child:not(#z1248){border-bottom:0!important}
  html body #modal-root .about-1245 .ab-sec-1244:not(#z1248):not(#y1248){margin-top:10px!important}
  html body #modal-root .modal.pop-page-1221:has(.about-1245) > .dbody-1221.about-1245:not(#z1248):not(#y1248){display:flex!important;flex-direction:column!important;min-height:calc(100dvh - var(--ryu-fixed-header-h,64px) - 12px)!important;box-sizing:border-box}
  html body #modal-root .about-1245 .ab-copy-1245:not(#z1248):not(#y1248){margin:auto 0 calc(20px + env(safe-area-inset-bottom))!important;padding-top:24px}

  /* 4b: the QR code screen — no "MERCHANT", no "1 voucher", no back link at the bottom (the bar's ‹ does it) */
  html.code-1248 body .code-1225s .code-merchant-label-r19:not(#z1248),
  html.code-1248 body .code-1225s .code-count-1225s:not(#z1248),
  html.code-1248 body .code-1225s [data-code-back-r19]:not(#z1248){display:none!important}
  html.code-1248 body #app-shell > header.app-header #portal-language-dropdown:not(#z1248){display:none!important}

  /* 5: the profile menu's language button opens a small dropdown under it */
  html body #account-popover-110 .pop-namerow-1226:not(#z1248){position:relative!important}
  html body #account-popover-110 .pop-langs-1246{display:none!important}
  html body #account-popover-110 .pop-langdd-1248{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;min-width:150px;padding:6px;background:#fff;border:1px solid #d9e4ed;border-radius:12px;box-shadow:0 14px 30px -12px rgba(15,42,68,.35)}
  html body #account-popover-110 .pop-langdd-1248 .pop-lang-opt-1246{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:#14304d;font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}
  html body #account-popover-110 .pop-langdd-1248 .pop-lang-opt-1246.is-on-1246{background:#eef4f9}

  /* 6: My QR selection — a short two-line notice, less space above it */
  html body #app .wallet-qr-note-r19:not(#z1248):not(#y1248){margin-top:4px!important;padding-top:10px!important;padding-bottom:10px!important}
  html body #app .wallet-lock-txt-1225s .wallet-showall-1225s:not(#z1248){display:block!important;margin:2px 0 0!important;padding:0!important;min-height:0!important;height:auto!important}
  html body #app .page-head.wallet-selecting-1225s:not(:has(:is(.rq-sum-1246, .sel-count, [class*="count"]))):not(#z1248){min-height:0!important}

  /* 7: the bar's Empty cart is a plain icon, like the cart next to it */
  html body .tb-1246 .tb-tool-1246.cart-empty-1219:not(#z1248):not(#y1248):not(#x1248){border:0!important;background:transparent!important;box-shadow:none!important}

  /* 12: Email History — no status icon at the start of each row */
  html body #app .pl-row-1221 .thumb-icon-1220[class*="mail-"]:not(#z1248):not(#y1248){display:none!important}

  /* 24: Requests — pending left, unread right, smaller, a little space before the search box */
  html body #app .rq-sum-1246:not(#z1248):not(#y1248){display:flex!important;justify-content:space-between!important;align-items:baseline;font-size:12.5px!important;margin:2px 0 8px!important}
  html body #app .rq-sum-1246 > i:not(#z1248){display:none!important}
}

/* 9: public pages — an admin's profile menu shows no role line */
html body #account-popover-110.pub-admin-1248 :is(.role-desk-1234,.role-phone-1234):not(#z1248){display:none!important}

/* 10: the Reload prompt without icons */
html body #modal-root .reload-confirm-1247 .form-actions .btn svg:not(#z1248){display:none!important}

/* 13: Dashboard tiles press and focus in their own rounded shape */
html body #app .dtile-1221:not(#z1248){-webkit-tap-highlight-color:transparent;border-radius:16px}
html body #app .dtile-1221:active:not(#z1248){filter:brightness(.97)}
html body #app .dtile-1221:focus-visible:not(#z1248){outline:2px solid #9cc0e0;outline-offset:2px}
/* 18: a tile without a number shows its label centred; no "—", no "( )" while loading */
html body #app .dtile-1221:has(.spin-1221) .dtile-lq-1223:not(#z1248){display:none!important}
html body #app .dtile-nofig-1248 .dtile-body-1221:not(#z1248){align-self:center!important;justify-content:center!important}

/* 15: counts that link to their page */
html body #app .hero-metrics-1247 > a.metric-link-1248{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;border-radius:12px}
html body #app .hero-metrics-1247 > a.metric-link-1248:hover strong{color:#1a5c91}
html body #app .hero-metrics-1247 > a.metric-link-1248:focus-visible{outline:2px solid #9cc0e0;outline-offset:3px}
@media (max-width:899.98px){
  html body #app .hero-metrics-115.hero-metrics-1247 > a.metric-link-1248:not(#z1248):not(#y1248){display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;grid-template-rows:auto auto;column-gap:9px!important;row-gap:0!important;align-items:start!important;align-content:start!important;min-width:0}
  html body #app .hero-metrics-115.hero-metrics-1247 > a.metric-link-1248 > .metric-icon:not(#z1248):not(#y1248){grid-row:1 / 3;align-self:start!important;width:40px!important;height:40px!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > a.metric-link-1248 > strong:not(#z1248){font-size:21px!important;line-height:1.15!important}
  html body #app .hero-metrics-115.hero-metrics-1247 > a.metric-link-1248 > span:not(.metric-icon):not(#z1248){font-size:11.5px!important;line-height:1.25!important}
}

/* 21: the camera — no Cancel (‹ on phones, × on desktop), and what the photo is for */
html body #modal-root .cam-modal-1234 .cam-cancel-1234:not(#z1248){display:none!important}
html body #modal-root .cam-modal-1234 .cam-purpose-1248{margin:10px 0 4px;text-align:center;font-size:14px;font-weight:700;color:#1a5c91}

/* 23: the profile photo is a button */
html body #app .av-tap-1248{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%}
html body #app .av-tap-1248:focus-visible{outline:2px solid #9cc0e0;outline-offset:3px}

/* 21: with no Cancel, the shutter stays in the middle and the camera switch at its right */
html body #modal-root .cam-modal-1234 .cam-acts-1234:not(#z1248):not(#y1248){display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;justify-items:center}
html body #modal-root .cam-modal-1234 .cam-acts-1234 > .cam-shutter-1234:not(#z1248){grid-column:2!important}
html body #modal-root .cam-modal-1234 .cam-acts-1234 > .cam-switch-1234:not(#z1248){grid-column:3!important;justify-self:start!important;margin-left:18px!important}

@media (max-width:899.98px){html body #app .wallet-selecting-1225s ~ .lt-bar-1222:not(#z1248):not(#y1248):not(#x1248){display:none!important}}
/* END RYU 1.2.48 MAIN CSS */
/* BEGIN RYU 1.2.49 MAIN CSS */
/* RYU Portal 1.2.49 — CR-1.2.49 (see the JS layer header). */

@media (max-width:899.98px){
  /* 3: no list selection bar over a details screen */
  html:has(#modal-root .modal.pop-page-1221) body #app :is(.lt-bar-1222,.pl-selbar-1221,.sel-bar-1221):not(#z1249){visibility:hidden!important}

  /* 4 / 11 / 13 / 14 / 22: details summaries — two fields side by side, small grey label above the value */
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249:not(#z1249):not(#y1249):not(#x1249){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px 16px!important;margin:4px 0 14px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div:not(#z1249):not(#y1249):not(#x1249){display:block!important;min-width:0;border:0!important;padding:0!important;margin:0!important;background:transparent!important;box-shadow:none!important;grid-column:auto!important}
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div.kvw-1249:not(#z1249):not(#y1249):not(#x1249){grid-column:1 / -1!important}
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div > dt:not(#z1249):not(#y1249){display:block!important;width:auto!important;margin:0 0 2px!important;padding:0!important;font-size:11px!important;line-height:1.3!important;font-weight:600!important;color:#6b7f93!important;text-transform:none!important;letter-spacing:0!important}
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div > dd:not(#z1249):not(#y1249){display:block!important;margin:0!important;padding:0!important;font-size:14px!important;line-height:1.35!important;overflow-wrap:anywhere;min-width:0}
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div > dd small{display:block}

  /* 16: details screens start right under the bar (the empty band of the moved heading is gone) */
  html body #modal-root .modal.pop-page-1221.tb-popped-1246 > .modal-head.dh-1221:not(#z1249):not(#y1249){display:none!important}
  html body #modal-root .modal.pop-page-1221.tb-popped-1246:not(#z1249):not(#y1249){padding-top:10px!important}
  html body #modal-root .modal.pop-page-1221.tb-popped-1246 > .dbody-1221 > :first-child:not(#z1249){margin-top:0!important}

  /* 18: the email subject on its own line above the message */
  html body #modal-root .eh-subj-1249{margin:2px 0 12px;padding:10px 12px;border-radius:12px;background:#f5f8fb}
  html body #modal-root .eh-subj-1249 > span{display:block;font-size:11px;font-weight:600;color:#6b7f93;margin-bottom:2px}
  html body #modal-root .eh-subj-1249 > strong{display:block;font-size:15px;line-height:1.35;color:#14304d;overflow-wrap:anywhere}

  /* 5: the category badge closer to the voucher name */
  html body #app .voucher-card .voucher-body > .voucher-meta:not(#z1249):not(#y1249){margin-bottom:-3px!important}

  /* 6: no sticky hover look on the header buttons after a tap */
  html body .app-header #cart-link:hover:not(:active):not(#z1249):not(#y1249),
  html body .app-header #account-menu-trigger-110:hover:not(:active):not(#z1249):not(#y1249){background:transparent!important}

  /* 9: one voucher on the QR screen — no "× 1", no Total */
  html body .code-1225s .code-sum-1225s.one-1249 .code-line-qty-r19:not(#z1249),
  html body .code-1225s .code-sum-1225s.one-1249 .code-total-r19:not(#z1249){display:none!important}

  /* 20: spacing review — Scan QR: Recent scans right under the bar */
  html.tb-acct-1246 body #app .stk-scan-1228s > .rs-b20:not(#z1249):not(#y1249):not(#x1249){margin-top:0!important}
  html.tb-acct-1246 body #app .stk-scan-1228s > .page-head.scan-head-1223:not(#z1249):not(#y1249){margin:0!important}
  /* 20: Store, Merchants, Categories — less space between the counts, the photos and the search box */
  html body #app .public-discovery-hero:not(#z1249):not(#y1249):not(#x1249){row-gap:16px!important;padding-bottom:10px!important;margin-bottom:12px!important}
  html body #app .public-discovery-hero .hero-carousel-dots-121:not(#z1249){margin-top:4px!important}
  /* 20: public pages (Contact, Terms and the lists) start about 12px under the bar */
  html.tb-pub-1246 body #app > .page:not(#z1249):not(#y1249):not(#x1249):not(#w1249),
  html body #app > .page:is(:has(> .portal-contact-layout),:has(> .terms-head-111)):not(#z1249):not(#y1249):not(#x1249):not(#w1249){padding-top:12px!important}
  /* 19: Scan QR from the Dashboard — nothing drawn until the camera is up */
  html:is(.scan-go-1249,.rd-wait-1249) body #app:not(#z1249){visibility:hidden!important}
  /* 21: the scanner page never shows the old large "Scan merchant QR" layout on its way into the bar */
  html.tb-acct-1246 body #app .stk-scan-1228s > :is(.dash-back-1222,.scan-card-r19):not(#z1249):not(#y1249):not(#x1249){position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;overflow:hidden!important;clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important;border:0!important}
}

/* 10: app — the Dashboard foot line */
html body #app .dash-1221 > .dash-foot-1249{margin:22px 0 calc(10px + env(safe-area-inset-bottom));text-align:center;font-size:11.5px;color:#7a8ea3}
/* END RYU 1.2.49 MAIN CSS */
/* BEGIN RYU 1.2.50 MAIN CSS */
/* RYU Portal 1.2.50 — CR-1.2.50 (see the JS layer header). */

@media (max-width:899.98px){
  /* 2: no tap highlight left on the next screen (it showed as a blue band in the middle of a details screen) */
  html body #app, html body #app *, html body #modal-root, html body #modal-root *{-webkit-tap-highlight-color:transparent}
  html body #app li.pl-row-1221:active:not(#z1250){background:#eef4fa}

  /* 6: Recent scans — no heading or "Last 30 days" over the list; the list starts under the bar */
  html.rs-1250 body #app .stk-scan-1228s .rs-head-b20:not(#z1250):not(#y1250):not(#x1250){display:none!important}
  html.rs-1250 body #app .stk-scan-1228s > .rs-b20:not(#z1250):not(#y1250){margin-top:4px!important}

  /* 7: the bar's Scan merchant QR button: a QR code icon only */
  html body .tb-1246 .tb-tools-1246 .btn-scan-r19 .qr-ico-1250{width:22px;height:22px}
  html body .tb-1246 .tb-tools-1246 .btn-scan-r19:has(.qr-ico-1250) > span:not(#z1250){display:none!important}

  /* 8 / 9: one-voucher QR screen — no line under the name and amount, none under the top bar */
  html body .code-panel-r19:has(.code-sum-1225s.one-1249):not(#z1250):not(#y1250){border-top:0!important;box-shadow:none!important}
  html body .code-sum-1225s.one-1249 .code-lines-r19 > li:not(#z1250):not(#y1250){border-bottom:0!important}
}

/* 10 / 11 app About: the version rows right under the bar, Troubleshooting right after Portal version */
html body #modal-root .modal.dpop-about-1244.tb-popped-1246:not(#z1250):not(#y1250):not(#x1250){padding-top:2px!important}
html body #modal-root .modal.dpop-about-1244 .about-1244 > .ab-list-1244:not(#z1250):not(#y1250){margin-top:0!important;margin-bottom:0!important;padding-top:0!important}
html body #modal-root .modal.dpop-about-1244 .about-1244 > .ab-list-1244 > .ab-row-1244:first-child:not(#z1250):not(#y1250){padding-top:4px!important}
html body #modal-root .modal.dpop-about-1244 .about-1244 > .ab-sec-1244:not(#z1250):not(#y1250){margin-top:0!important;padding-top:0!important}

/* 12 app: the Dashboard foot line keeps a bottom margin */
html body #app .dash-1221 > .dash-foot-1249:not(#z1250){margin-bottom:0!important}
html.app-1250 body .authenticated-stage-116:has(.dash-1221 > .dash-foot-1249):not(#z1250){padding-bottom:calc(16px + env(safe-area-inset-bottom))!important}

/* 14 app: no View page / View public profile links (they would replace the app's page) */
html.app-1250 body :is(a.sf-view-1222s, a.mp-view-1223s):not(#z1250){display:none!important}

/* 15: the voucher and merchant counts look pressed when tapped or clicked */
html body #app a.metric-link-1248:not(#z1250){border-radius:12px;transition:background-color .12s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}
html body #app a.metric-link-1248:active:not(#z1250){background:rgba(26,92,145,.12)!important;transform:scale(.96)}
html body #app a.metric-link-1248:focus-visible:not(#z1250){outline:2px solid #1a5c91;outline-offset:2px}
@media (hover:hover){html body #app a.metric-link-1248:hover:not(#z1250){background:rgba(26,92,145,.07)}}

/* 17: camera previews are black until the picture arrives */
html body #modal-root .cam-view-1234 video, html body .scan-overlay-r19 video{background:#000}

/* 18: Take Photo in landscape — the buttons in a column beside the preview */
@media (orientation:landscape) and (max-height:560px){
  html body #modal-root .modal.cam-modal-1234 .cam-1234:not(#z1250):not(#y1250){display:grid!important;grid-template-columns:minmax(0,auto) auto!important;grid-template-rows:1fr auto auto 1fr!important;column-gap:24px!important;row-gap:8px!important;align-items:center!important;justify-content:center!important;width:100%!important;max-width:none!important;height:calc(100dvh - 100px)!important;margin:0 auto!important;padding:0!important}
  html body #modal-root .modal.cam-modal-1234 .cam-1234 > .cam-view-1234:not(#z1250):not(#y1250){grid-column:1!important;grid-row:1 / 5!important;height:100%!important;width:auto!important;max-width:calc(100vw - 150px)!important;aspect-ratio:4 / 3;margin:0!important;align-self:center!important}
  html body #modal-root .modal.cam-modal-1234 .cam-1234 > .cam-view-1234 video{width:100%!important;height:100%!important;object-fit:cover}
  html body #modal-root .modal.cam-modal-1234 .cam-1234 > .cam-acts-1234:not(#z1250):not(#y1250){grid-column:2!important;grid-row:2!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:16px!important;width:auto!important;margin:0!important;padding:0!important;align-self:center!important}
  html body #modal-root .modal.cam-modal-1234 .cam-1234 > .cam-purpose-1248:not(#z1250){grid-column:2!important;grid-row:3!important;align-self:start!important;margin:0!important;max-width:120px;text-align:center}
  html body #modal-root .modal.cam-modal-1234:not(#z1250){overflow:hidden!important}
}
/* END RYU 1.2.50 MAIN CSS */
/* BEGIN RYU 1.2.51 MAIN CSS */
/* RYU Portal 1.2.51 — CR-1.2.51 (see the JS layer header). */

/* 1: nothing of Recent scans shows while the camera opens (all widths) */
html.scan-go-1249 body #app:not(#z1251){visibility:hidden!important}

/* 2: the QR scanner fills the screen in landscape on phones, preview on the left, controls on the right */
@media (orientation:landscape) and (max-height:560px){
  html body .scan-overlay-r19:not(#z1251){padding:0!important;background:#0d1b2a!important;place-items:stretch!important;backdrop-filter:none!important}
  html body .scan-overlay-r19 .scan-panel-r19:not(#z1251):not(#y1251){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(240px,34%)!important;grid-template-rows:auto auto auto 1fr!important;grid-auto-flow:row;column-gap:16px!important;row-gap:10px!important;align-content:start;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;overflow:hidden!important;border-radius:0!important;box-shadow:none!important;background:#0d1b2a!important;padding:calc(env(safe-area-inset-top,0px) + 10px) calc(env(safe-area-inset-right,0px) + 14px) calc(env(safe-area-inset-bottom,0px) + 10px) calc(env(safe-area-inset-left,0px) + 14px)!important}
  html body .scan-overlay-r19 .scan-panel-r19 > *{grid-column:2;min-width:0}
  html body .scan-overlay-r19 .scan-panel-r19 > .scan-stage-r19:not(#z1251):not(#y1251){grid-column:1!important;grid-row:1 / -1!important;height:100%!important;min-height:0!important;aspect-ratio:auto!important;border-radius:14px!important}
  html body .scan-overlay-r19 .scan-panel-r19 > .scan-stage-r19 video{width:100%;height:100%;object-fit:cover}
  html body .scan-overlay-r19 .scan-stage-r19 .scan-frame-r19:not(#z1251){width:auto!important;height:min(70%,250px)!important;aspect-ratio:1 / 1}
  html body .scan-overlay-r19 .scan-head-r19 h2{color:#fff}
  html body .scan-overlay-r19 .scan-iconbtn-r19{color:#fff}
  html body .scan-overlay-r19 .scan-msg-r19:not(#z1251){background:rgba(255,255,255,.1);color:#e3edf6;margin:0}
  html body .scan-overlay-r19 .scan-msg-r19.warn-r19:not(#z1251){background:#5c4300;color:#ffe7b0}
  html body .scan-overlay-r19 :is(.scan-manual-r19 label,.scan-hint-r19){color:#a9bccd}
}

@media (max-width:899.98px){
  /* 4: signed-in pages start right under the top bar */
  html.tb-acct-1246 body #app .page:not(#z1251):not(#y1251):not(#x1251):not(#w1251){padding-top:0!important}

  /* 5: merchant My QR — the Back to Dashboard link (and its pressed background) sits fully under the bar */
  html body #app a.dash-back-qr-1222:not(#z1251):not(#y1251):not(#x1251){margin-top:4px!important;top:68px!important}

  /* 6: order summary without Items */
  html body #modal-root .modal.pop-page-1221 dl.kv2-1249 > div.items-off-1251:not(#z1251):not(#y1251):not(#x1251):not(#w1251){display:none!important}

  /* 7: request amount like a transaction amount */
  html body #modal-root dd > .req-amt-1251{font-weight:700}

  /* 8: email subject — a bold "Subject" heading like "Message", the subject below in normal weight, at most 4 lines */
  html body #modal-root .eh-subj-1249:not(#z1251){margin:2px 0 4px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  html body #modal-root .eh-subj-1249 > span:not(#z1251){margin:0 0 4px!important;font-size:14px!important;font-weight:700!important;color:#26405c!important}
  html body #modal-root .eh-subj-1249 > strong:not(#z1251){font-size:14px!important;font-weight:400!important;line-height:1.4!important;color:#1f3550!important;display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
}
/* END RYU 1.2.51 MAIN CSS */
