/* POS Central responsive layer - shared by public, admin and superadmin pages */
:root { --pos-touch-size: 44px; }
html, body { max-width: 100%; }
body { overflow-x: hidden; }
img, video, canvas, svg, iframe { max-width: 100%; }
img, video { height: auto; }
.content-wrapper, .content, .container, .container-fluid, .card, .modal-content { min-width: 0; max-width: 100%; }
.table-responsive, .table-responsive-mobile { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-responsive-mobile { position: relative; }
.form-control, .custom-select, .select2-container, .input-group { max-width: 100%; }
.select2-container { width: 100% !important; }
.btn { white-space: normal; }
.dropdown-menu { max-width: calc(100vw - 20px); }
.dataTables_wrapper { width: 100%; overflow: visible; }
.dataTables_wrapper .dataTables_filter input { max-width: 100%; }
.swal-overlay { padding: 12px; }
@media (max-width: 991.98px) {
  .content-wrapper { padding: .65rem !important; }
  .content-header { padding: .65rem 0; }
  .content-header h1, .content-header h2, .content-header h3, .content-header h4 { line-height: 1.4; word-break: break-word; }
  .card { border-radius: 10px; }
  .card-header, .card-body, .card-footer { min-width: 0; }
  .table-responsive-mobile > table { min-width: 680px; margin-bottom: 0; }
  .table-responsive-mobile::after { content: "เลื่อนซ้าย–ขวาเพื่อดูข้อมูลทั้งหมด"; display: block; padding: .35rem .5rem; color: #64748b; font-size: 11px; text-align: right; background: #f8fafc; }
  .table-responsive-mobile .btn { margin: .12rem; }
  .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
  .nav-tabs .nav-link { white-space: nowrap; }
  .btn-group, .btn-group-vertical { max-width: 100%; flex-wrap: wrap; }
  .modal-dialog { margin: .6rem auto; width: calc(100% - 1.2rem); max-width: calc(100% - 1.2rem); }
  .main-header .navbar-nav .nav-link { min-width: 42px; text-align: center; }
  body.sidebar-open { overflow: hidden; }
}@media (max-width: 767.98px) {
  body { font-size: 14px; }
  .container, .container-fluid { padding-left: .6rem; padding-right: .6rem; }
  .content-wrapper { padding: .45rem !important; }
  .content-header { padding: .5rem 0; }
  .content-header h1 { font-size: 1.35rem; }
  .content-header h2 { font-size: 1.25rem; }
  .content-header h3, .content-header h4 { font-size: 1.08rem; }
  .card { margin-bottom: .8rem; }
  .card-header { padding: .8rem; }
  .card-body { padding: .85rem; }
  .card-footer { padding: .75rem .85rem; }
  .card-header .card-title { float: none; font-size: 1rem; line-height: 1.4; }
  .card-header .card-tools { float: none; margin: .5rem 0 0; }
  input.form-control, select.form-control, select.custom-select, .input-group-text { min-height: var(--pos-touch-size); font-size: 16px; }
  textarea.form-control { min-height: 96px; font-size: 16px; }
  input[type="file"] { max-width: 100%; font-size: 14px; }
  .btn:not(.btn-xs) { min-height: 42px; }
  .card-footer > .btn, .card-footer > a.btn { margin-top: .25rem; margin-bottom: .25rem; }
  .modal-header { padding: .75rem; }
  .modal-body { padding: .85rem; max-height: calc(100vh - 150px); overflow-y: auto; }
  .modal-footer { display: flex; flex-direction: column; align-items: stretch; padding: .65rem; }
  .modal-footer .btn, .modal-footer a.btn { width: 100%; margin: .2rem 0; }
  .dataTables_wrapper .row > div { width: 100%; max-width: 100%; flex: 0 0 100%; margin-bottom: .4rem; }
  .dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate { text-align: left !important; }
  .dataTables_filter label, .dataTables_filter input { display: block; width: 100% !important; margin-left: 0 !important; }
  .pagination { flex-wrap: wrap; justify-content: flex-start !important; }
  .small-box .inner h3 { font-size: 1.45rem !important; }
  .info-box { min-height: 78px; }
  .login-box, .register-box { width: calc(100% - 24px) !important; max-width: 430px; margin: 24px auto !important; }
  .login-card, .register-card { border-radius: 14px !important; }
  .navbar-brand { max-width: 58vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sweet-alert { left: 12px !important; right: 12px !important; width: auto !important; max-width: none !important; margin-left: 0 !important; padding: 18px !important; transform: translateY(-50%); }
  .sweet-alert h2 { font-size: 1.25rem !important; }
  .sweet-alert p { font-size: 14px !important; }
}@media (max-width: 575.98px) {
  .content-wrapper { margin-top: 0; }
  .main-header .navbar-nav .nav-link { padding-left: .55rem; padding-right: .55rem; }
  .main-sidebar { max-width: 86vw; }
  .row.gutters-sm, .form-row { margin-left: -.3rem; margin-right: -.3rem; }
  .row.gutters-sm > [class*="col-"], .form-row > [class*="col-"] { padding-left: .3rem; padding-right: .3rem; }
  .btn-block-mobile { display: block !important; width: 100% !important; }
  .hero-section { padding-left: .25rem; padding-right: .25rem; }
  .hero-section h1 { font-size: 1.6rem !important; }
  .register-card, .login-card { padding: 1rem !important; }
}
@media print {
  .table-responsive-mobile { overflow: visible !important; }
  .table-responsive-mobile > table { min-width: 0 !important; }
  .table-responsive-mobile::after { display: none !important; }
}