*,:before,:after{box-sizing:border-box}:root,[data-theme=light]{--bg:#f7fbff;--surface:#ffffffdb;--card:#fffffff0;--border:#bfdbfee0;--text:#0f172a;--muted:#64748b;--slate-l:#eff6ff;--row-alt:#f8fbff;--shadow-soft:0 16px 40px #0f172a14;--shadow-pop:0 24px 55px #0ea5e929;--radius-card:26px;--radius-pill:999px;--link:#0ea5e9}[data-theme=dark]{--bg:#07101c;--surface:#0e1625d1;--card:#111827e6;--border:#334155e6;--text:#f8fafc;--muted:#cbd5e1;--slate-l:#162033;--row-alt:#0f172a;--shadow-soft:0 18px 44px #00000047;--shadow-pop:0 24px 60px #0ea5e92e;--link:#7dd3fc}html,body,#root{background:radial-gradient(circle at top left, #0ea5e924, transparent 24%), radial-gradient(circle at top right, #f59e0b1f, transparent 22%), radial-gradient(circle at 18% 82%, #22c55e14, transparent 20%), var(--bg);min-height:100%;color:var(--text);margin:0;padding:0}html{scroll-behavior:auto}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;overflow-x:hidden}[data-theme=dark] body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}button,input,select,textarea{font-family:inherit}button{-webkit-tap-highlight-color:transparent}input,select,textarea{background:var(--card);color:var(--text);border-color:var(--border)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.9}table{color:var(--text)}th,td{vertical-align:middle}a{color:var(--link)}img{max-width:100%;display:block}.recharts-text,.recharts-cartesian-axis-tick-value{fill:var(--muted)}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line,.recharts-cartesian-grid line{stroke:var(--border)}.recharts-default-tooltip{box-shadow:var(--shadow-soft);background:var(--card)!important;border-color:var(--border)!important;color:var(--text)!important}.table-wrap{-webkit-overflow-scrolling:touch}.app-shell{min-height:100vh}.page-shell{position:relative;overflow:visible}.section-shell{max-width:1180px;margin:0 auto;padding-left:20px;padding-right:20px}.soft-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.soft-panel-strong{border-radius:calc(var(--radius-card) + 4px);box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#fffffffa,#f8fbffe6);border:1px solid #dbeafef5}[data-theme=dark] .soft-panel-strong{background:linear-gradient(#0f172af0,#111827e6);border-color:#334155f5}.hover-lift{transition:transform .18s,box-shadow .18s,border-color .18s,opacity .18s}.hover-lift:hover{box-shadow:var(--shadow-pop);transform:translateY(-4px)}.pill{border-radius:var(--radius-pill)}.text-balance{text-wrap:balance}.section-heading{letter-spacing:-.03em;font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.12}.gradient-border{position:relative}.gradient-border:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#0ea5e999,#10b98173,#f59e0b73);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glass-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffb8;border-bottom:1px solid #dbeafebf}[data-theme=dark] .glass-header{background:#080d16d1;border-bottom-color:#334155b8}.top-contact-bar{background:linear-gradient(90deg,#0ea5e91f,#10b9811f,#f59e0b1f);border-bottom:1px solid #dbeafeb3}[data-theme=dark] .top-contact-bar{background:linear-gradient(90deg,#0ea5e91a,#10b98114,#f59e0b14);border-bottom-color:#334155b3}.hero-shell{padding-top:38px;padding-bottom:28px}.hero-visual{position:relative;overflow:hidden}.hero-glow{filter:blur(8px);pointer-events:none;border-radius:50%;position:absolute;inset:auto}.pattern-bg{pointer-events:none;opacity:.95;background:radial-gradient(circle at 12% 14%,#0ea5e921,#0000 26%),radial-gradient(circle at 88% 10%,#f59e0b1a,#0000 22%),radial-gradient(circle at 50% 0,#10b98114,#0000 18%);position:absolute;inset:0}.page-section{padding-top:24px;padding-bottom:24px}.card-grid{gap:16px;display:grid}.nav-chip{transition:transform .16s,background .16s,color .16s,box-shadow .16s}.nav-chip:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.shine-on-hover{position:relative;overflow:hidden}.shine-on-hover:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff47,#0000);width:50%;transition:transform .48s;position:absolute;inset:-30% auto -30% -120%;transform:skew(-18deg)}.shine-on-hover:hover:after{transform:translate(320%)skew(-18deg)}.footer-glow{position:relative}.footer-glow:before{content:"";filter:blur(10px);pointer-events:none;background:radial-gradient(circle,#0ea5e92e,#0000 70%);border-radius:50%;height:48px;position:absolute;inset:auto 10% -24px}.section-pop{will-change:opacity, transform;animation:.42s both fadeRise}.delay-1{animation-delay:.12s}.delay-2{animation-delay:.22s}.delay-3{animation-delay:.32s}.floaty{animation:6s ease-in-out infinite floaty}.floaty-slow{animation:8s ease-in-out infinite floaty}@keyframes floaty{0%,to{transform:translate(0,0)}50%{transform:translateY(-10px)}}@keyframes fadeRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translate(-120%)}to{transform:translate(140%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.glass-drawer{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-left:1px solid #dbeafecc}[data-theme=dark] .glass-drawer{background:#080d16f2;border-left-color:#334155d9}.drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a7a}.sidebar,.topbar,.main-content{min-width:0}.sidebar{background:linear-gradient(#0f172a 0%,#0b1220 100%)}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sidebar-toggle{display:none}.hide-mobile{display:inline-flex}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media (width<=900px){.section-shell{padding-left:16px;padding-right:16px}.hero-shell{padding-top:28px}}@media (width<=768px){.hide-mobile{display:none!important}.sidebar-toggle{display:inline-flex}.page-shell.app-shell{height:auto!important;min-height:100dvh!important;display:block!important;overflow:visible!important}.app-shell{height:auto!important;min-height:100dvh!important;display:block!important;overflow:auto!important}.main-content{-webkit-overflow-scrolling:touch;padding:12px 12px 24px!important;overflow-y:auto!important}.topbar{padding:10px 12px!important}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.charts-row{grid-template-columns:1fr!important}.sidebar{z-index:50;height:100dvh;position:fixed;inset:0 auto 0 0;box-shadow:4px 0 24px #0000002e}.sidebar-closed{transform:translate(-105%);width:min(82vw,286px)!important}.sidebar-open{transform:translate(0);width:min(82vw,286px)!important}.table-wrap{margin-left:-2px;margin-right:-2px;border-radius:10px!important}table{font-size:12px!important}th,td{padding:8px 10px!important}.modal-backdrop{align-items:stretch!important;padding:0!important}.modal-content{border-radius:0!important;width:100%!important;max-width:100%!important;height:100%!important;margin:0!important;overflow-y:auto!important}.form-grid,.detail-grid{grid-template-columns:1fr!important}button{min-height:36px;padding:8px 12px!important;font-size:13px!important}input,select,textarea{min-height:38px;padding:10px!important;font-size:14px!important}.attendance-stats-grid{grid-template-columns:repeat(2,1fr)!important}}@media (width<=420px){.stats-grid,.attendance-stats-grid{grid-template-columns:1fr!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
