/* Shared public purchase shell: plans and account creation use the same tokens. */
html[data-ui-theme] body.ui-purchase-page {
  min-height:100vh; min-height:100dvh; display:flex; flex-direction:column;
  margin:0; overflow-x:clip; background:var(--ui-canvas); color:var(--ui-text);
}
.ui-purchase-header, .ui-purchase-shell { width:min(1180px,100%); margin-inline:auto; padding:24px; }
.ui-purchase-header { display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid var(--ui-line); }
.ui-purchase-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ui-text); }
.ui-purchase-brand strong, .ui-purchase-brand small { display:block; }
.ui-purchase-brand small { color:var(--ui-muted); }
.ui-purchase-tools { display:flex; align-items:center; gap:20px; }
.ui-purchase-shell { flex:1; padding-block:40px; }
.ui-purchase-page > .app-legal-footer { position:static; flex-shrink:0; margin-top:auto; width:100%; }
.ui-purchase-page :is(.muted-link,.auth-link) { color:var(--ui-readable-action); text-decoration:underline; text-underline-offset:3px; }
html[data-ui-theme] .ui-purchase-page :is(button,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,.cta-btn) { min-height:44px; }
.ui-purchase-page .form-check { display:flex; align-items:flex-start; gap:12px; padding-left:0; }
.ui-purchase-page .form-check input { float:none; flex-shrink:0; margin:12px 0 0; }
.ui-purchase-page .form-check-label { min-height:44px; padding-block:10px; }
.ui-purchase-shell > h1 { font-size:clamp(2rem,4vw,3rem); }
.ui-purchase-page .cta-btn { display:block; width:100%; padding:14px 20px; border:1px solid var(--ui-action); border-radius:var(--ui-radius); background:var(--ui-action); color:var(--ui-on-action); text-align:center; text-decoration:none; font-weight:700; }
.ui-purchase-page .cta-btn:hover { filter:brightness(.95); }
.ui-purchase-page :is(.eyebrow,.section-kicker) { color:var(--ui-muted); font-size:.8rem; font-weight:700; margin-bottom:8px; }
.ui-purchase-page :is(.muted-copy,.config-intro,.terms-note,.login-tagline) { color:var(--ui-muted); }
.ui-purchase-page .terms-note { font-size:.85rem; margin-top:12px; }
.ui-purchase-panel { padding:24px; background:var(--ui-surface); border:1px solid var(--ui-line); border-radius:var(--ui-radius); min-width:0; }
.signup-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,380px); gap:24px; align-items:start; }
.signup-summary { grid-column:2; grid-row:1; position:sticky; top:24px; }
.signup-form { grid-column:1; grid-row:1; }
.signup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.signup-grid .full-span { grid-column:1 / -1; }
.signup-grid .mb-3 { margin-bottom:0; }
.signup-form fieldset { margin:0 0 24px; }
.signup-form legend { font-size:1.1rem; font-weight:700; margin-bottom:16px; }
.signup-summary .summary-line { display:flex; justify-content:space-between; gap:16px; padding-block:8px; border-bottom:1px solid var(--ui-line); }
.signup-summary .summary-total { font-size:1.75rem; font-weight:700; font-variant-numeric:tabular-nums; }
.signup-summary .summary-total small { font-size:.9rem; font-weight:400; color:var(--ui-muted); }
.signup-summary .summary-items { margin-top:20px; }
.signup-summary .summary-items h3 { font-size:.95rem; }
@media(max-width:800px) {
  .signup-layout { grid-template-columns:1fr; }
  .signup-form, .signup-summary { grid-column:auto; grid-row:auto; position:static; }
}
@media(max-width:560px) {
  .ui-purchase-header, .ui-purchase-shell { padding:20px 16px; }
  .ui-purchase-header { align-items:flex-start; flex-wrap:wrap; }
  .ui-purchase-tools { justify-content:space-between; width:100%; }
  .ui-purchase-panel { padding:20px; }
  .signup-grid { grid-template-columns:1fr; }
}

.implementation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.implementation-grid .full-span { grid-column:1 / -1; }
.ui-purchase-page textarea { min-height:132px; }
.configure-later-panel, .configure-now-panel.is-hidden { display:none; }
.configure-later-panel.is-visible { display:block; }
@media(max-width:720px) { .implementation-grid { grid-template-columns:1fr; } }
.ui-purchase-page [hidden] { display:none; }

/* Shared invoice document content also serves the private PDF layout. */
.ui-invoice-document { overflow-x:auto; }
.ui-invoice-document .invoice-header { width:100%; margin-bottom:24px; }
.ui-invoice-document .invoice-header td { vertical-align:top; padding:0 16px 16px 0; }
.ui-invoice-document .invoice-meta { text-align:right; }
.ui-invoice-document .invoice-logo { max-width:180px; max-height:80px; }
.ui-invoice-document .invoice-issuer { margin-bottom:14px; }
.ui-invoice-document .invoice-company { font-size:1.25rem; font-weight:700; }
.ui-invoice-document .invoice-lines { width:100%; margin-block:24px; border-collapse:collapse; }
.ui-invoice-document .invoice-lines :is(th,td) { padding:12px; border-bottom:1px solid var(--ui-line); vertical-align:top; }
.ui-invoice-document .invoice-lines th { background:var(--ui-soft); color:var(--ui-text); }
.ui-invoice-document .number { text-align:right; white-space:nowrap; }
.ui-invoice-document .invoice-totals { margin-left:auto; margin-bottom:24px; }
.ui-invoice-document .invoice-totals :is(th,td) { padding:8px 12px; text-align:right; }
.ui-invoice-document .invoice-total { font-size:1.125rem; font-weight:700; border-block:1px solid var(--ui-line); }
.ui-invoice-document .invoice-payment { border-top:1px solid var(--ui-line); padding-top:20px; margin-top:24px; }
.ui-invoice-document .invoice-footer { color:var(--ui-muted); margin-top:24px; }
.ui-invoice-document :is(.invoice-preview,.invoice-disclaimer) { padding:16px; margin-bottom:20px; border:1px solid var(--ui-line); background:var(--ui-soft); }
@media (max-width:575px) {
  .ui-invoice-document .invoice-header :is(tbody,tr,td) { display:block; }
  .ui-invoice-document .invoice-meta { text-align:left; }
}
