@font-face {
  font-family: 'Sarabun';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('data:font/woff2;base64,d09GMgABAAAAACaMAA4AAAAAXXAAACYzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlAbjgIciDwGYACBchEICoGIFOsSC4IKAAE2AiQDgzYEIAWEDgeMNBvrTEVGho0DAEH/SyGiYjUfgv8vx40xxEDKh5ggJgseOHHKDZJXXpBgy8BvicV8O15y8blsVVH/O5JlC7VCBHUuFoYluBjGtKZttSNq0VG1zqww5PfHLLMcHyHJLPw/jr2ee5MCpYhCVVYTaxiisUTGTU9PTU1NjRWBLcmfNzxss3+ENpEWIiVZBii0SIkICIpRU+yZseiLWt3dbv9c6m4VbrtbVPzt7++8ilVKEdxobi/RyMIMwzzQN/ybS/EvSpS7MeVIolRl4U1hE7cfU63ivjb2Se+wFNYFVh6T2Cb+dtGEsUXEvk/i0kPc99vrki7gEvYf17m2RGmkQlheLZr+QTcLrlsyn6oAL+taqIjQnlCzU0nC9mbzE/+b44Fl6vVzbNhiDxlyOwgkkNT/6TLbGc3ts2wFrKAdPqSiM72XFrjKNaWskdY7+tZ5b417OqK9PVjbB5vwyCSt98AQALYveEB7xEGkCrBNlxRd6jpF3YWH7+81SvqhzEdvhAEL1Rcr7YZLW8HSSRdsF1fcV4dMDX3qHowivT/7+foFV7K9JVQRjoCCcFRUMr463uwKAZh9cKATKGH4+EApVAiCXzcoPQZBGDIbVLBvOCggYGWyLCFD8CjAPoDB3vN2LEbAllftHiB+KjqaAe2tqwgBPDgAYhowj7tPCHAG3kb4dBoCKSM2NGViDgfIOywosObNKQBN/tx61SuRWMINgIgE4nj+BaI+Ykl23y1XnHPCIZN22myDb31lqY8tMseQHm0azVCuiIeTZdvQU4PUt4wAqY4vgNR19gKJfionsEv+jh1A74BdROaySNidVl8nTIo4mcZ5+Zs8gvk8eVdOyTv4QgbppXw8V+Qc1spMvpOv5mHqUg6OrFew+dJ4K2wlFo7ltsByv9wsvxDAbe2whgxLEq46XZVkY2PicPiYKBLhIS0O9DdGcidBk93C7MD8IaPIcAAvpzGJmAwJIGEJAz8HQkMsIP+W+At+h9+ab3g5/2LfpbM6rQGxv83+nQUFhnsAiNew7qD6q1Ey5yfFXLlQBGoW0//G00/WhG4kAB5TIXTSV/qvbwD14wcnrWP+3nu93Zu8zqu90p/7Qy/wLA+4y62ud7VLRZbut9t2m611puWyrdBs07xsiGSi0eg+GgqHvMeXAx/jn7C3Sz/rge7omi7olI7ogHZrq8a1Rqu0HG0/1RLN25IR9XmdOtSsOlUqKJ9c88yKvo0uVbbZSg9JxRdThyhKlHE2iBdyB0RC3TAoeMtz/k3H+N2U+yBi+wAjAgKxfvMM16/WQr4PgBc84cVwz3M5DGmHZCnYKNEBWo5sIpusxNAXLDwIr1P0RtIbWCkhDBfqMU/4NcUkySSDTCW9zp/HUEKWEwZhkH2yCgCqgkiITJAV6po2coZkQU43eSS8kfQWwkXJM3hWkFboI3CUgcvS1tl6Zq6MAAPdoVjJ9Rj8TtFTlSTXN+SefA9AyAI+Rf9K+pfcIrdIGwzIETnICYkhBBJBMARPooXIFL2X9Cd+bhn42UAAiSWKMiUhJTPFvuq2t0C4gs+ZJ4qc37Lv8lKeVk3sb2XA69iviCZnT2nSMwhMygEttad8LSXC7nQATAQ6BuhJ6AE7GjXnRLgzIJ1UQHkI8r4uX25qBZQnVFsBEinVAzAIANJrjkrbPSU0D21Xzg0vTUjaeWagkMQQEFSm0pBaIY2atWoDIQa/IiXKValRp0GTFjNBaPCdEMgDwoT+6AwbMWqW2SCgwa+vXYdOXbr1SIR/VhRYeETxBMTSQC7So89AEq0IGRQ864JwMBYYag8aoDAPTjiADm3QIukFB/+y11cG1FEigQEBC6J0YABNGIpfQADRtgaLW3B43jwo3xmYe3kYULkZooI/ZXU9W3MLN5thnmO1RRXDVg8WmtAjd+hWRTILTxOEWJ9SLExkYGLjgdmLdQYTwMxdZrpVMiDHwkDWXx+gthDSwJwUi3B2hNVUgAOEUMMaC2surLWwtlIw7BWnGO7ocAjiCElszUwyYYFXfc5h4zhIuPObRbPGSh+bZ0CbOmZqieCQEKFFZ6vBIbNIrjQaLDOiIGiDKuIclsHdcpUuuVynXKKDFKkE2jl4Fhku6OpKGk3qTBrxdKw7miJBJcqUq1SlPSMrhlLTW4y0IGRJ3hQ1uPH6mDCAH9kPYIutrHNIh098aK1+BUjc6KXbRgGHgHI68yP+QFMzNG1GkM9k5GN1AGYkkSnLBjJAiAznfnAK2sFI1jXxw1vdgQSDSUosEl0YJbPklaJSHNMQWxYEiUBiSmrRFNe3n6niWSxuR1e0oMxDGACHbQDAwfGjZwBCC8rZYaq53sBj0a2XkpFTUEqTIZObip9aFnpVvHyXPTyyaWjp6Bnkq0Moa88PZx4IkJjWDQDuAKBWAAjA8AkY/wHgHMAZwEcAMaE3sWEMhpswYoZ1K/BAHRAeB8TTjDD6AUaTLo5pqXggICa8wQAgNxhKIBmhPF/n8faa0eIlHJDuNQMkKT9XJaW1MUasGsEaA+6k8ulaKjRZNmTi6cLEpHhG/DmibsGspaBE8WGYV/HLjCSwjt1dpYUwD8XpON2kOURruKAzt4e2y7FlJhOD/w1Y+YGcN9nWkWUpFV2K5Oho6kEla+BMbg7qeMS8Fn3GZ2Es6UEpwZioUEIwnnqxBKWGFmFUgKBieDCODAlGGsylF0vZsyW2ysrwwu+CS6xNt8oGWQyKPCHCINfZTZx6kAWgQsVIGIIoYtInojwK06aC9gX4WZhXlOHRHEq59QCcqvaRQW/OK4wbeWbzoZq0k6x4Ml0wsnfgrmowGTXdP7xosvc7Ns2rAIxVvtxkeFCTKO5wIwBCsToAS8jJDhavuA8dJ45Yd2keU01OdmU4Mm2hT/fIRDPRE+StOgfFcKdfYFyt9vZyNl9AUXYMo2hWHiDXV78bM//oYbvD9sHN8CJ6QEwQoNyvc0Rx8WLO0GHo5gAClRIINfH96KWfgvecq4AIpKR+gUOxb8553uk/pIR725hadcxc6OeFIOxHselTlVzo454oedBsHk9b6NNt0uDNKSpUJ2elcBunnKkNKumYbhEe4rpiaqrOEfCoUwx8CpHXHEC+Nzjsc5Sr/WlRzdgSFMFDudqCo+Fkm42XKwrnXLMvb63UxBovHlp5IPuEnkXjl+UrdFDoBk/RflF/iIcjSKtTXXQz0oAwc4bHuBjfbJpcd0+8VlzALcqw8YxXKkL036Rh10D0OrVymsT4fIf+frBCi/jmeLTK080xFRmnb1Xvce+IZQhKV3MbKS857PUCwLHKCUSZkEi4/MyFHOhzLhtSxgrk1WJU4v/yl8WvsJwCoDhbIelh4SmRGF23+10OT3xzWwtKR2Yo0KForWg1sIacz+mMht0emAWe+TGrnGMUTndkxRipVt6B1JBz8QPyh4DruI+mJ0oHWXV69/iVWtwGi103q/LpzvRuGEare+RK9Ia18hvVBBep4aRxxZKJziAQxbupURr9MncaxnEjMXxWUK83E4kf9LTiUAhBxrFwjuX/Gt0CwJ3DTqmUWs+FrLF0kQ/508wLso+uTHfn7Oqenmm2jzWflHPMcG/YsN3phd5Qy+OTI+fHSIKogW+cAXeYzEpUBC/KfIlVi1HAEZXn7nPAByimZ8wd7u7Jq65fEV1V0rQxsBVMVkaval6pL+4KQYJRuJ4LgdeTGthySVGSTvDmLgZNlob2bSRkKXeoL9Vp5wRTEqzmxRk6QHvkA1jbO0rLhT69IhVeokExXZz8K65bxmUrBQXHxcBCNB5XdOboPqLFkCINenASwOdc5kR3DDdozpeIGHhWPtsfjPVEdHEpIlyK3IgepLUZpXUyeHtFaHf40e3siF+YqtJZ26GoMwVu5c7+r/Y5p4Wt071clFx6T3TKEbgQH82ui5XQLcZz54uVD8lVnPWdtud0ap2U4nBGgVNImZttVWh43ju9k7vydsWX8vOYq3wozYVaN5d4qUhu4WmUOQ72MzypJ2ZXObVZ4cRWwcjnIti5iMRLPZ3SUGqDMZgLsOtkzarKCzivtrZUubb8Ybd19ZV03F2DbhzX07Xe5WaAtqo7GFAABK2VfLXQbeaX1n0DVTpJ3gX42/ibZoU2Hxrc44LZjRo5MTf6GUg+Dpoz2lW87HU/g5I2klf2WFni5mjI1f27QRuMtv6LAuEQeb1XkoIYduylcy7rs9aG03k8xAnSI0+8Ot07EvFUSXrQqhF6qTZDOGfwVO803AcRFp9IWBgwHAzV6E6b0USfAnLXok5eSUpNQ7a6JLDatV0LvFYrWo2xd047PjTZJgw5ytGhvuXKZISmMkrxSxtjRFKCXv865YVIJSfvP4HrxMQ1ZFkVCXNwUmqgzSV9Mew2PdHhZNQZbCqRFHmV5WhEDqaJR3YkaB7Kk2q3nk+0HjpjLnB97t2m94fuuMr+Xtnml7mgnRNGucZyXr2nmmSQQ/e3vwUWXKQD72L/UnA2LaWwG0E75dBp4uU7JgilPeqUc6C42FcWPbjREjpKyFfacXn9ww4nMJo4UCIJjjv1vLJo1D0GjwhS+hwnvjXDGMURfR+wQeyUeL9HyEWLlSHhuDA5bzzQ1evXZVSaI8zzn5sWFgYUA+OMeIFRy2QAqSX2jWTte1VVnrOVbHj35DK4c6Kdc4bYRm6D3zJKleT8t5bF12807pfCL1QKFB0PEjm4EY/Tn87Wl7Gg3cF6WCsZiDohqV3P1lnXSjBxxEaPItn2a5XTspmCyblcFp4InShCCtGowaSpZlSAIT1KCmmdGa70bKBlLbGJNtEJjBfFRzMFNxue/UWAhvRyFLcE8VEQWTpNxy3q6C7J7f6xSvrW01YO0UC3VPEkwhuZ5AeogH2wK4Y8VO9f+r23RCkh5EIj5Ck9Ls0SiaWcG+mXUGlbO/YutfAlIeTl7d2zs3UlZHzPpMyqJRIFb1IZTuMqyoltkYwOldRYWyZnUNgEdGmer2Q+PFPalaYMRYusi/0tIwlcdKV3+P1siD9V61SSRZUqsyv91VZkcuRfmFqJNJRJKWFZSckcpCfWkTSqLhH1jAsfc6uSzmEim1Rg5vETwSJBmzLyuz6wGwwLUbdEtFY/ADPEhKF1CefVOEC6ak3X/3UO+eQmzbh9WsOIYx73atZM+d3ki6Q8zJDCdRNyOMfE5WTajOfgx3Ftws3Ne9huGG6O9bRftfIFcOvUbz3WPt1iDOJXh/Z5lRt2+viSBc429oh4TyORJm33vXiWU0qsqnSWRG08G7OIytj+v/P0M1vPXh8Qexn2/jeQB/VQdVYwJDVWdTcFR7w9OptNp3CJX8neQLBF61KnvSI0B41ui9OZbzG2JHFEfCeJTWBL9upiWDQuRyEQlyoMRf783KBRR6NQY14lzKRWpqa6qYcRn87H44uwoBjgwJDr4XQmu30+NzneHLFu6qfNx1AcOodbwBVlmDNMpvrhPcvY2hw5u9FHTk4sUJlKPLoceqhSeVLBx7nDM/yLvbPV+aYch9+hJ0Zr43lpqFxrkZKfzWVj2XFrxrKTitl1no9QuxoSSnjlc1vbUQ9n4HC1RMHDCU5oHI2u2d5hyddHqq119qfJOgkJ4RjGGnK8Cl4eh01jE9etKU20MSuh1sp35bVakOX2CvvMd91YXLdCEVv7S5FptK5Wj4FcjhG9lUj+FAnubI0haU0F3uR4c9zSa9OU1y+Lf3/MYl9KVDxmfrnk6HVlHWFSbiQQxjla+YJdQQDZuWdEDzxY3sOHzxKnkPwFQv5eobR3HE9YicevJODH8YAX9S6E63mB41axObM5jCIt/TJ5BEvswmv5ObIsdb6s3xtuHQrUVnZ6c/Xp+kzt6teeUIC6XiDdOPDjGCDxuniitTy4KSUQGKWcGJFxOVU8QT4L9cnSKJyxrZWzPJf+ocAq12Z75APeMNusojp9NTvNKvmYbMSKVd1wGulKcHgBAb8wgCcs/Ny2O340+HJdeT787If4pLZPS8Cgp+HIb377fihjLNZnlKmUsdui8o+wfrnM/UBGwlKC5O2OH41eiyvPUyVr/c1QVDh7CSGVIY1d5EclJ9Cyv2WyZlGnUmafFrWU4dQ3yHTg6kX2X43WkWzN+AwexVsiFJ4VMH717dNnmTUyhyDGFaPEZB5jZ4uj+TYeb6FY3MtPOt7Cys1epYWoVcFaqb6sMRQ8tjgoir19BbWCQFjeHr6CcFJbRQuFhbcenM4tLsj7j/cbkVgiyzBq+jxtWoddpyzYblGmKaSgSyBY3zj4jOir9bkl2cF6qUkd5J5Y5uLI597ZiCes4HNMwG8kgF9hn0GdzaZROESvDdokCDZSSiV++ANVclYiWi8QhAQxuN1U6skljhyoKjNYKzOpi9m7vshjy6ZJ43g82RzwRHNEV27Ozy/P0b3Sm6xaec5dHTO/4xIjNKy0q6m2prWhFEKRcbl0yuHtl+7vq162Jg9Y7JCympYSqZ2ygcZCMtkxTKKB/RO+WylHY+UYjByLVv8e7cPAmtyOlt91B9wpDvXVNfcU4n/4YrNSk/hif3jc2GSegdtV4S7XZjctN6CMnReOTS6MI3TF6yMN3e+8J5f8jy8iBw4rI28GZq+f3sz/GTc4niee1h+kfHuxuviOb+EQR9zOEx6VxC3dQnrzd/PPv2cUOL2V9yvkZXwWESIknCTgqwnftDEl74JkwbHUzaTX18Kokxlup+d10nekFQRCO8j9bYzExN2o5jZ+s/gw+YTaaTAa7Qa17HIk28DlVAkEcv7CZFQyGQ/mdsbDso00dwRweYMmZoCgjkEbKX/1CZnxJmy+BY1PdFoMkYvIWVHjXXsavX8MpPYT5I22uUam4dSJ34XsWBrzrCRuqStYHMPLHSX9j7D5CyUaQZlHJq+lQysfIRD/xpKIQEa9DTbWK3DxPzRNFGPARPQYM2u1pXuwSgkD15+Qix21oXFF8Rb+AkFvbscN7wNGIuJB2a6HZZdTGizp5Hhxhe/YIfj9hJT6dKqFATCJOi+ltwr7xsltOl+9nJ9qtHn3jJrRcARvpVA0zmf84j8o3HI0YC23X0vJ4cWt3zy+MfLyTNlvfU8GaUwqm01jMyVaUrJMz3KPok4NHkaYEwX0QpP2t4DD67id12o/tsIr/Pv2BK3rdMjlUz2YXqHiV6ywGwL+2iwii8eFwoWC75y+Ab3anIWG92A8RcdmHmUbcTGr9cdmWTR2E0ytDs6Q6stCtaWsjAnq4j4Kw8NKkSRjl0Rhg0nd9k1dmNt/g0e8vQanxSjPYWXRiGMTyz7B45ytNfiPZiOypDdfqJtGy3PtniVErO0iwpiUnhFsVtr4Cd2ne9O4rvsVEteuX/otnjK1/lfYhyorpr4jZStNqnJy7gWEIemQL/mQfVcB140Fs3Jzo8Y8PSmbmzlP3OJUvTFzbv9F7wUZFY0s3fMwMPsczx1+v+HswaRQNYYS8HxwqP/T7oiqNWRd8JxP/kap+CZ5E2FT5lerSDlhoNBfbkmsXyQmIWlz/p5E0BJ1aJcJRSRvUZkj5pOy8lM0h7JqDUHA3awhiyeFghVC+Ec2WZPuz7xkUwEr5FWSGF5WikRwkKC/aGI3R2WWgAeZmqOa5pzKyjy7JhwmooiuY2Vm4mz0yWUttn9AjALBVk1rTk1lu1wXNDM7M8uwr/X/CW4+XaMNfHF/6X3/A9GkWLSBL+wRxD6J6d+m5tZpAb+/NugyAZpBIKj3tVuQEDFXoy1ZflOMLZk9hbLkc0cnWPDelgpTcwXea0mo/9H888WuEgiGNiz88XX8utyuhtJMeS+7TSvPq1EybFUVrJMZt5y0D2iSRutaG8q8B4sUv5VIzolEd6QR4r1TSH6PkL9BJJ4U0UcaFI2/1LesxBMk1dCE8nZMEgk8dZxAjAaPNLtNHc6amvQyMOmp+PcuhlWoMzoyhflcTgqPpoFtTik1liXiyGq2mZ+dbeaztz4PzcfjFuDwPTh8Nx6MwZ2kFsSXJvn/RWd8+9Mhp3pJn4kHUaDQXmpIuN23CRErkzzad4+M3FeTf4HQctPjdG0cDH2eNgpyMGR7lJ99MLc/mLfK84fAK1MocqQCkQP9S6TOdx5kZrAdCRNWoVNh0Hpli93htlF/He+2U7Xjjl6b6uT01FQdXNkeZYs5uU0lLnUgPtdNxZsMmTmtyRvu7CwubiG5/svEG+2PbIs9s7muvH9Dy5M/5qA598DW49NU3Nx9RSy2+x36hFhLfPFFlX+/ZKT2REK1H+QqUypkVNtirqvq2uR/SgtLrdUzGf4naKmTsi81FcVk/ZlKSP31J3yCl+V9U8ZcU163KaLFW30YjBGD9qiV+dAgMmdosWaVZypAGdnvZW52gdsQk69KzxItzuey9szLq2i+kXh9j9EUufDgg6X6XMZTA/ZVykxvpjCR4N2hsyWz7xJFbQsb/at28V/P4/gLBILl/Of4+5R+oc5fAhg3H+8gPi9bGi9cZat9HXEplvmvu/Nez1IuTSEF5k6dsPBvXuDiSterTIPlnD0gekJ2syPuQdlSpOBV4iT0FD3N/P3sdStBZl+Og78hYE5uf4kz0dBkrapqsBpWCydFkXMbu/mIJyqWnqNS3WWjRM40ncYnW+yOsM3xz6h4suKipzLCrxmgYCnfJKPMzbbqmma7aUC0RtrAfxBJLANHnf2GE4YwJZd5qsVCUUtakSqYfDcK6rq0aIm4QqmLx2FaxY5FK0tTfdvBHoOPomIJzgj4kwLOS1ekxV4McXsgxrTG2qxcXVH3COpW2yfFUxc/4FeTobYiSD41AhcVBSpzm/DAtJFbLpbuERe4aoOBwmpP7iYv+G6FViuV5qBcrvsg3bAdWBKJG0nFqST9QB846o/DvYJYau2BZ/YUEvf56ihg9XqQ/KQ2L3kmcBQUqEl//zWN4ifUPxetpqYQJ39Dx8crt0nr3j1BYJXo0TYSsA8vJI/8GZE0FfZ43ZdoGpwVV3ouIhWVytJxOB6ZgGvJ48hzynKyiKv33vmXcfUJYmfHDCy2HTj5QqE34ph8rX7Afz/NKwxxMA9lrZE4Ax4Y3JaHm0JiP5eZet5GbqtItn7Cq6kqsK7zgBdRg+nGaq1Gpg1muN1pxmqNVvEi3YX6Bq/JhGK/n/2vAd9sm6WyteWnMxuNpWOC2rQspb9UoMoo4kjtUo2lIJPKX4mL5VRzOZ0CSaZWIRV6fJIMdUAhKsvKsYSG01wiyDiBOEkg7icSJoggfZumsXRgXsdHH38eqmczK010X0Dz0fVWn69InWgnx0WmcA3ExERJ0XM0m85mu3lipT7TZqvQaA8Es9dPZksBHDZzeiyxQLZN7zBS8sn52tQOJt6BYv3KVsrdEEd0eNjyM2iOn8dbK8jW11XNrBzySg2cZ89eCe3sSQJhP0cTbPz792XAxaO10a1lGGFJa0t160ftC2FeiC7irlOR57cRx4eFf9jDFdwi0JQXMOU6dCRL5M92jNMq43/B53ewyNAVCDO21BoPTXu9fwWBuJxAXEAkLCSCIwcFYrTp+mao7WnriI5M5i/gC5bz48bGQmOGyzPGCQR3XowwSYQ1Pj+WD6K6rXr+PIFgKZfI+mN2SkVLvt1W53RpGngwGbyaM4HyjyT3JHsyQtZeqanSaDDXzEkvqiw6SyRyP2H/9ULdTwBXy95F1nohLMgnDd92xtiFI9XKVynkKxyX0UW3UFg8F7Ah8BE0OqeWx/tCqNU1lTcXDlsZK24m5ju0xlK/m1L4q7AaFAqVjsjqxw9vTBCJ4yO8qAgHiCAtepXc5A060/zpEy9bOadFX3NrDe1zO4fiv5DFtn/KdPJqixuK4jwf70D4Ai4HDZNz/9ObO7tLfGJMzEZXFDOVw6vhEz6e8IPCVSy9Iq//VffZEaDL7JlItC/UslNVxkIj+6P2pIjUSg5/Pk9gzFBoi1XCKnWWuKZErWNbyKt4knj018lnXkWlBjMQubpYW8YXRbiDMdpY5EvW5Lb9BAK5g2COZpr3k+cGjcrwaVNme2/QAUk7w6ZR52rkon174Ocjjol4xmE9/z0/rv1Vlf7wouM26u/INo1mpsUiFa1kcyYPzYxcVSyTBTMzg6Jny1TRCqq7Lld2Nm2T9/9kvJvP7+bx5vN5C3gga5QsbcoThviCOl5PBrcR7jF1taiNptqstFZbU/1Isc0dcJk1hWkcwGT+w2QrYsQ/ijIMZXled2luRqFKXKv3uWUfs1oyOJVsr5Rj0aV7MRgfBuvDYLxYcEpm8mmWe5fTlxy2pwfSl8WYr6PFp4X806IMtcNgtw4aCN50R/qlux/QLuN6zXv+T+5xT7nlvyNxRn1lI8yV5xo7MGbKy9mP+Vwls1XDTFitO6fpXIdWp1YpckTOcixrxOTTlJaGzQcj958mU2m2/Rm40zXQuHtxCfcTwCe+kwzs2c0/opG/JMpRt1Jx5MHDsYjIMDn4UpOuSgfwo8tAjqaxNdOS4aO+ZXI7ebxOXlz4nyOY/NIZwKUe3Hii+XC8HH4jDsCfDPWY1diYacwoTMyv4Ylft6KdgWqIW1aijWTjkxy1Y77rhgtE4beaD5sBQTY/70YegDzZFmkPtn+RHWSyFz6xaqNTv2LQ3zKZKDaZbPzCGV3fHGGFe41oNH2AMTIMgD69GWly181LL2AzTOvFkbRCKuUUlX6WkfR9VW50WVWE4R8HDYmioZDtZSBBpGFbpD3Q/qmmyCNh0cxNdEaUWNOyPbqmzbsAxnC/ZQC0r7OmN4dUZgF3VlI8I/XunUbMdRv3U2mTNM5uXobGn7n/7jOJjid8tppbZUEuo6LRGI6wzwgNDcLkp6s7OitYCSXxBET4urXB38QRKV1kclcK4weWTOV8NW/prlcR/j8tzELdm/kAiWw/JCBix7q2tlkhQeZMUjyN2Nc7AMRRtAkqbZzGOcFL1wa4xQ2j94phVpufLsMg7I0GO8L9Xrs3oAp47B4/gDB0JW6zu0TBrAUA2Xnu79JZ8Mq9SfK4LxYS4Tjsf6BHi+sT+v/CcBkaY6I7asYA4HnEZ5d/9eqNQL/LSL2fSutTbOr3J7TcpKFRbRGFTgAiq85z3lGUP26AFDDjGCU5B31JiuyzMGjv1fIJi4JZllHpdzj0HBrqxYLnHZaJo3Casmv00DK9xeDWNSW7SYj+0P+/YlwIwaNTllJjQzQEEotsR2KQAPWZZf0a9PtqTbTpXwpfCNlGrtJhzKo0HILOU7ekJXAQDo9KWUdBhKY1IiKwz7cnG5aw6OKdt95j2TphBh9F/p2cdBXHtsVy0kiMvjj8s6S4u8kIFli8/QA5kL0O7m6vKK0b6otqrhzwKtKlOawfqBzNMO4RSNm+h1yobmzbVlFcM9BlxYBbkSYxpUvY2T0XMe+RWEjKylf+3GL550nGioIahS2AWxMEC6ksX36z1fLyb/2WAi/k3ADkiWEx5FmYpUqgj8TsozPO0rWMONXbjVxQjTKXGLq+H3o9zKwpke5X7Dg99QDjqQyD7Vx1djrmlGpk2wksrCSZOssh2t+bPYsyol41cI6uL/uyp1KDTHEasGT9vfj49snA4mHuLVp2dweGcY/BcLD4TvoBZ8wyGRpNJoMVO3ageh1qkSuqJvq5bTM37kks4/z1vSCYHCutHp1PJOajt1u2cy9kDKwY0u8j4ipu9PsroXE4tLWWtdxVGb1L6q88oiC80Ovw+lV+j8NTCBZPLzGggWwAAAxkQxCAi9snh4PiR6fqjKU7V4SdZdV+GAY6pmkwZifr6SLdWkuCgHQU+Bes3jn9vKxYYm1g/sp4m3vq9+gKyjFeN7T1H18HLATLH1dZHyKLjQdi6MXGGTH6xJoqRioFR7pR5y7pgy+U+iQyAvYrAD5/0wm68b/cd/X9LdfyIwC0ALVJ/0k3X+oS51Q7+FZ4twNUk/yj26V4Hl5uMJUebYvhVrauITBzAkJ8ksuEIuKrQ1fLgret3X5E3GbDO3TVxKUmxbvhMDs2F9TAxWBeLnhmIvxJWzKiBvFc9hFt34x5+0vE4bpEM0hNjWKmoMlTMtQIXd+yAOirCG5rievGA14YZqMlKVBERDA/QZZ9BOYpcWZYyvTHtdcXP7x5R9+pUfY/R9Ea9h2x3dpcR0NjEPoV7FvgnUubBqM1od63kIuwKxoJfvyr7JDvFAEQzav2U8F0zVr8zq89L3g/V8d6YcjAesEpbdIa33u1z97VU/8w2ad/+A2DhXc+X6HLCmsVVVmlxoOeMTWcfd+xQAQF4ByBhIJgKzOMo0NyFAC8GGjTEQKSpxjq+bkjDLntHeGQfd4xDD03C/c9coakEOCGDtG2VSZR+XZV2oRs1mHJQu2sUbMW98GoJZLHzK5AhTYVKnVqJuBWo1anxob5TGgDYC1dlSkkhMQ3lgpFK5vRzzp1qEWdUC/rKBZbl8QpKXH0ZEHhYReOgZENhco2nmtXgOGneXEvC/VCnVWylJilG8zjoBp725jLDLao74EqSdDNDOo8Bu1PXg+b7Y1VKyQY7FRJrGoi2ESkwxWqtftMAavx+O8qNBDpPXNAafWNXSf1T70DyAAKTLA9puXImZ4rIzMrcqfyZMPAwsEjIIoTL0GiJCTJyFJQUNHQMaRiYmHj4OLhExASEZOQkpFTUEqTLkMmFbUs2TS0dPQMjEzMcljksrKxc3DK45LPrYCHl08hv4AixYJKlCpTrkKlKtVqzFCrTki9Bo2aNGvRaqY27Tp06tKtR68+/QYMGjJsJJKqFhe7PaJzIfEBZBEmlHEhle7NsyIJIcpr2Qz2z/3pfSDUXNtRVxH6V5DUHs76vgbaVFf0mPwLRlI16F3/11XRUdFwQEB3mOM/mvac0kBkESaUcSGVNrbTvRkBRDgTxJPpBCmZm1DR+DyIVPrXs36voa6z0ZFzshoFA0VdzgQgwiQ9hwKBCBPKuJDz0uPOm9+1Ht096OYxJT+TfqI62lhd8y9fmTTBMsuGGnIp/L+BjJZuxREIMvlXsCyQ3Ke9ZTFLUhWrpHS3U6f5OipKZu6PJT4LaAiSTf1SQUuUlRh/Tlfshx276DEvn/mat9rkGpw6RTHkM77WidqfsXa98KOKrCgNAA==') format('woff2');
}
@font-face {
  font-family: 'Sarabun';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('data:font/woff2;base64,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') format('woff2');
}

/* ==========================================================================
   WMS LEGACY FOUNDATION & UTILITY LAYER
   Layer: legacy (Overridden by ui-system.css 'system' layer)
   ========================================================================== */

@layer legacy;

/* Central account sign-in -------------------------------------------------
   A full-page entry point makes it clear that every workflow starts from a
   verified user profile, while staying compact on small screens. */
.central-login-screen {
    box-sizing: border-box;
    min-height: 100dvh;
    display: grid;
    place-items: center;
    padding: 28px 18px;
    background:
        radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--color-blue) 20%, transparent), transparent 34rem),
        radial-gradient(circle at 90% 92%, color-mix(in srgb, var(--color-accent) 17%, transparent), transparent 30rem),
        var(--bg-main);
}

.central-login-card {
    box-sizing: border-box;
    width: min(100%, 510px);
    overflow: hidden;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    background: var(--bg-card);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
}

.central-login-brand {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 20px 24px !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #0f172a 0%, #1e40af 55%, #0284c7 100%) !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.15) !important;
}

.central-login-brand img {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
    padding: 6px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    object-fit: contain !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
    flex-shrink: 0 !important;
}

.central-login-brand span,
.central-login-brand .brand-org-name,
#root .central-login-screen .central-login-brand span {
    display: block !important;
    font-family: 'Outfit', 'Sarabun', sans-serif !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    letter-spacing: 0.08em !important;
    color: #fbbf24 !important;
    opacity: 1 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4) !important;
    margin-bottom: 2px !important;
    text-transform: uppercase !important;
}

.central-login-brand strong,
.central-login-brand .brand-site-title,
#root .central-login-screen .central-login-brand strong {
    display: block !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    color: #ffffff !important;
    letter-spacing: -0.01em !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35) !important;
}

.central-login-heading {
    display: flex;
    gap: 14px;
    padding: 25px 24px 16px;
}

.central-login-icon {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: #fff;
    background: var(--color-blue);
    font-size: 19px;
}

.central-login-heading h1 {
    margin: 0;
    color: var(--text-main);
    font-size: 21px;
    line-height: 1.25;
}

.central-login-heading p {
    margin: 5px 0 0;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.5;
}

.central-login-steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    margin: 0 24px 20px;
    padding: 11px 12px;
    border: 1px solid var(--border-color);
    border-radius: 11px;
    color: var(--text-muted);
    background: var(--surface-soft);
    font-size: 11px;
    font-weight: 700;
}

.central-login-steps span { white-space: nowrap; }
.central-login-steps b {
    display: inline-grid;
    width: 17px;
    height: 17px;
    margin-right: 3px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-blue);
    font-size: 10px;
}
.central-login-steps i { font-size: 9px; opacity: 0.55; }

.central-login-form {
    display: grid;
    gap: 7px;
    padding: 0 24px 24px;
}

.central-login-form > label {
    margin-top: 5px;
    color: var(--text-main);
    font-size: 12px;
    font-weight: 800;
}

.central-login-input {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    box-sizing: border-box;
    padding: 0 13px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    background: var(--input-bg, var(--bg-main));
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.central-login-input:focus-within {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-blue) 18%, transparent);
}

.central-login-input > i { color: var(--text-muted); }
.central-login-input input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    color: var(--text-main);
    background: transparent;
    font: inherit;
    font-size: 14px;
}
.central-login-input input::placeholder { color: var(--text-muted); opacity: 0.75; }

.central-login-error {
    margin: 4px 0 0;
    padding: 9px 10px;
    border-radius: 8px;
    color: var(--color-red);
    background: color-mix(in srgb, var(--color-red) 10%, transparent);
    font-size: 12px;
    font-weight: 700;
}

.central-login-submit {
    width: 100%;
    min-height: 46px;
    margin-top: 10px;
    justify-content: center;
}

/* Registration Success Card Styles */
.central-login-success-card {
    padding: 10px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    animation: fadeInSuccess 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes fadeInSuccess {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.central-login-success-header {
    text-align: center;
    padding: 6px 0 2px;
}

.central-login-success-icon-badge {
    width: 68px;
    height: 68px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(16, 185, 129, 0.35));
    border: 2px solid rgba(34, 197, 94, 0.5);
    display: grid;
    place-items: center;
    color: #22c55e;
    font-size: 36px;
    box-shadow: 0 10px 28px rgba(34, 197, 94, 0.25);
    animation: successPulse 2s infinite ease-in-out;
}

@keyframes successPulse {
    0%, 100% { transform: scale(1); box-shadow: 0 10px 28px rgba(34, 197, 94, 0.25); }
    50% { transform: scale(1.05); box-shadow: 0 14px 36px rgba(34, 197, 94, 0.4); }
}

.central-login-success-header h2 {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 900;
    color: var(--text-main);
    letter-spacing: -0.01em;
}

.central-login-success-header p {
    margin: 0 auto;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
    max-width: 90%;
}

.central-login-success-details {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.success-detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    gap: 12px;
}

.success-detail-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.detail-label {
    color: var(--text-muted);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
}

.detail-value {
    font-weight: 700;
    color: var(--text-main);
    font-size: 13px;
    text-align: right;
}

.detail-value.highlight-username {
    color: #10b981;
    font-family: monospace;
    font-size: 14px;
    background: rgba(16, 185, 129, 0.12);
    border: 1px solid rgba(16, 185, 129, 0.3);
    padding: 3px 10px;
    border-radius: 8px;
    font-weight: 800;
}

.status-pending-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    background: rgba(245, 158, 11, 0.15);
    color: #f59e0b;
    border: 1px solid rgba(245, 158, 11, 0.35);
    font-size: 12px;
    font-weight: 800;
}

.central-login-success-notice {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(56, 189, 248, 0.08);
    border: 1px solid rgba(56, 189, 248, 0.25);
    color: var(--text-main);
    font-size: 12.5px;
    line-height: 1.55;
}

.central-login-success-notice i {
    color: var(--color-blue);
    font-size: 20px;
    margin-top: 2px;
    flex-shrink: 0;
}

.central-login-success-notice strong {
    display: block;
    color: var(--color-blue);
    margin-bottom: 4px;
    font-size: 13px;
}

.central-login-success-notice code {
    background: rgba(0, 0, 0, 0.15);
    padding: 2px 6px;
    border-radius: 6px;
    font-weight: 800;
    color: var(--color-blue);
}

.central-login-help {
    margin: 0;
    padding: 14px 24px 17px;
    border-top: 1px solid var(--border-color);
    color: var(--text-muted);
    background: var(--surface-soft);
    font-size: 11px;
    line-height: 1.5;
}

.account-profile-note {
    margin: 0 0 14px;
    padding: 10px 11px;
    border-radius: 8px;
    color: var(--text-muted);
    background: var(--surface-soft);
    font-size: 12px;
    line-height: 1.45;
}

.account-profile-note i { color: var(--color-green); }
.modal-form-stack input[readonly], .modal-form-stack select:disabled {
    cursor: default;
    opacity: 0.86;
    color: var(--text-main);
    background: var(--surface-soft);
}

.header-account-summary {
    display: inline-flex;
    max-width: 180px;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    padding: 7px 9px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--text-main);
    background: var(--surface-soft);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.header-account-summary span { overflow: hidden; text-overflow: ellipsis; }
.header-account-summary i { color: var(--color-green); }

@media (max-width: 560px) {
    .central-login-screen { align-items: start; padding: max(18px, env(safe-area-inset-top)) 12px 18px; }
    .central-login-card { border-radius: 15px; }
    .central-login-brand, .central-login-heading { padding-left: 17px; padding-right: 17px; }
    .central-login-heading { padding-top: 20px; }
    .central-login-heading h1 { font-size: 19px; }
    .central-login-heading p { font-size: 12px; }
    .central-login-steps { margin-left: 17px; margin-right: 17px; padding: 10px 8px; font-size: 10px; }
    .central-login-steps i { display: none; }
    .central-login-form { padding-left: 17px; padding-right: 17px; }
    .central-login-help { padding-left: 17px; padding-right: 17px; }
    .header-account-summary { display: none; }
}

@media (max-width: 768px) {
    .top-header {
        box-sizing: border-box !important;
        max-width: 100% !important;
        overflow: hidden !important;
        padding: 8px 10px !important;
    }
    .top-header__layout {
        box-sizing: border-box !important;
        max-width: 100% !important;
        min-width: 0 !important;
        width: 100% !important;
        overflow: hidden !important;
    }
    .top-header__brand {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
        overflow: hidden !important;
    }
    .header-search {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }
    .header-brand-title {
        display: inline-block !important;
        font-size: 13.5px !important;
        font-weight: 800 !important;
        color: var(--text-main, #1e293b) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        min-width: 0 !important;
        max-width: 160px !important;
        margin: 0 !important;
        line-height: 1.2 !important;
    }
    .header-search img {
        height: 26px !important;
        width: auto !important;
        flex-shrink: 0 !important;
    }
    .top-header__status {
        display: flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
        min-width: 0 !important;
    }
    .clock-date-text,
    .clock-divider,
    .clock-unit-text {
        display: none !important;
    }
    .live-clock-widget {
        font-size: 10.5px !important;
        padding: 4px 6px !important;
        white-space: nowrap !important;
        min-height: 26px !important;
    }
    .top-header__account-actions {
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        gap: 4px !important;
        flex-shrink: 0 !important;
        margin-left: auto !important;
    }
    .header-account-action-label {
        display: none !important;
    }
    .header-account-action {
        padding: 4px 8px !important;
        font-size: 12px !important;
        border-radius: 8px !important;
    }
    .header-account-summary {
        display: none !important;
    }
    .btn-label-text {
        display: none !important;
    }
    .table td, .table th {
        white-space: nowrap;
    }
    .table .btn-secondary,
    .table .btn-primary,
    .table .btn-success,
    .table .btn-danger,
    .table .btn-accent {
        padding: 6px 10px !important;
        white-space: nowrap !important;
        font-size: 13px !important;
    }
    .mobile-stack {
        grid-template-columns: 1fr !important;
        flex-direction: column !important;
        width: 100% !important;
    }
}

/* Unified, step-by-step system notifications */
.notification-center {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 999998;
    width: min(420px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    pointer-events: none;
}

.notification-center__panel {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--border-color) 82%, transparent);
    border-radius: 16px;
    background: color-mix(in srgb, var(--bg-card) 94%, transparent);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.22);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    pointer-events: auto;
}

.notification-center__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    border-bottom: 1px solid var(--border-color);
    background: color-mix(in srgb, var(--surface-soft) 72%, transparent);
}

.notification-center__header > div {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 8px;
}

.notification-center__header strong {
    color: var(--text-primary);
    font-size: 13px;
    white-space: nowrap;
}

.notification-center__header strong i {
    color: var(--color-blue);
    margin-right: 4px;
}

.notification-center__header span {
    overflow: hidden;
    color: var(--text-muted);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notification-center__clear,
.system-notification__close {
    border: 0;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
}

.notification-center__clear {
    flex: 0 0 auto;
    padding: 5px 6px;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 700;
}

.notification-center__clear:hover,
.system-notification__close:hover {
    background: color-mix(in srgb, var(--text-muted) 12%, transparent);
    color: var(--text-primary);
}

.notification-center__list {
    display: grid;
    gap: 1px;
    max-height: min(600px, calc(100dvh - 90px));
    overflow: auto;
}

.system-notification {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 24px;
    align-items: start;
    gap: 10px;
    padding: 13px 11px 13px 13px;
    border-left: 4px solid var(--notification-color);
    background: color-mix(in srgb, var(--notification-color) 6%, var(--bg-card));
    animation: notification-enter 220ms ease-out both;
}

.system-notification--success { --notification-color: var(--color-green); }
.system-notification--info { --notification-color: var(--color-blue); }
.system-notification--warning { --notification-color: #d97706; }
.system-notification--error { --notification-color: var(--color-red); }

.system-notification__icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--notification-color) 15%, transparent);
    color: var(--notification-color);
    font-size: 16px;
}

.system-notification__content {
    min-width: 0;
}

.system-notification__content h4,
.system-notification__content p {
    margin: 0;
}

.system-notification__content h4 {
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
}

.system-notification__content > p {
    margin-top: 3px;
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.system-notification__next-step {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px !important;
    padding-top: 8px;
    border-top: 1px solid color-mix(in srgb, var(--notification-color) 20%, transparent);
    color: var(--text-primary) !important;
    font-size: 11px !important;
}

.system-notification__next-step > i {
    margin-top: 3px;
    color: var(--notification-color);
    font-size: 9px;
}

.system-notification__next-step strong {
    color: var(--notification-color);
}

.system-notification__action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 14px;
    border: 1px solid color-mix(in srgb, var(--notification-color) 60%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--notification-color) 18%, transparent);
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--notification-color) 25%, transparent);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.system-notification__action:hover {
    background: color-mix(in srgb, var(--notification-color) 32%, transparent);
    border-color: var(--notification-color);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--notification-color) 40%, transparent);
}

.system-notification__action:active {
    transform: translateY(0);
}

.system-notification__close {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 8px;
    font-size: 14px;
    transition: all 0.2s ease;
}

.system-notification__close:hover {
    background: rgba(239, 68, 68, 0.2) !important;
    color: #ef4444 !important;
}

@keyframes notification-enter {
    from { opacity: 0; transform: translateY(-8px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 576px) {
    .notification-center {
        top: calc(8px + env(safe-area-inset-top));
        right: 8px;
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px - env(safe-area-inset-top));
    }

    .notification-center__panel {
        border-radius: 14px;
    }

    .notification-center__list {
        max-height: min(560px, calc(100dvh - 78px - env(safe-area-inset-top)));
    }

    .system-notification {
        grid-template-columns: 30px minmax(0, 1fr) 22px;
        gap: 9px;
        padding: 11px 9px 11px 11px;
    }

    .system-notification__icon {
        width: 30px;
        height: 30px;
        font-size: 14px;
    }
}

/* Confirm destructive actions in the application, not in a browser alert. */
.modal-card--confirmation {
    width: min(460px, calc(100vw - 32px));
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--color-red) 48%, var(--border-color));
    background: var(--bg-card);
}

.confirmation-dialog__body {
    padding: 22px 24px !important;
    text-align: center;
}

.confirmation-dialog__warning-icon {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-red) 16%, transparent);
    color: var(--color-red);
    font-size: 20px;
}

.confirmation-dialog__message {
    margin: 0;
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.confirmation-dialog__steps {
    display: grid;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    text-align: left;
}

.confirmation-dialog__steps li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.4;
}

.confirmation-dialog__steps span {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-red) 18%, transparent);
    color: var(--color-red);
    font-size: 11px;
    font-weight: 800;
}

.confirmation-dialog__steps p {
    margin: 2px 0 0;
}

.confirmation-dialog__footer {
    display: grid !important;
    grid-template-columns: 1fr 1.25fr;
    gap: 10px;
    padding: 14px 24px 20px !important;
}

.confirmation-dialog__footer button {
    min-height: 42px;
}

@media (max-width: 576px) {
    .modal-card--confirmation {
        width: calc(100vw - 20px);
    }

    .confirmation-dialog__body {
        padding: 18px 16px !important;
    }

    .confirmation-dialog__footer {
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    }
}

/* --------------------------------------------------------------------------
   1. GLOBAL ZERO-OVERFLOW & STRICT BOX-SIZING
   -------------------------------------------------------------------------- */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box !important;
    max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--text-primary) !important;
}

.logo-text h2 {
    color: #ffffff !important;
}

.logo-text span {
    color: #a8bbbf !important;
}

.user-select {
    color: #f2e2ce !important;
}

html, body {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 100vh;
    overflow-x: hidden !important;
    position: relative !important;
}

body {
    background-color: var(--bg-main);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    background-image: 
        radial-gradient(at 8% 10%, rgba(56, 189, 248, 0.13) 0px, transparent 48%),
        radial-gradient(at 92% 88%, rgba(251, 191, 36, 0.10) 0px, transparent 50%);
    background-attachment: fixed;
    color-scheme: dark;
}

img, video, canvas, svg {
    max-width: 100% !important;
}

img, video {
    height: auto;
}

/* --------------------------------------------------------------------------
   2. APP CONTAINER & SIDEBAR LAYOUT
   -------------------------------------------------------------------------- */
.app-container {
    display: grid;
    grid-template-columns: 270px 1fr;
    min-height: 100vh;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

.sidebar {
    background: linear-gradient(180deg, #172033 0%, #101827 100%);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-right: 1px solid rgba(168, 187, 191, 0.12);
    display: flex;
    flex-direction: column;
    padding: 20px 16px;
    height: 100vh;
    position: fixed;
    width: 270px;
    top: 0;
    left: 0;
    z-index: 100;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.35);
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 24px;
}

.btn-close-sidebar {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    font-size: 20px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.btn-close-sidebar:hover {
    color: #ffffff;
    background: rgba(248, 81, 73, 0.25);
    border-color: rgba(248, 81, 73, 0.4);
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex-grow: 1;
    overflow-y: auto;
    padding-right: 4px;
    margin-bottom: 12px;
}

/* Custom Scrollbar for Sidebar Navigation */
.sidebar-nav::-webkit-scrollbar {
    width: 5px;
}
.sidebar-nav::-webkit-scrollbar-track {
    background: transparent;
}
.sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(168, 187, 191, 0.2);
    border-radius: 4px;
}
.sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: rgba(168, 187, 191, 0.4);
}

.nav-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    padding: 10px 14px;
    border-radius: 10px;
    color: #cbd5e1;
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
}

.nav-btn:hover {
    color: var(--text-primary);
    background-color: rgba(255, 255, 255, 0.06);
    transform: translateX(3px);
}

.nav-btn.active {
    background: linear-gradient(90deg, rgba(74, 134, 140, 0.22), rgba(74, 134, 140, 0.05));
    border-left-color: #4a868c;
    border-color: rgba(74, 134, 140, 0.35);
    color: #f2e2ce;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(74, 134, 140, 0.18);
}

.sidebar-footer {
    border-top: 1px solid var(--border-color);
    padding-top: 16px;
    margin-top: auto;
}

.active-user-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--border-color);
    padding: 8px 12px;
    border-radius: 10px;
}

.active-user-badge i {
    font-size: 20px;
    color: var(--color-blue);
}

.user-info {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    overflow: hidden;
}

.user-label {
    font-size: 10px;
    color: var(--text-muted);
}

.user-select {
    background: none;
    border: none;
    color: var(--text-primary);
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 12px;
    outline: none;
    cursor: pointer;
}

/* Main Content Workspace */
.main-content {
    padding: 20px 24px 24px 24px;
    overflow-y: auto;
    overflow-x: hidden !important;
    min-height: 100vh;
    width: 100% !important;
    max-width: 100% !important;
}

/* Top Header */
.top-header {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-card);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    padding: 12px 18px;
    margin-bottom: 20px;
    width: 100% !important;
    max-width: 100% !important;
}

.top-header h1 {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Buttons */
.btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-accent {
    font-family: var(--font-heading);
    font-weight: 600;
    padding: 10px 18px;
    border-radius: 12px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    outline: none;
    border: 1px solid transparent;
    font-size: 13px;
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

/* Button active state for click feedback */
.btn-primary:active:not(:disabled),
.btn-secondary:active:not(:disabled),
.btn-success:active:not(:disabled),
.btn-danger:active:not(:disabled),
.btn-accent:active:not(:disabled) {
    transform: scale(0.96) translateY(0) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.btn-primary {
    background: linear-gradient(135deg, #38bdf8, #0284c7);
    border-color: rgba(56, 189, 248, 0.35);
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(2, 132, 199, 0.3);
}

.btn-primary:hover:not(:disabled) {
    transform: translateY(-2.5px) scale(1.02);
    border-color: rgba(56, 189, 248, 0.6);
    box-shadow: 0 8px 24px rgba(2, 132, 199, 0.5), 0 0 10px rgba(56, 189, 248, 0.3);
}

.btn-secondary {
    background-color: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--text-primary);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.btn-secondary:hover:not(:disabled) {
    transform: translateY(-2px) scale(1.02);
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.25);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.btn-success {
    background: linear-gradient(135deg, #10b981, #059669);
    border-color: rgba(16, 185, 129, 0.35);
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(5, 150, 105, 0.3);
}

.btn-success:hover:not(:disabled) {
    transform: translateY(-2.5px) scale(1.02);
    border-color: rgba(16, 185, 129, 0.6);
    box-shadow: 0 8px 24px rgba(5, 150, 105, 0.5), 0 0 10px rgba(16, 185, 129, 0.3);
}

.btn-danger {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border-color: rgba(244, 63, 94, 0.35);
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(225, 29, 72, 0.3);
}

.btn-danger:hover:not(:disabled) {
    transform: translateY(-2.5px) scale(1.02);
    border-color: rgba(244, 63, 94, 0.6);
    box-shadow: 0 8px 24px rgba(225, 29, 72, 0.5), 0 0 10px rgba(244, 63, 94, 0.3);
}

.btn-accent {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-color: rgba(245, 158, 11, 0.35);
    color: #1e1f1d;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(217, 119, 6, 0.35);
}

.btn-accent:hover:not(:disabled) {
    transform: translateY(-2.5px) scale(1.02);
    border-color: rgba(245, 158, 11, 0.6);
    box-shadow: 0 8px 24px rgba(217, 119, 6, 0.55), 0 0 10px rgba(245, 158, 11, 0.3);
}

.btn-full {
    width: 100% !important;
    justify-content: center;
}

button:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

/* Page Panels & Glass Cards */
.page-panel {
    display: none !important;
    animation: fadeIn 0.25s ease forwards;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

.page-panel.active {
    display: block !important;
}

@keyframes fadeIn {
    /* Do not animate transform here: a transformed page panel becomes the
       containing block for fixed dialogs, causing popups to be clipped to
       the panel rather than the viewport. */
    from { opacity: 0; }
    to { opacity: 1; }
}

.panel-header {
    margin-bottom: 18px;
    width: 100% !important;
}

.panel-header h2 {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
}

.panel-header p {
    color: var(--text-muted);
    font-size: 13px;
    margin-top: 2px;
}

.card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel {
    background: var(--bg-card);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    margin-bottom: 18px;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

.margin-bottom-20 { margin-bottom: 18px !important; }
.margin-top-15 { margin-top: 14px !important; }

/* Live Thailand Clock & Date Widget */
.live-clock-widget {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(39, 37, 37, 0.8);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 6px 14px;
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    white-space: nowrap;
}

.live-clock-widget .clock-divider {
    color: var(--border-color);
    margin: 0 2px;
}

.live-clock-widget .clock-time-glow {
    font-family: monospace;
    font-weight: 800;
    font-size: 14px;
    color: var(--color-accent);
    letter-spacing: 0.5px;
    text-shadow: 0 0 8px rgba(0, 242, 254, 0.4);
}

body.light-theme .live-clock-widget {
    background: #ffffff;
    border-color: #cbd5e1;
    color: #0f172a;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

body.light-theme .live-clock-widget .clock-time-glow {
    color: #0284c7;
    text-shadow: none;
}

@media (max-width: 768px) {
    .live-clock-widget {
        padding: 4px 10px;
        font-size: 11px;
    }
    .live-clock-widget #clock-date-text {
        display: none;
    }
    .live-clock-widget .clock-divider {
        display: none;
    }
}
.global-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(11, 15, 23, 0.75);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.2s ease forwards;
}

.global-loading-card {
    background: rgba(22, 30, 49, 0.95);
    border: 1px solid rgba(0, 242, 254, 0.3);
    border-radius: 20px;
    padding: 28px 36px;
    text-align: center;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6), 0 0 24px rgba(0, 242, 254, 0.2);
    max-width: 90%;
    width: 320px;
}

.global-loading-spinner-wrapper {
    margin-bottom: 16px;
    position: relative;
    display: inline-block;
}

.global-loading-icon {
    font-size: 42px;
    color: var(--color-accent);
    filter: drop-shadow(0 0 10px rgba(0, 242, 254, 0.6));
}

.global-loading-text {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    color: #ffffff;
    margin-bottom: 6px;
    letter-spacing: 0.3px;
}

.global-loading-subtext {
    font-size: 11px;
    color: var(--text-muted);
}

body.light-theme .global-loading-overlay {
    background: rgba(255, 255, 255, 0.8);
}

body.light-theme .global-loading-card {
    background: #ffffff;
    border-color: #cbd5e1;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.15);
}

body.light-theme .global-loading-text {
    color: #0f172a;
}

/* Button Loading & Anti-Bounce Lock */
.loading-btn {
    pointer-events: none !important;
    opacity: 0.7 !important;
    position: relative !important;
}
.instant-scan-option {
    margin-top: 10px;
    display: flex;
    align-items: center;
}

.checkbox-container {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    font-family: var(--font-heading) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
    user-select: none !important;
    padding: 6px 14px !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 20px !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.checkbox-container:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(56, 139, 253, 0.4) !important;
}

.checkbox-container input[type="checkbox"] {
    display: none !important;
}

.checkmark {
    width: 36px !important;
    height: 20px !important;
    background-color: rgba(255, 255, 255, 0.15) !important;
    border-radius: 20px !important;
    position: relative !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    flex-shrink: 0 !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.checkmark::after {
    content: '' !important;
    position: absolute !important;
    top: 2px !important;
    left: 2px !important;
    width: 16px !important;
    height: 16px !important;
    background-color: #ffffff !important;
    border-radius: 50% !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3) !important;
}

.checkbox-container input[type="checkbox"]:checked + .checkmark {
    background: linear-gradient(135deg, var(--color-blue), var(--color-accent)) !important;
    box-shadow: 0 0 12px rgba(56, 139, 253, 0.4) !important;
}

.checkbox-container input[type="checkbox"]:checked + .checkmark::after {
    transform: translateX(16px) !important;
}

body.light-theme .checkbox-container {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

body.light-theme .checkmark {
    background-color: #cbd5e1 !important;
}

/* Premium Workflow Step Banners */
.workflow-step-banner {
    background: linear-gradient(135deg, rgba(22, 30, 49, 0.85), rgba(30, 41, 67, 0.65)) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 14px !important;
    padding: 14px 18px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;
    margin-bottom: 18px !important;
}

.step-banner-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 0.3px;
}

.step-items-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    width: 100% !important;
}

.step-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    transition: all 0.2s ease;
    white-space: nowrap;
}

.step-item:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
}

.step-num {
    color: #ffffff !important;
    border-radius: 50% !important;
    width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 800 !important;
    font-size: 11px !important;
    flex-shrink: 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

.step-arrow {
    color: var(--color-accent) !important;
    font-weight: 800 !important;
    font-size: 14px !important;
}

body.light-theme .workflow-step-banner {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06) !important;
}

body.light-theme .step-item {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

/* Stats Cards Grid */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
    width: 100% !important;
}

.stat-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: transform 0.2s, border-color 0.2s;
    width: 100% !important;
}

.stat-card:hover {
    border-color: var(--border-color-glow);
    transform: translateY(-2px);
}

.stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #fff;
    flex-shrink: 0;
}

.bg-blue { background-color: rgba(56, 139, 253, 0.15); color: var(--color-blue) !important; }
.bg-orange { background-color: rgba(255, 152, 0, 0.15); color: var(--color-orange) !important; }
.bg-green { background-color: rgba(63, 185, 80, 0.15); color: var(--color-green) !important; }
.bg-purple { background-color: rgba(188, 140, 255, 0.15); color: var(--color-purple) !important; }

.stat-info h3 {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
}

.stat-info span {
    color: var(--text-muted);
    font-size: 11px;
}

/* Category & Filter Chips - ZERO OVERFLOW HORIZONTAL SCROLLING */
.swipe-pills-container, .category-filter-pills {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    padding-bottom: 6px;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.swipe-pills-container::-webkit-scrollbar,
.category-filter-pills::-webkit-scrollbar {
    display: none;
}

.pill-chip, .category-pill, .filter-chip {
    background-color: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    padding: 6px 14px;
    border-radius: 20px;
    cursor: pointer;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 12px;
    white-space: nowrap;
    transition: all 0.2s;
    flex-shrink: 0 !important;
}

.pill-chip:hover, .category-pill:hover, .filter-chip:hover {
    color: var(--text-primary);
    background-color: rgba(255, 255, 255, 0.08);
}

.pill-chip.active, .category-pill.active, .filter-chip.active {
    background-color: var(--color-blue);
    border-color: var(--color-blue);
    color: #fff;
    box-shadow: 0 2px 8px rgba(56, 139, 253, 0.3);
}

/* Tables & Containers */
.table-responsive {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.table {
    width: 100% !important;
    min-width: 480px;
    border-collapse: collapse;
    text-align: left;
    font-size: 13px;
}

.table th, .table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
}

.table th {
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--text-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background-color: rgba(255, 255, 255, 0.02);
}

.table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.03);
}

/* Forms */
.form-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 14px;
    width: 100% !important;
}

.form-group label {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 12px;
    color: var(--text-muted);
}

input[type="text"], input[type="number"], input[type="password"], input[type="date"], select, textarea {
    background-color: rgba(11, 15, 23, 0.6);
    border: 1px solid var(--border-color);
    border-radius: 9px;
    padding: 9px 12px;
    color: #fff;
    font-family: var(--font-body);
    font-size: 13px;
    outline: none;
    transition: all 0.2s;
    width: 100% !important;
    box-sizing: border-box !important;
}

input:focus, select:focus, textarea:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 3px rgba(56, 139, 253, 0.2);
}

.form-row-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    width: 100% !important;
}

.form-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    width: 100% !important;
}

.form-row-2-1 {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 14px;
    width: 100% !important;
}

/* Badges */
.status-badge, .badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
}

.status-badge.success, .badge-fresh { background: rgba(63, 185, 80, 0.2); color: #8eff9d; border: 1px solid rgba(63, 185, 80, 0.45); }
.status-badge.warning, .badge-dry { background: rgba(255, 152, 0, 0.2); color: #ffca6c; border: 1px solid rgba(255, 152, 0, 0.45); }
.status-badge.danger { background: rgba(248, 81, 73, 0.2); color: #ff938d; border: 1px solid rgba(248, 81, 73, 0.45); }
.status-badge.info, .badge-beverage { background: rgba(74, 134, 140, 0.2); color: #a4e1e8; border: 1px solid rgba(74, 134, 140, 0.4); }
.badge-supply { background: rgba(166, 140, 63, 0.2); color: #ffd666; border: 1px solid rgba(166, 140, 63, 0.4); }

.badge-count-red {
    background-color: var(--color-red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 10px;
    margin-left: auto;
}

/* Workflows Grid */
.workflow-grid, .stocktake-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    width: 100% !important;
}

/* Barcode Simulation Buttons */
.simulator-groups {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 340px;
    overflow-y: auto;
    padding-right: 4px;
    width: 100% !important;
}

.sim-product-group {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 12px;
    width: 100% !important;
}

.sim-product-title {
    font-family: var(--font-heading);
    font-size: 12px;
    font-weight: 700;
    color: var(--color-blue);
    margin-bottom: 8px;
}

.sim-barcode-buttons {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
    width: 100% !important;
}

.btn-sim-scan {
    background: rgba(56, 139, 253, 0.08);
    border: 1px solid rgba(56, 139, 253, 0.25);
    color: var(--text-primary);
    padding: 8px 12px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    transition: all 0.2s ease;
    word-break: break-word;
    width: 100% !important;
}

.btn-sim-scan:hover {
    background: var(--color-blue);
    color: #ffffff;
    border-color: var(--color-blue);
    box-shadow: 0 4px 12px rgba(56, 139, 253, 0.3);
}

.btn-sim-scan .bc {
    font-family: monospace;
    font-size: 11px;
    opacity: 0.85;
}

/* Toast Notifications */
.toast-container {
    position: fixed !important;
    z-index: 999999 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-sizing: border-box !important;
}

@media (min-width: 577px) {
    .toast-container {
        top: 20px !important;
        right: 20px !important;
        max-width: 380px !important;
        width: 90% !important;
    }
}

@media (max-width: 576px) {
    .toast-container {
        top: 10px !important;
        left: 10px !important;
        right: 10px !important;
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
    }
}

/* ==========================================================================
   POPUP FINISHING SYSTEM
   Shared visual and interaction rules for every dialog in the application.
   ========================================================================== */
.modal-overlay {
    background:
        radial-gradient(circle at 50% 0%, rgba(112, 164, 171, 0.18), transparent 42%),
        rgba(7, 10, 15, 0.86) !important;
}

.modal-card:not(.modal-card--image) {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 34%),
        var(--bg-sidebar) !important;
    border-color: rgba(112, 164, 171, 0.3) !important;
    border-radius: 22px !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.56), 0 0 0 1px rgba(255, 255, 255, 0.025) inset !important;
}

.modal-card--compact {
    width: min(100%, 440px) !important;
}

.modal-header {
    min-height: 64px;
    padding: 18px 22px !important;
    background: linear-gradient(90deg, rgba(112, 164, 171, 0.12), rgba(15, 17, 26, 0.16)) !important;
}

.modal-header h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    line-height: 1.35;
}

.modal-header .close-btn {
    display: inline-flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    font-size: 24px;
    line-height: 1;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.modal-header .close-btn:hover {
    border-color: rgba(112, 164, 171, 0.55);
    background: rgba(112, 164, 171, 0.14);
    transform: rotate(90deg);
}

.modal-body {
    padding: 22px !important;
    scrollbar-gutter: stable;
}

.modal-form-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.modal-field {
    min-width: 0;
}

.modal-field > label {
    display: block;
    margin-bottom: 7px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.modal-body input[type="text"],
.modal-body input[type="number"],
.modal-body input[type="date"],
.modal-body input[type="password"],
.modal-body input[type="search"],
.modal-body select,
.modal-body textarea {
    min-height: 44px;
    border: 1px solid rgba(112, 164, 171, 0.28);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.14);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.025) inset;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.modal-body textarea {
    min-height: 104px;
    padding-top: 11px;
}

.modal-body input:focus,
.modal-body select:focus,
.modal-body textarea:focus {
    border-color: var(--color-blue);
    background: rgba(112, 164, 171, 0.08);
    box-shadow: 0 0 0 3px rgba(112, 164, 171, 0.18);
    outline: none;
}

.modal-field-note {
    margin: 8px 0 0;
    color: var(--color-accent);
    font-size: 12px;
    line-height: 1.45;
}

.modal-footer {
    gap: 10px !important;
    padding: 16px 22px !important;
    background: linear-gradient(90deg, rgba(15, 17, 26, 0.14), rgba(112, 164, 171, 0.1)) !important;
}

.modal-footer .btn-primary,
.modal-footer .btn-secondary,
.modal-footer .btn-success,
.modal-footer .btn-danger,
.modal-footer .btn-accent {
    min-height: 42px;
}

.modal-card.modal-card--image {
    display: block !important;
    width: min(100%, 600px) !important;
    height: auto !important;
    max-height: calc(100dvh - 48px) !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.modal-card--image img {
    display: block;
    max-height: calc(100dvh - 138px);
    margin: 0 auto;
    object-fit: contain;
}

@media (max-width: 576px) {
    .modal-card:not(.modal-card--image) {
        border-radius: 0 !important;
    }

    .modal-card.modal-card--image {
        width: calc(100% - 24px) !important;
        max-height: calc(100dvh - 24px) !important;
    }

    .modal-header {
        min-height: 58px;
        padding: 14px 16px !important;
    }

    .modal-body {
        padding: 18px 16px !important;
    }

    .modal-footer {
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    }
}

.toast {
    background: var(--bg-sidebar);
    border: 1px solid var(--border-color-glow);
    border-radius: 12px;
    padding: 12px 16px;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    animation: toastIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    width: 100% !important;
    box-sizing: border-box !important;
}

@keyframes toastIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

.toast.error, .toast.danger {
    border-left: 4px solid var(--color-red);
    background: #1c1015;
    color: #ffffff;
}

.toast.success {
    border-left: 4px solid var(--color-green);
    background: #0f1c15;
    color: #ffffff;
}

.toast.info {
    border-left: 4px solid var(--color-blue);
    background: #101828;
    color: #ffffff;
}

/* Activity Feed Timeline */
.activity-feed {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100% !important;
}

.activity-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    transition: all 0.2s ease;
    width: 100% !important;
}

.activity-item:hover {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(56, 139, 253, 0.3);
}

.activity-badge {
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    flex-shrink: 0;
}

.activity-badge.badge-in {
    background: rgba(63, 185, 80, 0.15);
    color: var(--color-green);
    border: 1px solid rgba(63, 185, 80, 0.3);
}

.activity-badge.badge-out {
    background: rgba(56, 139, 253, 0.15);
    color: var(--color-blue);
    border: 1px solid rgba(56, 139, 253, 0.3);
}

.activity-badge.badge-adjust {
    background: rgba(188, 140, 255, 0.15);
    color: var(--color-purple);
    border: 1px solid rgba(188, 140, 255, 0.3);
}

.activity-details {
    flex-grow: 1;
}

.activity-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
}

.activity-meta {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* --------------------------------------------------------------------------
   3. PRODUCT CATALOG GRID & CARDS (ZERO OVERFLOW PERFECT FIT)
   -------------------------------------------------------------------------- */
.product-catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 10px;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

.catalog-card {
    background: rgba(11, 15, 23, 0.5);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.catalog-card:hover {
    border-color: var(--color-blue);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
}

.catalog-img-container {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    background: #fff;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    flex-shrink: 0;
}

.catalog-img-container img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.catalog-title, .catalog-card-name {
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

/* Quantity Steppers */
.qty-control {
    display: flex;
    align-items: center;
    border: 1px solid var(--border-color);
    border-radius: 9px;
    overflow: hidden;
}

.qty-btn {
    width: 38px;
    height: 38px;
    background: rgba(255, 255, 255, 0.06);
    border: none;
    color: var(--text-primary);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.qty-control input {
    border: none !important;
    border-radius: 0 !important;
    text-align: center;
    font-weight: 700;
}

.quick-presets {
    display: flex;
    gap: 6px;
    margin-top: 8px;
}

.preset-btn {
    padding: 4px 8px;
    font-size: 11px;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-color);
    color: var(--text-muted);
    border-radius: 6px;
    cursor: pointer;
}

/* Modals & Dialogs */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box !important;
}

.modal-overlay.active {
    display: flex;
}

.modal-card {
    background: var(--bg-sidebar);
    border: 1px solid var(--border-color);
    border-radius: 18px;
    padding: 20px 24px;
    max-width: 500px;
    width: 100% !important;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
    animation: modalPop 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    box-sizing: border-box !important;
}

@keyframes modalPop {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-color);
}

.modal-header h3 {
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    word-break: break-word;
    color: var(--text-primary);
}

.modal-header .close-btn {
    background: transparent;
    border: none;
    color: var(--text-muted);
    font-size: 22px;
    cursor: pointer;
    border-radius: 8px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.2s ease;
}

.modal-header .close-btn:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.08);
}

.modal-body {
    padding: 4px 0 16px 0;
}

.modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--border-color);
}

/* Override Browser Autofill Yellow Background */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #1e1f1d inset !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    transition: background-color 5000s ease-in-out 0s;
}

body.light-theme input:-webkit-autofill,
body.light-theme input:-webkit-autofill:hover,
body.light-theme input:-webkit-autofill:focus,
body.light-theme input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #ffffff inset !important;
    -webkit-text-fill-color: #0f172a !important;
}

/* Desktop Requisition Tab Bar */
#requester-desktop-tab-bar {
    display: flex;
}

.req-desktop-tab.active {
    background: linear-gradient(135deg, #4a868c, #3a6f74) !important;
    color: #f2e2ce !important;
    border-color: rgba(74, 134, 140, 0.4) !important;
}

/* Role Isolation Settings */
body.requester-mode .sidebar {
    display: none !important;
}

body.requester-mode .app-container {
    grid-template-columns: 1fr !important;
}

body.requester-mode .main-content {
    padding: 12px 14px 14px 14px !important;
}

body.requester-mode .staff-admin-btn,
body.requester-mode .admin-only,
body.requester-mode .admin-only-panel,
body.requester-mode #btn-seed-demo {
    display: none !important;
}

body.requester-mode .sidebar-footer {
    display: block !important;
}

body.requester-mode .page-panel:not(#panel-outbound) {
    display: none !important;
}

body.requester-mode #panel-outbound.active {
    display: block !important;
}

/* Responsive Mobile Navigation */
.btn-mobile-menu {
    display: none;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 16px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.mobile-bottom-nav {
    display: none;
    position: fixed;
    bottom: 12px; left: 12px; right: 12px;
    height: 58px;
    background: rgba(39, 37, 37, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    z-index: 99999;
    padding: 4px 8px;
    align-items: center;
    justify-content: space-around;
    box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}

.mobile-nav-btn {
    background: transparent;
    border: none;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    flex: 1;
    height: 46px;
    border-radius: 11px;
}

.mobile-nav-btn i { font-size: 17px; }

.mobile-nav-btn.active {
    color: #4a868c;
    background: rgba(74, 134, 140, 0.15);
}

.mobile-fab-container {
    display: none;
    position: fixed;
    bottom: 80px; right: 16px;
    z-index: 99998;
}

.mobile-fab {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4a868c, #3a6f74);
    color: #f2e2ce;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    box-shadow: 0 8px 24px rgba(74, 134, 140, 0.4);
    cursor: pointer;
}

/* --------------------------------------------------------------------------
   4. MEDIA QUERIES & MOBILE BREAKPOINTS (STRICT FIT < 992px & < 576px)
   -------------------------------------------------------------------------- */
@media (max-width: 992px) {
    .app-container {
        grid-template-columns: 1fr !important;
    }

    .sidebar {
        position: fixed !important;
        left: -300px !important;
        top: 0 !important; bottom: 0 !important;
        width: 280px !important;
        max-width: 85vw !important;
        transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        z-index: 999999 !important;
        box-shadow: 10px 0 30px rgba(0, 0, 0, 0.6) !important;
    }

    .sidebar.sidebar-open, .sidebar.active {
        left: 0 !important;
    }

    .btn-close-sidebar {
        display: flex !important;
    }

    .btn-mobile-menu {
        display: flex !important;
    }

    .main-content {
        padding: 10px 10px 85px 10px !important;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .workflow-grid, .stocktake-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .sim-barcode-buttons {
        grid-template-columns: 1fr !important;
    }

    .form-row-2, .form-row-3, .form-row-2-1 {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    input[type="text"], input[type="number"], select {
        min-height: 44px;
        font-size: 14px;
    }

    .mobile-bottom-nav {
        display: flex !important;
    }

    .mobile-fab-container {
        display: flex !important;
    }

    body.requester-mode #requester-desktop-tab-bar {
        display: none !important;
    }

    body.requester-mode .main-content {
        padding: 12px 14px 95px 14px !important;
    }

    .mobile-stack {
        grid-template-columns: 1fr !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }
}

@media (max-width: 576px) {
    .main-content {
        padding: 8px 8px 90px 8px !important;
    }

    .card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel {
        padding: 10px 8px !important;
        margin-bottom: 12px !important;
        border-radius: 12px !important;
    }

    .step-items-wrapper {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 6px !important;
    }

    .step-arrow {
        display: none !important;
    }

    .product-catalog-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    .catalog-card {
        min-width: 0 !important;
        padding: 8px 4px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .catalog-title, .catalog-card-name {
        font-size: 11px !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }

    .catalog-img-container {
        width: 48px !important;
        height: 48px !important;
    }

    .modal-card {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        margin: 8px auto !important;
        padding: 12px !important;
    }

    .panel-header h2 { font-size: 16px !important; }
    .panel-header p { font-size: 11px !important; }
}

/* Light Theme Overrides */
body.light-theme {
    --bg-main: #f4f7fb;
    --bg-sidebar: #ffffff;
    --bg-card: rgba(255, 255, 255, 0.96);
    --bg-card-hover: #f8fbff;
    --surface-soft: #edf3f8;
    --border-color: rgba(71, 85, 105, 0.22);
    --border-color-glow: rgba(3, 105, 161, 0.45);
    --text-primary: #162033;
    --text-muted: #475569;
    --text-main: #162033;
    --color-blue: #0369a1;
    --color-green: #15803d;
    --color-red: #be123c;
    --color-purple: #6d28d9;
    --color-orange: #b45309;
    --color-accent: #a16207;
    background-image:
        radial-gradient(at 4% 8%, rgba(14, 165, 233, 0.10) 0px, transparent 45%),
        radial-gradient(at 94% 92%, rgba(245, 158, 11, 0.10) 0px, transparent 46%);
    color-scheme: light;
}

body.light-theme .sidebar {
    background: #ffffff !important;
    border-right: 1px solid #cbd5e1 !important;
    box-shadow: 4px 0 24px rgba(15, 23, 42, 0.06) !important;
}

body.light-theme .top-header,
body.light-theme .card-glass,
body.light-theme .dashboard-card {
    background: #ffffff;
    border-color: #cbd5e1;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
}

body.light-theme input,
body.light-theme select,
body.light-theme textarea {
    background: #ffffff;
    border-color: #94a3b8;
    color: #0f172a;
}

body.light-theme .table th {
    background: #e2e8f0;
    color: #0f172a;
}

body.light-theme .mobile-bottom-nav {
    background: rgba(255, 255, 255, 0.95);
    border-color: #cbd5e1;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

body.light-theme .mobile-nav-btn {
    color: #475569;
}

body.light-theme .mobile-nav-btn.active {
    color: #4a868c !important;
    background: rgba(74, 134, 140, 0.12) !important;
}

body.light-theme h1, 
body.light-theme h2, 
body.light-theme h3, 
body.light-theme h4, 
body.light-theme h5, 
body.light-theme h6 {
    color: #0f172a !important;
}

body.light-theme .logo-text h2 {
    color: #0f172a !important;
}

body.light-theme .logo-text span {
    color: #475569 !important;
}

body.light-theme .user-select {
    color: #0f172a !important;
}

body.light-theme .nav-btn {
    color: #475569 !important;
}

body.light-theme .nav-btn:hover {
    color: #0f172a !important;
    background-color: rgba(15, 23, 42, 0.08) !important;
}

body.light-theme .nav-btn.active {
    background: rgba(74, 134, 140, 0.15) !important;
    border-left-color: #4a868c !important;
    border-color: rgba(74, 134, 140, 0.3) !important;
    color: #1e3a3a !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(74, 134, 140, 0.1) !important;
}

body.light-theme .active-user-badge {
    background-color: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
}

body.light-theme .active-user-badge i {
    color: #4a868c !important;
}

body.light-theme .btn-secondary {
    background-color: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

body.light-theme .btn-secondary:hover:not(:disabled) {
    background-color: #e2e8f0 !important;
}

body.light-theme .btn-accent {
    background: linear-gradient(135deg, #a68c3f, #8a7433) !important;
    color: #ffffff !important;
}

/* Light Theme Badges Contrast Fix */
body.light-theme .status-badge.success, 
body.light-theme .badge-fresh { 
    background: rgba(34, 197, 94, 0.18) !important; 
    color: #15803d !important; 
    border: 1px solid rgba(34, 197, 94, 0.35) !important; 
}
body.light-theme .status-badge.warning, 
body.light-theme .badge-dry { 
    background: rgba(249, 115, 22, 0.18) !important; 
    color: #c2410c !important; 
    border: 1px solid rgba(249, 115, 22, 0.35) !important; 
}
body.light-theme .status-badge.danger { 
    background: rgba(239, 68, 68, 0.18) !important; 
    color: #b91c1c !important; 
    border: 1px solid rgba(239, 68, 68, 0.35) !important; 
}
body.light-theme .status-badge.info, 
body.light-theme .badge-beverage { 
    background: rgba(74, 134, 140, 0.18) !important; 
    color: #1e3a3a !important; 
    border: 1px solid rgba(74, 134, 140, 0.35) !important; 
}
body.light-theme .badge-supply { 
    background: rgba(166, 140, 63, 0.18) !important; 
    color: #71581e !important; 
    border: 1px solid rgba(166, 140, 63, 0.35) !important; 
}

/* Global Disabled Button Contrast Override */
button:disabled {
    opacity: 0.6 !important;
    background: #cbd5e1 !important;
    color: #475569 !important;
    border-color: #cbd5e1 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Requisition Card Item Styles */
.req-card-item {
    padding: 12px 14px;
    margin-bottom: 10px;
    border-radius: 12px;
    width: 100%;
    box-sizing: border-box;
    background: rgba(39, 37, 37, 0.65) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    transition: all 0.25s ease;
}

body.light-theme .req-card-item {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04) !important;
}

.req-card-id {
    font-family: monospace;
    font-weight: 700;
    font-size: 13px;
    color: #82c3c9 !important;
}

body.light-theme .req-card-id {
    color: #0f766e !important;
}

.req-card-audit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: #cbd5e1 !important;
    margin-bottom: 8px;
    flex-wrap: wrap;
    background: rgba(0, 0, 0, 0.25) !important;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
}

body.light-theme .req-card-audit {
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    color: #334155 !important;
}

/* Sidebar placeholder layout slot helper for fixed positioning */
.sidebar-placeholder {
    width: 270px;
    height: 100vh;
    flex-shrink: 0;
    display: block;
}
@media (max-width: 1180px) {
    .sidebar-placeholder {
        display: none !important;
    }
}

/* Horizontal scroll without scrollbar track */
.scroll-x-no-scrollbar {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    scrollbar-width: none !important; /* Firefox */
    -ms-overflow-style: none !important;  /* IE and Edge */
}
.scroll-x-no-scrollbar::-webkit-scrollbar {
    display: none !important; /* Chrome, Safari, Opera */
}

/* Upload Dropzone Hover State */
.upload-dropzone:hover {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 12px rgba(56, 189, 248, 0.15) !important;
}

/* Click-to-copy hover effect */
.truncate-hover-effect:hover {
    color: var(--color-accent) !important;
    border-bottom-color: var(--color-accent) !important;
    transition: all 0.2s ease;
}

/* ==========================================================================
   MOBILE & VIEWPORT RESPONSIVENESS OVERRIDES (ANTIGRAVITY PREMIUM POLISH)
   ========================================================================== */
@media (max-width: 768px) {
    /* 1. Global Workspace Padding Reduction (Reduce Cramped Feeling) */
    .main-content {
        padding: 10px 10px 80px 10px !important;
    }
    
    .top-header {
        padding: 8px 12px !important;
        margin-bottom: 12px !important;
        border-radius: 10px !important;
    }
    
    .top-header h1 {
        font-size: 15px !important;
    }
    
    .panel-header {
        margin-bottom: 15px !important;
        padding: 10px !important;
    }
    
    .panel-header h2 {
        font-size: 16px !important;
    }
    
    .panel-header p {
        font-size: 11px !important;
    }

    /* 2. Glass Cards Padding and Spacing Adjustments */
    .card-glass {
        padding: 12px !important;
        border-radius: 12px !important;
        margin-bottom: 12px !important;
    }
    
    .card-glass h3 {
        font-size: 14px !important;
    }

    /* 3. Table Denseness & Horizontal Scrolling */
    .table-responsive {
        border-radius: 8px !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    .table {
        font-size: 11.5px !important;
    }
    
    .table th, .table td {
        padding: 6px 8px !important;
        height: auto !important;
    }
    
    /* 4. Form Controls & Buttons */
    .input-text, .input-select, select {
        height: 36px !important;
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
    
    .btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-accent {
        padding: 8px 12px !important;
        font-size: 12px !important;
        border-radius: 8px !important;
        height: 36px !important;
    }

    /* 5. Metrics Grid Layout for Dashboard */
    .metrics-grid {
        grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
        gap: 10px !important;
        margin-top: 10px !important;
    }
    
    .metric-card {
        padding: 10px 8px !important;
        gap: 8px !important;
        border-radius: 10px !important;
    }
    
    .metric-icon {
        width: 36px !important;
        height: 36px !important;
        font-size: 15px !important;
        border-radius: 8px !important;
    }
    
    .metric-card div div {
        font-size: 18px !important;
    }
    
    .metric-card div span {
        font-size: 10px !important;
    }

    /* 6. Modal / Popups Responsiveness */
    .modal-card {
        padding: 15px !important;
        width: 95% !important;
        max-width: 95% !important;
        border-radius: 16px !important;
        margin: 20px auto !important;
    }
    
    .modal-card h3 {
        font-size: 15px !important;
    }
}

@media (max-width: 576px) {
    /* Tighten margins further on extra small mobile devices */
    .main-content {
        padding: 6px 6px 70px 6px !important;
    }
    
    .top-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 10px !important;
    }
    
    .header-actions {
        justify-content: space-between !important;
        width: 100% !important;
    }
    
    /* Forms Stack vertically */
    .mobile-stack {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    
    /* Horizontal tab scroll height */
    .scroll-x-no-scrollbar {
        padding-bottom: 5px !important;
    }
}
@media (max-width: 1024px) {
    /* Forms and grids Stack vertically on iPad/Tablets to prevent horizontal clipping */
    .mobile-stack {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* ==========================================================================
   UNIVERSAL FULL-SCREEN OVERLAY MODALS (PC, IPAD, MOBILE)
   ========================================================================== */
.modal-overlay {
    padding: 0 !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    position: fixed !important;
    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    background: rgba(10, 12, 18, 0.95) !important;
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    z-index: 999999 !important;
}

.modal-overlay.active,
.modal-overlay[style*="display: flex"],
.modal-overlay[style*="display:flex"] {
    display: flex !important;
}

.modal-card {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    margin: 0 !important;
    border: none !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: none !important;
    background: rgba(10, 12, 18, 0.98) !important;
    animation: modalPopFullscreen 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

@keyframes modalPopFullscreen {
    from { opacity: 0; transform: scale(1.01); }
    to { opacity: 1; transform: scale(1); }
}

.modal-header {
    padding: 18px 24px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    background: rgba(15, 17, 26, 0.5) !important;
}

.modal-body {
    flex-grow: 1 !important;
    overflow-y: auto !important;
    padding: 30px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

/* Constrain and center form content on PC/iPad screen widths */
.modal-body > * {
    max-width: 800px !important;
    width: 100% !important;
    text-align: left !important;
}

.modal-footer {
    padding: 16px 24px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    flex-shrink: 0 !important;
    background: rgba(15, 17, 26, 0.5) !important;
}

/* Adjust close button for full screen modals */
.close-btn {
    font-size: 28px !important;
    background: none !important;
    border: none !important;
    color: var(--text-muted) !important;
    cursor: pointer !important;
    transition: color 0.2s ease;
}

.close-btn:hover {
    color: var(--color-red) !important;
}

/* ==========================================================================
   PIN PAD SECURITY OVERLAY SYSTEM (PREMIUM GLARED PAD)
   ========================================================================== */
.pin-pad-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
}

.pin-shield-icon {
    width: 72px;
    height: 72px;
    background: rgba(56, 189, 248, 0.08);
    border: 2px solid rgba(56, 189, 248, 0.25);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: var(--color-blue);
    margin-top: 10px;
    margin-bottom: 15px;
    box-shadow: 0 0 24px rgba(56, 189, 248, 0.15);
    animation: pulseIcon 2.5s infinite ease-in-out;
}

@keyframes pulseIcon {
    0%, 100% { transform: scale(1); box-shadow: 0 0 24px rgba(56, 189, 248, 0.15); }
    50% { transform: scale(1.06); box-shadow: 0 0 36px rgba(56, 189, 248, 0.35); }
}

.pin-dots-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 20px 0 25px 0;
}

.pin-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
    background: transparent;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.pin-dot.filled {
    background: var(--color-blue) !important;
    border-color: var(--color-blue) !important;
    box-shadow: 0 0 14px var(--color-blue), 0 0 4px var(--color-blue) !important;
    transform: scale(1.2);
}

.pin-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    width: 100%;
    max-width: 300px;
    margin-bottom: 20px;
}

.pin-key {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: var(--text-main) !important;
    font-size: 22px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);
    margin: 0 auto;
}

.pin-key:hover {
    background: rgba(56, 189, 248, 0.12) !important;
    border-color: var(--color-blue) !important;
    color: var(--color-blue) !important;
    transform: scale(1.08);
}

.pin-key:active {
    background: var(--color-blue) !important;
    color: #fff !important;
    transform: scale(0.92);
}

.pin-key.special {
    font-size: 14px !important;
    font-weight: 600;
    color: var(--text-muted) !important;
    background: transparent !important;
    border: none !important;
}

.pin-key.special:hover {
    color: var(--color-red) !important;
    background: rgba(239, 68, 68, 0.08) !important;
}

.pin-key.special-clear:hover {
    color: var(--color-orange) !important;
    background: rgba(245, 158, 11, 0.08) !important;
}

/* ===========================================================================
   RESPONSIVE HARDENING — final precedence for React panels (mobile + iPad)
   ========================================================================== */

/* Keep grid and flex children from forcing their parents wider than the viewport. */
.page-panel,
.page-panel > *,
.card-glass,
.dashboard-card,
.workflow-scan-panel,
.workflow-form-panel,
.form-group,
.search-box,
.header-search,
.top-header > div,
.mobile-stack {
    min-width: 0;
}

.search-box {
    position: relative;
}

.search-box > i {
    position: absolute;
    left: 12px;
    top: 50%;
    z-index: 1;
    color: var(--text-muted);
    pointer-events: none;
    transform: translateY(-50%);
}

.search-box > input {
    padding-left: 36px !important;
}

input[type="email"],
input[type="tel"],
input[type="search"],
input[type="month"],
input[type="time"],
input[type="file"],
.input-text,
.input-select,
.input-field {
    width: 100% !important;
    min-width: 0;
    min-height: 42px;
    border: 1px solid var(--border-color);
    border-radius: 9px;
    background-color: rgba(11, 15, 23, 0.6);
    color: var(--text-primary);
    font: inherit;
}

textarea {
    min-height: 96px;
    resize: vertical;
}

input[type="file"] {
    padding: 7px 9px;
}

input[type="file"]::file-selector-button {
    margin-right: 10px;
    padding: 6px 9px;
    border: 0;
    border-radius: 6px;
    background: rgba(112, 164, 171, 0.18);
    color: var(--text-primary);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.table-responsive {
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(112, 164, 171, 0.55) transparent;
}

.table-responsive::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

.table-responsive::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(112, 164, 171, 0.45);
}

/* Correct the former global full-screen rule: dialogs remain focused on larger screens. */
.modal-overlay {
    padding: clamp(12px, 3vw, 32px) !important;
    align-items: center !important;
    justify-content: center !important;
    inset: 0 !important;
    background: rgba(10, 12, 18, 0.82) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

.modal-card {
    width: min(100%, 800px) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: calc(100dvh - clamp(24px, 6vw, 64px)) !important;
    margin: auto !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5) !important;
    background: var(--bg-sidebar) !important;
    animation: modalPop 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

/* Respect the intentional compact and wide dialog sizes declared by each panel. */
.modal-card[style*="width: 400px"],
.modal-card[style*="max-width: 400px"] {
    width: min(100%, 400px) !important;
}

.modal-card[style*="width: 450px"],
.modal-card[style*="max-width: 450px"] {
    width: min(100%, 450px) !important;
}

.modal-card[style*="width: 500px"],
.modal-card[style*="max-width: 500px"] {
    width: min(100%, 500px) !important;
}

.modal-card[style*="width: 600px"],
.modal-card[style*="max-width: 600px"] {
    width: min(100%, 600px) !important;
}

.modal-card[style*="width: 700px"] {
    width: min(100%, 700px) !important;
}

.modal-card[style*="width: 900px"] {
    width: min(100%, 900px) !important;
}

.modal-card > form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.modal-header {
    margin: 0 !important;
    padding: 16px 20px !important;
    border-bottom-color: var(--border-color) !important;
    background: rgba(15, 17, 26, 0.28) !important;
}

.modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
    padding: 20px !important;
    display: block !important;
}

.modal-body > * {
    max-width: 100% !important;
}

.modal-footer {
    margin: 0 !important;
    padding: 14px 20px !important;
    flex-wrap: wrap !important;
    border-top-color: var(--border-color) !important;
    background: rgba(15, 17, 26, 0.28) !important;
}

/* Mobile navigation is rendered by Sidebar; the scrim makes the drawer dismissible. */
.mobile-nav-scrim {
    display: none;
}

@media (max-width: 992px) {
    .mobile-nav-scrim {
        position: fixed;
        z-index: 999998;
        inset: 0;
        width: 100%;
        height: 100%;
        border: 0;
        background: rgba(5, 8, 12, 0.56);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
    }

    .app-container.mobile-nav-open .mobile-nav-scrim {
        display: block;
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-bottom-nav {
        right: max(10px, env(safe-area-inset-right)) !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        left: max(10px, env(safe-area-inset-left)) !important;
        height: 62px !important;
        padding: 5px 6px !important;
    }

    .mobile-nav-btn {
        min-width: 0;
        min-height: 50px;
        padding: 4px 2px;
        line-height: 1.15;
    }

    .mobile-nav-btn span {
        overflow: hidden;
        max-width: 100%;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .main-content {
        padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important;
    }

    .top-header > div {
        gap: 10px !important;
    }

    .top-header > div > div:first-child {
        min-width: 0;
    }

    .header-search h1 {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .workflow-grid,
    .stocktake-grid,
    .mobile-stack {
        min-width: 0 !important;
    }
}

@media (max-width: 768px) {
    .panel-header {
        gap: 8px;
    }

    .panel-header[style] > .btn-primary,
    .panel-header[style] > .btn-secondary,
    .panel-header[style] > .btn-success,
    .panel-header[style] > .btn-danger,
    .panel-header[style] > .btn-accent {
        min-height: 40px;
    }

    .table {
        min-width: 560px;
    }

    .table th,
    .table td {
        white-space: nowrap;
    }

    .filmstrip-roll-card {
        min-width: min(88vw, 290px) !important;
        max-width: min(88vw, 330px) !important;
    }

    .film-strip-row {
        scroll-snap-type: x proximity;
        padding-bottom: 10px !important;
    }

    .film-strip-row > * {
        scroll-snap-align: start;
    }
}

@media (max-width: 576px) {
    .main-content > div[style*="margin-top"] {
        margin-top: 12px !important;
    }

    .top-header > div > div:first-child {
        width: 100%;
    }

    .header-search {
        flex: 1 1 auto;
    }

    .header-search h1 {
        font-size: 15px !important;
    }

    .top-header > div > div:last-child {
        width: 100%;
    }

    .top-header > div > div:last-child .btn-accent {
        width: 100%;
    }

    .page-panel [style*="grid-template-columns"]:not(.product-catalog-grid):not(.metrics-grid) {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .panel-header[style] > .btn-primary,
    .panel-header[style] > .btn-secondary,
    .panel-header[style] > .btn-success,
    .panel-header[style] > .btn-danger,
    .panel-header[style] > .btn-accent {
        width: 100%;
    }

    .card-glass,
    .dashboard-card,
    .workflow-scan-panel,
    .workflow-form-panel {
        padding: 12px !important;
    }

    .modal-overlay {
        padding: 0 !important;
    }

    .modal-card {
        width: 100% !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border: 0 !important;
        border-radius: 0 !important;
    }

    .modal-header {
        padding: 14px 16px !important;
    }

    .modal-body {
        padding: 16px !important;
    }

    .modal-footer {
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    }

    .modal-footer .btn-primary,
    .modal-footer .btn-secondary,
    .modal-footer .btn-success,
    .modal-footer .btn-danger,
    .modal-footer .btn-accent {
        flex: 1 1 140px;
    }
}

/* Keep the popup finishing system last so individual legacy dialog styles
   cannot override the shared presentation. */
.modal-overlay {
    background:
        radial-gradient(circle at 50% 0%, rgba(112, 164, 171, 0.18), transparent 42%),
        rgba(7, 10, 15, 0.86) !important;
}

.modal-header {
    min-height: 64px;
    padding: 18px 22px !important;
    background: linear-gradient(90deg, rgba(112, 164, 171, 0.12), rgba(15, 17, 26, 0.16)) !important;
}

.modal-body {
    padding: 22px !important;
}

.modal-footer {
    padding: 16px 22px !important;
    background: linear-gradient(90deg, rgba(15, 17, 26, 0.14), rgba(112, 164, 171, 0.1)) !important;
}

@media (max-width: 576px) {
    .modal-header {
        min-height: 58px;
        padding: 14px 16px !important;
    }

    .modal-body {
        padding: 18px 16px !important;
    }

    .modal-footer {
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    }
}

/* Requisition preview mirrors the hierarchy of the printable A4 document. */
.requisition-preview {
    display: flex;
    flex-direction: column;
    gap: 16px;
    color: var(--text-primary);
}

.requisition-preview__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border-color);
}

.requisition-preview__eyebrow {
    margin: 0 0 4px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
}

.requisition-preview__header h4 {
    margin: 0;
    color: var(--text-primary);
    font-family: monospace;
    font-size: 16px;
}

.requisition-preview__header > div > span {
    display: block;
    margin-top: 4px;
    color: var(--text-muted);
    font-size: 11px;
}

.requisition-preview__status {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.requisition-preview__status--approved { color: var(--color-green); background: rgba(63, 185, 80, 0.1); }
.requisition-preview__status--rejected { color: var(--color-red); background: rgba(248, 81, 73, 0.1); }
.requisition-preview__status--dispatched { color: var(--color-blue); background: rgba(112, 164, 171, 0.12); }
.requisition-preview__status--pending { color: var(--color-accent); background: rgba(166, 140, 63, 0.12); }

.requisition-preview__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.requisition-preview__meta > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.025);
}

.requisition-preview__meta dt {
    margin-bottom: 4px;
    color: var(--text-muted);
    font-size: 10px;
    font-weight: 700;
}

.requisition-preview__meta dd {
    overflow: hidden;
    margin: 0;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.requisition-preview__table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border-color);
    border-radius: 10px;
}

.requisition-preview__table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 12px;
    text-align: left;
}

.requisition-preview__table th,
.requisition-preview__table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
}

.requisition-preview__table th {
    color: var(--text-muted);
    background: rgba(112, 164, 171, 0.1);
    font-size: 10px;
    font-weight: 700;
}

.requisition-preview__table tr:last-child td { border-bottom: 0; }
.requisition-preview__table td:last-child { color: var(--color-green); font-weight: 700; text-align: right; }
.requisition-preview__table code { color: var(--text-muted); font-size: 11px; }

.requisition-preview__note {
    margin: 0;
    padding: 10px 12px;
    border-left: 3px solid var(--color-accent);
    border-radius: 0 8px 8px 0;
    background: rgba(166, 140, 63, 0.1);
    color: var(--text-primary);
    font-size: 12px;
}

@media (max-width: 576px) {
    .requisition-preview__header { align-items: stretch; flex-direction: column; }
    .requisition-preview__status { align-self: flex-start; }
    .requisition-preview__meta { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   ACCESSIBLE THEME REFINEMENT
   Keeps the existing WMS identity while making text, controls and data states
   easy to read in both light and dark environments.
   -------------------------------------------------------------------------- */
body:not(.light-theme) .nav-btn.active {
    background: linear-gradient(90deg, rgba(56, 189, 248, 0.22), rgba(56, 189, 248, 0.05));
    border-left-color: var(--color-blue);
    border-color: rgba(56, 189, 248, 0.40);
    color: var(--text-primary);
    box-shadow: 0 4px 14px rgba(14, 165, 233, 0.18);
}

body:not(.light-theme) .nav-btn:hover {
    background-color: rgba(203, 213, 225, 0.09);
}

body:not(.light-theme) .btn-secondary,
body:not(.light-theme) .active-user-badge {
    background-color: var(--surface-soft);
    border-color: var(--border-color);
}

.table th {
    background-color: var(--surface-soft);
    color: var(--text-primary);
}

.table tbody tr:hover {
    background-color: var(--surface-soft);
}

input[type="text"],
input[type="number"],
input[type="password"],
input[type="date"],
input[type="email"],
input[type="tel"],
input[type="search"],
select,
textarea,
.input-text,
.input-select,
.input-field {
    color: var(--text-primary);
}

input::placeholder,
textarea::placeholder {
    color: var(--text-muted);
    opacity: 0.88;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 3px solid rgba(56, 189, 248, 0.62);
    outline-offset: 2px;
}

.status-badge.success,
.badge-fresh {
    background: rgba(34, 197, 94, 0.18);
    color: #bbf7d0;
    border-color: rgba(74, 222, 128, 0.46);
}

.status-badge.warning,
.badge-dry {
    background: rgba(251, 191, 36, 0.17);
    color: #fde68a;
    border-color: rgba(251, 191, 36, 0.45);
}

.status-badge.danger {
    background: rgba(251, 113, 133, 0.17);
    color: #fecdd3;
    border-color: rgba(251, 113, 133, 0.45);
}

.status-badge.info,
.badge-beverage {
    background: rgba(56, 189, 248, 0.16);
    color: #bae6fd;
    border-color: rgba(56, 189, 248, 0.42);
}

.badge-supply {
    background: rgba(251, 191, 36, 0.16);
    color: #fef3c7;
    border-color: rgba(251, 191, 36, 0.42);
}

.modal-overlay {
    background:
        radial-gradient(circle at 50% 0%, rgba(56, 189, 248, 0.20), transparent 42%),
        rgba(7, 12, 22, 0.86) !important;
}

.modal-card:not(.modal-card--image) {
    border-color: rgba(56, 189, 248, 0.32) !important;
}

.modal-header,
.modal-footer {
    background: linear-gradient(90deg, rgba(56, 189, 248, 0.11), rgba(15, 23, 42, 0.12)) !important;
}

.modal-body input[type="text"],
.modal-body input[type="number"],
.modal-body input[type="date"],
.modal-body input[type="password"],
.modal-body input[type="search"],
.modal-body select,
.modal-body textarea {
    border-color: rgba(148, 163, 184, 0.45);
    background: rgba(15, 23, 42, 0.62);
}

.modal-body input:focus,
.modal-body select:focus,
.modal-body textarea:focus {
    background: rgba(30, 41, 59, 0.96);
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22);
}

body.light-theme .sidebar {
    background: linear-gradient(180deg, #ffffff 0%, #f0f5fa 100%) !important;
    border-right-color: rgba(71, 85, 105, 0.20) !important;
}

body.light-theme .top-header,
body.light-theme .card-glass,
body.light-theme .dashboard-card {
    border-color: var(--border-color);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.07);
}

body.light-theme .nav-btn:hover {
    background-color: #e7f0f7 !important;
}

body.light-theme .nav-btn.active {
    background: linear-gradient(90deg, rgba(3, 105, 161, 0.15), rgba(3, 105, 161, 0.05)) !important;
    border-left-color: var(--color-blue) !important;
    border-color: rgba(3, 105, 161, 0.28) !important;
    color: #0f3f5d !important;
    box-shadow: 0 3px 10px rgba(3, 105, 161, 0.10) !important;
}

body.light-theme .btn-accent {
    background: linear-gradient(135deg, #b45309, #92400e) !important;
    border-color: rgba(146, 64, 14, 0.44) !important;
    color: #ffffff !important;
}

body.light-theme .status-badge.success,
body.light-theme .badge-fresh {
    background: #dcfce7 !important;
    color: #166534 !important;
    border-color: #86efac !important;
}

body.light-theme .status-badge.warning,
body.light-theme .badge-dry {
    background: #fef3c7 !important;
    color: #92400e !important;
    border-color: #fcd34d !important;
}

body.light-theme .status-badge.danger {
    background: #ffe4e6 !important;
    color: #9f1239 !important;
    border-color: #fda4af !important;
}

body.light-theme .status-badge.info,
body.light-theme .badge-beverage {
    background: #e0f2fe !important;
    color: #075985 !important;
    border-color: #7dd3fc !important;
}

body.light-theme .badge-supply {
    background: #fef3c7 !important;
    color: #92400e !important;
    border-color: #fcd34d !important;
}

body.light-theme .modal-overlay {
    background:
        radial-gradient(circle at 50% 0%, rgba(14, 165, 233, 0.22), transparent 42%),
        rgba(15, 23, 42, 0.60) !important;
}

body.light-theme .modal-card:not(.modal-card--image) {
    background: #ffffff !important;
    border-color: rgba(3, 105, 161, 0.28) !important;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28) !important;
}

body.light-theme .modal-header,
body.light-theme .modal-footer {
    background: linear-gradient(90deg, #edf7ff, #f8fbff) !important;
}

body.light-theme .modal-body input[type="text"],
body.light-theme .modal-body input[type="number"],
body.light-theme .modal-body input[type="date"],
body.light-theme .modal-body input[type="password"],
body.light-theme .modal-body input[type="search"],
body.light-theme .modal-body select,
body.light-theme .modal-body textarea {
    background: #ffffff;
    border-color: #94a3b8;
    color: var(--text-primary);
}

body.light-theme .modal-body input:focus,
body.light-theme .modal-body select:focus,
body.light-theme .modal-body textarea:focus {
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.16);
}

body.light-theme input:focus-visible,
body.light-theme select:focus-visible,
body.light-theme textarea:focus-visible,
body.light-theme button:focus-visible,
body.light-theme a:focus-visible {
    outline-color: rgba(3, 105, 161, 0.62);
}

/* --------------------------------------------------------------------------
   REQUISITION QUEUE & DOCUMENT DIALOGS
   Dedicated sizing prevents long slips from being clipped while preserving
   fixed headers and action buttons on every screen size.
   -------------------------------------------------------------------------- */
.modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
}

.modal-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
}

.modal-card > .modal-header,
.modal-card > .modal-footer {
    flex: 0 0 auto !important;
}

.modal-card > .modal-body {
    min-height: 0 !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
}

.modal-card--document {
    width: min(100%, 820px) !important;
    height: min(820px, calc(100dvh - 48px)) !important;
    max-height: calc(100dvh - 48px) !important;
}

.modal-card--document .modal-body {
    padding: 20px 22px !important;
}

.requisition-queue-table th:nth-child(1) { width: 11%; }
.requisition-queue-table th:nth-child(2) { width: 14%; }
.requisition-queue-table th:nth-child(3) { width: 12%; }
.requisition-queue-table th:nth-child(4) { width: 9%; }
.requisition-queue-table th:nth-child(5) { width: 31%; }
.requisition-queue-table th:nth-child(6) { width: 23%; }

.requisition-queue-actions {
    display: table-cell !important;
    min-width: 260px;
    vertical-align: middle;
    white-space: normal;
}

.requisition-queue-actions > button,
.requisition-queue-actions > .status-badge {
    margin: 3px 4px;
}

.requisition-queue-department {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--text-primary);
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 576px) {
    .modal-card--document {
        width: 100% !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border: 0 !important;
        border-radius: 0 !important;
    }

    .modal-card--document .modal-body {
        padding: 14px 16px !important;
    }

    .modal-card--document .modal-footer {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    }

    .modal-card--document .modal-footer .btn-secondary {
        grid-column: 1 / -1;
    }

    .requisition-preview {
        gap: 12px;
    }

    .requisition-preview__table {
        min-width: 100%;
        table-layout: auto;
        font-size: 12px;
        border-collapse: collapse;
    }

    .requisition-preview__table th,
    .requisition-preview__table td {
        padding: 10px 12px;
        overflow-wrap: break-word;
        white-space: normal;
        vertical-align: middle;
    }

    .requisition-preview__table th:nth-child(1),
    .requisition-preview__table td:nth-child(1) { text-align: left; }

    .requisition-preview__table th:nth-child(2),
    .requisition-preview__table td:nth-child(2) { text-align: left; }

    .requisition-preview__table th:nth-child(3),
    .requisition-preview__table td:nth-child(3) { text-align: right; white-space: nowrap; }

    .requisition-preview__table code {
        font-size: 11px;
        display: inline-block;
        word-break: break-all;
    }

    .requisition-queue-table-wrap {
        overflow: visible !important;
    }

    .requisition-queue-table,
    .requisition-queue-table tbody,
    .requisition-queue-table tr,
    .requisition-queue-table td {
        display: block;
        min-width: 0 !important;
        width: 100% !important;
    }

    .requisition-queue-table thead {
        display: none;
    }

    .requisition-queue-table tbody {
        display: grid;
        gap: 12px;
    }

    .requisition-queue-table .requisition-queue-row {
        overflow: hidden;
        padding: 4px 12px;
        border: 1px solid var(--border-color);
        border-radius: 12px;
        background: var(--bg-card);
        box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
    }

    .requisition-queue-table .requisition-queue-row td {
        display: grid;
        grid-template-columns: minmax(94px, 0.8fr) minmax(0, 1.2fr);
        gap: 10px;
        align-items: start;
        padding: 9px 0 !important;
        border-bottom: 1px solid var(--border-color);
        color: var(--text-primary);
        font-size: 12px;
        text-align: left;
        white-space: normal !important;
    }

    .requisition-queue-table .requisition-queue-row td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-size: 10px;
        font-weight: 700;
    }

    .requisition-queue-table .requisition-queue-row td:last-child {
        border-bottom: 0;
    }

    .requisition-queue-table .requisition-queue-items {
        overflow: visible !important;
        max-width: none !important;
        text-overflow: clip !important;
    }

    .requisition-queue-table .requisition-queue-actions {
        display: flex !important;
        flex-wrap: wrap;
        gap: 8px !important;
        justify-content: stretch !important;
    }

    .requisition-queue-table .requisition-queue-actions::before {
        flex: 0 0 100%;
    }

    .requisition-queue-table .requisition-queue-actions .btn-secondary,
    .requisition-queue-table .requisition-queue-actions .btn-success,
    .requisition-queue-table .requisition-queue-actions .btn-danger {
        flex: 1 1 130px;
        min-height: 40px;
        margin: 0;
    }
}

/* Compact, purposeful empty state for the outbound product catalog. */
.outbound-catalog-card {
    min-height: 0 !important;
}

.product-catalog-grid.product-catalog-grid--empty {
    grid-template-columns: minmax(0, 1fr) !important;
}

.catalog-empty-state {
    grid-column: 1 / -1;
    display: flex;
    min-height: 190px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    border: 1px dashed var(--border-color);
    border-radius: 12px;
    background: var(--surface-soft);
    color: var(--text-muted);
    text-align: center;
}

.catalog-empty-state__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    margin-bottom: 10px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-blue) 12%, transparent);
    color: var(--color-blue);
    font-size: 18px;
}

.catalog-empty-state h4 {
    margin: 0;
    color: var(--text-primary);
    font-size: 14px;
}

.catalog-empty-state p {
    max-width: 290px;
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.45;
}

.catalog-empty-state .btn-secondary {
    margin-top: 12px;
}

@media (max-width: 576px) {
    .outbound-catalog-card {
        padding-bottom: 12px !important;
    }

    .catalog-empty-state {
        min-height: 160px;
        padding: 18px 14px;
    }
}

/* Operations hub: guided setup, purchasing, reporting and account controls. */
.operations-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.operations-tabs {
    display: flex;
    gap: 8px;
    margin: 18px 0;
    overflow-x: auto;
    padding-bottom: 2px;
}

.operations-tabs button {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 9px 13px;
    border: 1px solid var(--border-color);
    border-radius: 9px;
    background: var(--bg-card);
    color: var(--text-muted);
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
}

.operations-tabs button.active {
    border-color: color-mix(in srgb, var(--color-blue) 55%, var(--border-color));
    background: color-mix(in srgb, var(--color-blue) 14%, var(--bg-card));
    color: var(--text-primary);
}

.operations-tabs i { margin-right: 4px; }

.operations-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.operations-progress-card,
.operations-purchase-card,
.operations-report-card,
.operations-user-card,
.operations-tip-card,
.operations-checklist {
    min-width: 0;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: var(--bg-card);
    box-shadow: 0 7px 20px rgba(15, 23, 42, 0.06);
}

.operations-progress-card,
.operations-purchase-card,
.operations-report-card,
.operations-user-card,
.operations-tip-card {
    padding: 18px;
}

.operations-progress-card { grid-column: 1 / -1; }
.operations-wide-card { grid-column: 1 / -1; }

.operations-progress-card__summary {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 700;
}

.operations-progress-card__summary strong {
    color: var(--text-primary);
    font-size: 24px;
}

.operations-progress-card p,
.operations-tip-card p { margin: 9px 0 0; color: var(--text-muted); font-size: 12px; line-height: 1.45; }

.operations-progress-bar {
    height: 9px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 99px;
    background: var(--surface-soft);
}

.operations-progress-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--color-blue), var(--color-green)); transition: width 240ms ease; }

.operations-checklist { grid-column: 1 / -1; overflow: hidden; }

.operations-step {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 13px 14px;
    border-bottom: 1px solid var(--border-color);
}

.operations-step:last-child { border-bottom: 0; }
.operations-step.done { background: color-mix(in srgb, var(--color-green) 5%, transparent); }

.operations-step__number {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid var(--border-color);
    border-radius: 50%;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
}

.operations-step.done .operations-step__number { border-color: color-mix(in srgb, var(--color-green) 55%, transparent); background: color-mix(in srgb, var(--color-green) 14%, transparent); color: var(--color-green); }
.operations-step h3, .operations-purchase-card h3, .operations-report-card h3, .operations-user-card h3 { margin: 0; color: var(--text-primary); font-size: 14px; }
.operations-step p { margin: 3px 0 0; color: var(--text-muted); font-size: 11px; }
.operations-step .btn-secondary { font-size: 11px; }

.operations-tip-card { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 12px; }
.operations-tip-card > i { color: var(--color-blue); font-size: 23px; }
.operations-tip-card strong { color: var(--text-primary); font-size: 13px; }
.inbound-offline-queue { margin-top: 14px; padding: 12px 14px; border-color: color-mix(in srgb, var(--color-accent) 45%, var(--border-color)); }
.inbound-offline-queue p { flex: 1; }
.inbound-offline-queue .btn-secondary { margin-left: auto; white-space: nowrap; font-size: 11px; }

.operations-purchase-card h3,
.operations-report-card h3,
.operations-user-card h3 { margin-bottom: 13px; }
.operations-low-stock-list,
.operations-order-list,
.operations-user-list,
.operations-ranking,
.operations-lot-list,
.operations-location-report,
.operations-outbox-list,
.operations-backup-list { display: grid; gap: 9px; }

.operations-low-stock-list > div,
.operations-order,
.operations-user-list > div,
.operations-ranking > div,
.operations-lot-list > div,
.operations-location-report > div,
.operations-outbox-list > div,
.operations-backup-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    background: var(--surface-soft);
}

.operations-low-stock-list strong,
.operations-order strong,
.operations-user-list strong,
.operations-ranking strong,
.operations-lot-list strong,
.operations-location-report strong,
.operations-outbox-list strong,
.operations-backup-list strong { display: block; overflow-wrap: anywhere; color: var(--text-primary); font-size: 12px; }
.operations-low-stock-list span,
.operations-order span,
.operations-user-list span,
.operations-lot-list span,
.operations-location-report span,
.operations-outbox-list span,
.operations-backup-list span { display: block; margin-top: 2px; color: var(--text-muted); font-size: 10px; }

.operations-form { display: grid; gap: 10px; margin-top: 14px; }
.operations-form label { display: grid; gap: 5px; color: var(--text-muted); font-size: 11px; font-weight: 700; }
.operations-form input,
.operations-form textarea,
.operations-form select { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid var(--border-color); border-radius: 8px; outline: none; background: var(--bg-main); color: var(--text-primary); font: inherit; font-size: 12px; }
.operations-form textarea { min-height: 62px; resize: vertical; }
.operations-form input:focus,
.operations-form textarea:focus,
.operations-form select:focus { border-color: var(--color-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-blue) 14%, transparent); }
.operations-form .btn-success { min-height: 42px; }

.operations-order__actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.operations-order__actions .btn-secondary,
.operations-order__actions .btn-success { padding: 6px 8px; font-size: 10px; }

.operations-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.operations-metrics > div { padding: 11px 8px; border-radius: 10px; background: var(--surface-soft); text-align: center; }
.operations-metrics span { display: block; color: var(--text-muted); font-size: 10px; }
.operations-metrics strong { display: block; margin-top: 5px; color: var(--text-primary); font-size: 21px; }
.operations-report-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.operations-report-actions .btn-secondary,
.operations-report-actions .btn-success { min-height: 38px; padding: 8px 12px; font-size: 11px; }
.operations-ranking > div { justify-content: flex-start; }
.operations-ranking > div > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--color-accent) 16%, transparent); color: var(--color-accent); font-size: 11px; font-weight: 800; }
.operations-ranking em { margin-left: auto; color: var(--text-muted); font-size: 11px; font-style: normal; white-space: nowrap; }
.operations-lot-list > div > div:last-child,
.operations-location-report > div > div:last-child { text-align: right; }
.operations-lot-list em,
.operations-location-report em,
.operations-backup-list em { color: var(--text-primary); font-size: 11px; font-style: normal; font-weight: 700; white-space: nowrap; }
.operations-lot-list > div > div:last-child span { font-size: 10px; }

.operations-receipt-header,
.operations-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.operations-receipt-header h3,
.operations-card-heading h3 { margin-bottom: 4px; }
.operations-receipt-header p,
.operations-card-heading p,
.operations-backup-card p { margin: 0; color: var(--text-muted); font-size: 11px; line-height: 1.5; }
.operations-receipt-form { display: grid; gap: 11px; margin-top: 14px; }
.operations-receipt-line { display: grid; grid-template-columns: minmax(130px, 1.4fr) repeat(5, minmax(104px, 1fr)); gap: 9px; align-items: end; padding: 11px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--surface-soft); }
.operations-receipt-line strong { display: grid; gap: 3px; color: var(--text-primary); font-size: 12px; overflow-wrap: anywhere; }
.operations-receipt-line small { color: var(--text-muted); font-size: 10px; font-weight: 600; }
.operations-receipt-line label,
.operations-endpoint { display: grid; gap: 5px; color: var(--text-muted); font-size: 10px; font-weight: 700; }
.operations-receipt-line input,
.operations-receipt-line select,
.operations-endpoint input { width: 100%; min-width: 0; min-height: 38px; padding: 8px 9px; border: 1px solid var(--border-color); border-radius: 8px; outline: none; background: var(--bg-main); color: var(--text-primary); font: inherit; font-size: 11px; }
.operations-receipt-line input:focus,
.operations-receipt-line select:focus,
.operations-endpoint input:focus { border-color: var(--color-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-blue) 14%, transparent); }

.operations-alert-card,
.operations-integration-card,
.operations-backup-card { min-width: 0; padding: 18px; border: 1px solid var(--border-color); border-radius: 14px; background: var(--bg-card); box-shadow: 0 7px 20px rgba(15, 23, 42, 0.06); }
.operations-alert-list { display: grid; gap: 10px; margin-top: 14px; }
.operations-alert { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid var(--border-color); border-left-width: 4px; border-radius: 10px; background: var(--surface-soft); }
.operations-alert--critical { border-left-color: var(--color-red); }
.operations-alert--warning { border-left-color: var(--color-accent); }
.operations-alert--info { border-left-color: var(--color-blue); }
.operations-alert__icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--color-blue) 12%, transparent); color: var(--color-blue); font-size: 12px; }
.operations-alert--critical .operations-alert__icon { background: color-mix(in srgb, var(--color-red) 12%, transparent); color: var(--color-red); }
.operations-alert--warning .operations-alert__icon { background: color-mix(in srgb, var(--color-accent) 12%, transparent); color: var(--color-accent); }
.operations-alert strong { display: block; color: var(--text-primary); font-size: 12px; }
.operations-alert p { margin: 3px 0; color: var(--text-muted); font-size: 11px; line-height: 1.4; }
.operations-alert small { color: var(--text-muted); font-size: 10px; }
.operations-alert .btn-secondary { font-size: 11px; white-space: nowrap; }

.operations-integration-list { display: grid; gap: 10px; margin-top: 14px; }
.operations-integration-row { display: grid; grid-template-columns: minmax(160px, 1.1fr) auto minmax(190px, 1fr) auto; gap: 12px; align-items: end; padding: 12px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--surface-soft); }
.operations-integration-row strong { display: block; color: var(--text-primary); font-size: 12px; }
.operations-integration-row > div > span { display: block; margin-top: 3px; color: var(--text-muted); font-size: 10px; line-height: 1.4; }
.operations-switch { display: inline-flex; align-items: center; gap: 7px; padding-bottom: 9px; color: var(--text-muted); font-size: 10px; cursor: pointer; white-space: nowrap; }
.operations-switch input { position: absolute; opacity: 0; pointer-events: none; }
.operations-switch span { position: relative; width: 34px; height: 19px; border-radius: 99px; background: var(--border-color); transition: background 160ms ease; }
.operations-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 13px; height: 13px; border-radius: 50%; background: #fff; transition: transform 160ms ease; }
.operations-switch input:checked + span { background: var(--color-green); }
.operations-switch input:checked + span::after { transform: translateX(15px); }
.operations-switch b { font-size: 10px; }
.operations-integration-row .btn-secondary { min-height: 38px; font-size: 11px; }
.operations-outbox-list { margin-top: 12px; }

.operations-backup-card { display: grid; align-content: start; gap: 12px; }
.operations-backup-card h3 { margin: 0; color: var(--text-primary); font-size: 14px; }
.operations-backup-card .btn-success { min-height: 42px; }
.operations-empty { margin: 15px 0; padding: 16px; border: 1px dashed var(--border-color); border-radius: 10px; color: var(--text-muted); font-size: 12px; text-align: center; }
.operations-loading { min-height: 180px; display: grid; place-items: center; color: var(--text-muted); }

@media (max-width: 768px) {
    .operations-header { flex-direction: column; }
    .operations-header .btn-secondary { width: 100%; }
    .operations-layout { grid-template-columns: minmax(0, 1fr); }
    .operations-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operations-report-actions .btn-secondary,
    .operations-report-actions .btn-success { flex: 1 1 120px; }
}

@media (max-width: 576px) {
    .operations-progress-card,
    .operations-purchase-card,
    .operations-report-card,
    .operations-user-card,
    .operations-tip-card { padding: 14px; }
    .operations-step { grid-template-columns: 30px minmax(0, 1fr); }
    .operations-step .btn-secondary { grid-column: 2; width: 100%; }
    .operations-order,
    .operations-user-list > div { align-items: flex-start; flex-direction: column; }
    .operations-order__actions { width: 100%; justify-content: space-between; }
    .inbound-offline-queue { flex-wrap: wrap; }
    .inbound-offline-queue .btn-secondary { width: 100%; margin-left: 0; }
    .operations-card-heading,
    .operations-receipt-header { flex-direction: column; }
    .operations-alert { grid-template-columns: 28px minmax(0, 1fr); }
    .operations-alert .btn-secondary { grid-column: 2; width: 100%; }
    .operations-integration-row { grid-template-columns: minmax(0, 1fr); gap: 9px; }
    .operations-switch { padding-bottom: 0; }
    .operations-receipt-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operations-receipt-line > strong { grid-column: 1 / -1; }
    .operations-lot-list > div,
    .operations-location-report > div,
    .operations-outbox-list > div,
    .operations-backup-list > div { align-items: flex-start; flex-direction: column; }
    .operations-lot-list > div > div:last-child,
    .operations-location-report > div > div:last-child { text-align: left; }
}

.account-login-modal { width: min(420px, calc(100vw - 28px)); background: var(--bg-card); }
.account-login-modal__body { display: grid; gap: 12px; padding: 20px 24px !important; }
.account-login-modal__body > p { margin: 0 0 3px; color: var(--text-muted); font-size: 12px; line-height: 1.45; }
.account-login-modal__body label { display: grid; gap: 5px; color: var(--text-muted); font-size: 11px; font-weight: 700; }
.account-login-modal__body input { width: 100%; min-height: 42px; padding: 9px 10px; border: 1px solid var(--border-color); border-radius: 8px; outline: none; background: var(--bg-main); color: var(--text-primary); font: inherit; }
.account-login-modal__body input:focus { border-color: var(--color-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-blue) 14%, transparent); }
.account-login-modal__error { padding: 9px 10px; border-radius: 8px; background: color-mix(in srgb, var(--color-red) 11%, transparent); color: var(--color-red); font-size: 11px; line-height: 1.4; }
.account-login-modal__footer { display: grid !important; grid-template-columns: 1fr 1.2fr; gap: 10px; padding: 12px 24px 20px !important; }

@media (max-width: 576px) {
    .header-account-action-label { display: none; }
}

/* --------------------------------------------------------------------------
   FINAL UI CONSISTENCY LAYER
   Purpose: keep compact dialogs and optional admin settings easy to scan on
   every screen size without changing the established warehouse workflow.
   -------------------------------------------------------------------------- */

.operations-integration-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--color-blue) 34%, var(--border-color));
    border-radius: 10px;
    background: color-mix(in srgb, var(--color-blue) 8%, var(--surface-soft));
    color: var(--text-muted);
    font-size: 11px;
    line-height: 1.5;
}

.operations-integration-note > i {
    margin-top: 2px;
    color: var(--color-blue);
}

.operations-integration-row {
    grid-template-columns: minmax(0, 1.35fr) auto minmax(220px, 1fr) auto;
    align-items: center;
}

.operations-integration-row__summary {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 10px;
}

.operations-integration-row__summary > div {
    min-width: 0;
}

.operations-integration-row__icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    background: color-mix(in srgb, var(--color-blue) 13%, transparent);
    color: var(--color-blue);
    font-size: 14px;
}

.operations-integration-row__summary strong {
    font-size: 13px;
}

.operations-integration-row__summary span {
    overflow-wrap: anywhere;
}

.operations-integration-ready {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 10px;
    border: 1px solid color-mix(in srgb, var(--color-green) 45%, var(--border-color));
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-green) 12%, transparent);
    color: var(--color-green);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.modal-card.account-login-modal {
    display: block;
    overflow: hidden;
}

.account-login-modal > form {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.account-login-modal .modal-body {
    flex: 0 0 auto;
}

body.light-theme .operations-progress-card,
body.light-theme .operations-purchase-card,
body.light-theme .operations-report-card,
body.light-theme .operations-user-card,
body.light-theme .operations-tip-card,
body.light-theme .operations-alert-card,
body.light-theme .operations-integration-card,
body.light-theme .operations-backup-card,
body.light-theme .operations-checklist {
    border-color: #cbd5e1;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

body.light-theme .operations-integration-note {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #334155;
}

@media (max-width: 768px) {
    .operations-integration-row {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }

    .operations-integration-row__summary,
    .operations-endpoint {
        grid-column: 1 / -1;
    }
}

@media (max-width: 576px) {
    .modal-card.account-login-modal {
        width: min(calc(100vw - 24px), 420px) !important;
        height: auto !important;
        max-height: calc(100dvh - 24px) !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 18px !important;
    }

    .account-login-modal .modal-body {
        overflow: visible !important;
    }

    .account-login-modal__body {
        padding: 18px 20px !important;
    }

    .account-login-modal__footer {
        grid-template-columns: 1fr 1fr;
        padding: 12px 20px 18px !important;
    }

    .operations-integration-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        padding: 14px;
    }

    .operations-integration-row__summary,
    .operations-endpoint {
        grid-column: auto;
    }

    .operations-integration-row .btn-secondary {
        width: 100%;
    }

    .operations-switch {
        justify-content: space-between;
        min-height: 34px;
        padding: 0;
        border-top: 1px solid var(--border-color);
        border-bottom: 1px solid var(--border-color);
    }
}

/* Operations panel: compact, readable controls on phones and tablets. */
.operations-tabs {
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}

.operations-tabs::-webkit-scrollbar { display: none; }
.operations-tabs button { scroll-snap-align: center; }

.operations-integration-card .operations-card-heading h3 {
    font-size: 16px;
}

.operations-integration-card .operations-card-heading p {
    max-width: 62ch;
    font-size: 12px;
}

.operations-integration-note {
    margin-top: 12px;
    padding: 11px 12px;
    font-size: 12px;
}

.operations-integration-row {
    grid-template-columns: minmax(0, 0.9fr) minmax(300px, 1.1fr);
    align-items: start;
    gap: 16px;
    padding: 16px;
    background: color-mix(in srgb, var(--surface-soft) 86%, var(--bg-main));
}

.operations-integration-row > .operations-integration-row__summary > .operations-integration-row__icon {
    display: grid !important;
    width: 34px;
    height: 34px;
    margin: 0 !important;
    place-items: center;
    line-height: 1;
}

.operations-integration-row__summary > div > span {
    display: block;
    margin-top: 4px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}

.operations-integration-row__controls {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.operations-integration-row__controls .operations-switch {
    min-height: 40px;
    padding: 0 0 1px;
}

.operations-integration-row__controls .operations-endpoint {
    font-size: 11px;
}

.operations-integration-row__controls .operations-endpoint input {
    min-height: 40px;
    font-size: 12px;
}

.operations-integration-row__controls .btn-secondary {
    min-height: 40px;
    padding-inline: 13px;
}

.operations-integration-row__controls .operations-integration-ready {
    justify-self: start;
    min-height: 40px;
    padding-inline: 13px;
}

.operations-backup-card {
    padding: 20px;
}

.operations-backup-card > p {
    max-width: 62ch;
    font-size: 12px;
}

.operations-backup-list {
    gap: 10px;
    margin-top: 2px;
}

.operations-backup-list > .operations-backup-list__item {
    min-width: 0;
    padding: 12px 13px;
    border-color: color-mix(in srgb, var(--border-color) 82%, var(--color-blue));
    background: color-mix(in srgb, var(--surface-soft) 86%, var(--bg-main));
}

.operations-backup-list__details {
    min-width: 0;
}

.operations-backup-list__details strong {
    font-size: 12px;
    line-height: 1.35;
}

.operations-backup-list__details span {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.4;
}

.operations-backup-list > .operations-backup-list__item em {
    flex: 0 0 auto;
    padding: 5px 7px;
    border-radius: 7px;
    background: color-mix(in srgb, var(--color-blue) 12%, transparent);
    color: var(--text-primary);
}

@media (max-width: 768px) {
    .operations-integration-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
}

@media (max-width: 576px) {
    .operations-tabs {
        gap: 7px;
        margin: 14px 0 12px;
        padding: 0 2px 4px;
    }

    .operations-tabs button {
        min-height: 38px;
        padding: 8px 11px;
        font-size: 11px;
    }

    .operations-integration-card,
    .operations-backup-card {
        padding: 16px;
        border-radius: 14px;
    }

    .operations-integration-card .operations-card-heading {
        gap: 6px;
    }

    .operations-integration-card .operations-card-heading h3 {
        font-size: 15px;
    }

    .operations-integration-card .operations-card-heading p,
    .operations-integration-note,
    .operations-backup-card > p {
        font-size: 11px;
        line-height: 1.45;
    }

    .operations-integration-row {
        gap: 12px;
        padding: 14px;
    }

    .operations-integration-row__controls {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .operations-integration-row__controls .operations-switch {
        justify-content: space-between;
        min-height: 38px;
        padding: 0;
        border-top: 1px solid var(--border-color);
        border-bottom: 1px solid var(--border-color);
    }

    .operations-integration-row__controls .btn-secondary,
    .operations-integration-row__controls .operations-integration-ready {
        width: 100%;
        justify-content: center;
    }

    .operations-backup-list > .operations-backup-list__item {
        flex-direction: row !important;
        align-items: center !important;
        gap: 9px;
        padding: 12px;
    }

    .operations-backup-list__details span {
        font-size: 10px;
    }
}

/* Stocktake: make completion, pending items, and adjustments unambiguous. */
.stocktake-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.stocktake-card {
    min-width: 0;
    margin-bottom: 0 !important;
}

.stocktake-form {
    display: grid;
    gap: 12px;
    margin-top: 15px;
}

.stocktake-form .btn-primary {
    min-height: 43px;
    margin-top: 3px !important;
}

.stocktake-queue-card {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.stocktake-queue-list {
    flex: 1;
    min-height: 200px;
    margin-top: 15px;
    overflow-y: auto;
}

.stocktake-queue-table,
.stocktake-report-table {
    font-size: 12px;
}

.stocktake-queue-table td,
.stocktake-report-table td {
    vertical-align: middle;
}

.stocktake-remove-button {
    display: inline-grid;
    width: 32px;
    height: 32px;
    padding: 0 !important;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--color-red) 34%, var(--border-color)) !important;
    border-radius: 8px;
    background: color-mix(in srgb, var(--color-red) 8%, transparent) !important;
}

.stocktake-submit {
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 15px;
    padding: 12px;
    border: 0;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 800;
}

.stocktake-result {
    margin-bottom: 22px !important;
    border: 2px solid color-mix(in srgb, var(--color-green) 75%, var(--border-color)) !important;
}

.stocktake-success-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--color-green) 38%, var(--border-color));
    border-radius: 11px;
    background: color-mix(in srgb, var(--color-green) 12%, transparent);
    text-align: left;
}

.stocktake-success-banner > i {
    color: var(--color-green);
    font-size: 24px;
}

.stocktake-success-banner h4 {
    margin: 0;
    color: var(--color-green);
    font-size: 14px;
}

.stocktake-success-banner p {
    margin: 4px 0 0;
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.stocktake-result-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.stocktake-result-heading h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: 15px;
}

.stocktake-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.stocktake-result-actions .btn-secondary {
    min-height: 38px;
    font-size: 11px;
}

.stocktake-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 12px;
    color: var(--text-muted);
    font-size: 12px;
    text-align: left;
}

.stocktake-result-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

@media (max-width: 768px) {
    .stocktake-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }
}

@media (max-width: 576px) {
    #panel-stocktake {
        padding-bottom: 104px;
    }

    .stocktake-layout {
        gap: 12px;
        margin-top: 14px;
    }

    .stocktake-card {
        padding: 14px 12px !important;
    }

    .stocktake-queue-list {
        min-height: 0;
        max-height: 520px;
        overflow-y: auto;
        padding-bottom: 12px;
        -webkit-overflow-scrolling: touch;
    }

    .stocktake-queue-table,
    .stocktake-queue-table tbody,
    .stocktake-queue-table tr,
    .stocktake-queue-table td,
    .stocktake-report-table,
    .stocktake-report-table tbody,
    .stocktake-report-table tr,
    .stocktake-report-table td {
        display: block;
        width: 100%;
    }

    .stocktake-queue-table thead,
    .stocktake-report-table thead {
        display: none;
    }

    .stocktake-queue-table tbody,
    .stocktake-report-table tbody {
        display: grid;
        gap: 10px;
    }

    .stocktake-queue-table tr,
    .stocktake-report-table tr {
        overflow: hidden;
        padding: 4px 12px;
        border: 1px solid var(--border-color);
        border-radius: 11px;
        background: color-mix(in srgb, var(--surface-soft) 88%, var(--bg-main));
    }

    .stocktake-queue-table td,
    .stocktake-report-table td {
        display: grid;
        grid-template-columns: minmax(96px, 0.82fr) minmax(0, 1.18fr);
        gap: 10px;
        align-items: center;
        padding: 9px 0 !important;
        border-bottom: 1px solid var(--border-color);
        font-size: 12px;
        text-align: right !important;
        white-space: normal;
    }

    .stocktake-queue-table td::before,
    .stocktake-report-table td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-size: 10px;
        font-weight: 800;
        text-align: left;
    }

    .stocktake-queue-table td:first-child,
    .stocktake-report-table td:nth-child(2) {
        text-align: left !important;
    }

    .stocktake-queue-table td:last-child,
    .stocktake-report-table td:last-child {
        border-bottom: 0;
    }

    .stocktake-queue-table td:last-child {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .stocktake-queue-table td:last-child::before {
        flex: 0 0 auto;
    }

    .stocktake-submit {
        position: sticky !important;
        bottom: 0 !important;
        margin-top: 12px;
        z-index: 10;
        box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.4), 0 4px 15px color-mix(in srgb, var(--color-green) 28%, transparent);
    }

    .stocktake-result {
        padding: 14px 12px !important;
    }

    .stocktake-success-banner {
        align-items: flex-start;
        margin-bottom: 14px;
        padding: 12px;
    }

    .stocktake-success-banner > i {
        margin-top: 1px;
        font-size: 21px;
    }

    .stocktake-success-banner h4 {
        font-size: 13px;
    }

    .stocktake-success-banner p,
    .stocktake-result-meta {
        font-size: 11px;
    }

    .stocktake-result-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .stocktake-result-actions {
        width: 100%;
    }

    .stocktake-result-actions .btn-secondary {
        flex: 1 1 120px;
    }

    .stocktake-report-table td:last-child {
        align-items: start;
        text-align: left !important;
    }
}

/* ========================================================================
   WMS UNIFIED INTERFACE — production interface baseline
   A single, restrained visual language for every workflow: dashboard,
   inventory, requisitions, stocktake, reports, forms, tables and dialogs.
   ======================================================================== */
:root {
    --bg-main: #0b1220;
    --bg-sidebar: #101a2d;
    --bg-card: #172338;
    --bg-card-hover: #1e2e46;
    --surface-soft: rgba(148, 163, 184, 0.11);
    --border-color: rgba(148, 163, 184, 0.25);
    --border-color-glow: rgba(56, 189, 248, 0.62);
    --text-primary: #f8fafc;
    --text-main: #f8fafc;
    --text-muted: #b9c6d8;
    --color-blue: #38bdf8;
    --color-green: #34d399;
    --color-red: #fb7185;
    --color-purple: #c4b5fd;
    --color-orange: #fbbf24;
    --color-accent: #fbbf24;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --shadow-card: 0 12px 32px rgba(2, 6, 23, 0.20);
    --focus-ring: 0 0 0 3px rgba(56, 189, 248, 0.22);
    --font-heading: 'Sarabun', 'Outfit', system-ui, sans-serif;
    --font-body: 'Sarabun', 'Inter', system-ui, sans-serif;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --control-height: 42px;
    --tap-target: 44px;
    --content-max-width: 1520px;
    --z-header: 50;
    --z-mobile-nav: 100;
    --z-modal: 1000100;
}

body {
    font-size: 14px;
    line-height: 1.55;
    letter-spacing: 0;
    background-image: radial-gradient(circle at 4% 0%, rgba(56, 189, 248, 0.10), transparent 30rem);
}

*, *::before, *::after { box-sizing: border-box; }

button, input, select, textarea { font: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

/* Shell, navigation and page rhythm */
.app-container { grid-template-columns: 264px minmax(0, 1fr); }
.sidebar {
    width: 264px;
    padding: 18px 14px;
    background: linear-gradient(180deg, #101a2d 0%, #0d1627 100%);
    border-right-color: var(--border-color);
    box-shadow: 3px 0 24px rgba(2, 6, 23, 0.24);
}
.sidebar-header { margin-bottom: 18px; }
.sidebar-nav { gap: 4px; }
.nav-btn {
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 700;
}
.nav-btn:hover { transform: none; color: var(--text-primary); background: var(--surface-soft); }
.nav-btn.active {
    border-color: rgba(56, 189, 248, 0.32);
    border-left-color: var(--color-blue);
    color: #f8fafc;
    background: linear-gradient(90deg, rgba(14, 165, 233, 0.18), rgba(14, 165, 233, 0.05));
    box-shadow: none;
}
.main-content { padding: 20px 24px 32px; }
.top-header {
    min-height: 66px;
    padding: 11px 16px;
    margin-bottom: 24px;
    border-radius: var(--radius-lg);
    background: color-mix(in srgb, var(--bg-card) 92%, transparent);
    box-shadow: var(--shadow-card);
}
.top-header h1 { font-size: 17px; line-height: 1.25; }
.live-clock-widget { border-radius: var(--radius-sm); box-shadow: none; }
.panel-header { margin-bottom: 20px; }
.panel-header h2 { font-size: clamp(20px, 2vw, 24px); line-height: 1.25; }
.panel-header p { max-width: 720px; margin-top: 4px; color: var(--text-muted); }

/* Shared surfaces */
.card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel,
.operations-progress-card, .operations-purchase-card, .operations-report-card,
.operations-user-card, .operations-tip-card, .operations-alert-card,
.operations-backup-card, .operations-checklist, .stocktake-card,
.requisition-queue-card, .req-card-item {
    border-color: var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--bg-card);
    box-shadow: var(--shadow-card);
}
.card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel { padding: 20px; }
.page-panel h3 { line-height: 1.35; }
.page-panel p, .operations-empty { color: var(--text-muted); }

/* One control standard, including compact action controls inside tables */
.btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-accent {
    min-height: 40px;
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
    box-shadow: none;
}
.btn-primary { background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%); border-color: rgba(56, 189, 248, 0.45); color: #fff; box-shadow: 0 4px 14px rgba(14, 165, 233, 0.35); }
.btn-success { background: linear-gradient(135deg, #10b981 0%, #059669 100%); border-color: rgba(52, 211, 153, 0.45); color: #fff; box-shadow: 0 4px 14px rgba(16, 185, 129, 0.35); }
.btn-danger { background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%); border-color: rgba(251, 113, 133, 0.45); color: #fff; box-shadow: 0 4px 14px rgba(244, 63, 94, 0.35); }
.btn-accent { background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%); border-color: rgba(196, 181, 253, 0.45); color: #fff; box-shadow: 0 4px 14px rgba(139, 92, 246, 0.35); }
.btn-secondary { background: var(--surface-soft); border-color: var(--border-color); color: var(--text-primary); }
.btn-primary:hover:not(:disabled), .btn-success:hover:not(:disabled), .btn-danger:hover:not(:disabled), .btn-accent:hover:not(:disabled), .btn-secondary:hover:not(:disabled) {
    transform: translateY(-1px) !important;
    filter: brightness(1.08);
    box-shadow: 0 6px 16px rgba(2, 6, 23, 0.20) !important;
}
button:disabled { opacity: 0.52 !important; filter: grayscale(0.25); }

input:not([type='checkbox']):not([type='radio']), select, textarea,
.input-text, .input-select {
    width: 100%;
    min-height: 42px;
    height: 42px;
    box-sizing: border-box;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    background: color-mix(in srgb, var(--bg-main) 76%, var(--bg-card));
    padding: 9px 11px;
    font-size: 13px;
    transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

input[type="date"], input[type="month"], input[type="datetime-local"], input[type="time"] {
    color-scheme: dark;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.2;
    box-sizing: border-box;
    padding: 8px 11px;
}
body.light-theme input[type="date"], body.light-theme input[type="month"], body.light-theme input[type="datetime-local"], body.light-theme input[type="time"] {
    color-scheme: light;
}

textarea { min-height: 92px; height: auto; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--text-muted); opacity: 0.76; }
input:not([type='checkbox']):not([type='radio']):focus, select:focus, textarea:focus,
.input-text:focus, .input-select:focus {
    border-color: var(--color-blue);
    box-shadow: var(--focus-ring);
    background: var(--bg-main);
}
label { color: var(--text-primary); font-size: 12px; font-weight: 800; display: block; margin-bottom: 5px; }

/* Responsive Form Grid Baseline */
.wms-form-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}

.wms-form-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}

.wms-form-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}

@media (max-width: 1024px) {
    .wms-form-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 640px) {
    .wms-form-grid-4, .wms-form-grid-3, .wms-form-grid-2 {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
}

/* Tables keep their hierarchy on desktop and remain scrollable when needed. */
.table-responsive {
    margin-top: 14px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--bg-main) 32%, var(--bg-card));
}
.table { min-width: 680px; margin: 0; border-collapse: separate; border-spacing: 0; }
.table th, .table td { padding: 12px 14px; border-bottom-color: var(--border-color); vertical-align: middle; }
.table th { color: var(--text-muted); background: color-mix(in srgb, var(--surface-soft) 88%, var(--bg-card)); font-size: 11px; letter-spacing: 0.01em; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: color-mix(in srgb, var(--color-blue) 5%, transparent); }
.status-badge, .badge { min-height: 26px; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; }

/* Dialogs always fit the viewport, with the actions available after scrolling. */
.modal-overlay {
    z-index: 2000 !important;
    padding: 20px;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.modal-card:not(.modal-card--image) {
    width: min(720px, calc(100vw - 40px));
    max-height: min(760px, calc(100dvh - 40px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    background: var(--bg-card);
    box-shadow: 0 24px 70px rgba(2, 6, 23, 0.48);
}
.modal-header, .modal-footer { flex: 0 0 auto; padding: 15px 20px; border-color: var(--border-color); background: color-mix(in srgb, var(--surface-soft) 62%, var(--bg-card)); }
.modal-header h3 { font-size: 16px; }
.modal-body { min-height: 0; overflow: auto; padding: 20px; overscroll-behavior: contain; }
.modal-footer { display: flex; justify-content: flex-end; gap: 8px; }
.close-btn { width: 36px; height: 36px; border-radius: 50%; }

/* Light theme uses the same contrast and spacing rules, not a separate design. */
body.light-theme {
    --bg-main: #f3f6fa;
    --bg-sidebar: #ffffff;
    --bg-card: #ffffff;
    --bg-card-hover: #f7fafc;
    --surface-soft: #eef3f8;
    --border-color: rgba(71, 85, 105, 0.22);
    --text-primary: #172033;
    --text-main: #172033;
    --text-muted: #526174;
    --color-blue: #0369a1;
    --color-green: #047857;
    --color-red: #be123c;
    --color-orange: #b45309;
    --color-accent: #a16207;
    --shadow-card: 0 8px 24px rgba(15, 23, 42, 0.08);
    --focus-ring: 0 0 0 3px rgba(3, 105, 161, 0.18);
    background-image: radial-gradient(circle at 4% 0%, rgba(14, 165, 233, 0.08), transparent 30rem);
}
body.light-theme .sidebar { background: #ffffff; border-right-color: #d7e0ea; box-shadow: 3px 0 20px rgba(15, 23, 42, 0.06); }
body.light-theme .nav-btn.active { color: #0c4a6e; background: #e0f2fe; border-color: #bae6fd; border-left-color: #0284c7; }
body.light-theme .top-header, body.light-theme .card-glass, body.light-theme .dashboard-card { background: #fff; border-color: #d7e0ea; }
body.light-theme input:not([type='checkbox']):not([type='radio']), body.light-theme select, body.light-theme textarea, body.light-theme .input-text, body.light-theme .input-select { background: #fff; border-color: #b7c4d3; color: #172033; }
body.light-theme .table-responsive { background: #fff; border-color: #d7e0ea; }
body.light-theme .table th { background: #eef3f8; color: #334155; }
body.light-theme .modal-overlay { background: rgba(15, 23, 42, 0.42); }

@media (max-width: 900px) {
    .main-content { padding: 16px 16px 100px; }
    .top-header { margin-bottom: 18px; }
    .header-account-summary { max-width: 146px; }
    .card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel { padding: 16px; }
}

@media (max-width: 640px) {
    body { font-size: 13px; }
    .main-content { padding: 12px 10px calc(92px + env(safe-area-inset-bottom)); }
    .top-header { min-height: 0; padding: 10px 12px; margin-bottom: 14px; border-radius: var(--radius-md); }
    .top-header h1 { max-width: 190px; font-size: 14px; }
    .header-account-summary { max-width: 108px; padding: 7px; }
    .header-account-action-label, .live-clock-widget .clock-divider, .live-clock-widget small { display: none; }
    .live-clock-widget { padding: 6px 8px; font-size: 10px; }
    .panel-header { margin-bottom: 14px; }
    .panel-header h2 { font-size: 18px; }
    .panel-header p { font-size: 12px; }
    .card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel,
    .operations-progress-card, .operations-purchase-card, .operations-report-card,
    .operations-user-card, .operations-tip-card, .operations-alert-card,
    .operations-backup-card, .operations-checklist, .stocktake-card,
    .requisition-queue-card { border-radius: var(--radius-md); }
    .card-glass, .dashboard-card, .workflow-scan-panel, .workflow-form-panel { padding: 14px; }
    .btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-accent { min-height: 42px; padding: 9px 11px; font-size: 12px; }
    .table-responsive { margin-top: 12px; border-radius: var(--radius-sm); }
    .modal-overlay { align-items: flex-end; padding: 10px; }
    .modal-card:not(.modal-card--image) { width: 100%; max-height: calc(100dvh - 20px); border-radius: var(--radius-lg) var(--radius-lg) 10px 10px; }
    .modal-header, .modal-footer { padding: 13px 14px; }
    .modal-body { padding: 14px; }
    .modal-footer > .btn-primary, .modal-footer > .btn-secondary, .modal-footer > .btn-success, .modal-footer > .btn-danger { flex: 1 1 0; }
}

/* Composite controls own one visual frame.  The input inside is deliberately
   borderless so global form styles cannot create a second, nested rectangle. */
.central-login-input > input:not([type='checkbox']):not([type='radio']) {
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.central-login-input > input:not([type='checkbox']):not([type='radio']):focus {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Requester receipt confirmation: a separate proof from the warehouse POD. */
.receipt-action-card,
.receipt-confirmed-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px;
    border-radius: 10px;
}
.receipt-action-card {
    border: 1px solid color-mix(in srgb, var(--color-blue) 42%, var(--border-color));
    background: color-mix(in srgb, var(--color-blue) 9%, var(--bg-card));
}
.receipt-action-card__copy,
.receipt-confirmed-card {
    display: flex;
    align-items: flex-start;
    gap: 9px;
}
.receipt-action-card__copy > i { color: var(--color-blue); margin-top: 2px; }
.receipt-action-card__copy strong,
.receipt-confirmed-card strong,
.receipt-action-card__copy small,
.receipt-confirmed-card small { display: block; }
.receipt-action-card__copy strong,
.receipt-confirmed-card strong { font-size: 12px; color: var(--text-main); }
.receipt-action-card__copy small,
.receipt-confirmed-card small { margin-top: 2px; color: var(--text-muted); font-size: 10px; line-height: 1.4; }
.receipt-action-card .btn-success { flex: 0 0 auto; min-height: 38px; font-size: 11px; }
.receipt-confirmed-card {
    border: 1px solid color-mix(in srgb, var(--color-green) 38%, var(--border-color));
    background: color-mix(in srgb, var(--color-green) 9%, var(--bg-card));
}
.receipt-confirmed-card > i { color: var(--color-green); margin-top: 2px; }
.receipt-confirmation-intro {
    display: flex;
    gap: 10px;
    padding: 12px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--color-blue) 9%, var(--surface-soft));
    color: var(--text-main);
}
.receipt-confirmation-intro > i { color: var(--color-blue); padding-top: 2px; }
.receipt-confirmation-intro strong,
.receipt-confirmation-intro span { display: block; }
.receipt-confirmation-intro strong { font-size: 13px; }
.receipt-confirmation-intro span { margin-top: 3px; color: var(--text-muted); font-size: 11px; line-height: 1.45; }
.receipt-reference-row { display: flex; justify-content: space-between; gap: 12px; padding: 0 2px; font-size: 12px; }
.receipt-reference-row span { color: var(--text-muted); }
.receipt-uploader {
    min-height: 132px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 16px;
    border: 1.5px dashed color-mix(in srgb, var(--color-blue) 55%, var(--border-color));
    border-radius: 12px;
    background: color-mix(in srgb, var(--color-blue) 5%, var(--bg-card));
    color: var(--color-blue);
    cursor: pointer;
    text-align: center;
}
.receipt-uploader:hover { background: color-mix(in srgb, var(--color-blue) 11%, var(--bg-card)); }
.receipt-uploader input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.receipt-uploader > i { font-size: 24px; }
.receipt-uploader strong { font-size: 13px; }
.receipt-uploader small { color: var(--text-muted); font-size: 11px; }
.receipt-photo-preview { overflow: hidden; border: 1px solid var(--border-color); border-radius: 12px; background: var(--surface-soft); }
.receipt-photo-preview img { display: block; width: 100%; max-height: 250px; object-fit: contain; background: #020617; }
.receipt-photo-preview span { display: block; padding: 8px 10px; color: var(--color-green); font-size: 11px; font-weight: 700; }
.receipt-required-note { margin: 0; color: var(--color-orange); font-size: 11px; text-align: center; }
.requisition-preview__receipt { display: grid; grid-template-columns: 1fr 116px; gap: 12px; align-items: center; margin-top: 14px; padding: 10px; border: 1px solid color-mix(in srgb, var(--color-green) 38%, var(--border-color)); border-radius: 10px; background: color-mix(in srgb, var(--color-green) 8%, var(--bg-card)); }
.requisition-preview__receipt strong, .requisition-preview__receipt span { display: block; }
.requisition-preview__receipt strong { color: var(--color-green); font-size: 12px; }
.requisition-preview__receipt span { margin-top: 4px; color: var(--text-muted); font-size: 11px; }
.requisition-preview__receipt img { width: 116px; height: 82px; border-radius: 7px; object-fit: cover; background: #020617; }

@media (max-width: 640px) {
    .receipt-action-card { align-items: stretch; flex-direction: column; }
    .receipt-action-card .btn-success { width: 100%; }
    .receipt-reference-row { align-items: flex-start; flex-direction: column; gap: 3px; }
    .requisition-preview__receipt { grid-template-columns: 1fr; }
    .requisition-preview__receipt img { width: 100%; height: 170px; }
}

/* Compact mobile header: keep the account actions beside the identity rather
   than creating a third row with unused space. */
@media (max-width: 640px) {
    .top-header { padding: 10px; }
    .top-header__layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand actions"
            "clock actions";
        align-items: center !important;
        column-gap: 8px !important;
        row-gap: 7px !important;
    }
    .top-header__brand {
        grid-area: brand;
        min-width: 0;
        gap: 8px !important;
    }
    .top-header__brand .header-search {
        min-width: 0;
        gap: 7px !important;
    }
    .top-header__brand .header-search img {
        width: 31px !important;
        height: 31px !important;
        padding: 2px !important;
        border-radius: 7px !important;
    }
    .top-header h1 {
        min-width: 0;
        max-width: none;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .live-clock-widget {
        grid-area: clock;
        justify-self: start;
        min-width: 0;
    }
    .top-header__account-actions {
        grid-area: actions;
        align-self: center;
        display: flex !important;
        gap: 6px !important;
    }
    .top-header__account-actions .header-account-summary { display: none; }
    .top-header__account-actions .btn-secondary {
        width: 36px;
        min-width: 36px;
        min-height: 36px;
        height: 36px;
        padding: 0 !important;
        justify-content: center;
        border-radius: 9px !important;
    }
    .top-header__account-actions .btn-secondary:last-child {
        width: auto;
        min-width: 60px;
        padding: 0 9px !important;
        gap: 5px !important;
        font-size: 0 !important;
    }
    .top-header__account-actions .btn-secondary:last-child::after {
        content: "ออก";
        font-size: 11px;
        font-weight: 800;
        line-height: 1;
    }
    .top-header__account-actions .btn-secondary i { font-size: 14px; margin: 0; }
}

/* Dialogs always take priority over fixed mobile controls.  The body class is
   supplied by ModalPortal, so this rule covers every existing popup. */
body.has-modal-open {
    overflow: hidden;
}
body.has-modal-open .mobile-bottom-nav,
body.has-modal-open .mobile-fab-container {
    visibility: hidden !important;
    pointer-events: none !important;
}
.modal-overlay {
    z-index: 1000100 !important;
}

/* Mobile dialogs use only the space their content needs.  Long content scrolls
   inside the body, while the footer remains visible and reachable. */
@media (max-width: 640px) {
    .modal-overlay {
        padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .modal-card:not(.modal-card--image):not(.modal-card--document) {
        width: 100% !important;
        height: auto !important;
        max-height: 100% !important;
        margin: 0 !important;
        border-radius: 14px !important;
    }
    .modal-card--document {
        height: 100% !important;
        max-height: 100% !important;
    }
    .modal-card > .modal-header,
    .modal-card > .modal-footer {
        flex: 0 0 auto !important;
    }
    .modal-card > .modal-body {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }
    .modal-footer {
        position: relative;
        z-index: 1;
    }
    .modal-footer > .btn-primary,
    .modal-footer > .btn-secondary,
    .modal-footer > .btn-success,
    .modal-footer > .btn-danger,
    .modal-footer > .btn-accent {
        min-width: 0;
    }
}

/* Account self-service ----------------------------------------------------
   Registration and recovery stay within the same calm entry screen.  These
   controls are intentionally compact so no dialog is required on a phone. */
.central-login-form--long { gap: 7px; }
.central-login-note,
.central-login-password-hint,
.central-login-notice {
    margin: 2px 0 5px;
    padding: 10px 11px;
    border-radius: 9px;
    font-size: 11px;
    line-height: 1.45;
}
.central-login-note {
    color: var(--text-muted);
    background: var(--surface-soft);
}
.central-login-note > i { margin-right: 5px; color: var(--color-blue); }
.central-login-password-hint { padding: 0; color: var(--text-muted); background: transparent; }
.central-login-notice {
    color: var(--color-green);
    border: 1px solid color-mix(in srgb, var(--color-green) 35%, var(--border-color));
    background: color-mix(in srgb, var(--color-green) 10%, transparent);
    font-weight: 700;
}
.central-login-secondary-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin-top: 2px;
}
.central-login-secondary-actions button,
.central-login-back {
    min-height: 38px;
    border: 0;
    color: var(--color-blue);
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.central-login-secondary-actions button {
    border: 1px solid var(--border-color);
    border-radius: 9px;
    background: var(--surface-soft);
}
.central-login-secondary-actions button > i { margin-right: 4px; }
.central-login-secondary-actions button:hover:not(:disabled),
.central-login-back:hover:not(:disabled) { filter: brightness(1.16); text-decoration: underline; }
.central-login-secondary-actions button:focus-visible,
.central-login-back:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-blue) 35%, transparent); outline-offset: 2px; }

/* Administrator account queue ------------------------------------------- */
.operations-account-help {
    margin: -3px 0 12px;
    color: var(--text-muted);
    font-size: 11px;
    line-height: 1.45;
}
.operations-user-list__item--pending {
    border-left: 3px solid var(--color-accent) !important;
    background: color-mix(in srgb, var(--color-accent) 7%, var(--surface-soft)) !important;
}
.operations-user-list__item em {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    color: var(--color-accent);
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
}
.operations-reset-request-list { display: grid; gap: 10px; margin-top: 12px; }
.operations-reset-request {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 11px;
    background: var(--surface-soft);
}
.operations-reset-request__summary { min-width: 0; }
.operations-reset-request__summary strong,
.operations-reset-request__summary span,
.operations-reset-request__summary small { display: block; overflow-wrap: anywhere; }
.operations-reset-request__summary strong { color: var(--text-primary); font-size: 12px; }
.operations-reset-request__summary span { margin-top: 3px; color: var(--text-muted); font-size: 10px; line-height: 1.4; }
.operations-reset-request__summary small { margin-top: 4px; color: var(--text-muted); font-size: 10px; }
.operations-reset-request > .btn-primary { min-height: 38px; font-size: 11px; white-space: nowrap; }
.operations-reset-form { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding-top: 11px; border-top: 1px solid var(--border-color); }
.operations-reset-form label { display: grid; gap: 5px; color: var(--text-muted); font-size: 10px; font-weight: 800; }
.operations-reset-form p { grid-column: 1 / -1; margin: 0; color: var(--text-muted); font-size: 10px; line-height: 1.4; }
.operations-reset-form > div { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 8px; }
.operations-reset-form .btn-secondary,
.operations-reset-form .btn-success { min-height: 38px; font-size: 11px; }

@media (max-width: 576px) {
    .central-login-secondary-actions { grid-template-columns: 1fr; }
    .operations-reset-request { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .operations-reset-request > .btn-primary { width: 100%; }
    .operations-reset-form { grid-template-columns: minmax(0, 1fr); }
    .operations-reset-form > div { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Inbound receiving queue --------------------------------------------------
   Keep each receipt line readable at every width.  The quantity input uses a
   dedicated class so the global full-width form rule cannot squeeze product
   information into a few characters. */
.inbound-queue-card,
.inbound-queue-list,
.inbound-queue-items,
.inbound-queue-item,
.inbound-queue-item-info { min-width: 0; }

.inbound-queue-list {
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.inbound-queue-item-meta {
    min-width: 0;
    overflow: hidden;
}

.inbound-queue-quantity-input {
    width: 64px !important;
    min-width: 64px;
    flex: 0 0 64px;
}

@media (max-width: 700px) {
    #panel-inbound .inbound-queue-card {
        min-width: 0;
        overflow: hidden;
    }

    #panel-inbound .inbound-queue-header {
        align-items: flex-start !important;
        gap: 10px;
    }

    #panel-inbound .inbound-queue-header h3 {
        min-width: 0;
        font-size: 14px;
        line-height: 1.35;
    }

    #panel-inbound .inbound-queue-header > .mobile-icon-button {
        flex: 0 0 auto;
        min-width: 40px;
        min-height: 38px;
        padding: 5px 9px !important;
    }

    #panel-inbound .inbound-queue-list {
        max-height: min(44svh, 360px) !important;
        min-height: 0 !important;
        padding-right: 2px;
    }

    #panel-inbound .inbound-queue-item {
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) 40px;
        grid-template-areas:
            "media info remove"
            "controls controls controls";
        gap: 10px 12px !important;
        align-items: start !important;
        padding: 12px !important;
    }

    #panel-inbound .inbound-queue-item-media {
        grid-area: media;
        margin-top: 2px;
    }

    #panel-inbound .inbound-queue-item-info {
        grid-area: info;
        min-height: 48px;
    }

    #panel-inbound .inbound-queue-item-meta {
        display: flex !important;
        flex-wrap: wrap;
        gap: 2px 6px !important;
        align-items: center !important;
        line-height: 1.35;
    }

    #panel-inbound .inbound-queue-item-meta code,
    #panel-inbound .inbound-queue-item-meta span {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #panel-inbound .inbound-queue-item-name {
        display: -webkit-box;
        margin: 3px 0 !important;
        overflow: hidden !important;
        text-overflow: clip !important;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-height: 1.35;
    }

    #panel-inbound .inbound-queue-item-detail {
        line-height: 1.45;
        overflow-wrap: anywhere;
    }

    #panel-inbound .inbound-queue-item-controls {
        display: grid !important;
        grid-area: controls;
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        width: 100%;
        gap: 8px !important;
    }

    #panel-inbound .inbound-queue-item-controls > .btn-secondary,
    #panel-inbound .inbound-queue-quantity-input {
        min-height: 44px;
        height: 44px;
    }

    #panel-inbound .inbound-queue-quantity-input {
        width: 100% !important;
        min-width: 0;
        padding: 7px 10px !important;
        font-size: 16px !important;
    }

    #panel-inbound .inbound-queue-item-remove {
        display: inline-flex;
        grid-area: remove;
        align-items: center;
        justify-content: center;
        width: 40px;
        min-width: 40px;
        min-height: 40px;
        padding: 6px !important;
        border-radius: 8px;
        background: color-mix(in srgb, var(--color-red) 9%, transparent) !important;
    }

    #panel-inbound .inbound-queue-footer {
        margin-top: 12px !important;
        padding-top: 12px !important;
    }

    #panel-inbound .inbound-queue-total {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 3px;
    }

    #panel-inbound .inbound-queue-submit {
        min-height: 48px;
        font-size: 14px !important;
    }
}

/* ==========================================================================
   ALERTS PRO & STOCKTAKE PRO - PERFECT DUAL THEME ENGINE (DARK & LIGHT)
   ========================================================================== */

/* 1. Alerts Panel Components (Dark Default) */
.alerts-pro-header-card {
    background: rgba(15, 23, 42, 0.75) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
    color: #f8fafc !important;
}
.alerts-stat-card {
    background: rgba(15, 23, 42, 0.75) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
    color: #f8fafc !important;
}
.alerts-stat-card.active-low-stock {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.22) 0%, rgba(245, 158, 11, 0.08) 100%) !important;
    border: 2px solid #f59e0b !important;
    box-shadow: 0 0 16px rgba(245, 158, 11, 0.3) !important;
}
.alerts-stat-card.active-out-of-stock {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.22) 0%, rgba(239, 68, 68, 0.08) 100%) !important;
    border: 2px solid #ef4444 !important;
    box-shadow: 0 0 16px rgba(239, 68, 68, 0.3) !important;
}
.alerts-stat-card.active-expiry {
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.22) 0%, rgba(56, 189, 248, 0.08) 100%) !important;
    border: 2px solid #38bdf8 !important;
    box-shadow: 0 0 16px rgba(56, 189, 248, 0.3) !important;
}
.alerts-pro-toolbar {
    background: rgba(15, 23, 42, 0.75) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
}
.alerts-pro-table-card {
    background: rgba(15, 23, 42, 0.75) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
}
.alerts-thead-tr {
    background: rgba(0, 0, 0, 0.35) !important;
    color: #94a3b8 !important;
    border-bottom: 1px solid rgba(203, 213, 225, 0.16) !important;
}
.alerts-tbody-tr {
    border-bottom: 1px solid rgba(203, 213, 225, 0.12) !important;
}
.alerts-tbody-tr:hover {
    background: rgba(255, 255, 255, 0.03) !important;
}
.alerts-progress-track {
    background: rgba(255, 255, 255, 0.1) !important;
}

/* 2. Alerts Panel Components (Light Mode Overrides) */
body.light-theme .alerts-pro-header-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
    color: #0f172a !important;
}
body.light-theme .alerts-stat-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
    color: #0f172a !important;
}
body.light-theme .alerts-stat-card.active-low-stock {
    background: #fffbeb !important;
    border: 2px solid #f59e0b !important;
    box-shadow: 0 4px 16px rgba(245, 158, 11, 0.15) !important;
}
body.light-theme .alerts-stat-card.active-out-of-stock {
    background: #fef2f2 !important;
    border: 2px solid #ef4444 !important;
    box-shadow: 0 4px 16px rgba(239, 68, 68, 0.15) !important;
}
body.light-theme .alerts-stat-card.active-expiry {
    background: #f0f9ff !important;
    border: 2px solid #0284c7 !important;
    box-shadow: 0 4px 16px rgba(2, 132, 199, 0.15) !important;
}
body.light-theme .alerts-pro-toolbar {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
}
body.light-theme .alerts-pro-table-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
}
body.light-theme .alerts-thead-tr {
    background: #f8fafc !important;
    color: #475569 !important;
    border-bottom: 2px solid #e2e8f0 !important;
}
body.light-theme .alerts-tbody-tr {
    background: #ffffff !important;
    border-bottom: 1px solid #f1f5f9 !important;
}
body.light-theme .alerts-tbody-tr:hover {
    background: #f8fafc !important;
}
body.light-theme .alerts-progress-track {
    background: #e2e8f0 !important;
}
.alerts-modal-card {
    width: 92% !important;
    max-width: 440px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    background: rgba(15, 23, 42, 0.95) !important;
    border: 1px solid rgba(203, 213, 225, 0.2) !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7) !important;
    color: #f8fafc !important;
}
body.light-theme .alerts-modal-card {
    width: 92% !important;
    max-width: 440px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.15) !important;
    color: #0f172a !important;
}

.quick-restock-product-box {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
}
body.light-theme .quick-restock-product-box {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.03) !important;
}

/* 3. Stocktake Panel Components (Dark & Light) */
.stocktake-checklist-panel,
.stocktake-queue-panel {
    background: rgba(15, 23, 42, 0.75) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
}
body.light-theme .stocktake-checklist-panel,
body.light-theme .stocktake-queue-panel {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
    color: #0f172a !important;
}

.stocktake-item-card {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(203, 213, 225, 0.16) !important;
}
body.light-theme .stocktake-item-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04) !important;
}

.stocktake-3tier-box {
    background: rgba(0, 0, 0, 0.45) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
}
body.light-theme .stocktake-3tier-box {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
}

.stocktake-stepper-btn {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
}
body.light-theme .stocktake-stepper-btn {
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    color: #0f172a !important;
}
body.light-theme .stocktake-stepper-btn:hover {
    background: #e2e8f0 !important;
}

.stocktake-stepper-input {
    background: rgba(0, 0, 0, 0.5) !important;
    color: #ffffff !important;
}
body.light-theme .stocktake-stepper-input {
    background: #ffffff !important;
    color: #0f172a !important;
    border: 1px solid #cbd5e1 !important;
}

.stocktake-floating-pill-dock {
    background: rgba(15, 23, 42, 0.94) !important;
    border: 1px solid rgba(16, 185, 129, 0.5) !important;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.6), 0 0 20px rgba(16, 185, 129, 0.25) !important;
}
body.light-theme .stocktake-floating-pill-dock {
    background: #ffffff !important;
    border: 1px solid #10b981 !important;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12), 0 0 20px rgba(16, 185, 129, 0.15) !important;
}

/* Stocktake Review Modal (Theme Adaptive & High Contrast) */
.stocktake-review-modal-card {
    background: #1e293b !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #f8fafc !important;
    box-shadow: 0 25px 60px -12px rgba(0, 0, 0, 0.7) !important;
}

body.light-theme .stocktake-review-modal-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    color: #0f172a !important;
    box-shadow: 0 25px 60px -12px rgba(15, 23, 42, 0.22) !important;
}

body.light-theme .stocktake-review-modal-card .modal-header {
    background: linear-gradient(90deg, rgba(16, 185, 129, 0.12), rgba(241, 245, 249, 0.6)) !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

body.light-theme .stocktake-review-modal-card .modal-header h3 {
    color: #065f46 !important;
}

body.light-theme .stocktake-review-modal-card .modal-footer {
    background: #f8fafc !important;
    border-top: 1px solid #e2e8f0 !important;
}

body.light-theme .stocktake-review-modal-card label {
    color: #334155 !important;
}


