:root{color-scheme:light;--ink: #2f2438;--muted: #6f6577;--surface: #ffffff;--surface-soft: rgba(255, 255, 255, .86);--border: rgba(63, 37, 48, .08);--rose: #ff5f82;--accent: var(--rose);--accent-strong: #d93266;--accent-soft: #fff0f5;--success: #178a62;--error: #d42b4c;--shadow: 0 18px 42px rgba(196, 72, 111, .1);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{position:relative;color:var(--ink);background:#fff4f7;line-height:1.55}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(168deg,#fff1f6,#fff8f0 46%,#f4f2ff)}.app-shell{display:flex;min-height:100vh;min-height:100dvh;padding:22px 18px calc(30px + env(safe-area-inset-bottom))}.page{position:relative;margin:auto;width:min(520px,100%)}.page:before{content:"";display:block;width:var(--progress, 0%);height:5px;margin-bottom:24px;border-radius:999px;background:linear-gradient(90deg,var(--rose),#ff8468);transform-origin:left bottom;animation:grow-progress .45s ease-out}.page[data-step=invite]{--progress: 20%}.page[data-step=datetime]{--progress: 40%}.page[data-step=meeting-style]{--progress: 60%}.page[data-step=menu]{--progress: 80%}.page[data-step=card]{--progress: 100%}.intro-art{display:flex;justify-content:center;margin-bottom:12px;filter:drop-shadow(0 18px 26px rgba(208,70,109,.12))}.intro-art svg{width:min(226px,64vw);height:auto}.page-header,.page-lead,.action-row{text-align:center}.eyebrow{margin:0 0 6px;color:var(--accent-strong);font-size:.74rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.page-header h1{margin:0;font-size:clamp(1.65rem,6.2vw,2.3rem);font-weight:850;line-height:1.2;letter-spacing:0}.page-lead{margin:12px auto 28px;max-width:26em;color:var(--muted);font-size:1rem}.form-panel{padding:0;background:transparent;border:0;box-shadow:none;text-align:left}.field{margin-bottom:22px}.datetime-back{display:grid;place-items:center;width:42px;height:42px;color:var(--ink);background:#ffffffb8;border:1px solid var(--border);border-radius:999px}.datetime-header-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center}.datetime-header-row .eyebrow{margin:0}.datetime-back svg{width:20px;height:20px}.datetime-back:focus-visible{outline:3px solid rgba(255,95,130,.22);outline-offset:2px}.datetime-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:34px}.datetime-fields .field-label{display:inline-flex;align-items:center;gap:6px}.datetime-fields .field-label svg{width:16px;height:16px;color:var(--accent-strong)}.time-select{width:100%;min-height:56px;padding:12px 42px 12px 16px;color:var(--muted);background-color:var(--surface-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d93266' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 28px #c4486f0f;font:inherit;font-weight:650;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-select.has-value{color:var(--ink)}.time-select:focus{border-color:var(--rose);box-shadow:0 12px 28px #ff5f821f}.datetime-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin:2px 0 20px;color:var(--muted);font-size:.9rem;font-weight:720;text-align:center}.datetime-hint svg{flex:0 0 auto;width:16px;height:16px;color:var(--accent-strong)}.datetime-action-row{justify-content:center;margin-top:0}.datetime-action-row .primary-button{width:min(320px,100%)}.icon-return-button{display:grid;place-items:center;width:48px;height:48px;color:var(--ink);background:#ffffffdb;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:border-color .2s ease,transform .2s ease}.icon-return-button:hover{border-color:#ff5f826b;transform:translateY(-1px)}.icon-return-button:focus-visible{outline:3px solid rgba(255,95,130,.35);outline-offset:2px}.icon-return-button svg{width:20px;height:20px}.field-label{display:block;margin-bottom:9px;color:var(--ink);font-size:.95rem;font-weight:800}.date-input{width:100%;min-height:56px;padding:12px 16px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 28px #c4486f0f;font:inherit;font-weight:650;transition:border-color .2s ease,box-shadow .2s ease}.date-input:focus,.option-chip:focus-within,.option-card:focus-within{outline:3px solid rgba(255,95,130,.22);outline-offset:2px}.date-input:focus{border-color:var(--rose);box-shadow:0 12px 28px #ff5f821f}.option-fieldset{margin:0 0 16px;padding:0;border:0}.time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.option-chip{display:grid;place-items:center;min-height:48px;padding:8px 4px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:15px;box-shadow:0 10px 22px #c4486f0d;cursor:pointer;font-size:.92rem;font-weight:720;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.option-list{display:grid;gap:11px}.option-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;min-height:56px;padding:15px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:18px;box-shadow:0 14px 30px #c4486f12;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.option-chip:hover,.option-card:hover{border-color:#ff5f826b;transform:translateY(-1px)}.option-card.selected,.option-chip.selected{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--rose);box-shadow:0 14px 28px #ff5f8224}.option-radio{display:grid;place-items:center;width:22px;height:22px;background:#fff;border:1.5px solid #f0cfd8;border-radius:50%;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.option-radio:after{content:"";width:10px;height:10px;border-radius:50%;background:transparent;transform:scale(.4);transition:background-color .2s ease,transform .2s ease}.option-card.selected .option-radio{background:var(--rose);border-color:var(--rose);box-shadow:0 0 0 4px #ff5f821f}.option-card.selected .option-radio:after{background:#fff;transform:scale(1)}.option-copy{display:grid;gap:3px}.option-title{font-size:1rem;font-weight:780}.option-description{color:var(--muted);font-size:.86rem}.compact-option-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.compact-option-card{display:grid;grid-template-columns:minmax(0,1fr) 18px;grid-template-rows:auto auto;align-items:start;justify-items:start;min-height:86px;padding:11px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 26px #c4486f0f;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.compact-option-card:hover{border-color:#ff5f826b;transform:translateY(-1px)}.compact-option-card.selected{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--rose);box-shadow:0 14px 28px #ff5f8224}.compact-option-card.selected .option-radio{background:var(--rose);border-color:var(--rose);box-shadow:0 0 0 4px #ff5f821f}.compact-option-card.selected .option-radio:after{background:#fff;transform:scale(1)}.compact-option-card .option-icon{grid-column:1;grid-row:1;font-size:1.2rem;line-height:1.25}.compact-option-card .option-title{grid-column:1;grid-row:2;font-size:.88rem;line-height:1.25}.compact-option-card .option-radio{grid-column:2;grid-row:1 / span 2;width:18px;height:18px;border-width:1.5px}.visually-hidden-radio,.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.action-row{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:24px}.form-panel .action-row{justify-content:flex-end}.primary-button,.secondary-button,.quiet-button{min-height:50px;padding:12px 24px;border-radius:999px;font:inherit;font-weight:780;cursor:pointer;transition:transform .15s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}.primary-button{color:#fff;background:linear-gradient(135deg,#ff5f82,#ff7a63);border:0;box-shadow:0 12px 28px #ff5f823d}.primary-button:hover{filter:brightness(1.03);box-shadow:0 14px 32px #ff5f824d}.secondary-button{color:var(--accent-strong);background:#ffffffeb;border:1px solid rgba(255,95,130,.22);box-shadow:0 10px 24px #c4486f12}.secondary-button:hover{background:var(--accent-soft);border-color:var(--rose)}.invite-actions{position:relative;min-height:168px;align-items:flex-start}.dodge-button{transition:transform .22s cubic-bezier(.22,.61,.36,1),background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;will-change:transform}.dodge-button.dodged{z-index:1}.quiet-button{color:var(--muted);background:transparent;border:1px solid transparent}.quiet-button:hover{color:var(--accent-strong);background:var(--accent-soft)}.primary-button:active,.secondary-button:active,.quiet-button:active{transform:scale(.98)}.primary-button:focus-visible,.secondary-button:focus-visible,.quiet-button:focus-visible{outline:3px solid rgba(255,95,130,.35);outline-offset:2px}@supports not (gap: 10px){.action-row>*+*{margin-left:10px}}.form-error{margin:0 0 4px;color:var(--error);font-size:.92rem;font-weight:750}.storage-warning{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;z-index:3;width:min(460px,calc(100% - 28px));margin:0;padding:10px 15px;color:#7b470d;background:#fff3d8;border:1px solid #f2d29a;border-radius:999px;font-size:.9rem;font-weight:750;text-align:center;transform:translate(-50%);box-shadow:0 14px 28px #8a58121f}.inline-feedback{min-height:1.55em;margin:4px 0 0;color:var(--success);font-size:.92rem;font-weight:750;text-align:center}.secondary-action-row{margin-top:12px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:20px;background:#2e162270;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .2s ease-out}.confirm-dialog{width:min(360px,100%);padding:26px 22px;background:var(--surface);border:1px solid rgba(255,95,130,.12);border-radius:20px;text-align:center;box-shadow:0 26px 58px #2e162233}.confirm-dialog h2{margin:0;color:var(--ink);font-size:1.24rem}.confirm-dialog p{margin:10px 0 20px;color:var(--muted)}.shared-note{margin:14px 0 0;color:var(--muted);font-size:.9rem;text-align:center}.promise-card{overflow:hidden;padding:28px 22px;background:linear-gradient(148deg,#fff,#fff8f8 56%,#fff1ec);border:1px solid rgba(255,95,130,.16);border-radius:24px;box-shadow:0 26px 58px #c4486f24}.promise-card-copy{margin:0 0 20px;color:#b7305c;font-size:1.12rem;font-weight:800;text-align:center}.promise-details{display:grid;gap:9px}.promise-detail{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:14px 2px;border-bottom:1px dashed rgba(255,95,130,.2)}.promise-detail:last-child{border-bottom:0}.promise-detail span{color:#987c87;font-size:.76rem;font-weight:850;letter-spacing:.1em}.promise-detail strong{color:var(--ink);overflow-wrap:anywhere;font-size:1.1rem;text-align:right}.checkbox-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.checkbox-card{display:grid;grid-template-columns:minmax(0,1fr) 22px;grid-template-rows:auto auto;align-items:start;justify-items:start;row-gap:8px;min-height:88px;padding:12px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 26px #c4486f0d;cursor:pointer;font-size:.95rem;font-weight:730;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.checkbox-card:hover{border-color:#ff5f826b;transform:translateY(-1px)}.checkbox-card .option-icon{grid-column:1;grid-row:1;font-size:1.22rem;line-height:1.2}.checkbox-card .option-title{grid-column:1;grid-row:2;font-size:.93rem;line-height:1.3}.checkbox-card .option-radio{grid-column:2;grid-row:1 / span 2;width:20px;height:20px;border-width:1.5px}.checkbox-card.selected{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--rose);box-shadow:0 14px 28px #ff5f8224}.checkbox-control{display:grid;place-items:center;width:22px;height:22px;color:transparent;background:#fff;border:2px solid rgba(63,37,48,.16);border-radius:7px;transition:color .2s ease,background-color .2s ease,border-color .2s ease}.checkbox-card.selected .option-radio{background:var(--rose);border-color:var(--rose)}.checkbox-card.selected .option-radio:after{background:#fff;transform:scale(1)}.checkbox-summary{margin:18px 0 0;color:var(--muted);font-size:.92rem;font-weight:720;text-align:center}@media (max-width: 420px){.app-shell{padding-top:16px}.page:before{margin-bottom:20px}.time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.option-card{padding:13px;border-radius:16px}.compact-option-card{min-height:78px;padding:9px}.compact-option-card .option-title{font-size:.82rem}.checkbox-card{min-height:84px}.action-row{flex-wrap:wrap}.form-panel .action-row{justify-content:center}.primary-button,.secondary-button{flex:1 1 150px}.promise-card{padding:24px 18px;border-radius:20px}}@media (max-width: 340px){.datetime-fields{grid-template-columns:1fr}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@keyframes grow-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.page:before,.confirm-overlay,.option-chip,.option-card,.compact-option-card,.checkbox-card,.primary-button,.secondary-button,.quiet-button{animation:none;transition:none}}
