:root{--kds-bg: #161c15;--kds-header: #212a1f;--accent: #8fae7d;--accent-strong: #5b7d54;--text: #fff;--text-dim: #9aa891;--font: "GenJyuuGothicX", "Noto Sans TC", sans-serif;--mono: "JetBrains Mono", monospace;--cooking-bg: #333d2a;--cooking-border: #556641;--cooking-accent: #8fae7d;--due-bg: #3a3016;--due-border: #e0a53e;--due-title: #e0a53e;--idle-bg: #252d20;--idle-border: #3d4834;--idle-text: #9aa891;--reserved-bg: #24303d;--reserved-border: #415a73;--reserved-accent: #7daace;--danger: #ff8072;--started-bg: #c99a2e}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--kds-bg);font-family:var(--font);color:var(--text)}.kds-shell{min-height:100vh;display:flex;flex-direction:column}.kds-header{background:var(--kds-header);padding:10px 18px;display:flex;align-items:center;gap:10px}.kds-title{font:800 15px var(--font)}.station-tab{font:700 12px var(--font);padding:6px 16px;border-radius:8px;background:#ffffff0f;color:var(--text-dim);cursor:pointer}.station-tab.active{background:var(--accent-strong);color:#fff}.kds-header-spacer{flex:1}.kds-count{font:700 11px var(--font);padding:4px 10px;border-radius:8px;background:#ffffff14;color:var(--text-dim)}.kds-count.cooking{background:#8fae7d40;color:var(--cooking-accent)}.kds-count.due{background:#e0a53e40;color:var(--due-title)}.kds-clock{font:700 14px var(--mono);color:var(--text)}.kds-body{flex:1;padding:14px 18px 24px;overflow:auto}.kds-section-title{font:700 12px var(--font);color:var(--text-dim);margin:14px 0 8px}.cooking-card{background:var(--cooking-bg);border:1px solid var(--cooking-border);border-radius:12px;padding:10px 14px;margin-bottom:10px}.cooking-card.cooking-reserved{background:var(--reserved-bg);border:2px solid var(--reserved-accent)}.reserved-time-tag{display:inline-block;background:var(--reserved-accent);color:#10202c;font:800 15px var(--mono);border-radius:6px;padding:2px 8px;margin-right:8px;white-space:nowrap}.preorder-header{align-items:center;cursor:pointer}.preorder-section-title{display:flex;align-items:center}.preorder-toggle{margin-left:auto;padding:4px 12px;font-size:13px}.preorder-count{margin-left:8px;color:var(--text-dim);font:700 13px var(--font)}.cooking-card.preorder-flash{animation:preorder-flash .6s ease 4}@keyframes preorder-flash{50%{background:var(--due-bg);border-color:var(--due-border)}}.preorder-notice{display:flex;align-items:center;gap:10px;background:var(--due-bg);border:2px solid var(--due-border);color:var(--due-title);font:800 16px var(--font);border-radius:10px;padding:10px 14px;margin-bottom:8px;cursor:pointer}.preorder-notice-close{margin-left:auto;font-size:13px;border:1px solid var(--due-border);border-radius:8px;padding:3px 10px}.cooking-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.cooking-table-label{font:800 18px var(--font);color:#fff}.member-visit-tag{font:700 11px var(--font);color:var(--text-dim)}.member-visit-tag-inline{font:700 11px var(--font);color:var(--idle-text)}.cooking-elapsed{font:700 13px var(--mono);color:var(--text-dim)}.cooking-item-row{display:flex;align-items:center;gap:14px;padding:10px 0}.cooking-item-name{font:700 17px var(--font);color:#fff;flex:1}.started-tag{font:700 10px var(--font);background:var(--started-bg);color:#fff;padding:2px 8px;border-radius:8px}.refunded-tag{font:700 10px var(--font);background:var(--danger);color:#fff;padding:2px 8px;border-radius:8px}.unpaid-tag{font:700 10px var(--font);background:#d99a2b;color:#fff;padding:2px 8px;border-radius:8px}.refunded-strike{text-decoration:line-through;opacity:.6}.serve-btn{font:800 18px var(--font);background:var(--accent-strong);color:#fff;border:none;border-radius:12px;padding:16px 28px;min-width:96px;cursor:pointer;white-space:nowrap}.serve-btn:disabled{opacity:.5;cursor:default}.due-card{background:var(--due-bg);border:2px solid var(--due-border);border-radius:12px;padding:10px 14px;margin-bottom:10px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 14px #0000004d}.due-tag{font:700 10px var(--font);background:var(--danger);color:#1a1a1a;padding:2px 8px;border-radius:8px;white-space:nowrap}.due-title{flex:1;font:800 14px var(--font);color:var(--due-title)}.idle-card{background:var(--idle-bg);border:1.5px dashed var(--idle-border);border-radius:12px;padding:9px 14px;margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--idle-text)}.idle-title{flex:1;min-width:0;font:700 13px var(--font)}.idle-lock{font:700 11px var(--font);color:var(--danger);background:#ff807226;padding:4px 8px;border-radius:8px;white-space:normal;line-height:1.5}.idle-card-blocked{flex-direction:column;align-items:flex-start;gap:6px}.idle-card-blocked .idle-title{flex:0 0 auto;align-self:stretch}.idle-card-blocked .kds-undo-yes{flex:none;padding:6px 14px;min-height:32px;font-size:13px;background:var(--danger);color:#2a1512}.idle-card-blocked .kds-undo{flex:none;padding:6px 14px;min-height:32px;font-size:13px;opacity:.75}.idle-card-blocked .kds-undo:hover{opacity:1}.idle-timer{font:700 12px var(--mono);color:var(--idle-text);white-space:nowrap}.action-btn{font:700 11px var(--font);background:#ffffff14;color:var(--text);border:none;border-radius:7px;padding:6px 12px;cursor:pointer;white-space:nowrap}.action-btn.primary{background:var(--accent-strong)}.action-btn:disabled{opacity:.5;cursor:default}.kds-empty{color:var(--text-dim);font:500 12px var(--font);padding:8px 0 18px}.kds-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.login-box{max-width:340px;margin:100px auto;background:var(--kds-header);border-radius:16px;padding:24px;text-align:center}.login-box input{width:100%;box-sizing:border-box;margin-top:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--idle-border);background:var(--kds-bg);color:var(--text);font:600 13px var(--font)}.login-box input::placeholder{color:var(--text-dim)}.login-box button{font:700 13px var(--font);background:var(--accent-strong);color:#fff;border:none;border-radius:10px;padding:10px 18px;cursor:pointer;width:100%;margin-top:12px}.err{background:#ff807226;color:var(--danger);border-radius:8px;padding:8px 10px;font:600 12px var(--font);margin-bottom:10px}.cooking-card.cooking-alert{border:2px solid var(--danger);background:#3d2020}.cooking-card.cooking-preorder-seated{border:3px solid var(--reserved-accent)}.cooking-card.cooking-alert .cooking-elapsed{color:var(--danger);font-weight:800}.kds-history-panel{background:var(--kds-header);border-bottom:1px solid var(--idle-border);max-height:280px;overflow-y:auto;padding:0 18px 10px}.kds-history-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0 6px;font:700 13px var(--font);color:var(--text);position:sticky;top:0;background:var(--kds-header)}.kds-history-row{display:flex;align-items:center;gap:12px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}.later-btn{flex:none;min-height:44px;padding:8px 14px;font-size:13px}.later-ask{display:flex;align-items:center;gap:8px;flex:none}.later-q{font:700 13px var(--font);color:var(--due-title);white-space:nowrap}.later-yes{flex:none;min-height:44px;padding:8px 14px;font-size:13px;background:var(--due-border);color:var(--kds-bg)}.kds-undo-ask{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}.kds-undo-q{font:600 11px var(--font);color:var(--text-dim);white-space:nowrap}.kds-history-row .kds-undo-yes{flex:none;padding:6px 14px;min-height:32px;font-size:13px;background:var(--danger);color:#2a1512}.kds-history-row .kds-undo{margin-left:auto;flex:none;padding:6px 14px;min-height:32px;font-size:13px;opacity:.75}.kds-history-row .kds-undo:hover{opacity:1}.kds-history-time{font:600 11px var(--mono);color:var(--text-dim);min-width:60px}.kds-history-table{font:700 12px var(--font);color:var(--accent);min-width:70px}.kds-history-name{font:600 12px var(--font);color:var(--text);flex:1}.action-btn.kds-bell.muted{background:var(--danger);color:#2a1512}.action-btn.kds-bell.ok{background:var(--accent-strong)}.combo-tag{margin-left:6px;font:700 13px var(--font);color:var(--text-dim);overflow-wrap:anywhere}.refunded-strike .combo-tag{color:var(--text-dim)}.kds-section-title.kds-section-reserved{color:var(--reserved-accent)}.pace-slow-tag{font:800 12px var(--font);background:var(--accent-strong);color:#fff;padding:2px 8px;border-radius:8px;white-space:nowrap}.cooking-item-row.pace-held{opacity:.35}.cooking-item-row.pace-held .cooking-item-name{font-weight:500}
