@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#0b2545;--blue:#0077b6;--blue-focus:#0090c9;--cyan:#00b4d8;--light:#90e0ef;--pale:#edf3fa;--ink:#14304e;--muted:#5f7089;--card:#fff;--border:#dde7f2;--grey-bg:#f2f6fb;--red:#d3384a;--red-bg:#fdecee;--amber:#b45309;--amber-bg:#fdf2dd;--green:#0e8a52;--green-bg:#e3f6ec;--blue-bg:#e3f4fc;--shadow-sm:0 1px 2px #0b25450f;--shadow:0 1px 2px #0b25450d, 0 10px 28px -8px #0b25451f;--shadow-lift:0 2px 4px #0b25450f, 0 16px 40px -10px #0b25452e;--radius:16px;--grad-action:linear-gradient(135deg, #0077b6 0%, #0095cd 55%, #00b4d8 100%);--grad-deep:linear-gradient(140deg, #081f3d 0%, #0b3a66 48%, #0077b6 100%);--grad-bar:linear-gradient(90deg, #0077b6, #00b4d8 70%, #90e0ef);--font-ui:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Fraunces Variable", "IBM Plex Sans", Georgia, serif;font-family:var(--font-ui)}*{box-sizing:border-box}body{background-color:var(--pale);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(1100px 520px at 88% -12%,#00b4d81c,#0000 60%),radial-gradient(900px 620px at -12% 28%,#0077b614,#0000 55%),radial-gradient(700px 420px at 55% 115%,#90e0ef24,#0000 60%);margin:0;font-size:14px;line-height:1.55}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}a{color:var(--blue)}::selection{background:#00b4d840}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#0b25452e padding-box content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:#0b254552}::-webkit-scrollbar-track{background:0 0}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)scale(.99)}to{opacity:1;transform:none}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:.32s cubic-bezier(.2,.7,.3,1) both pageIn}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.layout{min-height:100vh;display:flex}.sidebar{color:#fff;background-color:#081c33;background-image:radial-gradient(420px 260px at 110% -4%,#00b4d833,#0000 62%),radial-gradient(500px 500px at -30% 108%,#0077b638,#0000 60%),linear-gradient(186deg,#071a31 0%,#0a2949 58%,#0c3153 100%);flex-direction:column;flex-shrink:0;width:248px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:11px;padding:20px 18px 16px;display:flex}.sidebar-brand img{object-fit:contain;background:#fff;border-radius:12px;width:40px;height:40px;padding:4px;box-shadow:0 4px 14px #00000059,0 0 0 1px #ffffff1f}.sidebar-brand .brand-name{letter-spacing:.14em;font-size:16px;font-weight:700}.sidebar-brand .brand-sub{letter-spacing:.02em;color:var(--light);opacity:.85;font-size:11px}.sidebar nav{scrollbar-width:thin;scrollbar-color:#90e0ef40 transparent;flex-direction:column;flex:1;gap:2px;padding:10px 12px 14px;display:flex;overflow-y:auto}.sidebar nav::-webkit-scrollbar-thumb{background-color:#90e0ef38}.nav-item{color:#b7c9dd;letter-spacing:.01em;border-radius:10px;align-items:center;gap:11px;padding:8px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .16s,color .16s;display:flex;position:relative}.nav-item svg{opacity:.8;flex-shrink:0;transition:opacity .16s,color .16s}.nav-item:hover{color:#fff;background:#90e0ef17}.nav-item:hover svg{opacity:1}.nav-item.active{box-shadow:inset 3px 0 0 var(--cyan);color:#fff;background:linear-gradient(90deg,#00b4d83d,#00b4d80d);font-weight:600}.nav-item.active svg{opacity:1;color:var(--light)}.nav-section{letter-spacing:.14em;text-transform:uppercase;color:#90e0ef8c;border-top:1px solid #90e0ef24;margin:16px 12px 6px;padding-top:14px;font-size:10.5px;font-weight:700}.sidebar-footer{border-top:1px solid #90e0ef24;padding:12px 12px 16px}.signout-btn{color:#f1a5ae;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;width:100%;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .16s,color .16s;display:flex}.signout-btn:hover{color:#ffd2d8;background:#d3384a38}.content{flex:1;min-width:0;max-width:1320px;margin:0 auto;padding:30px 36px 70px}.mobile-topbar,.sidebar-backdrop{display:none}.hamburger-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.hamburger-btn:active{background:#ffffff1f}.hamburger-icon{flex-direction:column;gap:4px;width:20px;display:inline-flex}.hamburger-icon span{background:currentColor;border-radius:2px;height:2px}.mobile-topbar-logo{object-fit:contain;background:#fff;border-radius:8px;width:28px;height:28px;padding:2px}.mobile-topbar-title{letter-spacing:.12em;font-size:14px;font-weight:700}.page-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--navy);margin:0 0 4px;font-size:30px;font-weight:620;line-height:1.15}.page-subtitle{color:var(--muted);margin:0 0 22px;font-size:14px}.section-title{color:var(--navy);letter-spacing:-.005em;margin:0 0 12px;font-size:15px;font-weight:600}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #dde7f2e6;padding:18px 20px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-row{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin-bottom:22px;display:grid}.stat-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #dde7f2e6;padding:15px 17px 14px;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--grad-bar);opacity:.85;height:3px;position:absolute;inset:0 0 auto}.stat-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.stat-row>*,.stat-grid>*{animation:.45s cubic-bezier(.2,.7,.3,1) both riseIn}.stat-row>:nth-child(2),.stat-grid>:nth-child(2){animation-delay:40ms}.stat-row>:nth-child(3),.stat-grid>:nth-child(3){animation-delay:80ms}.stat-row>:nth-child(4),.stat-grid>:nth-child(4){animation-delay:.12s}.stat-row>:nth-child(5),.stat-grid>:nth-child(5){animation-delay:.16s}.stat-row>:nth-child(6),.stat-grid>:nth-child(6){animation-delay:.2s}.stat-row>:nth-child(7),.stat-grid>:nth-child(7){animation-delay:.24s}.stat-row>:nth-child(n+8),.stat-grid>:nth-child(n+8){animation-delay:.28s}.stat-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.stat-ico{background:var(--blue-bg);width:34px;height:34px;color:var(--blue);border-radius:10px;flex-shrink:0;place-items:center;display:inline-grid}.ico-green{background:var(--green-bg);color:var(--green)}.ico-amber{background:var(--amber-bg);color:var(--amber)}.ico-red{background:var(--red-bg);color:var(--red)}.ico-cyan{color:#0187a8;background:#dff7fc}.ico-slate{background:var(--grey-bg);color:var(--muted)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11.5px;font-weight:600}.stat-value{font-family:var(--font-display);color:var(--navy);letter-spacing:-.01em;font-variant-numeric:lining-nums;margin-top:6px;font-size:27px;font-weight:600;line-height:1.2}.stat-sub,.stat-card .muted{color:var(--muted);margin-top:3px;font-size:12px}.stat-extra{color:var(--blue);font-size:14px;font-weight:600}.kpi-hero{border-radius:var(--radius);background-color:#0b3a66;background-image:radial-gradient(360px 200px at 88% -20%, #00b4d88c, transparent 65%), radial-gradient(300px 220px at -8% 112%, #00b4d84d, transparent 60%), var(--grad-deep);color:#fff;border:none;flex-direction:column;grid-area:span 2/span 2;justify-content:space-between;padding:16px 18px 14px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 4px #081f3d2e,0 18px 44px -12px #081f3d8c}.kpi-hero .stat-label{color:#d6eefbd9}.kpi-hero .stat-value{color:#fff;font-size:33px}.kpi-hero .stat-sub{color:#d6eefbb8}.kpi-today{text-align:right}.kpi-today .t-label{letter-spacing:.08em;text-transform:uppercase;color:#d6eefbbf;font-size:10.5px;font-weight:600}.kpi-today .t-value{font-family:var(--font-display);color:var(--light);font-size:17px;font-weight:600}.spark-wrap{margin-top:12px}.spark-caption{letter-spacing:.04em;color:#d6eefb99;justify-content:space-between;gap:10px;margin-top:4px;font-size:10.5px;display:flex}@media (width<=560px){.kpi-hero{grid-column:auto}}.btn{color:#27415f;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #d6e2ef;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-size:13.5px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,transform .12s;display:inline-flex}.btn:hover{background:#f6fafe;border-color:#b9d3e6}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #00b4d859}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--blue);background-image:var(--grad-action);color:#fff;border:none;border-radius:999px;padding:9px 19px;font-weight:600;box-shadow:inset 0 1px #ffffff38,0 6px 16px -6px #0077b68c}.btn-primary:hover{background-color:var(--blue-focus);filter:brightness(1.07);border-color:#0000;box-shadow:inset 0 1px #ffffff38,0 8px 20px -6px #0077b6a6}.btn-success{background-color:var(--green);color:#fff;background-image:linear-gradient(135deg,#0e8a52,#16a765);border:none;box-shadow:inset 0 1px #fff3,0 6px 16px -6px #0e8a5280}.btn-danger{background:var(--red-bg);color:var(--red);box-shadow:none;border:1px solid #f6cdd2}.btn-danger:hover{background:#fbdde1;border-color:#eeb4bc}.btn-danger-solid{background-color:var(--red);color:#fff;background-image:linear-gradient(135deg,#d3384a,#e25563);border:none}.btn-ghost{color:var(--blue);box-shadow:none;background:0 0;border:none}.btn-ghost:hover{background:#0096cd17;border-color:#0000}.btn-sm{border-radius:8px;padding:5px 11px;font-size:12.5px}.btn-sm.btn-primary{border-radius:999px;padding:6px 14px}.pill-row{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.filter-pill{border:1px solid var(--border);color:var(--muted);letter-spacing:.02em;background:#fffc;border-radius:999px;padding:6px 15px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .12s}.filter-pill:hover{color:var(--ink);border-color:#b9d3e6}.filter-pill:active{transform:scale(.96)}.filter-pill.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 4px 12px -4px #0b254580}.status-pill{letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-block}.status-amber{background:var(--amber-bg);color:var(--amber)}.status-blue{background:var(--blue-bg);color:#0369a1}.status-green{background:var(--green-bg);color:var(--green)}.status-red{background:var(--red-bg);color:var(--red)}.status-grey{background:var(--grey-bg);color:var(--muted)}.badge{letter-spacing:.01em;background:var(--grey-bg);color:var(--muted);text-transform:capitalize;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.badge-customer{background:var(--blue-bg);color:#0369a1}.badge-supplier{background:var(--amber-bg);color:var(--amber)}.badge-both{background:var(--green-bg);color:var(--green)}.badge-gst{background:var(--blue-bg);color:#0369a1}.badge-credit{background:var(--amber-bg);color:var(--amber)}.badge-draft{background:var(--grey-bg);color:var(--muted)}.badge-final{background:var(--green-bg);color:var(--green)}.badge-cancelled{background:var(--red-bg);color:var(--red)}.badge-in{background:var(--green-bg);color:var(--green)}.badge-out{background:var(--amber-bg);color:var(--amber)}.amount-due{color:var(--red);font-weight:600}.amount-credit{color:var(--green);font-weight:600}.table-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;color:#74889f;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:11px;font-weight:650}.data-table td{vertical-align:top;font-variant-numeric:tabular-nums;border-bottom:1px solid #eef3f9;padding:10px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover{background:#f7fbfe}.cell-link{color:var(--blue);font-weight:600;text-decoration:none}.cell-link:hover{text-underline-offset:3px;text-decoration:underline}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{color:#33506f;font-size:12.5px;font-weight:600}.input,.field input,.field select,.field textarea{color:var(--ink);background:#fcfdff;border:1px solid #d3dfec;border-radius:10px;width:100%;padding:9px 12px;transition:border-color .15s,box-shadow .15s,background .15s}.field textarea{resize:vertical;min-height:80px}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);background:#fff;outline:none;box-shadow:0 0 0 3px #00b4d82e}.search-input{background:#ffffffe6;border:1px solid #d3dfec;border-radius:999px;flex:1;min-width:180px;max-width:320px;padding:8px 15px;transition:border-color .15s,box-shadow .15s}.filter-select{background:#ffffffe6;border:1px solid #d3dfec;border-radius:10px;padding:8px 10px}.search-input:focus,.filter-select:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #00b4d82e}.input-error,.input-error:focus{border-color:var(--red)!important;box-shadow:0 0 0 3px #d3384a29!important}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:inline-flex}.checkbox-label input{width:auto;accent-color:var(--blue)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 16px;display:grid}.form-grid .field-span{grid-column:1/-1}.loading,.empty{color:var(--muted);text-align:center;padding:40px 24px}.error-banner{background:var(--red-bg);color:var(--red);border:1px solid #f6cdd2;border-radius:12px;margin-bottom:16px;padding:10px 14px;font-weight:500}.page-note{color:#045f86;background:linear-gradient(90deg,#00b4d81a,#00b4d808);border:1px solid #0096cd40;border-radius:12px;margin-bottom:18px;padding:10px 14px;font-size:13px;font-weight:500}.spinner{border:3px solid #00b4d833;border-top-color:var(--cyan);border-radius:50%;width:26px;height:26px;margin:0 auto 10px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{background-color:#081f3d;background-image:radial-gradient(900px 600px at 18% -12%,#00b4d847,#0000 58%),radial-gradient(820px 560px at 96% 108%,#0077b666,#0000 60%),linear-gradient(158deg,#071a31 0%,#0b3155 52%,#0d3f6b 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.center-screen:before,.center-screen:after{content:"";filter:blur(70px);opacity:.5;pointer-events:none;border-radius:50%;animation:16s ease-in-out infinite alternate drift;position:absolute}.center-screen:before{background:radial-gradient(circle,#00b4d880,#0000 70%);width:420px;height:420px;top:-100px;left:-120px}.center-screen:after{background:radial-gradient(circle,#90e0ef59,#0000 70%);width:520px;height:520px;animation-delay:-8s;bottom:-180px;right:-160px}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(60px,40px)scale(1.15)}}.center-screen .muted{color:#d6eefbcc}.center-screen .spinner{border-color:#90e0ef40;border-top-color:var(--light)}.modal-overlay{-webkit-backdrop-filter:blur(3px);z-index:50;background:#07162a8c;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out both overlayIn;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:100%;max-width:560px;max-height:90vh;padding:22px 24px;animation:.24s cubic-bezier(.2,.7,.3,1) both modalIn;overflow-y:auto;box-shadow:0 32px 90px #04122673}.modal-wide{max-width:760px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h3{font-family:var(--font-display);color:var(--navy);letter-spacing:-.01em;margin:0;font-size:19px;font-weight:620}.modal-close{background:var(--grey-bg);width:30px;height:30px;color:var(--muted);border:none;border-radius:999px;font-size:15px;line-height:1;transition:background .15s,color .15s}.modal-close:hover{color:var(--ink);background:#e4ecf5}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.confirm-modal{max-width:440px}.confirm-body{white-space:pre-wrap;color:var(--ink);font-size:14px;line-height:1.55}.img-modal img{border-radius:12px;max-width:100%;max-height:76vh;margin:0 auto;display:block}.login-card{background:#fff;border-radius:22px;width:100%;max-width:420px;animation:.4s cubic-bezier(.2,.7,.3,1) both modalIn;position:relative;overflow:hidden;box-shadow:0 40px 100px #030e1e8c,0 0 0 1px #ffffff14}.login-hero{background-color:#0b3a66;background-image:radial-gradient(320px 180px at 85% -18%, #00b4d880, transparent 62%), radial-gradient(260px 200px at -5% 115%, #00b4d847, transparent 60%), var(--grad-deep);color:#fff;text-align:center;padding:30px 28px 26px;position:relative}.login-hero img{object-fit:contain;background:#fff;border-radius:16px;width:64px;height:64px;margin-bottom:12px;padding:7px;box-shadow:0 10px 26px #00000059}.login-hero h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 4px;font-size:24px;font-weight:620}.login-hero p{color:#d6eefbcc;margin:0;font-size:13px}.login-body{padding:26px 28px 30px}.login-hint{color:var(--muted);text-align:center;margin-top:12px;font-size:12.5px}.install-list{flex-direction:column;gap:16px;display:flex}.install-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:1px solid #dde7f2e6;padding:18px 20px}.install-top{gap:16px;display:flex}.install-selfie{object-fit:cover;cursor:zoom-in;background:var(--grey-bg);border:1px solid var(--border);border-radius:12px;flex-shrink:0;width:92px;height:92px}.install-main{flex:1;min-width:0}.install-code{color:var(--blue);letter-spacing:.03em;font-size:16px;font-weight:700}.install-meta{color:var(--muted);margin-top:3px;font-size:13px}.install-meta strong{color:var(--ink)}.install-note{background:var(--grey-bg);color:var(--ink);border-radius:8px;margin-top:6px;padding:7px 10px;font-size:13px}.ai-banner{border-radius:10px;flex-wrap:wrap;align-items:flex-start;gap:10px;margin-top:12px;padding:10px 14px;font-size:13px;display:flex}.ai-banner strong{white-space:nowrap}.ai-verified{background:var(--green-bg);color:var(--green)}.ai-mismatch{background:var(--red-bg);color:var(--red)}.ai-skipped{background:var(--grey-bg);color:var(--muted)}.ai-processing{background:var(--amber-bg);color:var(--amber);align-items:center}.install-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.reward-inline{align-items:center;gap:8px;display:flex}.reward-inline input{background:#fcfdff;border:1px solid #d3dfec;border-radius:10px;width:130px;padding:8px 10px}.reward-amount{color:var(--navy);font-size:15px;font-weight:700}.model-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.model-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:1px solid #dde7f2e6;flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.model-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.model-photo{object-fit:cover;background:var(--grey-bg);width:100%;height:160px}.model-photo-placeholder{width:100%;height:160px;color:var(--navy);background:linear-gradient(135deg, #dff2fb, var(--light));justify-content:center;align-items:center;font-weight:700;display:flex}.model-body{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex}.model-name{color:var(--navy);font-size:15px;font-weight:700}.model-desc{color:var(--muted);flex:1;font-size:13px}.ref-count{color:var(--blue);font-size:12.5px;font-weight:600}.thumb-row{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.thumb-item{position:relative}.thumb-item img{object-fit:cover;border:1px solid var(--border);border-radius:9px;width:72px;height:72px}.thumb-remove{background:var(--red);color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:21px;height:21px;padding:0;font-size:11px;line-height:1;display:flex;position:absolute;top:-7px;right:-7px}.marketing-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;display:grid}.marketing-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:1px solid #dde7f2e6;flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.marketing-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.marketing-card>img{object-fit:cover;background:var(--grey-bg);width:100%;height:150px}.marketing-body{flex-direction:column;flex:1;gap:4px;padding:12px 14px 14px;display:flex}.batch-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.code-chip-list{flex-direction:column;gap:6px;max-height:50vh;display:flex;overflow-y:auto}.code-row{border:1px solid var(--grey-bg);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;display:flex}.print-screen{z-index:100;background:#fff;position:fixed;inset:0;overflow-y:auto}.print-toolbar{background:var(--navy);color:#fff;z-index:10;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0}.print-hint{opacity:.7;margin-top:2px;font-size:11.5px}.print-guides-toggle{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.qr-sheet-stack{background:#eef2f6;flex-direction:column;align-items:center;gap:10mm;padding:10mm 0;display:flex}.qr-sheet-page{box-sizing:border-box;break-after:page;page-break-after:always;background:#fff;width:148mm;height:210mm;padding:5.95mm 8mm;box-shadow:0 2px 12px #0f172a2e}.qr-sheet-page:last-child{break-after:auto;page-break-after:auto}.qr-sheet-grid{grid-template-columns:repeat(3,43mm);grid-auto-rows:48.4mm;place-content:start center;gap:1.5mm;display:grid}.qr-sticker{break-inside:avoid;page-break-inside:avoid;display:block}@media print{@page{size:A5 portrait;margin:0}body{background:#fff}.layout,.print-toolbar,.modal-overlay{display:none!important}.print-screen{position:static;overflow:visible}.qr-sheet-stack{background:#fff;gap:0;padding:0;display:block}.qr-sheet-page{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.detail-header .page-title{margin-bottom:4px}.card.pad{margin-bottom:0}.lines-table input,.lines-table select{background:#fcfdff;border:1px solid #d3dfec;border-radius:8px;width:100%;padding:6px 8px;transition:border-color .15s,box-shadow .15s}.lines-table input:focus,.lines-table select:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #00b4d829}.stock-hint{margin-top:2px;font-size:11px}.num-stepper{align-items:stretch;width:100%;min-width:96px;display:flex}.num-stepper input{text-align:center;flex:auto;min-width:40px;border-left:0!important;border-right:0!important;border-radius:0!important}.num-stepper-btn{width:26px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d3dfec;flex:none;padding:0;font-size:16px;line-height:1}.num-stepper-btn:first-child{border-radius:8px 0 0 8px}.num-stepper-btn:last-child{border-radius:0 8px 8px 0}.num-stepper-btn:hover{background:var(--grey-bg)}.num-stepper-btn:active{transform:scale(.92)}.toggle-row{background:#fff;border:1px solid #d3dfec;border-radius:999px;display:flex;overflow:hidden}.toggle-opt{color:var(--muted);background:0 0;border:none;flex:1;padding:8px 10px;font-weight:500;transition:background .15s,color .15s}.toggle-opt.active{background-image:var(--grad-action);color:#fff;font-weight:600}.toggle-opt:disabled{opacity:.45;cursor:not-allowed}.totals-panel{font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;max-width:320px;margin-top:14px;margin-left:auto;display:flex}.totals-panel>div{justify-content:space-between;gap:24px;display:flex}.totals-panel .grand{border-top:2px solid var(--navy);color:var(--navy);margin-top:6px;padding-top:8px;font-size:17px;font-weight:700}.editor-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 8px;display:flex}.alloc-box{border:1px solid var(--border);background:#f9fcff;border-radius:12px;margin-top:8px;padding:12px 14px}.alloc-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.alloc-input{text-align:right;background:#fff;border:1px solid #d3dfec;border-radius:8px;width:120px;padding:6px 8px}.alloc-summary{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px;font-weight:600}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.dash-grid{grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=980px){.dash-grid{grid-template-columns:1fr}}.global-search{margin:2px 14px 10px;position:relative}.global-search input{color:#fff;background:#ffffff14;border:1px solid #90e0ef38;border-radius:999px;width:100%;padding:8px 14px;font-size:13px;transition:background .15s,border-color .15s}.global-search input::placeholder{color:#b7c9dd8c}.global-search input:focus{border-color:var(--cyan);background:#ffffff24;outline:none;box-shadow:0 0 0 3px #00b4d840}.search-results{background:var(--card);width:300px;max-height:420px;color:var(--ink);border:1px solid var(--border);z-index:60;border-radius:14px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 24px 60px #04122666}.search-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 10px 3px;font-size:10.5px;font-weight:700}.search-item{text-align:left;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;width:100%;padding:7px 10px;display:flex}.search-item:hover{background:var(--blue-bg)}.search-label{color:var(--navy);font-weight:600}.search-sub{color:var(--muted);font-size:12px}.search-empty{color:var(--muted);padding:12px;font-size:13px}.picker{position:relative}.picker input{background:#fcfdff;border:1px solid #d3dfec;border-radius:10px;width:100%;padding:8px 10px;transition:border-color .15s,box-shadow .15s}.picker input:focus{border-color:var(--cyan);background:#fff;outline:none;box-shadow:0 0 0 3px #00b4d829}.picker input::placeholder{color:#9db0c4}.picker-menu{border:1px solid var(--border);z-index:40;background:#fff;border-radius:12px;width:max-content;min-width:100%;max-width:380px;max-height:320px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 20px 50px #04122638}.picker-item{text-align:left;width:100%;color:var(--ink);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 10px;font-size:13.5px;display:flex}.picker-item.hi{background:var(--blue-bg)}.picker-action{color:var(--blue);font-weight:600}.picker-label{min-width:0}.picker-sub{color:var(--muted);font-size:12px}.picker-right{color:var(--muted);white-space:nowrap;font-size:12px}.picker-empty{color:var(--muted);padding:10px 12px;font-size:13px}.quick-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.sku-input{background:#fcfdff;border:1px solid #d3dfec;border-radius:999px;width:220px;padding:7px 14px;font-size:13px}.sku-input:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #00b4d829}.chip-btn{color:var(--ink);background:#fff;border:1px solid #d3dfec;border-radius:999px;padding:5px 12px;font-size:12.5px;transition:transform .12s,background .15s,border-color .15s,color .15s}.chip-btn:hover{background:var(--blue-bg);border-color:var(--cyan);color:var(--blue)}.chip-btn:active{transform:scale(.95)}@media (width<=860px){.layout{flex-direction:column}.mobile-topbar{z-index:45;color:#fff;background:linear-gradient(90deg,#071a31,#0b2c4f);align-items:center;gap:12px;height:54px;padding:0 14px;display:flex;position:sticky;top:0;box-shadow:0 6px 18px -8px #04122680}.sidebar{z-index:60;width:272px;max-width:84vw;height:100vh;transition:transform .26s cubic-bezier(.2,.7,.3,1);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 60px #00000080}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{z-index:55;-webkit-backdrop-filter:blur(2px);background:#040e1c80;display:block;position:fixed;inset:0}.content{padding:20px 16px 64px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-wrap>table.data-table{min-width:640px}}@media (width<=700px){.content{padding:18px 14px 90px}.editor-actions{-webkit-backdrop-filter:blur(8px);z-index:10;border-top:1px solid var(--border);background:#edf3faeb;padding:10px 0;position:sticky;bottom:0}.page-title{font-size:25px}.stat-value{font-size:24px}.kpi-hero .stat-value{font-size:28px}}
