@layer reset, app, base, components, utilities;*,:after,:before{--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/0.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/0.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: }:root{--background:0 0% 100%;--foreground:207 80% 14%;--card:0 0% 100%;--card-foreground:207 80% 14%;--popover:0 0% 100%;--popover-foreground:207 80% 14%;--primary:209 71% 53%;--primary-foreground:0 0% 100%;--secondary:210 20% 94%;--secondary-foreground:207 80% 14%;--muted:210 20% 94%;--muted-foreground:202 20% 36%;--accent-hsl:200 20% 97%;--accent-foreground:207 80% 14%;--destructive:0 72% 51%;--destructive-foreground:0 0% 100%;--border-hsl:210 16% 87%;--input:210 16% 87%;--ring:209 71% 53%;--radius:0.5rem}.tw,.tw *,.tw :after,.tw :before{border-width:0;border-style:solid;border-color:hsl(var(--border-hsl))}.visible{visibility:visible}.static{position:static}.z-50{z-index:50}.mt-1{margin-top:.25rem}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.\!hidden{display:none!important}.hidden{display:none}.h-10{height:2.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-56{width:14rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-full{width:100%}.shrink-0{flex-shrink:0}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-\[var\(--border\)\]{border-color:var(--border)}.border-border{border-color:hsl(var(--border-hsl))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.bg-\[var\(--accent-primary\)\]{background-color:var(--accent-primary)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-background{background-color:hsl(var(--background))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.p-1\.5{padding:.375rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.pt-1{padding-top:.25rem}.text-left{text-align:left}.text-\[13px\]{font-size:13px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-40{opacity:.4}.shadow-\[0_1px_2px_rgba\(7\2c 39\2c 65\2c 0\.16\)\]{--tw-shadow:0 1px 2px rgba(7,39,65,0.16);--tw-shadow-colored:0 1px 2px var(--tw-shadow-color)}.shadow-\[0_1px_2px_rgba\(7\2c 39\2c 65\2c 0\.16\)\],.shadow-md{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/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{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/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.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}@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}@layer reset{.tw [type=button],.tw [type=reset],.tw [type=submit],.tw button{background-color:transparent;background-image:none}}@layer app{:root{--palette-cyan:#65c9d4;--palette-blue:#348adc;--palette-navy:#072741;--palette-white:#fbfcfc;--palette-border:#dadfe4;--palette-gray:#bcc4c9;--bg:var(--palette-white);--surface:#ffffff;--header-bg:var(--palette-cyan);--accent-primary:var(--palette-blue);--border:var(--palette-border);--border-light:var(--palette-border);--text:var(--palette-navy);--text-muted:#4a6270;--text-light:var(--palette-gray);--accent:var(--palette-navy);--highlight:rgba(52,138,220,0.1);--tag-bg:#eef1f3;--row-hover:#f6f8f9;--sidebar-width:220px;--destructive-text:#c62828;--success-text:#1b5e20}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{height:100%;max-height:100dvh;background:var(--bg)}.app-main,.app-shell{display:flex;overflow:hidden}.app-main{flex:1;min-width:0;min-height:0;flex-direction:column}.main-content{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch}.main-content--fluid{padding:0}.app-shell-fallback{height:100%;background:var(--bg)}.app-root,.sidebar{height:100%;overflow:hidden}.sidebar{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);align-self:stretch;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border-light);position:relative;z-index:40}.sidebar-header{justify-content:space-between;gap:8px;padding:14px 12px;border-bottom:1px solid var(--border-light);min-height:56px;flex-shrink:0}.sidebar-header,.sidebar-logo{display:flex;align-items:center}.sidebar-logo{gap:10px;min-width:0;flex:1}.sidebar-logo-text{font-size:15px;font-weight:700;letter-spacing:-.03em;color:var(--text)}.sidebar-logo-text span{color:var(--accent-primary)}.sidebar-nav{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--text-muted);font-size:13px;font-weight:500}.sidebar-link:hover{background:var(--row-hover);color:var(--text)}.sidebar-link.active{background:var(--highlight);color:var(--accent-primary)}.sidebar-link-icon{display:flex;width:18px;height:18px;flex-shrink:0}.sidebar-footer{padding:12px;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-muted)}.app-page{min-height:0;background:var(--surface)}.task-page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 32px;border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:15;background:var(--surface)}.app-page-title{font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.2}.app-page-subtitle{margin-top:4px;font-size:13px;color:var(--text-muted)}.app-page-body{padding:24px 32px}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:var(--surface);color:var(--text)}.btn:hover{background:var(--highlight)}.btn-primary{background:var(--accent-primary);color:white;border-color:var(--accent-primary)}.btn-primary:hover{background:#2a74c4}.btn-sm{padding:6px 12px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:16px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title{font-size:15px;font-weight:600}.data-table-wrapper{width:100%;overflow-x:auto}.data-table-wrapper--scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table--fixed{table-layout:fixed}.data-table td,.data-table th{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border-light);font-size:14px;vertical-align:middle}.data-table thead th{font-size:12px;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--text);background:var(--surface);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative}.data-table thead th button{display:inline-flex;align-items:center;gap:4px;border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;max-width:100%}.data-table__resize{position:absolute;top:0;right:-3px;z-index:10;display:flex;align-items:center;justify-content:center;width:7px;height:100%;cursor:col-resize;touch-action:none}.data-table__resize-line{width:1px;height:50%;background:var(--border);transition:background .12s ease,width .12s ease}.data-table th:hover .data-table__resize-line,.data-table__resize:hover .data-table__resize-line{width:2px;background:var(--accent-primary);opacity:.45}.data-table tbody tr{transition:background .12s ease}.data-table tbody tr:hover{background:var(--row-hover)}.data-table a{color:var(--accent-primary);font-weight:500}.data-table a:hover{text-decoration:underline}.data-table__muted{color:var(--text-muted);font-size:13px}.data-table__header-row{display:flex;align-items:center;gap:4px;padding-right:4px}.data-table__header-label{min-width:0;flex:1}.tag-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--tag-bg);color:var(--text-muted)}.tag-pill--partial{background:color-mix(in srgb,#b45309 14%,transparent);color:#b45309}.tag-pill--success{background:#e8f5e9;color:var(--success-text)}.tag-pill--error{background:#ffebee;color:var(--destructive-text)}.muted{color:var(--text-muted)}.mono,.muted{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;word-break:break-word}.empty-state{padding:48px 24px;text-align:center;color:var(--text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:#f4f7fb}.login-card{width:min(100%,24rem);padding:2rem;border-radius:12px;background:#fff;box-shadow:0 8px 32px rgba(15,40,70,.08)}.login-card h1{margin:0 0 .5rem;font-size:1.5rem;color:#0a3557}.login-hint{margin:0 0 1.25rem;color:#5a7189;font-size:.9375rem;line-height:1.5}.login-field{margin-bottom:1rem}.login-field label{display:block;margin-bottom:.35rem;font-size:13px;font-weight:600;color:var(--text)}.login-field input{width:100%;padding:.65rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9375rem}.login-field input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--highlight)}.login-error{margin:0 0 1rem;color:var(--destructive-text);font-size:13px}.login-button{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;border:none;border-radius:8px;background:var(--palette-cyan);color:#072741;font-size:.9375rem;font-weight:600;cursor:pointer;text-decoration:none}.login-button:hover{filter:brightness(.95)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button--secondary{background:#eef1f3;color:#072741}.login-oauth{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.25rem}.login-divider{text-align:center;color:var(--text-muted);font-size:.8125rem;margin:.75rem 0}.sidebar-user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-signout,.sidebar-user{font-size:12px;color:var(--text-muted);margin-bottom:.5rem}.sidebar-signout{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:none;cursor:pointer;padding:0}.sidebar-signout:hover{color:var(--text)}.setup-steps{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.875rem;line-height:1.5}.setup-steps li+li{margin-top:.35rem}.setup-steps code{font-size:.8em}.activity-run-header{display:flex;align-items:flex-start;gap:.5rem;width:100%;background:transparent;border:none;padding:0;text-align:left;cursor:pointer;color:inherit}.activity-run-chevron{margin-top:.15rem;color:var(--text-muted)}.activity-run-main{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.activity-run-title{font-weight:600;font-size:.95rem}.activity-run-meta,.activity-run-summary{font-size:.8125rem}.activity-run-body{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border)}.activity-steps{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.activity-step{display:flex;gap:.65rem;align-items:flex-start}.activity-step-index{width:1.4rem;height:1.4rem;border-radius:999px;background:var(--tag-bg);color:var(--text-muted);font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.1rem}.activity-step-content{flex:1;min-width:0}.activity-step-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.activity-step-label{font-weight:500;color:inherit;text-decoration:none}.activity-step-label:hover{color:var(--accent-primary)}.activity-step-error,.activity-step-sub{font-size:.8125rem;margin-top:.2rem}.docs-content{max-width:720px}.docs-content h1{font-size:24px;font-weight:600;letter-spacing:-.03em;margin-bottom:12px}.docs-content h2{font-size:18px;font-weight:600;margin:28px 0 10px;letter-spacing:-.02em}.docs-content h3{font-size:15px;font-weight:600;margin:20px 0 8px}.docs-content p{margin-bottom:12px;color:var(--text)}.docs-content ol,.docs-content ul{margin:0 0 12px 1.25rem}.docs-content li{margin-bottom:6px}.docs-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;background:var(--tag-bg);padding:1px 5px;border-radius:4px}.docs-content pre{background:#072741;color:#fbfcfc;padding:14px 16px;border-radius:8px;overflow-x:auto;margin:0 0 16px;font-size:12px;line-height:1.5}.docs-content pre code{background:transparent;padding:0;color:inherit}.docs-content a{color:var(--accent-primary)}.docs-content a:hover{text-decoration:underline}.filter-input,.filter-select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:13px;color:var(--text)}.filter-input{min-width:10rem}.sticky-page-header{position:sticky;top:0;z-index:5;background:var(--bg);padding-bottom:.75rem}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem}.list-search{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;background:var(--surface);min-width:min(20rem,100%)}.list-search input{border:none;outline:none;background:transparent;width:100%;font-size:13px}.course-chrome{border-bottom:1px solid var(--border);background:var(--surface);padding:.85rem 1.25rem 0;position:sticky;top:0;z-index:6}.course-chrome-top{margin-bottom:.65rem;min-width:0}.course-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0;min-width:0;font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0}.course-breadcrumb__root{color:inherit;text-decoration:none}.course-breadcrumb__root:hover{color:var(--accent-primary)}.course-breadcrumb__segment{display:inline-flex;align-items:center;min-width:0}.course-breadcrumb__sep{margin:0 .45em;color:var(--text-light,#94a3b8);font-weight:400}.course-breadcrumb__current{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-tabs{display:flex;gap:.15rem;overflow-x:auto}.course-tab{padding:.55rem .75rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}.course-tab:hover{color:var(--text)}.course-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);font-weight:600}.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.5rem}.stat-cell{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem .85rem}.stat-value{font-size:1.35rem;font-weight:600;letter-spacing:-.03em}.stat-label{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.row-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.checkbox-row{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;margin-top:.5rem}.linkish{background:none;border:none;padding:0;color:var(--accent-primary);cursor:pointer;font:inherit;text-align:left}.linkish:hover{text-decoration:underline}.sheet-backdrop{position:fixed;inset:0;background:rgba(7,39,65,.35);z-index:40;display:flex;justify-content:flex-end}.sheet-panel{width:min(28rem,100%);height:100%;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 24px rgba(7,39,65,.08)}.sheet-footer,.sheet-header{padding:1rem 1.1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.sheet-footer{border-bottom:none;border-top:1px solid var(--border);margin-top:auto}.sheet-body{padding:1rem 1.1rem;overflow:auto;flex:1}.login-field select,.login-field textarea,.sheet-body select,.sheet-body textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:.5rem .65rem;font:inherit;background:var(--bg);color:var(--text)}.gradebook-scroll{overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.gradebook-table{min-width:-moz-max-content;min-width:max-content}.gradebook-table .sticky-col{position:sticky;left:0;background:var(--surface);z-index:1;min-width:10rem}.grade-cell{border:1px solid transparent;background:transparent;padding:.35rem .5rem;border-radius:4px;cursor:pointer;font:inherit;min-width:2.5rem}.grade-cell:hover{border-color:var(--border);background:var(--highlight)}.stack-list{display:grid;gap:.75rem}.module-header{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.module-toggle{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;flex:1;text-align:left;min-width:10rem}.module-items{list-style:none;margin:.85rem 0 0;padding:.85rem 0 0;border-top:1px solid var(--border);display:grid;gap:.55rem}.module-items li{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.html-blob{margin-top:.75rem;font-size:.875rem;line-height:1.5}.html-blob p{margin:0 0 .5rem}.view-toggle{height:32px;padding:3px;gap:2px;background:var(--tag-bg);border-radius:8px}.view-toggle,.view-toggle button{display:inline-flex;align-items:center}.view-toggle button{gap:.35rem;height:26px;padding:0 10px;font-size:12px;font-weight:600;color:var(--text-muted);background:transparent;border:none;border-radius:6px;cursor:pointer}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(7,39,65,.12)}.filter-menu{position:relative}.filter-menu-trigger{display:inline-flex;align-items:center;gap:.35rem;height:32px;padding:0 10px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}.filter-menu-trigger.active{border-color:var(--accent-primary);color:var(--accent-primary)}.filter-menu-panel{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:14rem;max-height:18rem;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(7,39,65,.12);padding:.35rem 0}.filter-menu-actions{display:flex;gap:.75rem;padding:.35rem .75rem .5rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.filter-menu-actions button{background:none;border:none;padding:0;font-size:12px;font-weight:600;color:var(--accent-primary);cursor:pointer}.filter-menu-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:13px;cursor:pointer}.filter-menu-item:hover{background:var(--highlight)}.course-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:.75rem}.course-card{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.05rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;text-decoration:none;color:inherit;transition:border-color .12s ease,box-shadow .12s ease}.course-card:hover{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border));box-shadow:0 2px 10px rgba(7,39,65,.06)}.course-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.course-card-term{font-size:.75rem;text-align:right}.course-card-title{font-size:.95rem;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.35}.course-card-meta{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.8125rem}}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-\[\#2a74c4\]:hover{--tw-bg-opacity:1;background-color:rgb(42 116 196/var(--tw-bg-opacity,1))}.hover\:bg-\[var\(--highlight\)\]:hover{background-color:var(--highlight)}.hover\:bg-accent:hover{background-color:hsl(var(--accent-hsl))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[0_2px_6px_rgba\(7\2c 39\2c 65\2c 0\.2\)\]:hover{--tw-shadow:0 2px 6px rgba(7,39,65,0.2);--tw-shadow-colored:0 2px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50: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-1[data-side=bottom]{--tw-enter-translate-y:-0.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}