:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19324b;background:#f3f6f8;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:#0c3154;color:#e6eff7;padding:24px 16px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;margin:0 6px}.brand strong,.brand small{display:block}.brand strong{font-size:17px;line-height:1.2}.brand small{font-size:12px;color:#b6cbdc}.brand-icon{width:44px;height:44px;border-radius:12px;background:#fff;color:#0c3154;display:inline-grid;place-items:center;flex:none;font-weight:700}.nav-list{display:grid;gap:6px}.nav-list a{border-radius:10px;padding:11px 16px;text-decoration:none;font-weight:600;color:#d9e8f3}.nav-list a:hover,.nav-list a:focus-visible,.nav-list a.active{background:#214e72;color:#fff}.logout{margin-top:auto;border-top:1px solid #426987;padding-top:18px}.logout button{border:0;background:transparent;color:#fff;font-weight:600;padding:10px 12px}.logout button:hover{text-decoration:underline}.main-area{min-width:0}.topbar{background:#fff;border-bottom:1px solid #e0e8ee;min-height:76px;padding:20px 36px;display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar strong{font-size:24px}.topbar-note{color:#637b92;font-size:14px}.content{padding:30px 36px 80px;max-width:1450px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.page-heading h1{font-size:32px;line-height:1.2;font-weight:550;margin:4px 0}.page-heading p{margin:4px 0;color:#60778e}.eyebrow{font-size:14px;color:#647d93!important}.eyebrow a{text-decoration:none}.eyebrow a:hover{text-decoration:underline}.card{background:#fff;border:1px solid #dce7ee;border-radius:18px;padding:24px;box-shadow:0 1px 2px rgba(12,49,84,.025)}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;min-height:45px;padding:10px 18px;text-decoration:none;font-weight:700;line-height:1.2;white-space:normal;text-align:center}.button.primary{background:#0c3154;color:#fff}.button.primary:hover{background:#19496d}.button.secondary{background:#fff;color:#173753;border-color:#d8e3eb}.button.secondary:hover{background:#f1f6f9}.button.warning{background:#fff4ef;color:#934b25;border-color:#eac5b5}.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #519acb;outline-offset:2px}.notice{border-radius:11px;padding:14px 18px;margin-bottom:24px}.notice ul{margin:7px 0 0;padding-left:22px}.notice.success{background:#e4f4e9;color:#195b39;border:1px solid #a9dbc0}.notice.error{background:#fff0ef;color:#8d2525;border:1px solid #edbfbd}.notice.info{background:#f7f0e5;color:#6d5739;border:1px solid #e9dabe}.dashboard-grid,.apartment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:22px}.action-card{text-decoration:none;min-height:220px;display:block}.action-card:hover{border-color:#7aacca}.action-card h2,.apartment-card h2{font-size:21px;margin:10px 0 4px}.action-card p,.apartment-card p{color:#5d748a}.action-card strong{color:#0c3154}.action-icon{font-size:28px;color:#0c3154}.apartment-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}.apartment-card{position:relative;border-top:5px solid var(--apartment-color);display:flex;flex-direction:column;align-items:flex-start}.apartment-card p{margin:4px 0}.apartment-card .button{margin-top:auto;transform:translateY(8px)}.apartment-card-top{width:100%;display:flex;align-items:center;justify-content:space-between}.color-mark{width:16px;height:16px;border-radius:50%;background:var(--apartment-color)}.badge{border-radius:99px;padding:5px 12px;font-size:13px;font-weight:700;white-space:nowrap}.active-badge{background:#e7f4eb;color:#257547}.archived-badge{background:#eceff2;color:#556574}.form-section{margin-bottom:20px}.form-section h2{font-size:21px;margin:0 0 4px}.section-intro{color:#61798d;margin:0 0 20px}.form-grid{display:grid;gap:18px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{min-width:0}.field label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}.field label span{color:#a53131}.field input,.field select,.field textarea,.login-card input{display:block;width:100%;background:#fff;border:1px solid #cbdce7;border-radius:10px;padding:11px 13px;color:#17324b;min-height:45px}.field input[type=color]{padding:4px;max-width:130px}.field textarea{resize:vertical}.hint,.field-error{display:block;font-size:13px;margin-top:5px}.hint{color:#647a8e}.field-error{color:#a53131}.checkbox-row{display:flex;align-items:center;gap:10px;background:#f7f0e5;border-radius:10px;padding:13px 16px;margin:20px 0;font-weight:600}.checkbox-row input{width:20px;height:20px;accent-color:#0c3154}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin:22px 0 34px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:20px}.media-item{border:1px solid #dbe5eb;border-radius:12px;padding:10px}.media-item img{width:100%;height:135px;object-fit:cover;border-radius:7px;background:#edf1f4}.media-item p{font-size:13px;color:#647a8e}.media-upload{border-top:1px solid #dbe5eb;padding-top:18px}.upload-button{display:flex;align-items:flex-end}.danger-zone{border-color:#edcfc5}.danger-zone p{color:#61798d}.narrow{max-width:650px}.empty{text-align:center}.login-page{min-height:100vh;background:#0c3154;display:grid;place-items:center;padding:20px}.login-card{background:#fff;border-radius:20px;padding:32px;width:min(100%,440px)}.brand.dark{color:#0c3154;margin:0 0 28px}.brand.dark .brand-icon{background:#0c3154;color:#fff}.brand.dark small{color:#5d748a}.login-card h1{font-size:27px;margin:0}.login-card p{color:#627990;margin:5px 0 23px}.login-card label{display:block;font-weight:700;font-size:14px;margin:16px 0 6px}.login-card .button{margin-top:24px}.wide{width:100%}@media(max-width:800px){.app-shell{display:block}.sidebar{padding:14px 16px;gap:14px}.brand{margin:0}.nav-list{display:flex;overflow-x:auto;gap:4px}.nav-list a{white-space:nowrap;padding:9px 12px}.logout{position:absolute;right:12px;top:19px;margin:0;border:0;padding:0}.logout button{font-size:13px}.topbar{padding:16px 20px;min-height:60px}.topbar strong{font-size:19px}.content{padding:22px 16px 60px}.page-heading{align-items:flex-start;flex-direction:column;gap:12px}.page-heading h1{font-size:28px}.form-grid.two{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:460px){.sidebar .brand strong{font-size:15px}.sidebar .brand small{font-size:11px}.brand-icon{width:36px;height:36px}.topbar-note{display:none}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}.card{padding:18px}.apartment-grid{grid-template-columns:1fr}}

@media(max-width:800px){.nav-list{flex-wrap:wrap;overflow-x:visible}.logout{position:static;margin:0;padding-top:4px;border-top:0;order:3}.logout button{padding:8px 12px}}

.quick-save{display:flex;justify-content:flex-end;margin:-12px 0 20px}@media(max-width:800px){.quick-save .button{width:100%}}
.hidden{display:none!important}.planning-legend{display:flex;flex-wrap:wrap;gap:18px;color:#5b7084;font-size:14px;margin:0 0 20px}.planning-legend span{display:inline-flex;gap:7px;align-items:center}.legend-mark{display:inline-block;width:12px;height:12px;border-radius:3px;background:#edf2f5;border:1px solid #b8cad8}.legend-mark.booked{background:#e6eef5;border-color:#739cbb}.legend-mark.blocked{background:#efe8d9;border-color:#ba9f6d}.planning-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}.planning-controls strong{text-align:center}.planning-scroll,.table-scroll{overflow:auto;border:1px solid #dce7ee;border-radius:16px;background:#fff}.planning-scroll{margin-bottom:22px}.planning-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.planning-table th,.planning-table td{border-right:1px solid #e4ecf1;border-bottom:1px solid #e4ecf1;text-align:center}.planning-table thead th{height:63px;background:#f6f9fa;min-width:95px;color:#24415e}.planning-table thead th span,.planning-table thead th strong{display:block}.planning-table thead th span{font-size:12px;color:#6a8093;font-weight:500}.planning-apartment-heading{position:sticky;left:0;z-index:2;min-width:190px;max-width:220px;text-align:left!important;padding:10px 14px;background:#fff}.planning-table thead .planning-apartment-heading{z-index:3;background:#f6f9fa}.planning-apartment-heading strong,.planning-apartment-heading small{display:block}.planning-apartment-heading small{color:#718697;font-weight:400}.planning-apartment-heading .color-mark{vertical-align:middle;margin-right:6px}.planning-table td{height:86px;min-width:95px;padding:4px}.planning-cell a,.planning-cell span{display:flex;align-items:center;justify-content:center;min-height:52px;min-width:44px;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;padding:4px;word-break:break-word}.planning-cell.free a{color:#1d5678;background:#f2f7fa;font-size:22px}.planning-cell.free a:hover{background:#dcecf5}.planning-cell.reservation a{background:color-mix(in srgb,var(--apartment-color) 24%,white);border-top:4px solid var(--apartment-color);color:#18344d}.planning-cell.block span{background:#f2ebdf;color:#614d31}.planning-block-form{margin-top:22px}.table-card{padding:0}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;padding:14px;border-bottom:1px solid #e3ebef}.data-table th{background:#f6f9fa;color:#5d7287;font-size:13px}.data-table td{white-space:nowrap}.data-table .color-mark{display:inline-block;vertical-align:middle;margin-right:5px}.pagination{margin:20px 0}.detail-list{margin:12px 0}.detail-list div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #e4ebef;padding:9px 0}.detail-list dt{color:#60768a}.detail-list dd{margin:0;text-align:right;font-weight:600}.detail-list .strong{font-size:18px;color:#0c3154}.stay-summary{background:#f4f7f9;border-radius:10px;padding:10px 16px;margin:0;align-self:end}.stay-summary strong{font-size:23px}.price-preview{background:#f7f0e5;border-radius:12px;padding:17px 20px;margin:12px 0 20px}.price-preview dl{margin:0}.price-preview dl div{display:flex;justify-content:space-between;gap:12px;margin:6px 0}.price-preview dd{margin:0;font-weight:700}.price-preview .total{border-top:1px solid #e4d1ad;padding-top:10px;color:#0c3154;font-size:20px}.price-preview .available{color:#19633d;font-weight:700}.price-preview .unavailable{color:#a43d30;font-weight:700}.search-results{display:grid;gap:4px;margin-top:8px}.search-result{border:1px solid #dbe7ef;background:#f7fafb;color:#18344d;text-align:left;padding:10px;border-radius:8px;min-height:44px}.search-result:hover{background:#e9f3f8}.client-dialog{border:0;border-radius:16px;box-shadow:0 20px 90px #001a2b66;width:min(95vw,760px);max-height:90vh;overflow:auto;padding:26px;color:#19324b}.client-dialog::backdrop{background:#001a2bbb}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{margin:0}.dialog-heading button{font-size:28px;border:0;background:transparent;min-width:44px;min-height:44px}.client-dialog #client-dialog-message{color:#a43d30;margin:8px 0}.client-dialog #client-dialog-message a{margin-right:8px}.client-dialog .checkbox-row{grid-column:1/-1}@media(max-width:800px){.planning-controls{flex-wrap:wrap}.planning-table .planning-apartment-heading{min-width:150px}.planning-table td,.planning-table thead th{min-width:84px}.client-dialog .form-grid.two{grid-template-columns:1fr}}@media(max-width:460px){.planning-controls strong{order:-1;width:100%}.planning-controls .button{flex:1}.planning-table .planning-apartment-heading{min-width:125px;max-width:130px}.planning-table .planning-apartment-heading strong{font-size:13px}}
.block-editor{border-top:1px solid #dce7ee;padding:14px 0}.block-editor summary{cursor:pointer;min-height:44px;display:list-item;padding:8px}.block-editor form{margin:14px 0 0}.planning-cell.block a{background:#f2ebdf;color:#614d31}.payment-list{padding-left:22px}.payment-list li{margin-bottom:10px}.payment-list small{display:block;color:#60768a}
.contract-group-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.contract-group-heading h2{margin:0}.contract-issues,.contract-warnings{padding-left:22px}.contract-issues{color:#922f2f}.contract-warnings{color:#715629}.contract-version{border-top:1px solid #dce7ee;padding:18px 0}.contract-version h3{margin:0 0 6px}.contract-version .form-actions.left{justify-content:flex-start;margin:12px 0}.contract-photo-preview{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:8px}.contract-clauses{white-space:pre-wrap;overflow-wrap:anywhere}.signature-preview{display:flex;gap:20px;margin-top:50px}.signature-preview span{border-top:1px solid #bdcbd5;padding-top:8px;flex:1}@media(max-width:800px){.contract-group-heading{align-items:flex-start;flex-direction:column}.signature-preview{margin-top:30px}}

/* US-11 / US-29 : accès direct à un mois du planning, avec cibles utilisables sur téléphone. */
.planning-jump{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:0 0 18px}.planning-month-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.planning-month-form label{display:block;width:100%;font-size:14px;font-weight:700;color:#24415e}.planning-month-form input{min-height:45px;padding:9px 12px;border:1px solid #cbdce8;border-radius:10px;background:#fff;color:#19324b}.planning-jump>.button{align-self:flex-end}@media(max-width:460px){.planning-jump,.planning-month-form{width:100%}.planning-month-form input{flex:1;min-width:0}.planning-month-form .button{flex:0 0 auto}.planning-jump>.button{width:100%}}
.color-mark{display:inline-block;vertical-align:middle;flex:none}
.mobile-nav{display:none}
@media(max-width:800px){
  .sidebar{position:relative;flex-direction:row;align-items:center;justify-content:space-between;min-height:72px;gap:10px}
  .desktop-nav,.desktop-logout{display:none}
  .mobile-nav{display:block;margin-left:auto}
  .mobile-nav summary{list-style:none;display:flex;align-items:center;justify-content:center;min-height:44px;min-width:76px;padding:9px 13px;border-radius:9px;background:#214e72;color:#fff;font-weight:700;cursor:pointer}
  .mobile-nav summary::-webkit-details-marker{display:none}
  .mobile-nav summary:focus-visible{outline:3px solid #9ed4f4;outline-offset:2px}
  .mobile-menu-panel{position:absolute;right:12px;top:calc(100% - 1px);z-index:20;width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 80px);overflow:auto;border-radius:0 0 12px 12px;background:#0c3154;box-shadow:0 15px 30px #001a2b55;padding:8px 12px 16px}
  .mobile-menu-panel .nav-list{display:grid;gap:3px;overflow:visible}
  .mobile-menu-panel .nav-list a{display:flex;align-items:center;white-space:normal;min-height:44px;padding:10px 12px}
  .mobile-menu-panel .logout{display:block;margin-top:8px;border-top:1px solid #426987;padding:8px 0 0}
  .mobile-menu-panel .logout button{min-height:44px}
}
.rate-variant{border:1px solid #dce7ee;border-radius:12px;margin:18px 0;padding:14px 16px 18px}
.rate-variant legend{font-weight:700;color:#0c3154;padding:0 8px}
.rate-variant[hidden]{display:none}
.planning-legend .deposit-pending{background:#e4e8eb;border-color:#9aa8b3}
.planning-legend .deposit-received{background:#daecf8;border-color:#4283c5}
.planning-cell.reservation.deposit-pending a{background:#e4e8eb;border-top-color:#9aa8b3;color:#263e51}
.planning-cell.reservation.deposit-received a{background:color-mix(in srgb,var(--apartment-color) 24%,white);border-top-color:var(--apartment-color)}
.rate-suggestion{margin:8px 0 0;padding:12px 14px;border-radius:10px;background:#edf5f9;color:#173753}
.rate-suggestion .button{margin-top:8px}
