@keyframes bewaiter-spin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.1)}to{transform:rotate(1turn) scale(1)}}@keyframes bewaiter-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes bewaiter-fade{0%,to{opacity:.3}50%{opacity:1}}@keyframes bewaiter-bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes bewaiter-shimmer{0%{background-position:-200%}to{background-position:200%}}.app-loading{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.app-loading p{animation:bewaiter-fade 2s ease-in-out infinite;color:#495057;display:block;font-size:1.2em;font-weight:500;margin:20px 0 0;text-align:center}.app-loading .bewaiter-loader{height:120px;margin-bottom:30px;position:relative;width:120px}.app-loading .bewaiter-plate{animation:bewaiter-spin 2s ease-in-out infinite;background:linear-gradient(135deg,#ff6b35,#e55a2b);border-radius:50%;box-shadow:0 0 20px rgba(255,107,53,.3),inset 0 -3px 6px rgba(0,0,0,.1);height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:50%;width:80px}.app-loading .bewaiter-plate:before{background:linear-gradient(135deg,hsla(0,0%,100%,.4),transparent 50%);border-radius:50%;bottom:8px;content:"";left:8px;position:absolute;right:8px;top:8px}.app-loading .bewaiter-utensils{animation:bewaiter-pulse 1.5s ease-in-out infinite;color:#fff;font-size:20px;height:24px;left:50%;line-height:24px;margin:-12px 0 0 -12px;position:absolute;text-align:center;top:50%;width:24px;z-index:2}.app-loading .bewaiter-particles{height:100%;position:absolute;width:100%}.app-loading .bewaiter-particle{background:#ff6b35;border-radius:50%;height:6px;opacity:.7;position:absolute;width:6px}.app-loading .bewaiter-particle:first-child{animation:bewaiter-bounce 1.8s ease-in-out infinite;animation-delay:0s;left:50px;top:10px}.app-loading .bewaiter-particle:nth-child(2){animation:bewaiter-bounce 1.8s ease-in-out infinite;animation-delay:.3s;right:20px;top:30px}.app-loading .bewaiter-particle:nth-child(3){animation:bewaiter-bounce 1.8s ease-in-out infinite;animation-delay:.6s;bottom:25px;left:15px}.app-loading .bewaiter-particle:nth-child(4){animation:bewaiter-bounce 1.8s ease-in-out infinite;animation-delay:.9s;bottom:40px;right:45px}.app-loading .bewaiter-progress{background:rgba(255,107,53,.2);border-radius:2px;bottom:60px;height:4px;overflow:hidden;position:absolute;width:200px}.app-loading .bewaiter-progress-bar{animation:bewaiter-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,rgba(255,107,53,.8),transparent);height:100%;width:100%}.bewaiter-error-container{animation:bewaiter-error-slide-in .6s ease-out;background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.15);max-width:600px;padding:40px 30px;text-align:center;width:100%}@keyframes bewaiter-error-slide-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.bewaiter-error-icon{margin-bottom:20px}.bewaiter-icon-error{align-items:center;animation:bewaiter-error-bounce .8s ease-out .2s both;background:linear-gradient(135deg,#ff6b35,#f7931e);border-radius:16px;box-shadow:0 8px 25px rgba(255,107,53,.3);display:inline-block;display:flex;font-size:2.5rem;height:80px;justify-content:center;margin:0 auto;width:80px}@keyframes bewaiter-error-bounce{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.bewaiter-error-title{background:linear-gradient(135deg,#ff6b35,#f7931e);-webkit-background-clip:text;color:#2c2c2c;font-size:2.2rem;font-weight:700;margin-bottom:10px;-webkit-text-fill-color:transparent;background-clip:text}.bewaiter-error-subtitle{color:#666;font-size:1.1rem;margin-bottom:30px;opacity:.8}.bewaiter-error-content h2{color:#2c2c2c;font-size:1.4rem;font-weight:600;margin-bottom:20px}.bewaiter-error-causes{display:grid;gap:15px;margin-bottom:30px;text-align:left}.bewaiter-error-cause{background:linear-gradient(135deg,#f8f6f0,#e8e5db);border-left:4px solid #ff6b35;border-radius:12px;padding:15px}.bewaiter-error-cause strong{color:#2c2c2c;display:block;font-size:1rem;margin-bottom:5px}.bewaiter-error-cause p{color:#666;font-size:.9rem;line-height:1.4;margin:0}.bewaiter-error-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:30px}.bewaiter-btn-primary,.bewaiter-btn-secondary{align-items:center;border:none;border-radius:12px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:1rem;font-weight:600;gap:8px;padding:12px 24px;text-decoration:none;transition:all .3s ease}.bewaiter-btn-primary{background:linear-gradient(135deg,#ff6b35,#f7931e);box-shadow:0 4px 15px rgba(255,107,53,.3);color:#fff}.bewaiter-btn-primary:hover{box-shadow:0 8px 25px rgba(255,107,53,.4);transform:translateY(-2px)}.bewaiter-btn-secondary{background:transparent;border:2px solid #6b7d54;color:#6b7d54}.bewaiter-btn-secondary:hover{background:#6b7d54;box-shadow:0 4px 15px rgba(107,125,84,.3);color:#fff;transform:translateY(-2px)}.bewaiter-tech-details{border-top:1px solid #e8e5db;margin-top:20px;padding-top:20px;text-align:left}.bewaiter-tech-details summary{background:#f8f6f0;border:1px solid #e8e5db;border-radius:8px;color:#6b7d54;cursor:pointer;font-weight:600;outline:none;padding:10px;transition:all .3s ease}.bewaiter-tech-details summary:hover{background:#e8e5db}.bewaiter-tech-content{color:#2c2c2c;padding:20px 0}.bewaiter-tech-content h3{color:#ff6b35;font-size:1.1rem;font-weight:600;margin:15px 0 8px}.bewaiter-tech-content ol,.bewaiter-tech-content ul{margin:10px 0;padding-left:20px}.bewaiter-tech-content li{line-height:1.5;margin:5px 0}.bewaiter-tech-content code{background:#2c2c2c;border-radius:4px;color:#0f0;font-family:Courier New,monospace;font-size:.9rem;padding:2px 6px}.bewaiter-tech-content p{line-height:1.5;margin:8px 0}@media (max-width:768px){.bewaiter-error-container{margin:20px;padding:30px 20px}.bewaiter-error-title{font-size:1.8rem}.bewaiter-error-subtitle{font-size:1rem}.bewaiter-error-actions{align-items:center;flex-direction:column}.bewaiter-btn-primary,.bewaiter-btn-secondary{justify-content:center;max-width:250px;width:100%}.bewaiter-error-causes{text-align:center}.bewaiter-error-cause{text-align:left}}