@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";
:root{--font-sans:"Plus Jakarta Sans", "Outfit", system-ui, sans-serif;--primary-hue:198;--primary:hsl(var(--primary-hue), 93%, 60%);--primary-hover:hsl(var(--primary-hue), 93%, 50%);--primary-light:hsl(var(--primary-hue), 93%, 95%);--primary-glow:hsla(var(--primary-hue), 93%, 60%, .18);--secondary-hue:200;--secondary:hsl(var(--secondary-hue), 90%, 72%);--secondary-hover:hsl(var(--secondary-hue), 90%, 62%);--background:#fff;--foreground:#10192d;--card:#fff;--card-foreground:#10192d;--card-border:#e7ecef;--card-hover:#f5fcff;--border:#e7ecef;--input:#f3f5f7;--input-focus:hsl(var(--primary-hue), 93%, 60%);--success:#22c35d;--success-light:#e9fbf0;--warning:#f59f0a;--warning-light:#fef5e7;--danger:#f43e5c;--danger-light:#feecef;--info:#0bb8da;--info-light:#e7fafe;--shadow-sm:0 1px 3px #0000000d;--shadow:0 4px 12px #0ea5e90d, 0 1px 4px #00000005;--shadow-md:0 8px 24px #0ea5e914, 0 2px 8px #0000000a;--shadow-lg:0 16px 36px #0ea5e91f, 0 4px 16px #0000000f;--radius:12px}[data-theme=dark]{--background:#fff;--foreground:#10192d;--card:#fff;--card-foreground:#10192d;--card-border:#e7ecef;--card-hover:#f5fcff;--border:#e7ecef;--input:#f3f5f7;--primary-light:hsl(var(--primary-hue), 93%, 95%);--success-light:#e9fbf0;--warning-light:#fef5e7;--danger-light:#feecef;--info-light:#e7fafe}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:var(--font-sans)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.flex{display:flex}.flex-col{flex-direction:column}.align-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}.gap-4{gap:32px}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr!important}.flex-mobile-col{flex-direction:column!important;align-items:stretch!important;display:flex!important}div[style*="display: grid"]:not(#printable-report):not(#printable-report *):not(.bulk-report-card):not(.bulk-report-card *):not(.student-meta-grid *):not(.signatures-container *):not(.legend-container *):not(.dates-container *){grid-template-columns:1fr!important}}.card{background-color:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;transition:all .25s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:var(--shadow-md);border-color:hsl(var(--primary-hue), 85%, 80%);transform:translateY(-2px)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-family:Outfit,sans-serif;font-weight:700;line-height:1.25}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 0 16px var(--primary-glow)}.btn-secondary{background-color:var(--card);color:var(--foreground);border-color:var(--border)}.btn-secondary:hover{background-color:var(--card-hover);border-color:var(--primary)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#f10e34}.btn-outline{border:1px solid var(--border);color:var(--foreground);background:0 0}.btn-outline:hover{background:var(--card-hover);border-color:var(--foreground)}.form-group{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.form-label{color:var(--foreground);opacity:.85;font-size:13px;font-weight:600}.input-field{border:1px solid var(--border);background-color:var(--card);width:100%;color:var(--foreground);font-family:var(--font-sans);border-radius:8px;padding:12px 16px;font-size:14px;transition:all .2s}.input-field:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.table-container{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--card);width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.table th{background-color:var(--card-hover);border-bottom:1px solid var(--border);padding:14px 18px;font-weight:600}.table td{border-bottom:1px solid var(--border);padding:14px 18px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:var(--card-hover)}.badge{border-radius:9999px;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.badge-success{background-color:var(--success-light);color:var(--success)}.badge-warning{background-color:var(--warning-light);color:var(--warning)}.badge-danger{background-color:var(--danger-light);color:var(--danger)}.badge-primary{background-color:var(--primary-light);color:var(--primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes floatPulse{0%{box-shadow:0 0 #38bdf880}70%{box-shadow:0 0 0 8px #38bdf800}to{box-shadow:0 0 #38bdf800}}@keyframes breathe{0%,to{opacity:.95;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.animate-fade-in{animation:.3s cubic-bezier(.4,0,.2,1) forwards fadeIn}.animate-slide-up{animation:.5s cubic-bezier(.16,1,.3,1) forwards slideUp}.animate-slide-in-right{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideInRight}.animate-float-pulse{border-radius:50%;animation:2s infinite floatPulse}.animate-breathe{animation:4s ease-in-out infinite breathe}.hover-scale{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.hover-scale:hover{transform:scale(1.03)}.tab-content-anim{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUp}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--foreground);opacity:.3}@media print{@page{size:A4 portrait;margin:6mm 8mm}.no-print{display:none!important}body *{visibility:hidden!important}#printable-report,#printable-report *,.bulk-printable-reports,.bulk-printable-reports *,#printable-attendance-sheet,#printable-attendance-sheet *{visibility:visible!important}body,.dashboard-layout,.main-workspace,.grid,.main-workspace>div{width:100%!important;height:auto!important;min-height:0!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}.main-workspace .card:not(#printable-report){box-shadow:none!important;background:0 0!important;border:none!important;height:auto!important;margin:0!important;padding:0!important}#printable-report,.bulk-report-card{width:100%!important;max-width:100%!important;box-shadow:none!important;page-break-inside:avoid!important;visibility:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;border:none!important;border-radius:0!important;margin:0 auto!important;padding:10px 15px!important;display:block!important;position:relative!important}.report-header{margin-bottom:6px!important;padding-bottom:4px!important}.report-header h2{font-size:16px!important}.report-header div{margin:1px 0!important;font-size:9px!important;line-height:1.2!important}.report-header h3{margin-top:3px!important;font-size:11px!important}.student-meta-grid{gap:4px!important;margin-bottom:6px!important;padding-bottom:4px!important;font-size:10px!important}.student-meta-grid img{width:50px!important;height:55px!important}#printable-report table,.bulk-report-card table{margin-bottom:6px!important}#printable-report table th,#printable-report table td,.bulk-report-card table th,.bulk-report-card table td{padding:2px 4px!important;font-size:8.5px!important;line-height:1.1!important}#printable-report h4,.bulk-report-card h4{margin-top:2px!important;margin-bottom:2px!important;font-size:10px!important}.chart-container{margin-top:3px!important;margin-bottom:3px!important;padding:4px!important}.chart-container h4{margin-bottom:2px!important;font-size:8.5px!important}.chart-container svg{max-height:75px!important}.legend-container{margin-top:3px!important;padding:4px!important;font-size:8px!important}.legend-container table th,.legend-container table td{padding:1px 2px!important;font-size:8px!important}.comments-container{margin-top:4px!important;padding:4px 8px!important;font-size:8.5px!important;line-height:1.2!important}.comments-container div{margin-top:1px!important}.fees-container{margin-top:4px!important;padding:3px 8px!important;font-size:8.5px!important}.dates-container{margin-top:3px!important;padding:2px!important;font-size:8px!important}.signatures-container{margin-top:12px!important;font-size:9px!important}.signatures-container div{width:110px!important;padding-top:2px!important}.page-break{page-break-after:always!important;break-after:page!important;border:none!important;height:0!important;margin:0!important;padding:0!important;display:block!important}table{page-break-inside:auto!important;width:100%!important}tr{page-break-inside:avoid!important;page-break-after:auto!important}thead{display:table-header-group!important}}@media (max-width:768px){.dashboard-layout{flex-direction:column!important}.mobile-header{border-bottom:1px solid var(--border);z-index:900;background:#fff;justify-content:space-between;align-items:center;padding:12px 20px;position:sticky;top:0;display:flex!important}.sidebar-nav{top:0;left:0;transform:translate(-100%);z-index:1001!important;height:100vh!important;transition:transform .3s cubic-bezier(.16,1,.3,1)!important;position:fixed!important}.sidebar-nav.open{transform:translate(0);box-shadow:4px 0 24px #00000026}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;pointer-events:none;background:#0f172a66;width:100vw;height:100vh;transition:opacity .3s;position:fixed;top:0;left:0;display:block!important}.sidebar-overlay.open{opacity:1;pointer-events:auto}.mobile-close-btn{justify-content:center;align-items:center;display:inline-flex!important}.main-workspace{padding:20px!important}}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.95)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1050;background-color:#0f172a99;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out forwards overlayFade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;margin:auto;padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) forwards modalZoomIn;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@media screen{.print-only{display:none!important}}@media print{#printable-attendance-sheet,#printable-attendance-sheet *{visibility:visible!important}#printable-attendance-sheet{color:#000!important;background:#fff!important;width:100%!important;padding:20px!important;font-family:Arial,sans-serif!important;display:block!important;position:absolute!important;top:0!important;left:0!important}#printable-attendance-sheet table{border-collapse:collapse!important;width:100%!important;margin-top:15px!important}#printable-attendance-sheet th,#printable-attendance-sheet td{text-align:left!important;border:1px solid #000!important;padding:6px 4px!important;font-size:10px!important}#printable-attendance-sheet th{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#f2f2f2!important}}
