:root{color:#10233d;background:#f3f7fc;font-family:Inter,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;max-height:100%;overflow:hidden}@supports (height:100svh){html,body,#root{height:100svh;max-height:100svh}}body{margin:0}a{color:inherit}.page{overscroll-behavior:contain;justify-content:center;align-items:center;height:100%;min-height:0;padding:20px 14px;display:flex;overflow:auto}.login-shell{background:linear-gradient(135deg,#194893 0%,#f4f8ff 48%,#fdfefe 100%);height:100%;min-height:0;padding:0;overflow:hidden}.login-hero{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fffc;border-radius:0;grid-template-columns:1fr;height:100%;min-height:0;display:grid;overflow:auto;box-shadow:0 24px 48px #10233d2e}.login-hero-left{background-position:50%;background-size:cover;place-items:center;min-height:320px;padding:24px;display:grid;position:relative}.login-hero-left:after{content:"";background:linear-gradient(#ffffff38 0%,#ffffff70 100%);position:absolute;inset:0}.login-hero-brand{z-index:1;text-align:center;color:#10233d;max-width:280px;position:relative}.login-icon{object-fit:contain;width:100px;height:100px}.login-hero-brand h1{margin:12px 0 6px;font-size:clamp(28px,3.4vw,40px);line-height:1.1}.login-hero-brand p{color:#2d4767;margin:0;font-size:14px}.login-hero-right{background:radial-gradient(circle at 100% 0,#f7fbff 0%,#fff 65%);place-items:center;padding:24px 14px;display:grid}.login-panel{background:#fffffff5;border:1px solid #e2eaf6;border-radius:18px;width:min(100%,420px);padding:22px 18px;box-shadow:0 14px 30px #0e1e341f}.login-icon-panel{width:92px;height:92px;margin:0 auto 8px;display:block}.login-panel h2{text-align:center;color:#0f2b53;margin:0 0 14px;font-size:38px;line-height:1.1}.login-title-separator{width:72px;height:12px;margin:0 auto 12px;position:relative}.login-title-separator:before,.login-title-separator:after{content:"";background:#2d5ca8;width:24px;height:2px;position:absolute;top:50%;transform:translateY(-50%)}.login-title-separator:before{left:0}.login-title-separator:after{right:0}.login-title-separator{background:radial-gradient(circle,#f2b43f 0 3px,#0000 4px) 50% no-repeat}.login-panel-note{text-align:center;color:#4d6180;margin:14px 0 0;font-size:14px}.login-separator-wrap{width:170px;height:28px;margin:14px auto 6px;position:relative;overflow:hidden}.login-separator-icon{object-fit:contain;opacity:.95;width:260px;height:260px;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.login-panel-note span{color:#1d4ea1;font-weight:700}.login-shell .login-form{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;animation:none}@media (width<=767px){.login-shell{background:linear-gradient(#eaf2ff 0%,#fff 62%);padding:0}.login-hero{height:100%;min-height:0;box-shadow:none;background:0 0;border-radius:0;grid-template-rows:1fr}.login-hero-left{display:none}.login-hero-right{background-image:linear-gradient(180deg, #ffffff24 0%, #ffffff3d 62%), var(--login-bg-image);background-position:50%,0;background-repeat:no-repeat,no-repeat;background-size:cover,cover;align-items:center;padding:16px 10px}.login-panel{border-radius:30px;width:100%;margin-top:0;padding:34px 14px 16px;position:relative;box-shadow:0 14px 34px #0e1e3424}.login-icon-panel{object-fit:cover;background:#fff;border:1px solid #e3ebf7;border-radius:999px;width:92px;height:92px;margin:0 auto 10px;padding:0;box-shadow:0 10px 24px #10233d29}.login-panel h2{margin-bottom:10px;font-size:clamp(56px,14vw,72px)}.login-panel h2.is-long{font-size:28px}.login-title-separator{margin-bottom:16px}.login-shell .login-form{gap:12px}.login-separator-wrap{width:150px;margin-top:10px}.login-panel-note{margin-top:10px;font-size:14px;line-height:1.3}}.auth-card{background:#fff;border-radius:18px;width:100%;max-width:420px;padding:20px 16px;box-shadow:0 10px 30px #0c1e351a}.brand-header{margin-bottom:18px}.brand-chip{color:#1d4ea1;background:#ecf4ff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.brand-header h1{margin:10px 0 8px;font-size:26px;line-height:1.2}.brand-header p{color:#4f6077;margin:0;font-size:14px}.login-form{background:#fff;border:1px solid #dfe6f2;border-radius:16px;gap:14px;width:min(100%,460px);margin-inline:auto;padding:20px 16px;animation:.32s ease-out fade-up;display:grid;box-shadow:0 12px 28px #0c1e351f}.field{gap:6px;display:grid}.field span{color:#2c3e57;font-size:13px;font-weight:600}.field input{border:1px solid #d4dce8;border-radius:10px;width:100%;height:42px;padding:0 12px;font-size:14px}.field select,.field textarea{border:1px solid #d4dce8;border-radius:10px;width:100%;font-family:inherit;font-size:14px}.field select{height:42px;padding:0 12px}.field textarea{resize:vertical;padding:8px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#4e8ff0;outline:2px solid #9ec5ff}.field input:disabled,.field select:disabled,.field textarea:disabled{color:#7b8ca3;cursor:not-allowed;background:#eef2f7;border-color:#d9e1ec}.checkbox-row input:disabled{cursor:not-allowed}.login-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.checkbox-row{align-items:center;gap:8px;font-size:13px;display:flex}.text-link{color:#1d4ea1;font-size:13px;text-decoration:none}button.text-link{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.text-link:hover{text-decoration:underline}.login-help-copy{color:#5d7293;margin:0;font-size:13px;line-height:1.4}.login-back-link{justify-self:center;margin-top:2px}.login-panel h2.is-long{font-size:28px}.primary-btn{color:#fff;cursor:pointer;background:#1d4ea1;border:none;border-radius:10px;height:44px;margin-top:2px;font-size:14px;font-weight:700;transition:background-color .16s,transform .16s,box-shadow .16s}.primary-btn:hover{background:#163d80;transform:translateY(-1px);box-shadow:0 6px 14px #1d4ea138}.primary-btn:active{transform:translateY(0)}.primary-btn:disabled{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}.form-message{margin:0;font-size:13px}.form-message.error{color:#b11c1c}.form-message.success{color:#0c7a3a}.secondary-btn{color:#1d3e72;cursor:pointer;background:#fff;border:1px solid #cbd7ea;border-radius:10px;height:36px;font-size:13px;font-weight:600;transition:background-color .16s,border-color .16s,transform .16s}.secondary-btn:hover{background:#f5f8fd;border-color:#b7c9e6}.secondary-btn:disabled{opacity:.55;cursor:not-allowed}.user-item .form-message{margin-top:8px}.profile-menu{display:inline-flex;position:relative}.profile-trigger{color:#1f3656;cursor:pointer;background:#fff;border:1px solid #d5dfef;border-radius:999px;align-items:center;gap:8px;height:38px;padding:0 10px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:inline-flex}.profile-trigger:hover{background:#f8fbff;border-color:#b7c9e6;box-shadow:0 4px 12px #0c1e3514}.profile-avatar{color:#1d4ea1;background:#e8f0ff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-grid}.profile-name{font-size:13px;font-weight:600}.profile-dropdown{z-index:9999;transform-origin:100% 0;background:#fff;border:1px solid #dfe6f2;border-radius:12px;width:260px;padding:10px;animation:.18s ease-out menu-in;box-shadow:0 12px 28px #09121f29}.profile-action-btn{color:#1f3656;cursor:pointer;background:#f5f8fd;border:1px solid #d5dfef;border-radius:9px;width:100%;height:34px;font-size:13px;font-weight:600;transition:background-color .16s,transform .16s}.profile-action-btn:hover{background:#e8f0ff;transform:translate(2px)}.profile-logout-btn{color:#b22b2b;cursor:pointer;background:#fff6f6;border:1px solid #f2c4c4;border-radius:9px;width:100%;height:34px;font-size:13px;font-weight:600;transition:background-color .16s}.profile-logout-btn:hover{background:#ffecec}.reservation-layout{background-color:#fdf9f5;background-image:var(--reservation-page-bg);background-position:100% 0;background-repeat:no-repeat;background-size:auto 100%;grid-template-columns:228px minmax(0,1fr);height:100%;min-height:0;transition:grid-template-columns .22s;display:grid;overflow:hidden}.reservation-layout.is-sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.reservation-sidebar-backdrop{display:none}.reservation-sidebar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;border-right:1px solid #dfe6f2cc;min-width:0;position:relative;overflow:hidden}.reservation-sidebar-inner{box-sizing:border-box;grid-template-rows:auto 1fr auto;gap:22px;width:228px;min-width:228px;height:100%;min-height:0;padding:18px 14px 16px;display:grid;position:relative}.reservation-layout.is-sidebar-collapsed .reservation-sidebar{pointer-events:none;border-right-color:#0000}.reservation-sidebar:after{content:"";pointer-events:none;background:linear-gradient(#1d4ea114,#1d4ea105);border-radius:50% 50% 0 0;height:120px;position:absolute;bottom:-42px;left:-20%;right:-20%}.reservation-sidebar-brand{color:#153865;white-space:nowrap;align-items:center;gap:10px;padding:4px 6px;font-size:22px;font-weight:700;display:flex}.reservation-sidebar-brand img{object-fit:contain;width:42px;height:42px}.reservation-sidebar-nav{align-content:start;gap:8px;display:grid}.reservation-nav-item{color:#1f3656;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;height:44px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.reservation-nav-item svg{flex-shrink:0;width:18px;height:18px}.reservation-nav-item:hover{background:#f3f8ff;border-color:#d6e2f3}.reservation-nav-item.is-active{color:#fff;background:#1d4ea1}.reservation-logout{color:#4a5d78;cursor:pointer;white-space:nowrap;background:#ffffffe6;border:1px solid #d7e1f0;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:44px;font-size:14px;font-weight:600;display:flex}.reservation-logout svg{width:18px;height:18px}.reservation-main{grid-template-rows:64px minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.reservation-main-topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff8c;border-bottom:1px solid #dfe6f2bf;justify-content:space-between;align-items:center;padding:10px 22px;display:flex}.reservation-menu-btn{color:#4f6077;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.reservation-menu-btn svg{width:22px;height:22px}.reservation-menu-btn:hover{background:#eef4ff}.reservation-refresh-banner{z-index:8;text-align:center;color:#1d4ea1;pointer-events:none;margin:0;padding:8px 16px 0;font-size:13px;font-weight:700;position:absolute;top:64px;left:0;right:0}.reservation-refresh-banner.is-done{color:#227a45}.reservation-main-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:22px 24px 28px;overflow-y:auto}.reservation-main-content .reservations-card{width:100%;max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.reservations-card{background:#fff;border:1px solid #dfe6f2;border-radius:16px;width:min(100%,980px);margin-inline:auto;padding:20px 16px;animation:.32s ease-out fade-up;box-shadow:0 12px 28px #0c1e3514}.reservations-themed{position:relative;overflow:hidden}.reservation-main-content .reservations-themed{background:0 0}.reservations-themed>*{z-index:1;position:relative}.reservations-themed:before{content:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.profile-admin-actions{gap:6px;margin:0 0 10px;display:grid}.profile-admin-modal{width:min(100%,520px)}.user-create-modal{border:0;border-radius:18px;width:min(100%,760px);box-shadow:0 24px 48px #10233d38}.user-create-form{padding:22px 24px 18px}.user-create-header{grid-template-columns:auto 1fr auto;align-items:start;gap:12px;margin-bottom:18px;display:grid}.user-create-header-icon{color:#1d4ea1;background:#e8f1ff;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.user-create-header-icon svg{width:22px;height:22px}.user-create-header-copy h3{color:#143765;margin:2px 0 4px;font-size:22px}.user-create-header-copy p{color:#6b7c94;margin:0;font-size:13px}.user-create-close{color:#4f6077;cursor:pointer;background:#fff;border:1px solid #d7e1f0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.user-create-close svg{width:16px;height:16px}.user-create-close:hover{background:#f3f8ff}.user-create-grid{gap:14px 16px;display:grid}@media (width>=720px){.user-create-grid{grid-template-columns:1fr 1fr}.user-create-field-wide{grid-column:1/-1}}.user-create-reset-note{color:#5d7293;margin:0;font-size:13px;line-height:1.4}.user-create-control{position:relative}.user-create-control-icon{color:#7b8ca3;pointer-events:none;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.user-create-control-icon svg{width:18px;height:18px}.user-create-control input,.user-create-control select{background:#fff;border:1px solid #d4dce8;border-radius:10px;width:100%;height:44px;padding:0 12px 0 40px;font-size:14px}.user-create-control select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%237b8ca3' stroke-width='1.8' stroke-linecap='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.user-create-eye{color:#7b8ca3;cursor:pointer;background:0 0;border:0;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.user-create-eye svg{width:18px;height:18px}.user-create-control input:disabled,.user-create-control select:disabled{color:#7b8ca3;cursor:not-allowed;background:#eef2f7;border-color:#d9e1ec}.user-create-control input:has(+.user-create-eye){padding-right:40px}.user-create-hotel-add{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.user-create-hotel-add .secondary-btn{white-space:nowrap;height:44px;margin-top:0;padding:0 12px}.user-create-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.user-create-actions .primary-btn,.user-create-actions .secondary-btn{height:42px;margin-top:0;padding:0 16px}.profile-dropdown-title{color:#667991;margin:0;font-size:12px}.profile-dropdown-value{color:#1a2f4f;margin:2px 0 4px;font-size:14px;font-weight:700}.profile-dropdown-meta{color:#4f6077;margin:0 0 10px;font-size:12px}.reservations-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.reservations-actions{align-items:center;gap:10px;display:flex}.reservations-eyebrow{text-transform:uppercase;letter-spacing:.04em;color:#5d7293;margin:0;font-size:12px;font-weight:700}.reservations-head h2{color:#143765;margin:2px 0 0;font-size:28px;line-height:1.15}.reservations-create-btn{white-space:nowrap;height:40px;margin-top:0;padding:0 16px}.reservation-icon-btn,.reservation-filter-btn{color:#3d5270;cursor:pointer;background:#fff;border:1px solid #d4dce8;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.reservation-icon-btn svg,.reservation-filter-btn svg{width:18px;height:18px}.reservation-icon-btn:hover,.reservation-filter-btn:hover,.reservation-filter-btn.is-active{color:#1d4ea1;background:#eef4ff;border-color:#b7c9e6}.reservation-icon-btn:disabled{cursor:default;opacity:.7}.reservation-icon-btn.is-refreshing{color:#1d4ea1;background:#eef4ff;border-color:#b7c9e6}.reservation-icon-btn.is-refreshing svg{animation:.7s linear infinite icon-spin}.reservation-icon-btn.is-refreshed{color:#227a45;background:#e8f8ee;border-color:#b9e5c7}@keyframes icon-spin{to{transform:rotate(360deg)}}.reservations-grid{gap:12px;display:grid}.reservation-toolbar{align-items:center;gap:10px;margin-bottom:16px;display:flex}.reservation-toolbar .field{margin:0}.reservation-toolbar-date{flex-shrink:0;width:168px;position:relative}.date-input-placeholder{display:none}.reservation-toolbar-search{flex:1;min-width:180px}.reservation-toolbar-hotel{flex-shrink:0;width:min(100%,220px)}.reservation-filters-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.reservation-filters-collapse:not(.is-open){pointer-events:none}.reservation-filters-collapse.is-open{grid-template-rows:1fr}.reservation-filters-collapse-inner{min-height:0;overflow:hidden}.reservation-filters-collapse .reservation-filters-grid{margin-top:0;animation:none}.reservation-filters-collapse .reservation-filters-grid .field{animation:none}.reservation-filters-collapse .reservation-filters-main{opacity:0;transition:opacity .24s,transform .28s;transform:translateY(-10px)}.reservation-filters-collapse.is-open .reservation-filters-main{opacity:1;transform:translateY(0)}.reservation-filters-main{background:#ffffffc7;border:1px solid #e5ebf5;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 16px;padding:12px}.reservations-cadre-banner{background-image:linear-gradient(90deg, #fffffff5 0%, #ffffffc7 42%, #ffffff1f 100%), var(--reservation-cadre-image);background-position:50%,100%;background-repeat:no-repeat,no-repeat;background-size:cover,cover;border:1px solid #e2e9f5;border-radius:14px;align-items:center;min-height:118px;margin-top:18px;display:flex;box-shadow:0 8px 18px #10233d14}.reservations-cadre-copy{padding:16px 20px}.reservations-cadre-title{color:#143765;margin:0;font-size:20px;font-weight:700}.reservations-cadre-copy .muted{max-width:520px;margin:4px 0 0;font-size:14px}.reservation-search{margin-bottom:14px}.reservation-date-filter{width:min(100%,200px)}.reservation-search-top{flex-wrap:nowrap;align-items:end;gap:8px;display:flex}.reservation-search-field{flex:1;min-width:0}.reservation-hotel-filter-top{min-width:190px}.reservation-hotel-filter-top select{height:42px;padding:0 12px;line-height:42px}.reservation-filters-grid{transform-origin:top;gap:10px;margin-top:10px;animation:.22s ease-out filters-in;display:grid}.reservation-filters-grid .field{animation:.26s ease-out both fade-up}.reservation-filters-grid .field:first-child{animation-delay:30ms}.reservation-filters-grid .field:nth-child(2){animation-delay:60ms}.reservation-filters-grid .field:nth-child(3){animation-delay:90ms}.reservation-filters-grid .field:nth-child(4){animation-delay:.12s}.reservation-filters-grid .field:nth-child(5){animation-delay:.15s}.reservation-filters-grid .field:nth-child(n+6){animation-delay:.18s}.day-detail-filters-grid{grid-template-columns:1fr}.day-detail-filters-row{gap:10px;display:grid}.day-detail-filters-row-top{grid-template-columns:repeat(2,minmax(0,1fr))}.day-detail-filters-row-top>.field:only-child{grid-column:1/-1}.day-detail-filters-row-bottom{grid-template-columns:repeat(4,minmax(0,1fr))}.day-detail-filters .reservation-filters-collapse .day-detail-filters-grid{opacity:0;margin-top:10px;transition:opacity .24s,transform .28s;transform:translateY(-10px)}.day-detail-filters .reservation-filters-collapse.is-open .day-detail-filters-grid{opacity:1;transform:translateY(0)}.compact-btn{white-space:nowrap;height:42px;padding:0 12px;transition:background-color .16s,border-color .16s,transform .16s}.compact-btn:hover{transform:translateY(-1px)}.reservation-form{padding:14px}.reservation-form h3{margin:0 0 10px;font-size:17px}.reservation-form-grid{gap:10px;display:grid}.date-time-inline{grid-template-columns:1fr minmax(130px,.9fr);align-items:center;gap:8px;display:grid}.time-inline{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.time-separator{color:#4f6077;font-size:16px;font-weight:700}.room-mattress-inline{grid-template-columns:minmax(0,1fr) minmax(168px,.72fr);align-items:start;gap:10px;display:grid}.mattress-stepper{background:#fff;border:1px solid #d4dce8;border-radius:10px;grid-template-columns:44px minmax(40px,1fr) 44px;align-items:stretch;height:44px;display:grid;overflow:hidden}.mattress-stepper:focus-within{border-color:#4e8ff0;outline:2px solid #9ec5ff}.mattress-stepper-btn{color:#1d4ea1;cursor:pointer;background:#eef3fb;border:0;padding:0;font-size:22px;font-weight:700;line-height:1}.mattress-stepper-btn:disabled{color:#9aa8bc;cursor:default}.mattress-stepper-btn:not(:disabled):active{background:#dbe6f6}.mattress-stepper input{text-align:center;appearance:textfield;border:0;border-left:1px solid #d4dce8;border-right:1px solid #d4dce8;border-radius:0;width:100%;min-width:0;height:44px;padding:0 4px;font-size:16px}.mattress-stepper input:focus{border-color:#d4dce8;outline:none}.mattress-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mattress-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.plage-hotel-inline{grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.plage-hotel-inline select{border:1px solid #d4dce8;border-radius:10px;width:100%;height:42px;padding:0 12px;font-size:14px}.reservation-checks{flex-wrap:wrap;gap:16px;margin:10px 0;display:flex}.booking-modal{border:0;border-radius:18px;width:min(100%,920px);position:relative;box-shadow:0 24px 48px #10233d38}.booking-modal:after{content:"";pointer-events:none;background:radial-gradient(circle at 30% 40%,#1d4ea11a 0 28px,#0000 30px),radial-gradient(circle at 58% 62%,#1d4ea114 0 18px,#0000 20px);width:180px;height:120px;position:absolute;bottom:-28px;left:-20px}.booking-form{z-index:1;padding:22px 24px 18px;position:relative}.booking-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.booking-header h3{color:#143765;margin:0 0 4px;font-size:22px}.booking-header p{color:#6b7c94;margin:0;font-size:13px}.booking-grid{gap:14px 16px;display:grid}.booking-form .field span{color:#1f3656;font-size:13px;font-weight:700}.booking-form .field input,.booking-form .field select,.booking-form .field textarea{border-radius:10px;height:44px}.booking-form .field .mattress-stepper input{text-align:center;border:0;border-left:1px solid #d4dce8;border-right:1px solid #d4dce8;border-radius:0;height:44px;padding:0 4px;font-size:16px}.booking-form .field .mattress-stepper input:focus{border-color:#d4dce8;outline:none}.booking-form .field textarea{height:auto;min-height:88px;padding:10px 12px}.booking-date-wrap{position:relative}.booking-datetime.is-empty .date-input-placeholder{color:#8a97ab;pointer-events:none;white-space:nowrap;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0 34px 0 12px}.booking-datetime.is-empty input[type=date]{color:#0000}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit{color:#0000;-webkit-text-fill-color:transparent}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit-fields-wrapper{color:#0000;-webkit-text-fill-color:transparent}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit-text{color:#0000;-webkit-text-fill-color:transparent}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit-month-field{color:#0000;-webkit-text-fill-color:transparent}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit-day-field{color:#0000;-webkit-text-fill-color:transparent}.booking-datetime.is-empty input[type=date]::-webkit-datetime-edit-year-field{color:#0000;-webkit-text-fill-color:transparent}.booking-checks{flex-wrap:wrap;gap:22px;margin:16px 0 8px;display:flex}.booking-check{color:#1f3656;cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.booking-check-icon{place-items:center;width:18px;height:18px;display:grid}.booking-check-icon svg{width:18px;height:18px}.booking-check-crown{color:#e0912a}.booking-check-umbrella{color:#1d4ea1}.booking-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.booking-actions .primary-btn,.booking-actions .secondary-btn{height:42px;margin-top:0;padding:0 16px}@media (width>=720px){.booking-grid{grid-template-columns:1fr 1fr}.booking-field-wide{grid-column:1/-1}}.modal-overlay{z-index:10000;background:#09121f73;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out overlay-in;display:flex;position:fixed;inset:0}.modal-overlay-top{z-index:10001}.reservation-modal{background:#fff;border:1px solid #dfe6f2;border-radius:14px;width:min(100%,680px);max-height:90vh;animation:.24s cubic-bezier(.22,1,.36,1) modal-in;overflow:auto;box-shadow:0 18px 36px #0a152438}.reservation-modal.booking-modal{width:min(100%,920px);max-height:none;overflow:hidden}@media (width<=900px){.reservation-modal.booking-modal{max-height:calc(100svh - 32px);overflow:auto}}.day-summary-card{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:#fffffff0;border:1px solid #e5ebf5;border-radius:16px;gap:10px;padding:16px 18px 14px;transition:border-color .18s,background-color .18s,transform .18s,box-shadow .18s;animation:.36s ease-out both fade-up;display:grid;box-shadow:0 8px 18px #10233d0f}.day-summary-card:first-child{animation-delay:40ms}.day-summary-card:nth-child(2){animation-delay:80ms}.day-summary-card:nth-child(3){animation-delay:.12s}.day-summary-card:nth-child(4){animation-delay:.16s}.day-summary-card:nth-child(5){animation-delay:.2s}.day-summary-card:nth-child(n+6){animation-delay:.24s}.day-summary-card:hover{background:#f1f6ff;border-color:#b7c9e6;transform:translateY(-2px);box-shadow:0 8px 18px #10233d1a}.day-summary-card:active{transform:translateY(0)}.day-summary-head{align-items:center;gap:10px;display:flex}.day-summary-sun{color:#d89a12;background:#fff4d6;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.day-summary-sun svg{width:18px;height:18px}.day-summary-head h3{text-transform:capitalize;flex:1;margin:0;font-size:17px}.day-summary-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.day-stat{background:#f5f8fd;border:1px solid #dbe4f0;border-radius:10px;gap:2px;padding:8px 10px;display:grid}.day-stat.is-attente{background:#fff4e6;border-color:#f5d2a7}.day-stat.is-attente strong,.day-stat.is-attente em{color:#b8691b}.day-stat.is-arrive{background:#e8f8ee;border-color:#b9e5c7}.day-stat.is-arrive strong,.day-stat.is-arrive em{color:#227a45}.day-stat.is-annule{background:#fff6f6;border-color:#f2c4c4}.day-stat.is-annule strong,.day-stat.is-annule em{color:#b22b2b}.day-stat strong{color:#143765;font-size:18px;line-height:1.1}.day-stat em{color:#5d7293;font-size:12px;font-style:normal}.day-summary-meta{color:#5d7293;margin:0;font-size:13px}.day-summary-link{color:#1d4ea1;font-size:13px;font-weight:700}.day-detail-modal{border:0;border-radius:18px;flex-direction:column;width:min(100%,760px);max-height:calc(100svh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 48px #10233d38}.day-detail-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 0;display:flex}.day-detail-close{color:#4f6077;cursor:pointer;background:#fff;border:1px solid #d7e1f0;border-radius:10px;align-items:center;gap:6px;height:36px;padding:0 12px 0 10px;font-size:13px;font-weight:600;display:inline-flex}.day-detail-close svg{width:16px;height:16px}.day-detail-close:hover{background:#f3f8ff}.day-detail-filters{padding:14px 20px 0}.day-detail-header h3{color:#143765;text-transform:capitalize;margin:2px 0 4px;font-size:22px}.day-detail-search-control{position:relative}.day-detail-search-icon{color:#7b8ca3;pointer-events:none;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.day-detail-search-icon svg{width:18px;height:18px}.day-detail-search-control input{padding-left:40px}.day-detail-filter-btn{color:#1f3656;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d4dce8;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;height:42px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.day-detail-filter-btn svg{width:16px;height:16px}.day-detail-filter-btn:hover,.day-detail-filter-btn.is-active{color:#1d4ea1;background:#eef4ff;border-color:#b7c9e6}.day-detail-list{gap:12px;min-height:0;padding:14px 20px 18px;display:grid;overflow-y:auto}.modal-actions{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.reservation-item{background:#f8fbffeb;border:1px solid #e5ebf5;border-radius:12px;padding:12px;animation:.28s ease-out both fade-up}.day-detail-list .reservation-item:first-child{animation-delay:40ms}.day-detail-list .reservation-item:nth-child(2){animation-delay:80ms}.day-detail-list .reservation-item:nth-child(3){animation-delay:.12s}.day-detail-list .reservation-item:nth-child(4){animation-delay:.16s}.day-detail-list .reservation-item:nth-child(n+5){animation-delay:.2s}.reservation-title-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.reservation-title-row h3{margin:0;font-size:16px}.reservation-tag{color:#204d96;white-space:nowrap;background:#e8f1ff;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.reservation-item p{margin:4px 0;font-size:13px}.reservation-meta-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reservation-meta-left,.reservation-meta-right{flex-direction:column;gap:0;min-width:0;display:flex}.reservation-meta-right{text-align:right;align-items:flex-end}.reservation-meta-row p{margin:2px 0}.reservation-hotel-line{font-size:14px;font-weight:700}.day-card{background:#fff;border:1px solid #d7e4f5;border-radius:14px;padding:14px 16px 12px}.day-card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.day-card-identity{align-items:center;gap:10px;min-width:0;display:flex}.day-card-avatar{color:#1d4ea1;background:#e8f1ff;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.day-card-avatar svg{width:18px;height:18px}.day-card-identity h3{color:#143765;margin:0;font-size:16px}.day-card-grid{grid-template-columns:1fr 1fr;gap:8px 18px;display:grid}.day-card p.day-card-meta{color:#5d7293;align-items:center;gap:8px;min-width:0;margin:0;font-size:13px;display:flex}.day-card-meta-icon{color:#1d4ea1;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.day-card-meta-icon svg{width:16px;height:16px}.day-card-meta-label{flex-shrink:0}.day-card-meta strong{color:#143765;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.day-card-note{color:#5d7293;margin:10px 0 0;font-size:13px}.day-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.day-card-btn{cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.day-card-btn svg{width:15px;height:15px}.day-card-btn:disabled{opacity:.7;cursor:default}.day-card-btn.is-edit{color:#1d4ea1;border:1px solid #9bb8e6}.day-card-btn.is-edit:hover{background:#f3f8ff}.day-card-btn.is-cancel{color:#b22b2b;border:1px solid #f2c4c4}.day-card-btn.is-cancel:hover{background:#fff6f6}.day-card-btn.is-arrive{color:#227a45;border:1px solid #b9e5c7}.day-card-btn.is-arrive:hover{background:#e8f8ee}@media (width<=600px){.day-card-grid{grid-template-columns:1fr}}.reservation-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.reservation-actions .secondary-btn,.reservation-actions .success-btn,.reservation-actions .danger-btn{height:32px;padding:0 10px}.status-badge{letter-spacing:.01em;border-radius:999px;align-items:center;height:22px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.status-attente{color:#b8691b;background:#fff4e6;border:1px solid #f5d2a7}.status-arrive{color:#227a45;background:#e8f8ee;border:1px solid #b9e5c7}.status-annule{color:#b22b2b;background:#fff6f6;border:1px solid #f2c4c4}.users-grid{gap:12px;display:grid}.status-user-admin{color:#4d3db8;background:#ece8ff;border:1px solid #cfc8f5}.status-user-hotel{color:#204d96;background:#e8f1ff;border:1px solid #c3d6f5}.status-user-plage{color:#1b6f86;background:#e7f7fb;border:1px solid #b6e0ea}.success-btn{color:#227a45;cursor:pointer;background:#e8f8ee;border:1px solid #b9e5c7;border-radius:10px;height:32px;padding:0 10px;font-size:13px;font-weight:600;transition:background-color .16s,transform .16s}.success-btn:hover{background:#d8f3e3}.success-btn:disabled,.danger-btn:disabled{opacity:.7;cursor:default}.danger-btn{color:#b22b2b;cursor:pointer;background:#fff6f6;border:1px solid #f2c4c4;border-radius:10px;height:32px;padding:0 10px;font-size:13px;font-weight:600;transition:background-color .16s,transform .16s}.danger-btn:hover{background:#ffecec}.field input,.field select,.field textarea{transition:border-color .16s,box-shadow .16s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8fb0e0;outline:none;box-shadow:0 0 0 3px #1d4ea11f}.login-footer{gap:4px;margin-top:16px;display:grid}.login-footer p{margin:0;font-size:13px}.muted{color:#607089}@media (width>=768px){.login-shell{padding:0}.login-hero{background:0 0;grid-template-columns:1fr;height:100%;min-height:0}.login-hero-left{display:none}.login-hero-right{background-image:linear-gradient(180deg, #ffffff1f 0%, #ffffff38 62%), var(--login-bg-image);background-position:50%,0;background-repeat:no-repeat,no-repeat;background-size:cover,cover;justify-content:flex-end;align-items:center;padding:28px clamp(42px,25vw - 280px,220px) 28px 42px;display:flex}.login-panel{width:min(100%,560px);margin-right:0;padding:38px 34px 30px}.login-panel h2{font-size:58px}.login-panel h2.is-long{font-size:34px}.login-icon-panel{width:112px;height:112px;margin-bottom:12px}.login-title-separator{width:88px;margin-bottom:18px}.login-shell .login-form{gap:16px}.login-panel .field span{font-size:16px}.login-panel .field input,.login-panel .field select{height:50px;padding:0 14px;font-size:18px}.login-panel .primary-btn{height:54px;font-size:30px}.login-panel-note{font-size:18px}.page{padding:28px}.auth-card{padding:28px 24px}.brand-header h1{font-size:32px}.login-form{border-radius:18px;width:min(100%,500px);padding:24px 22px}.reservations-card{padding:24px 22px}.reservations-grid,.reservation-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-filters-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reservation-filters-grid.reservation-filters-main{grid-template-columns:repeat(4,minmax(0,1fr))}.day-detail-filters-grid{grid-template-columns:1fr}}@media (width<=900px){.reservation-layout,.reservation-layout.is-sidebar-collapsed{grid-template-columns:1fr}.reservation-sidebar-backdrop{z-index:30;background:#10233d59;border:0;display:block;position:fixed;inset:0}.reservation-sidebar,.reservation-layout.is-sidebar-collapsed .reservation-sidebar{opacity:1;pointer-events:auto;z-index:40;border-right:1px solid #dfe6f2;width:min(82vw,260px);transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 28px #10233d29}.reservation-sidebar-inner{width:100%;min-width:0}.reservation-sidebar.is-open{transform:translate(0)}.reservation-main-content{padding:14px 12px 20px}.reservation-toolbar{flex-wrap:wrap}.reservation-toolbar-search{flex:calc(100% - 52px);order:1;width:auto;min-width:0}.reservation-filter-btn{order:2}.reservation-toolbar-date{flex:calc(50% - 5px);order:3;width:auto;min-width:0}.reservation-toolbar-date.is-empty .date-input-placeholder{color:#8a97ab;letter-spacing:.02em;pointer-events:none;white-space:nowrap;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0 34px 0 12px;overflow:hidden}.reservation-toolbar-date.is-empty input[type=date]{color:#0000}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit-fields-wrapper{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit-text{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit-month-field{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit-day-field{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-date.is-empty input[type=date]::-webkit-datetime-edit-year-field{color:#0000;-webkit-text-fill-color:transparent}.reservation-toolbar-hotel{flex:calc(50% - 5px);order:4;width:auto;min-width:0}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes filters-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
