*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f8f5ee;--bg-card:#fff;--bg-ui:#eceae3;--ink-primary:#1a1a1a;--ink-secondary:#5a5650;--ink-muted:#9a9488;--ink-placeholder:#b8b6ae;--ink-faint:#c8c4ba;--border-default:#1a1a1a14;--border-strong:#1a1a1a26;--border-muted:#1a1a1a0a;--btn-primary-bg:#1a1a1a;--btn-primary-fg:#fff;--btn-primary-hover:#2d2d2d;--btn-primary-active:#404040;--btn-disabled-bg:#d0cbc5;--btn-disabled-fg:#8c8884;--semantic-success:#2d7d4f;--semantic-success-bg:#edf7f2;--semantic-success-border:#a8d8ba;--semantic-success-icon:#3daa70;--semantic-warning:#8a5a1a;--semantic-warning-bg:#fff5e4;--semantic-warning-border:#e8c890;--semantic-error:#9a2a1a;--semantic-error-bg:#fef2f0;--semantic-error-border:#f0a898;--semantic-info:#1a4a8a;--semantic-info-bg:#eef4ff;--semantic-info-border:#98bcec;--group-sage:#c8d8c0;--group-lavender:#c8c0d8;--group-peach:#e8c8b8;--group-sky:#b8d0e0;--group-butter:#e0d8b0;--group-rose:#e0c0c8;--group-slate:#c0c8d0;--group-marigold:#e0d0a8;--dot-color:#1a1a1a0e;--dot-size:20px;--shadow-xs:0 1px 2px #0000000f;--shadow-sm:0 1px 4px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000f;--shadow-lg:0 8px 24px #0000001a, 0 4px 8px #0000000f;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--duration-instant:50ms;--duration-fast:.1s;--duration-normal:.2s;--duration-slow:.3s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.55, .085, .68, .53);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--btn-h:48px;--color-success-bg:var(--semantic-success-bg);--color-success-border:var(--semantic-success-border);--color-success-text:var(--semantic-success);--color-success-icon:var(--semantic-success-icon);--color-success-solid:var(--semantic-success);--color-warning-bg:var(--semantic-warning-bg);--color-warning-border:var(--semantic-warning-border);--color-warning-text:var(--semantic-warning);--color-warning-icon:var(--semantic-warning);--color-warning-solid:var(--semantic-warning);--color-error-bg:var(--semantic-error-bg);--color-error-border:var(--semantic-error-border);--color-error-text:var(--semantic-error);--color-error-icon:var(--semantic-error);--color-error-solid:var(--semantic-error);--color-info-bg:var(--semantic-info-bg);--color-info-border:var(--semantic-info-border);--color-info-text:var(--semantic-info);--color-info-icon:var(--semantic-info);--color-info-solid:var(--semantic-info);--color-neutral-300:var(--bg-ui);--color-neutral-400:var(--ink-faint);--color-bg-page:var(--bg-primary);--color-bg-card:var(--bg-card);--color-bg-elevated:var(--bg-ui);--color-text-primary:var(--ink-primary);--color-text-secondary:var(--ink-secondary);--color-text-tertiary:var(--ink-muted);--color-text-link:var(--ink-primary);--color-border-default:var(--border-default);--color-border-strong:var(--border-strong);--color-border-muted:var(--border-muted);--color-border-focus:var(--ink-primary);--color-primary-300:var(--ink-faint);--color-primary-400:var(--ink-muted);--color-primary-500:var(--ink-primary);--color-primary-600:var(--btn-primary-hover);--color-primary-700:var(--btn-primary-active);--bg:var(--bg-primary);--surface:var(--bg-card);--surface2:var(--bg-ui);--text:var(--ink-primary);--text-muted:var(--ink-secondary);--taupe:var(--ink-muted);--coral:var(--ink-primary);--success:var(--semantic-success-icon);--warning:var(--semantic-warning);--error:var(--semantic-error);--mauve:#9a8898;--radius:var(--radius-lg)}@media (prefers-color-scheme:dark){:root{--bg-primary:#161412;--bg-card:#1f1d1a;--bg-ui:#282420;--ink-primary:#e8e4dc;--ink-secondary:#9a9488;--ink-muted:#6a6460;--ink-placeholder:#4a4844;--ink-faint:#2e2a26;--border-default:#ffffff0f;--border-strong:#ffffff1a;--border-muted:#ffffff08;--btn-primary-bg:#e8e4dc;--btn-primary-fg:#1a1a1a;--btn-primary-hover:#fff;--btn-primary-active:#f0ede6;--btn-disabled-bg:#2e2b28;--btn-disabled-fg:#66625e;--semantic-success:#6bcca0;--semantic-success-bg:#0a2e1a;--semantic-success-border:#1a5e3a;--semantic-success-icon:#6bcca0;--semantic-warning:#d4a050;--semantic-warning-bg:#2e1a04;--semantic-warning-border:#6a4a10;--semantic-error:#e06050;--semantic-error-bg:#2e0a0a;--semantic-error-border:#6a1a1a;--semantic-info:#70a8e0;--semantic-info-bg:#0a1a2e;--semantic-info-border:#1a3a6a;--group-sage:#4a7a5e;--group-lavender:#5a4a7a;--group-peach:#9a5a3a;--group-sky:#3a6a8a;--group-butter:#7a6a2a;--group-rose:#8a3a5a;--group-slate:#3a5a6a;--group-marigold:#7a5a1a;--dot-color:#ffffff06;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 4px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000080, 0 2px 4px #0006;--shadow-lg:0 8px 24px #0009, 0 4px 8px #00000080}}[data-theme=light]{--bg-primary:#f8f5ee;--bg-card:#fff;--bg-ui:#eceae3;--ink-primary:#1a1a1a;--ink-secondary:#5a5650;--ink-muted:#9a9488;--ink-placeholder:#b8b6ae;--ink-faint:#c8c4ba;--border-default:#1a1a1a14;--border-strong:#1a1a1a26;--border-muted:#1a1a1a0a;--btn-primary-bg:#1a1a1a;--btn-primary-fg:#fff;--btn-primary-hover:#2d2d2d;--btn-primary-active:#404040;--semantic-success:#2d7d4f;--semantic-success-bg:#edf7f2;--semantic-success-border:#a8d8ba;--semantic-success-icon:#3daa70;--semantic-warning:#8a5a1a;--semantic-warning-bg:#fff5e4;--semantic-warning-border:#e8c890;--semantic-error:#9a2a1a;--semantic-error-bg:#fef2f0;--semantic-error-border:#f0a898;--semantic-info:#1a4a8a;--semantic-info-bg:#eef4ff;--semantic-info-border:#98bcec;--group-sage:#c8d8c0;--group-lavender:#c8c0d8;--group-peach:#e8c8b8;--group-sky:#b8d0e0;--group-butter:#e0d8b0;--group-rose:#e0c0c8;--group-slate:#c0c8d0;--group-marigold:#e0d0a8;--dot-color:#1a1a1a0e;--shadow-xs:0 1px 2px #0000000f;--shadow-sm:0 1px 4px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000f;--shadow-lg:0 8px 24px #0000001a, 0 4px 8px #0000000f}[data-theme=dark]{--bg-primary:#161412;--bg-card:#1f1d1a;--bg-ui:#282420;--ink-primary:#e8e4dc;--ink-secondary:#9a9488;--ink-muted:#6a6460;--ink-placeholder:#4a4844;--ink-faint:#2e2a26;--border-default:#ffffff0f;--border-strong:#ffffff1a;--border-muted:#ffffff08;--btn-primary-bg:#e8e4dc;--btn-primary-fg:#1a1a1a;--btn-primary-hover:#fff;--btn-primary-active:#f0ede6;--semantic-success:#6bcca0;--semantic-success-bg:#0a2e1a;--semantic-success-border:#1a5e3a;--semantic-success-icon:#6bcca0;--semantic-warning:#d4a050;--semantic-warning-bg:#2e1a04;--semantic-warning-border:#6a4a10;--semantic-error:#e06050;--semantic-error-bg:#2e0a0a;--semantic-error-border:#6a1a1a;--semantic-info:#70a8e0;--semantic-info-bg:#0a1a2e;--semantic-info-border:#1a3a6a;--group-sage:#4a7a5e;--group-lavender:#5a4a7a;--group-peach:#9a5a3a;--group-sky:#3a6a8a;--group-butter:#7a6a2a;--group-rose:#8a3a5a;--group-slate:#3a5a6a;--group-marigold:#7a5a1a;--dot-color:#ffffff06;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 4px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000080, 0 2px 4px #0006;--shadow-lg:0 8px 24px #0009, 0 4px 8px #00000080}html,body{background-color:var(--bg-primary);background-image:radial-gradient(circle, var(--dot-color) 1px, transparent 1px);background-size:var(--dot-size) var(--dot-size);color:var(--ink-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;overflow:hidden}.frame{background-color:var(--bg-primary);background-image:radial-gradient(circle, var(--dot-color) 1px, transparent 1px);background-size:var(--dot-size) var(--dot-size);-webkit-overflow-scrolling:touch;will-change:transform;background-attachment:local;flex-direction:column;width:390px;height:844px;margin:0 auto;display:flex;position:relative;overflow-y:auto;transform:translateZ(0)}.app-root{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;max-width:480px;height:100dvh;margin:0 auto;position:relative;overflow:hidden auto}@media (width>=640px){.app-root{max-width:600px}}@media (width>=1024px){.app-root{max-width:680px}}.app-root .frame{-webkit-overflow-scrolling:auto;will-change:auto;width:100%;max-width:100%;height:auto;min-height:100dvh;overflow-y:visible;transform:none}.screen{flex-direction:column;flex:1;padding:0 16px;display:flex}.screen>div:last-child{transform:translateZ(0)}.logo{color:var(--ink-primary);letter-spacing:-.03em;font-family:Poppins,sans-serif;font-size:28px;font-weight:800;line-height:1}.tagline{color:var(--ink-secondary);font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:20px}h1{letter-spacing:-.02em;color:var(--ink-primary);font-size:22px;font-weight:700;line-height:28px}h2{letter-spacing:-.01em;color:var(--ink-primary);font-size:17px;font-weight:700;line-height:24px}h3{color:var(--ink-primary);font-size:14px;font-weight:700;line-height:20px}:focus-visible{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--ink-primary);outline:none}.btn{height:var(--btn-h);border-radius:var(--radius-lg);cursor:pointer;width:100%;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-instant) var(--ease-in), box-shadow var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;letter-spacing:-.01em;border:none;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:inline-flex}.btn:active:not(.btn-disabled):not([disabled]){transform:scale(.98)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg)}@media (hover:hover){.btn-primary:hover:not(.btn-disabled):not([disabled]){background:var(--btn-primary-hover)}}.btn-primary:active:not(.btn-disabled):not([disabled]){background:var(--btn-primary-active)}.btn-group{background:var(--group-color,var(--bg-ui));color:var(--ink-primary);border:none}@media (hover:hover){.btn-group:hover:not(.btn-disabled):not([disabled]){filter:brightness(.95)}}.btn-group:active:not(.btn-disabled):not([disabled]){filter:brightness(.9)}.btn-secondary{color:var(--ink-primary);border:1px solid var(--border-strong);background:0 0}@media (hover:hover){.btn-secondary:hover:not(.btn-disabled):not([disabled]){background:var(--bg-ui)}}.btn-secondary:active:not(.btn-disabled):not([disabled]){background:var(--border-default)}.btn-ghost{color:var(--ink-secondary);background:0 0;border:none}@media (hover:hover){.btn-ghost:hover:not(.btn-disabled):not([disabled]){background:var(--bg-ui);color:var(--ink-primary)}}.btn-ghost:active:not(.btn-disabled):not([disabled]){background:var(--border-default)}.btn-success{background:var(--semantic-success);color:#fff}@media (hover:hover){.btn-success:hover:not(.btn-disabled):not([disabled]){filter:brightness(1.1)}}.btn-destructive{color:var(--semantic-error);border:1px solid var(--semantic-error-border);background:0 0}@media (hover:hover){.btn-destructive:hover:not(.btn-disabled):not([disabled]){background:var(--semantic-error-bg)}}.btn-destructive:active:not(.btn-disabled):not([disabled]){background:var(--semantic-error-bg)}.btn-disabled,.btn[disabled]{cursor:not-allowed;pointer-events:none;background:var(--btn-disabled-bg)!important;color:var(--btn-disabled-fg)!important;border-color:#0000!important}.btn-half{width:50%}.input-group{flex-direction:column;gap:4px;display:flex}.input-label{color:var(--ink-secondary);letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:600;line-height:18px}.input{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;height:48px;color:var(--ink-primary);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);outline:none;padding:0 16px;font-size:16px}.input:focus{border-color:var(--ink-primary);box-shadow:0 0 0 3px #1a1a1a14}.input::placeholder{color:var(--ink-muted)}.input:disabled{opacity:.4;cursor:not-allowed}.input.error{border-color:var(--semantic-error);background:var(--semantic-error-bg)}.input-error-msg{color:var(--semantic-error);align-items:center;gap:4px;margin-top:4px;font-size:12px;display:flex}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);padding:16px}.card-interactive{cursor:pointer}@media (hover:hover){.card-interactive:hover{box-shadow:var(--shadow-md);background-color:#1a1a1a08}}.alert{border-radius:var(--radius-lg);align-items:flex-start;gap:10px;padding:12px 16px;font-size:13px;display:flex}.alert-success{background:var(--semantic-success-bg);color:var(--semantic-success);border:1px solid var(--semantic-success-border)}.alert-warning{background:var(--semantic-warning-bg);color:var(--semantic-warning);border:1px solid var(--semantic-warning-border)}.alert-error{background:var(--semantic-error-bg);color:var(--semantic-error);border:1px solid var(--semantic-error-border)}.alert-info{background:var(--semantic-info-bg);color:var(--semantic-info);border:1px solid var(--semantic-info-border)}.divider{background:var(--border-default);height:1px;margin:16px 0}.back-btn{color:var(--ink-secondary);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:14px;display:flex}@media (hover:hover){.back-btn:hover{color:var(--ink-primary)}}.progress-seg{height:3px;transition:background var(--duration-normal) var(--ease-out);border-radius:2px;flex:1}.progress-seg.active{background:var(--ink-primary)}.progress-seg.done{background:var(--ink-secondary)}.progress-seg.todo{background:var(--border-strong)}.chip{border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.chip-outline{border-color:var(--border-strong);color:var(--ink-secondary);background:0 0}.chip-outline:hover{border-color:var(--ink-primary);color:var(--ink-primary)}.chip-selected{border-color:var(--ink-primary);color:var(--ink-primary);background:var(--bg-ui)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--border-strong);border-top-color:var(--ink-primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.countdown{color:var(--semantic-warning);font-size:12px;font-weight:600}.avatar{background:var(--bg-ui);width:36px;height:36px;color:var(--ink-secondary);border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.avatar.responded{border-color:var(--semantic-success);color:var(--semantic-success)}.venue-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);padding:16px}@media (hover:hover){.venue-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}}.tag{border-radius:var(--radius-full);border:1px solid var(--border-strong);color:var(--ink-secondary);letter-spacing:.02em;background:0 0;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}@keyframes nudge-pulse{0%,to{opacity:1}50%{opacity:.4}}.badge{letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-respond{color:#f8f5ee;background:#1a1a1a}.badge-respond .badge-dot{background:#f8f5ee;animation:1.5s ease-in-out infinite nudge-pulse}.badge-book{color:#7a5010;background:#fef4e0;border:1px solid #c4841e33}.badge-book .badge-dot{background:#c4841e}.badge-waiting{color:#9a9488;background:#eceae3}.badge-waiting .badge-dot{background:#c8c4bc}.badge-booked{color:#1e5c35;background:#ebf5ee}.badge-booked .badge-dot{background:#3d8c5a}.badge-idle{color:#c8c4bc;background:#eceae3}.badge-idle .badge-dot{opacity:.5;background:#c8c4bc}.badge-matched{background:var(--ink-primary);color:var(--btn-primary-fg)}.badge-confirmed{background:var(--semantic-success-bg);color:var(--semantic-success);border:1px solid var(--semantic-success-border)}.dark .badge-respond{color:#161412;background:#f0eae0}.dark .badge-book{color:#d4a840;background:#2a2010;border-color:#d4a84033}.dark .badge-waiting{color:#706860;background:#2a2620}.dark .badge-booked{color:#5abe7a;background:#1a2e20}.dark .badge-idle{color:#4a4640;background:#2a2620}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-48{margin-top:48px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.text-muted{color:var(--ink-secondary)}.text-tertiary{color:var(--ink-muted)}.text-coral{color:var(--ink-primary)}.text-success{color:var(--semantic-success)}.text-warning{color:var(--semantic-warning)}.text-error{color:var(--semantic-error)}.text-sm{font-size:13px;line-height:20px}.text-xs{letter-spacing:.02em;font-size:11px;line-height:16px}.w-full{width:100%}.flex-1{flex:1}.relative{position:relative}.bold{font-weight:600}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.progress-dots{justify-content:center;gap:8px;display:flex}.dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.dot.active{background:var(--ink-primary)}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)scaleX(1)}80%{opacity:1}to{opacity:0;transform:translateY(110vh)rotate(720deg)scaleX(-1)}}.confetti-piece{pointer-events:none;border-radius:2px;animation:linear forwards confetti-fall;position:absolute;top:-20px}.dot.done{background:var(--semantic-success-icon)}.skeleton{border-radius:var(--radius-md);background:var(--bg-ui)}.input-with-toggle{padding-right:44px}.frame{overscroll-behavior-y:contain}@media (prefers-reduced-motion:no-preference){@keyframes letter-nudge{0%{transform:translate(5px)}65%{transform:translate(-2px)}to{transform:translate(0)}}.logo-letter{display:inline-block}.logo-letter-anim{animation:.25s ease-out both letter-nudge}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}.page-fade{animation:.15s ease-out both page-fade-in}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-ui) 25%, var(--bg-card) 50%, var(--bg-ui) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes scale-bounce{0%{transform:scale(0)}70%{transform:scale(1.14)}to{transform:scale(1)}}.scale-bounce{animation:.4s ease-out both scale-bounce}@keyframes confetti-burst{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(44px)}}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-up-fade{animation:.3s ease-out both slide-up-fade}@keyframes gentle-fade-in{0%{opacity:0}to{opacity:1}}.gentle-fade-in{animation:.3s ease-out both gentle-fade-in}}
