/* TransportPremium 1.21.0 — tactile et responsive réel, largeurs sans zoom. */
.tp121-welcome{width:min(1140px,100%);margin:min(7vh,80px) auto;padding:clamp(12px,2vw,24px);min-width:0}
.tp121-welcome-text{text-align:center;margin:0 0 28px}.tp121-welcome-text small{font-weight:900;letter-spacing:.19em;color:#315fd0;font-size:11px}
.tp121-welcome-text h2{font:900 clamp(24px,3vw,40px)/1.15 Manrope,Inter,sans-serif;color:#1e3356;letter-spacing:-.04em;margin:12px 0}
.tp121-welcome-text p,.tp121-home-note{color:#60708b;font-size:14px;line-height:1.5}.tp121-home-note{text-align:center;margin:18px 0 0}
.tp121-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tp121-choice{text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:12px;background:linear-gradient(155deg,#fff,#f4f8ff);border:1px solid #d9e5fa;border-radius:24px;padding:clamp(18px,3vw,35px);color:#1d3356;min-width:0;box-shadow:0 16px 35px #1a408813;transition:transform .18s,box-shadow .18s}
.tp121-choice:hover,.tp121-choice:focus-visible{transform:translateY(-4px);box-shadow:0 26px 50px #1a408829;border-color:#6a91ee}
.tp121-choice-icon{width:62px;height:62px;display:grid;place-items:center;background:#e5edff;color:#315dd6;border-radius:18px;font-size:32px}
.tp121-choice small{letter-spacing:.13em;font-size:10px;color:#5879b8;font-weight:900}.tp121-choice strong{font:900 clamp(20px,2vw,27px) Manrope,Inter,sans-serif}
.tp121-choice p{color:#7384a1;font-size:13px;margin:0;line-height:1.5}.tp121-choice em{font-size:13px;color:#285cce;font-style:normal;font-weight:850;margin-top:10px}
.tp121-tourism{background:linear-gradient(155deg,#fff,#fff4f9);border-color:#f3dfe9}.tp121-tourism .tp121-choice-icon{background:#ffe5f1;color:#cd2c7a}.tp121-tourism em{color:#bf3576}
.tp121-clients-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;background:#fff;border:1px solid #dbe6f5;padding:14px;border-radius:16px;margin:14px 0}
.tp121-section-heading{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 15px}.tp121-section-heading strong{font-size:15px;color:#182d4c}.tp121-section-heading span{font-size:11px;color:#74819b}
.tp121-clients-inline label{display:grid;gap:5px;min-width:0;color:#2f4260;font-size:12px;font-weight:750}.tp121-clients-inline input,.tp121-clients-inline select{width:100%;height:44px;min-width:0;border:1px solid #cdd8ea;border-radius:10px;padding:9px 12px;background:#fff;color:#243753;font-size:14px}
.tp121-clients-inline .tp121-client-full{grid-column:1/-1}.tp121-new-client{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tp121-existing-client .tp121-new-client{display:none}.tp121-client-link{grid-column:1/-1;justify-self:start;color:#2659c5;font-weight:850;font-size:12px;border:0;background:transparent;min-height:38px;cursor:pointer}
.tp121-customer-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.tp121-customer-toolbar input{flex:1 1 220px;min-width:0;padding:11px 12px;border:1px solid #ccd8e9;border-radius:10px;background:#fff;color:#233653}
.tp121-customer-list{display:grid;gap:9px;max-height:min(55dvh,510px);overflow-y:auto}.tp121-customer-tile{display:flex;align-items:center;gap:9px;background:#f7f9fd;border:1px solid #e1e7f3;border-radius:14px;padding:12px;min-width:0;color:#243956}
.tp121-client-avatar{display:grid;place-items:center;background:#e6eeff;color:#2855c1;border-radius:10px;flex:0 0 35px;height:35px;font-weight:900}
.tp121-customer-tile>div:nth-child(2){min-width:0;flex:1}.tp121-customer-tile b,.tp121-customer-tile small{display:block;white-space:normal;overflow-wrap:anywhere}.tp121-customer-tile small{font-size:11px;color:#697f9b;margin-top:4px}
.tp121-client-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tp121-client-form label{display:grid;gap:7px;color:#293d5d;min-width:0;font-weight:750;font-size:12px}.tp121-client-form input,.tp121-client-form textarea{max-width:100%;min-width:0;padding:11px;border:1px solid #cbd6e7;background:#fff;color:#263a55;border-radius:10px;font:inherit}.tp121-client-form textarea{min-height:85px}.tp121-span{grid-column:1/-1}
.tp121-payment-preset{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tp121-pay-option{border:1px solid #ccd8e9;background:#fff;color:#264268;border-radius:12px;min-width:0;min-height:48px;font-size:12px;font-weight:800;cursor:pointer;white-space:normal;padding:8px 6px}.tp121-pay-option:focus-visible,.tp121-pay-option:hover,.tp121-pay-option.active{background:#e6efff;color:#2254bd;border-color:#5b86ec}
.tp121-back{white-space:normal}
/* Contrôle structurel : éviter les colonnes qui dépassent et les champs coupés sur smartphone. */
.app-shell,.main,.content,.modal,.modal-body,.tp17-root,.tp17-wizard-form,.tp17-modal-fields,.tp18-tourism-box,.tp18-commercial,.tp20-billing,.tp19-fleet,.tp19-form,.tp19-direction,.tp17-floating-panel,.tp17-modal-map{min-width:0;max-width:100%;box-sizing:border-box}
:where(.modal-body,.content,.tp17-modal-fields,.tp18-commercial,.tp19-form,.tp19-direction) :is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
.modal-backdrop{padding:max(9px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow-y:auto}
.modal{width:min(890px,100%);max-height:calc(100dvh - 18px);overflow:hidden;display:flex;flex-direction:column}.modal-head,.modal-foot{flex:0 0 auto;min-width:0}.modal-head h3{min-width:0;overflow-wrap:anywhere}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.modal-foot{flex-wrap:wrap}
.tp17-modal-backdrop .modal{width:min(1040px,100%)}.tp17-modal-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.tp18-commercial{grid-template-columns:repeat(3,minmax(0,1fr))}.tp18-trip-choices{grid-template-columns:repeat(3,minmax(0,1fr))}
.tp19-direction-cards,.tp19-report-grid,.tp19-direction-filters,.tp19-fleet-grid{min-width:0;max-width:100%}
@media(max-width:900px){.tp17-toolbar{max-height:190px;overflow:auto}.tp17-floating-panel{top:205px}.tp17-panel-handle{top:220px}.tp17-modal-fields,.tp18-commercial{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:690px){
  .tp121-choices{grid-template-columns:minmax(0,1fr)}.tp121-welcome{margin:12px auto}.tp121-choice{min-height:175px}
  .tp121-payment-preset{grid-template-columns:repeat(2,minmax(0,1fr))}.tp121-client-form,.tp121-new-client{grid-template-columns:1fr}
  .tp121-customer-tile{flex-wrap:wrap}.tp121-customer-tile .btn{flex:1 1 auto}
  .tp17-modal-fields,.tp18-commercial,.tp18-trip-choices,.tp20-billing,.tp19-form{grid-template-columns:minmax(0,1fr)!important}
  .tp17-modal-fields>*{min-width:0}.tp18-trip-choices label{min-height:64px}
  .tp121-clients-inline{grid-template-columns:1fr}.tp121-clients-inline .tp121-section-heading,.tp121-clients-inline .tp121-client-full,.tp121-clients-inline .tp121-new-client,.tp121-clients-inline .tp121-client-link{grid-column:1}
  #modalHost .modal{width:100%;max-height:calc(100dvh - 12px);border-radius:14px}
  #modalHost .modal-body{padding:12px!important}
  #modalHost .modal-foot{padding:10px!important;display:flex;gap:7px}
  #modalHost .modal-foot .btn{flex:1 1 120px;min-height:44px;white-space:normal}
  .tp17-toolbar{top:8px;left:8px;right:8px;gap:7px;padding:10px;max-height:190px;overflow-y:auto}
  .tp17-floating-panel{top:218px;bottom:65px}.tp17-panel-handle{top:220px}
  .tp19-direction-filters,.tp19-fleet-toolbar,.tp19-fleet-head{flex-wrap:wrap}
  .tp19-table-wrap,.table-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  input,select,textarea{font-size:16px!important} /* iOS : pas de zoom automatique au focus */
}
@media(max-width:390px){.tp121-payment-preset{grid-template-columns:repeat(2,minmax(0,1fr))}.tp17-toolbar .tp17-btn{flex:1 1 120px;justify-content:center}.tp17-modal-map>div:first-child{height:200px}}

.tp121-clients-page{max-width:1100px;margin:0 auto}.tp121-clients-page h3{font:900 23px Manrope,Inter,sans-serif;color:#203758;margin:8px 0 22px}.tp121-clients-page .tp121-customer-list{max-height:none}

/* Cockpit administrateur : exploiter toute la surface disponible sans découper Google Maps. */
body.tp121-admin-cockpit .content{padding:0!important;max-width:none!important;overflow:hidden!important}
body.tp121-admin-cockpit #tp17Root{width:100%;height:calc(100dvh - 78px);min-height:480px;margin:0;border-radius:0}
body.tp121-admin-cockpit .main{min-width:0;overflow:hidden}
@media(max-width:690px){body.tp121-admin-cockpit #tp17Root{height:calc(100dvh - 67px);min-height:440px}}
