/* หน้าที่: พื้นที่สัมผัสและการเข้าถึงด้วยแป้นพิมพ์ */
/* Friendly Group touch interaction layer — mobile and tablet */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
button,a,input,select,textarea,[role="button"]{-webkit-tap-highlight-color:transparent}
button,a,[role="button"]{touch-action:manipulation}
.touch-scroll{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

@media (pointer:coarse),(max-width:1024px){
  :root{--touch-target:48px}
  button,a,.primary-dash-button,.nav-links>a,.nav-dropdown>button,.dashboard-sidebar a,.dashboard-sidebar button{min-height:var(--touch-target)}
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea{min-height:48px;font-size:16px!important}
  input[type="checkbox"],input[type="radio"]{width:22px;height:22px;accent-color:#6554e7}
  .primary-dash-button,.module-toolbar button,.module-pagination button{padding-inline:18px}
  .module-card,.panel,.venue-card,.care-card,.discover-card{transition:transform .18s ease,box-shadow .18s ease}
  .module-card:active,.venue-card:active,.care-card:active,.discover-card:active{transform:scale(.985)}
  .module-toolbar,.filter-bar{gap:10px}.module-toolbar>*,.filter-bar>*{min-width:0}
  .module-card-grid{gap:14px}
  .dashboard-sidebar{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
  .dashboard-sidebar a{padding-block:11px}
  .admin-modal,.dashboard-search-dialog,.poster-dialog,.attendance-status-dialog{overscroll-behavior:contain}
  .admin-modal-box,.dashboard-search-dialog>div{max-height:90dvh;overflow:auto;-webkit-overflow-scrolling:touch}
  .modal-close,[data-dashboard-search-close],[data-poster-close],[data-tag-close]{width:48px!important;height:48px!important;display:grid!important;place-items:center!important}
  .toast-stack{right:max(12px,env(safe-area-inset-right));bottom:max(82px,calc(env(safe-area-inset-bottom) + 12px));max-width:min(390px,calc(100vw - 24px))}
  .attendance-table-scroll,.permission-table,.log-table{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .attendance-cell button{min-height:52px;touch-action:manipulation}
  .attendance-date-actions button,.attendance-date-actions label{min-height:48px}
}

@media (min-width:600px) and (max-width:1024px){
  .dashboard-main{padding:22px clamp(18px,3vw,34px)}
  .module-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-page-layout{grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr)}
  .admin-modal-box{width:min(720px,calc(100vw - 36px))}
  .mobile-dock{max-width:580px;left:50%;right:auto;transform:translateX(-50%);border-radius:24px 24px 0 0}
}

@media (max-width:599px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  .dashboard-main{padding:14px 12px calc(92px + env(safe-area-inset-bottom))}
  .module-header{align-items:flex-start;gap:12px}.module-header>div{min-width:0}.module-header h1{font-size:clamp(20px,6vw,27px);overflow-wrap:anywhere}.module-header p{font-size:12px}
  .module-header>.primary-dash-button{width:100%;justify-content:center}
  .module-toolbar,.filter-bar{display:grid!important;grid-template-columns:1fr!important}.module-toolbar>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .search-box{width:100%}.search-box input{width:100%}
  .module-card-grid{grid-template-columns:1fr!important}
  .panel{border-radius:18px}
  .form-grid{grid-template-columns:1fr!important}.form-grid .full{grid-column:auto!important}
  .profile-page-layout{grid-template-columns:1fr!important}
  .admin-modal{width:100vw;max-width:none;height:auto;max-height:94dvh;margin:auto 0 0;border-radius:26px 26px 0 0}
  .admin-modal-box{width:100%;max-height:94dvh;border-radius:26px 26px 0 0;padding:20px 16px calc(18px + env(safe-area-inset-bottom))}
  .dashboard-search-dialog{width:100vw;max-width:none;margin:0;height:100dvh;max-height:none;border-radius:0}.dashboard-search-dialog>div{height:100%;max-height:none;padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom))}
  .dashboard-sidebar{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .attendance-control{border-radius:18px}.attendance-date-actions{scroll-snap-type:x proximity}.attendance-date-actions>*{scroll-snap-align:start;flex:0 0 auto}
  .attendance-summary{grid-template-columns:1fr 1fr}.attendance-summary article{min-height:76px}
  .employee-profile-form fieldset{padding:15px 12px}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.module-card,.panel,.venue-card,.care-card,.discover-card{transition:none!important}}
