:root{--brand: #f43f5e;--brand-2: #ff6b8b;--brand-soft: #fff0f4;--ink: #1f2330;--ink-2: #4b5563;--muted: #8a94a6;--line: #eceef3;--bg: #f6f5f8;--card: #ffffff;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--radius: 18px;--radius-sm: 12px;--shadow-sm: 0 1px 2px rgba(31, 35, 48, .04), 0 2px 8px rgba(31, 35, 48, .04);--shadow-md: 0 8px 24px rgba(31, 35, 48, .08);--shadow-brand: 0 10px 26px rgba(244, 63, 94, .24)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(1200px 500px at 100% -10%,rgba(255,107,139,.08),transparent 60%),radial-gradient(900px 500px at -10% 0%,rgba(168,130,255,.06),transparent 55%),var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:15px;line-height:1.5;overscroll-behavior-y:none}button,input,select,textarea{font-family:inherit}button{cursor:pointer}a{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#8a94a659;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#8a94a68c}::-webkit-scrollbar-track{background:transparent}.container{width:100%;max-width:520px;margin:0 auto;padding:18px 16px;padding-bottom:calc(104px + env(safe-area-inset-bottom,0px));min-height:100%}.container.no-nav{padding-bottom:28px}.top-bar{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));background:#ffffffc7;backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid rgba(31,35,48,.06)}.top-bar h1{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700;letter-spacing:-.2px;color:var(--ink)}.top-bar button{background:var(--brand-soft);border:none;color:var(--brand);font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;transition:background .16s ease,transform .1s ease}.top-bar button:hover{background:#ffe1e8}.top-bar button:active{transform:scale(.96)}.top-bar .top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.card{background:var(--card);border:1px solid rgba(31,35,48,.04);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,transform .18s ease}.card-title{font-size:15px;font-weight:700;margin-bottom:14px;color:var(--ink);letter-spacing:-.1px}@media (hover: hover){.card.interactive:hover,.menu-item:hover,.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}.btn{display:block;width:100%;padding:14px 18px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand) 100%);color:#fff;font-size:15px;font-weight:650;letter-spacing:.1px;box-shadow:var(--shadow-brand);transition:transform .12s ease,box-shadow .16s ease,opacity .16s ease;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px);box-shadow:0 14px 32px #f43f5e4d}.btn:active{transform:translateY(0) scale(.985)}.btn:disabled{background:#e6e8ee;color:#9aa1af;box-shadow:none;cursor:not-allowed;transform:none}.btn:focus-visible{outline:3px solid rgba(244,63,94,.28);outline-offset:2px}.btn.secondary{background:#fff;color:var(--brand);border:1.5px solid #ffd3de;box-shadow:0 4px 14px #1f23300a}.btn.secondary:hover{background:var(--brand-soft);box-shadow:0 8px 20px #f43f5e1f}.btn.secondary:active{background:#ffe5eb}.btn.ghost{background:#f3f4f8;color:var(--ink-2);box-shadow:none}.btn.ghost:hover{background:#eaedf3}.btn.danger{background:linear-gradient(135deg,#ff6b6b 0%,var(--danger) 100%);box-shadow:0 8px 20px #ef444438}.btn.sm{padding:8px 14px;font-size:13px;width:auto;display:inline-block;border-radius:10px}.input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:13px;font-size:16px;outline:none;background:#fafbfd;color:var(--ink);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px #f43f5e1a}.input::placeholder{color:#b4bac7}textarea.input{resize:vertical;min-height:88px}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238a94a6' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:14px 0 7px}.title{font-size:24px;font-weight:800;margin-bottom:6px;color:var(--ink);letter-spacing:-.4px}.subtitle{font-size:14px;color:var(--muted);margin-bottom:20px}.hint{color:var(--muted);font-size:12px;margin-top:5px;line-height:1.6}.section-title{font-size:13px;font-weight:700;color:var(--ink-2);margin:18px 4px 10px;letter-spacing:.4px}.error{color:#b91c1c;font-size:13px;margin-top:10px;padding:10px 12px;background:#fff1f2;border:1px solid #fecdd3;border-radius:12px}.success{color:var(--success);font-size:13px;margin-top:10px}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.1px;white-space:nowrap}.badge.pending{background:#fff4e0;color:#b45309}.badge.confirmed,.badge.active,.badge.paid{background:#e7f8f0;color:#047857}.badge.checked_in{background:#e8f1ff;color:#1d4ed8}.badge.serving{background:#f1ebff;color:#6d28d9}.badge.completed{background:#eef0f5;color:#475569}.badge.cancelled,.badge.no_show{background:#ffe9e9;color:#b91c1c}.badge.draft{background:#fff7e6;color:#b45309}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menu-item{position:relative;overflow:hidden;min-height:68px;display:flex;align-items:center;justify-content:center;padding:14px 16px;text-align:center;background:linear-gradient(180deg,#fff,#fdfafb);border:1px solid rgba(31,35,48,.04);border-radius:16px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .14s ease,box-shadow .16s ease,border-color .16s ease}.menu-item:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--brand-2),var(--brand));opacity:0;transform:scaleX(.4);transition:opacity .18s ease,transform .18s ease}.menu-item:hover{border-color:#ffd3de}.menu-item:hover:after{opacity:1;transform:scaleX(1)}.menu-item:active{transform:scale(.97)}.menu-item .name{font-size:14px;font-weight:650;color:var(--ink)}.list-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:none}.list-item .info{flex:1;min-width:0}.list-item .primary{font-size:15px;font-weight:650;color:var(--ink);margin-bottom:2px}.list-item .secondary{font-size:13px;color:var(--muted)}.empty-state{padding:56px 20px;text-align:center;color:var(--muted)}.empty-state .text{font-size:14px}.empty-state .icon{font-size:42px;margin-bottom:12px;opacity:.45}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.stat-card{background:linear-gradient(180deg,#fff,#fcfcfd);border:1px solid rgba(31,35,48,.04);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm);transition:transform .14s ease,box-shadow .16s ease}.stat-card .stat-label{font-size:12px;color:var(--muted);margin-bottom:7px;font-weight:500}.stat-card .stat-value{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.4px}.stat-card .stat-value.pink{color:var(--brand)}.stat-card .stat-value.green{color:var(--success)}.stat-card .stat-value.red{color:var(--danger)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;justify-content:space-around;gap:4px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:#ffffffdb;backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-top:1px solid rgba(31,35,48,.06)}.bottom-nav .nav-item{flex:1;min-height:46px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:14px;color:var(--muted);font-size:13px;font-weight:650;transition:background .16s ease,color .16s ease,transform .1s ease}.bottom-nav .nav-item:hover{background:#f4f5f9}.bottom-nav .nav-item:active{transform:scale(.96)}.bottom-nav .nav-item.active{color:var(--brand);background:var(--brand-soft)}.bottom-nav .nav-item .nav-icon{font-size:20px;line-height:1}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot-btn{padding:12px 0;border:1.5px solid var(--line);background:#fff;border-radius:12px;font-size:13px;font-weight:650;color:var(--ink-2);transition:all .14s ease}.slot-btn:hover{border-color:#ffb7cb;background:#fff7f9}.slot-btn:active{transform:scale(.96)}.slot-btn.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:0 4px 14px #f43f5e29}.segmented{display:flex;gap:3px;padding:4px;background:#f0f1f5;border-radius:14px;margin-bottom:14px}.segmented button{flex:1;padding:9px 0;border:none;background:transparent;border-radius:11px;font-size:13px;font-weight:650;color:var(--ink-2);transition:all .15s ease}.segmented button:hover{color:var(--ink)}.segmented button.active{background:#fff;color:var(--brand);box-shadow:0 3px 10px #1f233014}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#19192380;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{background:#fff;width:100%;max-width:520px;border-radius:24px 24px 0 0;padding:22px 20px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));max-height:92vh;overflow-y:auto;box-shadow:0 -12px 40px #1f233029;animation:slideUp .22s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-header .modal-title{font-size:18px;font-weight:800;letter-spacing:-.2px}.modal-close{background:#f2f3f7;border:none;width:34px;height:34px;border-radius:50%;font-size:20px;line-height:1;color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:background .15s ease,transform .1s ease}.modal-close:hover{background:#e7e9ef}.modal-close:active{transform:scale(.9)}.brand-header{padding:64px 0 34px;text-align:center}.brand-logo{width:76px;height:76px;border-radius:24px;margin:0 auto 18px;background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand) 100%);color:#fff;font-size:28px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 32px #f43f5e47}.brand-logo:after{content:"馨如"}.brand-title{font-size:27px;font-weight:800;color:var(--ink);letter-spacing:-.5px}.brand-sub{font-size:13px;color:var(--muted);margin-top:6px}.card.hero{background:linear-gradient(135deg,#ff8098 0%,var(--brand) 100%);color:#fff;border:none;box-shadow:0 14px 34px #f43f5e47}.card.hero .hero-title{font-size:17px;font-weight:750;margin-bottom:5px;letter-spacing:-.1px}.card.hero .hero-sub{font-size:13px;opacity:.92}.calendar-card{padding:14px}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-day-cell{min-width:0;min-height:76px;padding:7px 3px 6px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .1s ease}.calendar-day-cell:hover{border-color:#ffc4d3}.calendar-day-cell:active{transform:scale(.96)}.calendar-day-cell.today{border-color:#ffb7cb;background:#fff7f9}.calendar-day-cell.selected{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px #f43f5e1f}.calendar-day-cell.closed{background:#f7f7f9;color:var(--muted)}.calendar-day-week{font-size:10px;color:var(--muted);line-height:1.2}.calendar-day-num{margin-top:2px;font-size:17px;line-height:1.15;font-weight:800;color:var(--ink)}.calendar-day-cell.today .calendar-day-num,.calendar-day-cell.selected .calendar-day-num{color:var(--brand)}.calendar-day-count{margin-top:3px;font-size:10px;color:var(--ink-2);white-space:nowrap}.calendar-day-dots{display:flex;gap:2px;margin-top:4px;min-height:5px}.calendar-dot{width:5px;height:5px;border-radius:50%;display:inline-block}@supports (padding: env(safe-area-inset-bottom)){.container{padding-bottom:calc(104px + env(safe-area-inset-bottom))}}@media (min-width: 768px){.container{max-width:760px;padding:26px 24px 128px}.top-bar{max-width:760px;margin:0 auto;border-radius:0 0 20px 20px;padding-left:22px;padding-right:22px}.top-bar h1{font-size:20px}.card{border-radius:20px;padding:22px}.menu-grid{grid-template-columns:repeat(3,1fr);gap:14px}.menu-item{min-height:78px;padding:18px 16px}.menu-item .name{font-size:14px}.slot-grid{grid-template-columns:repeat(6,1fr)}.modal-backdrop{align-items:center}.modal-panel{max-width:560px;border-radius:22px}.bottom-nav{max-width:760px;left:50%;transform:translate(-50%);border-radius:20px 20px 0 0;box-shadow:0 -6px 24px #1f233014}.calendar-week-grid{gap:8px}.calendar-day-cell{min-height:88px}.calendar-day-num{font-size:19px}}@media (min-width: 1100px){.container,.top-bar,.bottom-nav{max-width:980px}.menu-grid{grid-template-columns:repeat(4,1fr);gap:16px}}@media (prefers-reduced-motion: reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
