/* AKR UI Contract v2 — presentation only. Shared by ERP, OPS, Staff, and APP. */
:root{--akr-ui-canvas:#f5f7fb;--akr-ui-surface:#fff;--akr-ui-ink:#172033;--akr-ui-muted:#64748b;--akr-ui-line:#dfe7f1;--akr-ui-brand:#2563eb;--akr-ui-radius:14px;--akr-ui-control-h:38px;--akr-ui-space:clamp(12px,1.5vw,20px)}
*,*:before,*:after{box-sizing:border-box}
html{min-height:100%;scroll-padding-top:env(safe-area-inset-top)}
body{min-height:100dvh;text-rendering:optimizeLegibility}
:where(button,input,select,textarea){font:inherit}
:where(button,[role="button"],a,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--akr-ui-brand) 30%,transparent);outline-offset:2px}
:where(button,[role="button"]){touch-action:manipulation}

/* Shared app shell: content grows naturally; only data regions and dialogs scroll. */
#view-app{min-height:100dvh;background:var(--akr-ui-canvas)}
#view-app .router-view{box-sizing:border-box;min-width:0;height:auto;min-height:0;max-height:none}
#view-app .router-view :is(.bg-white.rounded-2xl,.card-stretcher,.akr-panel,.pw-supply-workspace,.pw-master-workspace,.pw-settings-workspace){min-width:0}

/* One field, button, and form rhythm without changing validation or handlers. */
#view-app :is(.form-control,.form-select,input,select,textarea){min-height:var(--akr-ui-control-h);border-color:var(--akr-ui-line);border-radius:10px}
#view-app :is(.form-control,.form-select,input,select,textarea):focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
#view-app :is(.akr-btn,.btn){min-height:var(--akr-ui-control-h);border-radius:10px;transition:transform .16s ease,box-shadow .16s ease}
@media(hover:hover){#view-app :is(.akr-btn,.btn):hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(15,23,42,.10)}}

/* Global table frame: grow with data, then scroll inside the frame at the viewport limit. */
#view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap){box-sizing:border-box;min-width:0;max-width:100%;height:auto;max-height:var(--akr-table-max-height,min(68dvh,760px));overflow:auto;overscroll-behavior:auto;scrollbar-width:thin;scrollbar-color:#a8b5c7 transparent;background:var(--akr-ui-surface);border:1px solid var(--akr-ui-line);border-radius:var(--akr-ui-radius);-webkit-overflow-scrolling:touch}
#view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap)>table{border-collapse:separate;border-spacing:0}
#view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap)>table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;color:#526176;border-bottom:1px solid var(--akr-ui-line)}
#view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap)>table tbody tr:hover>td{background:#f1f5ff}

/* A single non-floating pagination footer contract. */
#view-app :is(.akr-table-load-more,.akr-pagination-standard,.akr-dist-footer.akr-table-load-more,.pw-supply-table-footer.akr-table-load-more,.akr-inventory-table-footer,.akr-master-product-pagination){position:static;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:42px;margin:10px 0 0;padding:9px 12px;border:1px solid var(--akr-ui-line);border-radius:12px;background:var(--akr-ui-surface);color:var(--akr-ui-muted);box-shadow:0 5px 14px rgba(15,23,42,.04)}
#view-app .akr-table-load-more__summary{font-size:12px;font-weight:700}
#view-app .akr-table-load-more__button{min-height:34px;padding:6px 11px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;color:#1d4ed8;font-weight:800;white-space:nowrap}
#view-app .akr-table-load-more__button:disabled{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8;cursor:not-allowed}

/* Input dialogs fit the device and preserve natural chained scrolling. */
:where(.pw-modal,[role="dialog"]){max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:auto;touch-action:pan-y}
.pw-modal{border-radius:18px}

/* Customer PWA uses the same safe areas, touch targets, and sheet behavior. */
#app{min-height:100dvh;padding-bottom:calc(110px + env(safe-area-inset-bottom))}
#app :is(button,input,select,textarea){min-height:38px}
#app .bottom-nav{padding-bottom:calc(9px + env(safe-area-inset-bottom));height:calc(64px + env(safe-area-inset-bottom))}
#app .cart{bottom:calc(76px + env(safe-area-inset-bottom))}
#app dialog{max-height:min(78dvh,calc(100dvh - env(safe-area-inset-top) - 8px));overscroll-behavior:auto}

@media(max-width:720px){
  :root{--akr-ui-control-h:40px}
  #view-app .router-view{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  #view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap){max-height:var(--akr-table-max-height,max(270px,calc(100dvh - 268px)));border-radius:12px}
  #view-app :is(.akr-table-wrap,.table-stretcher,.akr-auto-data-table,.inventory-table-scroll,.audit-log-scroll,.akr-inventory-table-scroll,.pw-supply-table-wrap,.pw-role-table-wrap,.pw-employee-request-table,.pw-asset-main-table,.pw-asset-category-table,.pw-asset-definition-table,.pw-asset-history-table,.pw-final-approval-table,.pw-fit-table-wrap)>table{min-width:max-content}
  #view-app :is(.akr-table-load-more,.akr-pagination-standard,.akr-dist-footer.akr-table-load-more,.pw-supply-table-footer.akr-table-load-more,.akr-inventory-table-footer,.akr-master-product-pagination){flex-direction:column;align-items:stretch;gap:8px;padding:9px 10px}
  #view-app .akr-table-load-more__button{width:100%;min-height:36px}
  .pw-modal{width:100%;max-width:100%;max-height:calc(100dvh - 8px);border-radius:18px 18px 0 0}
  #app{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
