*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #F8F5EE;--bg-card: #FFFFFF;--bg-ui: #ECEAE3;--ink-primary: #1A1A1A;--ink-secondary: #5A5650;--ink-muted: #9A9488;--ink-placeholder: #B8B6AE;--ink-faint: #C8C4BA;--border-default: rgba(26, 26, 26, .08);--border-strong: rgba(26, 26, 26, .15);--border-muted: rgba(26, 26, 26, .04);--btn-primary-bg: #1A1A1A;--btn-primary-fg: #FFFFFF;--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: rgba(26, 26, 26, .055);--dot-size: 20px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .06);--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: rgba(255, 255, 255, .06);--border-strong: rgba(255, 255, 255, .1);--border-muted: rgba(255, 255, 255, .03);--btn-primary-bg: #E8E4DC;--btn-primary-fg: #1A1A1A;--btn-primary-hover: #FFFFFF;--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: rgba(255, 255, 255, .025);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .5)}}[data-theme=light]{--bg-primary: #F8F5EE;--bg-card: #FFFFFF;--bg-ui: #ECEAE3;--ink-primary: #1A1A1A;--ink-secondary: #5A5650;--ink-muted: #9A9488;--ink-placeholder: #B8B6AE;--ink-faint: #C8C4BA;--border-default: rgba(26, 26, 26, .08);--border-strong: rgba(26, 26, 26, .15);--border-muted: rgba(26, 26, 26, .04);--btn-primary-bg: #1A1A1A;--btn-primary-fg: #FFFFFF;--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: rgba(26, 26, 26, .055);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .06)}[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: rgba(255, 255, 255, .06);--border-strong: rgba(255, 255, 255, .1);--border-muted: rgba(255, 255, 255, .03);--btn-primary-bg: #E8E4DC;--btn-primary-fg: #1A1A1A;--btn-primary-hover: #FFFFFF;--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: rgba(255, 255, 255, .025);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .5)}html,body{background:var(--bg-ui);color:var(--ink-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.frame{width:390px;height:844px;margin:0 auto;background-color:var(--bg-primary);background-image:radial-gradient(circle,var(--dot-color) 1px,transparent 1px);background-size:var(--dot-size) var(--dot-size);background-attachment:local;display:flex;flex-direction:column;position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;transform:translateZ(0)}.app-root{max-width:480px;margin:0 auto;min-height:100vh;position:relative}.app-root .frame{width:100%;max-width:100%;height:auto;min-height:100dvh;overflow-y:visible;-webkit-overflow-scrolling:auto;will-change:auto;transform:none}.screen{flex:1;display:flex;flex-direction:column;padding:0 16px}.screen>div:last-child{transform:translateZ(0)}.logo{font-family:Poppins,sans-serif;font-weight:800;font-size:28px;color:var(--ink-primary);line-height:1;letter-spacing:-.03em}.tagline{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;color:var(--ink-secondary);line-height:20px}h1{font-size:22px;font-weight:700;line-height:28px;letter-spacing:-.02em;color:var(--ink-primary)}h2{font-size:17px;font-weight:700;line-height:24px;letter-spacing:-.01em;color:var(--ink-primary)}h3{font-size:14px;font-weight:700;line-height:20px;color:var(--ink-primary)}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--ink-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--btn-h);width:100%;border-radius:var(--radius-lg);border:none;font-size:15px;font-weight:600;cursor:pointer;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}.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{background:transparent;color:var(--ink-primary);border:1px solid var(--border-strong)}@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{background:transparent;color:var(--ink-secondary);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{background:transparent;color:var(--semantic-error);border:1px solid var(--semantic-error-border)}@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]{background:var(--btn-disabled-bg)!important;color:var(--btn-disabled-fg)!important;border-color:transparent!important;cursor:not-allowed;pointer-events:none}.btn-half{width:50%}.input-group{display:flex;flex-direction:column;gap:4px}.input-label{font-size:12px;font-weight:600;color:var(--ink-secondary);line-height:18px;letter-spacing:.02em;text-transform:uppercase}.input{width:100%;height:48px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);color:var(--ink-primary);font-size:16px;padding:0 16px;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.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{font-size:12px;color:var(--semantic-error);margin-top:4px;display:flex;align-items:center;gap:4px}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:16px;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)}.card-interactive{cursor:pointer}@media(hover:hover){.card-interactive:hover{box-shadow:var(--shadow-md);background-color:#1a1a1a08}}.alert{border-radius:var(--radius-lg);padding:12px 16px;font-size:13px;display:flex;align-items:flex-start;gap:10px}.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{height:1px;background:var(--border-default);margin:16px 0}.back-btn{background:none;border:none;color:var(--ink-secondary);font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px;padding:0;transition:color var(--duration-fast) var(--ease-out)}@media(hover:hover){.back-btn:hover{color:var(--ink-primary)}}.progress-seg{flex:1;height:3px;border-radius:2px;transition:background var(--duration-normal) var(--ease-out)}.progress-seg.active{background:var(--ink-primary)}.progress-seg.done{background:var(--ink-secondary)}.progress-seg.todo{background:var(--border-strong)}.chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.chip-outline{border-color:var(--border-strong);color:var(--ink-secondary);background:transparent}.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{width:48px;height:48px;border:3px solid var(--border-strong);border-top-color:var(--ink-primary);border-radius:50%;animation:spin .8s linear infinite}.countdown{font-size:12px;color:var(--semantic-warning);font-weight:600}.avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-ui);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--ink-secondary);border:1.5px solid var(--border-strong);flex-shrink:0}.avatar.responded{border-color:var(--semantic-success);color:var(--semantic-success)}.venue-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:16px;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)}@media(hover:hover){.venue-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}}.tag{display:inline-block;font-size:11px;font-weight:500;padding:3px 10px;border-radius:var(--radius-full);background:transparent;border:1px solid var(--border-strong);color:var(--ink-secondary);letter-spacing:.02em}@keyframes nudge-pulse{0%,to{opacity:1}50%{opacity:.4}}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.01em;white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge-respond{background:#1a1a1a;color:#f8f5ee}.badge-respond .badge-dot{background:#f8f5ee;animation:nudge-pulse 1.5s ease-in-out infinite}.badge-book{background:#fef4e0;color:#7a5010;border:1px solid rgba(196,132,30,.2)}.badge-book .badge-dot{background:#c4841e}.badge-waiting{background:#eceae3;color:#9a9488}.badge-waiting .badge-dot{background:#c8c4bc}.badge-booked{background:#ebf5ee;color:#1e5c35}.badge-booked .badge-dot{background:#3d8c5a}.badge-idle{background:#eceae3;color:#c8c4bc}.badge-idle .badge-dot{background:#c8c4bc;opacity:.5}.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{background:#f0eae0;color:#161412}.dark .badge-book{background:#2a2010;color:#d4a840;border-color:#d4a84033}.dark .badge-waiting{background:#2a2620;color:#706860}.dark .badge-booked{background:#1a2e20;color:#5abe7a}.dark .badge-idle{background:#2a2620;color:#4a4640}.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{font-size:11px;line-height:16px;letter-spacing:.02em}.w-full{width:100%}.flex-1{flex:1}.relative{position:relative}.bold{font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.progress-dots{display:flex;gap:8px;justify-content:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.dot.active{background:var(--ink-primary)}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0) scaleX(1);opacity:1}80%{opacity:1}to{transform:translateY(110vh) rotate(720deg) scaleX(-1);opacity:0}}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall linear forwards;pointer-events:none}.dot.done{background:var(--semantic-success-icon)}
