:root{--brand-50: #f4f8e3;--brand-100: #e6efb6;--brand-200: #d3e57c;--brand-400: #b8d94a;--brand-500: #9ec538;--brand-600: #80a826;--brand-700: #5b7a16;--brand-900: #1f2a09;--ink-900: #0e1116;--ink-800: #1a1d22;--ink-700: #2a3038;--ink-600: #4a5260;--ink-500: #6c757d;--ink-400: #9aa3ad;--ink-300: #cdd2d8;--ink-200: #e1e4e8;--ink-100: #eef0f3;--ink-50: #f6f7f9;--ink-0: #ffffff;--bg: #f4f5f7;--surface: #ffffff;--danger: #d24a4a;--danger-bg: #fdecea;--warning: #d28b1c;--warning-bg: #fdf3e2;--success: #2c8a52;--success-bg: #e6f4ec;--info: #2c6cd6;--info-bg: #e8f0fc;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(15, 22, 36, .06);--shadow-md: 0 4px 12px rgba(15, 22, 36, .08);--shadow-lg: 0 18px 50px rgba(15, 22, 36, .18);--transition: .16s ease;--nav-w: 220px;--header-h: 58px;--bottom-nav-h: 64px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@font-face{font-family:Nastaliq;src:url(/fonts/NotoNastaliqUrdu-Regular.ttf) format("truetype");font-display:swap}*{box-sizing:border-box}*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink-800);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;min-height:100%;overflow-x:hidden;width:100%;max-width:100%}#root{min-height:100vh;min-height:100dvh;width:100%;max-width:100%;overflow-x:hidden}.layout{width:100%;max-width:100%;overflow-x:hidden}.layout>main{width:100%;max-width:100%;overflow-x:hidden}a{color:var(--info);text-decoration:none;transition:color var(--transition)}a:hover{color:#1f56b8;text-decoration:underline}::selection{background:var(--brand-200);color:var(--ink-900)}h1,h2,h3,h4{color:var(--ink-900)}h1{font-size:22px}h2{font-size:18px;margin:0 0 12px;font-weight:700;letter-spacing:-.01em}h3{font-size:15px;margin:0 0 10px;font-weight:700}input,select,textarea{font:inherit;width:100%;padding:10px 12px;font-size:16px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:var(--ink-0);color:var(--ink-800);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}input::placeholder,textarea::placeholder{color:var(--ink-400)}input:hover,select:hover,textarea:hover{border-color:var(--ink-400)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #b8d94a40}input:disabled,select:disabled,textarea:disabled{background:var(--ink-50);color:var(--ink-500);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;padding:0;margin:0;accent-color:var(--brand-500);min-width:18px;min-height:18px}textarea{resize:vertical;min-height:80px;font-family:inherit}label{display:block;font-weight:600;margin-bottom:4px;color:var(--ink-700);font-size:13px;letter-spacing:.01em}label.required:after{content:" *";color:var(--danger);font-weight:700}label.checkline{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-700);cursor:pointer;font-size:14px;margin-bottom:0;padding:6px 0;min-height:32px}label.checkline input{width:auto}.form-row{margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:12px 14px}.form-grid>*{min-width:0}.form-grid.cols-2,.form-grid.cols-3{grid-template-columns:minmax(0,1fr)}.form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.m-1{grid-template-columns:minmax(0,1fr)}@media (min-width: 600px){.form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4,.form-grid.m-1.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 880px){.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-4,.form-grid.m-1.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.grid-2,.grid-3,.grid-4{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}.grid-2.tight,.grid-3.tight,.grid-4.tight{gap:10px}.grid-2.pair,.grid-3.pair,.grid-4.pair{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 720px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 980px){.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.date-range{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.date-range>.dr-label{font-size:12px;color:var(--ink-500);white-space:nowrap}.date-range>.dr-sep{font-size:12px;color:var(--ink-400)}.date-range input[type=date],.date-range input[type=datetime-local]{width:auto;flex:1 1 140px;min-width:0}.grid-3.keep{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4.m2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 720px){.grid-4.m2{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 599px){.date-range{width:100%;flex:1 1 100%!important}.date-range>.dr-label{flex:1 1 100%}.date-range>.dr-sep{display:none}.date-range input[type=date]{flex:1 1 calc(50% - 4px);width:auto!important}.date-range input[type=datetime-local]{flex:1 1 100%;width:auto!important}}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:12px;color:var(--ink-600)}.pager button{min-width:44px;padding:6px 14px;font-size:16px}.chip-row{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-14px;margin-right:-14px;padding:2px 14px}.chip-row::-webkit-scrollbar{display:none}.chip-row>button{flex:0 0 auto;white-space:nowrap}@media (min-width: 880px){.chip-row{flex-wrap:wrap;overflow:visible;margin:0 0 12px;padding:0}}@media (min-width: 720px){input,select,textarea{font-size:14px;padding:8px 11px}label{font-size:12.5px}label.checkline{font-size:13px}h1{font-size:24px}}button{font:inherit;font-weight:600;padding:10px 16px;min-height:44px;border:1px solid var(--ink-300);background:var(--ink-0);color:var(--ink-800);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition);display:inline-flex;align-items:center;gap:6px;justify-content:center;font-size:14px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-400)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand-400);border-color:var(--brand-500);color:var(--brand-900);font-weight:700}button.primary:hover:not(:disabled){background:var(--brand-500);border-color:var(--brand-600)}button.danger{background:var(--danger);border-color:#b83838;color:#fff}button.danger:hover:not(:disabled){background:#c13d3d}button.btn-ghost{background:transparent;border-color:var(--ink-300)}button.btn-icon{padding:8px;min-height:40px;min-width:40px}button.btn-sm{padding:6px 12px;font-size:13px;min-height:36px}button.btn-link{background:transparent;border:0;color:var(--info);padding:6px 8px;min-height:32px}button.btn-link:hover:not(:disabled){background:transparent;text-decoration:underline}@media (min-width: 720px){button{padding:8px 14px;min-height:36px}button.btn-sm{padding:5px 10px;min-height:30px}}.layout{min-height:100vh;min-height:100dvh;padding-top:var(--header-h);padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom))}.layout>header{position:fixed;top:0;left:0;right:0;width:100%;height:var(--header-h);background:linear-gradient(135deg,var(--brand-900),#2f3d10);color:var(--brand-50);display:flex;align-items:center;padding:0 12px;gap:8px;box-shadow:var(--shadow-sm);z-index:30;overflow:hidden}.layout>header>*{min-width:0}.layout>header .brand-logo{height:32px;width:auto;flex-shrink:0}.layout>header .brand{font-weight:800;letter-spacing:1.5px;color:var(--brand-200);font-size:14px;white-space:nowrap}@media (max-width: 400px){.layout>header .brand{display:none}}.hdr-new-label,.hdr-logout-label{display:none}.layout>header .me{font-size:12.5px;color:var(--brand-100);display:flex;align-items:center;gap:8px}.layout>header .me .me-text{display:none}.layout>header .me .avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-400);color:var(--brand-900);display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}.layout>header button{background:#ffffff0f;border-color:#ffffff2e;color:var(--brand-50);padding:8px 12px;min-height:36px;font-size:13px}.layout>header button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff4d}.layout>header .hdr-search{display:flex;align-items:center;position:relative;flex:1 1 0;min-width:0}.layout>header .hdr-search-box{position:relative;display:flex;align-items:center;width:100%;min-width:0}.layout>header .hdr-search-box input{width:100%;min-width:0;text-overflow:ellipsis}.layout>header .spacer{display:none}.layout>header .hdr-me{display:none}.layout>header .hdr-logout{display:none!important}.layout>header .hdr-new{padding:8px 12px;flex-shrink:0}.layout>nav{background:var(--ink-900);color:var(--ink-300);border-top:1px solid #11161e;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-h) + var(--safe-bottom));z-index:25;padding-bottom:var(--safe-bottom)}.layout>nav::-webkit-scrollbar{display:none}.layout>nav a,.layout>nav .nav-more{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:8px 4px 6px;min-width:0;flex:1 1 0;color:var(--ink-300);border-top:3px solid transparent;font-weight:500;transition:background var(--transition),color var(--transition),border-color var(--transition);font-size:11px;white-space:nowrap;text-align:center}.layout>nav .nav-more{background:transparent;border:0;border-radius:0;min-height:0;border-top:3px solid transparent;font-size:11px;font-weight:500;color:var(--ink-300)}.layout>nav .nav-more:hover:not(:disabled){background:#181c23;color:var(--ink-0);border-color:transparent;border-top-color:transparent}.layout>nav .nav-more.active{color:var(--brand-200);border-top-color:var(--brand-400);background:#181c23;font-weight:700}.layout>nav .nav-label-short{display:inline}.layout>nav .nav-label-full{display:none}.layout>nav a.nav-secondary{display:none}.layout>nav a:hover{background:#181c23;color:var(--ink-0);text-decoration:none}.layout>nav a.active{color:var(--brand-200);border-top-color:var(--brand-400);background:#181c23;font-weight:700}.layout>nav a .nav-dot{display:none}.layout>nav a .nav-icon{font-size:18px;line-height:1}.layout>nav a.nav-highlight{color:var(--brand-200);font-weight:700}.layout>nav a.nav-highlight .nav-icon{color:var(--brand-400)}.layout>main{padding:14px 14px 24px;min-height:calc(100vh - var(--header-h) - var(--bottom-nav-h));min-height:calc(100dvh - var(--header-h) - var(--bottom-nav-h));-webkit-overflow-scrolling:touch}@media (min-width: 880px){.layout{display:grid;grid-template-rows:var(--header-h) 1fr;grid-template-columns:var(--nav-w) 1fr;height:100vh;min-height:0;padding:0}.layout>header{position:relative;grid-column:1 / -1;padding:0 18px;gap:16px;left:auto;right:auto}.layout>header .brand{font-size:16px;letter-spacing:2px}.layout>header .spacer{display:block;flex:1}.layout>header .hdr-me{display:flex}.layout>header .hdr-logout{display:flex!important}.layout>header .hdr-search{flex:0 0 auto}.layout>header .hdr-search-box{width:220px}.layout>nav .nav-more{display:none}.layout>nav .nav-label-short{display:none}.layout>nav .nav-label-full{display:inline}.layout>nav a.nav-secondary{display:flex}.more-backdrop{display:none!important}.layout>header .me{font-size:13px}.layout>header .me .me-text{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.hdr-new-label,.hdr-logout-label{display:inline}.layout>nav{position:relative;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 0;border-top:0;border-right:1px solid #11161e;bottom:auto;left:auto;right:auto;height:auto}.layout>nav a{flex-direction:row;justify-content:flex-start;flex:0 0 auto;padding:10px 18px;border-top:0;border-left:3px solid transparent;min-width:0;font-size:13.5px;font-weight:500;text-align:left;gap:10px}.layout>nav a.active{border-top:0;border-left-color:var(--brand-400)}.layout>nav a .nav-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--ink-600)}.layout>nav a.active .nav-dot{background:var(--brand-400)}.layout>nav a.nav-highlight .nav-dot{background:var(--brand-400);box-shadow:0 0 0 3px #b8d94a2e}.layout>nav a .nav-icon{font-size:13px;width:16px;text-align:center}.layout>main{padding:22px 26px 40px;overflow-y:auto;min-height:0}}.more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f16248c;z-index:40;display:flex;align-items:flex-end;animation:backdrop-in .14s ease}.more-sheet{width:100%;max-height:calc(100dvh - var(--header-h));overflow-y:auto;background:var(--surface);border-radius:18px 18px 0 0;padding:16px 14px calc(16px + var(--safe-bottom));box-shadow:var(--shadow-lg);animation:sheet-up .2s cubic-bezier(.16,1,.3,1)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.more-user{display:flex;align-items:center;gap:12px;padding:4px 4px 14px;margin-bottom:12px;border-bottom:1px solid var(--ink-100)}.more-user .avatar{width:40px;height:40px;border-radius:50%;background:var(--brand-400);color:var(--brand-900);display:grid;place-items:center;font-weight:800;flex-shrink:0}.more-user-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.more-user-text strong{color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-user-text span{color:var(--ink-500);font-size:12px}.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.more-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;padding:10px 6px;background:var(--ink-50);border:1px solid var(--ink-200);border-radius:var(--radius-md);color:var(--ink-700);font-size:12.5px;font-weight:600;text-align:center;-webkit-tap-highlight-color:transparent}.more-item:hover{text-decoration:none;background:var(--brand-50);color:var(--ink-900)}.more-item.active{background:var(--brand-100);border-color:var(--brand-400);color:var(--brand-900)}.more-logout{width:100%;color:var(--danger);border-color:#f3c3c3;background:var(--danger-bg)}.card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm);min-width:0;max-width:100%;overflow-wrap:anywhere}.card-header{display:flex;align-items:center;gap:10px;margin:-2px 0 14px}.card-header h2{margin:0;flex:1;font-size:16px}.card.tight{padding:12px 14px}.measure-section{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.measure-section h3{margin:0 0 12px;font-size:12px;color:var(--brand-700);text-transform:uppercase;letter-spacing:1.4px;border-bottom:1px solid var(--brand-100);padding-bottom:6px;font-weight:800}@media (min-width: 720px){.card{padding:18px 20px;margin-bottom:16px}.card-header h2{font-size:18px}.measure-section{padding:16px 18px}}.form-topbar{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.form-topbar.form-bottombar{margin:14px 0 0}@media (max-width: 719px){.form-topbar>button,.form-topbar>a{flex:1 1 auto}.form-topbar>span{flex:1 1 100%;text-align:right}.form-topbar.form-bottombar{position:sticky;bottom:calc(var(--bottom-nav-h) + var(--safe-bottom));z-index:5;margin:14px -14px -24px;padding:10px 14px;background:var(--surface);border-top:1px solid var(--ink-200);box-shadow:0 -4px 12px #0f162414;justify-content:space-between}}.page-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;width:100%;max-width:100%;min-width:0}.page-head>*{min-width:0;max-width:100%}.page-head h1,.page-head h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-word}.page-head .spacer{flex:1}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input,.toolbar select{flex:1 1 200px}@media (max-width: 600px){.page-head{gap:8px;align-items:stretch}.page-head h1{font-size:18px;flex:1 1 100%}.page-head .spacer{display:none}.page-head .muted{flex:1 1 100%;font-size:12px}.page-head button,.page-head .primary{flex:1 1 auto}.toolbar>*{flex:1 1 100%!important}.stat-card .value{font-size:22px}.card,.measure-section{padding:12px 14px}}.table-wrap{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);overflow-x:auto;overflow-y:hidden;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;background:var(--surface)}table th,table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--ink-100);font-size:14px;vertical-align:middle}table th{background:var(--ink-50);font-weight:700;color:var(--ink-700);font-size:12px;text-transform:uppercase;letter-spacing:.6px}table tbody tr{transition:background var(--transition)}table tbody tr:hover td{background:var(--brand-50)}table tbody tr.row-selected td{background:var(--brand-100, #dbeafe)}table.clickable tbody tr{cursor:pointer}table tbody tr:last-child td{border-bottom:0}table td.num{text-align:right;font-variant-numeric:tabular-nums}table td.actions{text-align:right;white-space:nowrap}@media (min-width: 720px){table th,table td{padding:10px 14px;font-size:13px}}@media (max-width: 599px){.table-wrap{border:0;box-shadow:none;background:transparent;padding:0;overflow:visible}table,table thead,table tbody,table tfoot{display:block;width:100%}table thead{display:none}table tbody{display:flex;flex-direction:column;gap:8px}table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px}table.clickable tbody tr:active{background:var(--brand-50)}table tr:hover td{background:transparent}table td,table tbody tr:last-child td{display:block;border:0;padding:0;min-width:0;font-size:14px;text-align:left!important;overflow-wrap:anywhere}table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-500);font-weight:700}table td.num{text-align:left}table td.actions,table td.m-full,table td[colspan]{grid-column:1 / -1}table td.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;white-space:normal}table td.actions:before{display:none}table td.m-hide,table td.m-empty{display:none}table td.m-title{order:-1;grid-column:1 / -1;font-size:16px}table td.m-title:before{display:none}table td input,table td select{min-width:0;max-width:100%}tr.row-overdue{background:#fff5f5;border-color:#fecaca}tr.row-overdue td{background:transparent}}.tag{display:inline-block;background:var(--brand-100);color:var(--brand-700);padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;border:1px solid var(--brand-200)}.tag.tag-muted{background:var(--ink-100);color:var(--ink-600);border-color:var(--ink-200)}.tag.tag-danger{background:var(--danger-bg);color:var(--danger);border-color:#f3c3c3}.tag.tag-success{background:var(--success-bg);color:var(--success);border-color:#b9d8c4}.tag.tag-info{background:var(--info-bg);color:var(--info);border-color:#cadcf4}.tag.tag-warning{background:#fef3c7;color:#92400e;border-color:#fde68a}.tag.tag-neutral{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.kbd{display:inline-block;background:var(--ink-100);border:1px solid var(--ink-200);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:var(--ink-700)}.urdu{font-family:Nastaliq,Jameel Noori Nastaleeq,system-ui;direction:rtl;text-align:right;font-size:17px;line-height:2}.error{color:var(--danger);font-size:13px;margin-top:4px}.muted{color:var(--ink-500);font-size:13px}.subtle{color:var(--ink-400);font-size:12px}.spacer{flex:1}.divider{height:1px;background:var(--ink-200);margin:14px 0}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat-grid>*{min-width:0}@media (min-width: 720px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:12px}}.stat-card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-sm);min-width:0;max-width:100%;overflow-wrap:anywhere}.stat-card .label{text-transform:uppercase;font-size:10px;color:var(--ink-500);letter-spacing:1px;font-weight:700}.stat-card .value{font-size:24px;font-weight:800;color:var(--ink-900);margin-top:2px;letter-spacing:-.02em}.stat-card .delta{font-size:11px;color:var(--ink-500);margin-top:4px}.stat-card.accent{border-color:var(--brand-200);background:linear-gradient(135deg,#fafde8,#f6fbd0)}.stat-card.accent .value{color:var(--brand-700)}.stat-card.danger{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.stat-card.danger .value{color:#dc2626}@media (min-width: 720px){.stat-card{padding:14px 16px}.stat-card .value{font-size:28px}.stat-card .label{font-size:11px}.stat-card .delta{font-size:12px}}.empty{text-align:center;padding:32px 18px;color:var(--ink-500)}.empty .icon{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:var(--ink-100);font-size:22px;color:var(--ink-400)}@keyframes bgShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes floatUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(-45deg,#0e1116,#1f2a09,#5b7a16,#2a3038);background-size:400% 400%;animation:bgShift 15s ease infinite;position:relative;overflow-y:auto;overflow-x:hidden;overflow-x:clip}.login-shell:before,.login-shell:after{content:"";position:absolute;border-radius:50%;filter:blur(90px);z-index:0;pointer-events:none}.login-shell:before{width:450px;height:450px;background:#b8d94a40;top:-100px;left:-100px;animation:bgShift 10s ease-in-out infinite alternate}.login-shell:after{width:350px;height:350px;background:#2c6cd626;bottom:-50px;right:-50px;animation:bgShift 12s ease-in-out infinite alternate-reverse}.login-card{position:relative;z-index:1;background:#ffffff0a;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:40px 32px 36px;width:100%;max-width:400px;box-shadow:0 30px 80px #0006,inset 0 0 0 1px #ffffff0d;color:var(--ink-0);animation:floatUp .8s cubic-bezier(.16,1,.3,1) forwards}.login-card img{filter:drop-shadow(0 0 15px rgba(255,255,255,.4));background:#ffffffd9;padding:8px 16px;border-radius:12px;box-shadow:0 4px 20px #00000026}.login-card h1{margin:16px 0 4px;font-size:26px;font-weight:900;letter-spacing:3px;color:#fff;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.3)}.login-card .sub{color:#ffffffa6;margin-bottom:32px;font-size:14px;text-align:center}.login-card .form-row label{color:#ffffffe6;font-weight:500;letter-spacing:.5px}.login-card input{background:#00000040;border:1px solid rgba(255,255,255,.1);color:#fff;padding:14px 16px;border-radius:10px;font-size:15px;transition:all var(--transition);box-shadow:inset 0 2px 6px #0000001a}.login-card input::placeholder{color:#ffffff4d}.login-card input:focus{background:#0006;border-color:var(--brand-400);box-shadow:0 0 0 3px #b8d94a40,inset 0 2px 6px #0000001a}.login-card button.primary{background:linear-gradient(135deg,var(--brand-400),var(--brand-600));border:none;color:var(--brand-900);padding:16px 20px;font-size:16px;font-weight:800;letter-spacing:.5px;border-radius:10px;box-shadow:0 6px 20px #b8d94a4d;transition:all .3s cubic-bezier(.16,1,.3,1);margin-top:18px}.login-card button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #b8d94a80;background:linear-gradient(135deg,var(--brand-500),var(--brand-700))}.login-card button.primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 4px 12px #b8d94a66}.login-card .muted{color:#ffffff59!important}.login-password-wrap{position:relative}.login-password-wrap input{width:100%;padding-right:60px}.login-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#ffffff8c;font-size:12px;font-weight:600;padding:6px 8px;cursor:pointer}.login-password-toggle:hover{color:#ffffffe6}.login-remember{color:#ffffffbf!important;font-size:13px;margin-top:4px}.login-download-app{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;padding:11px 14px;font-size:13px;font-weight:700;letter-spacing:.3px;color:#ffffffe6;background:#ffffff0f;border:1px solid rgba(255,255,255,.18);border-radius:10px;cursor:pointer;transition:all var(--transition)}.login-download-app:hover{background:#ffffff1f;border-color:#ffffff4d}@media (max-width: 400px){.login-card{padding:28px 20px 24px;border-radius:16px}.login-card h1{font-size:22px;letter-spacing:2px}.login-card .sub{margin-bottom:24px;font-size:13px}}@media (max-width: 400px),(max-height: 700px){.login-shell{align-items:flex-start;padding-top:24px}}@media (min-width: 720px){.login-card{padding:48px 40px 44px;max-width:420px}.login-card h1{font-size:30px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f16248c;display:grid;place-items:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:backdrop-in .14s ease;padding:12px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width: 720px){.modal-backdrop{padding:0;place-items:end stretch}.modal{width:100%;max-width:100vw!important;border-radius:18px 18px 0 0;border-bottom:0;max-height:94vh;max-height:94dvh;min-height:0;padding:16px 16px calc(16px + var(--safe-bottom));overscroll-behavior:contain;animation:sheet-up .2s cubic-bezier(.16,1,.3,1)}.modal .actions{position:sticky;bottom:calc(-16px - var(--safe-bottom));z-index:2;background:var(--surface);margin:18px -16px calc(-16px - var(--safe-bottom));padding:12px 16px calc(12px + var(--safe-bottom));flex-wrap:wrap}.modal .actions>button{flex:1 1 auto;min-width:0}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:18px 20px;width:100%;max-width:420px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--ink-200);animation:modal-in .16s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h3{margin:0 0 14px;font-size:17px;letter-spacing:-.01em;font-weight:800}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink-100);flex-wrap:wrap}.modal-confirm{width:100%;max-width:380px}.modal-wide{max-width:560px}.perm-grid{display:grid;grid-template-columns:1fr;gap:6px;max-height:280px;overflow-y:auto;border:1px solid var(--ink-200);padding:10px;border-radius:6px;background:var(--ink-50)}@media (min-width: 600px){.perm-grid{grid-template-columns:1fr 1fr}}@media (min-width: 720px){.modal{padding:22px 24px}}.multi-list{display:flex;flex-direction:column;gap:6px}.multi-list .row{display:flex;gap:6px;align-items:center}.multi-list .row input{flex:1}.multi-list .row button{flex:0 0 44px;padding:8px;border-radius:var(--radius-sm);color:var(--ink-500);min-width:44px}.multi-list .row button:hover:not(:disabled){background:var(--danger-bg);color:var(--danger);border-color:#f3c3c3}.picker{position:relative}.picker .pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--ink-0);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:10px;box-shadow:var(--shadow-md);animation:modal-in .14s ease}.picker .pop .list{max-height:240px;overflow-y:auto;margin-top:8px;border-top:1px solid var(--ink-100);-webkit-overflow-scrolling:touch}.picker .pop .list .item{padding:10px;cursor:pointer;border-radius:var(--radius-sm);font-size:14px;transition:background var(--transition)}.picker .pop .list .item:hover{background:var(--brand-50)}.picker .pop .list .empty-row{padding:14px;text-align:center;color:var(--ink-500);font-size:13px}.picker .pop .actions{display:flex;gap:6px;margin-top:8px}.picker .selected-display{cursor:pointer;font-weight:600}.picker .selected-display.placeholder{color:var(--ink-400);font-weight:400}.print-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.print-option{border:2px solid var(--ink-200);border-radius:var(--radius-md);padding:14px;cursor:pointer;text-align:center;background:var(--surface);transition:all var(--transition);display:flex;flex-direction:column;align-items:center;min-height:90px}.print-option:hover{border-color:var(--brand-400);background:var(--brand-50);transform:translateY(-2px);box-shadow:var(--shadow-md)}.print-option .icon{font-size:26px;margin-bottom:6px}.print-option .name{font-weight:700;font-size:14px}.print-option .hint{font-size:11px;color:var(--ink-500);margin-top:2px}.print-option-col{display:flex;flex-direction:column;gap:6px}.printer-name-input{font-size:11px;padding:5px 8px;border:1px solid var(--ink-200);border-radius:var(--radius-sm, 6px);background:var(--surface);color:var(--ink-700, inherit);width:100%;box-sizing:border-box}.printer-name-input:focus{outline:none;border-color:var(--brand-400)}.toaster{position:fixed;bottom:calc(var(--bottom-nav-h) + 12px + var(--safe-bottom));left:12px;right:12px;display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none;align-items:center}@media (min-width: 880px){.toaster{bottom:18px;right:18px;left:auto;align-items:flex-end}}.toast{background:var(--ink-900);color:var(--ink-0);padding:12px 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;width:100%;max-width:380px;font-size:14px;font-weight:500;pointer-events:auto;cursor:pointer;animation:toast-in .2s ease;border-left:4px solid var(--ink-600)}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast .toast-icon{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{background:var(--success);color:#fff}.toast-error{border-left-color:var(--danger)}.toast-error .toast-icon{background:var(--danger);color:#fff}.toast-info .toast-icon{background:var(--info);color:#fff}.toast .toast-msg{flex:1;line-height:1.4}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--ink-200);border-top-color:var(--brand-500);animation:spin .8s linear infinite;display:inline-block}.spinner.lg{width:36px;height:36px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:grid;place-items:center;padding:50px;color:var(--ink-500);gap:10px}.scan-shell{display:flex;flex-direction:column;gap:14px}@media (min-width: 880px){.scan-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}}.scan-shell>*{min-width:0;max-width:100%}.scan-card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-lg);padding:22px 18px;box-shadow:var(--shadow-md)}@media (min-width: 720px){.scan-card{padding:28px 32px}}.scan-icon{width:56px;height:56px;border-radius:14px;background:var(--brand-100);color:var(--brand-700);display:grid;place-items:center;font-size:28px;margin:0 auto;border:1px solid var(--brand-200)}.scan-camera-btn{width:100%;padding:14px 16px;font-size:16px;margin-top:4px;min-height:56px}.scan-divider{display:flex;align-items:center;margin:14px 0 10px;text-align:center;color:var(--ink-400);font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.scan-divider:before,.scan-divider:after{content:"";flex:1;height:1px;background:var(--ink-200)}.scan-divider span{padding:0 12px}.scan-input{width:100%;padding:16px 18px;font-size:18px;letter-spacing:1px;font-weight:700;font-variant-numeric:tabular-nums;border:2px solid var(--brand-400);border-radius:var(--radius-md);text-align:center;background:var(--ink-0);box-shadow:0 0 0 4px #b8d94a2e}@media (max-width: 480px){.scan-input{font-size:16px!important;letter-spacing:.2px;padding:14px 12px}}.scan-input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 5px #b8d94a47}.scan-found{margin-top:14px;padding:14px 16px;background:var(--success-bg);border:1.5px solid #b9d8c4;border-radius:var(--radius-md);display:flex;align-items:center;gap:12px;animation:scan-pop .24s ease}@keyframes scan-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.scan-found .check{width:36px;height:36px;border-radius:50%;background:var(--success);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;flex-shrink:0}.scan-side{display:flex;flex-direction:column;gap:12px}.scan-history-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);font-size:14px;min-height:44px}.scan-history-row:hover{background:var(--brand-50)}@keyframes row-flash{0%{background:transparent}20%{background:#b8d94a8c}to{background:transparent}}tr.row-flash td{animation:row-flash 1.6s ease}@media (max-width: 599px){tr.row-flash{animation:row-flash 1.6s ease}}.cam-modal{width:100%;max-width:540px;padding:12px;background:#000;color:#fff;border:0}@media (max-width: 720px){.cam-modal{max-width:100vw;width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;padding:10px;display:flex;flex-direction:column}.cam-modal .cam-shell{flex:1}.cam-modal .cam-stage{flex:1;aspect-ratio:auto;min-height:0}}.cam-modal h3{color:#fff}.cam-shell{display:flex;flex-direction:column;gap:10px}.cam-stage{position:relative;width:100%;background:#000;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4 / 3}.cam-video{width:100%;height:100%;object-fit:cover;background:#000}.cam-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center}.cam-box{position:relative;width:70%;max-width:340px;aspect-ratio:2 / 1;border:1px solid rgba(255,255,255,.25);border-radius:8px;overflow:hidden}.cam-corner{position:absolute;width:28px;height:28px;border-color:var(--brand-400);border-style:solid;border-width:0}.cam-corner.tl{top:0;left:0;border-top-width:4px;border-left-width:4px;border-top-left-radius:8px}.cam-corner.tr{top:0;right:0;border-top-width:4px;border-right-width:4px;border-top-right-radius:8px}.cam-corner.bl{bottom:0;left:0;border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:8px}.cam-corner.br{bottom:0;right:0;border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:8px}.cam-laser{position:absolute;left:6%;right:6%;top:50%;height:2px;background:var(--brand-400);box-shadow:0 0 14px var(--brand-400);animation:laser 2.4s ease-in-out infinite}@keyframes laser{0%,to{top:12%}50%{top:88%}}.cam-hint{margin-top:14px;background:#0009;color:#fff;padding:6px 14px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.5px}.cam-error{position:absolute;top:12px;right:12px;bottom:12px;left:12px;background:#d24a4af2;color:#fff;border-radius:8px;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:13px}.cam-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cam-actions button{background:#ffffff14;border-color:#ffffff2e;color:#fff}.cam-actions button:hover:not(:disabled){background:#ffffff29}tr.row-overdue td{background:#fff5f5}tr.row-overdue:hover td{background:#fee2e2}.text-danger{color:#dc2626;font-weight:600}.detail-split{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.detail-split>*{min-width:0}@media (min-width: 880px){.detail-split.with-side{grid-template-columns:320px minmax(0,1fr)}}.customer-profile-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;margin-bottom:14px}.customer-profile-head .name{font-size:18px;font-weight:800;margin-top:4px}.customer-profile-head .tags-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:2px}.customer-contact-grid{display:grid;grid-template-columns:70px 1fr;row-gap:6px;column-gap:8px;font-size:13px}.customer-contact-grid a{color:var(--brand-700);font-weight:600;text-decoration:none}.customer-contact-grid a:hover{text-decoration:underline}.customer-edit-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width: 599px){.customer-edit-actions{position:sticky;bottom:0;background:var(--surface);margin:0 -14px -12px;padding:10px 14px;border-top:1px solid var(--ink-200)}.customer-edit-actions button{flex:1}}a,label,select,summary{touch-action:manipulation}@media (max-width: 719px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select,textarea{font-size:16px!important}}@media (pointer: coarse){main a:not(:has(button)){position:relative}main a:not(:has(button)):after{content:"";position:absolute;top:-9px;right:-6px;bottom:-9px;left:-6px}main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),main select{min-height:40px}table tbody tr:hover td{background:transparent}table tbody tr.row-overdue:hover td{background:#fff5f5}}
