2 lines
23 KiB
CSS
Raw Normal View History

Hotel Raxa - Advanced Booking System Implementation 🏨 Hotel Booking Enhancements: - Implemented Eagle Booking Advanced Pricing add-on - Added Booking.com-style rate management system - Created professional calendar interface for pricing - Integrated deals and discounts functionality 💰 Advanced Pricing Features: - Dynamic pricing models (per room, per person, per adult) - Base rates, adult rates, and child rates management - Length of stay discounts and early bird deals - Mobile rates and secret deals implementation - Seasonal promotions and flash sales 📅 Availability Management: - Real-time availability tracking - Stop sell and restriction controls - Closed to arrival/departure functionality - Minimum/maximum stay requirements - Automatic sold-out management 💳 Payment Integration: - Maintained Redsys payment gateway integration - Seamless integration with existing Eagle Booking - No modifications to core Eagle Booking plugin 🛠️ Technical Implementation: - Custom database tables for advanced pricing - WordPress hooks and filters integration - AJAX-powered admin interface - Data migration from existing Eagle Booking - Professional calendar view for revenue management 📊 Admin Interface: - Booking.com-style management dashboard - Visual rate and availability calendar - Bulk operations for date ranges - Statistics and analytics dashboard - Modal dialogs for quick editing 🔧 Code Quality: - WordPress coding standards compliance - Secure database operations with prepared statements - Proper input validation and sanitization - Error handling and logging - Responsive admin interface 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-11 07:43:22 +02:00
/*! elementor - v3.24.0 - 15-10-2024 */
.elementor-hidden{display:none}.elementor-visibility-hidden{visibility:hidden}.elementor-screen-only,.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;top:-10000em;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.elementor-clearfix:after{content:"";display:block;clear:both;width:0;height:0}.dialog-widget-content{background-color:var(--e-a-bg-default);position:absolute;border-radius:3px;box-shadow:2px 8px 23px 3px rgba(0,0,0,.2);overflow:hidden}.dialog-message{line-height:1.5;box-sizing:border-box}.dialog-close-button{cursor:pointer;position:absolute;margin-block-start:15px;inset-inline-end:15px;color:var(--e-a-color-txt);font-size:15px;line-height:1;transition:var(--e-a-transition-hover)}.dialog-close-button:hover{color:var(--e-a-color-txt-hover)}.dialog-prevent-scroll{overflow:hidden;max-height:100vh}.dialog-type-lightbox{position:fixed;height:100%;width:100%;bottom:0;left:0;background-color:rgba(0,0,0,.8);z-index:9999;-webkit-user-select:none;-moz-user-select:none;user-select:none}.elementor-editor-active .elementor-popup-modal{background-color:initial}.dialog-type-alert .dialog-widget-content,.dialog-type-confirm .dialog-widget-content{margin:auto;width:400px;padding:20px}.dialog-type-alert .dialog-header,.dialog-type-confirm .dialog-header{font-size:15px;font-weight:500}.dialog-type-alert .dialog-header:after,.dialog-type-confirm .dialog-header:after{content:"";display:block;border-block-end:var(--e-a-border);padding-block-end:10px;margin-block-end:10px;margin-inline-start:-20px;margin-inline-end:-20px}.dialog-type-alert .dialog-message,.dialog-type-confirm .dialog-message{min-height:50px}.dialog-type-alert .dialog-buttons-wrapper,.dialog-type-confirm .dialog-buttons-wrapper{padding-block-start:10px;display:flex;justify-content:flex-end;gap:15px}.dialog-type-alert .dialog-buttons-wrapper .dialog-button,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button{font-size:12px;font-weight:500;line-height:1.2;padding:8px 16px;outline:none;border:none;border-radius:var(--e-a-border-radius);background-color:var(--e-a-btn-bg);color:var(--e-a-btn-color-invert);transition:var(--e-a-transition-hover)}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:hover,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:hover{border:none}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:focus,.dialog-type-alert .dialog-buttons-wrapper .dialog-button:hover,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:focus,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:hover{background-color:var(--e-a-btn-bg-hover);color:var(--e-a-btn-color-invert)}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:active,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:active{background-color:var(--e-a-btn-bg-active)}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:not([disabled]),.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:not([disabled]){cursor:pointer}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:disabled,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:disabled{background-color:var(--e-a-btn-bg-disabled);color:var(--e-a-btn-color-disabled)}.dialog-type-alert .dialog-buttons-wrapper .dialog-button:not(.elementor-button-state) .elementor-state-icon,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button:not(.elementor-button-state) .elementor-state-icon{display:none}.dialog-type-alert .dialog-buttons-wrapper .dialog-button.dialog-cancel,.dialog-type-alert .dialog-buttons-wrapper .dialog-button.e-btn-txt,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button.dialog-cancel,.dialog-type-confirm .dialog-buttons-wrapper .dialog-button.e-btn-txt{background:transparent;color:var(--e-a-color-txt)}.dialog-type-alert .dialog-buttons-wrapper .dialog-button.dialog-cancel:focus,.dialog-type-alert .dialog-buttons-wrapper .dialog-button.dialog-cancel:hover,.dialog-type-alert .dialog-buttons-wrapper .dialog-button.e-btn-txt:focus,.dialog-type-alert .dialog-buttons-wrapper .dialog-