:root{--navy:#132f42;--blue:#1d4b63;--ink:#183144;--muted:#697988;--gold:#ecc470;--green:#147355;--pale:#f5f7f7;--line:#dce5e8;--shadow:0 5px 26px rgba(19,47,66,.07)}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;background:#f5f6f6;color:var(--ink);-webkit-text-size-adjust:100%}button,input,textarea{font:inherit}button{touch-action:manipulation;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:14px max(20px,env(safe-area-inset-left));min-height:78px}.brand{display:flex;gap:13px;align-items:center}.brand-symbol{width:46px;height:46px;border-radius:12px;background:var(--gold);display:grid;place-items:center;color:var(--navy);font-size:29px;font-weight:900;font-family:Georgia,serif}.brand-sub{font-size:10px;letter-spacing:.1em;color:#c2d1dc;font-weight:800}.brand-main{font-weight:900;font-size:22px;white-space:nowrap}.brand-main span{color:#f4dca8}.local-badge{border:1px solid #62808b;color:#dbe7ed;border-radius:100px;padding:9px 13px;font-size:12px;font-weight:750;text-align:center}.tabs{display:flex;gap:7px;overflow-x:auto;padding:11px 14px;background:#fff;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}.tabs button{white-space:nowrap;border:0;background:#edf2f3;color:#416171;border-radius:11px;padding:13px 17px;font-size:15px;font-weight:800;min-width:109px}.tabs button.selected{background:var(--navy);color:#fff}.main{max-width:1320px;padding:26px 24px 60px;margin:auto;min-height:calc(100vh - 195px)}.headline{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px;flex-wrap:wrap}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.13em;color:#987330;font-weight:900}.headline h1{font-size:clamp(27px,4vw,37px);line-height:1.3;margin:6px 0}.headline p{font-size:14px;color:var(--muted);margin:0;line-height:1.65}.label-date{color:#677b86;font-size:14px;font-weight:800}.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.86fr);gap:18px}.card{background:#fff;border:1px solid #e5e9e9;border-radius:19px;padding:23px;box-shadow:var(--shadow)}.card h2{font-size:20px;margin:0 0 19px}.menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.flavor{border:1px solid var(--line);border-radius:15px;background:#fcfcfa;padding:20px;min-height:154px;display:flex;flex-direction:column;justify-content:space-between;gap:17px}.flavor-name{font-size:clamp(18px,2.4vw,25px);font-weight:900;overflow-wrap:anywhere}.stepper{display:flex;align-items:center;gap:12px}.stepper button{border:1px solid #bccbd2;border-radius:12px;background:#fff;color:var(--navy);width:54px;height:51px;font-size:29px;font-weight:800;line-height:1}.stepper .plus{background:var(--navy);border-color:var(--navy);color:#fff}.stepper strong{min-width:35px;text-align:center;font-size:28px;font-variant-numeric:tabular-nums}.totals{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:15px 0;display:flex;justify-content:space-between;align-items:center}.totals strong{font-size:30px}.summary-line{padding:8px 0;display:flex;justify-content:space-between;gap:10px}.empty{background:#f7f9f9;border-radius:13px;text-align:center;color:#7a8b95;padding:28px 14px}.btn{border:0;border-radius:12px;padding:13px 18px;font-size:15px;min-height:50px;font-weight:850;display:inline-flex;gap:7px;justify-content:center;align-items:center}.btn.primary{background:var(--navy);color:white}.btn.green{background:var(--green);color:white}.btn.yellow{background:var(--gold);color:#2b3340}.btn.secondary{background:#e9f1f4;color:#244c62}.btn.light{background:#fff;border:1px solid #cfdae0;color:#254a5c}.btn.red{background:#fae7e5;color:#9d3733}.btn.wide{width:100%}.btn.small{font-size:14px;min-height:43px;padding:10px 13px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.hint,.warning{font-size:13px;line-height:1.7}.hint{color:#738693}.warning{padding:15px;background:#edf3f6;color:#456274;border-radius:13px;margin-bottom:18px}.field{display:block;margin:16px 0 0;font-size:13px;font-weight:800}.field input,.field textarea{display:block;width:100%;margin-top:7px;border:1px solid #bdcbd2;border-radius:11px;padding:13px;background:#fff;color:var(--ink);font-size:16px}.ticket{background:#fff8e9;border:1px solid #ecd9a9;padding:23px;border-radius:17px;margin-bottom:17px}.ticket-number{font-size:65px;font-weight:950;letter-spacing:.08em;line-height:1.18;margin:7px 0;font-variant-numeric:tabular-nums}.ticket p{margin:6px 0 15px}.badge{display:inline-block;font-weight:850;font-size:12px;background:#e8edf0;padding:6px 10px;border-radius:20px;color:#566a76}.badge.awaiting_payment{background:#fff0cc;color:#7e5914}.badge.paid{background:#e4effd;color:#255f8d}.badge.preparing{background:#edebff;color:#625499}.badge.ready{background:#d7f1e6;color:#167051}.badge.handed_over{background:#ebf0f1;color:#576a72}.badge.canceled{background:#fae9e7;color:#9a3e35}.stats{display:flex;gap:10px;flex-wrap:wrap}.stat{background:#f1f4f5;border-radius:10px;padding:11px 16px;min-width:120px}.stat b{display:block;font-size:27px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:#617986}.orders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;align-items:start}.lane h2{font-size:17px;margin:0 0 13px}.lane h2 b{background:#e6ecee;border-radius:20px;padding:4px 11px;font-size:14px;margin-left:5px}.order-card{border:1px solid #e0e5e7;border-radius:16px;background:#fff;padding:17px;margin-bottom:13px;box-shadow:var(--shadow)}.order-card-top{display:flex;align-items:center;justify-content:space-between;gap:9px}.order-no{font-size:34px;font-weight:950;font-variant-numeric:tabular-nums}.meta{font-size:12px;color:#83909a;margin:5px 0 13px}.items{font-size:16px;line-height:1.65;margin-bottom:10px}.memo{font-size:13px;background:#fff9ed;border-left:3px solid #dcb45e;padding:8px 11px;margin-bottom:12px;overflow-wrap:anywhere}.order-card .button-row{margin-top:14px}.order-card .button-row button{flex:1}.cashier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.ready-screen{min-height:55vh;background:var(--navy);color:#fff;padding:35px;border-radius:23px}.ready-screen h2{font-size:clamp(22px,3.2vw,41px);margin:0 0 10px}.ready-screen p{color:#b4cad7}.ready-main{margin-top:20px;background:var(--gold);border-radius:23px;padding:30px;color:var(--navy);text-align:center;font-size:clamp(90px,19vw,240px);font-weight:950;font-variant-numeric:tabular-nums}.ready-empty{min-height:30vh;display:grid;place-items:center;border:2px dashed #496b7d;border-radius:20px;font-size:clamp(23px,3vw,34px);text-align:center}.ready-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.ready-list strong{border:1px solid #8ba6b7;border-radius:13px;font-size:36px;min-width:110px;padding:12px;text-align:center}.footer{font-size:12px;color:#8597a1;text-align:center;padding:0 16px 24px}.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.setting-grid input{margin-bottom:9px}#toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#15495d;color:#fff;max-width:min(440px,90vw);padding:12px 17px;border-radius:13px;box-shadow:0 7px 25px #0016;display:none;font-weight:700}#toast.show{display:block}#print-area{display:none}
@media(max-width:970px){.cols{grid-template-columns:1fr}.orders{grid-template-columns:1fr 1fr}.setting-grid{grid-template-columns:1fr}.cashier-grid{grid-template-columns:1fr}}@media(max-width:650px){.topbar{padding:12px}.brand-symbol{width:38px;height:38px;font-size:23px}.brand-main{font-size:17px}.brand-sub{font-size:8px}.local-badge{font-size:10px;padding:5px 8px}.main{padding:18px 12px 45px}.card{padding:16px}.menu{gap:9px}.flavor{padding:14px;min-height:138px}.stepper{gap:5px}.stepper button{width:42px;height:44px}.stepper strong{min-width:26px;font-size:24px}.orders{grid-template-columns:1fr}.ready-screen{padding:17px}.ready-main{padding:15px}.tabs button{padding:11px 13px;min-width:auto;font-size:13px}}
@media print{@page{size:80mm auto;margin:4mm}body>*:not(#print-area){display:none!important}#print-area{display:block!important;color:#000;background:#fff;width:70mm;font-family:-apple-system,"Hiragino Kaku Gothic ProN",sans-serif}#print-area .print-title{text-align:center;font-weight:850;font-size:13pt}#print-area .print-num{text-align:center;font-size:44pt;font-weight:950;margin:6mm 0}#print-area .print-line{display:flex;justify-content:space-between;border-bottom:1px dashed #888;padding:2mm 0;font-size:12pt}#print-area p{font-size:10pt;line-height:1.65}}
/* Cloud-multi-iPad additions */
[hidden]{display:none!important}
.top-right{display:flex;gap:10px;align-items:center}
.top-logout{border:1px solid #8aa0ae;color:#fff;border-radius:10px;background:transparent;padding:9px 13px;font-weight:750;font-size:12px}
.connected-badge{border-color:#9fd7c2;color:#d6faeb;background:#1b5a4c}
.offline-badge{border-color:#e0ae83;color:#f9d2af;background:#68432d}
.demo-badge{border-color:#eccc70;color:#ffedba;background:#6a521c}
.login-card{max-width:525px;margin:42px auto;background:#fff;border:1px solid #e0e5e7;border-radius:20px;box-shadow:var(--shadow);padding:35px}
.login-card h1{font-size:clamp(25px,4vw,35px);margin:9px 0 13px}
.login-card p{font-size:15px;line-height:1.8;color:#607889}
.login-card .field{margin:18px 0;font-size:14px}
.login-card input{min-height:51px}
.login-card .btn{margin-top:14px}
.error{padding:13px;border-radius:9px;background:#fce9e8;color:#943930;margin:13px 0}
.section-title{font-size:20px;margin:28px 0 14px}
.section-title small{font-size:12px;color:#8396a1;font-weight:500}
.badge.unpaid{background:#fff0cc;color:#7e5914}
.badge.queued{background:#e4effd;color:#255f8d}
.badge.handed{background:#ebf0f1;color:#576a72}
.badge.cancelled{background:#fae9e7;color:#9a3e35}
.pickup-page{background:#edf2f4}
.pickup-page .main{max-width:1700px}
.pickup-page .ready-screen{min-height:65vh}
.pickup-page .ready-list strong{font-size:clamp(26px,3vw,44px)}
@media(max-width:650px){.login-card{margin:15px auto;padding:20px}.top-logout{padding:7px 9px}.top-right{gap:5px}}
