:root{font-family:Arial,sans-serif;color:#111827;background:#e30513;line-height:1.4}*{box-sizing:border-box}body{margin:0;background:#e30513}button,input,select{font:inherit}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:#e30513}.card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:24px;box-shadow:0 12px 30px #0f172a14}.app-version-footer{margin-top:18px;color:#9ca3af;font-size:.68rem;line-height:1.2;text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.app-version-separator{color:#d1d5db}.app-version-link{color:#6b7280;text-decoration:none}.app-version-link:hover{text-decoration:underline}.wide-card{max-width:680px}.stack{display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:nowrap}.topbar-copy{flex:1 1 auto;min-width:0}.tipsy-header-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px}h1,h2,p{margin:0}h1{font-size:1.75rem;margin-bottom:4px}h2{font-size:1.1rem}.muted{color:#6b7280}.balance{font-weight:700;margin-top:6px}.tipsy-header-copy .balance{margin-top:0}.tipsy-copy{display:inline-flex;flex-wrap:wrap}.tipsy-word{display:inline-block;transform-origin:50% 85%;animation:tipsy-sway var(--tipsy-duration, 2.2s) ease-in-out infinite;animation-delay:var(--tipsy-delay, 0s);will-change:transform,filter,opacity;white-space:pre}.admin-hint{margin-top:6px;color:#1d4ed8;font-weight:600}.small,small{font-size:.9rem}input,button,select{border-radius:12px;border:1px solid #d1d5db;padding:14px 16px}button{background:#111827;color:#fff;border:none;cursor:default}button:not(:disabled):not(.ui-disabled){cursor:pointer}button:not(:disabled):not(.ui-disabled),button:not(:disabled):not(.ui-disabled) *{cursor:pointer!important}button:disabled{opacity:.7;cursor:not-allowed}button.ui-disabled{opacity:.7;cursor:default!important}button.ui-disabled:hover,button.ui-disabled:hover *{cursor:not-allowed!important}.secondary{background:#e5e7eb;color:#111827}.admin-toggle{background:#1d4ed8;color:#fff}.drink-button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:72px;font-size:1rem;text-align:left}.drink-button span{display:flex;flex-direction:column;gap:4px}.error{color:#b91c1c;margin-top:12px}.actions,.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.actions{margin-left:auto;flex:0 0 auto;align-items:flex-start;justify-content:flex-end}.settings-menu-wrapper{position:relative}.settings-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:140px;padding:8px;border:1px solid #d1d5db;border-radius:12px;background:#fff;box-shadow:0 10px 24px #0f172a1f;z-index:10}.settings-menu button{width:100%}.settings-menu{display:flex;flex-direction:column;gap:8px}.full-width input{flex:1}.panel{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:16px}.panel h3{margin:0 0 12px}.loading-panel{min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.loading-indicator{width:20px;height:20px;border-radius:999px;border:2px solid #d1d5db;border-top-color:#111827;animation:spin .9s linear infinite;opacity:.8}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.promotion-editor-header{display:flex;align-items:center;gap:6px;margin-bottom:12px}.promotion-editor-header h3{margin:0}.promotion-header-copy{display:flex;flex-direction:column;gap:2px}.promotion-header-copy h3{display:inline-flex;align-items:center;gap:8px}.promotion-live-dot{display:inline-block;vertical-align:middle;flex:0 0 auto;margin-left:8px;width:10px;height:10px;border-radius:999px;background:#86efac;box-shadow:0 0 #86efac99;animation:promotion-pulse 1.4s ease-in-out infinite}@keyframes promotion-pulse{0%{transform:scale(.95);box-shadow:0 0 #86efac80}70%{transform:scale(1);box-shadow:0 0 0 8px #86efac00}to{transform:scale(.95);box-shadow:0 0 #86efac00}}.debug-table-wrapper{overflow-x:auto}.debug-table{width:100%;border-collapse:collapse;margin-top:12px;background:#fff}.debug-table th,.debug-table td{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;font-size:.92rem}.debug-table th{width:220px;color:#374151}.debug-table td{color:#111827;word-break:break-word}.inline-actions.ui-disabled>button:first-child{opacity:.7;cursor:default!important;pointer-events:none}.inline-actions.ui-disabled>button:first-child:hover,.inline-actions.ui-disabled>button:first-child:hover *{cursor:not-allowed!important}.category-header{margin-bottom:4px;padding-left:4px}.category-header h3{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b7280}.category-title-row{display:flex;align-items:baseline;gap:6px}.promotion-rule-inline{color:#16a34a;font-size:.8rem;font-weight:700}.category-block,.favorites-drink-list{display:flex;flex-direction:column;gap:6px}.favorite-drink-mark{display:inline-block;margin-right:6px;color:#d97706;font-size:.9em;vertical-align:baseline}.panel>.form-grid{margin-bottom:12px}.row-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;min-width:0}.promotion-history-drink-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #e5e7eb}.column-card{flex-direction:column;align-items:stretch}.compact-user-card{gap:10px}.user-card-header{flex-wrap:nowrap}.user-card-copy{flex:1 1 auto;min-width:0}.user-card-actions{margin-left:auto;flex:0 0 auto;justify-content:flex-end;flex-wrap:nowrap}.user-filter-row{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,.9fr);gap:12px;align-items:stretch;margin-bottom:12px}.user-search-group{width:100%;flex-wrap:nowrap}.user-sort-select{width:100%}.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;flex-wrap:wrap}@media (max-width: 560px){.user-filter-row{grid-template-columns:1fr}.user-search-group{flex-wrap:nowrap}.user-card-header{gap:8px}.user-card-actions{align-self:flex-start}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-input{min-height:52px;border:1px solid #d1d5db;border-radius:12px;padding:0 14px}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tab-button{background:#e5e7eb;color:#111827;padding:12px}.active-tab{background:#111827;color:#fff}.promotion-banner{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #86efac;border-radius:12px;background:#f0fdf4;color:#166534}.promotion-banner span,.promotion-banner small,.promotion-rule,.promotion-price{color:#16a34a}.promotion-rule{margin:0;font-size:.85rem;font-weight:600}.category-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.active-chip{background:#16a34a;color:#fff}.promotion-builder{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px dashed #d1d5db;border-radius:12px;background:#fff}@media (min-width: 640px){.tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}.fridge-action-button{background:#16a34a;color:#fff;box-shadow:0 8px 18px #16a34a47;animation:fridge-pulse 1.6s ease-in-out infinite}.fridge-action-button:hover{background:#15803d}@keyframes fridge-pulse{0%{transform:scale(1);box-shadow:0 8px 18px #16a34a38}50%{transform:scale(1.03);box-shadow:0 10px 24px #16a34a5c}to{transform:scale(1);box-shadow:0 8px 18px #16a34a38}}.drink-selector{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid #d1d5db;border-radius:14px;background:#fff}.compact-drink-card{min-height:0;padding:8px 10px}.compact-drink-card>div:first-child{flex:1 1 auto;min-width:0}.compact-drink-card strong{display:block;line-height:1.2}.compact-drink-card p{font-size:.92rem;line-height:1.2}.counter{display:flex;align-items:center;gap:6px}.square-button{width:50px;height:50px;padding:0}.icon-button{width:40px;height:40px;padding:0;font-size:1rem;display:inline-flex;align-items:center;justify-content:center}.selection-chip-list{display:flex;flex-wrap:wrap;gap:8px}.selection-chip{border:1px solid #d1d5db;background:#f3f4f6;color:#111827;border-radius:999px;padding:6px 10px;font-size:.92rem}.promotion-charge-picker{padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}.promotion-charge-picker-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}.promotion-charge-picker-list-modal{width:100%;max-height:min(52vh,420px);padding-right:4px}.promotion-charge-option{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:12px;padding:10px 12px}.promotion-charge-option-selected{border-color:#86efac;background:#f0fdf4}.barcode-overlay-card{width:min(100%,560px);text-align:left}.barcode-video-frame{width:100%;aspect-ratio:4 / 3;border-radius:16px;overflow:hidden;background:#111827}.barcode-video-frame video{width:100%;height:100%;object-fit:cover;display:block}.barcode-last-code,.barcode-error-text{width:100%;overflow-wrap:anywhere}.barcode-error-text{color:#b91c1c}.barcode-overlay-resolved{border-color:#16a34a;box-shadow:0 0 0 2px #16a34a29,0 16px 36px #0f172a29}.scanner-highlight-card{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a42,0 14px 30px #16a34a38;animation:scanner-card-flash 1.6s ease}@keyframes scanner-card-flash{0%{transform:scale(.98);background:#f0fdf4}40%{transform:scale(1.015);background:#dcfce7}72%{transform:scale(1.005);background:#bbf7d0}to{transform:scale(1);background:#fff}}.menu-button{width:50px;height:50px;font-size:1.35rem;line-height:1}.active-rfid-button{background:#16a34a;color:#fff}.count-badge{min-width:32px;text-align:center;font-weight:700}.checkout-bar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border-radius:14px;background:#eef2ff;box-shadow:0 -8px 20px #0f172a14;z-index:2}.booking-success-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:30}.booking-success-badge{width:92px;height:92px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#16a34af5;color:#fff;font-size:2.8rem;font-weight:700;box-shadow:0 18px 40px #0f172a3d;animation:booking-success-pop 1.1s ease forwards}@keyframes booking-success-pop{0%{opacity:0;transform:scale(.7)}15%{opacity:1;transform:scale(1.08)}65%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes tipsy-sway{0%{transform:translateY(0) rotate(var(--tipsy-rotate-min, -1.6deg));filter:blur(.5px);opacity:.98}25%{transform:translateY(-1px) rotate(var(--tipsy-rotate-mid, .35deg));filter:blur(.9px);opacity:.95}50%{transform:translateY(-2px) rotate(var(--tipsy-rotate-max, 1.6deg));filter:blur(1.5px);opacity:.9}75%{transform:translateY(-1px) rotate(var(--tipsy-rotate-mid, .35deg));filter:blur(.9px);opacity:.95}to{transform:translateY(0) rotate(var(--tipsy-rotate-min, -1.6deg));filter:blur(.5px);opacity:.98}}.rfid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#111827b8;overflow-y:auto}.rfid-overlay-card{width:min(100%,360px);max-width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;border-radius:20px;background:#fff;text-align:center;box-shadow:0 18px 48px #0f172a4d;overflow-y:auto}.qr-overlay-card{width:min(100%,420px)}.promotion-charge-overlay-card{width:min(100%,560px);text-align:left}.qr-preview{width:min(100%,280px);height:auto;border-radius:16px;background:#fff}.qr-link-text{width:min(100%,280px);max-width:100%;overflow-wrap:anywhere;word-break:break-word}.registration-link-text{max-width:100%;overflow-wrap:anywhere;word-break:break-word}@media (max-width: 560px){.rfid-overlay{padding:12px}.rfid-overlay-card{max-height:calc(100vh - 24px);padding:20px 16px}.qr-preview,.qr-link-text{width:min(100%,220px)}}.rfid-overlay-card h2,.rfid-overlay-card p{margin:0}.rfid-overlay-icon{display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:999px;background:#e30513;color:#fff;font-size:1.35rem;font-weight:700;letter-spacing:.08em;animation:fridge-pulse 1.4s ease-in-out infinite}.rfid-overlay-success .rfid-overlay-icon{background:#16a34a;animation:none}.rfid-overlay-error .rfid-overlay-icon{background:#b91c1c;animation:none}
