.home-page{min-height:100vh;background:#fafafa}.retreats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;margin:2rem 0}.retreat-card{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 12px #0000001a;text-decoration:none;color:inherit;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}.retreat-card:hover{transform:translateY(-8px);box-shadow:0 8px 24px #00000026}.retreat-card h3{color:var(--primary-purple);margin-bottom:.75rem;font-size:1.5rem}.retreat-dates{color:#666;font-size:.95rem;margin-bottom:1rem;font-weight:600}.retreat-description{color:#555;line-height:1.6;margin-bottom:1.5rem;flex-grow:1}.retreat-card .btn{margin-top:auto}@media (max-width: 768px){.retreats-grid{grid-template-columns:1fr}}.booking-form{max-width:600px}.form-title{color:var(--primary-purple);margin-bottom:1.5rem;font-size:1.75rem}.booking-summary{background:var(--light-pink);padding:1.5rem;border-radius:12px;margin-bottom:2rem}.booking-summary h3{color:var(--primary-purple);margin:0 0 .5rem;font-size:1.25rem}.booking-summary .option-name{color:#666;margin:0 0 1rem;font-size:1rem}.price-breakdown{margin-top:1rem;padding-top:1rem;border-top:2px solid rgba(139,71,137,.2)}.price-row{display:flex;justify-content:space-between;padding:.5rem 0;color:#333}.price-row.discount{color:var(--success);font-weight:600}.price-row.total{padding-top:1rem;margin-top:.5rem;border-top:1px solid rgba(139,71,137,.2);font-weight:600;font-size:1.1rem}.price-row.final{background:#fff;padding:1rem;margin:1rem -.5rem 0;border-radius:8px;font-size:1.25rem;font-weight:700;color:var(--primary-purple)}.final-price{color:var(--primary-purple)}.price-note{margin-top:.5rem;padding:.75rem;background:#fff;border-radius:8px;font-size:.9rem;color:#666;text-align:center}.card-element-wrapper{padding:1rem;border:2px solid var(--border);border-radius:8px;background:#fff;transition:border-color .3s ease}.card-element-wrapper:focus-within{border-color:var(--primary-purple)}.radio-group label.radio-option{display:flex;align-items:flex-start;padding:1rem;border:2px solid var(--border);border-radius:8px;margin-bottom:1rem;cursor:pointer;transition:all .3s ease}.radio-group label.radio-option:hover{border-color:var(--primary-purple);background:var(--light-pink)}.radio-group label.radio-option input[type=radio]{margin-right:1rem;margin-top:.25rem;flex-shrink:0}.radio-group label.radio-option input[type=radio]:checked{accent-color:var(--primary-purple)}.radio-group label.radio-option input[type=radio]:checked+div{color:var(--primary-purple)}.radio-description{font-size:.9rem;color:#666;margin-top:.25rem}.discount-badge{background:gold;color:#333;padding:.25rem .5rem;border-radius:8px;font-size:.75rem;font-weight:700;margin-left:.5rem}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid #eee}.form-actions button{flex:1}@media (max-width: 768px){.booking-summary{padding:1rem}.price-row.final{font-size:1.1rem}.form-title{font-size:1.5rem}}.room-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.room-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.room-image{width:100%;height:250px;overflow:hidden;background:#f0f0f0}.room-image img{width:100%;height:100%;object-fit:cover}.room-content{padding:1.5rem}.room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.room-name{font-size:1.5rem;color:var(--primary-purple);margin:0}.room-floor{background:var(--light-pink);color:var(--primary-purple);padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600}.room-description{color:#666;line-height:1.6;margin-bottom:1.5rem}.room-options{margin-top:1.5rem}.options-title{font-size:1.1rem;color:var(--dark-gray);margin-bottom:1rem;font-weight:600}.room-option{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border:2px solid #eee;border-radius:12px;margin-bottom:1rem;transition:all .3s ease;gap:1.5rem}.room-option:hover:not(.sold-out){border-color:var(--primary-purple);background:var(--light-pink)}.room-option.sold-out{opacity:.6;background:#f9f9f9}.option-info{flex:1}.option-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.option-name{font-weight:600;font-size:1.1rem;color:var(--dark-gray)}.option-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.option-badge.private{background:#e8f5e9;color:#2e7d32}.option-badge.semi-private{background:#fff3e0;color:#e65100}.option-badge.shared{background:#e3f2fd;color:#1565c0}.option-description{color:#666;font-size:.9rem;margin:.5rem 0}.option-details{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.75rem}.detail-item{font-size:.875rem;color:#666;display:flex;align-items:center;gap:.25rem}.detail-item.availability{color:var(--success);font-weight:600}.option-action{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.option-price{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.original-price{font-size:.9rem;color:#999;text-decoration:line-through}.current-price{font-size:1.75rem;font-weight:700;color:var(--primary-purple)}.discount-badge{background:gold;color:#333;padding:.25rem .5rem;border-radius:8px;font-size:.75rem;font-weight:700}.btn-sold-out{background:#999;color:#fff;cursor:not-allowed}@media (max-width: 768px){.room-option{flex-direction:column;align-items:stretch}.option-action{align-items:stretch}.option-price{align-items:flex-start;flex-direction:row;justify-content:space-between}.room-image{height:200px}.room-name{font-size:1.25rem}}.retreat-page{min-height:100vh;background:#fafafa}.retreat-description{background:#fff;padding:2rem;border-radius:12px;margin:2rem 0;box-shadow:0 2px 8px #0000001a}.retreat-description p{line-height:1.8;font-size:1.1rem;color:#555}.early-bird-badge{background:linear-gradient(135deg,gold,orange);color:#fff;padding:.75rem 1.5rem;border-radius:25px;display:inline-block;margin-top:1rem;font-weight:600;box-shadow:0 4px 12px #ffd7004d}.section-title{font-size:2rem;color:var(--primary-purple);margin-bottom:2rem;text-align:center}.rooms-grid{display:grid;gap:2rem;margin-bottom:3rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:2rem;box-shadow:0 8px 32px #0000004d}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:#999;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.modal-close:hover{background:#f0f0f0;color:#333}.info-section{background:#fff;padding:2rem;border-radius:12px;margin:2rem 0;box-shadow:0 2px 8px #0000001a}.info-section h3{color:var(--primary-purple);margin-bottom:1rem;font-size:1.5rem}.info-section ul{list-style:none;padding:0}.info-section li{padding:.75rem 0;border-bottom:1px solid #eee;line-height:1.6}.info-section li:last-child{border-bottom:none}.info-section strong{color:var(--primary-purple)}@media (max-width: 768px){.modal-content{padding:1.5rem;max-height:95vh}.section-title{font-size:1.5rem}.retreat-description{padding:1.5rem}}.admin-login{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--primary-purple) 0%,var(--primary-pink) 100%)}.login-container{background:#fff;padding:3rem;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:400px;width:100%;margin:1rem}.login-container h1{color:var(--primary-purple);margin-bottom:2rem;text-align:center}.full-width{width:100%}.login-note{margin-top:2rem;padding-top:2rem;border-top:1px solid #eee;text-align:center;color:#666;font-size:.875rem;line-height:1.6}.admin-dashboard{min-height:100vh;background:#f5f5f5}.admin-header{background:linear-gradient(135deg,var(--primary-purple) 0%,var(--primary-pink) 100%);color:#fff;padding:1.5rem 0;box-shadow:0 2px 8px #0000001a}.admin-header .container{display:flex;justify-content:space-between;align-items:center}.admin-header h1{margin:0;font-size:1.75rem}.admin-tabs{display:flex;gap:1rem;margin:2rem 0;border-bottom:2px solid #ddd}.tab-button{padding:1rem 2rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:600;color:#666;transition:all .3s ease}.tab-button:hover{color:var(--primary-purple)}.tab-button.active{color:var(--primary-purple);border-bottom-color:var(--primary-purple)}.admin-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.content-header h2{margin:0;color:var(--primary-purple)}.table-container{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;margin:1rem 0}.admin-table th{background:var(--light-pink);color:var(--primary-purple);padding:1rem;text-align:left;font-weight:600;border-bottom:2px solid var(--primary-purple)}.admin-table td{padding:1rem;border-bottom:1px solid #eee}.admin-table tbody tr:hover{background:#f9f9f9}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600;text-transform:uppercase}.status-badge.active,.status-badge.confirmed{background:#e8f5e9;color:#2e7d32}.status-badge.pending{background:#fff3e0;color:#e65100}.status-badge.cancelled,.status-badge.deleted{background:#ffebee;color:#c62828}.btn-small{padding:.5rem 1rem;font-size:.875rem;background:var(--primary-purple);color:#fff;border:none;border-radius:6px;cursor:pointer;margin-right:.5rem;transition:all .3s ease}.btn-small:hover{background:var(--primary-pink)}.setup-instructions{margin-top:3rem;padding:2rem;background:var(--light-pink);border-radius:12px}.setup-instructions h3{color:var(--primary-purple);margin-bottom:1rem}.setup-instructions ol{margin-left:1.5rem;line-height:2}.setup-instructions p{margin-top:1rem;color:#666;font-style:italic}@media (max-width: 768px){.admin-header .container{flex-direction:column;gap:1rem;align-items:stretch}.content-header{flex-direction:column;align-items:stretch;gap:1rem}.admin-tabs{flex-direction:column;border-bottom:none}.tab-button{border-bottom:2px solid #ddd;border-left:3px solid transparent;text-align:left}.tab-button.active{border-left-color:var(--primary-purple)}}:root{--primary-purple: #8B4789;--primary-pink: #E91E8C;--light-pink: #F5E6F3;--dark-gray: #333;--light-gray: #f5f5f5;--white: #ffffff;--border: #ddd;--success: #4CAF50;--error: #f44336}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--dark-gray);background-color:var(--white)}.App{min-height:100vh}.header{background:linear-gradient(135deg,var(--primary-purple) 0%,var(--primary-pink) 100%);color:#fff;padding:2rem 1rem;text-align:center}.header h1{font-size:2.5rem;margin-bottom:.5rem}.header p{font-size:1.1rem;opacity:.95}.container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.btn{padding:.75rem 2rem;font-size:1rem;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:600}.btn-primary{background:linear-gradient(135deg,var(--primary-purple) 0%,var(--primary-pink) 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b478966}.btn-secondary{background:#fff;color:var(--primary-purple);border:2px solid var(--primary-purple)}.btn-secondary:hover{background:var(--light-pink)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--error);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;margin-bottom:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--dark-gray)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:2px solid var(--border);border-radius:8px;font-size:1rem;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-purple)}.form-group.error input,.form-group.error textarea,.form-group.error select{border-color:var(--error)}.error-message{color:var(--error);font-size:.875rem;margin-top:.25rem}.radio-group{display:flex;flex-direction:column;gap:1rem}.radio-option{display:flex;align-items:center;padding:1rem;border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .3s ease}.radio-option:hover{border-color:var(--primary-purple);background:var(--light-pink)}.radio-option input[type=radio]{margin-right:1rem;width:20px;height:20px;cursor:pointer}.radio-option.selected{border-color:var(--primary-purple);background:var(--light-pink)}.radio-option.disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;gap:2rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.loading{display:flex;justify-content:center;align-items:center;min-height:200px}.spinner{border:4px solid var(--light-gray);border-top:4px solid var(--primary-purple);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.alert-info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}@media (max-width: 768px){.header h1{font-size:2rem}.container{padding:1rem}.grid-2{grid-template-columns:1fr}}
