

.location-options-modal-entry {

  display: grid;

  gap: .5rem;

  margin: 1rem 0;

}



.location-options-summary {

  font-size: .92rem;

  opacity: .85;

}



.location-options-modal[hidden] {

  display: none !important;

}



.location-options-modal {

  position: fixed;

  inset: 0;

  z-index: 9999;

  display: grid;

  place-items: center;

}



.location-options-modal__backdrop {

  position: absolute;

  inset: 0;

  background: rgba(0, 0, 0, .42);

}



.location-options-modal__panel {

  position: relative;

  width: min(880px, calc(100vw - 2rem));

  max-height: calc(100vh - 2rem);

  display: grid;

  grid-template-rows: auto 1fr auto;

  background: var(--gti-surface, #fff);

  color: var(--gti-text, #1f2937);

  border-radius: 16px;

  box-shadow: 0 24px 70px rgba(0, 0, 0, .25);

  overflow: hidden;

}



.location-options-modal__header,

.location-options-modal__footer {

  padding: 1rem;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 1rem;

  border-bottom: 1px solid rgba(0, 0, 0, .08);

}



.location-options-modal__footer {

  border-top: 1px solid rgba(0, 0, 0, .08);

  border-bottom: 0;

  justify-content: flex-end;

}



.location-options-modal__header h2 {

  margin: 0;

  font-size: 1.2rem;

}



.location-options-modal__header p {

  margin: .2rem 0 0;

  font-size: .9rem;

  opacity: .72;

}



.location-options-modal__close {

  border: 0;

  background: transparent;

  font-size: 1.8rem;

  line-height: 1;

  cursor: pointer;

}



.location-options-modal__body {

  padding: 1rem;

  overflow: auto;

}



.location-options-category {

  margin-bottom: 1rem;

  border: 1px solid rgba(0, 0, 0, .08);

  border-radius: 12px;

  overflow: hidden;

}



.location-options-category__title {

  margin: 0;

  padding: .8rem 1rem;

  font-size: 1rem;

  background: rgba(0, 0, 0, .04);

}



.location-option-row {

  display: grid;

  grid-template-columns: minmax(160px, 1fr) minmax(180px, 2fr);

  gap: .75rem;

  align-items: start;

  padding: .85rem 1rem;

  border-top: 1px solid rgba(0, 0, 0, .06);

}



.location-option-row label {

  font-weight: 600;

}



.location-option-row small {

  display: block;

  margin-top: .25rem;

  opacity: .72;

  font-weight: 400;

}



.location-option-row input,

.location-option-row select,

.location-option-row textarea {

  width: 100%;

  box-sizing: border-box;

}



.location-option-row textarea {

  min-height: 68px;

  resize: vertical;

}



.location-options-modal__error {

  padding: .9rem 1rem;

  border-radius: 10px;

  background: rgba(190, 18, 60, .08);

}



.location-options-modal__empty,

.location-options-modal__loading {

  padding: 1rem;

  opacity: .75;

}



@media (max-width: 720px) {

  .location-options-modal {

    place-items: stretch;

  }



  .location-options-modal__panel {

    width: 100vw;

    max-height: 100vh;

    border-radius: 0;

  }



  .location-option-row {

    grid-template-columns: 1fr;

  }



  .location-options-modal__footer {

    position: sticky;

    bottom: 0;

    background: var(--gti-surface, #fff);

  }

}



.location-options-create{
  border:1px solid #cfe0ff;
  background:#f7fbff;
  border-radius:12px;
  padding:14px;
  margin:0 0 14px 0;
}
.location-options-create__title{
  margin:0 0 4px 0;
  font-size:15px;
  font-weight:700;
}
.location-options-create__help{
  margin:0 0 10px 0;
  color:#52627a;
  font-size:13px;
}
.location-options-create__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.location-options-create__grid label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  font-weight:600;
}
.location-options-create__grid input,
.location-options-create__grid select{
  min-height:34px;
  border:1px solid #cfd8e3;
  border-radius:8px;
  padding:6px 8px;
  background:#fff;
}
.location-options-create__button{
  margin-top:10px;
  min-height:34px;
  border:0;
  border-radius:8px;
  padding:7px 12px;
  background:#0f3f7a;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.location-options-create__status{
  margin-top:8px;
  font-size:13px;
}
.location-options-create__status[data-status="success"]{color:#166534;}
.location-options-create__status[data-status="error"]{color:#b91c1c;}
.location-options-create__status[data-status="running"]{color:#1d4ed8;}
@media (max-width:700px){.location-options-create__grid{grid-template-columns:1fr;}}

/* V15.5.13 - Human options UX: checkbox list + details + creation toggle */
.location-options-workspace{
  display:grid;
  grid-template-columns:minmax(220px, 34%) minmax(0, 1fr);
  gap:14px;
  align-items:start;
}
.location-options-list-panel,
.location-options-detail-panel{
  border:1px solid rgba(15,63,122,.14);
  border-radius:14px;
  background:#fff;
  min-width:0;
}
.location-options-list-panel{
  padding:12px;
  position:sticky;
  top:0;
}
.location-options-detail-panel{
  padding:12px;
}
.location-options-panel-title{
  margin:0 0 10px 0;
  font-size:15px;
  font-weight:800;
  color:#0f2742;
}
.location-options-search{
  width:100%;
  box-sizing:border-box;
  min-height:36px;
  border:1px solid #cfd8e3;
  border-radius:10px;
  padding:7px 10px;
  margin-bottom:10px;
}
.location-options-list{
  display:grid;
  gap:10px;
  max-height:min(52vh, 520px);
  overflow:auto;
  padding-right:4px;
}
.location-options-list-group{
  display:grid;
  gap:4px;
}
.location-options-list-group__title{
  padding:7px 9px;
  border-radius:9px;
  background:#f3f4f6;
  color:#334155;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.location-options-list-item{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  border:1px solid #e1e8f0;
  border-radius:10px;
  background:#fff;
  padding:9px;
  text-align:left;
  cursor:pointer;
}
.location-options-list-item:hover,
.location-options-list-item.is-active{
  border-color:#0f6d7a;
  background:#f0fbfd;
}
.location-options-list-item__name{
  min-width:0;
  font-weight:700;
  color:#0f2742;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.location-options-list-item__badge{
  border-radius:999px;
  padding:2px 7px;
  background:#eef2ff;
  color:#334155;
  font-size:11px;
  font-weight:700;
}
.location-options-create-toggle{
  width:100%;
  margin-top:12px;
  min-height:36px;
  border:1px solid #0f3f7a;
  border-radius:10px;
  background:#fff;
  color:#0f3f7a;
  font-weight:800;
  cursor:pointer;
}
.location-options-create[hidden]{display:none!important;}
.location-options-create{
  margin:10px 0 0 0;
}
.location-options-create__actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.location-options-create__cancel{
  margin-top:10px;
  min-height:34px;
  border:1px solid #cfd8e3;
  border-radius:8px;
  padding:7px 12px;
  background:#fff;
  color:#334155;
  font-weight:700;
  cursor:pointer;
}
.location-options-detail-card{
  display:grid;
  gap:14px;
}
.location-options-detail-card__header{
  display:flex;
  gap:12px;
  align-items:flex-start;
  justify-content:space-between;
  padding:12px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #e1e8f0;
}
.location-options-detail-card__header strong{
  display:block;
  margin-bottom:4px;
  font-size:18px;
  color:#0f2742;
}
.location-options-detail-card__header span{
  display:block;
  color:#52627a;
  font-size:13px;
}
.location-options-detail-selected{
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  font-weight:800;
  color:#0f3f7a;
}
.location-options-detail-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:0;
}
.location-options-detail-meta div{
  border:1px solid #e1e8f0;
  border-radius:10px;
  padding:9px;
  background:#fff;
}
.location-options-detail-meta dt{
  font-size:11px;
  font-weight:800;
  color:#64748b;
  margin:0 0 4px;
}
.location-options-detail-meta dd{
  margin:0;
  font-weight:700;
  color:#0f2742;
}
.location-options-detail-fields{
  display:grid;
  gap:10px;
}
.location-options-detail-fields label{
  display:grid;
  gap:5px;
  font-size:12px;
  font-weight:800;
  color:#334155;
}
.location-options-detail-fields input,
.location-options-detail-fields select,
.location-options-detail-fields textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfd8e3;
  border-radius:10px;
  padding:8px 10px;
  min-height:38px;
  background:#fff;
}
.location-options-detail-fields textarea{
  min-height:110px;
  resize:vertical;
}
@media (max-width:760px){
  .location-options-workspace{grid-template-columns:1fr;}
  .location-options-list-panel{position:static;}
  .location-options-list{max-height:none;}
  .location-options-detail-meta{grid-template-columns:1fr;}
  .location-options-detail-card__header{display:grid;}
}

/* V15.5.13 - options gratuites / tarifées */
.location-options-list-item{
  grid-template-columns:auto minmax(0,1fr) auto auto;
}
.location-options-list-item__price{
  border-radius:999px;
  padding:2px 7px;
  background:#ecfdf5;
  color:#166534;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.location-options-list-item__price.is-paid{
  background:#fff7ed;
  color:#9a3412;
}
.location-options-detail-meta{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.location-options-detail-total{
  border:1px solid #e1e8f0;
  border-radius:10px;
  padding:10px 12px;
  background:#f8fafc;
  color:#0f2742;
  font-weight:900;
}
@media (max-width:760px){
  .location-options-list-item{grid-template-columns:auto minmax(0,1fr);}
  .location-options-list-item__badge,
  .location-options-list-item__price{grid-column:2; justify-self:start;}
  .location-options-detail-meta{grid-template-columns:1fr;}
}

/* v15.5.14 - édition humaine de la tarification par option */
.location-options-pricing-editor {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  padding: 12px;
  display: grid;
  gap: 10px;
  background: rgba(248, 250, 252, 0.8);
}
.location-options-pricing-editor legend {
  font-weight: 700;
  padding: 0 6px;
}
.location-options-pricing-editor label {
  display: grid;
  gap: 6px;
}
.location-options-pricing-editor label:has(input[type="radio"]) {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* V15.5.15 — édition complète d'option + prix libre */
.location-options-identity-editor {
  border: 1px solid #d8e2f0;
  border-radius: 12px;
  padding: 12px;
  display: grid;
  gap: 10px;
  background: #fbfdff;
}
.location-options-identity-editor legend {
  font-weight: 800;
  color: #12315d;
  padding: 0 6px;
}
.location-options-identity-editor label {
  display: grid;
  gap: 6px;
  font-weight: 700;
  color: #31435c;
}
.location-options-identity-editor input,
.location-options-identity-editor select,
.location-options-identity-editor textarea,
.location-options-pricing-editor input[type="text"] {
  width: 100%;
  border: 1px solid #cbd7e6;
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  background: #fff;
}
.location-options-identity-editor textarea {
  min-height: 84px;
  resize: vertical;
}
.location-options-pricing-editor input[type="text"] {
  font-weight: 700;
}

/* V15.5.16 - édition complète et suppression option */
.location-options-detail-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.location-options-delete-button {
  border: 1px solid #dc2626;
  background: #fff5f5;
  color: #991b1b;
  border-radius: 10px;
  padding: 8px 10px;
  font-weight: 700;
  cursor: pointer;
}
.location-options-delete-button:hover,
.location-options-delete-button:focus {
  background: #fee2e2;
  outline: 2px solid rgba(220, 38, 38, .25);
}
.location-options-pricing-editor input[type="text"]::-webkit-outer-spin-button,
.location-options-pricing-editor input[type="text"]::-webkit-inner-spin-button,
.location-options-pricing-editor input[data-option-price]::-webkit-outer-spin-button,
.location-options-pricing-editor input[data-option-price]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.location-options-pricing-editor input[type="text"] {
  appearance: textfield;
}
@media (max-width: 760px) {
  .location-options-detail-card__actions {
    align-items: stretch;
  }
}

.location-options-checkbox-field {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.25rem;
}
.location-options-checkbox-field input[type="checkbox"] {
  width: auto;
}


/* V15.5.19 - Lisibilite liste options : libelle complet, tarif secondaire, suppression type technique */
.location-options-list-item,
.location-options-list-item.is-active {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 10px 11px;
}
.location-options-list-item__content {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.location-options-list-item__name {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.22;
  word-break: break-word;
}
.location-options-list-item__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 18px;
}
.location-options-list-item__badge {
  display: none !important;
}
.location-options-list-item__price {
  justify-self: start;
  font-size: 12px;
  padding: 2px 8px;
}
@media (max-width:760px){
  .location-options-list-item{grid-template-columns:auto minmax(0,1fr);}
  .location-options-list-item__price{grid-column:auto; justify-self:start;}
}
