html,body,#root{margin:0;padding:0;width:100%;height:100dvh;overflow:hidden}.kds-container{background-color:#0d1117;color:#e6edf3;height:100dvh;width:100%;display:flex;flex-direction:column;overflow:hidden;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}.kds-header{display:flex;justify-content:space-between;align-items:center;padding:0 2rem;height:60px;background-color:#161b22;border-bottom:1px solid #30363d}.kds-header-logo{font-size:1.5rem;font-weight:700;color:#fca5a5}.kds-header-title{font-size:1.2rem;color:#8b949e}.kds-header-stats{font-size:1.2rem;font-weight:700;color:#f2cc60}.kds-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:1rem;padding:1rem;flex:1;overflow:hidden;align-content:start}.kds-card{background-color:#21262d;border:3px solid transparent;border-radius:8px;display:flex;flex-direction:column;height:100%;min-height:250px;position:relative;box-shadow:0 4px 6px #0000004d}.kds-card.state-received{border-color:#2ea043;animation:fadeIn .5s ease-out}.kds-card.state-prep{border-color:#1f6feb}.kds-card.state-warning{border-color:#d29922;animation:pulseBorder 2s infinite}.kds-card.state-overdue{border-color:#f85149;background-color:#f851491a;animation:blinkBorder 1s infinite}.kds-card-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background-color:#ffffff0d;border-bottom:1px solid #30363d}.kds-prep-number{background-color:#000;color:#fff;font-weight:700;font-size:1.2rem;padding:.25rem .5rem;border-radius:4px}.kds-timer{font-family:monospace;font-size:1.2rem;font-weight:700}.kds-card.state-warning .kds-timer{color:#d29922}.kds-card.state-overdue .kds-timer{color:#f85149}.kds-card-body{padding:.5rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.kds-waiter-info{font-size:.9rem;color:#8b949e;border-bottom:1px solid #30363d;padding-bottom:.25rem}.kds-item-group-title{font-size:.8rem;text-transform:uppercase;color:#8b949e;margin-top:.25rem}.kds-item{font-size:1rem;font-weight:500;display:flex;justify-content:space-between}.kds-item-note{font-size:.85rem;color:#f2cc60;background-color:#f2cc601a;padding:1px 4px;border-radius:2px;margin-left:.5rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseBorder{0%{border-color:#d29922}50%{border-color:#d2992266}to{border-color:#d29922}}@keyframes blinkBorder{0%{border-color:#f85149}50%{border-color:transparent}to{border-color:#f85149}}.kds-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}.kds-overlay-number{font-size:10rem;font-weight:700;color:#2ea043;text-shadow:0 0 20px rgba(46,160,67,.5)}.kds-overlay-text{font-size:3rem;right:20px;background:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:50%;width:60px;height:60px;font-size:28px;cursor:pointer;box-shadow:0 4px 10px #0000004d;z-index:1000;display:flex;align-items:center;justify-content:center;transition:transform .2s}.virtual-keypad{position:fixed;bottom:90px;right:20px;background:#1e1e1e;border:1px solid #333;border-radius:12px;padding:15px;box-shadow:0 8px 20px #00000080;z-index:1001;width:280px;animation:slideUp .3s ease-out}.virtual-keypad-toggle{position:fixed;bottom:20px;left:20px;background:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:50%;width:60px;height:60px;font-size:28px;cursor:pointer;box-shadow:0 4px 10px #0000004d;z-index:1000;display:flex;align-items:center;justify-content:center;transition:transform .2s}.virtual-keypad-toggle:hover{transform:scale(1.1)}.virtual-keypad{position:fixed;bottom:90px;left:20px;background:#1e1e1e;border:1px solid #333;border-radius:12px;padding:15px;box-shadow:0 8px 20px #00000080;z-index:1001;width:280px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.keypad-header{display:flex;justify-content:space-between;align-items:center;color:#fff;font-weight:700;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #444}.keypad-header button{background:#f44;color:#fff;border:none;border-radius:50%;width:25px;height:25px;cursor:pointer;font-weight:700}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keypad-grid button{background:#333;color:#fff;border:1px solid #444;border-radius:8px;padding:15px 0;font-size:22px;font-weight:700;cursor:pointer;transition:background .1s}.keypad-grid button:active{background:#555}.keypad-grid button:hover{background:#444}
