*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;background:#f4f6fa;color:#1a2940;font-family:DM Sans Variable,DM Sans,Noto Sans Sinhala,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.app-shell{height:100vh;display:flex;flex-direction:row;overflow:hidden}.app-content{flex:1;overflow-y:auto}::-webkit-scrollbar{width:7px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d3dbe7;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#a3b8dc}a:focus-visible,summary:focus-visible{outline:3px solid #285BE0;outline-offset:3px}[role=button]:focus-visible,[role=checkbox]:focus-visible,[role=tab]:focus-visible{outline:3px solid #285BE0;outline-offset:2px}b,strong{font-weight:600}button,a,[role=button],input,select,textarea,label{touch-action:manipulation}h1,h2,h3,h4,h5,h6{text-wrap:balance}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.page-card{animation:fadeSlideUp .28s ease-out}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.status-alert{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #E2E8F0}.page-header h5{margin:0}.table-wrapper{border-radius:10px;overflow:hidden}.file-upload-zone{border:2px dashed #CBD5E1;border-radius:10px;padding:24px;text-align:center;transition:border-color .2s ease,background-color .2s ease;cursor:pointer;background:#f8fafc}.file-upload-zone:hover{border-color:#2563eb;background:#eff6ff}.file-upload-zone.has-file{border-color:#22c55e;background:#f0fdf4}.app-footer{text-align:center;padding:16px;color:#94a3b8;font-size:.75rem;border-top:1px solid #E2E8F0;background:#fff}.af-login-brand{background:#3a3a3f url(/login-hero.jpg) center / cover no-repeat}.af-login-brand:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#140c0cdb,#140c0cb8 45%,#140c0c73),linear-gradient(160deg,rgba(153,27,27,.35) 0%,transparent 55%)}.af-gradient-text{background:linear-gradient(90deg,#fff,#fca5a5,#fff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:afShine 6s linear infinite}@keyframes afShine{to{background-position:200% center}}.af-login-brand h1,.af-login-brand h1+p{text-shadow:0 2px 14px rgba(0,0,0,.45)}.af-pulse-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef444499;animation:afPulse 2s infinite}@keyframes afPulse{0%{box-shadow:0 0 #ef444499}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.af-feature{animation:fadeSlideUp .5s ease-out both}.af-login-form-side{background-image:radial-gradient(rgba(0,0,0,.06) 1px,transparent 1px);background-size:22px 22px}.af-login-card{animation:fadeSlideUp .45s ease-out both}.af-signin-btn .af-arrow{transition:transform .2s}.af-signin-btn:hover .af-arrow{transform:translate(3px)}.af-banner-in{animation:afBannerIn .45s cubic-bezier(.2,.8,.2,1) both}@keyframes afBannerIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}.af-sparkle{animation:afSparkle 2.4s ease-in-out infinite}@keyframes afSparkle{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(14deg) scale(1.12)}}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sinhala-sinhala-400-normal-B-I-Ey6b.woff2) format("woff2"),url(/assets/noto-sans-sinhala-sinhala-400-normal-C8XOyZMO.woff) format("woff");unicode-range:U+0964-0965,U+0D81-0DF4,U+1CF2,U+200C-200D,U+25CC,U+111E1-111F4}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sinhala-latin-ext-400-normal-DX3cjHFh.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-ext-400-normal-CP5rVHFU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sinhala-latin-400-normal-CewS1QCZ.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-400-normal-CqMwo2i3.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-sinhala-sinhala-500-normal-jksuUY-V.woff2) format("woff2"),url(/assets/noto-sans-sinhala-sinhala-500-normal-D2ebDhBt.woff) format("woff");unicode-range:U+0964-0965,U+0D81-0DF4,U+1CF2,U+200C-200D,U+25CC,U+111E1-111F4}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-sinhala-latin-ext-500-normal-B8PHRMY9.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-ext-500-normal-DTuWA2hs.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-sinhala-latin-500-normal-CrMHrb4z.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-500-normal-Un7_n1B0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sinhala-sinhala-600-normal-Ds44rdly.woff2) format("woff2"),url(/assets/noto-sans-sinhala-sinhala-600-normal-DJCf5vdU.woff) format("woff");unicode-range:U+0964-0965,U+0D81-0DF4,U+1CF2,U+200C-200D,U+25CC,U+111E1-111F4}@font-face{font-family:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sinhala-latin-ext-600-normal-KywLvIv6.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-ext-600-normal-BZzCGw3A.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans Sinhala;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sinhala-latin-600-normal-D6FNRLlM.woff2) format("woff2"),url(/assets/noto-sans-sinhala-latin-600-normal-BdFTtdOd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,DM Sans,Noto Sans Sinhala,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45;font-weight:400;color-scheme:light;color:#1a2940;background-color:#f4f6fa;font-synthesis:none;font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}
