/* Ajustements communs téléphone et tablette — V15 */
html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%;height:auto}
main,header,footer,section,article,nav,form,div,span{min-width:0}
input,select,textarea,button{max-width:100%}
input[type="file"]{overflow:hidden}
p,small,td,th,a,label{overflow-wrap:anywhere}
.content,.dashboard,.legal,.form-page{width:100%}
.table{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.toast{max-width:calc(100vw - 2rem)}
.menu-toggle{display:none}

@media(max-width:760px){
  body{font-size:16px;line-height:1.5}
  h1{font-size:clamp(2rem,10vw,2.75rem);letter-spacing:-.025em}
  h2{font-size:clamp(1.55rem,7vw,2.1rem);letter-spacing:-.025em}
  h3{letter-spacing:-.015em}
  .hero,.dash{padding:1.1rem 1rem 2.25rem;border-radius:0 0 26px 26px}
  .dash.small{padding-bottom:1.5rem}
  .dash h1{font-size:clamp(2rem,10vw,2.7rem);margin-top:1.4rem}
  .hero>div{margin-top:2.2rem}
  .hero nav,.dash nav{gap:.75rem;align-items:flex-start;flex-wrap:wrap}
  .hero nav span,.dash nav span{display:flex;gap:.65rem;flex-wrap:wrap}
  .content,.dashboard,.legal,.form-page{padding:1.5rem .85rem;margin:0 auto}
  .card,.panel,.gift{padding:1rem;border-radius:16px}
  .empty{padding:2rem 1rem}
  .login{min-height:auto;padding:2rem .85rem;gap:1.5rem}
  .login>*,.rsvp>*{width:100%}
  button,.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
  .actions,.row,.response-actions,.event-actions{width:100%;align-items:stretch;flex-direction:column}
  .actions>.button,.row>.button,.response-actions>.button,.event-actions>.button,.event-actions>a{width:100%}
  .actions h2{margin-bottom:.25rem}
  .event-list,.gifts{grid-template-columns:minmax(0,1fr)}
  .event-card,.gift{width:100%}
  .mini{gap:.35rem}
  .stats{gap:.65rem}
  .stats div{padding:1rem}
  .stats strong{font-size:1.65rem}
  .form-grid,.gift-edit-form{grid-template-columns:minmax(0,1fr)}
  .form-grid>*,.gift-edit-form>*{grid-column:auto;width:100%}
  .inline{width:100%;gap:.7rem}
  .check{grid-template-columns:1.35rem minmax(0,1fr);align-items:start}
  .check input{margin-top:.2rem}
  .app-menu{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;padding:.5rem;overflow:visible;position:sticky}
  .app-menu a,.app-menu button{width:100%;min-height:42px;margin:0;padding:.55rem .4rem;text-align:center;white-space:normal;font-size:.92rem}
  .app-menu button{grid-column:auto}
  .app-menu .menu-toggle{display:flex;align-items:center;justify-content:space-between;padding:.65rem .8rem;background:var(--primary,var(--purple));color:#fff}
  .menu-toggle-icon{display:grid;gap:4px;width:23px}
  .menu-toggle-icon i{display:block;width:23px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
  .app-menu.is-open .menu-toggle-icon i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .app-menu.is-open .menu-toggle-icon i:nth-child(2){opacity:0}
  .app-menu.is-open .menu-toggle-icon i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .menu-js .app-menu:not(.is-open)>:not(.menu-toggle){display:none}
  .notification-heading,.notification-tools{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:.65rem}
  .notification-tools form,.notification-tools button{width:100%}
  .notifications li,.panel li{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;align-items:start}
  .notifications li form,.notifications li form button{width:100%}
  .notifications small{line-height:1.55}
  .notifications small a,.gift-row-actions button{white-space:normal}
  .response-summary{grid-template-columns:minmax(0,1fr)}
  .gift-readonly,.gift-summary,.gift-row-actions,.gift-edit-actions{grid-template-columns:minmax(0,1fr);width:100%}
  .gift-row-actions,.gift-edit-actions{display:grid;gap:.5rem}
  .gift-row-actions form,.gift-row-actions button,.gift-edit-actions button{width:100%}
  .photo-grid,.admin-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
  .admin-photo-grid article{min-width:0}
  .chat-message{width:100%;padding:.9rem}
  footer{padding:1rem;gap:.7rem;align-items:center;flex-direction:column;text-align:center}
  .child-hero-photo{max-width:130px}
  .event-code{max-width:100%;font-size:.92rem;letter-spacing:.04em}
  .table table{min-width:620px}
}

@media(max-width:420px){
  .photo-grid,.admin-photo-grid{grid-template-columns:minmax(0,1fr)}
  .theme-grid{grid-template-columns:minmax(0,1fr)}
  .hero,.dash{padding-left:.8rem;padding-right:.8rem}
  .content,.dashboard,.legal,.form-page{padding-left:.65rem;padding-right:.65rem}
}

@media(min-width:761px) and (max-width:1024px){
  .content,.dashboard{padding-left:1.5rem;padding-right:1.5rem}
  .gift-edit-form{grid-template-columns:1fr 1fr}
  .gift-edit-actions{grid-column:1/-1}
}
