/* Reason: purchase choice is neutral until a wallet is selected; Smart Net's
   familiar ticket layout and merchant logo remain the visual anchors. */
body[data-provider=""],body[data-step="entry"]{
 --accent:#244b60;
 --secondary:#244b60;
 --accent-soft:#edf3f6;
 --focus:rgba(36,75,96,.14);
 --button-bg:#193e52;
}
.masthead{border-bottom-color:var(--accent)}
.header-history svg{color:currentColor}
body[data-provider=""] .history-count{background:#e4edf2;color:#21485d}
body[data-provider=""] .catalog-emblem{background:#e8f0f4;border-color:#d1dfe7;color:#31596d}
body[data-provider=""] .product-row.selected{border-color:#315d74;background:#f1f6f9;box-shadow:0 0 0 1px #315d74,0 6px 18px #244b6010}
body[data-provider=""] .product-row.selected::before,body[data-provider=""] .product-row.selected::after{border-color:#315d74}
body[data-provider=""] .product-row.selected::before{border-inline-start-color:transparent}
body[data-provider=""] .product-row.selected::after{border-inline-end-color:transparent}
body[data-provider=""] .stepper.empty{background:#edf3f6;border-color:#d5e1e8}
body[data-provider=""] .stepper.empty button{color:#244b60}
body[data-provider=""] .product-row.selected .stepper button[data-action="add"]{background:#193e52;color:#fff}
body[data-provider=""] .support-row svg,body[data-provider=""] .history-empty>svg{color:#426a7e}
body[data-provider=""] .journey-progress>li.complete>span{border-color:#c8d9e2;background:#e8f0f4;color:#31596d}

/* Reason: two equal entry choices explain the available wallets without
   promoting one as the default or filling the first screen with instructions. */
body[data-step="entry"] main.shell{max-width:840px;padding-block:36px 22px}
.entry-intro{margin:0 0 24px;text-align:center}
.entry-intro h1{margin:0 0 8px;font-size:36px;letter-spacing:-.4px;color:#102d3a}
.entry-intro p{font-size:16px;color:var(--muted)}
.purchase-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.purchase-path:only-child{grid-column:1/-1}
.purchase-path{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:16px;width:100%;padding:25px 22px;border:1px solid #d3e0e7;border-radius:20px;background:#fff;color:var(--ink);text-align:start;box-shadow:0 5px 18px #17374708}
.path-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #dbe6ec;border-radius:14px;background:#eff4f7;color:#31596d}
.path-icon svg{width:25px;height:25px;stroke-width:1.7}
.path-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:6px}
.path-copy strong{font-size:22px;line-height:1.5;color:#102d3a}
.path-provider{font-size:15px;font-weight:700;color:#365c70;line-height:1.5}
/* Reason: actual wallet marks explain each route before purchase; replacing
   the generic icon leaves room for both names even on a 320px screen. */
.purchase-path:has(.path-wallets){grid-template-columns:minmax(0,1fr) 20px}
.purchase-path:has(.path-wallets)>.path-icon{display:none}
.path-provider:has(.path-wallets){display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;max-width:100%;line-height:1.7}
.path-wallets{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;line-height:1}
.path-wallets img{display:block;width:28px;height:28px;flex:0 0 28px;object-fit:contain;border-radius:5px;background:#fff;box-shadow:0 0 0 1px #17374712}
.path-provider:has(.path-wallets)>span:last-child{min-width:0}
.path-description{font-size:13px;font-weight:400;line-height:1.7;color:#586d79}
.path-arrow{color:#708793;display:grid;place-items:center;justify-self:end}
.path-arrow svg{width:19px;height:19px}
.entry-help{margin:18px 0 0;text-align:center;font-size:13px;line-height:1.7;color:#586d79}
.entry-help svg{width:16px;height:16px;margin-inline-end:4px;color:#587584}

/* Reason: instructions are accessible before selection and before entering a
   phone number, but are collapsed so returning customers keep a short route. */
.catalog-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px;margin-bottom:15px}
.catalog-toolbar>button[data-action="entry"]{min-height:44px;padding:9px 12px;border-color:#d5e1e7;background:#fff;color:#36596c;font-size:14px}
.catalog-toolbar>button[data-action="entry"] svg{width:17px;height:17px}
.purchase-guide{max-width:100%;font-size:14px;color:#456475}
.purchase-guide summary,.device-options summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 6px;cursor:pointer;list-style:none;font-weight:700}
.purchase-guide summary::-webkit-details-marker,.device-options summary::-webkit-details-marker{display:none}
.purchase-guide summary::after,.device-options summary::after{content:"";width:7px;height:7px;margin-inline-start:5px;margin-top:-4px;border-inline-end:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform 160ms ease}
.purchase-guide[open] summary::after,.device-options[open] summary::after{transform:rotate(225deg);margin-top:4px}
.purchase-guide[open]{flex-basis:100%;padding:0 14px 12px;border:1px solid #dbe5eb;border-radius:14px;background:#fff}
.purchase-guide ol{margin:4px 0 0;padding-inline:24px 4px;font-size:14px;color:#466273;line-height:1.9}
.purchase-guide li+li{margin-top:3px}
.catalog-intro .page-heading p{max-width:52ch;line-height:1.7}

/* Reason: total and quantity have a stable position while the action changes
   from reaching the minimum to continuing; measured space prevents overlap. */
.sticky-checkout{gap:18px}
.cart-summary{display:flex;flex:0 0 auto;flex-direction:column;gap:2px;min-width:112px;line-height:1.5}
.cart-summary strong{display:block;font-size:20px;white-space:nowrap;color:#163a4d;font-variant-numeric:tabular-nums}
.cart-summary>span{font-size:13px;color:#5a6f7a}
.sticky-checkout>.minimum-row{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.minimum-row>span{font-size:14px;line-height:1.6;color:#496371}
.minimum-row>button{flex:0 1 auto;min-height:44px;padding:9px 13px;border-color:#cedce4;background:#f3f7f9;color:#254e64;font-size:14px}
.sticky-checkout .empty-state{text-align:start;color:#586d79}
body[data-step="catalog"],body[data-step="wallet"]{padding-bottom:calc(var(--checkout-height,100px) + 40px + env(safe-area-inset-bottom))}
.product-row,.product-row button{scroll-margin-bottom:calc(var(--checkout-height,100px) + 36px + env(safe-area-inset-bottom))}
button.primary[aria-busy="true"]{opacity:1;cursor:progress}
.primary[aria-busy="true"] .spinner{border-color:#ffffff70;border-top-color:#fff}

/* Reason: a disabled wallet still needs a readable explanation; fading the
   entire control hides the reason customers need to decide what to do next. */
.provider-option{align-items:center}
.provider-option>span{min-width:0;overflow-wrap:break-word}
.provider-option small{font-size:13px;line-height:1.65;color:#536875}
.provider-option:disabled{opacity:1;background:#f2f5f7;border-color:#dce5ea;color:#526774}
.provider-option:disabled small{color:#526774}
.provider-option:disabled img{opacity:.58}
.provider-option:disabled::after{display:none}

/* Reason: confirm wallet, amount and count beside the phone field before the
   explicit continue button; less-used device options stay in a disclosure. */
.phone-order-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px 12px;margin:0 0 22px;padding:12px 15px;border:1px solid #dde7ec;border-radius:13px;background:#f5f8fa;color:#4d6673;font-size:14px;line-height:1.65}
.phone-order-summary strong{color:#163a4d;font-size:17px;white-space:nowrap}
.phone-order-summary .provider-badge{font-size:14px}
.phone-review-note{margin:10px 0 16px;font-size:13px;line-height:1.7;color:#536c79}
.device-options{margin-top:17px;padding-top:8px;border-top:1px solid #e2e9ed;color:#4f6978;font-size:14px}
.device-options summary{padding-inline:0;font-weight:400}
.device-options .device-choice{margin:8px 0 0}
.device-options>button{width:100%;margin-top:7px}
.device-options p{margin-top:9px;font-size:13px;line-height:1.7}
.recent-phones{margin-block:12px}
.recent-phones:empty{margin:0}
.recent-phones button{min-height:44px;white-space:normal}
.checkout-card .page-heading{margin-bottom:20px}
#phoneError:empty,#otpError:empty{display:none}

/* Reason: new quick products come from the catalog, so their layout must
   accommodate any supported count without hiding a fourth product. */
.quick-products{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.quick-products .product-row{min-width:0}
.quick-products .quick-choice{min-height:44px;display:flex;align-items:center;justify-content:center}

/* Reason: receipt actions have visible labels instead of relying on icons;
   using the card is primary, with copy and PDF remaining easy to find. */
.internet-card .card-actions{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));gap:9px}
.internet-card .card-actions>.receipt-action{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:48px;height:auto;flex:auto;padding:10px 12px;font-size:14px;line-height:1.5;white-space:normal}
.internet-card .card-actions>.primary{font-size:16px}
.receipt-action svg{width:18px;height:18px;flex:0 0 18px}
.credential strong{overflow-wrap:anywhere}
.checkout-card .actions.stack{gap:10px}
.checkout-card .actions.stack>button,.checkout-card .actions.stack>a{min-height:46px}

@media(max-width:900px){
 .purchase-path{grid-template-columns:42px minmax(0,1fr) 16px;gap:12px;padding:22px 18px}
 .path-icon{width:42px;height:42px;border-radius:12px}
 .path-copy strong{font-size:21px}
 .quick-products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 body[data-step="entry"] main.shell{padding-block:24px 12px}
 .entry-intro{margin-bottom:20px;text-align:start}
 .entry-intro h1{font-size:29px;margin-bottom:6px}
 .entry-intro p{font-size:14px;line-height:1.7}
 .purchase-paths{grid-template-columns:minmax(0,1fr);gap:12px}
 .purchase-path{grid-template-columns:42px minmax(0,1fr) 16px;gap:12px;padding:19px 16px;border-radius:17px}
 .path-copy{gap:4px}
 .path-copy strong{font-size:21px}
 .path-provider{font-size:14px}
 .path-description{font-size:13px}
 .entry-help{font-size:12px;margin-top:16px;text-align:start}
 .catalog-toolbar{margin-bottom:12px;gap:8px}
 .catalog-toolbar>button[data-action="entry"],.purchase-guide{font-size:13px}
 .purchase-guide ol{font-size:13px;line-height:1.9}
 .sticky-checkout{gap:12px;padding:11px 12px}
 .cart-summary{min-width:103px;gap:1px}
 .cart-summary strong{font-size:18px}
 .cart-summary>span{font-size:12px}
 .sticky-checkout:has(.minimum-row){display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}
 .sticky-checkout:has(.minimum-row)>.minimum-row{display:flex;flex-direction:column;align-items:stretch;gap:5px;flex-basis:auto}
 .minimum-row>span{font-size:12px;text-align:center}
 .minimum-row>button{min-height:44px;padding:8px 9px;font-size:12px}
 .phone-order-summary{margin-bottom:18px;padding:10px 12px;font-size:13px}
 .phone-order-summary strong{font-size:16px}
 .phone-review-note{font-size:13px;margin-block:8px 14px}
 .device-options{margin-top:14px}
 .provider-option small{font-size:13px}
 .quick-products{grid-template-columns:minmax(0,1fr)}
 .internet-card .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .internet-card .card-actions>.primary{grid-column:1/-1;font-size:16px}
 .internet-card .card-actions>.receipt-action{min-height:46px;padding:10px 8px;font-size:14px}
 .checkout-card .page-heading{margin-bottom:17px}
}
@media(max-width:359px){
 .entry-intro h1{font-size:27px}
 .purchase-path{grid-template-columns:38px minmax(0,1fr) 14px;gap:10px;padding:17px 13px}
 .path-icon{width:38px;height:38px;border-radius:11px}
 .path-icon svg{width:22px;height:22px}
 .path-copy strong{font-size:20px}
 .path-provider{font-size:13px}
 .cart-summary{min-width:96px}
 .cart-summary strong{font-size:17px}
 .sticky-checkout{padding:10px;gap:9px}
 .provider-option{gap:10px}
 .provider-option img{max-width:35px}
}
@media(hover:hover) and (pointer:fine){
 .purchase-path:not(:disabled):hover{border-color:#86a3b3;background:#fbfdfe;box-shadow:0 8px 24px #17374712;transform:translateY(-2px)}
 body[data-provider=""] .product-row.selected:hover{border-color:#315d74}
 body[data-provider=""] .stepper button:not(:disabled):hover{background:#e1ecf2}
 body[data-provider=""] .product-row.selected .stepper button[data-action="add"]:hover{background:#102f40}
}
/* Reason: a landscape phone needs content space more than a fixed summary;
   optional hover and disclosure motion respect reduced-motion preferences. */
@media(max-height:420px) and (max-width:950px){
 body[data-step="entry"] main.shell{padding-block:16px 12px}
 .entry-intro{margin-bottom:14px}
 .entry-intro h1{font-size:28px}
 .purchase-path{padding:15px 12px}
 .path-description{font-size:12px}
 body[data-step="catalog"],body[data-step="wallet"]{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .product-row,.product-row button{scroll-margin-bottom:16px}
}
@media(min-width:480px) and (max-width:950px) and (max-height:420px){
 .purchase-paths{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){
 .purchase-path,.purchase-guide summary::after,.device-options summary::after{transition:none}
 .purchase-path:not(:disabled):hover{transform:none}
}
