.booking-code-input{display:flex;flex-direction:column;gap:4px}.booking-code-field{position:relative;display:flex;align-items:center}.booking-code-text-input{width:120px;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;text-transform:uppercase;transition:border-color .2s,box-shadow .2s}.booking-code-text-input:focus{outline:none;border-color:#4a7c59;box-shadow:0 0 0 2px #4a7c5933}.booking-code-text-input.error{border-color:#d32f2f}.booking-code-text-input.valid{border-color:#4a7c59;background-color:#f0f7f1;padding-right:32px}.booking-code-text-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.booking-code-spinner{position:absolute;right:10px;width:16px;height:16px;border:2px solid #ddd;border-top-color:#4a7c59;border-radius:50%;animation:spin .8s linear infinite}.booking-code-clear{position:absolute;right:6px;width:20px;height:20px;padding:0;border:none;background:#999;color:#fff;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.booking-code-clear:hover{background:#666}.booking-code-error{font-size:11px;color:#d32f2f;max-width:120px}.booking-code-event-badge{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#e8f5e9;border:1px solid #4a7c59;border-radius:4px;font-size:12px;color:#2e7d32;max-width:200px}.event-icon{color:#4a7c59;font-weight:700}.event-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.booking-code-text-input{width:100px}.booking-code-event-badge{max-width:150px}}.social-login-buttons{display:flex;flex-direction:column;gap:.75rem}.social-login-loading{text-align:center;color:#888;padding:1rem}.social-login-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.social-login-btn:hover{background:#f5f5f5;border-color:#ccc}.social-login-btn svg{flex-shrink:0}.social-login-google{color:#333}.social-login-facebook{color:#1877f2}.social-login-apple{color:#000}.social-login-apple:hover{background:#f0f0f0}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.auth-modal{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 4px 20px #0003}.auth-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.auth-modal-close:hover{background:#f0f0f0;color:#333}.auth-modal h2{margin:0 0 1.5rem;font-size:1.5rem;color:#333}.auth-description{color:#666;font-size:.9rem;margin-bottom:1.5rem;line-height:1.5}.auth-error{background:#ffebee;color:#c62828;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;font-weight:500;color:#333}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4a7c59;box-shadow:0 0 0 3px #4a7c591a}.form-hint{display:block;font-size:.8rem;color:#888;margin-top:.25rem}.form-row .form-group{flex:1}.code-input{font-size:1.5rem!important;letter-spacing:.5rem;text-align:center;font-family:monospace}.btn-primary{width:100%;padding:.875rem;background:#4a7c59;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:.5rem}.btn-primary:hover:not(:disabled){background:#3d6a4a}.btn-primary:disabled{background:#a5c4b0;cursor:not-allowed}.link-button{background:none;border:none;color:#4a7c59;cursor:pointer;font-size:.9rem;padding:.5rem 0;text-decoration:underline}.link-button:hover{color:#3d6a4a}.auth-divider{display:flex;align-items:center;margin:1.5rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#ddd}.auth-divider span{padding:0 1rem;color:#888;font-size:.85rem}.auth-switch{text-align:center;margin-top:1.5rem;color:#666;font-size:.9rem}@media (max-width: 480px){.auth-modal{padding:1.5rem;margin:.5rem}.form-row{flex-direction:column;gap:0}}.cart-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end}.cart-drawer{width:100%;max-width:420px;background:#fff;height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000001a;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.cart-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #eee}.cart-drawer-header h2{margin:0;font-size:1.25rem;color:#333}.cart-close-btn{background:none;border:none;font-size:1.5rem;color:#666;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.cart-close-btn:hover{background:#f0f0f0}.cart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.cart-empty-icon{font-size:3rem;margin-bottom:1rem}.cart-empty p{margin:.25rem 0;color:#666}.cart-empty-hint{font-size:.9rem;color:#999!important}.cart-items{flex:1;overflow-y:auto;padding:1rem}.cart-item{display:flex;gap:1rem;padding:1rem;background:#f9f9f9;border-radius:8px;margin-bottom:.75rem}.cart-item-image{width:80px;height:80px;border-radius:6px;overflow:hidden;flex-shrink:0}.cart-item-image img{width:100%;height:100%;object-fit:cover}.cart-item-details{flex:1;min-width:0}.cart-item-details h4{margin:0 0 .25rem;font-size:.95rem;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-alias{font-size:.85rem;color:#4a7c59;font-weight:500;margin:0 0 .25rem}.cart-item-dates{font-size:.8rem;color:#666;margin:0 0 .125rem}.cart-item-nights{font-size:.8rem;color:#888;margin:0}.cart-item-event-badge{display:inline-block;font-size:.7rem;padding:2px 6px;background:#e8f5e9;color:#2e7d32;border-radius:4px;margin-top:.25rem}.cart-item-price{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}.cart-item-subtotal{font-size:1rem;font-weight:600;color:#333}.cart-item-rate{font-size:.75rem;color:#888}.cart-item-remove{background:none;border:none;color:#d32f2f;font-size:.8rem;cursor:pointer;padding:.25rem 0}.cart-item-remove:hover{text-decoration:underline}.cart-summary{padding:1rem 1.5rem;border-top:1px solid #eee;background:#f9f9f9}.cart-summary-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.9rem;color:#666}.cart-summary-row.total{font-size:1.1rem;font-weight:600;color:#333;border-top:1px solid #ddd;padding-top:.75rem;margin-top:.5rem}.cart-tax-note{font-size:.75rem;color:#888;text-align:center;margin:.5rem 0 0}.cart-actions{padding:1rem 1.5rem;display:flex;gap:.75rem;border-top:1px solid #eee}.cart-clear-btn{flex:1;padding:.75rem;background:#fff;border:1px solid #ddd;border-radius:8px;font-size:.9rem;color:#666;cursor:pointer;transition:background-color .2s}.cart-clear-btn:hover{background:#f5f5f5}.cart-checkout-btn{flex:2;padding:.75rem;background:#4a7c59;border:none;border-radius:8px;font-size:.9rem;font-weight:600;color:#fff;cursor:pointer;transition:background-color .2s}.cart-checkout-btn:hover{background:#3d6a4a}@media (max-width: 480px){.cart-drawer{max-width:100%}.cart-item{flex-wrap:wrap}.cart-item-image{width:60px;height:60px}.cart-item-price{width:100%;flex-direction:row;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}}.navbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(135deg,#2c5530,#3d7c47);color:#fff;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:.75rem}.navbar-icon{font-size:1.75rem;height:40px;width:auto;animation:glow 5s ease-in-out infinite}.navbar-title{font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap}.navbar-search{display:flex;align-items:center;gap:1rem;background:#ffffff1a;padding:.5rem 1rem;border-radius:8px}.search-field{display:flex;flex-direction:column;gap:.25rem}.search-field label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;opacity:.9}.search-field input,.search-field select{padding:.5rem .75rem;border:none;border-radius:4px;font-size:.9rem;background:#fff;color:#333;cursor:pointer}.search-field input[type=date]{min-width:140px}.search-field select{min-width:120px}.search-field input:focus,.search-field select:focus{outline:2px solid #f39c12;outline-offset:1px}.site-type-field label{display:flex;align-items:center;gap:.25rem}.site-type-info{cursor:help;opacity:.8;font-size:.85rem;transition:opacity .2s}.site-type-info:hover{opacity:1}.min-nights-warning{background:#ffc107e6;color:#856404;padding:.5rem .75rem;border-radius:4px;font-size:.8rem;font-weight:500;max-width:200px;line-height:1.3;animation:pulse-warning 2s ease-in-out infinite}@keyframes pulse-warning{0%,to{box-shadow:0 0 #ffc10766}50%{box-shadow:0 0 0 4px #ffc10700}}.navbar-actions{display:flex;align-items:center;gap:.75rem}.cart-button{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#1ce5e2e1;border:1px solid rgba(255,255,255,.2);border-radius:50%;cursor:pointer;transition:background-color .2s}.cart-button:hover{background:#fff3}.cart-icon{font-size:1.1rem}.cart-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;background:#f39c12;color:#fff;border-radius:9px;font-size:.7rem;font-weight:600;display:flex;align-items:center;justify-content:center}.sign-in-button{padding:.5rem 1.25rem;background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.sign-in-button:hover{background:#ffffff4d}.user-menu-container{position:relative}.user-menu-button{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;cursor:pointer;transition:background-color .2s}.user-menu-button:hover{background:#fff3}.user-avatar{width:28px;height:28px;background:#4a7c59;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;text-transform:uppercase}.user-name{font-size:.9rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow{font-size:.6rem;opacity:.7}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;z-index:200;overflow:hidden}.user-dropdown-header{padding:.75rem 1rem;background:#f5f5f5;display:flex;flex-direction:column;gap:.125rem}.user-dropdown-header strong{color:#333;font-size:.9rem}.user-dropdown-header span{color:#666;font-size:.8rem}.user-dropdown-divider{height:1px;background:#e0e0e0}.user-dropdown-item{display:block;padding:.75rem 1rem;color:#333;text-decoration:none;font-size:.9rem;transition:background-color .2s;border:none;background:none;width:100%;text-align:left;cursor:pointer}.user-dropdown-item:hover{background:#f5f5f5}.user-dropdown-item.logout{color:#d32f2f}.mobile-search-summary,.mobile-search-handle{display:none}@media (max-width: 900px){.navbar{flex-direction:column;gap:.75rem;padding:.75rem 1rem}.navbar-search{width:100%;justify-content:center;flex-wrap:wrap}.mobile-search-summary{display:none;width:100%;padding:.6rem 1rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff;cursor:pointer;align-items:center;justify-content:center;gap:.75rem;transition:background-color .2s}.mobile-search-summary:hover{background:#ffffff40}.mobile-search-dates{font-weight:600;font-size:.95rem}.mobile-search-nights{opacity:.85;font-size:.85rem}.mobile-search-edit{margin-left:auto;background:#fff3;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.mobile-search-handle{display:flex;justify-content:center;align-items:center;width:100%;padding:.5rem 0 .25rem;cursor:pointer;margin-bottom:.25rem}.mobile-search-handle .handle-bar{width:40px;height:4px;background:#fff6;border-radius:2px;transition:background-color .2s}.mobile-search-handle:hover .handle-bar,.mobile-search-handle:active .handle-bar{background:#ffffffb3}.navbar:has(.navbar-search.mobile-collapsed) .mobile-search-summary{display:flex}.navbar-search.mobile-collapsed{display:none}}@media (max-width: 500px){.navbar-title{font-size:1rem}.search-field input[type=date],.search-field select{min-width:100px;font-size:.85rem}}@keyframes glow{0%,to{filter:drop-shadow(0 0 5px rgba(255,255,255,.4))}50%{filter:drop-shadow(0 0 20px rgba(255,255,255,.9)) drop-shadow(0 0 30px rgba(243,156,18,.6))}}.campground-map{display:flex;flex-direction:column;background:#f8f9fa;position:absolute;top:0;left:0;right:0;bottom:0}.map-container{position:relative;flex:1;min-height:0;max-height:calc(100vh - 200px);overflow:hidden}.map-image{width:100%;height:100%;object-fit:contain;background:#fff}.map-section{position:absolute;background:#2c553026;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.map-section:hover{background:#2c553059;border-color:#2c5530;transform:scale(1.02)}.map-section.active{background:#f39c1259;border-color:#f39c12;box-shadow:0 0 20px #f39c1280;transform:scale(1.02)}.section-label{font-size:.75rem;font-weight:700;color:#2c5530;background:#fffffff2;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.section-count{font-size:.6rem;font-weight:600;color:#fff;background:#27ae60e6;padding:2px 6px;border-radius:10px}.map-section.active .section-label{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.map-section.active .section-count{background:#ffffffe6;color:#2c5530}.map-section.riverfront{top:2%;left:10%;width:80%;height:12%}.map-section.grizzly{top:50%;left:5%;width:35%;height:40%}.map-section.forest{top:30%;left:45%;width:35%;height:25%}.map-section.grove{top:30%;left:70%;width:25%;height:35%}.map-section.treeline{top:20%;left:30%;width:20%;height:20%}.map-section.crescent{top:45%;left:25%;width:25%;height:20%}.section-buttons{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:linear-gradient(to bottom,#f8f9fa,#fff);border-top:1px solid #e0e0e0}.section-btn{display:flex;flex-direction:column;align-items:center;padding:.6rem 1rem;border:2px solid #e0e0e0;border-radius:16px;background:#fff;cursor:pointer;transition:all .25s ease;flex:1;min-width:85px;box-shadow:0 2px 4px #0000000d}.section-btn:hover{border-color:#2c5530;background:linear-gradient(to bottom,#f0f7f0,#fff);transform:translateY(-2px);box-shadow:0 4px 12px #2c553026}.section-btn.active{border-color:#f39c12;background:linear-gradient(to bottom,#fff8e6,#fffdf5);box-shadow:0 4px 12px #f39c1240}.section-btn.all{background:linear-gradient(to bottom,#f5f5f5,#eee)}.section-btn.all.active{background:linear-gradient(135deg,#2c5530,#3d7c47);border-color:#2c5530;color:#fff;box-shadow:0 4px 12px #2c55304d}.btn-icon{font-size:1.25rem;margin-bottom:2px}.btn-name{font-size:.7rem;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.3px}.section-btn.all.active .btn-name{color:#fff}.btn-count{font-size:.6rem;color:#27ae60;font-weight:600;margin-top:2px;background:#27ae601a;padding:1px 6px;border-radius:8px}.section-btn.all .btn-count{display:none}.section-btn.active .btn-count{background:#f39c1233;color:#e67e22}.map-svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.map-svg-overlay polygon,.map-svg-overlay circle,.map-svg-overlay ellipse,.map-svg-overlay rect{transition:all .3s ease}.map-svg-overlay polygon:hover,.map-svg-overlay circle:hover,.map-svg-overlay ellipse:hover,.map-svg-overlay rect:hover{fill:#2c553059!important;stroke:#2c5530!important}.map-section-label{display:flex;flex-direction:column;align-items:center;gap:2px;z-index:10}.map-section-label:hover .section-label{transform:scale(1.05)}.map-section-label.active .section-label{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.map-section-label.active .section-count{background:#ffffffe6;color:#2c5530}@media (max-width: 768px){.section-buttons{padding:.75rem;gap:.4rem}.section-btn{padding:.5rem .6rem;min-width:70px;border-radius:12px}.btn-icon{font-size:1.1rem}.btn-name{font-size:.6rem}.section-label{font-size:.65rem;padding:3px 8px}.section-count{font-size:.55rem}}.site-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;container-type:inline-size}.site-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 32px #00000026}.site-card.unavailable{opacity:.7;cursor:not-allowed}.site-card.unavailable:hover{transform:none;box-shadow:0 2px 8px #00000014}.site-card-image{position:relative;height:140px;overflow:hidden}.site-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.site-card:hover .site-card-image img{transform:scale(1.05)}.popular-badge{position:absolute;top:12px;right:-30px;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;padding:4px 40px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;transform:rotate(45deg);box-shadow:0 2px 4px #0003;z-index:5}.favorite-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border:none;background:#ffffffe6;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:transform .2s ease,background .2s ease;z-index:10;box-shadow:0 2px 4px #0000001a}.favorite-btn:hover{transform:scale(1.15);background:#fff}.favorite-btn.active{animation:heartPop .3s ease}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.availability-tag{position:absolute;bottom:8px;right:8px;padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600}.availability-tag.available{background:#27ae60f2;color:#fff}.site-card-badges{position:absolute;top:8px;left:8px;display:flex;gap:6px}.badge{padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.badge.site-alias{background:#000000b3;color:#fff}.badge.site-type{background:#2c5530;color:#fff}.badge.site-type.tent{background:#3498db}.badge.site-type.cabin{background:#9b59b6}.unavailable-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center}.unavailable-overlay span{color:#fff;font-weight:600;font-size:.9rem;background:#e74c3ce6;padding:6px 12px;border-radius:4px}.unavailable-overlay.seasonal span{background:#228b22e6}.site-card-content{padding:1rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.site-card-title{font-size:1rem;font-weight:600;color:#333;margin:0}.site-card-description{font-size:.85rem;color:#666;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.site-max-length{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#666;margin:.5rem 0;padding:.25rem .5rem;background:#f5f5f5;border-radius:4px;width:fit-content}.max-length-icon{font-size:.9rem}.site-card-amenities{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}.amenity-tag{font-size:.65rem;padding:3px 6px;background:#e8f5e9;color:#2c5530;border-radius:4px;font-weight:500}.amenity-tag.more{background:#f5f5f5;color:#666}.site-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee}.site-card-price{display:flex;align-items:baseline;gap:2px}.price-amount{font-size:1rem;font-weight:700;color:#2c5530}.price-unit{font-size:.7rem;color:#888}.site-card-action{display:flex;flex-direction:column;align-items:center;gap:6px}.site-number-badge{width:48px;height:48px;background:linear-gradient(135deg,#2c5530,#3d7c47);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;box-shadow:0 4px 12px #2c55304d;border:3px solid white}.view-details-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.view-details-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f39c1266}.view-details-btn:active:not(:disabled){transform:translateY(0)}.view-details-btn:disabled{background:#ccc;cursor:not-allowed}.add-to-cart-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#4a7c59,#3d6a4a);color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.add-to-cart-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4a7c5966}.add-to-cart-btn:active{transform:translateY(0)}.add-to-cart-btn.in-cart{background:linear-gradient(135deg,#d32f2f,#b71c1c)}.add-to-cart-btn.in-cart:hover{box-shadow:0 4px 12px #d32f2f66}@media (max-width: 480px){.site-card-image{height:120px}.site-card-content{padding:.75rem}.site-card-title{font-size:.9rem}.site-card-description{font-size:.8rem}.popular-badge{font-size:.6rem;padding:3px 35px;right:-32px;top:10px}}@container (max-width: 300px){.site-card-image{height:110px}.site-card-content{padding:.65rem;gap:.35rem}.site-card-title{font-size:.85rem}.site-card-description{font-size:.7rem;-webkit-line-clamp:2}.amenity-tag{font-size:.6rem;padding:2px 5px}.site-card-footer{margin-top:.5rem;padding-top:.5rem}.price-amount{font-size:.8rem}.site-number-badge{width:38px;height:38px;font-size:.85rem}.view-details-btn,.add-to-cart-btn{padding:.35rem .6rem;font-size:.65rem}.popular-badge{font-size:.55rem;padding:3px 32px}.badge{font-size:.6rem;padding:3px 6px}}@container (max-width: 220px){.site-card-image{height:90px}.site-card-description,.site-card-amenities{display:none}}.site-card-list{display:flex;flex-direction:column;height:100%;background:#f5f5f5}.list-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#fff;border-bottom:1px solid #e0e0e0;position:sticky;top:0;z-index:10}.list-title{font-size:1.1rem;font-weight:600;color:#333;margin:0;display:flex;align-items:center;gap:.5rem}.site-range{font-size:.85rem;font-weight:400;color:#666}.list-count{font-size:.8rem;color:#666;background:#f0f0f0;padding:4px 10px;border-radius:12px}.cards-container{flex:1;overflow-y:auto;padding:1rem;display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;align-content:start;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.cards-container>.site-card{height:fit-content}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#666}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state p{margin:0;font-size:1rem}.empty-hint{font-size:.85rem!important;color:#999;margin-top:.5rem!important}.unavailable-divider{grid-column:1 / -1;display:flex;align-items:center;gap:1rem;padding:.5rem 0;color:#999;font-size:.8rem}.unavailable-divider:before,.unavailable-divider:after{content:"";flex:1;height:1px;background:#ddd}.unavailable-divider span{white-space:nowrap}.loading-more{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;color:#888;font-size:.85rem}.loading-more .loading-spinner{width:18px;height:18px;border:2px solid #ddd;border-top-color:#888;border-radius:50%;animation:spin .8s linear infinite}.cards-container::-webkit-scrollbar{width:8px}.cards-container::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.cards-container::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.cards-container::-webkit-scrollbar-thumb:hover{background:#bbb}@media (max-width: 1024px){.cards-container{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.list-header{padding:.75rem 1rem}.list-title{font-size:1rem}.cards-container{padding:.75rem;gap:.75rem;grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.cards-container{grid-template-columns:1fr}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:#00000080;color:#fff;font-size:1.5rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease;line-height:1}.modal-close:hover{background:#000000b3;transform:scale(1.1)}.modal-image{position:relative;height:240px}.modal-image img{width:100%;height:100%;object-fit:cover}.photo-gallery-dots{position:absolute;bottom:50px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:5}.gallery-dot{width:10px;height:10px;border-radius:50%;border:2px solid white;background:transparent;cursor:pointer;transition:all .2s ease;padding:0}.gallery-dot:hover{background:#ffffff80}.gallery-dot.active{background:#fff;transform:scale(1.2)}.modal-popular-badge{position:absolute;top:12px;left:12px;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;padding:6px 14px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 12px #f39c1266;z-index:5}.modal-badges{position:absolute;bottom:12px;left:12px;display:flex;gap:8px;flex-wrap:wrap}.modal-badges .badge{padding:6px 12px;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase;box-shadow:0 2px 4px #0003}.modal-badges .site-alias{background:#000c;color:#fff}.modal-badges .site-type{background:#2c5530;color:#fff}.modal-badges .site-type.tent{background:#3498db}.modal-badges .site-type.cabin{background:#9b59b6}.modal-badges .section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-body{padding:1.5rem;position:relative}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.modal-title{font-size:1.5rem;font-weight:700;color:#333;margin:0;flex:1}.modal-site-number{width:72px;height:72px;background:linear-gradient(135deg,#2c5530,#3d7c47);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;box-shadow:0 6px 20px #2c553066;border:4px solid white;flex-shrink:0;margin-top:-36px}.availability-status{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:25px;font-size:.9rem;font-weight:600;margin-bottom:1rem}.availability-status .status-icon{font-size:1rem}.availability-status.available{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32;border:1px solid #a5d6a7}.availability-status.unavailable{background:linear-gradient(135deg,#ffebee,#ffcdd2);color:#c62828;border:1px solid #ef9a9a}.modal-description{font-size:1rem;color:#555;line-height:1.6;margin:0 0 1.5rem}.modal-section{margin-bottom:1.5rem}.modal-section h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:#888;margin:0 0 .75rem;font-weight:600}.amenities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.amenity-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#333;background:#f8f9fa;padding:8px 12px;border-radius:8px}.amenity-icon{color:#27ae60;font-weight:700;font-size:.85rem}.specs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.spec-item{display:flex;flex-direction:column;gap:2px;background:#f8f9fa;padding:12px;border-radius:8px}.spec-label{font-size:.7rem;color:#888;text-transform:uppercase;font-weight:600}.spec-value{font-size:1.1rem;font-weight:700;color:#333}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;border-top:1px solid #eee;margin-top:.5rem}.modal-price{display:flex;flex-direction:column}.modal-price .price-amount{font-size:2rem;font-weight:800;color:#2c5530;line-height:1}.modal-price .price-unit{font-size:.85rem;color:#888;margin-top:2px}.reserve-btn{padding:1rem 1.5rem;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 15px #f39c1266}.reserve-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #f39c1280}.reserve-btn:active:not(:disabled){transform:translateY(0)}.reserve-btn-text{font-size:1rem;font-weight:700}.reserve-btn-subtext{font-size:.75rem;opacity:.9;margin-top:2px}.reserve-btn:disabled{background:linear-gradient(135deg,#bdc3c7,#95a5a6);cursor:not-allowed;box-shadow:none}@media (max-width: 500px){.modal-content{margin:0;max-height:100vh;border-radius:0}.modal-image{height:200px}.modal-body{padding:1rem}.modal-title{font-size:1.25rem}.modal-footer{flex-direction:column;gap:1rem;align-items:stretch}.modal-price{flex-direction:row;align-items:baseline;gap:.5rem;justify-content:center}.modal-price .price-amount{font-size:1.5rem}.reserve-btn{text-align:center}.amenities-grid{grid-template-columns:1fr}}.landing-page{display:flex;flex-direction:column;flex:1;min-height:0}.landing-content{display:flex;flex:1;min-height:0;overflow:hidden}.map-panel{flex:1;min-width:0;display:flex;flex-direction:column;border-right:1px solid #e0e0e0;contain:strict;position:relative}.cards-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}@media (min-width: 1200px){.map-panel,.cards-panel{flex:1}}@media (min-width: 769px) and (max-width: 1199px){.map-panel{flex:0 0 45%}.cards-panel{flex:0 0 55%}}@media (max-width: 768px){.landing-content{flex-direction:column}.map-panel{flex:0 0 auto;border-right:none;border-bottom:1px solid #e0e0e0;contain:layout style}.campground-map{position:static}.map-container{display:none}.cards-panel{flex:1;min-height:0}}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:#666}.loading-spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#2c5530;border-radius:50%;animation:spin 1s linear infinite}.error-container button{padding:.5rem 1.5rem;background:#2c5530;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.error-container button:hover{background:#3d7c47}.dates-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem;color:#666;padding:2rem;text-align:center}.dates-prompt-icon{font-size:2.5rem}.dates-prompt-text{font-size:1.1rem;line-height:1.5;margin:0;max-width:300px}.profile-page{min-height:calc(100vh - 80px);background:#f5f5f5;padding:2rem 1rem}.profile-container{max-width:800px;margin:0 auto}.profile-container h1{margin:0 0 2rem;font-size:1.75rem;color:#333}.profile-unauthenticated{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.profile-unauthenticated h2{margin:0 0 .5rem;color:#333}.profile-unauthenticated p{color:#666}.profile-error{background:#ffebee;color:#c62828;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.profile-success{background:#e8f5e9;color:#2e7d32;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.profile-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000001a}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.profile-section h2{margin:0;font-size:1.1rem;color:#333}.edit-btn{padding:.5rem 1rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background-color .2s}.edit-btn:hover{background:#3d6a4a}.profile-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.profile-info-item{display:flex;flex-direction:column;gap:.25rem}.profile-info-item label{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.profile-info-item span{font-size:1rem;color:#333}.profile-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-group.full-width{grid-column:1 / -1}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:disabled{background:#f9f9f9;color:#666;cursor:not-allowed}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee}.cancel-btn{padding:.75rem 1.5rem;background:#fff;color:#666;border:1px solid #ddd;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background-color .2s}.cancel-btn:hover{background:#f5f5f5}.save-btn{padding:.75rem 1.5rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.save-btn:hover:not(:disabled){background:#3d6a4a}.save-btn:disabled{background:#a5c4b0;cursor:not-allowed}@media (max-width: 600px){.profile-page{padding:1rem}.profile-form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:1}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.form-actions{flex-direction:column}.cancel-btn,.save-btn{width:100%}}.reservations-page{min-height:calc(100vh - 80px);background:#f5f5f5;padding:2rem 1rem}.reservations-container{max-width:900px;margin:0 auto}.reservations-container h1{margin:0 0 1.5rem;font-size:1.75rem;color:#333}.reservations-unauthenticated{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.reservations-unauthenticated h2{margin:0 0 .5rem;color:#333}.reservations-unauthenticated p{color:#666}.reservations-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e0e0e0;padding-bottom:0}.tab{padding:.75rem 1.25rem;background:none;border:none;font-size:.9rem;font-weight:500;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.tab:hover{color:#4a7c59}.tab.active{color:#4a7c59;border-bottom-color:#4a7c59}.reservations-error{background:#ffebee;color:#c62828;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.reservations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#666}.reservations-empty{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.empty-icon{font-size:3rem;display:block;margin-bottom:1rem}.reservations-empty p{color:#666;margin:0}.reservations-list{display:flex;flex-direction:column;gap:1rem}.reservation-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.reservation-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#f9f9f9;border-bottom:1px solid #eee}.confirmation-code{display:flex;flex-direction:column;gap:.125rem}.confirmation-code .label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.confirmation-code .code{font-size:1.1rem;font-weight:600;color:#333;font-family:monospace}.created-at{font-size:.75rem;color:#999;margin-top:.25rem}.status-badge{padding:.5rem 1.25rem;border-radius:20px;font-size:1rem;font-weight:600;text-transform:capitalize}.badge-upcoming{background:#e3f2fd;color:#1565c0}.badge-active{background:#e8f5e9;color:#2e7d32}.badge-past{background:#f5f5f5;color:#666}.reservation-details{padding:1.5rem}.reservation-dates{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.date-item{display:flex;flex-direction:column;gap:.125rem}.date-item .label{font-size:.75rem;color:#888;text-transform:uppercase}.date-item .value{font-size:.95rem;color:#333;font-weight:500}.date-separator{color:#ccc;font-size:1.25rem}.reservation-sites{margin-bottom:1rem}.reservation-sites .label{display:block;font-size:.75rem;color:#888;text-transform:uppercase;margin-bottom:.5rem}.sites-list{display:flex;flex-wrap:wrap;gap:.5rem}.site-badge{display:inline-block;padding:.375rem .75rem;background:#e8f5e9;color:#2e7d32;border-radius:6px;font-size:.85rem;font-weight:500}.reservation-summary{display:flex;gap:2rem;padding-top:1rem;border-top:1px solid #eee}.summary-item{display:flex;flex-direction:column;gap:.125rem}.summary-item .label{font-size:.75rem;color:#888;text-transform:uppercase}.summary-item .value{font-size:1rem;color:#333}.summary-item .value.total{font-weight:600;color:#4a7c59}.reservation-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;background:#f9f9f9;border-top:1px solid #eee}.view-details-btn{padding:.5rem 1rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background-color .2s}.view-details-btn:hover{background:#3d6a4a}.modify-btn,.cancel-btn{padding:.5rem 1rem;background:#fff;border:1px solid #ddd;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background-color .2s,border-color .2s}.modify-btn:hover{background:#f5f5f5;border-color:#ccc}.cancel-btn{color:#d32f2f;border-color:#ffcdd2}@media (max-width: 600px){.reservations-page{padding:1rem}.reservations-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{padding:.5rem .75rem;font-size:.85rem;white-space:nowrap}.reservation-header{padding:1rem;flex-direction:column;align-items:flex-start;gap:.75rem}.reservation-details{padding:1rem}.reservation-dates{flex-direction:column;align-items:flex-start}.date-separator{transform:rotate(90deg);margin:0}.reservation-summary{gap:1rem}.reservation-actions{flex-direction:column;padding:1rem}.reservation-actions button,.reservation-actions a{width:100%;text-align:center}}.reservation-detail-page{min-height:calc(100vh - 80px);background:#f5f5f5;padding:2rem 1rem}.reservation-detail-container{max-width:800px;margin:0 auto}.back-button{display:inline-flex;align-items:center;padding:.5rem 1rem;background:#fff;border:1px solid #ddd;border-radius:6px;font-size:.9rem;color:#555;cursor:pointer;margin-bottom:1.5rem;transition:background-color .2s}.back-button:hover{background:#f5f5f5}.reservation-unauthenticated,.reservation-loading{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.reservation-loading{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#4a7c59;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.small{width:20px;height:20px;border-width:2px}.reservation-error{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px}.reservation-success{background:#e8f5e9;color:#2e7d32;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.detail-header h1{margin:0 0 .5rem;font-size:1.5rem;color:#333}.confirmation-code-display{display:flex;flex-direction:column;gap:.25rem}.confirmation-code-display .label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.confirmation-code-display .code{font-size:1.25rem;font-weight:600;color:#4a7c59;font-family:monospace}.status-badge{padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:capitalize}.badge-upcoming,.badge-confirmed{background:#e3f2fd;color:#1565c0}.badge-active,.badge-in_progress{background:#e8f5e9;color:#2e7d32}.badge-past,.badge-completed{background:#f5f5f5;color:#666}.badge-cancelled{background:#ffebee;color:#c62828}.detail-section{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.detail-section h2{margin:0 0 1rem;font-size:1.1rem;color:#333;padding-bottom:.75rem;border-bottom:1px solid #eee}.sites-grid{display:grid;gap:1rem}.site-detail-card{background:#f9f9f9;padding:1rem;border-radius:8px;border:1px solid #eee}.site-name{font-size:1.1rem;font-weight:600;color:#333;margin-bottom:.75rem}.site-dates{display:flex;flex-direction:column;gap:.5rem}.date-row{display:flex;gap:.5rem}.date-row .label{font-size:.85rem;color:#888;min-width:80px}.date-row .value{font-size:.85rem;color:#333}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item .label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.info-item .value{font-size:1rem;color:#333}.payment-summary{display:flex;flex-direction:column;gap:.75rem}.payment-row{display:flex;justify-content:space-between;font-size:.95rem;color:#555}.payment-row.discount{color:#2e7d32}.payment-row.total{padding-top:.75rem;border-top:1px solid #eee;font-size:1.1rem;font-weight:600;color:#333}.payment-status{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;display:flex;gap:.5rem;align-items:center}.payment-status .label{font-size:1.1rem;color:#888}.payment-status .status{font-size:1.1rem;font-weight:600;text-transform:capitalize}.payment-status .status.paid{color:#2e7d32}.payment-status .status.pending{color:#f57c00}.payment-status .status.refunded{color:#1565c0}.detail-actions{display:flex;gap:1rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.modify-btn{flex:1;padding:.75rem 1.5rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s}.modify-btn:hover{background:#3d6a4a}.cancel-btn{flex:1;padding:.75rem 1.5rem;background:#fff;color:#d32f2f;border:1px solid #ffcdd2;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.cancel-btn:hover{background:#ffebee;border-color:#ef9a9a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.modal-header h2{margin:0;font-size:1.25rem;color:#333}.modal-close{background:none;border:none;font-size:1.5rem;color:#888;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#333}.modal-body{padding:1.5rem}.modal-body>p{margin:0 0 1rem;color:#555}.modal-error{background:#ffebee;color:#c62828;padding:.75rem 1rem;border-radius:6px;margin-top:1rem;font-size:.9rem}.modal-footer{display:flex;gap:1rem;padding:1rem 1.5rem;border-top:1px solid #eee;background:#f9f9f9}.cancel-modal-btn{flex:1;padding:.75rem 1rem;background:#fff;color:#666;border:1px solid #ddd;border-radius:6px;font-size:.9rem;cursor:pointer}.cancel-modal-btn:hover:not(:disabled){background:#f5f5f5}.confirm-btn{flex:1;padding:.75rem 1rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.confirm-btn:hover:not(:disabled){background:#3d6a4a}.confirm-btn:disabled,.cancel-modal-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-cancel-btn{flex:1;padding:.75rem 1rem;background:#d32f2f;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.confirm-cancel-btn:hover:not(:disabled){background:#b71c1c}.confirm-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;color:#555;font-weight:500}.preview-btn{width:100%;padding:.75rem 1rem;background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.preview-btn:hover:not(:disabled){background:#c8e6c9}.preview-btn:disabled{opacity:.6;cursor:not-allowed}.modification-preview,.cancellation-preview{background:#f9f9f9;padding:1rem;border-radius:8px;margin-top:1rem}.modification-preview h3,.cancellation-policy h3{margin:0 0 .75rem;font-size:.95rem;color:#333}.preview-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.9rem;color:#555}.preview-row.total{border-top:1px solid #ddd;margin-top:.5rem;padding-top:.75rem;font-weight:600;color:#333}.preview-row .refund{color:#2e7d32}.cancellation-policy{margin-bottom:1rem}.cancellation-policy p{margin:0;font-size:.9rem;color:#555;background:#fff3e0;padding:.75rem;border-radius:6px;border:1px solid #ffe0b2}.cancel-warning{margin:1rem 0 0;font-size:.9rem;color:#d32f2f;font-weight:500}.loading-inline{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;color:#666}@media (max-width: 600px){.reservation-detail-page{padding:1rem}.detail-header{flex-direction:column;gap:1rem}.detail-actions,.modal-footer{flex-direction:column}.date-inputs{grid-template-columns:1fr}}.insurance-selection{padding:12px;max-width:800px;margin:0 auto}.insurance-header{text-align:center;margin-bottom:12px}.insurance-icon{font-size:32px;margin-bottom:6px}.insurance-header h2{margin:0 0 4px;color:#1a1a2e;font-size:20px}.insurance-subtitle{color:#666;font-size:14px;margin:0}.booking-summary-mini{background:#f8f9fa;border-radius:6px;padding:10px 12px;margin-bottom:12px}.summary-row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px;border-bottom:1px solid #e9ecef}.summary-row:last-child{border-bottom:none}.summary-row.total{font-weight:600;font-size:16px;color:#1a1a2e;padding-top:8px;margin-top:2px;border-top:2px solid #dee2e6;border-bottom:none}.insurance-options{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.insurance-option{display:flex;gap:12px;padding:12px 14px;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.insurance-option:hover{border-color:#4a7c59;background:#f8fff8}.insurance-option.selected{border-color:#4a7c59;background:#f0f8f0;box-shadow:0 2px 8px #4a7c5926}.insurance-option.decline.selected{border-color:#6c757d;background:#f8f9fa;box-shadow:none}.option-radio{flex-shrink:0;padding-top:1px}.radio-circle{width:20px;height:20px;border:2px solid #ccc;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.radio-circle.checked{border-color:#4a7c59}.insurance-option.decline .radio-circle.checked{border-color:#6c757d}.radio-dot{width:10px;height:10px;background:#4a7c59;border-radius:50%}.insurance-option.decline .radio-dot{background:#6c757d}.option-content{flex:1}.option-title{font-weight:600;font-size:15px;color:#1a1a2e;margin-bottom:4px}.option-description{color:#666;font-size:13px;line-height:1.4}.coverage-list{margin:6px 0 0;padding-left:18px;color:#4a7c59}.coverage-list li{margin-bottom:2px;font-size:13px}.allianz-iframe-container{margin:12px 0;border:1px solid #e9ecef;border-radius:8px;overflow:hidden;background:#fff}.iframe-header{background:#003781;color:#fff;padding:10px 14px}.iframe-header h3{margin:0 0 2px;font-size:15px}.iframe-header p{margin:0;font-size:13px;opacity:.9}.allianz-iframe{width:100%;height:500px;border:none;display:block}.iframe-note{display:flex;flex-direction:column;gap:6px;padding:12px 16px;margin:0;background:linear-gradient(135deg,#fff3cd,#ffe69c);color:#664d03;font-size:13px;line-height:1.4;border-bottom:3px solid #ffca2c;box-shadow:0 2px 8px #ffc10766}.iframe-note-line{display:flex;align-items:center;gap:8px}.iframe-note-icon{font-size:16px;flex-shrink:0}.iframe-note strong{color:#4a7c59;background:#e8f5e9;padding:1px 6px;border-radius:3px}.iframe-note-line:first-child strong{color:#856404;background:none;padding:0}.insurance-actions{display:flex;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid #e9ecef}.insurance-actions .skip-btn{padding:12px 32px;background:#6c757d;border:none;border-radius:6px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:120px}.insurance-actions .skip-btn:hover{background:#5a6268}.insurance-actions .continue-btn{padding:12px 32px;background:#2c5530;border:none;border-radius:6px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:120px}.insurance-actions .continue-btn:hover:not(:disabled){background:#1e3d22;transform:translateY(-1px);box-shadow:0 4px 8px #2c55304d}.insurance-actions .continue-btn:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 600px){.insurance-selection{padding:10px}.insurance-option{padding:10px 12px}.option-title{font-size:14px}.allianz-iframe{height:450px}.insurance-actions{flex-direction:column;gap:8px}.insurance-actions .skip-btn,.insurance-actions .continue-btn{width:100%;padding:10px}}.booking-confirmation{max-width:700px;margin:0 auto;padding:20px}.confirmation-banner{text-align:center;padding:40px 20px;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-radius:12px;margin-bottom:24px}.success-icon{width:80px;height:80px;margin:0 auto 20px;background:#10b981;border-radius:50%;display:flex;align-items:center;justify-content:center}.success-icon svg{width:48px;height:48px;color:#fff}.confirmation-banner h1{margin:0 0 12px;font-size:2rem;color:#065f46}.confirmation-message{margin:0;color:#047857;font-size:1.1rem}.confirmation-code-box{background:linear-gradient(135deg,#1e3a5f,#2c5530);color:#fff;padding:24px;border-radius:12px;text-align:center;margin-bottom:16px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.code-label{font-size:.9rem;opacity:.9;text-transform:uppercase;letter-spacing:1px}.code-value{font-size:2rem;font-weight:700;font-family:monospace;letter-spacing:2px}.copy-btn{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.copy-btn:hover{background:#ffffff4d}.email-notice{text-align:center;color:#6b7280;font-size:.95rem;margin-bottom:32px}.email-notice strong{color:#374151}.insurance-section{margin-bottom:32px}.booking-details{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;margin-bottom:24px}.booking-details h2{margin:0;padding:20px 24px;font-size:1.25rem;color:#1f2937;background:#f9fafb;border-bottom:1px solid #e5e7eb}.detail-section{padding:20px 24px;border-bottom:1px solid #e5e7eb}.detail-section:last-child{border-bottom:none}.detail-section h3{margin:0 0 16px;font-size:1rem;color:#374151;font-weight:600}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:.95rem;color:#1f2937;font-weight:500}.detail-value.mono{font-family:monospace;font-size:.85rem}.detail-value.status-succeeded{color:#059669;font-weight:600}.detail-value.status-pending{color:#d97706}.fee-breakdown{display:flex;flex-direction:column;gap:8px}.fee-row{display:flex;justify-content:space-between;font-size:.95rem;color:#4b5563}.fee-row.total{margin-top:12px;padding-top:12px;border-top:2px solid #e5e7eb;font-size:1.1rem;font-weight:600;color:#1f2937}.confirmation-actions{display:flex;gap:16px;justify-content:center}.action-btn{padding:14px 32px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;min-width:180px}.action-btn.primary{background:#2c5530;color:#fff}.action-btn.primary:hover{background:#1e3d22;transform:translateY(-1px);box-shadow:0 4px 12px #2c55304d}.action-btn.secondary{background:#fff;color:#374151;border:2px solid #d1d5db}.action-btn.secondary:hover{background:#f9fafb;border-color:#9ca3af}@media (max-width: 640px){.booking-confirmation{padding:16px}.confirmation-banner{padding:30px 16px}.confirmation-banner h1{font-size:1.5rem}.success-icon{width:60px;height:60px}.success-icon svg{width:36px;height:36px}.confirmation-code-box{padding:20px}.code-value{font-size:1.5rem}.copy-btn{position:static;transform:none;margin-top:8px}.detail-grid{grid-template-columns:1fr}.confirmation-actions{flex-direction:column}.action-btn{width:100%}}.payment-failed{max-width:700px;margin:0 auto;padding:20px}.payment-failed-banner{text-align:center;padding:40px 20px;background:linear-gradient(135deg,#fef2f2,#fecaca);border:2px solid #f87171;border-radius:12px;margin-bottom:24px}.payment-failed-banner .error-icon{width:80px;height:80px;margin:0 auto 20px;background:#dc2626;border-radius:50%;display:flex;align-items:center;justify-content:center}.payment-failed-banner .error-icon svg{width:48px;height:48px;color:#fff}.payment-failed-banner h1{margin:0 0 12px;font-size:2rem;color:#991b1b}.payment-failed-banner .error-reason{margin:0;color:#b91c1c;font-size:1.1rem;font-weight:500}.payment-failed-info{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:20px 24px;margin-bottom:24px}.payment-failed-info p{margin:0 0 8px;color:#92400e;font-size:.95rem;line-height:1.5}.payment-failed-info p:last-child{margin-bottom:0}.payment-failed-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.payment-failed-actions .retry-btn{width:100%;max-width:400px;padding:14px 24px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s}.payment-failed-actions .retry-btn:hover{background:#1d4ed8}.payment-failed-actions .cancel-btn{width:100%;max-width:400px;padding:12px 24px;background:transparent;color:#6b7280;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;cursor:pointer;transition:background .2s,color .2s}.payment-failed-actions .cancel-btn:hover{background:#f3f4f6;color:#374151}.party-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.party-modal{background:#fff;border-radius:12px;width:100%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.party-modal-header{padding:24px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.party-modal-header h2{margin:0 0 4px;font-size:1.5rem;color:#1f2937}.header-subtitle{margin:0;color:#6b7280;font-size:.9rem}.party-modal-body{flex:1;overflow-y:auto;padding:24px}.loading-message{text-align:center;padding:20px;color:#6b7280}.site-party-section{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:24px;overflow:hidden}.site-party-section:last-child{margin-bottom:0}.site-party-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#1e3a5f,#2c5530);color:#fff}.site-party-header h3{margin:0;font-size:1.1rem}.adults-badge{background:#fff3;padding:4px 12px;border-radius:20px;font-size:.85rem}.party-subsection{padding:20px;border-bottom:1px solid #e5e7eb}.party-subsection:last-child{border-bottom:none}.party-subsection h4{margin:0 0 16px;font-size:1rem;color:#374151;font-weight:600}.subsection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.subsection-header h4{margin:0}.add-vehicle-actions{display:flex;gap:8px}.camper-row{margin-bottom:16px}.camper-label{display:block;font-weight:500;color:#374151;margin-bottom:8px;font-size:.9rem}.camper-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.camper-inputs.single{grid-template-columns:1fr auto}.camper-inputs input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.camper-inputs input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.camper-inputs input:disabled{background:#f3f4f6}.checkbox-label{display:flex;align-items:center;gap:8px;margin-top:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb}.checkbox-label span{font-size:.85rem;color:#6b7280}.same-as-holder{margin-top:8px}.other-campers{margin-top:12px;padding-top:12px;border-top:1px dashed #e5e7eb}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:16px}.form-row:last-child{margin-bottom:0}.form-group label{font-weight:500;color:#374151;font-size:.85rem}.form-group input,.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.checkbox-inline{flex-direction:row;align-items:center}.checkbox-inline label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-inline input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb}.save-option{margin-top:12px;padding-top:12px;border-top:1px dashed #e5e7eb}.vehicle-entry{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:16px;margin-bottom:12px}.vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.vehicle-header span{font-weight:500;color:#374151}.add-btn{padding:8px 16px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.remove-btn{padding:6px 12px;background:#fee2e2;color:#dc2626;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.remove-btn:hover{background:#fecaca}.empty-message{color:#9ca3af;font-style:italic;font-size:.9rem;margin:0}.validation-error{background:#fef2f2;border:1px solid #f87171;color:#b91c1c;padding:12px 20px;margin:0 24px 16px;border-radius:6px;font-weight:500}.party-modal-footer{display:flex;justify-content:space-between;padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb}.back-btn,.continue-btn{padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.back-btn{background:#6b7280;color:#fff}.back-btn:hover{background:#5a6268}.continue-btn{background:#2c5530;color:#fff}.continue-btn:hover{background:#1e3d22}@media (max-width: 640px){.party-modal-overlay{padding:10px}.party-modal{max-height:95vh}.party-modal-header,.party-modal-body,.party-modal-footer{padding:16px}.form-row,.camper-inputs{grid-template-columns:1fr}.site-party-header{flex-direction:column;gap:8px;align-items:flex-start}.subsection-header{flex-direction:column;align-items:flex-start;gap:12px}.add-vehicle-actions{width:100%;flex-direction:column}.add-vehicle-actions select,.add-vehicle-actions button{width:100%}.party-modal-footer{flex-direction:column-reverse;gap:12px}.back-btn,.continue-btn{width:100%}}.agreement-tool{display:flex;flex-direction:column;max-width:800px;margin:0 auto;padding:.75rem}.agreement-header{margin-bottom:1rem}.agreement-header h2{margin:0 0 .5rem;color:#2c5530;font-size:1.5rem}.agreement-subtitle{margin:0;color:#666;font-size:.95rem}.agreement-content{flex:1;background:#f8f9fa;border-radius:8px;padding:1.25rem;border:1px solid #e9ecef;max-height:400px;overflow-y:auto;margin-bottom:1rem}.agreement-section{margin-bottom:1.5rem}.agreement-section:last-child{margin-bottom:0}.agreement-section h3{color:#2c5530;font-size:1.1rem;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #dee2e6}.agreement-section p{color:#333;font-size:.95rem;line-height:1.6;margin:0}.agreement-section ul{margin:0;padding-left:1.5rem;color:#333}.agreement-section ul li{font-size:.95rem;line-height:1.6;margin-bottom:.5rem}.agreement-section ul li:last-child{margin-bottom:0}.agreement-footer{background:#fff;padding-top:1rem;border-top:1px solid #e9ecef}.agreement-checkbox-container{margin-bottom:1rem}.agreement-checkbox-label{display:flex;align-items:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.95rem;color:#333}.agreement-checkbox{margin-right:.75rem;margin-top:.2rem;width:18px;height:18px;cursor:pointer;flex-shrink:0;accent-color:#2c5530}.scroll-hint{color:#856404;background:#fff3cd;padding:.5rem .75rem;border-radius:6px;font-size:.85rem;margin:0 0 1rem;text-align:center}.agreement-actions{display:flex;justify-content:space-between;gap:1rem}.agreement-actions .back-btn{padding:12px 24px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.agreement-actions .back-btn:hover{background:#5a6268}.agreement-actions .agree-btn{padding:12px 32px;background:#2c5530;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;flex:1;max-width:200px}.agreement-actions .agree-btn:hover:not(:disabled){background:#1e3d22;transform:translateY(-1px);box-shadow:0 4px 8px #2c55304d}.agreement-actions .agree-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}@media (max-width: 768px){.agreement-tool{padding:.5rem}.agreement-header h2{font-size:1.3rem}.agreement-content{max-height:350px;padding:1rem}.agreement-section h3{font-size:1rem}.agreement-section p,.agreement-section ul li{font-size:.9rem}.agreement-actions{flex-direction:column-reverse}.agreement-actions .back-btn,.agreement-actions .agree-btn{width:100%;max-width:none}}.policy-reminder-content{padding:.75rem;max-width:800px;margin:0 auto}.policy-reminder-content h3{margin:0 0 1rem;color:#2c5530;font-size:1.2rem}.policy-reminder-content>p{margin:0 0 1rem;color:#666;font-size:.9rem}.policy-list{background:#f8f9fa;border-radius:8px;padding:.75rem;margin-bottom:.75rem}.policy-item{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.policy-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.policy-checkbox-label{display:flex;align-items:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none}.policy-checkbox{margin-right:.5rem;margin-top:.15rem;width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#2c5530}.policy-text{font-size:.9rem;line-height:1.4;color:#333}.policy-checkbox:checked+.policy-text{color:#2c5530;font-weight:500}.required-indicator{color:#dc3545;margin-left:2px}.policy-reminder-actions{display:flex;justify-content:space-between;gap:16px;margin-top:.75rem}.policy-reminder-actions .back-btn{padding:12px 24px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.policy-reminder-actions .back-btn:hover{background:#5a6268}.policy-reminder-actions .agree-btn{padding:12px 32px;font-size:1rem;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500;min-width:120px;background:#2c5530;color:#fff;border:none}.policy-reminder-actions .agree-btn:hover:not(:disabled){background:#1e3d22;transform:translateY(-1px);box-shadow:0 4px 8px #2c55304d}.policy-reminder-actions .agree-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.policy-warning{margin-top:.5rem;padding:.5rem;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;text-align:center}.policy-warning p{margin:0;color:#856404;font-size:.85rem;font-weight:500}@media (max-width: 768px){.policy-reminder-content{padding:.5rem}.policy-reminder-content h3{font-size:1.1rem}.policy-list{padding:.5rem}.policy-text{font-size:.85rem}.policy-reminder-actions{flex-direction:column-reverse}.policy-reminder-actions .back-btn,.policy-reminder-actions .agree-btn{width:100%}}.payment-form-container{background:#fff;width:100%;height:100%;overflow-y:auto;position:relative;display:flex;flex-direction:column}.gateway-loading{text-align:center;padding:40px 20px}.gateway-loading .loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.payment-gateway-info{background:linear-gradient(135deg,#e8f5e8,#f0f8ff);border:1px solid #d4edda;border-radius:6px;padding:12px 16px;margin-bottom:20px;text-align:center}.payment-gateway-info small{color:#155724;font-size:.9rem}.order-summary{background-color:#f8f9fa;border-radius:4px;padding:12px 16px;margin-bottom:16px}.order-summary h4{margin:0 0 12px;color:#333;font-size:1rem;font-weight:600;padding-bottom:8px;border-bottom:1px solid #e5e5e5}.summary-details{display:flex;flex-direction:column;gap:4px}.summary-item{display:flex;justify-content:space-between;padding:2px 0;font-size:.875rem}.summary-item.fee-item{color:#666;font-size:.8rem}.summary-item.total{border-top:1px solid #dee2e6;margin-top:8px;padding-top:8px;font-size:1rem;font-weight:600}.fee-breakdown-section{margin-top:8px}.breakdown-group{margin-bottom:12px;padding-bottom:10px;border-bottom:1px dashed #e0e0e0}.breakdown-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.site-label{font-weight:700;color:#2c3e50;margin-bottom:4px;font-size:.9rem}.payment-form{display:flex;flex-direction:column;gap:16px}.form-section{display:flex;flex-direction:column;gap:12px}.form-section h4{margin:0;color:#333;font-size:1rem;padding-bottom:8px;border-bottom:1px solid #e5e5e5}.form-group{display:flex;flex-direction:column;gap:4px}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form-group label{font-weight:500;color:#333;font-size:.875rem}.form-group input,.form-group select{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:.95rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-group input.error,.form-group select.error{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-text{color:#dc3545;font-size:.8rem;margin-top:4px}.error-message{background-color:#f8d7da;color:#721c24;padding:16px;border-radius:6px;border:1px solid #f5c6cb;margin-bottom:16px}.error-content{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.error-icon{width:24px;height:24px;background:#dc3545;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.error-title{font-weight:600;font-size:1rem;margin-bottom:4px}.error-details{font-size:.9rem;line-height:1.4}.error-actions{display:flex;gap:8px;justify-content:flex-end}.retry-payment-btn,.dismiss-error-btn{padding:8px 16px;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.retry-payment-btn{background:#007bff;color:#fff}.retry-payment-btn:hover{background:#0056b3}.dismiss-error-btn{background:#6c757d;color:#fff}.dismiss-error-btn:hover{background:#5a6268}.contact-display{background-color:#f1f3f4;border-radius:4px;padding:12px 16px;border-left:3px solid #007bff}.contact-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem}.contact-label{font-weight:500;color:#555;min-width:60px}.contact-value{color:#333;font-weight:400;text-align:right}.save-card-group{background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid #e9ecef;border-radius:6px;padding:12px;margin-top:8px}.save-card-group .checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:400}.save-card-group .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#007bff}.save-card-group .checkbox-text{font-weight:500;color:#333;font-size:.9rem}.save-card-description{font-size:.8rem;color:#666;margin:8px 0 0 28px;line-height:1.4}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid #e5e5e5}.back-btn,.pay-btn{padding:12px 32px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;min-width:120px}.back-btn{background:#6c757d;color:#fff;border:none;margin-right:auto}.back-btn:hover:not(:disabled){background:#5a6268}.pay-btn{background:#2c5530;color:#fff;border:none}.pay-btn:hover:not(:disabled){background:#1e3d22;transform:translateY(-1px);box-shadow:0 4px 8px #2c55304d}.back-btn:disabled,.pay-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.saved-cards-section{margin-bottom:20px}.payment-method-options{display:flex;flex-direction:column;gap:10px}.saved-card-option,.new-card-option{display:flex;align-items:center;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.saved-card-option:hover,.new-card-option:hover{border-color:#3b82f6;background:#f8fafc}.saved-card-option.selected,.new-card-option.selected{border-color:#3b82f6;background:#eff6ff}.saved-card-option input[type=radio],.new-card-option input[type=radio]{margin-right:12px;width:18px;height:18px;accent-color:#3b82f6}.card-info{flex:1;display:flex;align-items:center;gap:8px}.card-brand{font-weight:600;color:#374151;min-width:60px}.card-number{color:#6b7280;font-family:monospace}.default-badge{background:#10b981;color:#fff;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.card-expiry{color:#9ca3af;font-size:.85rem}.new-card-option span{font-weight:500;color:#374151}@media (max-width: 768px){.form-row{grid-template-columns:1fr;gap:12px}.form-actions{flex-direction:column-reverse}.back-btn,.pay-btn{width:100%}.back-btn{margin-right:0}}@media (max-width: 480px){.order-summary,.form-section{margin-bottom:16px}.summary-item{font-size:.9rem}.saved-card-option,.new-card-option{flex-wrap:wrap;padding:10px 12px}.card-info{flex-wrap:wrap}.card-expiry{width:100%;margin-top:4px;margin-left:30px}}.checkout-page{min-height:calc(100vh - 80px);background:#f5f5f5;padding:2rem 1rem}.checkout-container{max-width:700px;margin:0 auto}.checkout-timer{background:#ecfdf5;border:1px solid #10b981;padding:12px 20px;border-radius:8px;text-align:center;margin-bottom:16px;font-size:.95rem;color:#065f46}.checkout-timer strong{font-weight:600;font-variant-numeric:tabular-nums}.checkout-timer.warning{background:#fef2f2;border-color:#f87171;color:#b91c1c}.checkout-timer .timer-expired{font-weight:500}.checkout-progress{display:flex;align-items:center;justify-content:center;margin-bottom:2rem;padding:.75rem .5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.progress-step{display:flex;align-items:center;gap:.35rem;color:#888;white-space:nowrap}.progress-step.active{color:#4a7c59}.progress-step.active .step-number{background:#4a7c59;color:#fff}.step-number{width:24px;height:24px;border-radius:50%;background:#e0e0e0;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem;flex-shrink:0}.step-label{font-size:.8rem;font-weight:500}.progress-line{width:20px;height:2px;background:#e0e0e0;margin:0 .4rem;flex-shrink:0}.checkout-step{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.checkout-step h1{margin:0 0 1.5rem;font-size:1.5rem;color:#333}.checkout-error{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1rem}.checkout-empty{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.checkout-empty h2{margin:0 0 .5rem;color:#333}.checkout-empty p{color:#666;margin-bottom:1.5rem}.checkout-empty button{padding:.75rem 1.5rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer}.loading-fees{display:flex;flex-direction:column;align-items:center;padding:3rem;color:#666}.loading-spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#4a7c59;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.review-items{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.review-item{display:flex;justify-content:space-between;padding:1rem;background:#f9f9f9;border-radius:8px}.item-info h3{margin:0 0 .25rem;font-size:1.1rem;color:#333}.item-type{font-size:.85rem;color:#666;margin:0 0 .5rem}.item-dates{font-size:.9rem;color:#555;margin:0 0 .25rem}.item-nights{font-size:.85rem;color:#888;margin:0}.item-occupancy{font-size:.875rem;color:#666;margin:.25rem 0 0}.item-overage-fees{margin-top:.5rem;padding:.5rem .75rem;background:#fff3e0;border-radius:4px;font-size:.875rem}.item-overage-fees .overage-line{color:#e65100;margin:.125rem 0}.item-price{font-size:1.1rem;font-weight:600;color:#333}.item-pricing{display:flex;flex-direction:column;gap:.5rem;min-width:140px;text-align:right}.item-base-price{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem;color:#333}.item-base-price span:last-child{font-weight:600}.item-additional-charges{display:flex;flex-direction:column;gap:.25rem}.additional-charge-row{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem;color:#e65100;padding:.25rem 0}.additional-charge-row span:first-child{text-align:left}.item-site-total{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem;font-weight:600;color:#333;padding-top:.5rem;margin-top:.25rem;border-top:1px solid #ddd}.fee-summary{border-top:1px solid #eee;padding-top:1rem;margin-bottom:1.5rem}.fee-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.95rem;color:#555}.fee-row.discount{color:#2e7d32}.fee-row.overage{color:#e65100}.fee-row.total{border-top:1px solid #eee;margin-top:.5rem;padding-top:1rem;font-size:1.1rem;font-weight:600;color:#333}.step-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee}.back-btn{padding:.75rem 1.5rem;background:#fff;color:#666;border:1px solid #ddd;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background .2s}.back-btn:hover{background:#f5f5f5}.next-btn,.submit-btn{padding:.75rem 2rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.next-btn:hover:not(:disabled),.submit-btn:hover:not(:disabled){background:#3d6a4a}.next-btn:disabled,.submit-btn:disabled{background:#a5c4b0;cursor:not-allowed}.add-sites-btn{padding:.75rem 1.5rem;background:#e3f2fd;color:#1565c0;border:1px solid #90caf9;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.add-sites-btn:hover{background:#bbdefb;border-color:#64b5f6}.start-over-btn{padding:.75rem 1.5rem;background:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background .2s,border-color .2s}.start-over-btn:hover{background:#ffe0b2;border-color:#ffb74d}.step-actions-secondary{display:flex;justify-content:center;margin-top:1rem;padding-top:1rem}.auth-notice{background:#e8f5e9;color:#2e7d32;padding:.75rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.9rem}.auth-required{background:#fff3e0;border:1px solid #ffcc80;border-radius:8px;padding:2rem;margin-bottom:1.5rem;text-align:center}.auth-required p{margin:0 0 1.5rem;color:#e65100;font-size:1.1rem}.auth-prompt-btn{padding:.75rem 2rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.auth-prompt-btn:hover{background:#3d6a4a}.auth-buttons{display:flex;gap:12px;justify-content:center;margin-top:8px}.auth-signin-btn{padding:12px 28px;background:#4a7c59;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.auth-signin-btn:hover{background:#3d6a4a}.auth-signup-btn{padding:12px 28px;background:#fff;color:#4a7c59;border:2px solid #4a7c59;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.auth-signup-btn:hover{background:#4a7c59;color:#fff}.customer-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:flex;gap:1rem}.form-group{flex:1;display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;font-weight:500;color:#555}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.form-group input:focus{outline:none;border-color:#4a7c59;box-shadow:0 0 0 3px #4a7c591a}.payment-options{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.payment-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:border-color .2s}.payment-option:hover{border-color:#ccc}.payment-option.selected{border-color:#4a7c59;background:#f8fdf9}.payment-option input{margin-top:.25rem}.option-content strong{display:block;color:#333;margin-bottom:.25rem}.option-content p{margin:0;font-size:.85rem;color:#666}.payment-summary{background:#f9f9f9;padding:1.5rem;border-radius:8px;margin-bottom:1rem}.payment-summary h3{margin:0 0 1rem;font-size:1rem;color:#333}.summary-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.95rem;color:#555}.summary-row.total{border-top:1px solid #ddd;margin-top:.5rem;padding-top:.75rem;font-weight:600;color:#333}.checkout-step.confirmation{text-align:center}.confirmation-icon{width:80px;height:80px;background:#4a7c59;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 1.5rem}.confirmation-message{font-size:1.1rem;color:#666;margin-bottom:2rem}.confirmation-code-box{background:#f5f5f5;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.confirmation-code-box .label{display:block;font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.confirmation-code-box .code{font-size:2rem;font-weight:700;color:#4a7c59;font-family:monospace}.confirmation-email{color:#666;margin-bottom:2rem}.confirmation-actions{display:flex;gap:1rem;justify-content:center}.primary-btn{padding:.75rem 1.5rem;background:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer}.primary-btn:hover{background:#3d6a4a}.secondary-btn{padding:.75rem 1.5rem;background:#fff;color:#4a7c59;border:1px solid #4a7c59;border-radius:6px;font-size:.95rem;cursor:pointer}.secondary-btn:hover{background:#f8fdf9}.progress-step.completed .step-number{background:#4a7c59;color:#fff}.progress-step.completed{color:#4a7c59}.progress-step.clickable{cursor:pointer;transition:transform .2s,opacity .2s}.progress-step.clickable:hover{transform:scale(1.05);opacity:.85}.progress-step.clickable:hover .step-number{box-shadow:0 2px 8px #4a7c594d}.step-description{color:#666;margin-bottom:1.5rem;font-size:.95rem}.occupancy-site-card{background:#f9f9f9;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:2px solid transparent;transition:border-color .2s}.occupancy-site-card.has-warning{border-color:#ff9800;background:#fff8e1}.site-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.site-header h3{margin:0;font-size:1.2rem;color:#333}.site-header .site-type{font-size:.85rem;color:#666;background:#e0e0e0;padding:.25rem .75rem;border-radius:4px}.occupancy-section{margin-bottom:1.5rem}.occupancy-section h4,.rv-question-section h4,.rv-details-section h4,.pv-section h4{margin:0 0 1rem;font-size:1rem;color:#333}.occupancy-inputs{display:flex;gap:2rem;flex-wrap:wrap}.occupancy-field{display:flex;flex-direction:column;gap:.5rem;min-width:100px}.occupancy-field label{font-size:.85rem;font-weight:500;color:#555}.number-input{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #ddd;border-radius:6px;padding:.25rem}.number-input button{width:32px;height:32px;border:none;background:#f0f0f0;border-radius:4px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.number-input button:hover:not(:disabled){background:#e0e0e0}.number-input button:disabled{opacity:.5;cursor:not-allowed}.number-input span{min-width:32px;text-align:center;font-weight:600;font-size:1.1rem}.fee-warning{font-size:.75rem;color:#ff9800;font-style:italic}.overage-fee-display{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem;padding:.5rem .75rem;background:#fff3e0;border-radius:4px;border-left:3px solid #ff9800}.overage-breakdown{font-size:.8rem;color:#e65100}.overage-total{font-size:.9rem;font-weight:600;color:#e65100}.rv-question-section{margin-bottom:1.5rem}.rv-toggle{display:flex;gap:1rem}.toggle-option{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:2px solid #ddd;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.toggle-option:hover{border-color:#4a7c59}.toggle-option.selected{border-color:#4a7c59;background:#f8fdf9;color:#4a7c59}.toggle-option input{display:none}.tent-only-notice{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:12px 16px;color:#92400e;font-weight:500;display:flex;align-items:center;gap:8px}.tent-only-notice:before{content:"⛺";font-size:1.2rem}.rv-details-section{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #e0e0e0}.rv-details-section .form-group select{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;background:#fff}.rv-details-section .form-group select:focus{outline:none;border-color:#4a7c59;box-shadow:0 0 0 3px #4a7c591a}.field-hint{font-size:.75rem;color:#888;margin-top:.25rem}.field-error{display:block;font-size:.75rem;color:#dc2626;margin-top:.25rem}.rv-length-warning{background:#fff3e0;color:#e65100;padding:.75rem 1rem;border-radius:6px;margin:1rem 0;font-size:.9rem}.pv-section{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h4{margin:0}.add-vehicle-btn{padding:.5rem 1rem;background:#4a7c59;color:#fff;border:none;border-radius:4px;font-size:.85rem;cursor:pointer;transition:background .2s}.add-vehicle-btn:hover:not(:disabled){background:#3d6a4a}.add-vehicle-btn:disabled{background:#a5c4b0;cursor:not-allowed}.no-vehicles{color:#888;font-style:italic;font-size:.9rem;margin:0}.pv-entry{background:#f9f9f9;padding:1rem;border-radius:6px;margin-bottom:1rem}.pv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:500;color:#333}.remove-vehicle-btn{padding:.25rem .75rem;background:transparent;color:#c62828;border:1px solid #c62828;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s}.remove-vehicle-btn:hover{background:#ffebee}@media (max-width: 600px){.checkout-page{padding:1rem}.checkout-progress{flex-wrap:wrap;gap:.5rem}.progress-line{display:none}.form-row,.step-actions{flex-direction:column}.back-btn,.next-btn,.submit-btn,.add-sites-btn,.start-over-btn{width:100%;text-align:center}.confirmation-actions{flex-direction:column}.occupancy-inputs{flex-direction:column;gap:1rem}.occupancy-field{flex-direction:row;align-items:center;justify-content:space-between}.rv-toggle{flex-direction:column}.toggle-option{justify-content:center}.site-header{flex-direction:column;align-items:flex-start;gap:.5rem}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.pv-header{flex-direction:column;align-items:flex-start;gap:.5rem}.review-item{flex-direction:column;gap:1rem}.item-pricing{width:100%;text-align:left;border-top:1px solid #e0e0e0;padding-top:1rem}}.insurance-prompt{margin-top:1.5rem;text-align:center}.insurance-prompt-btn{background:linear-gradient(135deg,#4a7c59,#3d6b4a);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #4a7c594d}.insurance-prompt-btn:hover{background:linear-gradient(135deg,#3d6b4a,#2f5439);transform:translateY(-1px);box-shadow:0 4px 12px #4a7c5966}.profile-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.profile-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.profile-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.profile-modal-header h2{margin:0;font-size:1.25rem;color:#1f2937}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;line-height:1;padding:4px}.close-btn:hover{color:#1f2937}.new-profile-notice{background:linear-gradient(135deg,#dbeafe,#e0e7ff);padding:16px 24px;border-bottom:1px solid #bfdbfe}.new-profile-notice p{margin:0;color:#1e40af;font-size:.95rem}.profile-tabs{display:flex;gap:0;border-bottom:1px solid #e5e7eb;background:#f9fafb}.tab-btn{flex:1;padding:12px 16px;border:none;background:transparent;font-size:.9rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.tab-btn:hover{color:#1f2937;background:#f3f4f6}.tab-btn.active{color:#2563eb;border-bottom-color:#2563eb;background:#fff}.profile-modal-body{padding:24px;overflow-y:auto;flex:1}.message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem}.message-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.error-message .message-icon{background:#dc2626;color:#fff}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.success-message .message-icon{background:#16a34a;color:#fff}.dismiss-btn{margin-left:auto;background:none;border:none;font-size:1.2rem;cursor:pointer;color:inherit;opacity:.7}.dismiss-btn:hover{opacity:1}.profile-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;color:#374151;font-size:.875rem}.form-group .required{color:#dc2626}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f3f4f6;cursor:not-allowed}.disabled-input{background:#f3f4f6!important;color:#6b7280}.help-text{color:#6b7280;font-size:.8rem}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.checkbox-group{margin-top:8px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:400!important}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#2563eb}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.cancel-btn,.save-btn,.add-btn,.edit-btn,.delete-btn{padding:10px 20px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.cancel-btn{background:#f3f4f6;color:#374151}.cancel-btn:hover:not(:disabled){background:#e5e7eb}.save-btn{background:#2563eb;color:#fff}.save-btn:hover:not(:disabled){background:#1d4ed8}.save-btn:disabled,.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.vehicles-section{display:flex;flex-direction:column;gap:16px}.section-header{display:flex;justify-content:space-between;align-items:center}.section-header h3{margin:0;font-size:1.1rem;color:#1f2937}.add-btn{background:#10b981;color:#fff;padding:8px 16px}.add-btn:hover{background:#059669}.loading-message,.empty-message{text-align:center;padding:40px 20px;color:#6b7280}.empty-message p{margin:8px 0}.vehicle-list{display:flex;flex-direction:column;gap:12px}.vehicle-card{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px}.vehicle-info h4{margin:0 0 4px;font-size:1rem;color:#1f2937}.vehicle-info p{margin:2px 0;font-size:.85rem;color:#6b7280}.vehicle-actions{display:flex;gap:8px}.edit-btn{background:#f3f4f6;color:#374151;padding:6px 12px}.edit-btn:hover{background:#e5e7eb}.delete-btn{background:#fef2f2;color:#dc2626;padding:6px 12px}.delete-btn:hover{background:#fee2e2}.vehicle-form{display:flex;flex-direction:column;gap:16px}.vehicle-form h3{margin:0 0 8px;font-size:1.1rem;color:#1f2937}@media (max-width: 640px){.profile-modal-overlay{padding:10px}.profile-modal{max-height:95vh}.profile-modal-header,.profile-modal-body{padding:16px}.form-row{grid-template-columns:1fr}.profile-tabs{flex-wrap:wrap}.tab-btn{flex:none;width:100%;text-align:center}.vehicle-card{flex-direction:column;align-items:flex-start;gap:12px}.vehicle-actions{width:100%}.vehicle-actions button{flex:1}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.app{display:flex;flex-direction:column;min-height:100vh;background:#f5f5f5}.app-loading,.app-error{justify-content:center;align-items:center}.loading-message{font-size:1.2rem;color:#666}.error-message{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:500px}.error-message h2{color:#d32f2f;margin-bottom:1rem}.error-message p{color:#666;margin-bottom:.5rem}.error-message code{background:#f5f5f5;padding:.25rem .5rem;border-radius:4px;font-family:monospace}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:#f5f5f5;color:#333;line-height:1.5}#root{min-height:100vh;display:flex;flex-direction:column}
