@keyframes pulse-glow{0%{box-shadow:0 0 0 0 rgb(255 255 255 / .7),0 6px 14px rgb(0 0 0 / .25)}70%{box-shadow:0 0 0 15px #fff0,0 8px 18px rgb(0 0 0 / .35)}100%{box-shadow:0 0 0 0 #fff0,0 6px 14px rgb(0 0 0 / .25)}}@keyframes shake-burst{0%,100%{transform:rotate(0) scale(1)}10%,30%,50%{transform:rotate(-6deg) scale(1.1)}20%,40%{transform:rotate(6deg) scale(1.1)}60%{transform:rotate(0) scale(1.1)}}.floating-widget-bottom-left{position:fixed;bottom:25px;left:25px;z-index:999;display:flex;flex-direction:column;gap:15px}.floating-widget-top-right{position:fixed;bottom:86px;right:25px;z-index:999}.floating-widget-bottom-left a,.floating-widget-top-right button{display:flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;box-shadow:0 6px 14px rgb(0 0 0 / .25);text-decoration:none;color:#fff;border:none;cursor:pointer;transition:all 0.25s ease}.floating-widget-bottom-left a:hover,.floating-widget-top-right button:hover{transform:scale(1.12) translateY(-3px);box-shadow:0 8px 18px rgb(0 0 0 / .35)}.floating-widget-bottom-left .phone{background:linear-gradient(145deg,#4CAF50,#3e8e41);animation:pulse-glow 2.2s infinite,shake-burst 0.8s 4s infinite}.floating-widget-bottom-left .phone:hover{animation-play-state:paused}.floating-widget-bottom-left .phone::before{content:'';background:url(http://hitachiservicecentervn.com.vn/images/call.png) no-repeat center/60%;filter:invert(1);width:100%;height:100%;display:block}.floating-widget-bottom-left .zalo{background:#0068ff;animation:pulse-glow 2.5s infinite 0.3s}.floating-widget-bottom-left .zalo:hover{animation-play-state:paused}.floating-widget-bottom-left .zalo::before{content:'';background:url(http://hitachiservicecentervn.com.vn/images/zalo.svg) no-repeat center/65%;width:100%;height:100%;display:block}.floating-widget-top-right .register{background:linear-gradient(145deg, #fb0b0b, #299bd3)}.floating-widget-top-right .register:hover{background:linear-gradient(145deg,#9b59b6,#7e57c2)}.floating-widget-top-right .register::before{content:'📝';font-size:23px}.repair-modal{display:none;position:fixed;z-index:1001;left:0;top:0;width:100%;height:100%;backdrop-filter:blur(4px);background-color:rgb(0 0 0 / .5);opacity:0;transition:opacity 0.3s ease}.repair-modal.show{display:flex;align-items:center;justify-content:center;opacity:1}.repair-modal-content{background-color:#fff;padding:32px 28px;border-radius:16px;width:90%;max-width:480px;position:relative;transform:translateY(40px);transition:all 0.3s ease;box-shadow:0 10px 25px rgb(0 0 0 / .25)}.repair-modal.show .repair-modal-content{transform:translateY(0)}.repair-modal-close-button{position:absolute;top:12px;right:16px;font-size:26px;font-weight:600;color:#888;cursor:pointer;transition:color 0.2s}.repair-modal-close-button:hover{color:#000}.repair-modal-content h2{margin-top:0;text-align:center;color:#1a237e;font-weight:600;margin-bottom:8px}.repair-modal-content p{text-align:center;color:#666;margin-bottom:24px;font-size:14px}#repairForm .form-group{margin-bottom:16px}#repairForm label{display:block;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}#repairForm input,#repairForm select,#repairForm textarea{width:100%;padding:10px 12px;border:1px solid #d0d0d0;border-radius:8px;font-size:14px;transition:border-color 0.2s,box-shadow 0.2s}#repairForm input:focus,#repairForm select:focus,#repairForm textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 3px rgb(26 115 232 / .2);outline:none}#repairForm textarea{resize:vertical}#repairForm button{width:100%;padding:12px 28px;border-radius:50px;font-weight:600;letter-spacing:.5px;transition:all 0.25s ease;text-transform:uppercase;cursor:pointer;border:none;background:linear-gradient(135deg,#ffca28,#ffb300);color:#1d3557;box-shadow:0 3px 10px rgb(255 193 7 / .4)}#repairForm button:hover{background:linear-gradient(135deg,#ffd54f,#ffb300);transform:translateY(-2px)}#repairForm button:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}#formStatus{text-align:center;margin-top:15px;font-weight:500;height:22px;font-size:14px}#formStatus.success{color:#28a745}#formStatus.error{color:#dc3545}