.hourvia-wrap{max-width:1100px;margin:24px auto}.hourvia-heading-row,.hourvia-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.hourvia-grid{display:grid;gap:16px}.hourvia-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hourvia-grid-times{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.hourvia-field{margin-bottom:14px}.hourvia-field label{display:block;font-weight:600;margin-bottom:6px}.hourvia-field input[type=text],.hourvia-field input[type=date],.hourvia-field input[type=time],.hourvia-field select,.hourvia-field textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #c9c9c9;border-radius:6px;background:#fff}.hourvia-checkbox label{display:flex;gap:8px;align-items:center}.hourvia-day{border:1px solid #ddd;border-radius:8px;padding:16px;margin:14px 0;background:#fff}.hourvia-day-title{font-size:17px;margin-bottom:12px;display:flex;gap:8px}.hourvia-day-date{opacity:.65}.hourvia-total-field output{display:block;padding:10px 12px;border-radius:6px;background:#f3f4f5;font-weight:700}.hourvia-button{display:inline-block;border:0;border-radius:6px;padding:10px 16px;background:#2271b1;color:#fff!important;text-decoration:none;cursor:pointer}.hourvia-table{width:100%;border-collapse:collapse;background:#fff}.hourvia-table th,.hourvia-table td{padding:11px;border-bottom:1px solid #e5e5e5;text-align:left}.hourvia-table-scroll{overflow:auto}.hourvia-status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.hourvia-status-submitted{background:#fff3cd}.hourvia-status-validated{background:#d1e7dd}.hourvia-status-rejected{background:#f8d7da}.hourvia-small{font-size:12px;margin-top:5px;max-width:320px}.hourvia-notice{padding:12px 14px;border-radius:6px;margin:12px 0}.hourvia-success{background:#d1e7dd}.hourvia-error{background:#f8d7da}.hourvia-info{background:#cff4fc}.hourvia-empty{padding:20px;background:#f6f7f7;border-radius:8px}@media(max-width:800px){.hourvia-grid-2,.hourvia-grid-times{grid-template-columns:1fr 1fr}.hourvia-heading-row,.hourvia-form-footer{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.hourvia-grid-2,.hourvia-grid-times{grid-template-columns:1fr}}
.hourvia-extra-interventions{margin-top:12px}.hourvia-intervention-row{display:grid;grid-template-columns:130px 130px minmax(180px,1fr) minmax(160px,1fr) auto;gap:12px;align-items:end;padding:12px;margin:10px 0;border:1px dashed #b8c2cc;border-radius:7px;background:#f8f9fa}.hourvia-intervention-row .hourvia-field{margin-bottom:0}.hourvia-add-intervention{border:1px solid #2271b1;background:#fff;color:#2271b1;border-radius:6px;padding:8px 12px;cursor:pointer;font-weight:600}.hourvia-remove-intervention{border:0;background:transparent;color:#b32d2e;cursor:pointer;padding:10px 4px}.hourvia-extra-readonly td{background:#f8f9fa}@media(max-width:800px){.hourvia-intervention-row{grid-template-columns:1fr 1fr}.hourvia-remove-intervention{grid-column:1/-1;text-align:left}}@media(max-width:520px){.hourvia-intervention-row{grid-template-columns:1fr}}

.hourvia-day-title{align-items:center}.hourvia-day-total-wrap{margin-left:auto;font-size:14px}.hourvia-period-row{display:grid;grid-template-columns:110px 130px 130px minmax(200px,1fr) minmax(170px,1fr);gap:12px;align-items:end;padding:12px 0;border-top:1px solid #eef0f2}.hourvia-period-row:first-of-type{border-top:0}.hourvia-period-row .hourvia-field{margin-bottom:0}.hourvia-period-label{font-weight:700;padding:10px 0}@media(max-width:900px){.hourvia-period-row{grid-template-columns:110px 1fr 1fr}.hourvia-period-row .hourvia-field:nth-of-type(3),.hourvia-period-row .hourvia-field:nth-of-type(4){grid-column:auto}.hourvia-period-label{grid-row:1/3}}@media(max-width:600px){.hourvia-period-row{grid-template-columns:1fr 1fr}.hourvia-period-label{grid-column:1/-1;grid-row:auto}.hourvia-day-title{flex-wrap:wrap}.hourvia-day-total-wrap{width:100%;margin-left:0}}
.hourvia-portal-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:22px;border:1px solid #dcdcde;border-radius:8px;background:#fff}.hourvia-portal-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hourvia-portal-link{display:inline-block;padding:8px 12px;border-radius:6px;color:#2271b1!important;text-decoration:none;font-weight:600}.hourvia-portal-link:hover,.hourvia-portal-link.is-active{background:#2271b1;color:#fff!important}.hourvia-portal-link.hourvia-logout{color:#b32d2e!important}.hourvia-portal-link.hourvia-logout:hover{background:#b32d2e;color:#fff!important}@media(max-width:600px){.hourvia-portal-nav{align-items:flex-start;flex-direction:column}.hourvia-portal-links{width:100%;flex-direction:column;align-items:stretch}.hourvia-portal-link{text-align:center}}

/* Hourvia 1.2.8 — responsive mobile timesheet */
@media (max-width: 700px) {
  .hourvia-wrap {
    width: auto;
    max-width: none;
    margin: 12px auto;
    padding: 0 10px;
    box-sizing: border-box;
  }

  .hourvia-day {
    margin: 12px 0 16px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #d9dee5;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(23,43,77,.06);
  }

  .hourvia-day-title {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 4px 8px;
    align-items: center;
    margin: 0;
    padding: 13px 15px;
    background: #f7f9fb;
    border-bottom: 1px solid #e7ebef;
  }

  .hourvia-day-title > strong {
    font-size: 17px;
    line-height: 1.2;
  }

  .hourvia-day-date {
    font-size: 14px;
    opacity: .72;
  }

  .hourvia-day-total-wrap {
    width: auto;
    margin: 0;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eaf3fb;
    color: #135e96;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
  }

  .hourvia-period-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 11px 12px;
    align-items: end;
    padding: 14px 15px;
    border-top: 1px solid #edf0f3;
  }

  .hourvia-period-row:first-of-type {
    border-top: 0;
  }

  .hourvia-period-label {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    padding: 0 0 1px;
    font-size: 15px;
    font-weight: 700;
  }

  .hourvia-period-row > .hourvia-field {
    min-width: 0;
    margin: 0;
  }

  /* Full-width chantier + véhicule. The nth-child fallback also works
     with the existing 1.2.6 markup, so no PHP markup migration is required. */
  .hourvia-period-row > .hourvia-field-chantier,
  .hourvia-period-row > .hourvia-field-vehicle,
  .hourvia-period-row > .hourvia-field:nth-child(4),
  .hourvia-period-row > .hourvia-field:nth-child(5) {
    grid-column: 1 / -1 !important;
  }

  .hourvia-field label {
    margin-bottom: 6px;
    font-size: 14px;
    line-height: 1.25;
  }

  .hourvia-field input[type=text],
  .hourvia-field input[type=date],
  .hourvia-field input[type=time],
  .hourvia-field select,
  .hourvia-field textarea {
    width: 100%;
    min-height: 48px;
    padding: 10px 11px;
    border: 1px solid #c7ced6;
    border-radius: 9px;
    background: #fff;
    font-size: 16px;
    line-height: 1.25;
    box-sizing: border-box;
  }

  .hourvia-extra-interventions {
    margin: 0;
    padding: 0 15px;
  }

  .hourvia-intervention-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 11px 12px;
    margin: 0 0 13px;
    padding: 13px;
    border: 1px dashed #b8c2cc;
    border-radius: 10px;
    background: #fafbfc;
  }

  .hourvia-intervention-row > .hourvia-field:nth-child(3),
  .hourvia-intervention-row > .hourvia-field:nth-child(4),
  .hourvia-intervention-row > .hourvia-field-chantier,
  .hourvia-intervention-row > .hourvia-field-vehicle {
    grid-column: 1 / -1 !important;
  }

  .hourvia-remove-intervention {
    grid-column: 1 / -1;
    justify-self: start;
    padding: 5px 0;
    font-weight: 600;
  }

  .hourvia-add-intervention {
    display: block;
    width: calc(100% - 30px);
    margin: 1px 15px 15px;
    padding: 12px 14px;
    border-radius: 9px;
    font-size: 15px;
    text-align: center;
    box-sizing: border-box;
  }

  /* Searchable chantier picker */
  .hourvia-mobile-hidden-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .hourvia-mobile-select-button {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 11px;
    border: 1px solid #c7ced6;
    border-radius: 9px;
    background: #fff;
    color: #1d2327;
    text-align: left;
    font: inherit;
    font-size: 16px;
    line-height: 1.25;
    cursor: pointer;
    box-sizing: border-box;
  }

  .hourvia-mobile-select-button::after {
    content: '⌄';
    flex: 0 0 auto;
    font-size: 20px;
    line-height: 1;
    color: #59636e;
  }

  .hourvia-mobile-select-button.is-placeholder {
    color: #646970;
  }

  body.hourvia-modal-open {
    overflow: hidden;
  }

  .hourvia-chantier-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    flex-direction: column;
    background: #fff;
    color: #1d2327;
  }

  .hourvia-chantier-modal.is-open {
    display: flex;
  }

  .hourvia-chantier-modal-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid #e2e7ec;
  }

  .hourvia-chantier-modal-close {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border: 0;
    border-radius: 9px;
    background: #f1f3f5;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
  }

  .hourvia-chantier-modal-title {
    font-size: 17px;
    font-weight: 700;
  }

  .hourvia-chantier-search-wrap {
    padding: 12px 14px;
    border-bottom: 1px solid #edf0f3;
  }

  .hourvia-chantier-search {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid #aeb7c2;
    border-radius: 10px;
    background: #fff;
    color: #1d2327;
    font-size: 16px;
    box-sizing: border-box;
  }

  .hourvia-chantier-list {
    flex: 1;
    overflow: auto;
    padding: 6px 0 20px;
    -webkit-overflow-scrolling: touch;
  }

  .hourvia-chantier-choice {
    display: block;
    width: 100%;
    padding: 13px 16px;
    border: 0;
    border-bottom: 1px solid #eef1f4;
    background: #fff;
    color: #1d2327;
    text-align: left;
    font: inherit;
    font-size: 15px;
    line-height: 1.3;
    cursor: pointer;
  }

  .hourvia-chantier-choice.is-selected {
    background: #e8f2fb;
    color: #135e96;
    font-weight: 700;
  }

  .hourvia-chantier-empty {
    padding: 28px 16px;
    text-align: center;
    color: #646970;
  }
}

@media (max-width: 380px) {
  .hourvia-day-title {
    grid-template-columns: 1fr auto;
  }
  .hourvia-day-date {
    grid-column: 1 / 2;
  }
  .hourvia-day-total-wrap {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
  }
}
