@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,DM Sans,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mt-0\.5{margin-top:.125rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.max-h-\[90vh\]{max-height:90vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-auto{width:auto}.w-full{width:100%}.min-w-\[600px\]{min-width:600px}.min-w-\[700px\]{min-width:700px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-white\/\[0\.05\]{border-color:#ffffff0d}.border-white\/\[0\.06\]{border-color:#ffffff0f}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/30{background-color:#eff6ff4d}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-10{padding-right:2.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-display{font-family:Inter,DM Sans,sans-serif}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--bg-page: #f4f6f9;--bg-card: #ffffff;--bg-sidebar: #ffffff;--bg-navbar: #ffffff;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--border: #e5e9f0;--border-light: #f1f3f7;--primary: #3b6ef8;--primary-light: #eff3ff;--primary-dark: #2563eb;--primary-muted: rgba(59,110,248,.1);--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 4px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 14px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 28px rgba(0,0,0,.1), 0 2px 8px rgba(0,0,0,.05);--ease: cubic-bezier(.4, 0, .2, 1);--t-fast: .15s;--t-base: .22s;--t-slow: .35s;--page-padding-x: 28px;--page-padding-y: 24px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg-page);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:14px;line-height:1.6;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.page-content{padding:var(--page-padding-y) var(--page-padding-x);max-width:1280px}@media (max-width: 1024px){:root{--page-padding-x: 20px;--page-padding-y: 20px}}@media (max-width: 768px){:root{--page-padding-x: 14px;--page-padding-y: 16px}}@media (max-width: 480px){:root{--page-padding-x: 12px;--page-padding-y: 12px}body{font-size:13px}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);transition:box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-base) var(--ease)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:#d1d9e8;transform:translateY(-1px)}.input-field{width:100%;border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.input-field::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.input-field::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.input-field{outline:2px solid transparent;outline-offset:2px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background:#f8fafc;font-size:max(16px,.875rem)}@media (min-width: 481px){.input-field{font-size:.875rem}}.input-field:hover{border-color:#c7d3e8;background:#fff}.input-field:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px var(--primary-muted)}.input-field:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}select.input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:2.5rem}.btn{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn{min-height:40px;touch-action:manipulation}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-primary{min-height:40px;touch-action:manipulation}.btn-primary:active:not(:disabled){transform:scale(.97)}@media (max-width: 768px){.page-header-actions .btn-primary{justify-content:center}}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);box-shadow:0 2px 8px var(--primary-muted)}.btn-primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 5px 16px #3b6ef847;transform:translateY(-1px)}.btn-secondary{border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1));display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-secondary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{min-height:40px;touch-action:manipulation}.btn-secondary:active:not(:disabled){transform:scale(.97)}@media (max-width: 768px){.page-header-actions .btn-secondary{justify-content:center}}.btn-secondary:hover:not(:disabled){background:var(--primary-light);border-color:#c7d3e8;color:var(--primary)}.btn-danger{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-danger:disabled{cursor:not-allowed;opacity:.6}.btn-danger{min-height:40px;touch-action:manipulation}.btn-danger:active:not(:disabled){transform:scale(.97)}@media (max-width: 768px){.page-header-actions .btn-danger{justify-content:center}}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef444440}.btn-success{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-success:disabled{cursor:not-allowed;opacity:.6}.btn-success{min-height:40px;touch-action:manipulation}.btn-success:active:not(:disabled){transform:scale(.97)}@media (max-width: 768px){.page-header-actions .btn-success{justify-content:center}}.btn-success{background:#16a34a}.btn-success:hover:not(:disabled){background:#15803d;box-shadow:0 4px 12px #16a34a40}.btn-ghost{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-ghost:disabled{cursor:not-allowed;opacity:.6}.btn-ghost{min-height:40px;touch-action:manipulation}.btn-ghost:active:not(:disabled){transform:scale(.97)}@media (max-width: 768px){.page-header-actions .btn-ghost{justify-content:center}}.btn-ghost:hover:not(:disabled){background:var(--primary-light);color:var(--primary)}.btn-sm{border-radius:.5rem;padding:.375rem .75rem;font-size:.75rem;line-height:1rem;min-height:32px}.btn-lg{padding:.75rem 1.5rem;font-size:1rem;line-height:1.5rem;min-height:48px}.btn-icon{border-radius:.5rem;padding:.5rem;min-height:36px;min-width:36px}@media (max-width: 480px){.btn-mobile-full{width:100%}}.badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500}.badge-blue{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#eff3ff;color:#3b6ef8}.badge-green{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#f0fdf4;color:#16a34a}.badge-yellow{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#fefce8;color:#ca8a04}.badge-red{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#fef2f2;color:#dc2626}.badge-purple{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#faf5ff;color:#7c3aed}.badge-cyan{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#ecfeff;color:#0e7490}.badge-gray{display:inline-flex;align-items:center;gap:.25rem;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;background:#f1f5f9;color:#64748b}.table-wrapper{width:100%;overflow-x:auto;border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));-webkit-overflow-scrolling:touch}.table{width:100%;text-align:left;font-size:.875rem;line-height:1.25rem}.table thead tr{background:#f8fafc;border-bottom:1px solid var(--border)}.table thead th{padding:.75rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}.table tbody tr{border-bottom:1px solid var(--border-light);transition:background var(--t-fast) var(--ease)}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:#f8fafc}.table tbody td{padding:.75rem 1rem;color:var(--text-secondary)}@media (max-width: 640px){.table{min-width:540px}.table thead th,.table tbody td{padding:.625rem .75rem;font-size:12px}}.page-header{margin-bottom:1.5rem}.page-title{font-size:1.25rem;line-height:1.75rem;font-weight:600;line-height:1.25;color:var(--text-primary)}.page-subtitle{margin-top:.125rem;font-size:.875rem;line-height:1.25rem;color:var(--text-muted)}.section-label{margin-bottom:.75rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}@media (max-width: 640px){.page-title{font-size:17px}.page-header{margin-bottom:16px}}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);transition:box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-base) var(--ease)}.stat-icon{display:flex;height:2.75rem;width:2.75rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.75rem}.stat-value{font-size:1.5rem;line-height:2rem;font-weight:700;line-height:1.25;color:var(--text-primary)}.stat-label{margin-top:.125rem;font-size:.75rem;line-height:1rem;font-weight:500;color:var(--text-muted)}@media (max-width: 480px){.stat-card{padding:14px 16px;gap:12px}.stat-value{font-size:20px}}.grid-responsive-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.grid-responsive-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid-responsive-2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media (max-width: 1100px){.grid-responsive-4,.grid-responsive-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-responsive-4,.grid-responsive-3{grid-template-columns:repeat(2,1fr);gap:10px}.grid-responsive-2{grid-template-columns:1fr;gap:10px}}@media (max-width: 480px){.grid-responsive-4,.grid-responsive-3,.grid-responsive-2{grid-template-columns:1fr;gap:10px}}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);box-shadow:1px 0 8px #0000000a}.sidebar-admin,.sidebar-teacher,.sidebar-student,.sidebar-parent,.sidebar-superadmin{background:var(--bg-sidebar);border-right:1px solid var(--border)}.nav-item{display:flex;cursor:pointer;align-items:center;gap:.75rem;border-radius:.75rem;padding-left:.75rem;padding-right:.75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;padding-top:10px;padding-bottom:10px;color:var(--text-secondary);min-height:44px;touch-action:manipulation}.nav-item:hover{background:#f4f6f9;color:var(--text-primary)}.nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}.nav-item.active svg{color:var(--primary)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#0f172a40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:none}.sidebar-overlay.active{display:block}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d9e8;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#b0bdd4}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes notif-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes tabSlideIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes pageLoaderFade{0%{opacity:0}to{opacity:1}}@keyframes loaderRing{0%{stroke-dashoffset:200}50%{stroke-dashoffset:50}to{stroke-dashoffset:200;transform:rotate(360deg)}}.spinner{display:inline-block;border-radius:9999px;border-width:2px;border-color:currentColor;border-top-color:transparent;animation:spin .7s linear infinite}.skeleton{border-radius:8px;background:linear-gradient(90deg,#f1f3f7 25%,#e8ecf3,#f1f3f7 75%);background-size:600px 100%;animation:shimmer 1.5s infinite linear}.page-loader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#f4f6f9e0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;animation:pageLoaderFade .2s ease}.page-loader-text{font-size:13px;font-weight:500;color:var(--text-muted);letter-spacing:.02em}.fade-in{animation:fadeIn .25s var(--ease) forwards}.scale-in{animation:scaleIn .3s var(--ease) forwards}.tab-content{animation:tabSlideIn .22s var(--ease) forwards}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#11182766;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-box{width:100%;max-width:32rem;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);transition:box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-base) var(--ease);max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:scaleIn .28s var(--ease) forwards}@media (max-width: 640px){.modal-overlay{align-items:flex-end;padding:0}.modal-box{max-width:100%;width:100%;border-radius:20px 20px 0 0;max-height:85vh;padding:20px 16px;animation:slideUp .3s var(--ease) forwards}}.form-group>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.form-label{display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--text-secondary)}.form-error{margin-top:.25rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.form-hint{margin-top:.25rem;font-size:.75rem;line-height:1rem;color:var(--text-muted)}.alert{display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.25rem}.alert-error{display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.25rem;background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert-success{display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.25rem;background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.alert-info{display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.25rem;background:var(--primary-light);border:1px solid #c7d5f8;color:var(--primary)}.alert-warning{display:flex;align-items:flex-start;gap:.75rem;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.25rem;background:#fefce8;border:1px solid #fde68a;color:#ca8a04}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.02em}.status-present{background:#f0fdf4;color:#15803d}.status-absent{background:#fef2f2;color:#dc2626}.status-late{background:#fefce8;color:#ca8a04}.grade-excellent{color:#15803d}.grade-good{color:#ca8a04}.grade-poor{color:#dc2626}.notif-badge{animation:notif-pulse 2.5s ease-in-out infinite}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#f0f4ff,#e8f0fe 40%,#f0f7ff);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-80px;left:-80px;width:340px;height:340px;background:radial-gradient(circle,rgba(147,197,253,.35) 0%,transparent 70%);border-radius:50%;pointer-events:none}.login-page:after{content:"";position:absolute;bottom:-100px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(165,180,252,.25) 0%,transparent 70%);border-radius:50%;pointer-events:none}.login-form{display:flex;flex-direction:column;gap:10px;background-color:#fff;padding:2.5em;border-radius:20px;transition:.3s ease;box-shadow:var(--shadow-lg);width:100%;max-width:440px}.login-form:hover{transform:translateY(-2px);box-shadow:0 16px 48px #0000001a}.login-heading{color:var(--text-primary);padding-bottom:.75em;text-align:center;font-weight:700;font-size:1.3rem;letter-spacing:-.02em}.login-input{border-radius:10px;border:1.5px solid var(--border);background-color:#f8fafc;outline:none;padding:.75em .75em .75em 2.6em;transition:all .2s;width:100%;font-size:16px;color:var(--text-primary)}.login-input::-moz-placeholder{color:var(--text-muted)}.login-input::placeholder{color:var(--text-muted)}.login-input:hover{border-color:#c7d3e8;background:#fff}.login-input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.login-btn{margin-top:1rem;align-self:center;padding:.75em 2.5em;border-radius:12px;border:none;color:#fff;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #3b6ef84d;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;touch-action:manipulation}.login-btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 8px 22px #3b6ef861}.login-btn:active{transform:scale(.98)}.login-btn:disabled{opacity:.65;cursor:not-allowed}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-muted);display:flex;align-items:center}.login-input-icon-right{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);cursor:pointer;background:none;border:none;padding:0;display:flex;align-items:center;transition:color .2s}.login-input-icon-right:hover{color:var(--primary)}@media (max-width: 480px){.login-form{padding:1.75em 1.25em;border-radius:16px}.login-heading{font-size:1.15rem}}@media (max-width: 768px){.login-split-left{display:none}.page-header-actions{flex-direction:column;align-items:stretch;gap:8px}.page-header-actions .btn{justify-content:center}.card-row{flex-direction:column}.filters-bar{flex-wrap:wrap;gap:8px}.filters-bar .input-field,.filters-bar select.input-field{min-width:0;flex:1 1 140px}}@media (max-width: 640px){.dash-stat-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.modal-form-grid{grid-template-columns:1fr!important}.col-hide-sm{display:none!important}.section-reports-grid{grid-template-columns:1fr!important}}@media (max-width: 480px){.dash-stat-grid{grid-template-columns:1fr!important}button,a,[role=button]{min-height:40px}.col-hide-xs{display:none!important}}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:.5}.uiverse-section-card{width:250px;min-width:250px;height:200px;border-radius:15px;background:#3b6ef812;display:flex;flex-direction:column;position:relative;overflow:hidden;cursor:pointer;transition:all .3s ease;border:1px solid rgba(59,110,248,.15)}.uiverse-section-card:before{content:"";height:100px;width:100px;position:absolute;top:-40%;left:-20%;border-radius:50%;border:35px solid rgba(59,110,248,.08);transition:all .8s ease;filter:blur(.5rem);pointer-events:none}.uiverse-section-card:hover:before{width:140px;height:140px;top:-30%;left:50%;filter:blur(0)}.uiverse-section-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #3b6ef829}@media (max-width: 480px){.uiverse-section-card{width:100%;min-width:unset;height:160px}}.flex-wrap-gap{display:flex;flex-wrap:wrap;gap:8px;align-items:center}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.page-content{padding-bottom:max(var(--page-padding-y),env(safe-area-inset-bottom))}}.last\:border-0:last-child{border-width:0px}.hover\:border-white\/10:hover{border-color:#ffffff1a}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:inline{display:inline}}
