/* Business Console and billing only. Shared colors follow the native app theme.
   Keep responsive rules together: the public website does not use this layout. */
.console-body, .billing-body { background:var(--canvas); font-size:1rem; }
.console-body { overflow-x:clip; }
.console-body [hidden], .billing-body [hidden] { display:none !important; }
.console-body :is(button, a, summary, input):focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.console-body :is(p, h1, h2, h3, strong) { overflow-wrap:anywhere; }

/* One header row on every screen; account actions live in a disclosure menu. */
.console-body .console-nav { padding:0 24px; background:var(--canvas); border-bottom:1px solid var(--line); }
.console-body .console-nav-inner { max-width:1072px; min-height:76px; height:auto; padding:10px 0; gap:16px; flex-wrap:nowrap; }
.console-body .console-brand { gap:10px; font-size:1.0625rem; min-width:min-content; white-space:normal; line-height:1.25; }
.console-body .console-brand img { width:30px; height:30px; flex-shrink:0; }
.console-body .console-brand .tag { display:none; }
.console-body .console-nav-right { display:flex; flex-wrap:nowrap; align-items:center; gap:12px; width:auto; min-width:0; flex-shrink:0; }
.console-body .theme-toggle { width:44px; height:44px; flex:0 0 44px; box-shadow:none; }
.console-body .ent-identity { position:relative; border:0; padding:0; margin:0; background:transparent; min-width:0; flex-shrink:0; }
.console-body .ent-identity.show { display:block; }
.console-body .account-trigger { list-style:none; display:flex; align-items:center; gap:10px; padding:6px 10px 6px 6px; min-height:48px; border:1px solid var(--line); border-radius:14px; background:var(--surface); cursor:pointer; position:relative; }
.console-body .account-trigger::-webkit-details-marker { display:none; }
.console-body .account-trigger:hover, .console-body .ent-identity[open] .account-trigger { border-color:var(--line-strong); }
.console-body .ent-identity .avatar { flex:0 0 2rem; width:2rem; height:2rem; font-size:.75rem; line-height:1; }
.console-body .identity-label { display:grid; gap:2px; min-width:0; max-width:240px; }
.console-body .ent-identity .who { display:block; font-size:.8125rem; font-weight:600; color:var(--text); max-width:none; }
.console-body #identity-email { font-size:.75rem; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.console-body .account-chevron { width:16px; height:16px; flex:0 0 16px; color:var(--text-2); }
.console-body .account-notification { position:absolute; top:-5px; right:-5px; min-width:1.125rem; height:1.125rem; border-radius:1rem; padding:0 4px; display:grid; place-items:center; background:var(--accent); color:var(--on-accent); border:2px solid var(--canvas); font-size:.625rem; line-height:1; font-weight:700; }
.console-body .account-menu { position:absolute; right:0; top:calc(100% + 10px); width:min(320px, calc(100vw - 32px)); max-height:calc(100dvh - 7rem); overflow-y:auto; overscroll-behavior:contain; padding:8px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:var(--shadow-lg); }
.console-body .account-menu-heading { display:grid; gap:5px; padding:12px 12px 16px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.console-body .account-menu-heading span { color:var(--text-2); font-size:.75rem; }
.console-body .account-menu-heading strong { font-size:.875rem; font-weight:500; }
.console-body .account-menu-item { display:block; width:100%; min-height:44px; padding:11px 12px; border:0; border-radius:10px; background:transparent; color:var(--text); font:inherit; font-size:.875rem; text-align:left; cursor:pointer; }
.console-body .account-menu-item:hover { background:var(--surface-2); color:var(--text); }
.console-body .account-menu-divider { height:1px; background:var(--line); margin:6px 4px; }
.console-body .console-session { display:none; }
.console-body .ent-proto-menu { position:static; width:100%; box-shadow:none; margin-top:8px; }

/* Page hierarchy and shared controls. */
.console-body .console-main, .console-body .console-main.wide { max-width:1120px; padding:28px 24px 48px; }
.console-body .ent-h1 { font-size:1.875rem; line-height:1.2; letter-spacing:-.035em; }
.console-body .ent-lede { font-size:.9375rem; line-height:1.6; }
.console-body :is(.ent-eyebrow, .ent-panel-title, .ent-stat .k) { font-family:var(--sans); text-transform:none; letter-spacing:0; font-size:.8125rem; color:var(--text-2); }
.console-body :is(.ent-mini-note, .ent-inline-note, .ent-section-sub, .ent-hint) { color:var(--text-2); font-size:.8125rem; line-height:1.6; opacity:1; }
.console-body .ent-btn, .billing-body .primary-action { font-size:.9375rem; line-height:1.35; min-height:48px; padding:12px 18px; border-radius:12px; box-shadow:none; }
.console-body .ent-btn--primary, .billing-body .primary-action { background:var(--accent); color:var(--on-accent); }
.console-body .ent-chip { font-family:var(--sans); font-size:.6875rem; font-weight:600; letter-spacing:.015em; text-transform:none; padding:5px 9px; gap:6px; }
.console-body .ent-chip .dot { width:6px; height:6px; }
.console-body .ent-back, .console-body .ent-return-app { font-size:.8125rem; min-height:44px; display:inline-flex; align-items:center; }
.console-body .ent-console-path { margin-bottom:24px; gap:12px; flex-wrap:wrap; }
.console-body .ent-section-title, .console-body .ent-dash-section > h2 { font-size:1.375rem; line-height:1.3; font-weight:650; letter-spacing:-.025em; }
.console-body .ent-callout { margin:0; padding:18px; border-radius:14px; }
.console-body .ent-callout h4 { font-family:var(--sans); font-size:.875rem; text-transform:none; letter-spacing:0; }
.console-body .ent-callout p { font-size:.8125rem; }

/* Business workspace: a quiet sidebar on desktop, a compact tab strip on phones. */
.console-body .ent-dash-shell { grid-template-columns:208px minmax(0,1fr); gap:40px; }
.console-body .ent-rail { min-width:0; top:100px; gap:20px; }
.console-body .ent-rail-org { gap:12px; padding:0 8px 20px; }
.console-body .ent-rail-orgname { font-size:1.375rem; line-height:1.3; letter-spacing:-.025em; }
.console-body .ent-rail-nav { display:grid; grid-template-columns:1fr; grid-auto-flow:row; gap:4px; padding:0; background:transparent; overflow:visible; }
.console-body .ent-rail-item { min-height:46px; padding:12px; gap:10px; font-size:.875rem; border-radius:12px; }
.console-body .ent-rail-item.is-active { background:var(--surface); color:var(--text); box-shadow:0 1px 3px #00000006; }
.console-body .ent-dash-content { gap:20px; }
.console-body .ent-dash-shell:is([data-section="overview"], [data-section="licenses"], [data-section="billing"]) .ent-dash-section { gap:20px; }
.console-body .ent-dash-shell[data-section="members"] .ent-dash-section[data-section="members"] { display:block; }
.console-body .ent-dash-section[data-section="members"] > h2 { margin-bottom:8px; }
.console-body :is(.license-hero, .ent-meter, .ent-receipt, .ent-list, .ent-setup-panel) { background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:none; }
.console-body .ent-dash-content .license-hero { padding:24px; margin:0; gap:20px; border-radius:18px; }
.console-body .license-amount { min-width:0; }
.console-body .license-amount strong { font-size:2rem; line-height:1.2; letter-spacing:-.045em; margin:8px 0 0; }
.console-body .license-breakdown { display:grid; justify-items:end; gap:10px; font-size:.8125rem; }
.console-body .free-badge { padding:6px 10px; min-height:30px; font-size:.6875rem; font-weight:500; background:var(--surface-2); white-space:normal; }
.console-body .ent-dash-content .ent-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; max-width:none; }
.console-body .ent-dash-content .ent-meter { padding:20px 24px; }
.console-body .ent-meter .meter-readout { font-family:var(--sans); font-size:.875rem; }
.console-body .ent-meter .meter-label { font-size:.75rem; color:var(--text-2); }
.console-body .ent-meter .ent-segments { gap:4px; }
.console-body .ent-meter .ent-seg { height:8px; }
.console-body .ent-meter .ent-bar { height:8px; }
.console-body .ent-seg.is-owner, .console-body .ent-bar .bar-used { background:var(--accent); }
.console-body .ent-meter-legend { gap:10px 16px; }
.console-body .ent-meter-legend span { color:var(--text-2); font-size:.6875rem; }
.console-body .ent-meter-legend i { width:8px; height:8px; border-radius:2px; }
.console-body .ent-status-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border:1px solid var(--line); background:var(--surface); border-radius:18px; padding:4px; }
.console-body .ent-stat { border:0; border-radius:0; background:transparent; padding:18px; box-shadow:none; }
.console-body .ent-stat + .ent-stat { border-left:1px solid var(--line); }
.console-body .ent-stat:nth-child(3n + 1) { border-left:0; }
.console-body .ent-stat:nth-child(n + 4) { border-top:1px solid var(--line); }
.console-body .ent-stat .k { margin-bottom:8px; }
.console-body .ent-stat .v { font-size:1rem; font-family:var(--sans); }
.console-body .business-danger { padding:20px 0 0; margin-top:8px; }
.console-body .business-danger .ent-btn { color:var(--danger); }
.console-body .ent-invoices { background:var(--surface); padding:0 16px; border:1px solid var(--line); border-radius:18px; }
.console-body .ent-invoice { margin:0; padding:16px 0; gap:12px; }
.console-body .ent-invoice-dl { width:44px; height:44px; }

/* Business directory, invitations and sign-in share the same surface language. */
.console-body .ent-list-page { max-width:860px; }
.console-body .ent-list-titlebar { border:0; padding:0; margin-bottom:24px; gap:16px; }
.console-body .ent-add-link { min-height:44px; font-size:.875rem; }
.console-body .ent-list-table { background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; margin-top:20px; }
.console-body .ent-list-row { padding:22px; gap:16px; border-radius:0; box-shadow:none; }
.console-body .ent-list-row + .ent-list-row { border-top:1px solid var(--line); }
.console-body .ent-list-row > span { min-width:0; overflow-wrap:anywhere; }
.console-body .ent-list-row .name { font-size:1rem; }
.console-body .ent-list-row .meta, .console-body .ent-list-row small { display:block; font-size:.8125rem; margin-top:6px; color:var(--text-2); opacity:1; }
.console-body .ent-list-row[data-act="admin-open"] { grid-template-columns:minmax(0,1fr) 20px; }
.console-body .ent-auth-shell { min-height:0; width:min(100%,460px); margin:28px auto; padding:36px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.console-body .ent-auth-logo { width:48px; height:48px; margin-bottom:24px; }
.console-body .ent-auth-action { width:100%; margin-top:24px; }
.console-body .email-auth { display:grid; gap:12px; margin-top:8px; text-align:left; }
.console-body .email-auth label, .console-body .invite-form label { font-size:.875rem; font-weight:500; }
.console-body .email-auth input, .console-body .invite-form input { width:100%; min-width:0; min-height:48px; border:1px solid var(--line-strong); border-radius:12px; background:var(--surface); color:var(--text); padding:12px 14px; font:inherit; font-size:1rem; box-sizing:border-box; }
.console-body .email-auth input::placeholder, .console-body .invite-form input::placeholder { color:var(--text-2); opacity:1; }
.console-body .invite-form { display:grid; gap:12px; max-width:520px; margin:24px 0 16px; }
.console-body .invitation-row { display:flex; gap:20px; align-items:center; justify-content:space-between; padding:20px 0; border-bottom:1px solid var(--line); }
.console-body .invitation-row > div { min-width:0; }
.console-body .invitation-row strong { font-size:.9375rem; }
.console-body .invitation-row p { font-size:.8125rem; color:var(--text-2); line-height:1.5; margin-top:6px; }
.console-body .invitation-row .ent-actions { margin:0; flex:0 0 auto; gap:8px; }
.console-body .ent-setup-panel { padding:28px; }
.console-body .ent-setup-panel .ent-btn--block { margin-top:20px; }
.console-body .ent-focus-wrap { max-width:640px; }

/* Checkout review and recovery stay focused and readable. */
.console-body .ent-modal { border:1px solid var(--line); border-radius:22px; padding:28px; max-height:calc(100dvh - 48px); overflow-y:auto; overscroll-behavior:contain; }
.console-body .ent-modal h3 { font-size:1.375rem; font-weight:650; }
.console-body .ent-modal .modal-sub { font-size:.875rem; line-height:1.6; }
.console-body .ent-modal .ent-receipt { background:var(--surface-2); border:0; border-radius:14px; padding:16px; }
.console-body .ent-receipt .line { font-size:.875rem; }
.console-body .ent-receipt .line .v { font-family:var(--sans); text-align:right; }
.console-body .quote-details div { display:flex; gap:16px; justify-content:space-between; padding:12px 0; font-size:.875rem; }
.console-body .quote-details dd { margin:0; font-weight:600; text-align:right; }
.console-body .quote-details div + div { border-top:1px solid var(--line); }
.console-body .ent-modal-actions { gap:10px; }
.console-footer { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 24px; padding:20px 16px max(24px,env(safe-area-inset-bottom)); color:var(--text-2); font-size:.75rem; }
.console-footer a { display:inline-flex; align-items:center; min-height:44px; color:var(--text-2); }
.console-loading { display:grid; justify-items:center; gap:16px; padding:40px 16px; color:var(--text-2); }
.payment-result { max-width:560px; margin:20px auto; background:var(--surface); padding:28px; border:1px solid var(--line); border-radius:22px; }
.payment-result-symbol { display:grid; place-items:center; width:48px; height:48px; margin-bottom:20px; border-radius:50%; background:var(--surface-2); font-size:1.5rem; }
.payment-capacity { margin:24px 0; background:var(--surface-2); padding:4px 16px; border-radius:14px; }
.payment-capacity div { display:flex; justify-content:space-between; gap:16px; padding:14px 0; }
.payment-capacity div + div { border-top:1px solid var(--line); }
.payment-capacity dt { font-size:.875rem; color:var(--text-2); }
.payment-capacity dd { margin:0; font-weight:600; font-variant-numeric:tabular-nums; }
.payment-result .ent-actions { display:grid; gap:10px; margin-top:24px; }
.payment-result .ent-mini-note { margin-top:16px; }

/* The tokenized billing handoff also uses these grouped surfaces. */
.billing-body .nav { background:var(--canvas); border:0; }
.billing-body .nav-inner { max-width:760px; }
.billing-body .nav-links a:not(:first-child) { display:none; }
.billing-body .page-header { max-width:760px; margin:0 auto; padding:24px 24px 12px; text-align:left; background:none; border:0; }
.billing-body .page-header h1 { font-size:1.75rem; letter-spacing:-.035em; }
.billing-body .billing-shell { max-width:760px; padding:12px 24px 24px; }
.billing-body .billing-card { background:var(--surface); border:0; box-shadow:none; padding:24px; }
.billing-body .billing-card h2 { font-size:1.375rem; }
.billing-body .billing-muted { font-size:.9375rem; }
.billing-body .billing-summary { display:block; background:var(--surface-2); padding:0 16px; border:0; border-radius:16px; }
.billing-body .billing-item { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:14px 0; background:none; border:0; border-radius:0; }
.billing-body .billing-item + .billing-item { border-top:1px solid var(--line); }
.billing-body .billing-item dt { font-family:var(--sans); color:var(--text-2); font-size:.875rem; text-transform:none; letter-spacing:0; }
.billing-body .billing-item dd { margin:0; text-align:right; font-size:.9375rem; }
.billing-body .billing-actions { display:grid; gap:12px; }
.billing-body .billing-actions a { font-size:.875rem; text-align:center; padding:8px; }
.billing-body [hidden] { display:none !important; }

@media (max-width:900px) {
  .console-body .ent-dash-shell { grid-template-columns:minmax(0,1fr); gap:24px; }
  .console-body .ent-rail { position:static; gap:20px; }
  .console-body .ent-rail-org { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:0; border:0; }
  .console-body .ent-rail-orgname { font-size:1.625rem; }
  .console-body .ent-rail-nav { grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:minmax(max-content,1fr); gap:4px; padding:4px; overflow-x:auto; overscroll-behavior-x:contain; background:var(--surface-3); border-radius:14px; }
  .console-body .ent-rail-item { justify-content:center; padding:10px 14px; min-height:44px; border-radius:10px; }
  .console-body .ent-dash-content .license-hero { flex-direction:row; align-items:center; }
  .console-body .license-breakdown { width:auto; }
  .console-body .ent-console-path { margin-bottom:16px; }
}
@media (max-width:640px) {
  .console-body .console-nav { padding:0 16px; }
  .console-body .console-nav-inner { min-height:64px; padding:8px 0; gap:12px; flex-wrap:wrap; }
  .console-body .console-nav-right { gap:8px; margin-left:auto; }
  .console-body .console-brand { gap:8px; font-size:1rem; }
  .console-body .console-brand img { width:28px; height:28px; }
  .console-body .identity-label, .console-body .account-chevron { display:none; }
  .console-body .account-trigger { padding:5px; min-width:44px; min-height:44px; border-radius:50%; }
  .console-body .console-session { display:flex; gap:6px; min-width:0; padding:0 0 12px; font-size:.6875rem; line-height:1.4; color:var(--text-2); }
  .console-body .console-session > span:first-child { flex:0 0 auto; }
  .console-body #session-email { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .console-body .console-main, .console-body .console-main.wide { padding:16px 16px 32px; }
  .console-body .ent-h1 { font-size:1.625rem; }
  .console-body .ent-console-path { gap:0 12px; margin-top:-4px; margin-bottom:12px; }
  .console-body .ent-back, .console-body .ent-return-app { font-size:.75rem; }
  .console-body .ent-dash-shell { gap:20px; }
  .console-body .ent-rail { gap:20px; }
  .console-body .ent-rail-nav { gap:2px; padding:4px; }
  .console-body .ent-rail-item { padding:10px 8px; font-size:.8125rem; }
  .console-body .ent-rail-item svg { display:none; }
  .console-body .ent-dash-content .license-hero { flex-direction:column; align-items:stretch; padding:22px 20px; gap:20px; }
  .console-body .license-amount strong { font-size:1.875rem; }
  .console-body .license-breakdown { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:16px; border-top:1px solid var(--line); font-size:.8125rem; }
  .console-body .ent-dash-content .ent-actions { gap:10px; }
  .console-body .ent-dash-content .ent-btn { font-size:.875rem; padding:12px 10px; }
  .console-body .ent-dash-content .ent-meter { padding:20px; }
  .console-body .ent-status-strip { grid-template-columns:minmax(0,1fr); padding:0 20px; }
  .console-body .ent-stat { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; padding:16px 0; }
  .console-body .ent-stat + .ent-stat { border-left:0; border-top:1px solid var(--line); }
  .console-body .ent-stat .k { margin:0; }
  .console-body .ent-stat .v { font-size:.9375rem; }
  .console-body .ent-list-row { padding:18px; gap:10px; }
  .console-body .ent-list-titlebar { margin:8px 0 20px; }
  .console-body .ent-auth-shell { padding:28px 22px; margin:8px auto; }
  .console-body .ent-setup-panel { padding:22px 20px; }
  .console-body .invitation-row { flex-direction:column; align-items:stretch; gap:14px; }
  .console-body .ent-modal-backdrop { align-items:flex-end; padding:0; }
  .console-body .ent-modal { max-width:100%; border-radius:24px 24px 0 0; padding:24px 20px max(24px,env(safe-area-inset-bottom)); max-height:90dvh; }
  .console-body .ent-modal-actions { flex-wrap:wrap; }
  .console-body .ent-modal-actions .ent-btn { flex:1 1 120px; font-size:.875rem; }
  .payment-result { margin:0; padding:22px; }
  .billing-body .page-header { padding:20px 16px 8px; }
  .billing-body .billing-shell { padding:8px 16px 20px; }
  .billing-body .billing-card { padding:20px; }
  .billing-body .billing-item { gap:12px; }
}
