.gd-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:1000}.gd-modal-backdrop-exit{opacity:0}.gd-modal{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);width:300px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.2);z-index:1001;font-family:Arial,sans-serif;overflow:hidden;opacity:0;transition:opacity .3s ease}.gd-modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:#f1f1f1;border-bottom:1px solid #e0e0e0;font-weight:700}.gd-close-btn{background:0 0;border:none;font-size:20px;cursor:pointer;color:#333}.gd-close-btn:hover{color:#d9534f}.gd-modal-body{padding:10px;font-size:14px;color:#333}.gd-modal-footer{padding:10px;display:flex;justify-content:flex-end;border-top:1px solid #e0e0e0}.gd-button{margin-left:10px;padding:5px 10px;border:none;border-radius:4px;cursor:pointer}.gd-button-default{background-color:#e0e0e0;color:#333}.gd-button-primary{background-color:#007bff;color:#fff}.gd-button-primary:hover{background-color:#0056b3}.gd-button-success{background-color:#28a745;color:#fff}.gd-button-success:hover{background-color:#218838}.gd-button-info{background-color:#17a2b8;color:#fff}.gd-button-info:hover{background-color:#138496}.gd-button-warning{background-color:#ffc107;color:#212529}.gd-button-warning:hover{background-color:#e0a800}.gd-button-danger{background-color:#d9534f;color:#fff}.gd-button-danger:hover{background-color:#c9302c}.gd-button-default:hover{background-color:#ccc}@keyframes modal-enter{from{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes modal-exit{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-20px)}}.gd-modal-enter{animation:modal-enter .3s ease-out forwards}.gd-modal-exit{animation:modal-exit .3s ease-out forwards}.gd-alert-success{background-color:#d4edda;color:#155724}.gd-alert-error{background-color:#f8d7da;color:#721c24}.gd-alert-warning{background-color:#fff3cd;color:#856404}.gd-alert-info{background-color:#cce5ff;color:#004085}.gd-alert-default{background-color:#e2e3e5;color:#383d41}.gd-alert-header{font-weight:700;padding:10px}.gd-alert-success .gd-alert-header{background-color:#c3e6cb;color:#155724}.gd-alert-error .gd-alert-header{background-color:#f5c6cb;color:#721c24}.gd-alert-warning .gd-alert-header{background-color:#ffeeba;color:#856404}.gd-alert-info .gd-alert-header{background-color:#bee5eb;color:#004085}.gd-alert-default .gd-alert-header{background-color:#e2e3e5;color:#383d41}.gd-modal{border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.gd-modal-footer,.gd-modal-header{padding:10px}.gd-modal-body{padding:20px}.gd-notification-container{position:fixed;z-index:9999}.gd-notification-container.top-right{top:20px;right:20px}.gd-notification-container.top-left{top:20px;left:20px}.gd-notification-container.top-center{top:20px;left:50%;transform:translateX(-50%)}.gd-notification-container.bottom-right{bottom:20px;right:20px}.gd-notification-container.bottom-left{bottom:20px;left:20px}.gd-notification-container.bottom-center{bottom:20px;left:50%;transform:translateX(-50%)}.gd-notification{background-color:#fff;border:1px solid #ccc;padding:10px;border-radius:4px;transition:opacity .5s ease-out}.fade-out{opacity:0}.fade-out{opacity:0;transition:opacity .3s ease-out}.gd-notification-success{background-color:#4caf50;color:#fff}.gd-notification-error{background-color:#f44336;color:#fff}.gd-notification-info{background-color:#2196f3;color:#fff}.gd-notification-warning{background-color:#ff9800;color:#fff}.fade-out{opacity:0;transition:opacity .5s ease}@keyframes slide-in{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.gd-loader-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .3s}.gd-loader{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center}.gd-loader span{color:#fff;font-size:16px;margin-top:10px}.gd-loader-spinner{border:8px solid rgba(255,255,255,.3);border-top:8px solid red;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}