:root{--ink: #11110e;--cream: #f5efe3;--paper: #fffaf0;--line: #d8cebd;--red: #c5161d;--green: #0d4936;--gold: #d7a84f;--muted: #71695e;--shadow: 0 24px 70px rgba(35, 27, 16, .12)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(110deg,rgba(255,255,255,.62),transparent 34%),radial-gradient(circle at 70% 18%,rgba(215,168,79,.13),transparent 24%),var(--cream);color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}html{scroll-behavior:smooth}button,input,select{font:inherit}button{cursor:pointer}.app-shell{margin:0 auto;max-width:1440px;min-height:100vh;overflow:hidden;padding:0 28px 28px;position:relative}.intro-screen{align-items:center;display:grid;min-height:100vh;padding:28px 0;place-items:center;position:relative;z-index:2}.intro-screen:before{background:var(--ink);clip-path:polygon(0 0,70% 0,92% 100%,0 100%);content:"";height:52vh;left:-28px;min-height:360px;position:absolute;top:0;width:min(560px,56vw)}.intro-screen:after{background:var(--red);bottom:18vh;content:"";height:18px;position:absolute;right:13vw;transform:skew(-28deg);width:min(360px,42vw)}.intro-card{animation:progressivePop .76s cubic-bezier(.2,.8,.2,1) both;background:#fffaf0b8;border:1px solid rgba(216,206,189,.9);border-radius:6px;box-shadow:var(--shadow);display:grid;gap:18px;justify-items:center;max-width:460px;padding:42px 48px;position:relative;text-align:center;z-index:2}.intro-card img{background:var(--ink);height:150px;object-fit:contain;padding:16px;width:210px}.intro-card p{color:var(--muted);font-size:15px;margin:0}.intro-card a{align-items:center;animation:ctaRise .64s cubic-bezier(.2,.8,.2,1) .36s both,ctaBreath 1.8s ease-in-out 1.1s infinite;background:var(--green);border:1px solid var(--green);border-radius:4px;color:var(--paper);display:inline-flex;font-size:16px;font-weight:900;justify-content:center;min-height:52px;min-width:180px;text-decoration:none}.app-shell:before,.app-shell:after{content:"";pointer-events:none;position:fixed;z-index:0}.app-shell:before{background:var(--red);height:18px;left:31vw;top:136px;transform:skew(-28deg);width:300px}.app-shell:after{border-left:3px solid var(--ink);height:54vh;left:35vw;top:0;transform:rotate(24deg)}.top-bar,.booking-layout,.mine-section,.preorder-section,.location-section{position:relative;z-index:1}.top-bar{align-items:start;animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) 80ms both;display:grid;grid-template-columns:270px 1fr;min-height:150px}.brand-wedge{align-items:start;background:var(--ink);clip-path:polygon(0 0,100% 0,100% 75%,0 100%);display:flex;height:150px;padding:22px 28px}.brand-wedge img{height:94px;object-fit:contain;width:148px}.top-nav{align-items:center;display:flex;gap:clamp(28px,5vw,72px);justify-content:center;min-height:110px}.top-nav a{color:var(--ink);font-size:15px;font-weight:700;padding:10px 0;position:relative;text-decoration:none}.top-nav a.is-active:after{background:var(--red);bottom:0;content:"";height:3px;left:0;position:absolute;width:100%}.booking-layout{scroll-margin-top:24px;animation:progressivePop .52s cubic-bezier(.2,.8,.2,1) .16s both;display:grid;gap:46px;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr)}.reveal-group>*{opacity:0;transform:translateY(26px) scale(.985)}.reveal-group .form-panel{animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) .22s both}.reveal-group .tables-panel{animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) .38s both}.form-panel{padding-top:10px}.title-block h1,.section-title h2{font-size:32px;line-height:1.08;margin:0}.title-block p{color:var(--muted);font-size:15px;margin:10px 0 34px}.reservation-form{display:grid;gap:24px}.field{display:grid;gap:10px}.field>span{font-size:14px;font-weight:800}.control,.field select,.field input{background:#fffaf0d1;border:1px solid #bfb5a3;border-radius:4px;color:var(--ink);min-height:48px;min-width:0;width:100%}.control{align-items:center;display:flex;gap:10px;padding:0 12px}.control input{background:transparent;border:0;min-height:46px;outline:0;padding:0}.field select,.field input{padding:0 14px}.field small{color:var(--red);font-size:12px}.slogan-mark{align-items:center;display:flex;gap:22px;margin:28px 0 6px}.slogan-mark strong{font-family:Impact,Arial Narrow,sans-serif;font-size:20px;line-height:1.08}.slogan-mark span{background:var(--red);border-radius:50%;display:block;height:32px;width:32px}.confirm-button,.reservation-row button{border:1px solid var(--green);border-radius:4px;font-weight:800;min-height:52px}.confirm-button{background:var(--green);color:var(--paper);width:100%}.booking-confirm-button{margin-top:22px}.tables-panel{padding-top:42px}.section-title{margin-bottom:18px}.section-title.compact{align-items:baseline;display:flex;gap:12px}.section-title span{color:var(--muted);font-size:14px}.section-title h2{display:inline-block;position:relative}.section-title h2:after,.title-rule{background:var(--red);content:"";display:block;height:3px;margin-top:8px;width:52px}.table-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.table-card{background:var(--ink);border:0;border-radius:5px;color:var(--paper);display:block;height:180px;overflow:hidden;opacity:1;padding:0;position:relative;text-align:left;transform:scale(1);transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .26s ease;transform-origin:center;will-change:transform}.table-card:nth-child(n+5){height:150px}.table-card img{display:block;height:100%;object-fit:cover;transition:transform .36s cubic-bezier(.2,.8,.2,1);transform:scale(1);width:100%}.table-card:after{background:linear-gradient(180deg,transparent,rgba(0,0,0,.82));bottom:0;content:"";height:48%;left:0;position:absolute;width:100%}.table-meta{align-items:end;bottom:0;display:flex;justify-content:space-between;left:0;padding:12px 14px;position:absolute;right:0;z-index:1}.table-meta strong{font-size:20px}.table-meta em{font-size:14px;font-style:normal}.table-check{align-items:center;background:var(--gold);border-radius:50%;color:var(--ink);display:none;font-weight:900;height:28px;justify-content:center;position:absolute;right:10px;top:10px;width:28px;z-index:2}.table-card.is-selected{animation:tableScaleIn .26s cubic-bezier(.2,.8,.2,1) both;box-shadow:0 16px 34px #11110e29;transform:scale(1.035);z-index:3}.table-card.is-selected img{transform:scale(1)}.table-card.is-selected .table-check{display:flex}.mine-section{animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) .7s both;border-top:1px solid var(--line);margin-top:28px;padding:26px 34px 0}.preorder-section{animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) .78s both;margin-top:30px;padding:0 34px}.preorder-card{background:#fffaf0b8;border:1px solid var(--line);border-radius:4px;display:grid;gap:18px;justify-items:start;max-width:760px;padding:22px}.preorder-card p{font-size:16px;line-height:1.8;margin:0;max-width:620px}.preorder-qr{background:transparent;border:0;border-radius:4px;display:block;mix-blend-mode:multiply;max-width:min(280px,100%);width:280px}.reservation-row{align-items:center;background:#fffaf0b8;border:1px solid var(--line);border-radius:4px;display:grid;gap:16px;grid-template-columns:92px minmax(0,1fr) 118px;max-width:760px;padding:8px}.reservation-row img{height:58px;object-fit:cover;width:92px}.reservation-row span{color:var(--muted);display:block;font-size:13px;margin-bottom:8px}.reservation-row strong{font-size:15px}.reservation-brief{min-width:0}.reservation-brief strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-confirmed{color:var(--green)}.reservation-row button{background:transparent;color:var(--ink);min-height:44px}.mine-note{color:var(--muted);font-size:13px;margin:10px 0 0}.location-section{animation:progressivePop .56s cubic-bezier(.2,.8,.2,1) .92s both;margin-top:30px;padding:0 34px 30px}.location-card{display:grid;gap:24px;grid-template-columns:minmax(240px,.85fr) minmax(320px,1.15fr)}.location-copy{background:#fffaf0b8;border:1px solid var(--line);border-radius:4px;padding:26px}.location-copy p{font-size:24px;font-weight:800;line-height:1.4;margin:0}.location-copy span{color:var(--muted);display:block;margin-top:16px}.map-card{background:#f1f2f1;border:1px solid var(--line);border-radius:4px;min-height:220px;overflow:hidden;position:relative}.map-card img{display:block;height:100%;min-height:220px;object-fit:cover;width:100%}.dialog-backdrop{align-items:center;animation:fadeIn .18s ease-out both;background:#11110e61;display:grid;inset:0;padding:18px;place-items:center;position:fixed;z-index:20}.dialog-backdrop[hidden]{display:none}.confirm-dialog{animation:dialogSlideUp .34s cubic-bezier(.2,.8,.2,1) both;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 28px 90px #11110e3d;max-width:440px;padding:28px;width:min(100%,440px)}.confirm-dialog h2{font-size:28px;margin:0}.confirm-dialog p{color:var(--muted);line-height:1.7;margin:10px 0 18px}.confirm-dialog .dialog-error{color:var(--red);font-size:13px;font-weight:800;margin:-8px 0 18px}.confirm-dialog .dialog-error:empty{display:none}.confirm-dialog dl{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:12px;margin:0 0 22px;padding:18px 0}.confirm-dialog dl div{display:grid;gap:10px;grid-template-columns:92px 1fr}.confirm-dialog dt,.confirm-dialog dd{margin:0}.confirm-dialog dt{color:var(--muted)}.dialog-actions{display:grid;gap:12px;grid-template-columns:1fr 1fr}.dialog-actions.single{grid-template-columns:1fr}.ghost-button,.solid-button{border-radius:4px;font-weight:900;min-height:48px}.ghost-button{background:transparent;border:1px solid var(--line)}.solid-button{background:var(--green);border:1px solid var(--green);color:var(--paper)}.ghost-button:disabled,.solid-button:disabled,.confirm-button:disabled{cursor:wait;opacity:.58}@keyframes progressivePop{0%{opacity:0;transform:translateY(28px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ctaRise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes ctaBreath{0%,to{box-shadow:0 0 #0d493600;transform:translateY(0)}50%{box-shadow:0 12px 28px #0d493638;transform:translateY(-2px)}}@keyframes tableScaleIn{0%{transform:scale(1)}to{transform:scale(1.035)}}@keyframes dialogSlideUp{0%{opacity:0;transform:translateY(58px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;scroll-behavior:auto!important}}@media(max-width:1120px){.top-bar{grid-template-columns:220px 1fr}.intro-screen:before{width:70vw}.booking-layout{grid-template-columns:minmax(280px,.9fr) minmax(420px,1.1fr)}.reservation-row{grid-template-columns:92px minmax(0,1fr) 118px}.reservation-row button{grid-column:auto}}@media(max-width:720px){.app-shell{padding:0 16px 18px}.app-shell:before,.app-shell:after,.top-nav,.slogan-mark{display:none}.top-bar{display:block;min-height:142px}.intro-screen{min-height:100vh}.intro-screen:before{height:46vh;left:-16px;min-height:280px;width:86vw}.intro-card{margin-top:10vh;padding:28px 24px;width:min(100%,330px)}.intro-card img{height:126px;width:178px}.brand-wedge{clip-path:polygon(0 0,100% 0,68% 78%,0 100%);height:142px;margin:0 -16px;padding:24px 22px}.brand-wedge img{height:84px;width:132px}.booking-layout{display:grid;gap:28px;grid-template-columns:1fr}.form-panel,.tables-panel{padding-top:0}.title-block{margin-top:8px;padding-left:0;position:relative;z-index:2}.title-block h1{font-size:26px}.title-block p{font-size:12px;line-height:1.65;margin-bottom:22px;max-width:280px}.reservation-form{gap:18px}.field{gap:8px;grid-template-columns:64px 1fr}.field>span{align-self:center}.field small{grid-column:2}.section-title.compact{margin-top:6px}.section-title h2{font-size:22px}.table-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.table-card{height:140px}.table-card:nth-child(n+5){height:122px}.table-meta{padding:9px 10px}.table-meta strong{font-size:16px}.table-meta em{font-size:12px}.confirm-button{min-height:56px}.booking-confirm-button{margin-top:16px}.mine-section,.preorder-section,.location-section{padding-left:0;padding-right:0}.reservation-row,.location-card{grid-template-columns:1fr}.reservation-row img{height:96px;width:100%}.dialog-actions{grid-template-columns:1fr}}.staff-shell{margin:0 auto;max-width:1180px;min-height:100vh;padding:28px}.staff-header{align-items:center;border-bottom:2px solid var(--ink);display:flex;gap:18px;justify-content:space-between;padding-bottom:18px}.staff-header span{color:var(--red);display:block;font-size:12px;font-weight:900;letter-spacing:0;margin-bottom:8px;text-transform:uppercase}.staff-header h1{font-size:clamp(30px,5vw,56px);line-height:1;margin:0}.staff-header a,.staff-actions button,.staff-search button,.staff-login button,.staff-cancel-button{align-items:center;background:var(--green);border:1px solid var(--green);border-radius:4px;color:var(--paper);display:inline-flex;font-weight:900;justify-content:center;min-height:46px;padding:0 18px;text-decoration:none}.staff-login{display:grid;gap:24px;justify-items:start;margin:72px auto 0;max-width:420px}.staff-login img{background:var(--ink);height:96px;object-fit:contain;padding:12px;width:150px}.staff-login form{display:grid;gap:16px;width:100%}.staff-login label,.staff-filters label,.staff-search label{display:grid;gap:8px}.staff-login label span,.staff-filters label span,.staff-search label span{color:var(--muted);font-size:13px;font-weight:800}.staff-login input,.staff-filters input,.staff-filters select,.staff-search input{background:#fffaf0bf;border:1px solid var(--line);border-radius:4px;color:var(--ink);min-height:46px;padding:0 12px;width:100%}.staff-login p,.staff-message{color:var(--red);font-weight:900;margin:0}.staff-toolbar{display:grid;gap:18px;margin-top:28px}.staff-tabs{display:flex;flex-wrap:wrap;gap:8px}.staff-tabs button{background:transparent;border:1px solid var(--line);border-radius:4px;color:var(--ink);font-weight:900;min-height:42px;padding:0 18px}.staff-tabs button.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.staff-filters{display:grid;gap:12px;grid-template-columns:190px 170px minmax(260px,1fr)}.staff-search{align-items:end;display:grid;gap:10px;grid-template-columns:1fr auto}.staff-actions{display:flex;gap:10px}.staff-actions button:disabled,.staff-search button:disabled{opacity:.65}.staff-actions .ghost{background:transparent;border-color:var(--line);color:var(--ink)}.staff-metrics{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}.staff-metrics div{border-bottom:2px solid var(--ink);border-top:1px solid var(--line);display:grid;gap:10px;padding:16px 0}.staff-metrics span{color:var(--muted);font-size:13px;font-weight:800}.staff-metrics strong{font-size:clamp(26px,4vw,40px);line-height:1}.staff-list{margin-top:32px}.staff-list-head{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding-bottom:12px}.staff-list-head h2{font-size:24px;margin:0}.staff-list-head span{color:var(--muted);font-size:13px;font-weight:700}.staff-reservations{display:grid;gap:10px;margin-top:12px}.staff-reservation-card{align-items:center;background:#fffaf0b8;border:1px solid var(--line);border-radius:6px;display:grid;gap:16px;grid-template-columns:1fr auto;padding:14px 16px}.staff-reservation-main,.staff-reservation-side{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.staff-reservation-main strong{font-size:20px}.staff-reservation-main span{background:var(--red);border-radius:3px;color:var(--paper);font-weight:900;padding:5px 8px}.staff-reservation-main time,.staff-reservation-side span{color:var(--muted);font-weight:800}.staff-reservation-side{justify-content:end}.staff-reservation-side a{color:var(--green);font-size:18px;font-weight:900;text-decoration:none}.staff-cancel-button{background:var(--red);border-color:var(--red);min-height:38px;padding:0 12px}.staff-cancel-button:disabled{opacity:.65}@media(max-width:760px){.staff-shell{padding:18px 16px 28px}.staff-header{align-items:start}.staff-header a{min-height:40px;padding:0 12px}.staff-filters,.staff-search,.staff-metrics,.staff-reservation-card{grid-template-columns:1fr}.staff-actions{display:grid;grid-template-columns:1fr 1fr}.staff-list-head{align-items:start;display:grid}.staff-reservation-side{justify-content:start}}
