/* Shared by the pricing page and the app */
:root{
  color-scheme: light;
  --bg:#eceee8; --card:#ffffff; --ink:#0f1110; --ink-2:#3a3d39; --muted:#71756e; --soft:#dfe2da;
  --blue:#2b3ff5; --blue-2:#4a5bff; --blue-deep:#1c2bd0; --sky:#c9d0ff; --sky-2:#e9ecff;
  --ok:#1f8a4c; --ok-bg:#e2f2e8; --bad:#d23a2a; --bad-bg:#fdecea; --warn:#9a5b00; --warn-bg:#f8eedb;
  --sans:"Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.4,.5,1);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:10px}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.045em;text-wrap:balance}
h1:focus,h2:focus{outline:none}
p{margin:0}
i.s{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wordmark{font-size:1.28rem;font-weight:600;letter-spacing:-.05em;display:inline-flex;align-items:baseline}
.label{font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* Glass (flat fill, no gradients) */
.glass-light{background:rgba(236,238,232,.62);-webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);box-shadow:inset 0 1px 1px rgba(255,255,255,.8),0 10px 30px -14px rgba(0,0,0,.25)}

/* Buttons: the fill grows from where the cursor enters */
.btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:.92rem;line-height:1;padding:.9rem 1.25rem;border-radius:999px;position:relative;overflow:hidden;isolation:isolate;white-space:nowrap;
  transition:transform .3s var(--spring),background .25s,color .35s var(--ease);--fill:var(--blue)}
.btn::before{content:"";position:absolute;z-index:-1;left:var(--x,50%);top:var(--y,50%);width:260%;aspect-ratio:1;border-radius:50%;background:var(--fill);transform:translate(-50%,-50%) scale(0);transition:transform .55s var(--ease);pointer-events:none}
.btn:hover::before{transform:translate(-50%,-50%) scale(1)}
.btn:active{transform:scale(.96);transition-duration:.12s}
.btn-ink{background:var(--ink);color:#fff;--fill:var(--blue)}
.btn-blue{background:var(--blue);color:#fff;--fill:var(--ink)}
.btn-white{background:#fff;color:var(--ink);--fill:var(--ink)}
.btn-white:hover{color:#fff}
.btn-soft{background:var(--bg);color:var(--ink);--fill:var(--ink)}
.btn-soft:hover{color:#fff}
.btn.sm{padding:.62rem .9rem;font-size:.82rem}
.btn.block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;cursor:default;transform:none}
.btn[disabled]::before,.btn[aria-disabled="true"]::before{display:none}
.btn svg{width:17px;height:17px;flex:none;fill:currentColor}
.btn-label{display:inline-flex;align-items:center;gap:.5rem;transition:opacity .2s}
.arrow{display:inline-block;transition:transform .35s var(--spring)}
.btn:hover .arrow{transform:translateX(3px)}
.dots{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px;opacity:0;transition:opacity .2s;pointer-events:none}
.dots i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:dot 1s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}
.dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.btn.loading{cursor:progress}
.btn.loading .btn-label{opacity:0}
.btn.loading .dots{opacity:1}
.link{appearance:none;background:none;border:0;cursor:pointer;font-weight:500;font-size:.9rem;color:var(--muted);padding:.55rem;text-decoration:underline;text-underline-offset:3px}
.link:hover{color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;padding:.4rem .65rem;border-radius:999px;background:var(--bg);color:var(--ink-2);white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}
.chip.bad{background:var(--bad-bg);color:var(--bad)}
.chip.blue{background:var(--sky-2);color:var(--blue-deep)}
.chip.ink{background:var(--ink);color:#fff}

/* Dialogs */
dialog.sheet{border:0;padding:0;border-radius:26px;width:min(460px,calc(100% - 32px));color:var(--ink);background:var(--card);box-shadow:0 40px 80px -30px rgba(10,20,40,.45)}
dialog.sheet::backdrop{background:rgba(15,17,16,.36)}
dialog.sheet[open]{animation:sheetIn .45s var(--spring)}
dialog.sheet[open]::backdrop{animation:fadeIn .3s ease}
@keyframes sheetIn{from{opacity:0;transform:translateY(16px) scale(.97)}}
@keyframes fadeIn{from{opacity:0}}
.sheet-body{padding:28px;display:flex;flex-direction:column;gap:16px}
.sheet-body h2{font-size:1.7rem;line-height:1.05}
.sheet-body > p{color:var(--muted)}
.sheet-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.mock-note{font-size:.8rem;color:var(--muted);background:var(--bg);padding:.7rem .9rem;border-radius:12px}

.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:80;transform:translate(-50%,calc(100% + 120px));background:var(--ink);color:#fff;padding:.9rem 1.2rem;border-radius:999px;font-weight:500;font-size:.9rem;transition:transform .6s var(--spring);max-width:calc(100% - 32px)}
.toast.show{transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
