/* Design: Projexo Soft Coastal — offre créée par étapes, panneaux contour sobres et repères de capacité calmement hiérarchisés. */
.services-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.service-form-panel h2,.occurrence-form-panel h2{margin:0 0 16px;font:700 18px Manrope,sans-serif;letter-spacing:-.5px}.service-list-panel{margin-top:16px}.service-row,.occurrence-management-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #edf1f0}.service-row-main{min-width:0;flex:1}.service-row strong,.service-row small,.occurrence-management-row strong,.occurrence-management-row small{display:block}.service-row strong,.occurrence-management-row strong{font-size:13px}.service-row small,.occurrence-management-row small{margin-top:3px;color:#71818e;font-size:11px}.service-row>small{margin-left:auto;color:#71818e;font-size:11px}.occurrence-management-row>div:nth-child(2){min-width:0;flex:1}.capacity-chip{padding:5px 8px;border-radius:7px;background:#eef6f4;color:#36766d;font-size:11px;font-weight:700;white-space:nowrap}.service-error{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:#fff0f0}.occurrence-management-row form{margin:0}@media(max-width:980px){.services-layout{grid-template-columns:1fr}.occurrence-management-row{align-items:flex-start;flex-wrap:wrap}.capacity-chip{margin-left:51px}}@media(max-width:700px){.service-row{align-items:flex-start;flex-wrap:wrap}.service-row>small{margin-left:0;width:100%}}
.service-payment-form{margin:14px 0;border:0;padding:0}.service-payment-form legend{margin-bottom:8px;color:#62727c;font:700 11px Manrope,sans-serif;text-transform:uppercase;letter-spacing:.08em}.choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-row-four{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-row label{display:flex;align-items:center;gap:7px;margin:0;border:1px solid #dbe4e5;border-radius:7px;background:#fff;padding:10px 11px;color:#304451;font:600 12px Manrope,sans-serif}.choice-row label:has(input:checked){border-color:#078b98;background:#edfbfb;color:#076f79}.choice-row input{margin:0;accent-color:#078b98}.service-payment-details{margin-top:-4px}.service-payment-form:has(input[name="payment_collection_mode"][value="none"]:checked)+.service-payment-details,.service-payment-form:has(input[name="payment_collection_mode"][value="full"]:checked)+.service-payment-details{display:none}.service-payment-form:has(input[name="payment_collection_mode"][value="deposit_fixed"]:checked)+.service-payment-details .service-percent-deposit-field,.service-payment-form:has(input[name="payment_collection_mode"][value="deposit_percent"]:checked)+.service-payment-details .service-fixed-deposit-field{display:none}@media(max-width:980px){.choice-row-four{grid-template-columns:1fr 1fr}}@media(max-width:700px){.choice-row,.choice-row-four{grid-template-columns:1fr}}
.form-step-intro{margin:-5px 0 16px;color:#71818e;font:13px/1.5 "Source Sans 3",sans-serif}.form-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 15px;padding:0;list-style:none}.form-stepper li{display:flex;align-items:center;gap:7px;min-width:0;padding:8px;border:1px solid #dce9e8;border-radius:10px;background:#fbfdfd;color:#788892}.form-stepper li.is-current{border-color:#84c9c2;background:#effaf9;color:#0b7279}.form-stepper li>span,.form-stage-number{display:grid;flex:0 0 auto;place-items:center;width:22px;height:22px;border-radius:7px;background:#e1eeee;color:#4c6871;font:800 11px Manrope,sans-serif}.form-stepper .is-current>span{background:#0a969f;color:#fff}.form-stepper strong,.form-stepper small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-stepper strong{font:700 11px Manrope,sans-serif}.form-stepper small{margin-top:1px;font:11px "Source Sans 3",sans-serif}.form-stage{margin:9px 0;border:1px solid #dce9e8;border-radius:12px;background:#fff;overflow:hidden}.form-stage[open]{border-color:#b9ddd8;box-shadow:0 8px 18px rgba(25,88,92,.045)}.form-stage summary{display:flex;align-items:center;gap:9px;padding:12px;cursor:pointer;list-style:none}.form-stage summary::-webkit-details-marker{display:none}.form-stage summary::after{content:'+';margin-left:auto;color:#08757d;font:700 18px Manrope,sans-serif}.form-stage[open] summary::after{content:'−'}.form-stage summary strong,.form-stage summary small{display:block}.form-stage summary strong{color:#25434f;font:700 13px Manrope,sans-serif}.form-stage summary small{margin-top:2px;color:#71818e;font:12px/1.35 "Source Sans 3",sans-serif}.form-stage-body{display:grid;gap:12px;padding:0 12px 14px;border-top:1px solid #edf3f2}.form-stage-body>:first-child{margin-top:13px}.toggle-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.toggle-pair .toggle-field{margin:0}@media(max-width:700px){.form-stepper{grid-template-columns:1fr}.toggle-pair{grid-template-columns:1fr}}

/* Disponibilités des rendez-vous et fermetures (page Services). */
.availability-panel { display: grid; gap: .9rem; }
.availability-service { border: 1px solid #d9e6e4; border-radius: 12px; background: #fff; }
.availability-service > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; padding: .85rem 1rem; cursor: pointer; }
.availability-service > summary small { color: #5f7479; }
.availability-form { display: grid; gap: .8rem; padding: 0 1rem 1rem; }
.availability-rows { display: grid; gap: .4rem; }
.availability-row { display: grid; grid-template-columns: minmax(8rem, 1.3fr) repeat(2, minmax(6rem, 1fr)) minmax(6rem, 1fr); gap: .5rem; }
.availability-head { color: #5f7479; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.availability-row select, .availability-row input, .availability-buffers input, .availability-blackout-form input, .availability-blackout-form select { width: 100%; min-height: 2.4rem; padding: .4rem .55rem; border: 1px solid #cfdcda; border-radius: 8px; font: inherit; }
.availability-buffers { display: grid; grid-template-columns: repeat(2, minmax(0, 14rem)); gap: .8rem; }
.availability-buffers label, .availability-blackout-form label { display: grid; gap: .3rem; font-size: .85rem; font-weight: 600; }
.availability-blackout-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); align-items: end; gap: .7rem; }
.availability-blackouts { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.availability-blackouts li { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem .8rem; border: 1px solid #e3ecea; border-radius: 8px; background: #fbfdfd; }
.link-button { padding: 0; border: 0; color: #a3323b; background: none; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
@media (max-width: 720px) { .availability-row { grid-template-columns: 1fr 1fr; } .availability-head { display: none; } .availability-buffers { grid-template-columns: 1fr 1fr; } }

/* Fiches publiques : lieux, équipe, forfaits (Opérations et Forfaits). */
.operations-edit { grid-column: 1 / -1; margin: -.2rem 0 .6rem; padding: 0 .2rem; }
.operations-edit > summary { color: #15575f; font-size: .85rem; font-weight: 700; cursor: pointer; }
.operations-edit .editor-form { margin-top: .6rem; padding: .9rem; border: 1px solid #dfe9e7; border-radius: 10px; background: #fbfdfd; }
.opening-hours { display: grid; gap: .35rem; margin: 0; padding: .7rem; border: 1px solid #dfe9e7; border-radius: 8px; }
.opening-hours-row { display: grid; grid-template-columns: 7rem 1fr 1fr; align-items: center; gap: .5rem; }
.checkbox-line { display: flex !important; align-items: center; gap: .5rem; }
.checkbox-line input { width: auto; }

/* Demandes de confidentialité (Loi 25). */
.privacy-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.privacy-filters a { padding: .35rem .8rem; border: 1px solid #cfe1de; border-radius: 999px; color: #15575f; text-decoration: none; font-weight: 700; font-size: .85rem; }
.privacy-filters a.is-active { color: #fff; background: #15575f; border-color: #15575f; }
.privacy-request { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 1fr); gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #e3ecea; }
.privacy-request.is-overdue { border-left: 4px solid #c2414b; padding-left: .8rem; }
.privacy-request-main { display: grid; gap: .3rem; }
.privacy-request-main small { color: #5f7479; }
.privacy-overdue { padding: .05rem .45rem; border-radius: 999px; color: #fff; background: #c2414b; font-size: .75rem; font-weight: 800; }
.privacy-notes { margin: .3rem 0 0; padding: .6rem .7rem; border-radius: 8px; background: #f5f8f8; font: inherit; font-size: .85rem; white-space: pre-wrap; }
.privacy-request-form { display: grid; gap: .5rem; }
.privacy-request-form select, .privacy-request-form textarea { width: 100%; padding: .45rem .55rem; border: 1px solid #cfdcda; border-radius: 8px; font: inherit; }
@media (max-width: 760px) { .privacy-request { grid-template-columns: 1fr; } }
.privacy-settings { margin-bottom: 1rem; } .privacy-settings > summary { cursor: pointer; } .privacy-settings > summary small { color: #5f7479; } .privacy-settings-form { margin-top: .8rem; }
