: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;--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-left:6px solid var(--cooking-accent);border-radius:12px;padding:10px 14px;margin-bottom: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}.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}.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;gap:10px;color:var(--idle-text)}.idle-title{flex:1;font:700 13px var(--font)}.idle-lock{font:700 11px var(--font);color:var(--danger);background:#ff807226;padding:2px 8px;border-radius:8px;white-space:nowrap}.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}
