:root{--ink: #0a0a0a;--ink-2: #3a3a3a;--muted: #6b6b6b;--line: #e3e3e3;--line-2: #cfcfcf;--paper: #ffffff;--paper-2: #fafafa;--accent: #0a0a0a;--danger: #9b1c1c;--ok: #166534;--radius: 4px;--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 8px 24px rgba(0, 0, 0, .06);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.15}h1{font-size:clamp(1.9rem,4vw,2.8rem);margin:0 0 .4em}h2{font-size:1.5rem;margin:0 0 .5em}h3{font-size:1.15rem;margin:0 0 .4em}a{color:var(--ink);text-underline-offset:3px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--muted);font-weight:600}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.container{max-width:1040px;margin:0 auto;padding:0 20px}.container-narrow{max-width:620px;margin:0 auto;padding:0 20px}.appbar{border-bottom:1px solid var(--line);background:#ffffffe6;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);position:sticky;top:0;z-index:20}.appbar-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.appbar nav{display:flex;gap:22px;align-items:center}.appbar nav a{text-decoration:none;color:var(--ink-2);font-size:.92rem}.appbar nav a:hover{color:var(--ink)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand img{height:32px;width:auto;display:block}.menu-btn{display:none;font:inherit;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;background:none;border:none;color:var(--ink);cursor:pointer;padding:10px 0 10px 14px}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--paper);display:flex;flex-direction:column;padding:0 20px 32px;animation:menuIn .16s ease}@keyframes menuIn{0%{opacity:0}to{opacity:1}}.mobile-menu-bar{display:flex;align-items:center;justify-content:space-between;height:56px}.mobile-menu nav{display:flex;flex-direction:column;margin-top:28px}.mobile-menu nav a{font-family:var(--serif);font-size:1.9rem;letter-spacing:-.01em;text-decoration:none;color:var(--ink);padding:16px 0;border-bottom:1px solid var(--line);animation:menuLink .28s ease backwards}.mobile-menu nav a:nth-child(2){animation-delay:.05s}.mobile-menu nav a:nth-child(3){animation-delay:.1s}.mobile-menu nav a:nth-child(4){animation-delay:.15s}@keyframes menuLink{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.mobile-menu-foot{margin-top:auto;padding-top:32px}.page{padding:40px 0 80px}.stack>*+*{margin-top:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:22px}.card.pad-lg{padding:32px}.card-hover:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:.95rem;padding:11px 20px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;transition:transform .04s ease,opacity .15s ease}.btn:hover:not(:disabled){opacity:.88}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--ink)}.btn.secondary:hover:not(:disabled){background:var(--paper-2);opacity:1}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);padding-left:8px;padding-right:8px}.btn.small{padding:7px 13px;font-size:.85rem}.btn.danger{border-color:var(--danger);color:var(--danger);background:#fff}.btn.block{width:100%}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px;color:var(--ink-2)}input,textarea,select{width:100%;font:inherit;padding:11px 13px;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid var(--ink);outline-offset:-1px;border-color:var(--ink)}input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;min-height:2.9rem;text-align:left;background:#fff}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;margin:0}textarea{min-height:110px;resize:vertical}.field{margin-bottom:16px}.field .hint{font-size:.8rem;color:var(--muted);margin-top:5px;font-weight:400}.checkbox-row{display:flex;gap:10px;align-items:flex-start}.checkbox-row input{width:auto;margin-top:3px}.checkbox-row label{font-weight:400;color:var(--ink-2);margin:0}.badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2)}.badge.draft{background:var(--paper-2)}.badge.ready{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.badge.sent{background:#f0fdf4;border-color:#bbf7d0;color:var(--ok)}.badge.canceled{background:#fef2f2;border-color:#fecaca;color:var(--danger)}.badge.flag-off{background:#fafafa;color:var(--muted)}.status-dot{width:8px;height:8px;border-radius:999px;background:var(--muted);flex:none}.badge.draft .status-dot{background:#d97706}.badge.ready .status-dot{background:#2563eb}.badge.sent .status-dot{background:var(--ok)}.badge.canceled .status-dot{background:var(--danger)}.notice{border:1px solid var(--line);border-left:3px solid var(--ink);padding:14px 16px;border-radius:var(--radius);background:var(--paper-2)}.notice.warn{border-left-color:#b45309;background:#fffbeb}.notice.error{border-left-color:var(--danger);background:#fef2f2}.notice.ok{border-left-color:var(--ok);background:#f0fdf4}.steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:28px}.step{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted);padding:6px 12px;border:1px solid var(--line);border-radius:999px}.step.active{color:var(--ink);border-color:var(--ink);font-weight:600}.step.done{color:var(--ink-2)}.step .num{width:20px;height:20px;border-radius:50%;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem}.empty{text-align:center;padding:56px 24px;border:1px dashed var(--line-2);border-radius:var(--radius)}.empty .icon{font-size:2rem;opacity:.5}.group-head{margin:0;font-size:1.1rem}.group-head .count{color:var(--muted);font-weight:400}.collapse-group{border:1px solid var(--line);border-radius:var(--radius)}.collapse-group>summary{cursor:pointer;padding:14px 18px;font-weight:600;font-size:1.05rem;list-style:none;display:flex;align-items:center;gap:10px}.collapse-group>summary::-webkit-details-marker{display:none}.collapse-group>summary:before{content:"▸";color:var(--muted);font-size:.9em;transition:transform .15s ease}.collapse-group[open]>summary:before{transform:rotate(90deg)}.collapse-group>summary:hover{background:var(--paper-2)}.collapse-group>summary .count{color:var(--muted);font-weight:400}.collapse-group .group-body{padding:0 18px 18px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:.92rem}th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:.85rem;margin-top:40px}.footer a{color:var(--muted);margin-right:16px;text-decoration:none}.footer a:hover{color:var(--ink)}hr{border:none;border-top:1px solid var(--line);margin:24px 0}.phones{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.phone{border:10px solid #111;border-radius:36px;background:#fff;padding:18px 14px 24px;max-width:320px;margin:0 auto;box-shadow:var(--shadow)}.phone.android{border-radius:22px;border-width:8px}.phone-top{text-align:center;font-size:.72rem;color:var(--muted);margin-bottom:12px}.bubble{padding:10px 14px;border-radius:18px;font-size:.9rem;line-height:1.35;word-break:break-word;max-width:85%}.bubble.ios{background:#e9e9eb;color:#000;border-bottom-left-radius:5px}.bubble.android{background:#e7f0fe;color:#0b1e3a;border-radius:16px 16px 16px 4px}.bubble .link{color:#1d4ed8;text-decoration:underline}.feature-list{list-style:none;padding:0;margin:0;font-size:.9rem}.feature{display:flex;gap:9px;align-items:flex-start;padding:5px 0;line-height:1.35}.feature .mark{font-weight:700;flex-shrink:0}.pricing-note{text-align:center;font-family:var(--serif);font-size:1.15rem;margin:32px 0 8px;letter-spacing:-.01em}.price-ladder{border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden}.price-row{display:flex;justify-content:space-between;align-items:baseline;padding:18px 22px;border-bottom:1px solid var(--line);transition:background .12s ease}.price-row:last-child{border-bottom:none}.price-row.active{background:var(--ink);color:#fff}.price-row-label{font-size:1.02rem}.price-row-amount{font-family:var(--serif);font-size:1.7rem;letter-spacing:-.02em}.included{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:var(--paper-2)}.price-tag{display:inline-flex;align-items:stretch;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--paper);overflow:hidden}.price-tag-meta{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 16px}.price-tag-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;color:var(--muted)}.price-tag-pkg{font-size:.92rem;font-weight:600;color:var(--ink);white-space:nowrap}.price-tag-amount{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 18px;background:var(--ink);color:#fff;border-left:1px solid var(--ink)}.price-tag-price{font-family:var(--serif);font-size:1.5rem;line-height:1;letter-spacing:-.02em;animation:priceIn .22s ease}.price-tag-note{text-transform:uppercase;letter-spacing:.14em;font-size:.58rem;opacity:.72;margin-top:3px}@keyframes priceIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}.estimator-row{display:flex;gap:20px;align-items:flex-end;margin:14px 0 10px;flex-wrap:wrap}.estimator-price{min-width:140px;text-align:right}.estimator-amount{font-family:var(--serif);font-size:2.2rem;letter-spacing:-.02em}.estimator-range{width:100%;accent-color:var(--ink);margin:6px 0 12px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line-2);white-space:nowrap}.pill.sent{background:#f0fdf4;border-color:#bbf7d0;color:var(--ok)}.pill.delivered{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.pill.failed{background:#fef2f2;border-color:#fecaca;color:var(--danger)}.pill.queued{background:#fffbeb;border-color:#fde68a;color:#b45309}.pill.none{background:var(--paper-2);color:var(--muted)}.pill.review{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.pill.needs-review{background:#fef2f2;border-color:#fecaca;color:var(--danger)}.pill.intent{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.reply-quote{font-style:italic;color:var(--ink-2);font-size:.86rem}.rsvp-cell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.msg-flag{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;padding:0;border-radius:999px;cursor:pointer;background:#2563eb;color:#fff;border:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,box-shadow .15s ease,transform .08s ease;animation:msgFlagIn .18s ease both}.msg-flag svg{width:15px;height:15px;display:block}.msg-flag:hover{background:#1d4ed8;box-shadow:0 0 0 3px #2563eb2e}.msg-flag:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb47}.msg-flag:active{transform:scale(.9)}@keyframes msgFlagIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.msg-flag{animation:none}}.guest-note{margin:0;padding:14px 16px;border-left:3px solid #2563eb;background:#f6f9ff;border-radius:0 var(--radius) var(--radius) 0;font-family:var(--serif);font-size:1.08rem;line-height:1.55;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.guest-over>td{background:#f0fdf4}.guest-over>td:first-child{box-shadow:inset 3px 0 #16a34a}.tag-over{display:inline-block;margin-left:8px;vertical-align:middle;font-size:.66rem;font-weight:600;white-space:nowrap;color:#166534;background:#dcfce7;border-radius:999px;padding:1px 8px}.chan{display:inline-flex;gap:5px;margin-left:8px;vertical-align:middle}.chan-dot{display:inline-flex;align-items:center;justify-content:center;cursor:default}.chan-dot svg{width:14px;height:14px;display:block}.chan-dot.on{color:var(--ink-2)}.chan-dot.off{color:var(--line-2)}.contact-picker{max-height:260px;overflow-y:auto}.contact-picker .btn{justify-content:flex-start;text-align:left}.legal-doc{overflow-x:auto}.legal-doc h1{font-size:1.8rem;margin:0 0 10px}.legal-doc h2{font-size:1.25rem;margin:28px 0 8px}.legal-doc h3{font-size:1.02rem;margin:20px 0 6px}.legal-doc p,.legal-doc li{line-height:1.6}.legal-doc ul,.legal-doc ol{padding-left:20px;margin:8px 0}.legal-doc li{margin:4px 0}.legal-doc a{color:var(--ink)}.legal-doc blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--line-2);color:var(--ink-2);background:var(--paper-2)}.legal-doc table{border-collapse:collapse;margin:14px 0;font-size:.9rem;min-width:480px}.legal-doc th,.legal-doc td{border:1px solid var(--line-2);padding:8px 10px;text-align:left;vertical-align:top}.legal-doc thead th{background:var(--paper-2)}.legal-doc code{background:var(--paper-2);padding:1px 5px;border-radius:4px;font-size:.9em}.add-choice{display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;padding:14px 16px;background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);font:inherit;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}.add-choice:hover:not(:disabled){border-color:var(--ink);background:var(--paper-2)}.add-choice:focus-visible{outline:2px solid var(--ink);outline-offset:-1px}.add-choice:disabled{opacity:.55;cursor:not-allowed}.add-choice-title{font-weight:600}.add-choice-sub{font-size:.85rem;color:var(--muted)}.add-guest-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 12px;background:none;border:none;border-top:1px solid var(--line);font:inherit;font-weight:600;font-size:.92rem;color:var(--ink-2);cursor:pointer;-webkit-tap-highlight-color:transparent}.add-guest-trigger:hover{background:var(--paper-2);color:var(--ink)}.add-guest-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.add-guest-trigger span{font-size:1.05em;line-height:0}.modal.modal-add{max-width:520px}.autocomplete{position:relative}.autocomplete-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.autocomplete-item{display:block;width:100%;text-align:left;padding:10px 13px;background:#fff;border:none;border-bottom:1px solid var(--line);font:inherit;font-size:.92rem;color:var(--ink);cursor:pointer}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item:focus{background:var(--paper-2)}.hero-sub{max-width:560px;margin:0 auto;font-size:1.05rem}.how{margin-top:56px}.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.how-step{position:relative;padding:0 22px;display:flex;flex-direction:column;align-items:flex-start}.how-step+.how-step:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--line)}.how-index{font-family:var(--serif);font-size:2.6rem;line-height:1;font-weight:600;letter-spacing:-.02em;color:var(--line-2)}.how-copy{margin:10px 0 18px}.how-title{margin:0}.how-note{margin:5px 0 0;color:var(--muted);font-size:.92rem;line-height:1.5}.how-art{width:100%;margin-top:2px}.mini-invite{border:1px solid var(--line);border-radius:6px;padding:12px;background:#fff;box-shadow:var(--shadow)}.mini-poster{aspect-ratio:4 / 3;border-radius:4px;margin-bottom:12px;background:#eee url(/sample-invite-poster.jpg) center / cover no-repeat}.mini-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.58rem;font-weight:600;color:var(--muted)}.mini-title{font-family:var(--serif);font-size:1.15rem;font-weight:600;margin-top:2px}.mini-sub{font-size:.78rem;color:var(--muted);margin-top:2px}.guest-stack{display:flex;flex-direction:column;gap:8px}.guest-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 6px;background:#fff}.guest-avatar{width:24px;height:24px;flex:none;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600}.guest-chip .nm{flex:1;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guest-more{font-size:.8rem;color:var(--muted);padding:2px 0 0 8px}.sms-mini{display:flex;flex-direction:column;gap:6px}.sms-top{font-size:.66rem;color:var(--muted);text-align:center}.sms-bubble{align-self:flex-start;max-width:92%;background:#e9e9eb;color:#111;border-radius:18px 18px 18px 5px;padding:10px 14px;font-size:.86rem;line-height:1.4}.sms-bubble .sms-link{color:#2563eb;word-break:break-all}@media (max-width: 760px){.how-steps{grid-template-columns:1fr;gap:34px}.how-step{padding:0}.how-step+.how-step:before{display:none}.how-art{max-width:360px}}.home-sample{margin-top:48px}.only-sm{display:none}@media (max-width: 720px){.only-sm{display:block}.hide-sm{display:none!important}.hero-sub{margin-top:12px}.home-sample{margin-top:24px}.container,.container-narrow{padding:0 16px}.page{padding:24px 0 64px}h2{font-size:1.35rem}.card{padding:18px}.card.pad-lg{padding:22px 18px}.appbar-inner{height:56px}.appbar .appbar-nav{display:none}.menu-btn{display:inline-flex}.brand img{height:26px}.wizard-head{flex-direction:column;align-items:stretch}.wizard-head .row{width:100%}.price-tag{flex:1 1 100%;justify-content:space-between}.wizard-head .row .btn,.wizard-head .row [aria-disabled]{flex:1;justify-content:center}.steps{flex-wrap:nowrap;overflow-x:auto;margin:18px -16px 20px;padding:2px 16px;-webkit-overflow-scrolling:touch;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 32px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 32px),transparent)}.steps::-webkit-scrollbar{display:none}.step{flex-shrink:0}.row.actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.row.actions .btn{width:100%;padding-top:13px;padding-bottom:13px}.empty{padding:36px 18px}th,td{padding:9px 8px;font-size:.86rem}.table-sticky-first th:first-child,.table-sticky-first td:first-child{position:sticky;left:0;background:var(--paper);border-right:1px solid var(--line)}.table-sticky-first thead th:first-child{z-index:3}.table-sticky-first tbody td:first-child{z-index:2}.guest-table{table-layout:fixed}.guest-table th,.guest-table td{padding:9px 5px;vertical-align:top}.guest-table th{letter-spacing:0}.guest-table td:first-child{overflow-wrap:anywhere}.guest-table th:nth-child(2),.guest-table td:nth-child(2){width:5em}.guest-table th:nth-child(3),.guest-table td:nth-child(3){width:4.8em}.guest-table th:nth-child(4),.guest-table td:nth-child(4){width:2.8em}.guest-table .rsvp-cell{flex-wrap:wrap;gap:4px}.modal-scrim.scrim-add{padding:0}.modal.modal-add{max-width:none;width:100%;height:100dvh;max-height:100dvh;border-radius:0}.footer .spread{flex-direction:column;align-items:flex-start;gap:14px}.footer nav{display:flex;flex-wrap:wrap;gap:4px 0}}.event-row{position:relative;border-radius:var(--radius);overflow:hidden}.event-row .swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch}.swipe-action{border:none;width:96px;font:inherit;font-weight:600;font-size:.9rem;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.swipe-action.uncancel{background:#1d4ed8}.swipe-action.cancel{background:#b45309}.swipe-action.delete{background:var(--danger)}.swipe-action:disabled{opacity:.6;cursor:default}.event-row .event-fg{position:relative;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 46px 22px 22px;cursor:pointer;touch-action:pan-y;will-change:transform;transition:transform .22s cubic-bezier(.22,.61,.36,1),border-color .15s ease,box-shadow .15s ease}.event-row.dragging .event-fg{transition:none}.event-row .event-fg:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.event-row .event-fg:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.event-row.open .event-fg{box-shadow:var(--shadow)}.card-kebab{position:absolute;top:10px;right:8px;width:30px;height:30px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center}.card-kebab:hover{background:var(--paper-2);color:var(--ink);border-color:var(--line)}.skeleton-bar{display:inline-block;height:14px;border-radius:4px;background:linear-gradient(90deg,var(--paper-2) 25%,var(--line) 37%,var(--paper-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton-bar{animation:none}}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;padding:20px;background:#0a0a0a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:fade-in .12s ease}.modal{max-width:420px;width:100%;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.toast-wrap{position:fixed;z-index:120;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;width:100%;max-width:460px;padding:13px 14px;border:1px solid var(--line-2);border-left:3px solid var(--ink);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);font-size:.9rem;line-height:1.4;animation:toastIn .18s ease}.toast.warn{border-left-color:#b45309;background:#fffbeb}.toast.error{border-left-color:var(--danger);background:#fef2f2}.toast.ok{border-left-color:var(--ok);background:#f0fdf4}.toast-msg{flex:1;overflow-wrap:anywhere}.toast-x{flex:none;padding:2px 4px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:1.15rem;line-height:1;-webkit-tap-highlight-color:transparent}.toast-x:hover{color:var(--ink)}.toast-x:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@media (min-width: 761px){.toast-wrap{justify-content:flex-end;padding:0 20px 20px}}.cropper{max-width:460px}.crop-frame{position:relative;width:100%;overflow:hidden;background:#000;border-radius:4px;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.crop-frame:active{cursor:grabbing}.crop-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff73;background-image:linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px);background-size:100% 33.34%,33.34% 100%}.pick-list{display:flex;flex-direction:column;max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius)}.pick-row{display:flex;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}.pick-row:last-child{border-bottom:none}.pick-row:hover{background:var(--paper-2)}.pick-row input{width:auto;flex:none}.pick-row .who{flex:1;min-width:0}.pick-row .who .nm{font-weight:600}.pick-row .who .ct{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-row .from{font-size:.72rem;color:var(--muted);white-space:nowrap}.redirect-section{border-top:1px solid var(--line);padding-top:20px;margin-top:4px}.datefield-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:2.9rem;padding:11px 13px;text-align:left;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer}.datefield-trigger:hover{border-color:var(--line-2);background:var(--paper-2)}.datefield-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:-1px}.datefield-trigger.empty{color:var(--muted)}.datefield-trigger .dt-ico{display:inline-flex;color:var(--muted);flex:none}.datefield-trigger .loc-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.datefield-trigger .loc-summary .muted{font-size:.85rem}.cal{max-width:360px}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-title{font-family:var(--serif);font-size:1.15rem;font-weight:600}.cal-nav{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);color:var(--ink);cursor:pointer}.cal-nav:hover{background:var(--paper-2)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-weekdays{margin-bottom:2px}.cal-weekday{text-align:center;font-size:.7rem;font-weight:600;color:var(--muted);padding:4px 0}.cal-day{aspect-ratio:1 / 1;max-height:48px;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:.92rem;background:#fff;border:1px solid transparent;border-radius:var(--radius);color:var(--ink);cursor:pointer;position:relative}.cal-day:hover:not(:disabled){background:var(--paper-2);border-color:var(--line)}.cal-day.outside{color:var(--line-2)}.cal-day.today{font-weight:700}.cal-day.today:after{content:"";position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:var(--ink)}.cal-day.sel,.cal-day.sel:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.cal-day.sel.today:after{background:#fff}.cal-day:disabled{color:var(--line-2);cursor:not-allowed;opacity:.5}.cal-time{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--line)}.cal-time-label{font-size:.85rem;font-weight:600;color:var(--ink-2)}.cal-time-selects{display:flex;align-items:center;gap:6px}.cal-time-selects select{width:auto;padding:8px 10px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;z-index:100;background:var(--paper);display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none;animation:fade-in .12s ease}.sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);min-height:56px}.sheet-title{font-family:var(--serif);font-size:1.2rem;font-weight:600}.sheet-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;font-size:1.1rem;color:var(--ink-2);cursor:pointer;border-radius:var(--radius)}.sheet-close:hover{background:var(--paper-2)}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px}.sheet-inner{max-width:480px;margin:0 auto;width:100%}.sheet-foot{flex:none;display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid var(--line);padding-bottom:max(14px,env(safe-area-inset-bottom))}.sheet-foot .btn{min-width:120px}.loc-search-wrap{flex:1;min-height:0;display:flex;flex-direction:column;max-width:520px;width:100%;margin:0 auto;padding:16px}.loc-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--radius);flex:none}.loc-search .loc-search-ico{color:var(--muted);flex:none;display:inline-flex}.loc-search input{border:none;padding-left:0}.loc-search input:focus{outline:none}.loc-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;margin-top:8px}.loc-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 6px;background:#fff;border:none;border-bottom:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer}.loc-item:last-child{border-bottom:none}.loc-item:hover{background:var(--paper-2)}.loc-item .loc-item-ico{color:var(--muted);flex:none;display:inline-flex}.loc-item-freeform{color:var(--ink-2)}.loc-chosen{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;padding:12px 13px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer}.loc-chosen:hover{background:#f2f2f2;border-color:var(--line-2)}.loc-chosen .dt-ico{color:var(--muted);flex:none;display:inline-flex}.loc-chosen .loc-chosen-addr{flex:1;min-width:0}.loc-chosen .loc-chosen-edit{color:var(--muted);flex:none;display:inline-flex}.connect-steps{padding-left:22px;margin:4px 0 0}.connect-steps>li{margin:8px 0}.code-block{position:relative;background:var(--ink);color:#f5f5f5;border-radius:var(--radius);padding:16px;overflow-x:auto}.code-block code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5;white-space:pre}.code-copy{position:absolute;top:10px;right:10px;background:#ffffff24;color:#fff;border:0;border-radius:4px;padding:5px 11px;font-size:.78rem;cursor:pointer}.code-copy:hover{background:#ffffff42}.prompt-list{list-style:none;padding:0;margin:0}.prompt-list li{border-left:2px solid var(--line-2);padding:5px 0 5px 12px;margin:8px 0;color:var(--ink-2)}
