@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@400;500;600&display=swap";:root{--bg:#f8f6ef;--ink:#283d31;--muted:#7b8277;--line:#e2e5da;--green:#335844;--pale:#edf1e6;--orange:#be7a47}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:14px DM Sans,Noto Sans SC,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}:is(button:focus-visible,a:focus-visible){outline-offset:4px;outline:3px solid #bf8c57}a{color:inherit;text-decoration:none}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1280px;height:108px;margin:auto;padding:0 56px;display:flex}.brand{letter-spacing:-1px;align-items:center;gap:12px;font:600 32px Georgia,serif;display:flex}.brandmark{border:1px solid #8d9e87;border-radius:50%;place-items:center;width:45px;height:45px;display:grid}.brand-sub{letter-spacing:2.5px;margin-top:4px;font:9px DM Sans,sans-serif;display:block}.header-right{align-items:center;gap:40px;display:flex}.location{letter-spacing:2px;color:var(--muted);font-size:9px}.language{color:var(--green);background:0 0;border:0;font-size:12px}.language span{color:#b3b7a9;margin:0 7px}.language .selected{color:var(--green);border:1px solid #cbd3c1;border-radius:4px;padding:5px 8px}main{max-width:1168px;margin:0 auto;padding:52px 0 0}.eyebrow{letter-spacing:2px;color:#7d8a72;align-items:center;gap:9px;font-size:10px;font-weight:600;display:flex}.eyebrow>span,.badge>span,.dot{background:#789364;border-radius:100%;width:6px;height:6px;display:inline-block}.hero{grid-template-columns:1fr 480px;align-items:start;gap:95px;margin-top:24px;display:grid}.hero-copy{min-height:670px;position:relative}h1{letter-spacing:1px;margin:15px 0 20px;font:500 53px/1.55 Noto Serif SC,Georgia,serif}h1 em{color:#77916b;font-style:normal}.hero-copy>p{color:#7c8478;font-size:14px;line-height:2.1}.hero-note{color:#85917d;align-items:center;gap:8px;margin-top:28px;font-size:11px;display:flex}.queue-card{border:1px solid var(--line);background:#fffefb;border-radius:13px;padding:28px;box-shadow:0 8px 28px #364d2910}.card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-top .eyebrow{letter-spacing:1.5px;font-size:9px}.badge{white-space:nowrap;color:#67845a;background:#edf2e8;border-radius:30px;align-items:center;gap:6px;padding:5px 9px;font-size:10px;display:inline-flex}h2{align-items:center;gap:8px;margin:23px 0 9px;font-family:Noto Serif SC,Georgia,serif;font-size:27px;font-weight:500;display:flex}.muted{color:var(--muted);font-size:11px;line-height:1.9}.live-stats{background:#f3f5ed;border-radius:8px;grid-template-columns:1fr 1fr;gap:0;margin:22px 0;padding:18px 0;display:grid}.live-stats>div{justify-content:center;align-items:center;gap:12px;display:flex}.live-stats>div+div{border-left:1px solid #dbe2d4}.live-stats svg{color:#829477}.live-stats span{color:#7d8776;font-size:10px}.live-stats strong{color:var(--ink);margin-top:4px;font-size:28px;font-weight:500;display:block}.live-stats small{color:#7d8776;font-size:10px;font-weight:400}label{margin:17px 0 0;font-size:11px;font-weight:500;display:block}input:not([type=checkbox]){width:100%;color:var(--ink);background:#fffefa;border:1px solid #dfe4d9;border-radius:6px;outline:none;margin-top:8px;padding:12px 13px}input:focus{border-color:#8ca37b;box-shadow:0 0 0 2px #92ac7c22}input::placeholder{color:#adb2a7}.phone-input{border:1px solid #dfe4d9;border-radius:6px;align-items:center;margin-top:8px;display:flex}.phone-input>span{border-right:1px solid var(--line);white-space:nowrap;padding:0 12px;font-size:11px}.phone-input input{box-shadow:none;border:0;margin:0}.party{border:1px solid #dfe4d9;border-radius:6px;justify-content:space-between;align-items:center;margin-top:8px;padding:8px 10px 8px 13px;display:flex}.party>span{align-items:center;gap:8px;font-size:12px;display:flex}.party>div{gap:8px;display:flex}.party button{width:26px;height:26px;color:var(--green);background:0 0;border:1px solid #dce2d2;border-radius:4px;font-size:18px}.consent{color:#848c7b;align-items:start;gap:9px;margin:18px 0;font-size:10px;font-weight:400;line-height:1.9;display:flex}.consent input{accent-color:var(--green);flex:none;width:14px;height:14px;margin:4px 0 0}.primary{background:var(--green);color:#fff;border:0;border-radius:6px;justify-content:center;align-items:center;gap:20px;width:100%;padding:14px 17px;font-size:13px;display:flex}.primary:hover{background:#254332}.under-button{color:#8b9484;justify-content:center;align-items:center;gap:6px;margin:13px 0 21px;font-size:9px;display:flex}.card-footer{color:#9aa18f;border-top:1px solid #edf0e6;align-items:center;gap:7px;margin-top:20px;padding-top:14px;font-size:9px;display:flex}.card-footer>span:last-child{margin-left:auto}.steps{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:34px;margin-top:35px;padding:27px 0;display:grid}.steps article{align-items:center;gap:15px;display:flex}.step-no{color:#b8bfa9;font:italic 22px Georgia}.steps article>svg{color:#98a489;flex:none;margin-left:auto}.steps h3{margin:0 0 8px;font-size:12px;font-weight:500}.steps p{color:#939986;margin:0;font-size:10px}.fineprint{text-align:center;color:#a2a795;margin:23px 0 35px;font-size:10px}footer{border-top:1px solid var(--line);color:#929b86;justify-content:space-between;align-items:center;max-width:1280px;margin:auto;padding:28px 56px;font-size:10px;display:flex}.footer-brand{color:var(--green);font:22px Georgia}.footer-brand small{letter-spacing:1.3px;margin-left:8px;font:8px DM Sans,sans-serif}footer button,.text-button{color:#829374;background:0 0;border:0;align-items:center;gap:5px;padding:10px 0;font-size:10px;display:inline-flex}.illustration{width:450px;height:300px;position:absolute;top:330px;left:0}.sun{background:#e9eddf;border-radius:50%;width:255px;height:255px;position:absolute;top:0;left:95px}.cup{z-index:3;background:linear-gradient(90deg,#ebe2d1,#fffaf0 50%,#e3d9c6);border-radius:10px 10px 60px 60px;width:167px;height:119px;position:absolute;top:90px;left:93px;transform:rotate(-8deg);box-shadow:inset 0 -5px 12px #a5946a18}.cup:after{content:"";z-index:-1;border:12px solid #e9dfcd;border-left:0;border-radius:0 50% 50% 0;width:41px;height:56px;position:absolute;top:17px;right:-31px}.coffee{background:#714e32;border:7px solid #ede2cd;border-radius:50%;height:29px;margin-top:-10px;box-shadow:inset 0 0 0 2px #b58f5f}.coffee:after{content:"❧";color:#e7d3ae;font-size:44px;position:absolute;top:-13px;left:68px;transform:rotate(90deg)}.cup>span{text-align:center;color:#7c8b67;margin-top:21px;font:italic 22px Georgia;display:block}.saucer{background:#e6dfcd;border-radius:50%;width:254px;height:60px;position:absolute;top:177px;left:54px;transform:rotate(-7deg);box-shadow:0 9px 10px #6e704c18}.cake{border-radius:3px;width:118px;height:67px;position:absolute;top:166px;left:285px;transform:rotate(8deg);box-shadow:0 9px 10px #6e704c18}.cake>div{background:#e9c28a;border-top:6px solid #fcf5db;height:21px}.cake>div:first-child{background:#a1b478;border:0;border-radius:8px 8px 0 0;height:12px}.crumb{background:#ceae7a;border-radius:50%;width:6px;height:5px;position:absolute;top:250px;left:276px}.c2{width:4px;top:240px;left:292px}.sketch{color:#9ca38e;font:italic 17px Georgia;position:absolute;top:280px;left:111px;transform:rotate(-4deg)}.ticket{text-align:center}.ticket .live-stats{text-align:left}.ticket-number{color:var(--green);padding:10px;font:72px Georgia}.notice{background:#f0f3e8;border-radius:7px;padding:15px;font-size:12px;line-height:1.8}.notification{text-align:left;color:#8a937e;align-items:center;gap:8px;margin:20px 0;font-size:11px;line-height:1.8;display:flex}.error{color:#9e4e30;background:#fbede5;border-radius:6px;margin:15px 0;padding:14px;font-size:12px;line-height:1.8}.error button{color:inherit;background:0 0;border:0;text-decoration:underline}.admin-title h1{font-size:36px}.admin-stats{grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0;display:grid}.admin-stats>div{border:1px solid var(--line);border-radius:9px;align-items:center;gap:16px;padding:22px;display:flex}.admin-stats strong{font-size:24px;font-weight:500}.admin-stats span{color:#89917e;font-size:11px}.admin-grid{grid-template-columns:1.6fr 1fr;gap:24px;margin-bottom:50px;display:grid}.admin-grid h2{margin-top:0;font-size:20px}.queue-row{border-top:1px solid var(--line);justify-content:space-between;gap:15px;padding:18px 0;display:flex}.queue-row p{color:var(--muted);font-size:11px}.queue-row small{color:#89917e;margin-top:8px;font-size:10px;display:block}.row-actions{flex-wrap:wrap;align-content:center;gap:6px;display:flex}.row-actions button{background:var(--pale);border:1px solid var(--line);color:var(--green);border-radius:5px;padding:8px;font-size:10px}.bridge-note{margin-top:20px}.bridge-note strong{margin-left:8px}.bridge-note p{font-size:11px}.empty{text-align:center;color:#9aa38d;padding:50px 20px;font-size:12px;line-height:2.5}.empty svg{margin:auto;display:block}.poster{margin:30px 0}.settings .primary{margin-top:20px}@media (min-width:1450px){main{padding-top:65px}.hero{grid-template-columns:1fr 490px;gap:140px}.hero-copy h1{font-size:57px}}@media (max-width:1200px){main{padding:35px 40px 0}.hero{grid-template-columns:1fr 460px;gap:45px}.hero-copy h1{font-size:43px}.illustration{transform-origin:0 0;transform:scale(.85)}.location{display:none}.steps{gap:20px}.steps article>svg{display:none}}@media (max-width:850px){header{height:85px;padding:0 24px}.brand{font-size:27px}.brandmark{width:38px;height:38px}.header-right{gap:0}main{padding:30px 22px 0}.hero{grid-template-columns:1fr;gap:22px;margin-top:16px}.hero-copy{min-height:180px}.hero-copy h1{margin:7px 0 12px;font-size:34px;line-height:1.5}.hero-copy>p{font-size:12px}.hero-note{margin-top:15px}.illustration{transform-origin:100% 0;opacity:.65;pointer-events:none;top:10px;left:auto;right:-70px;transform:scale(.43)}.hero-copy h1,.hero-copy>p{z-index:4;position:relative}.queue-card{padding:22px}.steps{grid-template-columns:1fr;gap:24px;margin-top:32px}.steps article>svg{display:block}.fineprint{text-align:left;line-height:1.9}footer{flex-wrap:wrap;gap:15px;padding:22px}footer>span:nth-child(2){display:none}.admin-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:1fr;gap:10px}.admin-title h1{font-size:26px}.queue-row{flex-wrap:wrap}}@media print{header,footer,.text-button{display:none}}.poster{text-align:center;max-width:680px;margin:40px auto;padding:55px}.poster h2{justify-content:center;font-size:32px}.poster>p{line-height:2}.poster img{max-width:100%;height:auto}.poster .print-button{max-width:300px;margin:30px auto 10px}.admin-grid>.queue-card>.primary{margin:20px 0}.ticket .primary{margin-top:20px}@media print{@page{size:A4;margin:18mm}.app>main{padding:0}body{background:#fff}.poster{box-shadow:none;border:0;max-width:none;margin:0;padding:45px 0}.poster img{width:95mm;height:95mm}.poster h2{font-size:30px}.poster .print-button{display:none}.poster:before{content:"xinshan bakery & café";margin-bottom:30px;font:34px Georgia;display:block}}.brand-logo{width:224px;max-width:100%;height:auto;display:block}.footer-brand img{width:148px;height:auto;display:block}.brand{flex-shrink:0}@media (max-width:850px){.brand-logo{width:178px}.footer-brand img{width:132px}}.table-assignment{color:#6f8262;background:#fafbf6;border:1px solid #dfe6d6;border-radius:6px;align-items:center;gap:8px;margin:18px 0 0;padding:10px 12px;font-size:11px;display:flex}.ticket .table-assignment{justify-content:center}.party-assignment{color:#85917b;margin-top:8px;font-size:10px;font-weight:400;line-height:1.8;display:block}.table-queues{flex-direction:column;gap:20px;min-width:0;display:flex}.queue-instructions{color:#849078;margin:0 0 -3px;font-size:11px;line-height:1.9}.table-queue-heading{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.table-queue-heading h2{margin:0 0 4px}.table-queue-heading p{margin:0}.table-queue-heading>.badge{margin-top:4px}.table-queue-counts{color:#849078;gap:22px;padding:18px 0;font-size:11px;display:flex}.table-queue-counts>span{align-items:center;gap:7px;display:flex}.table-queue-counts strong{color:var(--ink);font-size:17px;font-weight:500}.table-queue>.primary{margin-bottom:16px}.table-full-note{color:#a47a4a;margin:0 0 15px;font-size:10px;line-height:1.8}.table-empty{padding:22px 5px 6px}.table-settings-total{color:#7d8b70;justify-content:space-between;padding:13px 0 0;font-size:11px;display:flex}.table-settings-total strong{color:var(--green);font-size:18px;font-weight:500}.table-queue .queue-row:last-child{padding-bottom:0}.table-queue .row-actions{justify-content:flex-end}.table-queue .queue-row>div:first-child{min-width:0}.table-queue .queue-row p{overflow-wrap:anywhere}@media (max-width:850px){.table-queue-heading h2{font-size:18px}.table-queue .queue-row{flex-wrap:nowrap}.table-queue .row-actions{max-width:50%}.table-queue-counts{gap:18px}}@media (max-width:430px){.table-queue .queue-row{flex-wrap:wrap}.table-queue .row-actions{justify-content:flex-start;max-width:none}.table-queue-counts{justify-content:space-between;gap:12px}}.arrival-countdown{color:#426139;text-align:center;background:#f0f5e9;border:1px solid #d3dfc8;border-radius:9px;margin:20px 0;padding:20px 16px}.arrival-heading{justify-content:center;align-items:center;gap:7px;font-size:12px;line-height:1.8;display:flex}.arrival-time{font-variant-numeric:tabular-nums;letter-spacing:2px;margin:10px 0;font-size:44px;font-weight:600;line-height:1.2;display:block}.arrival-countdown p{line-height:1.9;color:inherit!important;margin:7px 0 0!important;font-size:11px!important}.arrival-overdue{color:#a2472a;background:#fff0e9;border-color:#e6b19b}.arrival-unavailable{color:#8a795c;font-size:11px;line-height:1.8}.arrival-compact{text-align:left;max-width:330px;margin:12px 0 0;padding:10px 12px}.arrival-compact .arrival-heading{justify-content:flex-start;font-size:10px}.arrival-compact .arrival-time{letter-spacing:1px;margin:7px 0;font-size:25px}.arrival-compact p{font-size:10px!important}.arrival-policy{color:#819173;align-items:flex-start;gap:8px;margin:-8px 0 24px;font-size:11px;line-height:1.9;display:flex}.arrival-policy svg{flex:none;margin-top:3px}.arrival-overdue-summary{color:#a2472a;background:#fff0e9;border:1px solid #e7baa6;border-radius:7px;margin:-9px 0 22px;padding:13px 16px;font-size:12px;line-height:1.8}.queue-row-overdue{background:#fff8f4;border:1px solid #edd0c2;border-radius:7px;margin-top:13px;padding:15px 12px}.table-queue .queue-row-overdue:last-child{padding-bottom:15px}.row-actions .skip-overdue{color:#914023;background:#f8dfd2;border-color:#d49477}@media (max-width:430px){.arrival-time{font-size:38px}.arrival-compact{max-width:none}.arrival-policy{font-size:10px}.queue-row-overdue{padding:13px 10px}}.whatsapp-card{margin-top:20px}.whatsapp-card h2{font-size:18px;line-height:1.6}.whatsapp-number{color:var(--green);font-variant-numeric:tabular-nums;margin:13px 0 8px;font-size:18px;font-weight:500}.whatsapp-number>span{color:#849078;margin-top:4px;font-size:10px;font-weight:400;display:block}.whatsapp-purpose,.whatsapp-message,.whatsapp-method,.whatsapp-switches p,.whatsapp-account{color:#819075;overflow-wrap:anywhere;font-size:11px;line-height:1.9}.whatsapp-status{background:#f6f7f0;border:1px solid #e1e5d9;border-radius:7px;align-items:center;gap:8px;margin:16px 0 10px;padding:12px;font-size:11px;line-height:1.8;display:flex}.whatsapp-status .dot{background:#a0a78f;flex:none}.whatsapp-status-active{color:#426139;background:#edf5e7;border-color:#c6d6bd}.whatsapp-status-active .dot{background:#688b53}.whatsapp-status-warning,.whatsapp-error{color:#a2472a;background:#fff1e9;border:1px solid #ebc6b4}.whatsapp-account>span{color:#547343;align-items:center;gap:3px;margin-left:7px;display:inline-flex}.whatsapp-switches{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0;padding:7px 0}.whatsapp-switches .consent{color:var(--ink);margin:12px 0;font-size:11px}.whatsapp-switches .consent input:disabled{opacity:.5}.whatsapp-switches p{margin:6px 0}.whatsapp-switches strong{color:var(--green);font-weight:500}.whatsapp-pairing{text-align:center;background:#fafbf6;border:1px solid #dce5d4;border-radius:9px;margin:18px 0;padding:16px}.whatsapp-pairing img{background:#fff;border-radius:4px;max-width:100%;height:auto;margin:0 auto 12px;display:block}.whatsapp-pairing strong{color:var(--green);font-size:12px}.whatsapp-pairing p{color:#79896e;text-align:left;margin-bottom:0;font-size:11px;line-height:2}.whatsapp-actions{margin-top:16px}.whatsapp-actions .primary{gap:10px;font-size:12px}.whatsapp-actions .text-button{margin-top:4px;font-size:10px}.whatsapp-error{border-radius:6px;padding:10px 12px;font-size:11px;line-height:1.9}.whatsapp-method{border-top:1px solid var(--line);color:#929b87;margin-bottom:0;padding-top:12px;font-size:10px}.call-options{flex-direction:column;gap:9px;margin-bottom:16px;display:flex}.call-options .primary{gap:10px;font-size:12px}.call-only{width:100%;color:var(--green);background:#fafbf6;border:1px solid #cfd9c5;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:11px 14px;font-size:11px;display:flex}.row-actions .row-call-whatsapp{background:var(--green);border-color:var(--green);color:#fff;line-height:1.6}.staff-action-notice{color:#49623e;background:#eff5e9;border:1px solid #d3dfc8;border-radius:7px;margin:20px 0 0;padding:14px 16px;font-size:12px;line-height:1.8}.queue-row .staff-notification{color:#7a886e;align-items:flex-start;gap:5px;margin-bottom:0;font-size:10px;line-height:1.8;display:flex}.staff-notification svg{flex:none;margin-top:3px}.whatsapp-opt-in{margin-top:-6px}.whatsapp-no-consent{margin:9px 0 14px;line-height:1.8;color:#9b8056!important;font-size:10px!important}.queue-row .whatsapp-no-consent{margin-bottom:0}.row-actions .stop-whatsapp{color:#8a927e;background:0 0;border-color:#0000;padding:5px 0;font-size:9px}.floor-plan{margin:24px 0}.floor-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.floor-heading h2{margin:8px 0}.floor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.floor-table{background:#f5f8f1;border:1px solid #d9e2d5;border-radius:16px;min-width:0;padding:18px}.floor-table-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.floor-table-top strong{color:#335844;font-size:28px}.floor-table-top span{font-size:12px}.floor-table p{color:#687064;font-size:13px;line-height:1.7}.floor-table b{overflow-wrap:anywhere;font-size:14px;display:block}.floor-reserved{background:#fff9e8;border-color:#e9d9a8}.floor-occupied{background:#e9f1e6;border-color:#a9bca2}.floor-cleaning{background:#f8ede5;border-color:#d9bda8}.floor-table .primary{margin-top:10px;padding:10px;font-size:13px}.table-picker{align-items:center;gap:12px;margin:14px 0;font-size:14px;display:flex}.table-picker select{color:#335844;background:#fffefb;border:1px solid #d6ddcf;border-radius:9px;flex:1;padding:10px 12px}.table-number-badge{color:#335844;background:#e9efdf;border-radius:7px;margin:8px;padding:5px 10px;font-weight:700;display:inline-block}.seated-duration{font-weight:600;color:#335844!important}@media (max-width:700px){.floor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.floor-table{padding:12px}.floor-table-top{flex-direction:column;align-items:flex-start}.floor-heading{gap:8px}}@media (max-width:360px){.floor-grid{grid-template-columns:1fr}}.staff-login{max-width:520px;margin:28px auto}.staff-login form{margin-top:24px}.staff-backup{color:var(--muted);margin-top:24px;font-size:13px}.staff-backup summary{cursor:pointer}.staff-session{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;display:flex}.floor-booking,.floor-booking_dining{background:#f4ead8;border-color:#b89a66}.floor-booking p{overflow-wrap:anywhere}.floor-booking a{font-size:12px;text-decoration:underline;display:inline-block}.staff-shortcuts{flex-wrap:wrap;margin:20px 0;display:flex}.breakfast-shortcut{color:#335844;background:#edf1e6;border:1px solid #b6c3aa;border-radius:10px;align-items:center;gap:12px;padding:14px 22px;font-weight:600;display:inline-flex}.breakfast-shortcut:hover{background:#e2e9d8}.breakfast-shortcut>span{font-size:22px}
