/* whos-free.css - Talk To Gina motion kit */
.gm{--gm-surface:var(--bone-50,#FBF8F2);--gm-surface-2:var(--bone-100,#F7F3EC);--gm-line:var(--bone-border,#E4DDD3);--gm-text:var(--text-on-light,#14181F);--gm-mut:var(--text-on-light-mut,#55606E);--gm-blue:var(--cobalt-600,#1D4ED8);--gm-blue-2:var(--cobalt-700,#1740B0);--gm-blue-3:var(--cobalt-300,#7CA0F0);--gm-blue-soft:var(--cobalt-50,#EEF3FF);--gm-ok:var(--signal-approved,#0E9F6E);--gm-ok-soft:rgba(14,159,110,.12);--gm-wait:var(--signal-waiting,#C2740A);--gm-shadow:0 8px 30px rgba(11,14,20,.12);--gm-ease:cubic-bezier(.16,1,.3,1);--gm-soft:cubic-bezier(.4,0,.2,1);--gm-mono:var(--font-mono,'Geist Mono',ui-monospace,monospace);position:relative;width:100%;font-family:var(--font-body,'Outfit',system-ui,-apple-system,sans-serif);color:var(--gm-text);line-height:1.45;-webkit-font-smoothing:antialiased}.gm[data-theme=ink]{--gm-surface:var(--ink-700,#141A24);--gm-surface-2:var(--ink-800,#0D1117);--gm-line:var(--ink-600,#1E2530);--gm-text:var(--text-on-dark,#F4F6FA);--gm-mut:var(--text-on-dark-mut,#A6AEBD);--gm-blue-soft:rgba(124,160,240,.13);--gm-ok-soft:rgba(14,159,110,.2);--gm-shadow:0 12px 40px rgba(0,0,0,.35)}.gm *,.gm *::before,.gm *::after{box-sizing:border-box}.gm-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.gm-av{flex:none;display:inline-grid;place-items:center;width:2em;height:2em;border-radius:.6em;font-weight:700;font-size:1em;color:#fff;background:var(--gm-mut)}.gm-av--gina{background:linear-gradient(135deg,var(--gm-blue),var(--gm-blue-2))}.gm-btn{display:inline-flex;align-items:center;gap:.4em;font-weight:600;font-size:.86em;line-height:1;font-family:inherit;cursor:default;padding:.62em 1.05em;border-radius:999px;border:1px solid var(--gm-line);background:transparent;color:var(--gm-text);transition:transform .15s var(--gm-soft),background .2s,box-shadow .2s,border-color .2s}.gm-btn--p{background:var(--gm-blue);border-color:var(--gm-blue);color:#fff}.gm-btn.is-press{transform:scale(.93);box-shadow:0 0 0 5px color-mix(in srgb,var(--gm-blue) 22%,transparent)}.gm-wave{display:inline-block;width:1.9em;height:.9em;vertical-align:middle;color:var(--gm-blue)}.gm-wave path{stroke-dasharray:40;animation:gm-wave 1.1s linear infinite}@keyframes gm-wave{from{stroke-dashoffset:80}to{stroke-dashoffset:0}}.gm-dots{display:inline-flex;gap:3px;vertical-align:middle}.gm-dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.35;animation:gm-dot 1s infinite}.gm-dots i:nth-child(2){animation-delay:.15s}.gm-dots i:nth-child(3){animation-delay:.3s}@keyframes gm-dot{30%{opacity:1;transform:translateY(-2px)}}.gm-paused,.gm-paused *,.gm-paused *::before,.gm-paused *::after{animation-play-state:paused!important}.gm-static *,.gm-static *::before,.gm-static *::after{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.gm *,.gm *::before,.gm *::after{transition:none!important;animation:none!important}}
/* 5. Who's free on the 14th? One message. */
.gm-free{container-type:inline-size;max-width:640px;margin-inline:auto;font-size:15px}
.gm .gm-alt{margin:0;color:var(--gm-mut)}
.gm.gm-ready .gm-alt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wf-stage{display:flex;flex-direction:column;gap:1em;transition:opacity .5s}
.wf-stage.is-out{opacity:0}
.wf-ask{align-self:flex-end;display:flex;align-items:flex-end;gap:.6em;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .5s var(--gm-ease)}
.wf-ask.in{opacity:1;transform:none}
.wf-ask p{margin:0;padding:.7em 1em;border-radius:16px 16px 4px 16px;background:var(--gm-blue);color:#fff;font-weight:500}
.wf-ask .gm-av{font-size:.85em;background:#3B4658}
.wf-cell{display:grid}
.wf-cell>*{grid-area:1/1}
.wf-src{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7em;align-self:start}
.wf-box{background:var(--gm-surface);border:1px solid var(--gm-line);border-radius:14px;padding:.75em .8em;box-shadow:var(--gm-shadow);opacity:0;transform:translateY(12px);transition:opacity .4s,transform .6s var(--gm-ease)}
.wf-box.in{opacity:1;transform:none}
.wf-box.merge{opacity:0;transition:transform .7s cubic-bezier(.6,0,.3,1),opacity .45s .3s}
.wf-bh{display:flex;align-items:center;gap:.45em;font-size:.8em;font-weight:600;margin-bottom:.6em}
.wf-bh svg{width:1.15em;height:1.15em;color:var(--gm-mut)}
.wf-bh small{margin-left:auto;font-weight:500;color:var(--gm-mut);font-size:.9em}
.wf-week{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.wf-d{display:grid;justify-items:center;gap:3px;font:500 .64em var(--gm-mono);color:var(--gm-mut)}
.wf-d i{width:100%;height:1.9em;border-radius:5px;background:var(--gm-surface-2);border:1px solid var(--gm-line);position:relative;transition:box-shadow .3s,border-color .3s}
.wf-d i.b{background:color-mix(in srgb,var(--gm-mut) 35%,transparent);border-color:transparent}
.wf-d.x{color:var(--gm-text);font-weight:700}
.wf-d.x.hit i{border-color:var(--gm-blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--gm-blue) 35%,transparent)}
.wf-d.x i::after{content:"";position:absolute;inset:auto 0 -1.05em;margin:auto;width:.55em;height:.55em;border-radius:50%;opacity:0;transition:opacity .3s}
.wf-d.x.hit.ok i::after{background:var(--gm-ok);opacity:1}
.wf-d.x.hit.no i::after{background:#C0392B;opacity:1}
.wf-sheet{grid-column:1/-1}
.wf-sheet table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.78em}
.wf-src>*{min-width:0}
.wf-sheet th,.wf-sheet td{border:1px solid var(--gm-line);padding:.35em .55em;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wf-sheet th{font-weight:600;color:var(--gm-mut);background:var(--gm-surface-2)}
.wf-sheet td:first-child{font-weight:600}
.wf-sheet .col{transition:background .3s,box-shadow .3s}
.wf-sheet .col.hit{background:var(--gm-blue-soft);box-shadow:inset 0 0 0 1.5px var(--gm-blue)}
.wf-sheet td.col.ok.hit{color:var(--gm-ok);font-weight:600}
.wf-sheet td.col.no.hit{color:#C0392B;font-weight:600}
.gm[data-theme=ink] .wf-sheet td.col.no.hit{color:#F08A7E}
.gm[data-theme=ink] .wf-d.x.hit.no i::after{background:#F08A7E}
.wf-ans{align-self:center;display:flex;gap:.7em;align-items:flex-start;padding:1.1em 1.15em;background:var(--gm-surface);border:1px solid var(--gm-line);border-radius:18px;box-shadow:var(--gm-shadow);opacity:0;transform:scale(.9);transition:opacity .4s,transform .6s var(--gm-ease);z-index:1}
.wf-ans.in{opacity:1;transform:none}
.wf-ans .gm-av{font-size:.95em}
.wf-meta{font-size:.8em;display:flex;gap:.5em;align-items:baseline}
.wf-meta b{font-weight:600}
.wf-meta time{font-family:var(--gm-mono);color:var(--gm-mut);font-size:.9em}
.wf-typing{display:flex;align-items:center;gap:.4em;font-size:.84em;color:var(--gm-mut);margin-top:.3em}
.wf-body{display:none}
.wf-ans.done .wf-typing{display:none}
.wf-ans.done .wf-body{display:block;animation:wf-in .5s var(--gm-ease)}
@keyframes wf-in{from{opacity:0;transform:translateY(5px)}}
.wf-body p{margin:.2em 0 .7em;font-size:1.06em;line-height:1.4;font-weight:500}
.wf-bands{display:flex;flex-wrap:wrap;gap:.35em;margin-bottom:.9em}
.wf-bands span{font-size:.8em;font-weight:600;padding:.3em .7em;border-radius:8px;background:var(--gm-ok-soft);color:var(--gm-ok)}
.wf-bands span.no{background:var(--gm-surface-2);color:var(--gm-mut);text-decoration:line-through}
.wf-acts{display:flex;gap:.5em;flex-wrap:wrap;align-items:center}
.wf-held{display:none;align-items:center;gap:.45em;font-size:.86em;color:var(--gm-ok);font-weight:600}
.wf-held svg{width:1.2em;height:1.2em}
.wf-ans.held .wf-acts .gm-btn{display:none}
.wf-ans.held .wf-held{display:inline-flex;animation:wf-in .4s var(--gm-ease)}
@container (max-width:460px){
  .gm-free .wf-src{gap:.5em}
  .gm-free .wf-box{padding:.6em .6em}
  .gm-free .wf-bh small{display:none}
  .gm-free .wf-week{grid-template-columns:repeat(5,1fr)}
  .gm-free .wf-d:first-child,.gm-free .wf-d:last-child{display:none}
  .gm-free .wf-bh{font-size:.72em}
  .gm-free .wf-d{font-size:.56em}
  .gm-free .wf-ans{padding:.9em .9em}
}
/* reserve height before the script mounts (no layout shift) */
.gm-free:not(.gm-ready){min-height:280px}
@media (max-width:700px){.gm-free:not(.gm-ready){min-height:262px}}
