/* Shared web-app styles on top of dawni.css: footer, legal pages, forms, pricing, checkout. */
.launch-bar { margin:0; padding-block:8px; padding-inline:var(--gutter-l) var(--gutter-r); text-align:center; font-size:.82rem; background:var(--plum); color:var(--champagne); }
.launch-bar a { color:var(--linen); }
.foot-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:32px; align-items:start; }
.foot-grid h2 { font-family:var(--sans); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--heather); margin:0 0 12px; }
.foot-grid ul { list-style:none; margin:0; padding:0; }
.foot-grid li { padding:4px 0; }
.foot-trader { margin-top:28px; padding-top:20px; border-top:1px solid rgba(243,227,195,.18); font-size:.82rem; opacity:.9; }
.foot-trader .ph { background:rgba(243,227,195,.14); padding:0 4px; border-radius:4px; }
.withdraw-link { font-weight:700; }
@media (max-width:960px) { .foot-grid { grid-template-columns:1fr 1fr; } .foot-grid > :first-child { grid-column:1 / -1; } }

/* Simple page shell (pricing, legal, checkout, withdraw) */
.page-head { padding-block:28px 0; }
.page-head .site-header { padding-top:0; }
.page { padding-block:48px 110px; }
.page h1 { font-size:clamp(2.2rem, 4.4vw, 3.4rem); }
.page h1 em { font-style:italic; color:var(--clay); }
.page .lede { font-size:1.12rem; color:var(--mauve); max-width:40em; }

/* Legal drafts */
.legal { max-width:760px; }
.legal h2 { font-size:1.6rem; margin-top:2.2em; }
.legal h3 { font-size:1.2rem; margin-top:1.6em; }
.legal li { margin-bottom:.4em; }
.legal table { border-collapse:collapse; width:100%; font-size:.94rem; margin:1em 0; }
.legal th, .legal td { border:1px solid var(--hair); padding:8px 10px; text-align:left; vertical-align:top; }
.draft-banner { border:2px dashed var(--clay); background:var(--blush); border-radius:var(--r); padding:16px 20px; margin:0 0 28px; }
.draft-banner strong { color:var(--clay); letter-spacing:.12em; }
.ph { background:var(--champagne); padding:0 5px; border-radius:4px; font-weight:700; white-space:normal; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.model-form { background:var(--white); border:1px solid var(--hair); border-radius:var(--r); padding:20px 24px; font-family:var(--serif); }

/* Waitlist */
.waitlist { background:var(--oat); padding:110px 0; }
.waitlist-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:start; }
.waitlist form .row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-msg { margin-top:14px; padding:14px 16px; border-radius:14px; background:var(--white); border:1px solid var(--hair); }
.form-msg.ok { border-color:#9DB89A; background:#EEF4EA; }
.form-msg.bad { border-color:var(--clay); background:var(--blush); }
@media (max-width:860px) { .waitlist-grid { grid-template-columns:1fr; } .waitlist form .row { grid-template-columns:1fr; } }

/* Pricing */
.price-toggle { display:inline-flex; gap:6px; margin:18px 0 6px; flex-wrap:wrap; }
.price-cards { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:22px; margin-top:28px; max-width:860px; }
.price-card { background:var(--white); border:1px solid var(--hair); border-radius:28px; padding:34px 32px; display:flex; flex-direction:column; }
.price-card.feature { background:var(--plum); color:var(--linen); border-color:transparent; }
.price-card.feature .muted { color:#EADCE6; }
.price-card h2 { font-size:1.5rem; margin:0 0 4px; }
.price-card .amount { font-family:var(--serif); font-size:2.6rem; font-weight:340; line-height:1.1; margin:16px 0 2px; }
.price-card .per { font-size:.92rem; }
.price-card ul { list-style:none; padding:0; margin:18px 0 26px; }
.price-card li { padding:8px 0 8px 24px; position:relative; border-top:1px solid var(--hair); }
.price-card.feature li { border-color:rgba(243,227,195,.18); }
.price-card li::before { content:""; position:absolute; left:2px; top:17px; width:9px; height:9px; border-radius:50%; background:var(--gold); }
.price-card .btn { margin-top:auto; }
.renewal { max-width:860px; margin-top:28px; }
@media (max-width:760px) { .price-cards { grid-template-columns:1fr; } }

/* Checkout */
.checkout-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:start; }
.summary { background:var(--white); border:1px solid var(--hair); border-radius:var(--r); padding:26px 28px; }
.summary dl { display:grid; grid-template-columns:auto 1fr; gap:8px 18px; margin:0; }
.summary dt { color:var(--mauve); }
.summary dd { margin:0; font-weight:700; text-align:right; }
.consent-box { border:1px solid var(--hair-strong); border-radius:16px; padding:16px 18px; background:var(--white); margin:18px 0; }
.consent-box .check span { font-weight:600; }
@media (max-width:860px) { .checkout-grid { grid-template-columns:1fr; } }

/* Magic-link confirm pages (server rendered) */
.auth-mini { background:var(--oat); min-height:100vh; }
.mini-wrap { max-width:520px; margin:0 auto; padding-block:48px; padding-inline:var(--gutter-l) var(--gutter-r); }
.mini-panel { margin-top:28px; padding:38px; border-radius:28px; }
.mini-h { font-size:2rem; }

/* Sign-in page tweaks */
.signin-alt { margin-top:22px; font-size:.92rem; }
textarea { font:inherit; width:100%; padding:12px 14px; border:1px solid var(--hair-strong); border-radius:14px; background:var(--white); color:inherit; min-height:96px; }

/* Legal tables stack into labelled cards on phones (labels come from data-label, see scripts/pages_common.py). */
@media (max-width:640px) {
  .legal table, .legal thead, .legal tbody, .legal tr, .legal th, .legal td { display:block; width:auto; }
  .legal thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .legal tr { border:1px solid var(--hair); border-radius:12px; padding:6px 12px; margin:0 0 12px; background:var(--white); }
  .legal td { border:0; padding:6px 0; }
  .legal td + td { border-top:1px solid var(--hair); }
  .legal td[data-label]::before { content:attr(data-label); display:block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--mauve); margin-bottom:2px; }
  .legal code { overflow-wrap:anywhere; }
}

/* Long addresses (emails, phone numbers) wrap instead of pushing the page sideways. */
#sent-to, #s-email, .set-list strong, .legal a { overflow-wrap:anywhere; min-width:0; }
