/* SHREE LAKSHMI PAWN BROKERS - UI ENHANCEMENTS */
.page-loader{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;opacity:1;transition:opacity .4s ease-out}.page-loader.hidden{opacity:0;pointer-events:none}.loader-logo{height:80px;margin-bottom:30px;animation:float 3s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}.loading-bar-container{width:160px;height:3px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;margin-top:20px}.loading-bar-fill{height:100%;background:linear-gradient(90deg,#d97706,#f59e0b,#d97706);animation:fill .6s ease-out forwards}@keyframes fill{to{width:100%}}html{scroll-behavior:smooth}img{loading:lazy;decoding:async}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.login-card{animation:up .5s ease-out}.login-logo-float{animation:float 3s ease-in-out infinite}@keyframes up{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.gradient-animate{background:linear-gradient(-45deg,#0f172a,#1e293b,#334155,#0f172a);background-size:400%;animation:shift 8s ease infinite}@keyframes shift{50%{background-position:100%}}.login-card.error-shake{animation:shake .4s}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.input-field-enhanced{position:relative}.input-field-enhanced::after{content:'';position:absolute;bottom:0;left:0;height:2px;width:100%;background:linear-gradient(90deg,#d97706,#f59e0b,#d97706);transform:scaleX(0);transform-origin:left;transition:transform .2s ease-out}.input-field-enhanced:focus::after{transform:scaleX(1)}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:0;border:none;cursor:pointer;color:#9ca3af;padding:4px 8px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:color .2s;z-index:10}.password-toggle:hover{color:#6b7280}.password-input-wrapper{position:relative}.nprogress-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#d97706,#f59e0b);z-index:9999;box-shadow:0 0 10px rgba(217,119,6,.5)}main{will-change:opacity}main.fade-out{opacity:0;transition:opacity .15s ease-out;pointer-events:none}main.fade-in{animation:in .3s ease-out}@keyframes in{from{opacity:0}to{opacity:1}}table tbody tr{transition:background .15s ease-out}table tbody tr:hover{background:rgba(217,119,6,.08)}table tbody tr:nth-child(odd){background:rgba(0,0,0,.01)}table tbody tr:nth-child(even){background:rgba(0,0,0,.02)}table tbody tr.sorting{animation:glow .4s}@keyframes glow{0%,100%{background:rgba(217,119,6,0)}50%{background:rgba(217,119,6,.15)}}button,[role="button"]{transition:transform .12s cubic-bezier(.4,0,.2,1)}button:active,[role="button"]:active{transform:scale(.97)}.btn-loading{position:relative;color:transparent}.btn-loading::after{content:'';position:absolute;width:16px;height:16px;top:50%;left:50%;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.back-to-top{position:fixed;bottom:24px;right:24px;width:48px;height:48px;background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;opacity:0;transform:translateY(20px);pointer-events:none;transition:all .3s ease-out;z-index:100;box-shadow:0 4px 12px rgba(217,119,6,.3)}.back-to-top.show{opacity:1;transform:translateY(0);pointer-events:all}.back-to-top:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(217,119,6,.4)}.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;opacity:0;transition:opacity .2s ease-out}.modal-overlay.show{display:block;opacity:1}.modal-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);opacity:0;transition:all .2s ease-out;z-index:1001}.modal-overlay.show .modal-content{transform:translate(-50%,-50%) scale(1);opacity:1}.modal-overlay.closing .modal-content{transform:translate(-50%,-50%) scale(.95);opacity:0;transition:all .15s ease-out}.toast{position:fixed;top:20px;right:20px;padding:16px 20px;border-radius:8px;color:#fff;z-index:9998;display:flex;align-items:center;gap:12px;animation:slide-in .3s ease-out;box-shadow:0 4px 12px rgba(0,0,0,.15)}.toast.hiding{animation:slide-out .3s ease-out forwards}@keyframes slide-in{0%{transform:translateX(400px);opacity:0}100%{transform:translateX(0);opacity:1}}@keyframes slide-out{0%{opacity:1}100%{transform:translateX(400px);opacity:0}}.toast.success{background:#10b981}.toast.error{background:#ef4444}.toast.warning{background:#f59e0b}.confirm-modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1);text-align:center}.confirm-modal h3{font-size:1.125rem;font-weight:600;margin-bottom:16px;color:#1f2937}.confirm-modal p{color:#6b7280;margin-bottom:24px;font-size:.875rem}.confirm-modal-buttons{display:flex;gap:12px;justify-content:center}.confirm-modal-buttons button{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease-out}.confirm-modal-buttons .btn-cancel{background:#e5e7eb;color:#374151}.confirm-modal-buttons .btn-cancel:hover{background:#d1d5db}.confirm-modal-buttons .btn-confirm{background:#ef4444;color:#fff}.confirm-modal-buttons .btn-confirm:hover{background:#dc2626}input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px rgba(217,119,6,.1);transition:box-shadow .2s ease-out}.number-formatted{font-family:monospace;letter-spacing:.02em}.table-responsive{overflow-x:auto;position:relative}.table-responsive::after{content:'';position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(to left,rgba(0,0,0,.1),transparent);opacity:0;transition:opacity .3s ease-out;pointer-events:none}.table-responsive.has-scroll::after{opacity:1}table th{cursor:pointer;user-select:none}table th.sortable::after{content:' ↕';font-size:.75em;opacity:.4;transition:opacity .2s ease-out}table th.sortable:hover::after{opacity:.7}table th.sorted-asc::after{content:' ↑';opacity:1}table th.sorted-desc::after{content:' ↓';opacity:1}.row-count-badge{display:inline-block;background:#f3f4f6;color:#6b7280;padding:4px 12px;border-radius:12px;font-size:.875rem;font-weight:500;transition:all .2s ease-out}.row-count-badge.updating{background:rgba(217,119,6,.1);color:#d97706}@media print{nav,.sidebar,.buttons,.navigation,.action-buttons,.back-to-top,.progress-bar{display:none!important}main{margin:0;padding:0;background:#fff}table{border-collapse:collapse}table td,table th{border:1px solid #333;padding:8px}}.print-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#6b7280;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease-out}.print-btn:hover{background:#4b5563;transform:translateY(-1px)}.session-timeout-modal{background:#fff;border-radius:12px;padding:32px;max-width:500px;box-shadow:0 20px 25px -5px rgba(0,0,0,.2);text-align:center}.session-timeout-modal h2{font-size:1.25rem;font-weight:600;margin-bottom:12px;color:#dc2626}.session-timeout-modal p{color:#6b7280;margin-bottom:8px}.session-timeout-countdown{font-size:2.25rem;font-weight:700;color:#dc2626;margin:20px 0;font-variant-numeric:tabular-nums}.session-timeout-modal button{margin-top:20px;padding:10px 24px;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease-out}.session-timeout-modal button:hover{background:#059669;transform:translateY(-2px)}@media(max-width:768px){.back-to-top{bottom:80px;right:16px;width:44px;height:44px;font-size:18px}.toast{right:12px;left:12px;max-width:none}.modal-content{margin:16px;max-width:calc(100% - 32px)}.confirm-modal{margin:16px}table{font-size:.875rem}}@media(max-width:480px){.login-card{border-radius:16px}.toast{top:12px;right:12px;left:12px;padding:12px 16px;font-size:.875rem}.modal-content{width:100vw;height:auto;max-height:90vh;top:50%}}
