.hero-scene{transition:background 90s ease}@keyframes heroReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hero-wrapper{animation:heroReveal .7s cubic-bezier(.16,1,.3,1)}@keyframes hazeDrift{0%,to{opacity:.12;transform:translate(0) scaleX(1)}50%{opacity:.2;transform:translate(1.5%) scaleX(1.03)}}.hero-haze{animation:hazeDrift 18s ease-in-out infinite}@keyframes starTwinkle{0%,to{opacity:var(--s-max, .9);transform:scale(1)}40%{opacity:calc(var(--s-max, .9) * .15);transform:scale(.5)}70%{opacity:calc(var(--s-max, .9) * .6);transform:scale(.85)}}.hero-star{animation:starTwinkle var(--s-dur, 2.5s) ease-in-out infinite;animation-delay:var(--s-delay, 0s);transform-origin:center}@keyframes sunCorona{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.55}50%{transform:translate(-50%,-50%) scale(1.12);opacity:.75}}@keyframes sunInner{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}@keyframes sunRaysRotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.hero-sun-corona{animation:sunCorona 4s ease-in-out infinite}.hero-sun-disc{animation:sunInner 4s ease-in-out infinite}.hero-sun-rays{animation:sunRaysRotate 40s linear infinite}@keyframes lightRayPulse{0%,to{opacity:0}20%,80%{opacity:var(--ray-max, .08)}}.hero-ray{animation:lightRayPulse 5s ease-in-out infinite;animation-delay:var(--ray-delay, 0s)}@keyframes moonGlow{0%,to{filter:drop-shadow(0 0 10px rgba(210,230,255,.55)) drop-shadow(0 0 25px rgba(180,210,255,.25))}50%{filter:drop-shadow(0 0 18px rgba(210,230,255,.75)) drop-shadow(0 0 40px rgba(180,210,255,.35))}}.hero-moon{animation:moonGlow 5s ease-in-out infinite}@keyframes cloudDriftA{0%{transform:translate(-140%) translateY(0)}48%{transform:translate(100vw) translateY(-5px)}to{transform:translate(110vw) translateY(0)}}@keyframes cloudDriftB{0%{transform:translate(-120%) translateY(0)}50%{transform:translate(100vw) translateY(4px)}to{transform:translate(112vw) translateY(0)}}@keyframes cloudDriftC{0%{transform:translate(-100%) translateY(0)}52%{transform:translate(100vw) translateY(-3px)}to{transform:translate(108vw) translateY(0)}}@keyframes cloudDriftD{0%{transform:translate(-160%) translateY(0)}46%{transform:translate(100vw) translateY(5px)}to{transform:translate(115vw) translateY(0)}}@keyframes heroWingLeft{0%,to{transform:rotate(-24deg)}50%{transform:rotate(16deg)}}@keyframes heroWingRight{0%,to{transform:rotate(24deg)}50%{transform:rotate(-16deg)}}.hero-wing-l{transform-box:fill-box;transform-origin:100% 100%;animation:heroWingLeft var(--flap, .52s) ease-in-out infinite;animation-delay:var(--flap-delay, 0s)}.hero-wing-r{transform-box:fill-box;transform-origin:0% 100%;animation:heroWingRight var(--flap, .52s) ease-in-out infinite;animation-delay:var(--flap-delay, 0s)}@keyframes flockDrift{0%{transform:translate(110%) translateY(0)}50%{transform:translate(40%) translateY(-8px)}to{transform:translate(-22%) translateY(0)}}.hero-flock{animation:flockDrift 90s cubic-bezier(.45,0,.55,1) infinite}@keyframes birdFloat{0%,to{transform:translateY(0)}50%{transform:translateY(var(--float-y, -4px))}}.hero-bird{animation:birdFloat var(--float-dur, 3.5s) ease-in-out infinite;animation-delay:var(--float-delay, 0s)}@keyframes planeCross{0%{transform:translate(112vw);opacity:0}0.5%{opacity:1}6%{transform:translate(-18vw);opacity:1}6.4%{opacity:0}6.41%{transform:translate(112vw)}to{transform:translate(112vw);opacity:0}}.hero-plane{animation:planeCross 600s linear infinite}@keyframes contrailGrow{0%{opacity:.6;width:4px}60%{opacity:.35}to{opacity:0;width:110px}}.hero-contrail{animation:contrailGrow 3.5s ease-out infinite}@keyframes windowFlicker{0%,91%,94%,to{opacity:1}92%,93%{opacity:0}}.hero-window-blink{animation:windowFlicker calc(8s + var(--w-offset, 0s)) ease infinite;animation-delay:var(--w-delay, 0s)}@keyframes statReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-stat-item{animation:statReveal .5s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--stat-delay, 0ms)}@keyframes textReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-greeting{animation:textReveal .6s cubic-bezier(.16,1,.3,1) .15s both}.hero-title{animation:textReveal .6s cubic-bezier(.16,1,.3,1) .28s both}.hero-date-txt{animation:textReveal .6s cubic-bezier(.16,1,.3,1) .4s both}@keyframes liveDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.7)}}.hero-live-dot{animation:liveDot 2.2s ease-in-out infinite}.hero-stat-pill{transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease}.hero-stat-pill:hover{transform:translateY(-3px) scale(1.02)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes springDown{0%{opacity:0;transform:translateY(-8px) scaleY(.94)}60%{opacity:1;transform:translateY(2px) scaleY(1.01)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes modalSpring{0%{opacity:0;transform:scale(.91) translateY(14px)}55%{opacity:1;transform:scale(1.012) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes backdropReveal{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulseRing{0%{transform:scale(1);opacity:.9}60%{transform:scale(2.4);opacity:0}to{transform:scale(2.4);opacity:0}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.4}}@keyframes dayIn{0%{opacity:0;transform:scale(.35)}to{opacity:1;transform:scale(1)}}@keyframes rowIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes statNumPop{0%{opacity:0;transform:scale(.7) translateY(4px)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes borderPulse{0%,to{opacity:.6}50%{opacity:1}}.dash-stat-pill{animation:fadeUp .45s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay, 0ms);transition:transform .18s ease,box-shadow .18s ease}.dash-stat-pill:hover{transform:translateY(-3px);box-shadow:0 8px 28px #0000001a!important}.dash-stat-num{animation:statNumPop .55s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay, 0ms)}.dash-row-main{cursor:pointer;transition:background .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none;position:relative}.dash-row-main:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-brand);opacity:0;transition:opacity .15s ease;border-radius:0 2px 2px 0}.dash-row-main:hover{background:linear-gradient(90deg,#9c4db10d,#9c4db103)}.dash-row-main:hover:before{opacity:1}.dash-row-entry{animation:rowIn .28s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--row-idx, 0) * 35ms)}.dash-row-detail{animation:springDown .28s cubic-bezier(.16,1,.3,1);transform-origin:top center}.dash-chevron{display:inline-flex;align-items:center;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.dash-chevron.open{transform:rotate(90deg)}.status-dot-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;flex-shrink:0}.status-dot-core{width:7px;height:7px;border-radius:50%;animation:pulseDot 2s infinite ease-in-out;position:relative;z-index:1}.status-dot-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;animation:pulseRing 2s infinite ease-out}.day-sq{width:12px;height:12px;border-radius:3px;display:inline-block;flex-shrink:0;cursor:default;animation:dayIn .22s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--sq-delay, 0ms);transition:transform .1s ease,box-shadow .1s ease}.day-sq:hover{transform:scale(1.65);z-index:1;position:relative;box-shadow:0 2px 6px #00000038}.dash-modal-backdrop{animation:backdropReveal .2s ease forwards}.dash-modal-box{animation:modalSpring .3s cubic-bezier(.16,1,.3,1)}.cal-day{border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;font-size:11px;font-weight:600;cursor:default;transition:transform .12s ease,box-shadow .12s ease}.cal-day:hover{transform:scale(1.14);z-index:2;box-shadow:0 3px 10px #0000002e}.dash-skeleton{background:linear-gradient(90deg,#f1f5f9,#e8edf5,#f1f5f9 80%);background-size:600px 100%;animation:shimmer 1.4s infinite linear;border-radius:5px}.dash-btn-detail{border:none;background:linear-gradient(135deg,var(--color-brand),var(--color-brand-dark));color:#fff;font-size:11px;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer;transition:opacity .15s ease,transform .12s ease,box-shadow .15s ease;box-shadow:0 2px 8px #9c4db159;letter-spacing:.02em}.dash-btn-detail:hover{opacity:.9;transform:translate(2px);box-shadow:0 4px 14px #9c4db173}.dash-search:focus{outline:none;border-color:var(--color-brand)!important;box-shadow:0 0 0 3px #9c4db11f,0 1px 2px #0000000f}.dash-month-btn{border:none;background:none;font-size:18px;color:var(--color-text-muted);cursor:pointer;padding:0 5px;line-height:1;transition:color .15s ease,transform .12s ease;display:flex;align-items:center}.dash-month-btn:hover{color:var(--color-brand);transform:scale(1.2)}.dash-table-scroll{overflow-y:auto;max-height:calc(100vh - 264px)}.dash-table-scroll::-webkit-scrollbar{width:4px}.dash-table-scroll::-webkit-scrollbar-track{background:transparent}.dash-table-scroll::-webkit-scrollbar-thumb{background:#ddd3e8;border-radius:2px}.dash-table-scroll::-webkit-scrollbar-thumb:hover{background:#c4a8d8}.badge-primary{display:inline-flex;align-items:center;font-size:9px;font-weight:800;letter-spacing:.07em;padding:2px 7px;border-radius:10px;background:linear-gradient(135deg,#9c4db1,#7a3d8a);color:#fff;box-shadow:0 1px 5px #9c4db166;white-space:nowrap}.badge-cover{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:10px;border:1.5px dashed rgba(156,77,177,.55);color:var(--color-brand);background:var(--color-brand-light);white-space:nowrap}@keyframes clientCardIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.dash-compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px}.dash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 860px){.dash-two-col{grid-template-columns:1fr}.dash-compact-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@media (max-width: 520px){.dash-compact-grid{grid-template-columns:repeat(2,1fr)}}.dash-empty{padding:48px 0;text-align:center;color:#94a3b8;font-size:13px;animation:fadeIn .3s ease}.dash-empty span{display:block;font-size:32px;margin-bottom:8px;opacity:.35}:root{--color-brand: #9c4db1;--color-brand-dark: #7a3d8a;--color-brand-light: #f3e8f7;--color-brand-wordmark:#9c4db1;--color-primary: var(--color-brand);--color-primary-dark: var(--color-brand-dark);--color-primary-light:var(--color-brand-light);--color-accent: #e67e22;--color-danger: #e74c3c;--color-warning: #f39c12;--color-success: #27ae60;--color-info: #2980b9;--color-bg: #f5f6fa;--color-surface: #ffffff;--color-border: #e1e4e8;--color-text: #2d3748;--color-text-muted: #718096;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-sinhala: "Noto Sans Sinhala", "Iskoola Pota", "Nirmala UI", "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px rgba(0,0,0,.07);--shadow-lg: 0 10px 15px rgba(0,0,0,.1);--content-max-width: 100%;--sidebar-width: 240px;--topbar-height: 60px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-nav-drawer: 1024px;--z-sidebar-backdrop: 199;--z-sidebar-drawer: 200;--z-topbar: 99}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;-webkit-text-size-adjust:100%}#root{min-height:100%;min-height:100dvh;overflow-x:hidden}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.sinhala-text,textarea.sinhala-input{font-family:var(--font-sinhala);line-height:1.65;font-size:var(--text-base)}.page-scroll-x{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 380px){.app-topbar-email{display:none}}@media (max-width: 1023px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:max(16px,1rem)}}
