*,: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:Poppins,Arial,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}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-2{left:.5rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[22px\]{height:22px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-px{height:1px}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.w-10{width:2.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-\[280px\]{width:280px}.w-\[42px\]{width:42px}.w-\[90px\]{width:90px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.-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))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.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-2\.5{gap:.625rem}.gap-3\.5{gap:.875rem}.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))}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-card{border-radius:8px}.rounded-control{border-radius:4px}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#3b6996\]{--tw-border-opacity: 1;border-color:rgb(59 105 150 / var(--tw-border-opacity, 1))}.border-accent{--tw-border-opacity: 1;border-color:rgb(17 234 234 / var(--tw-border-opacity, 1))}.border-accent\/20{border-color:#11eaea33}.border-border-soft{--tw-border-opacity: 1;border-color:rgb(39 51 79 / var(--tw-border-opacity, 1))}.border-destructive{--tw-border-opacity: 1;border-color:rgb(255 128 128 / var(--tw-border-opacity, 1))}.border-destructive\/25{border-color:#ff808040}.border-success\/20{border-color:#4ade8033}.border-transparent{border-color:transparent}.bg-\[\#3b6996\]{--tw-bg-opacity: 1;background-color:rgb(59 105 150 / var(--tw-bg-opacity, 1))}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(17 234 234 / var(--tw-bg-opacity, 1))}.bg-accent\/10{background-color:#11eaea1a}.bg-destructive{--tw-bg-opacity: 1;background-color:rgb(255 128 128 / var(--tw-bg-opacity, 1))}.bg-destructive\/10{background-color:#ff80801a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-success{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-success\/10{background-color:#4ade801a}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(1 38 76 / var(--tw-bg-opacity, 1))}.bg-surface-muted{--tw-bg-opacity: 1;background-color:rgb(1 33 66 / var(--tw-bg-opacity, 1))}.bg-surface-muted\/50{background-color:#01214280}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.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-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.tracking-\[0\.06em\]{letter-spacing:.06em}.tracking-tight{letter-spacing:-.025em}.text-accent{--tw-text-opacity: 1;color:rgb(17 234 234 / var(--tw-text-opacity, 1))}.text-background{--tw-text-opacity: 1;color:rgb(1 25 50 / var(--tw-text-opacity, 1))}.text-brand-strong{--tw-text-opacity: 1;color:rgb(114 163 196 / var(--tw-text-opacity, 1))}.text-destructive{--tw-text-opacity: 1;color:rgb(255 128 128 / var(--tw-text-opacity, 1))}.text-foreground{--tw-text-opacity: 1;color:rgb(240 243 252 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:#f0f3fc9e}.text-success{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/50{color:#ffffff80}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--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(0px + 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)}.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-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}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.running{animation-play-state:running}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-brand: #f0f3fc;--color-brand-strong: #72a3c4;--color-accent: #11eaea;--color-bg: #011932;--color-surface: #01264c;--color-surface-muted: #012142;--color-text: #f0f3fc;--color-text-secondary: rgba(240, 243, 252, .62);--color-border: #34547a;--color-border-soft: #27334f;--color-danger: #ff8080;--color-success: #4ade80;--chart-blue: #0b93aa;--chart-purple: #4e7ea5;--chart-orange: #0fced3;--radius-card: 8px;--radius-control: 4px;--shadow: 0 1px 2px rgba(0, 0, 0, .25);--font: "Poppins", Arial, sans-serif}html,body,#root{min-height:100%}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);line-height:1.45;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid rgba(17,234,234,.35);outline-offset:2px}.login-screen{min-height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem 5rem;background:linear-gradient(0deg,#011932bf,#011932d9),url(/assets/login-background-Ds2sWsEn.jpg) center/cover no-repeat}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(17,234,234,.12),transparent 42%);pointer-events:none}.login-shell{position:relative;z-index:1;width:100%;display:flex;justify-content:center}.login-card{width:min(100%,500px);padding:2.2rem 2.1rem 1.45rem;border-radius:20px;border:1px solid var(--color-border-soft);background:var(--color-surface);box-shadow:0 24px 80px #0006;animation:login-fade-in .8s cubic-bezier(.16,1,.3,1)}@keyframes login-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-card-loading{display:grid;justify-items:center;gap:.9rem;padding-block:2.75rem}.login-brand-logo{display:block;width:min(100%,270px);height:auto;margin:0 auto 1.8rem}.login-divider{height:1px;margin:1.55rem 0 1rem;background:var(--color-border-soft)}.login-help-text{text-align:center;font-size:.9rem;color:var(--color-text-secondary)}.login-powered-by{position:absolute;left:50%;bottom:1.25rem;z-index:1;width:min(100%,230px);padding-inline:1rem;transform:translate(-50%)}.login-powered-by img{display:block;width:100%;height:auto}.login-spinner{border-color:#01193229;border-top-color:#01264c}.login-loading-text{font-size:.95rem;font-weight:700;color:#01264c}.app-shell{min-height:100vh;display:flex;align-items:stretch}.section-stack{display:grid;gap:1rem}.sidebar{width:250px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:1.25rem;padding:1.1rem .9rem;background:var(--color-bg);border-right:1px solid var(--color-border-soft)}.sidebar-brand{display:flex;align-items:center;gap:.75rem;min-width:0;padding:0 .2rem}.sidebar-brand .brand-mark{background:var(--color-surface);border-color:#11eaea4d}.sidebar-brand .logo{color:#fff;font-size:.95rem}.sidebar-nav{display:flex;flex-direction:column;gap:.3rem}.sidebar-nav-category{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border-radius:var(--radius-control, 6px);border:none;background:transparent;color:var(--color-brand-strong);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:inherit;cursor:pointer;transition:color .15s ease}.sidebar-nav-category:hover{color:var(--color-accent)}.sidebar-nav-chevron{transition:transform .15s ease}.sidebar-nav-chevron.is-collapsed{transform:rotate(-90deg)}.sidebar-nav-group{display:flex;flex-direction:column;gap:.3rem;padding-left:.5rem;border-left:1px solid var(--color-border-soft);margin-left:.9rem}.sidebar-nav-item{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;padding:.6rem .75rem;border-radius:var(--radius-control, 6px);border:1px solid transparent;background:transparent;color:var(--color-brand-strong);font-size:.82rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease}.sidebar-nav-item:hover{background:var(--color-surface);color:var(--color-brand)}.sidebar-nav-item.active{background:var(--color-surface);border-color:#11eaea4d;color:var(--color-accent)}.sidebar-footer{margin-top:auto}.sidebar-footer .session-box{background:var(--color-surface);border:1px solid rgba(17,234,234,.3);flex-direction:column;align-items:stretch;gap:.5rem}.sidebar-footer .session-name{color:#fff}.app-content{flex:1;min-width:0;padding:1rem 1.5rem 1.5rem}.content-topbar{width:min(1240px,100%);margin:0 auto 1rem;display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.content-topbar .nav-search-icon{color:#fff9}.main{width:min(1240px,100%);margin:0 auto;display:grid;gap:1rem}.brand{display:flex;align-items:center;gap:.75rem;min-width:0}.brand-mark{width:40px;height:40px;position:relative;border:1px solid var(--color-border-soft);border-radius:6px;background:var(--color-bg)}.brand-mark span{position:absolute;left:50%;transform:translate(-50%);height:4px;border-radius:999px}.brand-mark span:nth-child(1){top:10px;width:18px;background:var(--color-brand)}.brand-mark span:nth-child(2){top:18px;width:24px;background:var(--color-accent)}.brand-mark span:nth-child(3){top:26px;width:14px;background:var(--color-brand-strong)}.brand-copy{min-width:0}.brand-kicker,.eyebrow{font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent)}.logo{font-size:1.08rem;font-weight:700;color:var(--color-brand);letter-spacing:-.01em}.nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.session-box{display:flex;align-items:center;gap:.75rem;padding:.42rem .45rem .42rem .75rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface-muted)}.session-copy{display:grid;gap:.08rem}.session-name{font-size:.78rem;font-weight:700;color:var(--color-brand)}.session-role{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent)}.table-search,.test-result,.cat-badge{border-radius:var(--radius-control)}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#011932b3;display:flex;align-items:center;justify-content:center;z-index:100}.confirm-dialog-card{max-width:420px;width:90%;display:grid;gap:.75rem}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.card{position:relative;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-card);padding:1rem 1.1rem;box-shadow:var(--shadow);min-width:0}.card:before{display:none}.card-title{font-size:.98rem;font-weight:700;color:var(--color-brand);margin-bottom:.3rem}.section-title,.table-title{margin-bottom:0}.panel-description{max-width:760px;font-size:.8rem;line-height:1.5;color:var(--color-text-secondary)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}.panel-header-compact{margin-bottom:.75rem}.panel-header-split{align-items:center}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.stat-box{--stat-accent: var(--color-brand);position:relative;min-height:96px;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-card);padding:.8rem .9rem .8rem 1rem;box-shadow:none;display:flex;flex-direction:column;justify-content:space-between}.stat-box:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--stat-accent);border-radius:8px 0 0 8px}.stat-box-total{--stat-accent: var(--color-brand)}.stat-box-content{--stat-accent: var(--color-accent)}.stat-box-assignment{--stat-accent: var(--chart-blue)}.stat-box-forum{--stat-accent: var(--chart-orange)}.stat-box-backup{--stat-accent: var(--chart-purple)}.stat-box-secondary{--stat-accent: var(--color-border)}.stat-label{font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-brand-strong)}.stat-label-with-dot{display:inline-flex;align-items:center;gap:.45rem}.stat-dot{width:8px;height:8px;border-radius:999px;background:var(--stat-accent)}.stat-platform-name{font-size:.68rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:.1rem}.stat-value{font-size:1.18rem;font-weight:700;color:var(--color-brand);letter-spacing:-.02em}.stat-value-content{color:var(--color-accent)}.stat-value-assignment{color:var(--chart-blue)}.stat-sublabel{margin-top:.15rem;font-size:.7rem;font-weight:700;color:var(--color-text-secondary)}.stat-value-forum{color:var(--chart-orange)}.stat-value-backup{color:var(--chart-purple)}.stat-value-money-positive{color:var(--color-success)}.stat-value-money-negative{color:var(--color-danger)}.chart-container{position:relative;width:100%;min-height:300px}.chart-container-tall,.chart-container-global{min-height:360px}.chart-container-line-xl{min-height:720px}.chart-isolate-clear{position:absolute;top:0;right:0;z-index:2;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-accent);font-size:.72rem;font-weight:700;cursor:pointer}.chart-click-hint{margin-top:.75rem;font-size:.76rem;font-weight:700;color:var(--color-brand-strong)}.history-note{margin-top:.8rem;padding:.75rem .85rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-control);background:var(--color-surface-muted);font-size:.78rem;color:var(--color-brand)}.history-note-warning{background:#ef7f3314;border-color:#ef7f3333}.history-filter-panel{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:.65rem}.history-filter-group,.history-filter-select-group{display:flex;flex-direction:column;gap:.35rem}.history-filter-select-group{min-width:150px;flex:0 0 150px}.history-filter-select{width:100%;min-width:150px;padding:.58rem .65rem}.history-filter-action{flex:0 0 auto}.history-filter-panel .filter-chip-group{flex-wrap:nowrap;gap:.4rem}.history-filter-summary{margin-bottom:.85rem;font-size:.76rem;color:var(--color-brand-strong)}.chart-filter-row{margin-top:.85rem;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.chart-filter-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-brand-strong)}.detail-section{gap:.85rem}.detail-chart-card,.detail-table-card{overflow:hidden}.nav-search-wrapper{position:relative;display:flex;align-items:center}.nav-search-icon{position:absolute;left:.65rem;color:#f0f3fc80;pointer-events:none}.nav-search-input{min-width:200px;padding-left:2rem!important}.global-search-results{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.2rem}.global-search-result{border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-brand);padding:.55rem .8rem;font-size:.78rem;font-weight:700;border-radius:var(--radius-control);cursor:pointer;transition:border-color .16s ease,background .16s ease}.global-search-result:hover{border-color:var(--color-accent);background:#11eaea14}.global-search-empty{font-size:.78rem;color:var(--color-text-secondary)}.global-panel-badge{min-width:150px;padding:.8rem .9rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface-muted);display:flex;flex-direction:column;gap:.2rem}.global-panel-badge-label{font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-brand-strong)}.global-panel-badge-value{font-size:.95rem;color:var(--color-brand)}.global-panel-last-sync{justify-self:start;width:-moz-fit-content;width:fit-content;display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .85rem;border-radius:999px;border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-accent);font-size:.74rem;font-weight:700;white-space:nowrap}.global-panel-sync-gear{display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:999px;border:none;background:transparent;color:var(--color-accent);cursor:pointer;transition:background .15s ease,transform .35s ease}.global-panel-sync-gear:hover{background:#11eaea26;transform:rotate(45deg)}.empty{text-align:center;padding:1.75rem 1rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px dashed var(--color-border-soft);border-radius:var(--radius-card);font-size:.82rem}.empty.error{color:var(--color-danger);background:#a127270f;border-color:#a1272740;font-weight:600}.table-header-row{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap}.table-search{display:block;min-width:240px;width:min(100%,300px);margin-bottom:1.6rem;border:1px solid var(--color-border-soft);background:var(--color-surface);color:var(--color-brand);padding:.7rem .85rem;font-size:.85rem;transition:border-color .16s ease}.table-search::-moz-placeholder{color:#f0f3fc8c}.table-search::placeholder{color:#f0f3fc8c}.table-search:focus{border-color:var(--color-accent);box-shadow:none}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface)}.inventory-table-wrapper{max-height:60.35rem;overflow-y:auto}.insights-table-wrapper{max-height:420px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-accent) var(--color-surface-muted)}.cs-report-box{min-width:0;max-width:100%;overflow-x:auto}.insights-table-wrapper::-webkit-scrollbar{width:8px}.insights-table-wrapper::-webkit-scrollbar-track{background:var(--color-surface-muted)}.insights-table-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-accent);border-radius:999px}.grade-detail-cell{display:grid;gap:.25rem;max-height:140px;overflow-y:auto;padding-right:.4rem;min-width:280px}.grade-detail-row{display:flex;justify-content:space-between;gap:.75rem;font-size:.72rem;color:var(--color-text-secondary);border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:.2rem}.grade-detail-name{flex:1}.grade-detail-value{flex-shrink:0;color:var(--color-text)}.grade-detail-collapsible{min-width:280px}.grade-detail-toggle{display:flex;align-items:center;gap:.3rem;margin-top:.35rem;background:transparent;border:none;color:var(--color-accent);font-size:.72rem;font-weight:600;cursor:pointer;padding:0}.grade-detail-toggle svg{transition:transform .15s ease}.grade-detail-toggle svg.open{transform:rotate(180deg)}.insights-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}.insights-table-search{position:relative;flex:1 1 260px;max-width:360px}.insights-table-search-icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.insights-table-pagesize{display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;color:var(--color-brand-strong);white-space:nowrap}.insights-sortable-head{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.insights-sortable-head:hover{color:var(--color-accent)}.insights-sortable-head-inner{display:inline-flex;align-items:center;gap:.3rem}.insights-table-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:.75rem;font-size:.78rem;color:var(--color-text-secondary)}.insights-table-pagination-buttons{display:flex;align-items:center;gap:.5rem}.insights-table-pagination-page{font-weight:700;color:var(--color-brand-strong);white-space:nowrap}.course-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}.course-table thead{position:sticky;top:0;z-index:2}.course-table th{background:var(--color-bg);color:var(--color-brand);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;padding:.75rem .8rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none}.course-table th.sortable{cursor:pointer;transition:background .15s ease}.course-table th.sortable:hover{background:#11eaea1f}.cs-courses-table{table-layout:fixed}.cs-courses-table th:nth-child(1),.cs-courses-table td:nth-child(1){width:32%}.cs-courses-table th:nth-child(2),.cs-courses-table td:nth-child(2){width:24%}.cs-courses-table th:nth-child(3),.cs-courses-table td:nth-child(3){width:11%}.cs-courses-table th:nth-child(4),.cs-courses-table td:nth-child(4){width:11%}.cs-courses-table th:nth-child(5),.cs-courses-table td:nth-child(5),.cs-courses-table th:nth-child(6),.cs-courses-table td:nth-child(6){width:11%}.cs-courses-table .course-name-text,.cs-courses-table .course-short,.cs-courses-table .cat-badge{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.course-table th.right,.course-table td.right{text-align:right}.course-table td{padding:.75rem .8rem;border-bottom:1px solid rgba(175,175,175,.35);vertical-align:middle;color:var(--color-brand)}.access-report-table th,.access-report-table td{padding:.5rem;font-size:.72rem;white-space:nowrap}.course-table tbody tr{transition:background .12s ease}.course-table tbody tr:hover{background:#11eaea0d}.course-table tbody tr:focus-visible{outline:2px solid rgba(17,234,234,.4);outline-offset:-2px}.course-row-clickable{cursor:pointer}.course-row-clickable:hover{background:#11eaea14}.cs-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;font-size:.78rem;font-weight:700}.cs-breadcrumb-segment{display:flex;align-items:center;gap:.3rem}.cs-breadcrumb-sep{color:var(--color-text-secondary)}.cs-breadcrumb-link{color:var(--color-accent);background:none;border:none;cursor:pointer;padding:0;font:inherit;font-weight:700}.cs-breadcrumb-link:hover{text-decoration:underline}.cs-breadcrumb-current{color:var(--color-text)}.cs-list{display:grid;gap:.4rem}.cs-tabs{display:flex;gap:.5rem;margin-bottom:.9rem}.cs-tab{padding:.45rem .9rem;border-radius:var(--radius-control);border:1px solid var(--color-border-soft);background:transparent;color:var(--color-text-secondary);font-weight:700;font-size:.78rem;cursor:pointer}.cs-tab.active{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.cs-detail-meta-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.4rem}.cs-detail-meta-row .course-breakdown-meta{margin:0}.cs-role-filter{display:flex;gap:.5rem;margin:.6rem 0 .9rem;flex-wrap:wrap}.cs-role-chip{padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-border-soft);background:transparent;color:var(--color-text-secondary);font-weight:600;font-size:.74rem;cursor:pointer}.cs-role-chip.active{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.cs-platform-picker{position:relative;min-width:280px}.cs-platform-trigger{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.65rem .9rem;border-radius:var(--radius-control);border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-text);font-weight:700;font-size:.85rem;cursor:pointer}.cs-platform-trigger:hover{border-color:var(--color-accent)}.cs-platform-chevron{flex-shrink:0;color:var(--color-text-secondary);transition:transform .15s ease}.cs-platform-chevron.open{transform:rotate(180deg)}.cs-platform-dropdown{position:absolute;top:calc(100% + .4rem);right:0;z-index:20;width:320px;max-width:90vw;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-control);box-shadow:0 12px 32px #01193273;overflow:hidden}.cs-platform-search{display:flex;align-items:center;gap:.5rem;padding:.65rem .8rem;border-bottom:1px solid var(--color-border-soft);color:var(--color-text-secondary)}.cs-platform-search input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text);font-size:.85rem;font-family:inherit}.cs-platform-options{max-height:320px;overflow-y:auto;padding:.35rem}.cs-platform-option{display:block;width:100%;text-align:left;padding:.55rem .7rem;border-radius:var(--radius-control);border:none;background:transparent;color:var(--color-text);font-size:.83rem;font-weight:600;cursor:pointer}.cs-platform-option:hover{background:#11eaea14}.cs-platform-option.active{background:var(--color-accent);color:var(--color-bg)}.cs-platform-empty{padding:.75rem;font-size:.8rem;color:var(--color-text-secondary)}.cs-platform-prompt{margin-bottom:1rem}.cs-platform-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.cs-platform-card{padding:.9rem 1rem;border-radius:var(--radius-control);border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-text);font-weight:700;font-size:.85rem;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.cs-platform-card:hover{border-color:var(--color-accent);background:#11eaea14}.cs-detail-card{display:grid;gap:.55rem;max-width:520px}.cs-detail-loading-note{font-size:.78rem;color:var(--color-text-secondary);margin-bottom:.25rem}.cs-stat-row{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--color-border-soft);font-size:.82rem}.cs-stat-label{color:var(--color-text-secondary);font-weight:700}.cs-stat-value{color:var(--color-text);font-weight:700;text-align:right}.cs-grades-detail{margin-top:1.2rem}.cs-template-toggle{align-self:flex-start;margin-bottom:.7rem;padding:.3rem .7rem;border-radius:999px;border:1px solid var(--color-border-soft);background:transparent;color:var(--color-text-secondary);font-size:.72rem;font-weight:700;cursor:pointer}.cs-template-toggle:hover{color:var(--color-accent);border-color:#11eaea4d}.cs-template-badge{margin-left:.5rem}.cs-table-skeleton{display:grid;gap:.6rem;padding:.5rem 0}.cs-table-skeleton-row{display:flex;gap:1rem}.cs-error-retry{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cs-error-retry .empty.error{margin:0}.course-row-selected{background:#11eaea1a}.course-row-selected:hover{background:#11eaea24!important}.course-table tbody tr:last-child td{border-bottom:none}.row-num{color:var(--color-text-secondary);font-size:.73rem;font-weight:700}.course-cell{display:flex;flex-direction:column;gap:.15rem}.course-name-text{font-weight:700;color:var(--color-brand);line-height:1.3}.course-short{font-size:.72rem;color:var(--color-text-secondary)}.cat-badge{display:inline-flex;align-items:center;background:var(--color-bg);color:var(--color-brand);border:1px solid var(--color-border-soft);font-size:.7rem;font-weight:700;padding:.3rem .55rem;white-space:nowrap}.metric-value{font-weight:700}.metric-value-content{color:var(--color-accent)}.metric-value-assignment{color:var(--chart-blue)}.metric-value-forum{color:var(--chart-orange)}.metric-value-backup{color:var(--chart-purple)}.metric-total{color:var(--color-brand)}.mono{font-family:Cascadia Code,SF Mono,Consolas,monospace;font-size:.77rem}.bold{font-weight:700}.muted{color:#f0f3fc80}.course-breakdown-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(175,175,175,.45)}.course-breakdown-header{align-items:center}.course-breakdown-total{min-width:170px;padding:.75rem .85rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface-muted);display:flex;flex-direction:column;gap:.15rem;color:var(--color-brand)}.course-breakdown-total-label{font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-brand-strong)}.course-breakdown-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:.9rem}.course-breakdown-summary-item{padding:.75rem .85rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-control);background:var(--color-surface-muted);display:flex;flex-direction:column;gap:.2rem;color:var(--color-brand)}.course-breakdown-summary-item span{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.course-breakdown-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.9rem;padding:.8rem .9rem;border:1px solid rgba(17,234,234,.2);border-radius:var(--radius-card);background:#11eaea14}.course-breakdown-warning{flex:1 1 320px;font-size:.79rem;line-height:1.5;color:var(--color-brand)}.course-breakdown-sync-btn{white-space:nowrap}.course-breakdown-meta{margin:-.2rem 0 .9rem;font-size:.75rem;line-height:1.45;color:var(--color-text-secondary)}.course-breakdown-meta-cache{color:var(--color-brand)}.course-breakdown-meta-live{color:var(--color-success)}.course-breakdown-table-wrapper{margin-top:.2rem}.breakdown-chip{display:inline-flex;align-items:center;padding:.34rem .6rem;border-radius:999px;border:1px solid rgba(1,25,50,.16);background:#11eaea14;color:var(--color-brand);font-size:.72rem;font-weight:700}.breakdown-chip-secondary{background:var(--color-bg)}.config-header{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.platform-list{display:grid;gap:.75rem}.platform-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.85rem;align-items:start;padding-left:1.05rem}.platform-card:after{content:"";position:absolute;inset:.85rem auto .85rem .55rem;width:3px;border-radius:999px;background:var(--color-accent)}.platform-info{min-width:0}.platform-name{font-weight:700;font-size:.92rem;color:var(--color-brand)}.platform-url{margin-top:.2rem;font-size:.77rem;color:var(--color-accent);font-weight:700;word-break:break-all}.platform-token{margin-top:.4rem;font-size:.72rem;color:var(--color-text-secondary);font-family:Cascadia Code,SF Mono,Consolas,monospace;word-break:break-all}.platform-toggle-row{margin-top:.6rem}.platform-toggle-label{font-size:.74rem;font-weight:700;color:var(--color-text)}.platform-last-sync{margin-top:.6rem;font-size:.74rem;font-weight:700;color:var(--color-text-secondary)}.platform-financial{margin-top:.55rem;display:grid;gap:.35rem}.platform-financial-grid{display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:.74rem;color:var(--color-brand-strong)}.platform-financial-pending{font-size:.74rem;font-weight:700;color:var(--color-danger)}.platform-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.platform-sync-progress{grid-column:1 / -1;display:grid;gap:.35rem}.platform-sync-progress-bar{position:relative;height:6px;width:100%;overflow:hidden;border-radius:999px;background:var(--color-border-soft)}.platform-sync-progress-bar-fill{position:absolute;top:0;bottom:0;width:40%;border-radius:999px;background:var(--color-accent);animation:platform-sync-progress-slide 1.2s ease-in-out infinite}@keyframes platform-sync-progress-slide{0%{left:-40%}to{left:100%}}.platform-sync-progress-bar-fill-determinate{position:absolute;top:0;bottom:0;left:0;border-radius:999px;background:var(--color-accent);transition:width .4s ease}.platform-sync-progress-label{font-size:.72rem;font-weight:700;color:var(--color-brand-strong)}.platform-sync-progress-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.test-result{grid-column:1 / -1;font-size:.76rem;font-weight:700;padding:.7rem .8rem}.test-summary{line-height:1.45}.test-detail-group{margin-top:.55rem}.test-detail-title{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.test-detail-list{margin:.35rem 0 0;padding-left:0;list-style:none;display:grid;gap:.3rem}.test-detail-item{display:flex;gap:.4rem;align-items:flex-start;font-weight:600;line-height:1.4}.test-detail-prefix{flex:0 0 auto}.test-ok{background:#11eaea1a;border:1px solid rgba(17,234,234,.18);color:var(--color-brand)}.test-fail{background:#a1272714;border:1px solid rgba(161,39,39,.14);color:var(--color-danger)}@media (max-width: 980px){.header{flex-direction:column;align-items:flex-start}.panel-header{flex-direction:column}.panel-header-split{align-items:flex-start}.history-filter-panel{width:100%;justify-content:flex-start}.history-filter-select-group,.history-filter-select{min-width:0;width:100%}.history-filter-select-group{flex:1 1 100%}.history-filter-panel .filter-chip-group{flex-wrap:wrap}.filter-chip-group{justify-content:flex-start}.page-hero{grid-template-columns:1fr}.page-hero-accent{justify-self:start;flex-direction:row}.sidebar{width:100%;height:auto;position:static;flex-direction:column}.app-shell{flex-direction:column}.sidebar-nav-group{flex-direction:row;flex-wrap:wrap}.session-box{width:100%;justify-content:space-between}.platform-card{grid-template-columns:1fr}.platform-actions{justify-content:flex-start}.nav-search-wrapper{width:100%}.nav-search-input{width:100%;min-width:0}.detail-section .stats-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.detail-section .chart-container{min-height:340px}.detail-section .chart-container-tall{min-height:420px}.detail-section .table-header-row{align-items:stretch}.detail-section .table-search{width:100%;max-width:none}}@media (max-width: 720px){.app-content{padding:.75rem}.login-screen{padding-inline:.8rem}.login-card{padding:1.8rem 1.3rem 1.2rem}.login-brand-logo{width:min(100%,248px);margin-bottom:1.5rem}.card{padding:.9rem}.tabs-shell,.tabs,.nav-btn,.tab,.sync-btn,.btn-add,.btn-cancel{width:100%}.sync-action-row{flex-direction:column}.form-grid{grid-template-columns:1fr}.table-search{width:100%;min-width:0}.nav-search-wrapper{width:100%}.nav-search-input{width:100%;min-width:0}.nav-btn-search{width:100%}.session-box{flex-direction:column;align-items:stretch}.session-logout{width:100%}.detail-section{gap:.75rem}.detail-section .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.detail-section .stat-box{min-height:88px;padding:.7rem .75rem .7rem .9rem}.detail-section .stat-label{font-size:.62rem}.detail-section .stat-value{font-size:1rem}.detail-section .chart-container{min-height:320px}.detail-section .chart-container-tall{min-height:380px}.detail-section .table-wrapper{margin-inline:-.9rem;border-left:none;border-right:none;border-radius:0}.detail-section .course-table{min-width:860px}.detail-section .panel-description{max-width:100%;font-size:.78rem}.detail-section .course-breakdown-actions{align-items:stretch}.detail-section .course-breakdown-sync-btn{width:100%}}@media (max-width: 560px){.detail-section .stats-grid{grid-template-columns:1fr}.detail-section .chart-container{min-height:300px}.detail-section .chart-container-tall{min-height:340px}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-white::file-selector-button{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.placeholder\:text-white\/40::-moz-placeholder{color:#fff6}.placeholder\:text-white\/40::placeholder{color:#fff6}.hover\:border-\[\#4e7ea5\]:hover{--tw-border-opacity: 1;border-color:rgb(78 126 165 / var(--tw-border-opacity, 1))}.hover\:border-brand-strong:hover{--tw-border-opacity: 1;border-color:rgb(114 163 196 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#4e7ea5\]:hover{--tw-bg-opacity: 1;background-color:rgb(78 126 165 / var(--tw-bg-opacity, 1))}.hover\:bg-background:hover{--tw-bg-opacity: 1;background-color:rgb(1 25 50 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-strong:hover{--tw-bg-opacity: 1;background-color:rgb(114 163 196 / var(--tw-bg-opacity, 1))}.hover\:bg-surface-muted\/50:hover{background-color:#01214280}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.focus\:bg-brand-strong:focus{--tw-bg-opacity: 1;background-color:rgb(114 163 196 / var(--tw-bg-opacity, 1))}.focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--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(2px + 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)}.focus\:ring-accent:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(17 234 234 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-background:focus{--tw-ring-offset-color: #011932}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--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(2px + 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)}.focus-visible\:ring-accent:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(17 234 234 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: #011932}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;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))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;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))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;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))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;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))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;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))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;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))}.data-\[state\=active\]\:border-accent[data-state=active],.data-\[state\=on\]\:border-accent[data-state=on]{--tw-border-opacity: 1;border-color:rgb(17 234 234 / var(--tw-border-opacity, 1))}.data-\[state\=active\]\:bg-accent[data-state=active],.data-\[state\=checked\]\:bg-accent[data-state=checked],.data-\[state\=on\]\:bg-accent[data-state=on]{--tw-bg-opacity: 1;background-color:rgb(17 234 234 / var(--tw-bg-opacity, 1))}.data-\[state\=unchecked\]\:bg-\[\#34547a\][data-state=unchecked]{--tw-bg-opacity: 1;background-color:rgb(52 84 122 / var(--tw-bg-opacity, 1))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:#f0f3fc9e}.data-\[state\=active\]\:text-background[data-state=active],.data-\[state\=on\]\:text-background[data-state=on]{--tw-text-opacity: 1;color:rgb(1 25 50 / var(--tw-text-opacity, 1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}@media (max-width: 720px){.max-\[720px\]\:col-span-1{grid-column:span 1 / span 1}.max-\[720px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}.\[\&\:-webkit-autofill\]\:\[-webkit-text-fill-color\:white\]:-webkit-autofill{-webkit-text-fill-color:white}.\[\&\:-webkit-autofill\]\:\[box-shadow\:0_0_0_1000px_\#012142_inset\]:-webkit-autofill{box-shadow:0 0 0 1000px #012142 inset}.\[\&\:-webkit-autofill\]\:\[transition\:background-color_9999s_ease-in-out_0s\]:-webkit-autofill{-webkit-transition:background-color 9999s ease-in-out 0s;transition:background-color 9999s ease-in-out 0s}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:text-accent>svg{--tw-text-opacity: 1;color:rgb(17 234 234 / var(--tw-text-opacity, 1))}.\[\&\>svg\]\:text-destructive>svg{--tw-text-opacity: 1;color:rgb(255 128 128 / var(--tw-text-opacity, 1))}.\[\&\>svg\]\:text-success>svg{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.\[\&_tr\]\:border-border-soft tr{--tw-border-opacity: 1;border-color:rgb(39 51 79 / var(--tw-border-opacity, 1))}
