@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=Rajdhani:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after,::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:#3b82f680;--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:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family: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:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-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{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}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{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*,:before,:after{box-sizing:border-box}html{height:100%}body{color:#333;background:#f2f2f2;min-height:100vh;font-family:DM Sans,sans-serif;font-size:13px}#root{flex-direction:column;height:100%;display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#1a5cac;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#154d96}::selection{background:#1a5cac26}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!panel,.panel{--tw-border-opacity:1;border-width:1px;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));border-radius:.75rem}.\!panel{box-shadow:0 1px 4px #0000000f!important}.panel{box-shadow:0 1px 4px #0000000f}.visible{visibility:visible}.collapse{visibility:collapse}.\!table{display:table!important}.table{display:table}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border{border-width:1px}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.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)}.rs-white .react-select__control{color:#333;font-size:13px;min-height:36px!important;box-shadow:none!important;background:#fff!important;border-color:#ddd!important;border-radius:3px!important}.rs-white .react-select__control:hover,.rs-white .react-select__control--is-focused{border-color:#1a5cac!important;box-shadow:0 0 0 2px #1a5cac26!important}.rs-white .react-select__menu{z-index:9999!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:4px!important;box-shadow:0 8px 24px #0000001f!important}.rs-white .react-select__option{cursor:pointer;padding:7px 12px;font-size:13px;color:#333!important;background:0 0!important}.rs-white .react-select__option--is-focused{background:#f0f6ff!important}.rs-white .react-select__option--is-selected{color:#fff!important;background:#1a5cac!important}.rs-white .react-select__multi-value{background:#eaf2ff!important;border:1px solid #b8d5f8!important;border-radius:2px!important}.rs-white .react-select__multi-value__label{font-weight:500;color:#1a5cac!important;font-size:11px!important}.rs-white .react-select__multi-value__remove{color:#888!important}.rs-white .react-select__multi-value__remove:hover{color:#c0392b!important;background:#c0392b1a!important}.rs-white .react-select__placeholder{color:#bbb!important}.rs-white .react-select__input-container,.rs-white .react-select__single-value{color:#333!important}.rs-white .react-select__indicator-separator{background:#e0e0e0!important}.rs-white .react-select__dropdown-indicator{color:#aaa!important}.rs-white .react-select__dropdown-indicator:hover{color:#1a5cac!important}.rs-white .react-select__clear-indicator:hover{color:#c0392b!important}.rs-white .react-select__value-container--is-multi{scrollbar-width:thin;scrollbar-color:#1a5cac #f0f0f0;gap:4px;min-height:38px;flex-wrap:nowrap!important;padding:4px 8px!important;overflow:auto hidden!important}.rs-white .react-select__value-container--is-multi::-webkit-scrollbar{height:5px}.rs-white .react-select__value-container--is-multi::-webkit-scrollbar-track{background:#f0f0f0;border-radius:99px}.rs-white .react-select__value-container--is-multi::-webkit-scrollbar-thumb{background:#1a5cac;border-radius:99px}.rs-white .react-select__multi-value{flex-shrink:0!important}.Toastify__toast{color:#333!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:4px!important;font-family:DM Sans,sans-serif!important;font-size:13px!important;box-shadow:0 4px 16px #0000001a!important}.Toastify__toast--success{border-color:#1a8a4a59!important}.Toastify__toast--error{border-color:#c0392b59!important}.Toastify__progress-bar--success{background:#1a8a4a!important}.Toastify__progress-bar--error{background:#c0392b!important}.Toastify__close-button{color:#aaa!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-up{animation:.22s both fadeInUp}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:3px;animation:1.4s infinite shimmer}.bg-surface-bg{background:#f2f2f2}.bg-surface-card{background:#fff}.bg-surface-hover{background:#f5f7fa}.border-surface-border{border-color:#e8e8e8}.text-ink-900{color:#222}.text-ink-700{color:#444}.text-ink-500{color:#777}.text-ink-400{color:#999}.text-ink-300{color:#bbb}.text-brand-700{color:#1a5cac}.text-ok{color:#1a8a4a}.text-bad{color:#c0392b}.text-warn{color:#e05c00}.bg-brand-50{background:#eaf2ff}.bg-brand-100{background:#d0e4f8}.font-display{font-family:Rajdhani,sans-serif}.font-body{font-family:DM Sans,sans-serif}.font-mono{font-family:JetBrains Mono,monospace}.grecaptcha-badge{visibility:hidden!important;opacity:0!important;pointer-events:none!important}:root{--brand:#1a5cac;--brand-hover:#154d96;--brand-50:#eaf2ff;--brand-100:#d0e4f8;--brand-tint:#f0f6ff;--brand-border:#b8d5f8;--brand-ring:0 0 0 2px #1a5cac26;--nav-hover:#f0f5ff;--ink-900:#222;--ink-800:#333;--ink-700:#444;--ink-600:#555;--ink-500:#777;--ink-450:#888;--ink-400:#999;--ink-350:#aaa;--ink-300:#bbb;--surface-bg:#f2f2f2;--surface-card:#fff;--surface-hover:#f5f7fa;--row-hover:#fafcff;--track:#f0f0f0;--line:#e8e8e8;--line-input:#ddd;--line-menu:#e0e0e0;--line-panel:#e5e7eb;--ok:#1a8a4a;--ok-bg:#e6f9f0;--ok-border:#a5dfbc;--bad:#c0392b;--bad-bg:#fff0f0;--bad-border:#f5b7b1;--warn:#e05c00;--warn-bg:#fff4eb;--warn-border:#f7c9a3;--muted-bg:#f5f7fa;--muted-border:#ddd;--radius-xs:3px;--radius:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--shadow-panel:0 1px 4px #0000000f;--shadow-toast:0 4px 16px #0000001a;--shadow-menu:0 8px 24px #0000001f;--font-body:"DM Sans", sans-serif;--font-display:"Rajdhani", sans-serif;--font-mono:"JetBrains Mono", monospace;--sidebar-w:232px;--gutter:24px}html,body{height:100%}body{font-family:var(--font-body);color:var(--ink-800);background:var(--surface-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.45}body.login-modal-open{overflow:hidden}button,input,select,textarea{font-family:inherit}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-hover)}svg{flex-shrink:0}h1,h2,h3{font-family:var(--font-display);color:var(--ink-900);letter-spacing:.01em;margin:0;font-weight:700}p{margin:0}.hidden,.hidden-month-controls{display:none!important}.muted-text{color:var(--ink-400);font-size:12px}.primary-btn,.secondary-btn,.danger-btn,.send-icon-btn{border-radius:var(--radius);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:12px;line-height:16px;transition:all .15s;display:inline-flex}.primary-btn:focus,.secondary-btn:focus,.danger-btn:focus,.send-icon-btn:focus{outline:none}.primary-btn:focus-visible,.secondary-btn:focus-visible,.danger-btn:focus-visible,.send-icon-btn:focus-visible{box-shadow:var(--brand-ring)}.primary-btn:disabled,.secondary-btn:disabled,.danger-btn:disabled{opacity:.5;cursor:not-allowed}.primary-btn{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.primary-btn:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.secondary-btn{border-color:var(--line-input);color:var(--ink-600);background:#fff;font-weight:500}.secondary-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.danger-btn{border-color:var(--bad-border);color:var(--bad);background:#fff;font-weight:500}.danger-btn:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad)}.small-btn{min-height:28px;padding:5px 10px}.action-icon-btn{border:1px solid var(--line-input);width:28px;height:28px;min-height:28px;color:var(--ink-450);border-radius:var(--radius);background:#fff;padding:0}.action-icon-btn svg{width:14px;height:14px;display:block}.action-icon-btn.secondary-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-50)}.action-icon-btn.danger-btn:hover{border-color:var(--bad);color:var(--bad);background:var(--bad-bg)}.action-icon-btn.send-icon-btn:hover{border-color:var(--ok);color:var(--ok);background:var(--ok-bg)}.form-field{flex-direction:column;min-width:0;display:flex}.form-field>label{color:var(--ink-400);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:12px;font-weight:600;line-height:16px;display:block;overflow:hidden}.form-field input,.form-field select,.inline-add-subject input,.password-input-wrap input{border:1px solid var(--line-input);border-radius:var(--radius);width:100%;height:38px;color:var(--ink-800);background:#fff;outline:none;padding:8px 12px;font-size:14px;line-height:20px;transition:all .15s}.form-field input::-moz-placeholder{color:var(--ink-300)}.inline-add-subject input::-moz-placeholder{color:var(--ink-300)}.password-input-wrap input::-moz-placeholder{color:var(--ink-300)}.form-field input::placeholder,.inline-add-subject input::placeholder,.password-input-wrap input::placeholder{color:var(--ink-300)}.form-field input:focus,.form-field select:focus,.inline-add-subject input:focus,.password-input-wrap input:focus{border-color:var(--brand);box-shadow:var(--brand-ring)}.form-field input[readonly]{background:var(--surface-hover);color:var(--ink-600)}.form-field input[readonly]:focus{border-color:var(--line-input);box-shadow:none}.form-field select:disabled{background-color:var(--surface-hover);color:var(--ink-300);cursor:not-allowed}.form-field select{appearance:none;cursor:pointer;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23aaaaaa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:14px;padding-right:32px}.form-field select:hover:not(:disabled){border-color:#c8c8c8}.form-field input[type=date]{font-family:var(--font-mono);font-size:13px}.form-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}.form-field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.9}.form-field input[type=number]{font-family:var(--font-mono);font-size:13px}.form-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:14px;display:flex}.wide{grid-column:1/-1}.password-input-wrap{width:100%;position:relative}.password-input-wrap input{padding-right:42px}.password-toggle{border-radius:var(--radius);width:30px;height:28px;color:var(--ink-350);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.password-toggle:hover{color:var(--brand);background:var(--brand-50)}.password-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.password-icon-hide,.password-toggle.is-visible .password-icon-show{display:none}.password-toggle.is-visible .password-icon-hide{display:block}.alert{border:1px solid #c0392b59;border-left:3px solid var(--bad);color:var(--ink-800);border-radius:var(--radius);box-shadow:var(--shadow-toast);background:#fff;padding:10px 14px;font-size:13px;line-height:1.45}.alert.success{border-color:#1a8a4a59;border-left-color:var(--ok)}.main-content>.alert{z-index:1000;width:min(380px,100vw - 32px);animation:.22s both fadeInUp;position:fixed;top:16px;right:16px}.pill{border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;line-height:16px;display:inline-flex}.pill.present,.status-dot.present,.code-chip.present b{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-border)}.pill.absent,.status-dot.absent,.code-chip.absent b{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-border)}.pill.leave,.status-dot.leave,.code-chip.leave b{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border)}.pill.half,.status-dot.half,.code-chip.half b{background:var(--brand-50);color:var(--brand);border-color:var(--brand-border)}.pill.notmarked,.status-dot.notmarked,.code-chip.notmarked b{background:var(--muted-bg);color:var(--ink-500);border-color:var(--muted-border)}.overview-status-total,.syllabus-source-chip,.date-day,.account-pill-role{border-radius:var(--radius);white-space:nowrap;background:var(--brand-50);color:var(--brand);border:1px solid var(--brand-border);align-items:center;padding:2px 8px;font-size:12px;font-weight:700;line-height:16px;display:inline-flex}.code-chip{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-600);white-space:nowrap;background:#fff;align-items:center;gap:6px;padding:2px 8px 2px 2px;font-size:12px;font-weight:500;display:inline-flex}.code-chip b{border-radius:var(--radius-xs);width:20px;height:20px;font-family:var(--font-mono);border:1px solid #0000;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.status-dot{border-radius:var(--radius);width:24px;height:24px;font-family:var(--font-mono);border:1px solid #0000;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);background:var(--surface-bg);flex:1;height:100vh;min-height:0;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;min-height:0;padding:14px 12px 12px;display:flex;overflow-y:auto}.brand-block{border-bottom:1px solid var(--line);align-items:center;gap:10px;margin-bottom:12px;padding:4px 6px 16px;display:flex}.brand-mark{border-radius:var(--radius-lg);background:var(--brand);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.brand-mark svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;display:block}.brand-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink-900);font-size:19px;font-weight:700;line-height:1}.brand-subtitle{color:var(--ink-400);margin-top:3px;font-size:11px;line-height:1.3}.nav-list{flex-direction:column;gap:2px;display:flex}.nav-list:before{content:"Menu";color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;padding:0 10px 6px;font-size:11px;font-weight:600;display:block}.nav-item{border-radius:var(--radius-md);width:100%;height:38px;color:var(--ink-600);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0 10px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.nav-item:hover{background:var(--nav-hover);color:var(--brand)}.nav-item.active{background:var(--brand-50);color:var(--brand);font-weight:600}.nav-item.active:before{content:"";background:var(--brand);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.nav-item:focus-visible{box-shadow:var(--brand-ring);outline:none}.nav-icon{width:18px;height:18px;color:var(--ink-400);justify-content:center;align-items:center;display:inline-flex}.nav-item:hover .nav-icon,.nav-item.active .nav-icon{color:var(--brand)}.nav-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px;display:block}.sidebar-account-slot{border-top:1px solid var(--line);margin-top:auto;padding-top:12px}.account-pill-menu{position:relative}.account-pill{border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;background:#fff;align-items:center;gap:8px;padding:6px 8px;list-style:none;transition:border-color .15s,background .15s;display:flex}.account-pill::-webkit-details-marker{display:none}.account-pill:hover{border-color:var(--brand-border);background:var(--row-hover)}.account-pill-menu[open] .account-pill{border-color:var(--brand);box-shadow:var(--brand-ring)}.account-pill-avatar{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.account-pill-name{min-width:0;color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.account-pill-role{letter-spacing:.04em;padding:1px 6px;font-size:10px}.account-pill-arrow{color:var(--ink-400);transition:transform .15s;display:inline-flex}.account-pill-arrow svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;display:block}.account-pill-menu[open] .account-pill-arrow{transform:rotate(180deg)}.account-pill-dropdown{border:1px solid var(--line-menu);border-radius:var(--radius);box-shadow:var(--shadow-menu);z-index:50;background:#fff;padding:4px;animation:.15s both fadeInUp;position:absolute;bottom:calc(100% + 6px);left:0;right:0}.account-pill-signout{text-align:left;border-radius:var(--radius-xs);width:100%;color:var(--bad);cursor:pointer;background:0 0;border:0;padding:7px 12px;font-size:13px;font-weight:500}.account-pill-signout:hover{background:var(--bad-bg)}.main-content{min-width:0;min-height:0;padding:20px var(--gutter) 28px;overflow-y:auto}.page-section{display:none}.page-section.active{animation:.22s both fadeInUp;display:block}.tab-panel{display:none}.tab-panel.active{display:block}.premium-dashboard-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.premium-dashboard-head h1{font-size:26px;line-height:1.15}.premium-dashboard-head p{color:var(--ink-500);margin-top:2px;font-size:13px}.premium-head-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.top-sanathana-logo{width:auto;height:40px;display:block}.date-pill{border:1px solid var(--line-input);border-radius:var(--radius);height:32px;color:var(--ink-600);font-family:var(--font-mono);cursor:default;background:#fff;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:500;display:inline-flex}.date-pill svg{fill:none;width:14px;height:14px;stroke:var(--brand);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;display:block}.section-tabbar{border-bottom:1px solid var(--line-menu);scrollbar-width:none;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.section-tabbar::-webkit-scrollbar{display:none}.section-tab{color:var(--ink-500);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s;position:relative}.section-tab:hover{color:var(--brand)}.section-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.section-tab:focus-visible{box-shadow:var(--brand-ring);border-radius:var(--radius) var(--radius) 0 0;outline:none}.panel{border:1px solid var(--line-panel);border-radius:var(--radius-xl);box-shadow:var(--shadow-panel);background:#fff;min-width:0;padding:16px 18px}.panel+.panel,.tab-panel>.panel+.panel{margin-top:14px}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.panel-header h2,.attendance-title-block h2{font-size:18px;line-height:1.2}.panel-header p,.attendance-title-block p{color:var(--ink-400);margin-top:2px;font-size:12px}.small-actions,.header-filter-actions,.tab-downloads{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.header-filter-actions .form-field{min-width:170px}.filter-grid,.attendance-entry-tools{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:14px;display:grid}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;max-width:100%;overflow:auto}.table-wrap table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px;line-height:20px}.table-wrap thead th{z-index:2;color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap;background:var(--surface-hover);border-bottom:2px solid var(--line);padding:10px 12px;font-size:11px;font-weight:600;line-height:16px;position:sticky;top:0}.table-wrap tbody td{color:var(--ink-700);border-bottom:1px solid var(--line);vertical-align:middle;background:#fff;padding:10px 12px;transition:background .1s}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover td{background:var(--row-hover)}.table-wrap tbody tr.selected-student-row td,.table-wrap tbody tr.row-selected td{background:var(--brand-tint)}.table-wrap tbody td[colspan]{color:var(--ink-400);text-align:center;padding:28px 12px}.student-name{color:var(--ink-900);white-space:nowrap;font-weight:600}.student-view-table td,.marks-display-table td,.overview-status-table td,.attendance-entry-table td,.action-row{white-space:nowrap}.action-row>button+button{margin-left:6px}.compact-action-row{align-items:center;gap:6px;display:flex}.table-wrap tbody td.compact-action-row{display:table-cell}.compact-action-row .action-icon-btn{display:inline-flex}.compact-action-row .action-icon-btn+.action-icon-btn{margin-left:4px}.whatsapp-phone-link{border-radius:var(--radius);color:var(--ok);font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;align-items:center;margin:-2px -6px;padding:2px 6px;font-size:12px;font-weight:500;transition:background .15s;display:inline-flex}.whatsapp-phone-link:hover{background:var(--ok-bg);text-decoration:underline}.student-view-wrap,.marks-display-wrap,.monthly-wrap,.attendance-entry-wrap{min-height:220px;max-height:calc(100vh - 300px)}.overview-status-table-wrap{max-height:300px}.overview-filter-panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;display:flex}.overview-filter-panel .panel-header{margin-bottom:0}.overview-filter-grid{grid-template-columns:repeat(2,minmax(160px,200px));gap:12px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.stat-card{border:1px solid var(--line-panel);border-radius:var(--radius-xl);box-shadow:var(--shadow-panel);background:#fff;align-items:center;gap:14px;min-width:0;padding:16px 18px;display:flex}.metric-icon{border-radius:var(--radius-lg);background:var(--brand-50);width:42px;height:42px;color:var(--brand);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.metric-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;display:block}.present-metric .metric-icon{background:var(--ok-bg);color:var(--ok)}.attendance-metric .metric-icon{background:var(--brand-100);color:var(--brand-hover)}.marks-metric .metric-icon{background:var(--warn-bg);color:var(--warn)}.metric-body{flex-direction:column;min-width:0;display:flex}.metric-body>span{color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.metric-body strong{font-family:var(--font-display);color:var(--ink-900);font-size:30px;font-weight:700;line-height:1.1}.metric-body small{color:var(--ink-400);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.overview-attendance-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;margin-top:14px;display:grid}.overview-attendance-grid>.panel+.panel{margin-top:0}.status-summary{flex-direction:column;gap:6px;display:flex}.status-box{border:1px solid var(--line);border-radius:var(--radius-lg);text-align:left;cursor:pointer;background:#fff;grid-template-columns:1fr auto 52px;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 12px;transition:all .15s;display:grid}.status-box .pill{justify-self:start}.status-box strong{font-family:var(--font-display);color:var(--ink-900);font-size:20px;font-weight:700;line-height:1}.status-box .status-percent{font-family:var(--font-mono);color:var(--ink-400);text-align:right;font-size:11px}.status-box:hover{border-color:var(--brand-border);background:var(--row-hover)}.status-box.active{border-color:var(--brand);background:var(--brand-tint);box-shadow:inset 3px 0 0 var(--brand)}.status-box.active .status-percent{color:var(--brand)}.overview-status-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.overview-status-title h3{font-size:18px;line-height:1.2}.overview-student-card{border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding:8px 0;display:flex}.form-grid,.student-master-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 16px;display:grid}.attendance-entry-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.attendance-title-block p{font-family:var(--font-mono);color:var(--ink-500);align-items:center;gap:8px;margin-top:4px;display:flex}.attendance-title-block .date-day{font-family:var(--font-body)}.attendance-title-block .date-day:empty{display:none}.attendance-entry-actions{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.attendance-date-field{min-width:180px}.attendance-save-btn{height:38px}.attendance-status-row{margin-bottom:14px}.status-pick-row{background:var(--surface-hover);border:1px solid var(--line);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.status-pick-label{color:var(--ink-500);margin-right:auto;padding-right:8px;font-size:12px;font-weight:600}.attendance-code-control{align-items:center;gap:8px;display:inline-flex}.attendance-code-input{text-align:center;text-transform:uppercase;width:44px;height:30px;font-family:var(--font-mono);color:var(--ink-900);border:1px solid var(--line-input);border-radius:var(--radius);background:#fff;outline:none;padding:0;font-size:13px;font-weight:700;transition:all .15s}.attendance-code-input:focus{border-color:var(--brand);box-shadow:var(--brand-ring)}.attendance-code-input.invalid-status-code{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.attendance-code-hint{font-family:var(--font-mono);color:var(--ink-300);font-size:11px}.attendance-name-cell{cursor:pointer}.monthly-table thead th{text-align:center;padding:8px 6px}.monthly-table thead th .month-day{color:var(--ink-300);letter-spacing:.04em;font-size:10px;font-weight:500;display:block}.monthly-table thead th.active-date-head{background:var(--brand-50);color:var(--brand)}.monthly-table thead th.active-date-head .month-day{color:var(--brand)}.monthly-table thead th.locked-date-head{color:var(--ink-300)}.monthly-table tbody td{text-align:center;padding:6px}.monthly-table tbody td strong{font-family:var(--font-mono);color:var(--ink-900);font-size:13px}.monthly-table .student-col{z-index:1;text-align:left;min-width:190px;box-shadow:inset -1px 0 0 var(--line);padding-left:12px;position:sticky;left:0}.monthly-table thead .student-col{z-index:3;text-align:left;padding-left:12px}.monthly-table .action-col{z-index:1;box-shadow:inset 1px 0 0 var(--line);position:sticky;right:0}.monthly-table thead .action-col{z-index:3}.monthly-table tbody td.selected-date-cell{background:var(--brand-tint)}.monthly-table tbody td.view-editable-cell{background:#fff}.monthly-table tbody tr.editing-attendance-row td{background:var(--brand-tint)}.monthly-table .monthly-code-input{width:34px;height:28px;font-size:12px}.attendance-row-actions{white-space:nowrap;justify-content:center;gap:6px;display:flex}.inactive-save-row-edit-btn{opacity:.45}.inactive-save-row-edit-btn:hover:not(:disabled){background:var(--brand);border-color:var(--brand)}.editing-row-edit-btn{background:var(--brand-50);border-color:var(--brand);color:var(--brand)}.monthly-table tbody tr.attendance-edit-helper-row td{background:var(--surface-hover);text-align:left;padding:8px 12px}.view-edit-status-panel{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.view-edit-label{color:var(--ink-900);font-size:12px;font-weight:600}.view-edit-tip{color:var(--ink-500);font-size:12px}.attendance-code-legend{flex-wrap:wrap;gap:6px;display:flex}.marks-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;display:grid}.mf-remarks{grid-column:span 2}.mf-actions{grid-column:1/-1}.subject-control{gap:6px;display:flex}.subject-control select{flex:1;min-width:0}.add-subject-btn{flex-shrink:0;height:38px}.marks-date-panel{min-width:170px}.inline-add-subject{background:var(--surface-hover);border:1px dashed var(--line-input);border-radius:var(--radius-lg);align-items:center;gap:8px;margin-top:14px;padding:12px;display:flex}.inline-add-subject input{flex:1}.inline-add-subject .small-btn{height:38px}.analysis-filter-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:0}.analysis-toolbar-actions{border-top:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;padding-top:14px;display:flex}.analysis-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px;display:grid}.analysis-kpi-grid:empty{display:none}.analysis-kpi-card{border:1px solid var(--line-panel);border-radius:var(--radius-xl);min-width:0;box-shadow:var(--shadow-panel);background:#fff;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.analysis-kpi-card span{color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.analysis-kpi-card strong{font-family:var(--font-display);color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;font-size:26px;font-weight:700;line-height:1.15;overflow:hidden}.analysis-kpi-card small{color:var(--ink-400);font-size:12px}.analysis-kpi-card:first-child{border-top:3px solid var(--brand)}.analysis-insights-card{margin-top:14px}.analysis-insights-card:empty{display:none}.analysis-insights-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.analysis-insights-head h3{font-size:18px}.analysis-insights-head span{font-family:var(--font-mono);color:var(--brand);background:var(--brand-50);border:1px solid var(--brand-border);border-radius:var(--radius);padding:2px 8px;font-size:11px;font-weight:500}.analysis-insights-card ul{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.analysis-insights-card li{background:var(--surface-hover);border-left:3px solid var(--brand);border-radius:var(--radius);color:var(--ink-700);padding:9px 12px;font-size:13px}.analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;margin-top:14px;display:grid}.analysis-grid>.panel+.panel{margin-top:0}.analysis-grid>.marks-pie-card{grid-column:1/-1}.marks-pie-card .pie-analysis-wrap{grid-template-columns:200px minmax(0,560px);justify-content:start;gap:32px}.analysis-card .panel-header{margin-bottom:12px}.analysis-card .panel-header h2{font-size:17px}.chart-box{min-height:200px}.empty-chart{text-align:center;min-height:180px;color:var(--ink-400);border:1px dashed var(--line-input);border-radius:var(--radius-lg);background:#fafafa;justify-content:center;align-items:center;padding:24px;font-size:13px;display:flex}.chart-box .bar-chart{flex-direction:column;gap:12px;display:flex}.bar-row{grid-template-columns:minmax(70px,120px) minmax(0,1fr) 54px;align-items:center;gap:10px;display:grid}.bar-label{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.bar-track{background:var(--track);border-radius:99px;height:8px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:99px;height:100%;transition:width .4s}.bar-value{font-family:var(--font-mono);color:var(--ink-900);text-align:right;font-size:12px}.shade-1{background:#1a5cac}.shade-2{background:#1a8a4a}.shade-3{background:#e05c00}.shade-4{background:#4a86d4}.shade-5{background:#154d96}.marks-total-chart{flex-direction:column;gap:12px;display:flex}.marks-total-row-chart{grid-template-columns:minmax(70px,110px) minmax(0,1fr);grid-template-areas:"label values""track track";align-items:center;gap:4px 10px;display:grid}.marks-total-label{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;grid-area:label;font-size:12px;font-weight:600;overflow:hidden}.marks-total-track{background:var(--track);border-radius:99px;grid-area:track;height:8px;overflow:hidden}.marks-obtained-fill{border-radius:99px;height:100%;transition:width .4s}.marks-total-values{font-family:var(--font-mono);white-space:nowrap;grid-area:values;justify-self:end;align-items:baseline;gap:4px;font-size:12px;display:flex}.marks-total-values strong{color:var(--ink-900);font-weight:600}.marks-total-values span{color:var(--ink-400)}.marks-total-values em{color:var(--brand);margin-left:6px;font-style:normal;font-weight:600}.pie-analysis-wrap{grid-template-columns:172px minmax(0,1fr);align-items:center;gap:16px;display:grid}.subject-pie-visual{flex-direction:column;align-items:center;gap:8px;display:flex}.pie-chart{border-radius:50%;justify-content:center;align-items:center;width:168px;height:168px;margin:0 auto;display:flex;position:relative}.pie-chart:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:24px;box-shadow:0 0 0 1px #0000000a}.pie-chart>span{z-index:1;font-family:var(--font-display);color:var(--ink-900);text-align:center;flex-direction:column;align-items:center;max-width:110px;font-size:26px;font-weight:700;line-height:1.05;display:flex;position:relative}.subject-pie-center strong{font-family:var(--font-display);color:var(--ink-900);font-size:26px;font-weight:700;line-height:1}.subject-pie-center small{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-400);margin-top:2px;font-size:10px;font-weight:600}.subject-pie-center em{font-family:var(--font-mono);color:var(--ok);margin-top:4px;font-size:10px;font-style:normal;font-weight:500}.subject-pie-note{color:var(--ink-400);text-align:center;font-size:11px}.pie-legend{flex-direction:column;min-width:0;display:flex}.pie-legend-row{border-bottom:1px solid var(--track);grid-template-columns:10px minmax(0,1fr) auto 48px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:grid}.pie-legend-row:last-child{border-bottom:0}.pie-legend-row i{border-radius:2px;width:10px;height:10px}.pie-legend-row span{color:var(--ink-700);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pie-legend-row strong{font-family:var(--font-mono);color:var(--ink-900);white-space:nowrap;font-size:12px;font-weight:600}.pie-legend-row em{font-family:var(--font-mono);color:var(--ink-400);text-align:right;font-size:11px;font-style:normal}.subject-pie-total-row{background:var(--surface-hover);border-radius:var(--radius);font-weight:600}.subject-pie-total-row span{color:var(--ink-900);font-weight:600}.subject-pie-balance-row span,.subject-pie-balance-row strong{color:var(--bad)}.syllabus-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;display:grid}.syllabus-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;display:grid}.syllabus-info-note{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);color:var(--warn);margin-top:14px;padding:10px 12px;font-size:12px;font-weight:500}.landing-page-shell{background:var(--surface-bg);flex-direction:column;min-height:100vh;display:flex}.landing-nav{z-index:20;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.landing-brand{min-width:0;color:inherit;align-items:center;gap:14px;display:flex}.landing-brand:hover{color:inherit}.landing-brand img{width:auto;height:40px;display:block}.landing-brand-divider{background:var(--line-menu);flex-shrink:0;width:1px;height:32px}.landing-brand-title{flex-direction:column;min-width:0;display:flex}.landing-brand-title strong{font-family:var(--font-display);color:var(--ink-900);white-space:nowrap;font-size:18px;font-weight:700;line-height:1.15}.landing-brand-title small{color:var(--ink-400);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.landing-login-btn{border-radius:var(--radius);background:var(--brand);color:#fff;white-space:nowrap;align-items:center;gap:8px;padding:8px 18px;font-size:12px;font-weight:600;transition:background .15s;display:inline-flex}.landing-login-btn:hover{background:var(--brand-hover);color:#fff}.login-arrow{display:inline-flex}.login-arrow svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;display:block}.landing-hero{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:56px;width:100%;max-width:1240px;margin:0 auto;padding:48px 32px;display:grid}.landing-hero-copy{animation:.3s both fadeInUp}.landing-pill{border-radius:var(--radius);background:var(--brand-50);border:1px solid var(--brand-border);color:var(--brand);align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.reference-hero-title{font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink-900);margin-top:18px;font-size:58px;font-weight:700;line-height:.98}.reference-hero-title span{color:var(--brand)}.reference-hero-intro{max-width:520px;color:var(--ink-500);margin-top:16px;font-size:15px;line-height:1.6}.reference-point-list{flex-direction:column;gap:8px;max-width:540px;margin-top:24px;display:flex}.reference-point{border:1px solid var(--line-panel);border-radius:var(--radius-lg);background:#fff;align-items:center;gap:12px;padding:10px 14px;transition:border-color .15s,transform .15s;display:flex}.reference-point:hover{border-color:var(--brand-border);transform:translate(2px)}.reference-point-accent{background:var(--brand);border-radius:99px;flex-shrink:0;width:3px;height:18px}.reference-point p{color:var(--ink-700);font-size:13px}.reference-point strong{color:var(--brand);font-weight:600}.landing-visual{animation:.4s 80ms both fadeInUp;position:relative}.dashboard-preview-card{border:1px solid var(--line-panel);border-radius:var(--radius-xl);box-shadow:var(--shadow-menu);background:#fff;position:relative}.preview-window-bar{border-bottom:1px solid var(--line);background:var(--surface-hover);border-radius:var(--radius-xl) var(--radius-xl) 0 0;justify-content:space-between;align-items:center;height:40px;padding:0 14px;display:flex}.preview-window-bar>span{color:var(--ink-500);font-size:12px;font-weight:600}.preview-window-bar b,.preview-heading-row>span{border-radius:var(--radius);background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border);align-items:center;padding:1px 8px;font-size:11px;font-weight:700;display:inline-flex}.preview-dots{gap:6px;display:flex}.preview-dots i{background:var(--line-input);border-radius:50%;width:9px;height:9px}.preview-dashboard{grid-template-columns:56px minmax(0,1fr);min-height:300px;display:grid}.preview-sidebar{border-right:1px solid var(--line);border-radius:0 0 0 var(--radius-xl);flex-direction:column;align-items:center;gap:10px;padding:14px 0;display:flex}.preview-mini-brand{border-radius:var(--radius-md);background:var(--brand);color:#fff;width:30px;height:30px;font-family:var(--font-display);justify-content:center;align-items:center;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.preview-nav-line{background:var(--line);border-radius:99px;width:28px;height:6px}.preview-nav-line.active{background:var(--brand-100);box-shadow:inset 10px 0 0 var(--brand)}.preview-nav-line.short{width:18px}.preview-content{background:var(--surface-bg);border-radius:0 0 var(--radius-xl) 0;min-width:0;padding:16px}.preview-heading-row{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.preview-heading-row small{color:var(--ink-400);letter-spacing:.06em;font-size:10px;font-weight:600;display:block}.preview-heading-row strong{font-family:var(--font-display);color:var(--ink-900);font-size:20px;font-weight:700;line-height:1.15}.preview-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.preview-stat-grid article{border:1px solid var(--line-panel);border-radius:var(--radius-lg);background:#fff;align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.preview-stat-grid small{color:var(--ink-400);font-size:11px;display:block}.preview-stat-grid strong{font-family:var(--font-display);color:var(--ink-900);font-size:20px;font-weight:700;line-height:1.1}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.stat-icon.blue{background:var(--brand-50);color:var(--brand)}.stat-icon.gold{background:var(--warn-bg);color:var(--warn)}.stat-icon.green{background:var(--ok-bg);color:var(--ok)}.preview-lower-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:8px;margin-top:8px;display:grid}.attendance-chart-card,.student-score-card{border:1px solid var(--line-panel);border-radius:var(--radius-lg);background:#fff;min-width:0;padding:12px}.mini-card-title{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.mini-card-title strong{color:var(--ink-900);font-size:12px;font-weight:600}.mini-card-title span{color:var(--ink-400);font-size:11px}.attendance-chart-card .bar-chart{border-bottom:1px solid var(--line);align-items:flex-end;gap:10px;height:104px;padding:0 4px;display:flex}.attendance-chart-card .bar-chart i{height:var(--bar-height);background:var(--brand);transform-origin:bottom;animation:barGrow .6s var(--bar-delay,0s) cubic-bezier(.2, .7, .3, 1) both;border-radius:3px 3px 0 0;flex:1}.attendance-chart-card .bar-chart i:nth-child(2n){background:#4a86d4}.chart-labels{font-family:var(--font-mono);color:var(--ink-400);justify-content:space-around;padding-top:6px;font-size:10px;display:flex}.student-score-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.score-ring{background:conic-gradient(var(--ok) 0 94%, var(--track) 94% 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:92px;height:92px;display:flex;position:relative}.score-ring:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:9px}.score-ring strong,.score-ring small{position:relative}.score-ring strong{font-family:var(--font-display);color:var(--ink-900);font-size:22px;font-weight:700;line-height:1}.score-ring small{text-transform:uppercase;letter-spacing:.06em;color:var(--ok);font-size:9px;font-weight:600}.student-score-card p{color:var(--ink-500);font-size:11px}.score-track{background:var(--track);border-radius:99px;width:100%;height:6px;overflow:hidden}.score-track i{background:var(--ok);border-radius:99px;width:94%;height:100%;display:block}.preview-floating-note{-moz-column-gap:10px;border:1px solid var(--line-menu);border-radius:var(--radius-lg);box-shadow:var(--shadow-toast);background:#fff;grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:center;column-gap:10px;padding:10px 14px 10px 10px;animation:4s ease-in-out infinite floatNote;display:grid;position:absolute}.preview-floating-note span{border-radius:50%;grid-row:1/3;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.preview-floating-note b{color:var(--ink-900);font-size:12px;font-weight:600}.preview-floating-note small{color:var(--ink-400);font-size:11px}.note-one{bottom:-22px;left:-28px}.note-one span{background:var(--ok-bg);color:var(--ok)}.note-two{animation-delay:-2s;top:-26px;right:-24px}.note-two span{background:var(--brand-50);color:var(--brand)}.login-modal-layer{z-index:100;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.login-modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#2222226b;animation:.2s both fadeIn;position:fixed;inset:0}.login-modal-card{border:1px solid var(--line-menu);border-radius:var(--radius-xl);width:min(400px,100%);box-shadow:var(--shadow-menu);background:#fff;padding:24px 28px;animation:.22s both fadeInUp;position:relative}.login-modal-close{border:1px solid var(--line-input);border-radius:var(--radius);width:28px;height:28px;color:var(--ink-450);background:#fff;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:all .15s;display:inline-flex;position:absolute;top:14px;right:14px}.login-modal-close:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-50)}.login-modal-brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding-bottom:16px;padding-right:36px;display:flex}.login-modal-brand img{width:auto;height:34px;display:block}.login-modal-brand span{border-left:1px solid var(--line-menu);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);padding-left:12px;font-size:11px;font-weight:600;line-height:1.35}.login-modal-heading{margin-top:18px}.login-modal-heading p,.eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--brand);font-size:12px;font-weight:600}.login-modal-heading h1{font-size:28px;line-height:1.15}.login-modal-alert{box-shadow:none;margin-top:14px}.auth-form{flex-direction:column;gap:14px;margin-top:18px;display:flex}.login-forgot-row{justify-content:flex-end;margin-top:-6px;display:flex}.login-forgot-row a{border-radius:var(--radius);padding:2px 4px;font-size:12px;font-weight:600}.login-forgot-row a:hover{background:var(--brand-50)}.auth-submit{width:100%;height:40px;font-size:13px}.auth-submit span{display:inline-flex}.auth-submit svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;display:block}.login-modal-footer{border-top:1px solid var(--line);color:var(--ink-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:18px;padding-top:16px;font-size:12px;display:flex}.login-modal-footer a{font-weight:600}.login-inline-back{margin-right:auto;color:var(--ink-500)!important}.login-inline-back:hover{color:var(--brand)!important}.auth-shell{background:var(--surface-bg);place-items:center;min-height:100vh;padding:32px 16px;display:grid}.auth-card{border:1px solid var(--line-panel);border-radius:var(--radius-xl);width:min(420px,100%);box-shadow:var(--shadow-panel);background:#fff;padding:24px 28px;animation:.22s both fadeInUp}.auth-logo-wrap{border-bottom:1px solid var(--line);flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;padding-bottom:16px;display:flex}.auth-sanathana-logo{width:auto;height:52px;display:block}.auth-brand-caption{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-400);font-size:11px;font-weight:600}.auth-card h1{font-size:28px;line-height:1.15}.auth-subtitle{color:var(--ink-500);margin-top:4px;font-size:13px}.auth-card>.alert{box-shadow:none;margin-top:14px}.auth-links{border-top:1px solid var(--line);color:var(--ink-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:18px;padding-top:16px;font-size:12px;display:flex}.auth-links a{font-weight:600}.auth-links a+a:before{content:"·";color:var(--ink-300);margin-right:8px;font-weight:400}.reset-code-box{text-align:center;background:var(--brand-50);border:1px dashed var(--brand-border);border-radius:var(--radius-lg);margin-top:16px;padding:12px}.reset-code-box strong{font-family:var(--font-mono);letter-spacing:.3em;color:var(--brand);font-size:22px;font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes floatNote{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1180px){.stats-grid,.marks-form-grid,.syllabus-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-hero{gap:40px}.reference-hero-title{font-size:48px}}@media (width<=960px){:root{--gutter:16px}.app-shell{flex-direction:column;height:auto;min-height:100vh;display:flex}.sidebar{z-index:30;padding:10px var(--gutter);border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:8px 12px;position:sticky;top:0;overflow:visible}.brand-block{border:0;margin:0;padding:0}.brand-subtitle{display:none}.nav-list{scrollbar-width:none;flex-direction:row;order:3;gap:4px;width:100%;overflow-x:auto}.nav-list::-webkit-scrollbar{display:none}.nav-list:before{display:none}.nav-item{flex-shrink:0;width:auto;height:34px}.nav-item.active:before{border-radius:2px 2px 0 0;width:auto;height:2px;inset:auto 10px -1px}.sidebar-account-slot{border:0;margin:0 0 0 auto;padding:0}.account-pill-name{max-width:120px}.account-pill-dropdown{min-width:160px;top:calc(100% + 6px);bottom:auto;left:auto}.main-content{padding-top:20px;overflow:visible}.overview-attendance-grid{grid-template-columns:1fr}.student-view-wrap,.marks-display-wrap,.monthly-wrap,.attendance-entry-wrap{max-height:70vh}.landing-nav{padding:0 var(--gutter)}.landing-hero{padding:32px var(--gutter) 48px;grid-template-columns:1fr;gap:40px}.landing-visual{width:100%;max-width:620px;margin:0 auto}.note-one{left:-8px}.note-two{right:-8px}}@media (width<=640px){.premium-dashboard-head{flex-direction:column;align-items:flex-start}.premium-head-actions{justify-content:space-between;width:100%}.premium-dashboard-head h1{font-size:22px}.top-sanathana-logo{height:34px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{gap:10px;padding:12px}.metric-icon{width:34px;height:34px}.metric-body strong{font-size:24px}.overview-filter-panel,.overview-filter-grid{width:100%}.overview-filter-grid{grid-template-columns:1fr 1fr}.panel{padding:14px}.marks-form-grid,.syllabus-filter-grid,.syllabus-entry-grid{grid-template-columns:1fr}.mf-remarks{grid-column:auto}.header-filter-actions,.small-actions,.tab-downloads{width:100%}.header-filter-actions .form-field{flex:1;min-width:140px}.attendance-entry-actions{width:100%}.attendance-date-field{flex:1}.status-pick-label{width:100%}.form-actions>button,.analysis-toolbar-actions>button{flex:1}.pie-analysis-wrap,.marks-pie-card .pie-analysis-wrap{grid-template-columns:1fr;gap:16px}.analysis-grid{grid-template-columns:1fr}.account-pill-name,.account-pill-role{display:none}.brand-title{font-size:17px}.main-content>.alert{top:auto;bottom:16px}.landing-brand-divider,.landing-brand-title small{display:none}.landing-brand img{height:32px}.landing-brand-title strong{white-space:normal;font-size:15px}.reference-hero-title{font-size:40px}.reference-hero-intro{font-size:14px}.preview-floating-note{display:none}.preview-dashboard{grid-template-columns:1fr}.preview-sidebar{display:none}.preview-content{border-radius:0 0 var(--radius-xl) var(--radius-xl)}.preview-lower-grid{grid-template-columns:1fr}.login-modal-card,.auth-card{padding:20px}}
