*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#141619;color:#F5F6F8;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;-webkit-text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:#272B30;border:2px solid #596169;border-radius:10px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.42;cursor:default}button:active{background:#373D44}button:focus{outline:3px solid #34D399;outline-offset:2px}[hidden]{display:none!important}#app{max-width:820px;margin:auto;padding:22px 28px 12px}header{height:64px;border-bottom:1px solid #373D44;position:relative}h1{font-size:36px;margin:0}.steps{position:absolute;right:0;top:9px;font-size:20px;color:#89929c;font-weight:700}.steps b{padding:0 14px}.steps .active{color:#34D399}h2{text-align:center;font-size:39px;margin:22px 0 16px;line-height:1.35}.welcome{font-size:56px;letter-spacing:.035em;margin:42px 0 16px}.intro{text-align:center;font-size:27px;margin:20px 0 28px}.reservation-note{font-size:21px;padding:18px 10px;border:1px solid #596169;border-radius:8px;text-align:center;margin-bottom:25px}.counter{background:#1C1F24;border:2px solid #373D44;border-radius:9px;margin:16px 8px;padding:15px 24px 20px;position:relative;height:190px;text-align:center}.counter h3{font-size:32px;margin:0 0 6px}.counter button{width:136px;height:112px;font-size:72px;position:absolute;bottom:20px;left:24px;line-height:1}.counter button:last-child{left:auto;right:24px}.counter div{display:inline-block;line-height:1.1}.counter strong{font-size:88px;font-weight:600}.counter div span{font-size:31px;margin-left:12px}.total{text-align:center;font-size:32px;margin:14px 0 2px;font-weight:700}.total strong{font-size:58px;color:#34D399;vertical-align:middle;margin:0 12px}.hint{font-size:18px;color:#B7C0CA;text-align:center;margin:12px 0}.primary{background:#059669;border-color:#34D399;font-weight:700}.primary:active{background:#047857}.wide{display:block;width:100%;min-height:94px;font-size:43px;margin-top:18px}.wide span{float:right;margin-right:28px}.party{background:#1C1F24;border:1px solid #373D44;border-radius:8px;text-align:center;padding:16px;font-size:24px;margin:16px 50px}.guide{text-align:center;font-size:23px;margin:16px 0}.guide i{display:inline-block;background:#059669;border:2px solid #34D399;border-radius:50%;width:23px;height:23px;vertical-align:middle}.guide em{font-style:normal;color:#34D399;font-weight:bold}.map{position:relative;width:100%;height:574px;background:#1C1F24;border:2px solid #596169;border-radius:7px;overflow:hidden}.zone{position:absolute;border:3px solid #596169}.upper{left:17%;top:1%;width:47%;height:19%}.tatami{left:2%;top:30%;width:44%;height:45%}.mini{left:46%;top:30%;width:20%;height:45%}.lower{left:2%;top:84%;width:70%;height:15%}.counter-zone{left:90%;top:1%;width:8%;height:63%}.zone-label{position:absolute;font-size:20px;font-weight:bold;text-shadow:0 1px #141619;pointer-events:none}.top-label{top:20%;left:35%}.tatami-label{top:51%;left:16%}.mini-label{top:51%;left:48%;font-size:18px}.bottom-label{top:78%;left:28%}.counter-label{top:28%;left:92%;width:22px;line-height:1.45}.register,.entrance{position:absolute;border:2px solid #596169;text-align:center;font-size:25px;font-weight:bold;padding-top:22px;width:16%;height:13%;right:4%;bottom:19%}.entrance{bottom:0;right:0;width:19%;height:14%}.table{position:absolute;border-radius:4px;border:2px solid #647078;background:#272B30;padding:0;line-height:1.1;opacity:1!important}.table strong{display:block;font-size:25px}.table small{display:block;font-size:12px;margin-top:4px;white-space:nowrap}.table:before,.table:after{content:"";position:absolute;left:10%;width:80%;height:6px;border-left:18px solid #647078;border-right:18px solid #647078;top:-10px}.table:after{top:auto;bottom:-10px}.table.available{border-color:#34D399;color:#34D399;background:#123D31}.table.selected{background:#059669;color:white;border:3px solid #34D399}.table.selected:after{content:"✓";top:-13px;right:-8px;left:auto;width:24px;height:24px;border:0;border-radius:50%;background:#F5F6F8;color:#059669;font-size:20px}.table.unavailable{color:#9DA6AF;background:#272B30}.legend{text-align:center;font-size:18px;color:#B7C0CA;margin:10px 0 12px}.available-key,.selected-key{color:#34D399;font-size:28px;vertical-align:middle}.unavailable-key{color:#647078;font-size:28px;vertical-align:middle}.selection{border:1px solid #373D44;border-radius:7px;background:#1C1F24;padding:18px 8px;text-align:center;font-size:26px;margin:10px 0 12px;min-height:72px}.selection strong{color:#34D399}.actions{display:table;width:100%;border-spacing:0}.actions button{height:80px;font-size:31px}.back{width:34%;margin-right:2%;background:#1D4ED8;border-color:#4675f5}.actions .primary{width:64%}#notice{display:none;background:#382A15;color:#F59E0B;border:1px solid #F59E0B;padding:12px;text-align:center;font-size:20px;margin:10px 0}#notice.visible{display:block}footer{font-size:12px;color:#B7C0CA;padding-top:14px;min-height:42px}footer button{float:right;font-size:14px;padding:7px 12px}#demo{color:#F59E0B;margin-left:12px}#complete,#pending{text-align:center;padding-top:80px}#complete p,#pending p{font-size:26px}.success-mark{font-size:80px;color:#34D399}.assigned{font-size:58px!important;color:#34D399;font-weight:bold;padding:32px;border:2px solid #34D399;border-radius:10px;background:#123D31}@media(max-width:650px){#app{padding:14px 16px}header{height:54px}h1{font-size:28px}.steps{font-size:14px}.steps b{padding:0 5px}.welcome{font-size:39px}h2{font-size:29px}.intro{font-size:22px}.reservation-note{font-size:17px}.counter{height:170px;padding-left:10px;padding-right:10px}.counter button{width:26%;height:96px;left:10px}.counter button:last-child{right:10px}.counter strong{font-size:75px}.party{font-size:19px;margin:12px 0}.guide{font-size:18px}.map{height:520px}.table strong{font-size:22px}.table small{font-size:10px}.zone-label{font-size:15px}.mini-label{font-size:13px}.counter-label{font-size:15px;width:17px}.register,.entrance{font-size:19px}.selection{font-size:22px}.actions button{font-size:24px}.wide{font-size:34px}.legend{font-size:14px}}
/* iPad portrait: retain a fixed map tree and fit controls into the full-screen height. */
@media(min-width:651px) and (max-height:1100px){#app{padding:12px 22px 8px}header{height:52px}h1{font-size:32px}.steps{font-size:18px;top:7px}#seats h2{font-size:34px;margin:14px 0 12px}.party{font-size:22px;padding:10px;margin:10px 40px}.guide{font-size:22px;margin:10px 0}.map{height:calc(100vh - 585px);min-height:424px}.table{min-height:44px}.table strong{font-size:22px}.table small{font-size:10px;margin-top:1px}.zone-label{font-size:17px}.mini-label{font-size:15px}.counter-label{font-size:16px;width:19px}.legend{margin:6px 0;font-size:17px}.selection{font-size:24px;padding:12px 8px;min-height:58px;margin:10px 0}.actions button{height:76px;font-size:29px}footer{padding-top:8px;min-height:36px}.welcome{font-size:52px;margin-top:25px}.intro{margin:16px 0 20px}.reservation-note{margin-bottom:18px;padding:14px 8px}.counter{height:175px;margin:14px 8px}.counter button{height:100px}.counter strong{font-size:80px}.wide{min-height:84px;margin-top:12px}}
.table:before,.table:after{width:60%;left:20%;border-left-width:13px;border-right-width:13px}.table.selected:after{left:auto;width:24px}.table small{line-height:1.2}.table{overflow:visible}

#staff-entry{display:inline-block;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default}#staff-entry:focus{outline:none}.settings-title-row{display:-webkit-flex;display:flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;margin:20px 0}.settings-title-row h2{margin:0}.settings-title-row button{min-height:56px;min-width:100px}.staff-settings-notice{border:2px solid #F87171;border-radius:12px;background:#351C20;color:#FFB4B4;padding:16px 18px;margin:0 0 24px;line-height:1.5}.staff-settings-notice strong{display:block;color:#FF8A8A;font-size:24px;font-weight:800}.staff-settings-notice p{margin:6px 0 0;font-size:18px;color:#FFB4B4}#settings-login{max-width:480px;margin:auto}#settings-login label{display:block;font-size:22px}#settings-password{display:block;width:100%;background:#272B30;color:#F5F6F8;border:2px solid #373D44;border-radius:8px;padding:14px;margin:12px 0;text-align:center;letter-spacing:.35em;font-size:28px;height:64px}.settings-keypad{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;max-width:440px;margin:12px auto}.settings-keypad button{width:30%;margin:1.66%;min-height:64px;padding:8px;font-size:28px}.settings-keypad button[data-pin="clear"]{font-size:18px}#staff-state{font-size:26px;text-align:center}#staff-controls{max-width:520px;margin:50px auto}#staff-controls .wide{font-size:30px}

#free-seating{text-align:center;padding-top:70px}#free-seating h2{font-size:45px}.free-main{font-size:44px;font-weight:700;line-height:1.65;margin:65px 0;color:#34D399}#free-seating .reservation-note{font-size:27px;line-height:1.7;padding:28px 12px}#free-seating .hint{line-height:1.9;margin-top:35px}#staff-free{border-color:#34D399;color:#34D399}body.free-mode .steps{visibility:hidden}

#reception-paused{text-align:center;padding-top:90px}#reception-paused h2{font-size:43px;color:#F59E0B;margin-bottom:55px}.paused-main{font-size:37px;font-weight:700;line-height:1.8;margin:40px 0 65px}#reception-paused .reservation-note{font-size:26px;line-height:1.8;padding:28px 12px}#reception-paused .hint{font-size:21px;line-height:1.8;margin-top:35px}

#people .reservation-note{font-size:26px;font-weight:700;line-height:1.55;padding:20px 14px;border:2px solid #F59E0B;background:#382A15;color:#F5F6F8;margin:20px 0 25px}#people #choose{margin-top:25px}@media(max-width:650px){#people .reservation-note{font-size:23px;padding:18px 12px}}

#people #choose{margin-top:50px}

.table:before,.table:after{display:none}.table.selected:after{display:block}.table{min-height:50px}

#staff-guidance{text-align:center;padding-top:80px}#staff-guidance h2{font-size:38px;color:#F59E0B}.guidance-main{font-size:43px;font-weight:700;line-height:1.8;margin:65px 0 35px}#staff-guidance .hint{font-size:24px;line-height:1.7}#guidance-back{margin-top:65px;font-size:30px}

#guidance-back{display:block;width:80%;max-width:480px;margin:65px auto 0}

.table.unavailable.state-occupied,.table.unavailable.state-reserved{background:#7F1D1D;border-color:#EF4444;color:#FFFFFF}.table.unavailable.state-cleanup{background:#654321;border-color:#B98450;color:#FFF2E2}

/* Strong, static emphasis keeps selectable seats clear on older iPads. */
.table.available{background:#059669;border:3px solid #6EE7B7;color:#FFFFFF;box-shadow:0 0 0 2px #123D31}.table.available strong{font-weight:800}.table.available small{font-weight:700;color:#FFFFFF}.table.selected{background:#047857;border:4px solid #FFFFFF;color:#FFFFFF;box-shadow:0 0 0 3px #34D399}.table.selected small{color:#FFFFFF}

#complete .assigned{font-size:82px!important;padding:26px 12px;margin:30px auto 18px;max-width:580px}#complete .proceed{font-size:35px;font-weight:700;margin:18px 0 26px}#complete #assigned-kind{font-size:24px}#complete #finish{max-width:600px;margin:38px auto 0;font-size:32px}
