/* Checkout-ready plan review. The payment-provider hand-off is deliberately
   disconnected until a provider is selected and wired to the server. */
.price-grid .plan-card-action { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; margin-top:auto; padding:12px 0 1px; border:0; background:transparent; color:#9cedc8; cursor:pointer; font-size:.69rem; letter-spacing:.01em; }
.price-grid .plan-card-action:hover { color:#e8fff4; transform:translateX(2px); }
.price-grid .plan-card-action b { font-size:1rem; line-height:.7; }
.price-grid .plan-card-action:focus-visible { outline:3px solid #99a4ff; outline-offset:4px; border-radius:4px; }
body.plan-dialog-open { overflow:hidden; }

.plan-dialog { width:min(880px,calc(100vw - 28px)); max-height:min(760px,calc(100vh - 28px)); margin:auto; padding:0; border:1px solid #5d7184; border-radius:22px; background:#121820; color:#f2f6f8; box-shadow:0 26px 90px #0000009c; overflow:auto; }
.plan-dialog::backdrop { background:#02070bd4; backdrop-filter:blur(6px); }
.plan-dialog-shell { position:relative; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(255px,.82fr); min-height:520px; }
.plan-dialog-copy { padding:38px 34px 32px; }
.plan-dialog-close { position:absolute; z-index:2; top:14px; right:15px; display:grid; place-items:center; width:32px; height:32px; border:1px solid #536273; border-radius:9px; background:#17202a; color:#d5dde5; font:400 1.35rem/1 system-ui; cursor:pointer; }
.plan-dialog-close:hover { border-color:#88dab8; background:#1e2b33; color:#fff; }
.plan-dialog h2 { max-width:430px; margin:0; color:#fbfcfe; font-size:clamp(2rem,4vw,2.8rem); letter-spacing:-.06em; line-height:.95; }
.plan-dialog-description { max-width:510px; margin:15px 0 0; color:#b5c0ca; font-size:.9rem; line-height:1.58; }
.plan-progress { display:flex; align-items:center; gap:8px; margin:27px 0 29px; color:#7f8d9b; font-size:.6rem; font-weight:800; letter-spacing:.04em; }
.plan-progress span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.plan-progress b { display:grid; place-items:center; width:21px; height:21px; border:1px solid #536373; border-radius:50%; font-size:.58rem; }
.plan-progress .is-current { color:#a9f0cc; }
.plan-progress .is-current b { border-color:#69dca9; background:#1e5c48; color:#e8fff4; box-shadow:0 0 0 4px #72e1ae12; }
.plan-progress i { display:block; flex:1; min-width:12px; height:1px; background:#43505b; }
.plan-dialog-details { display:grid; gap:13px; }
.plan-dialog-details section { padding:15px 16px; border:1px solid #3d4b59; border-radius:13px; background:#171e27; }
.plan-dialog-details h3 { margin:0 0 9px; color:#ecf4f6; font-size:.77rem; letter-spacing:-.015em; }
.plan-dialog-details ul { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.plan-dialog-details li { position:relative; padding-left:15px; color:#aab7c3; font-size:.7rem; line-height:1.5; }
.plan-dialog-details li::before { content:""; position:absolute; top:.48em; left:0; width:6px; height:6px; border-radius:50%; background:#72dfad; box-shadow:0 0 0 3px #72dfad1c; }

.plan-order-summary { display:flex; flex-direction:column; padding:38px 30px 30px; border-left:1px solid #42505c; background:radial-gradient(470px 370px at 100% 0,#244f423d,transparent 70%),linear-gradient(155deg,#18252b,#141b22); }
.plan-order-summary>p { margin:0; color:#95afc2; font-size:.58rem; font-weight:850; letter-spacing:.13em; }
.plan-order-summary h3 { margin:17px 0 5px; color:#f4f8fb; font-size:1.2rem; letter-spacing:-.035em; }
.plan-order-summary>strong { color:#8ee8bd; font-size:2.3rem; letter-spacing:-.07em; }
.plan-order-summary>span { margin-top:5px; color:#a9b6c1; font-size:.7rem; }
.plan-summary-rule { height:1px; margin:23px 0 16px; background:#ffffff16; }
.plan-order-summary dl { display:grid; gap:11px; margin:0; }
.plan-order-summary dl div { display:flex; justify-content:space-between; gap:14px; }
.plan-order-summary dt { color:#92a0ad; font-size:.66rem; }
.plan-order-summary dd { margin:0; color:#e3eaed; font-size:.66rem; font-weight:750; text-align:right; }
.plan-checkout-button { width:100%; margin-top:auto; padding:12px 14px!important; font-size:.73rem!important; }
.plan-dialog-status { min-height:2.3em; margin:12px 0 0; color:#9eabb5; font-size:.62rem; line-height:1.45; text-align:center; }
.payment-unavailable { display:grid; gap:7px; margin-top:12px; padding:13px; border:1px solid #b8955b; border-radius:11px; background:#3e321b6b; color:#e4c792; }
.payment-unavailable[hidden] { display:none; }
.payment-unavailable b { font-size:.7rem; }.payment-unavailable span { color:#d0c2a8; font-size:.63rem; line-height:1.45; }
.payment-unavailable button,.payment-unavailable a { justify-self:start; padding:0; border:0; background:none; color:#c4f2d8; font:800 .64rem inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.payment-unavailable button:focus-visible,.plan-dialog-close:focus-visible { outline:3px solid #9ca7ff; outline-offset:3px; }
.plan-dialog[data-stage="checkout"] .plan-progress span:nth-of-type(2) { color:#f6d594; }
.plan-dialog[data-stage="checkout"] .plan-progress span:nth-of-type(2) b { border-color:#d7ad6e; background:#5e4826; color:#fff4d8; }
.plan-dialog[data-stage="checkout"] .plan-checkout-button { display:none; }

@media(max-width:720px) { .plan-dialog { max-height:calc(100vh - 18px); border-radius:17px; }.plan-dialog-shell { grid-template-columns:1fr; }.plan-dialog-copy { padding:32px 20px 23px; }.plan-order-summary { padding:24px 20px; border-top:1px solid #42505c; border-left:0; }.plan-order-summary>strong { font-size:2rem; }.plan-checkout-button { margin-top:20px; }.plan-progress { gap:5px; font-size:.52rem; }.plan-progress b { width:18px; height:18px; }.plan-progress i { min-width:5px; }.plan-dialog-details { gap:9px; } }
@media(max-width:420px) { .plan-progress span { gap:4px; }.plan-progress span:nth-of-type(2) { max-width:70px; white-space:normal; }.plan-progress span:nth-of-type(3) { max-width:56px; white-space:normal; }.plan-dialog-copy { padding-inline:17px; }.plan-order-summary { padding-inline:17px; } }
