/* What the app adds to the 30 Sep 2026 handoff landing (landing.css stays a
   copy of the handoff file).
   1. App compatibility: the root layout gives <body> Tailwind's antialiased
      smoothing, which the handoff page does not use.
   2. The #invite dialog: the app's working access request, drawn in the
      handoff's landing language (landing.css tokens, price-card surface,
      pill button). Scoped to .invite-dialog.
   3. The footer note keeps the handoff's right-hand "Built for the business
      behind every cup." now the preview line beside it is cut (Jos, 30 Sep). */
body:has(.signal-landing){-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}
.footer-note>span:only-child{margin-left:auto}
.invite-dialog{margin:auto;padding:0;border:0;background:none;color:var(--ink);width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:visible}
.invite-dialog::backdrop{background:#07040dcc;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.invite-dialog[open]{animation:invite-in .28s cubic-bezier(.2,.8,.2,1)}
@keyframes invite-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.invite-card{position:relative;border:1px solid #cf9dfa55;background:linear-gradient(140deg,#302040,#1b1425 60%);border-radius:var(--radius);padding:36px;box-shadow:inset 0 1px #ffffff0b,0 30px 90px #000a;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.invite-card h2{font-size:clamp(34px,5vw,46px);letter-spacing:-1.6px;line-height:1.05}
.invite-card .section-note{margin-bottom:14px}
.invite-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff1f;background:#120d1a;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:border-color .2s}
.invite-close:hover{border-color:var(--violet)}
.invite-close:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.invite-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.invite-lead{font-size:15px;line-height:1.75;color:var(--muted);max-width:420px;margin:16px 0 26px}
.invite-form{display:grid;gap:20px}
.invite-row{display:grid;grid-template-columns:minmax(0,1fr) 11rem;gap:16px}
.invite-field{display:block;min-width:0}
.invite-field>span{display:block;font-size:13px;color:#dac2ee;margin-bottom:8px}
.invite-field input{display:block;width:100%;min-height:52px;padding:12px 16px;border-radius:var(--inner);border:1px solid #ffffff1f;background:#120d1a;color:var(--ink);font:400 16px/1.4 Instrument,Arial,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s}
.invite-field input::placeholder{color:#8e829d;opacity:1}
.invite-field input:focus-visible{border-color:var(--violet);box-shadow:0 0 0 3px #bb85ff33}
.invite-form .button{width:100%;margin-top:4px}
.invite-form .button:disabled{opacity:.6;cursor:default;transform:none;filter:none}
.invite-error{font-size:14px;line-height:1.6;color:#ff8fc8}
.invite-done strong{display:block;font:500 25px/1.2 Space,Instrument,sans-serif;letter-spacing:-.8px;color:var(--ink)}
.invite-done p{margin-top:10px;font-size:15px;line-height:1.7;color:var(--muted)}
.invite-note{margin-top:22px;font-size:12px;line-height:1.7;color:var(--muted)}
.invite-note a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.footer-note>span:only-child{margin-left:0}.invite-card{padding:26px 22px}.invite-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.invite-dialog[open]{animation:none}}
