@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-500:oklch(70.4% .14 182.503);--color-gray-500:oklch(55.1% .027 264.364);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-900:oklch(21% .006 285.885);--spacing:.25rem;--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-bold:700;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#6ab6a9;--color-primary-dark:#4a9a8d;--font-display:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mb-4{margin-bottom:calc(var(--spacing) * 4)}.flex{display:flex}.hidden{display:none}.h-screen{height:100vh}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-full{width:100%}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.border{border-style:var(--tw-border-style);border-width:1px}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-teal-500{--tw-gradient-from:var(--color-teal-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-emerald-600{--tw-gradient-to:var(--color-emerald-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-4{padding:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.text-zinc-900{color:var(--color-zinc-900)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{font-family:var(--font-display);color-scheme:light;color:#202038;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;font-weight:400;line-height:1.6}body{background:linear-gradient(135deg,#e8f5e9,#e3f2fd,#fce4ec);justify-content:center;place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}#root{background-color:#fafbfc;width:100%;max-width:480px;min-height:100vh;margin:0 auto;box-shadow:0 0 40px #00000014}button{cursor:pointer;transition:all .2s}button:active{transform:scale(.97)}.signup-page{padding:16px 16px 80px}.header-card{text-align:center;color:#fff;background:linear-gradient(135deg,#6ab6a9,#4a9a8d);border-radius:16px;margin-bottom:12px;padding:16px 16px 14px;box-shadow:0 6px 20px #6ab6a94d}.header-title{letter-spacing:1px;justify-content:center;align-items:center;gap:6px;font-size:20px;font-weight:700;display:flex}.header-date{opacity:.9;margin-top:2px;font-size:13px}.meal-cards{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.meal-card{background:#fff;border-left:4px solid;border-radius:16px;padding:16px;transition:transform .2s;box-shadow:0 2px 12px #0000000a}.meal-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.meal-card.lunch{border-color:#ffb347}.meal-card.dinner{border-color:#7c83fd}.meal-card-header{align-items:center;gap:6px;margin-bottom:8px;font-size:17px;font-weight:600;display:flex}.meal-emoji{font-size:20px}.meal-dot{color:#ccc}.meal-restaurant{color:var(--color-primary-dark)}.meal-card-details{color:#666;gap:16px;font-size:13px;display:flex}.meal-detail{align-items:center;gap:4px;display:flex}.info-banner{color:#8d6e00;background:linear-gradient(135deg,#fff3e0,#fff8e1);border:1px solid #ffe0b2;border-radius:12px;align-items:center;gap:6px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.info-divider{color:#e0c68a;margin:0 2px}.signup-form{background:#fff;border-radius:20px;margin-bottom:16px;padding:20px;box-shadow:0 2px 12px #0000000a}.section-title{color:#333;align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.form-group{margin-bottom:14px}.form-label{color:#666;margin-bottom:6px;font-size:13px;display:block}.form-input{box-sizing:border-box;background:#fafbfc;border:1.5px solid #e5e7eb;border-radius:12px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6ab6a926}.meal-checkboxes{gap:10px;margin-bottom:14px;display:flex}.meal-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #e5e7eb;border-radius:14px;flex:1;align-items:center;gap:6px;padding:12px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.meal-checkbox:hover{border-color:var(--color-primary)}.meal-checkbox.selected{border-color:var(--color-primary);background:#6ab6a914;box-shadow:0 0 0 3px #6ab6a91a}.checkbox-emoji{font-size:18px}.checkbox-price{color:var(--color-primary-dark);margin-left:auto;font-size:13px;font-weight:600}.total-amount{text-align:center;color:#555;background:#f0faf8;border-radius:10px;margin-bottom:14px;padding:8px;font-size:15px}.total-amount strong{color:var(--color-primary-dark);font-size:20px}.error-msg{color:#dc2626;text-align:center;background:#fef2f2;border-radius:10px;margin-bottom:10px;padding:10px 14px;font-size:13px}.signup-btn{color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#6ab6a9,#4a9a8d);border:none;border-radius:14px;width:100%;padding:14px;font-size:16px;font-weight:700;box-shadow:0 4px 16px #6ab6a94d}.signup-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6ab6a966}.signup-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.cutoff-notice,.status-banner{text-align:center;border-radius:14px;margin-bottom:16px;padding:14px;font-size:14px;font-weight:600}.cutoff-notice{color:#e65100;background:#fff3e0}.status-banner.confirmed{color:#2e7d32;background:#e8f5e9}.status-banner.failed{color:#c62828;background:#ffebee}.signup-list{background:#fff;border-radius:20px;margin-bottom:16px;padding:20px;box-shadow:0 2px 12px #0000000a}.progress-text{color:#999;margin-left:4px;font-size:13px;font-weight:400}.progress-bar-container{background:#f0f0f0;border-radius:3px;width:100%;height:6px;margin-bottom:14px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#6ab6a9,#4a9a8d);border-radius:3px;height:100%;transition:width .5s}.empty-text{text-align:center;color:#999;padding:16px 0;font-size:14px}.signup-items{flex-direction:column;gap:6px;display:flex}.signup-item{background:#fafbfc;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;transition:background .2s;display:flex}.signup-item:hover{background:#f0f5f4}.signup-index{color:#999;min-width:20px;font-size:13px}.signup-name{color:#333;font-weight:600}.signup-meals{color:#666;margin-left:auto;font-size:13px}.signup-status{font-size:14px}.cancel-btn{color:#ccc;background:0 0;border:none;border-radius:6px;padding:4px;transition:all .2s}.cancel-btn:hover{color:#dc2626;background:#fef2f2}.admin-link{text-align:center;padding:16px 0}.admin-link a{color:#999;font-size:13px;text-decoration:none;transition:color .2s}.admin-link a:hover{color:#666}.payment-page{background:linear-gradient(#f0faf8,#fafbfc 40%,#fff);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.payment-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 4px 24px #0000000f}.payment-icon{width:64px;height:64px;color:var(--color-primary);background:linear-gradient(135deg,#e8f5f1,#d4ede7);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.payment-label{color:#999;margin-bottom:4px;font-size:13px}.payment-amount{color:#222;letter-spacing:-1px;margin-bottom:2px;font-size:44px;font-weight:800}.payment-user{color:#888;margin-bottom:20px;font-size:14px}.refund-notice{color:var(--color-primary-dark);background:#f8fcfb;border:1px solid #6ab6a926;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-bottom:20px;padding:10px 14px;font-size:13px;display:flex}.payment-actions{flex-direction:column;gap:10px;width:100%;display:flex}.pay-btn{letter-spacing:.5px;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:16px;font-weight:700;display:flex}.pay-btn.wechat{color:#fff;background:linear-gradient(135deg,#07c160,#06a854);box-shadow:0 4px 16px #07c1604d}.pay-btn.wechat:hover{transform:translateY(-1px);box-shadow:0 6px 20px #07c16066}.pay-btn.wechat:disabled{opacity:.5;box-shadow:none;transform:none}.pay-btn.cancel{color:#666;background:#f3f4f6}.pay-btn.cancel:hover{background:#ebedf0}.pay-btn.cancel:disabled{opacity:.5}.success-page{text-align:center;background:linear-gradient(#e8f5e9,#f0faf8 30%,#fff);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.success-icon{color:#07c160;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.success-content{background:#fff;border-radius:24px;width:100%;max-width:360px;padding:28px 24px;box-shadow:0 4px 24px #0000000f}.success-title{color:#222;margin-bottom:6px;font-size:24px;font-weight:800}.success-subtitle{color:#555;margin-bottom:4px;font-size:15px}.success-desc{color:#999;margin-bottom:20px;font-size:14px}.success-refund{margin-bottom:20px}.back-btn{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;letter-spacing:.5px;border:none;border-radius:14px;width:100%;padding:14px 32px;font-size:15px;font-weight:700;box-shadow:0 4px 16px #6ab6a94d}.back-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6ab6a966}.admin-page{background:#fafbfc;min-height:100vh;padding:16px}.admin-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-header h1{font-size:18px;font-weight:700}.back-button{color:#666;background:0 0;border:none;padding:6px}.admin-tabs{background:#f0f0f0;border-radius:12px;gap:6px;margin-bottom:16px;padding:4px;display:flex}.admin-tab{color:#666;background:0 0;border:none;border-radius:10px;flex:1;padding:8px;font-size:13px;font-weight:500;transition:all .2s}.admin-tab.active{color:#333;background:#fff;box-shadow:0 1px 4px #00000014}.admin-msg{text-align:center;color:var(--color-primary-dark);cursor:pointer;margin-bottom:12px;padding:8px;font-size:13px}.admin-section{flex-direction:column;gap:12px;display:flex}.add-row{gap:8px;display:flex}.icon-btn{border:none;border-radius:12px;justify-content:center;align-items:center;padding:10px;display:flex}.icon-btn.add{background:var(--color-primary);color:#fff}.config-row{background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.config-row .form-input{flex:1}.toggle-label{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.toggle-text{color:#666}.config-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.config-card-header{background:#fafbfc;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:14px 16px;font-size:14px;font-weight:600;display:flex}.config-restaurant{color:#999;font-size:13px}.config-fields{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.config-field label{color:#999;margin-bottom:4px;font-size:12px;display:block}.config-field .form-input,.form-select{box-sizing:border-box;background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.config-field .form-input:focus,.form-select:focus{border-color:var(--color-primary)}.readonly-value{color:#333;padding:4px 0;font-size:18px;font-weight:600}.field-hint{color:#aaa;margin-top:2px;font-size:12px}.field-error{color:#dc2626;margin-top:2px;font-size:12px}.input-error{border-color:#dc2626!important}.save-settings-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:12px;padding:12px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.save-settings-btn:hover{opacity:.9;transform:translateY(-1px)}.save-settings-btn:disabled{opacity:.5;cursor:not-allowed}.app-container{min-height:100vh}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.animate-spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:320px;padding:24px;box-shadow:0 10px 40px #0003}.modal-title{color:#333;margin-bottom:8px;font-size:18px;font-weight:700}.modal-desc{color:#666;margin-bottom:24px;font-size:14px;line-height:1.5}.modal-actions{gap:12px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:12px;flex:1;padding:12px;font-size:15px;font-weight:600;transition:all .2s}.modal-btn.cancel{color:#666;background:#f3f4f6}.modal-btn.cancel:hover{background:#e5e7eb}.modal-btn.confirm{color:#dc2626;background:#fef2f2}.modal-btn.confirm:hover{background:#fee2e2}.history-card{background:#fff;border-radius:16px;margin-bottom:12px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.history-card-header{cursor:pointer;background:#fafbfc;justify-content:space-between;align-items:center;padding:14px 16px;font-size:15px;font-weight:600;list-style:none;display:flex}.history-card-header::-webkit-details-marker{display:none}.history-date{align-items:center;gap:8px;display:flex}.history-stats{color:#666;align-items:center;gap:12px;font-size:13px;font-weight:400;display:flex}.history-stats .amount{color:#333;font-size:14px;font-weight:600}.status-badge{border-radius:6px;padding:2px 6px;font-size:11px;font-weight:500}.status-badge.success{color:#2e7d32;background:#e8f5e9}.status-badge.error{color:#dc2626;background:#fef2f2}.status-badge.warning{color:#f57f17;background:#fff8e1}.history-details{border-top:1px solid #f0f0f0;padding:16px}.history-table{border-collapse:collapse;width:100%;font-size:13px}.history-table th{text-align:left;color:#999;border-bottom:1px solid #f5f5f5;padding-bottom:8px;font-weight:500}.history-table td{border-bottom:1px solid #fafafa;padding:8px 0}.text-success{color:#2e7d32;font-weight:500}.text-warning{color:#f57f17}.text-error{color:#dc2626}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:8px;padding:16px 0;display:flex}.page-btn{color:#555;cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;box-shadow:0 1px 3px #00000005}.page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 2px 6px #6ab6a91a}.page-btn:disabled{color:#ccc;cursor:not-allowed;box-shadow:none;background:#fafbfc;border-color:#f0f0f0}.page-info{color:#666;font-size:13px;font-weight:500}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}
