:root{--eskan-primary:#1e40af;--eskan-primary-light:#3b82f6;--eskan-success:#16a34a;--eskan-danger:#dc2626;--eskan-gray-100:#f8fafc;--eskan-gray-200:#e2e8f0;--eskan-gray-500:#64748b;--eskan-gray-800:#1e293b;--eskan-white:#fff;--eskan-radius:.5rem;--eskan-shadow:0 1px 3px #00000014;--eskan-font:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif;--bs-font-sans-serif:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif;--bs-body-font-family:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif;--bs-btn-font-family:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif}[data-bs-theme=light]{--bs-font-sans-serif:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif;--bs-body-font-family:"Vazirmatn FD",Tahoma,"Segoe UI",sans-serif}html{font-size:16px}body,.form-control,.form-select,.form-check-label,.btn,.table,.modal-content,.modal-title,.modal-body,.modal-footer,.dropdown-menu,.list-group-item,.nav-link,.badge,.pagination,.page-link,.alert,.card,.stat-card,.mobile-card-item,.accommodation-card,.input-group-text,.form-label,.small,h1,h2,h3,h4,h5,h6,p,span,label,td,th,dt,dd,button,input,select,textarea,.swal2-popup,.swal2-title,.swal2-html-container,.swal2-confirm,.swal2-cancel,.swal2-toast{font-family:var(--eskan-font)!important}body{color:var(--eskan-gray-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}[class^=bi-]:before,[class*=\ bi-]:before{font-family:bootstrap-icons!important}.app-header{background:var(--eskan-white);border-bottom:1px solid var(--eskan-gray-200);box-shadow:var(--eskan-shadow);padding:1rem 0}.app-header .brand{color:var(--eskan-primary);font-size:1.25rem;font-weight:700;text-decoration:none}.card-eskan{background:var(--eskan-white);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);box-shadow:var(--eskan-shadow)}.wizard-steps{justify-content:space-between;gap:.25rem;margin-bottom:2rem;display:flex;position:relative}.wizard-steps:before{content:"";background:var(--eskan-gray-200);z-index:0;height:2px;position:absolute;top:18px;left:10%;right:10%}.wizard-step{text-align:center;z-index:1;flex:1;position:relative}.wizard-step .step-circle{background:var(--eskan-gray-200);width:36px;height:36px;color:var(--eskan-gray-500);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:600;transition:all .3s;display:inline-flex}.wizard-step.active .step-circle,.wizard-step.completed .step-circle{background:var(--eskan-primary);color:var(--eskan-white)}.wizard-step.completed .step-circle{background:var(--eskan-success)}.wizard-step .step-label{color:var(--eskan-gray-500);font-size:.65rem;line-height:1.3;display:block}@media (width>=576px){.wizard-step .step-label{font-size:.75rem}}@media (width>=768px){.wizard-step .step-label{font-size:.8rem}}.form-control:focus,.form-select:focus{border-color:var(--eskan-primary-light);box-shadow:0 0 0 .2rem #1e40af26}.btn-primary{background-color:var(--eskan-primary);border-color:var(--eskan-primary)}.btn-primary:hover{background-color:#1e3a8a;border-color:#1e3a8a}.btn-success{background-color:var(--eskan-success);border-color:var(--eskan-success)}.photo-preview{border-radius:var(--eskan-radius);border:2px solid var(--eskan-gray-200);width:100%;max-width:400px}.camera-container{flex-direction:column;justify-content:center;align-items:center;min-height:280px;display:flex}.photo-loading{flex-direction:column;justify-content:center;align-items:center;min-height:200px;display:flex}.crop-container{max-height:400px;overflow:hidden}.crop-container img{max-width:100%}.camera-container video{border-radius:var(--eskan-radius);width:100%;max-width:400px}.accommodation-card{background:var(--eskan-white);border:2px solid var(--eskan-primary);border-radius:var(--eskan-radius);width:100%;max-width:400px;margin:0 auto;overflow:hidden}.accommodation-card-header{background:var(--eskan-primary);color:var(--eskan-white);text-align:center;padding:1rem}.accommodation-card-body{text-align:center;padding:1.5rem}.accommodation-card-photo{object-fit:cover;border:3px solid var(--eskan-gray-200);border-radius:50%;width:120px;height:120px;margin-bottom:1rem}.accommodation-card-qr{margin-top:1rem}.accommodation-card-full{max-width:420px}.card-info-grid{gap:.35rem;display:grid}.card-info-grid .label{color:var(--eskan-gray-500);font-weight:500}.accommodation-number-box{background:var(--eskan-gray-100);border-radius:var(--eskan-radius);padding:.75rem}.qr-reader-box{border-radius:var(--eskan-radius);background:#000;min-height:300px;overflow:hidden}.qr-reader-box #qr-reader__scan_region{min-height:280px}.qr-reader-box video{border-radius:var(--eskan-radius);width:100%!important}.scan-mode-bar .exec-mode-group .btn{padding:.5rem .35rem;font-size:.85rem}.meals-summary-box .bi-check-circle-fill{font-size:1.25rem}.summary-list dt{color:var(--eskan-gray-500);font-weight:500}.summary-list dd{margin-bottom:.35rem}.summary-box{grid-template-columns:1fr auto;align-items:start;gap:1rem;display:grid}.summary-box-data{min-width:0}.summary-box-photo{flex-shrink:0}.summary-photo{object-fit:cover;border-radius:var(--eskan-radius);border:2px solid var(--eskan-gray-200);width:110px;height:110px;display:block}.summary-list dt,.summary-list dd{margin-bottom:.35rem;padding-top:0;padding-bottom:0;font-size:.9rem}.admin-wrapper{min-height:100vh;font-family:var(--eskan-font);display:flex}.admin-sidebar{background:var(--eskan-white);border-left:1px solid var(--eskan-gray-200);z-index:1040;width:260px;font-family:var(--eskan-font);flex-direction:column;flex-shrink:0;transition:transform .3s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.admin-sidebar.show{transform:translate(0)}.admin-sidebar .nav-link{color:var(--eskan-gray-800);border-radius:0;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500}.admin-sidebar .nav-link:hover,.admin-sidebar .nav-link.active{background:var(--eskan-gray-100);color:var(--eskan-primary);font-weight:600}.admin-sidebar strong{font-size:1.05rem;font-weight:700}.admin-sidebar small{font-size:.8rem}.admin-content{min-width:0;font-family:var(--eskan-font);flex:1;padding:1rem}.admin-topbar{background:var(--eskan-white);border-bottom:1px solid var(--eskan-gray-200);justify-content:space-between;align-items:center;margin:-1rem -1rem 1.5rem;padding:.75rem 1rem;display:flex}.admin-topbar h5{font-size:1.1rem;font-weight:700}.admin-panel .table thead th{white-space:nowrap;font-size:.875rem;font-weight:600}.admin-panel .table tbody td{vertical-align:middle;font-size:.9rem}.admin-panel .btn-group-sm .btn{font-size:.85rem}.admin-panel .form-control,.admin-panel .form-select{font-size:.9375rem}.admin-panel .card-eskan{font-family:var(--eskan-font)}.admin-panel .stat-card .stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-family:var(--eskan-font)!important}.admin-panel .stat-card .stat-label{font-weight:500}.admin-panel .mobile-card-item .value{font-family:var(--eskan-font)}.admin-panel .badge{padding:.4em .65em;font-size:.8rem;font-weight:600}.admin-panel .login-card h4{font-weight:700}@media (width>=992px){.admin-sidebar{position:static;transform:none}.admin-content{padding:1.5rem 2rem}}.stat-card{background:var(--eskan-white);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);text-align:center;padding:1.25rem}.stat-card .stat-value{color:var(--eskan-primary);font-size:2rem;font-weight:700}.stat-card .stat-label{color:var(--eskan-gray-500);font-size:.875rem}.stat-card-group{flex-direction:column;gap:.75rem;height:100%;display:flex}.stat-card-group .stat-group-title{color:var(--eskan-gray-600);text-align:center;font-size:.875rem;font-weight:600}.stat-card-group .stat-group-items{align-items:stretch;gap:.75rem;display:flex}.stat-card-group .stat-group-item{flex:1;min-width:0}.stat-card-group .stat-group-item .stat-value{font-size:1.75rem}.stat-card-group .stat-group-item+.stat-group-item{border-right:1px solid var(--eskan-gray-200);padding-right:.75rem}.stat-card-group .stat-group-items--triple .stat-group-item .stat-value{font-size:1.5rem}.location-meal-card{background:var(--eskan-white);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);height:100%;padding:1rem 1.15rem}.location-meal-card .location-meal-title{margin-bottom:.75rem;font-weight:600}.location-meal-card .location-meal-counts{flex-wrap:wrap;gap:.65rem 1rem;display:flex}.location-meal-card .meal-count-item{font-size:.9rem}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=767.98px){.table-desktop{display:none!important}.card-view-mobile{display:block!important}.mobile-card-item{background:var(--eskan-white);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);margin-bottom:.75rem;padding:1rem}.mobile-card-item .label{color:var(--eskan-gray-500);font-size:.8rem}.mobile-card-item .value{margin-bottom:.5rem;font-weight:500}.mobile-card-item .thumb{object-fit:cover;border-radius:50%;width:48px;height:48px}}@media (width>=768px){.card-view-mobile{display:none!important}}.login-page{min-height:100vh;font-family:var(--eskan-font);justify-content:center;align-items:center;padding:1rem;display:flex}.login-card{width:100%;max-width:420px;font-family:var(--eskan-font)}.admin-login .login-card h4{font-weight:700;font-family:var(--eskan-font)}.admin-login .form-label{font-weight:500}.captcha-box{background:var(--eskan-gray-100);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);padding:.75rem}.captcha-image-wrap{background:var(--eskan-white);border:1px solid var(--eskan-gray-200);border-radius:var(--eskan-radius);padding:2px;line-height:0}.captcha-img{border-radius:calc(var(--eskan-radius) - 2px);cursor:pointer;object-fit:contain;width:180px;height:60px;display:block}.captcha-input{letter-spacing:.15em;text-align:center;min-width:120px;max-width:160px;font-weight:600}.text-primary-eskan{color:var(--eskan-primary)!important}.overlay-sidebar{z-index:1030;background:#0006;display:none;position:fixed;inset:0}.overlay-sidebar.show{display:block}.location-option.disabled,.location-option-full{opacity:.75;cursor:not-allowed;background-color:var(--eskan-gray-100,#f8f9fa);justify-content:space-between;align-items:center;gap:.5rem;display:flex}.location-option-full .location-option-title{color:var(--eskan-gray-500,#6c757d)}jdp-container{z-index:1070!important;font-family:var(--eskan-font)!important}jdp-container .jdp-day.selected,jdp-container .jdp-day:not(.disabled-day):hover{background:var(--eskan-primary)!important}jdp-container .jdp-btn-today,jdp-container .jdp-btn-empty{font-family:var(--eskan-font)!important}input[data-jdp]{cursor:pointer}