:root{--bg-page: #f8f7f1;--bg-surface: #ffffff;--bg-surface-alt: #f1f5f2;--bg-surface-raised: #ffffff;--bg-sidebar: #063c26;--bg-input: #ffffff;--bg-hover: rgba(13, 120, 86, .1);--bg-header: rgba(255, 255, 255, .94);--text-primary: #1f1f1f;--text-secondary: #3f4d44;--text-muted: #5e665f;--tab-inactive: var(--text-secondary);--tab-active: var(--accent);--tab-hover: var(--bg-hover);--border-color: #e8e8e8;--border-strong: #cbd7ce;--accent: #106a2e;--accent-hover: #0d7856;--text-on-accent: #ffffff;--danger: #9c2222;--danger-bg: #fce8e8;--warning: #765300;--warning-bg: #fff4cc;--success: #176b32;--success-bg: #e6f5e7;--info: #28654a;--info-bg: #e8f4ec;--color-dartmouth-green: var(--accent);--color-dark-spring-green: var(--accent-hover);--color-naples-yellow: #f4d35e;--color-eerie-black: var(--text-primary);--color-anti-flash-white: var(--bg-page);--color-surface: var(--bg-surface);--color-muted: var(--text-muted);--color-border: var(--border-color);--border-default: var(--border-color);--color-green-tint: var(--bg-hover);--shadow-soft: 0 10px 30px rgba(16, 106, 46, .08);--shadow-raised: 0 14px 34px rgba(16, 46, 27, .12);--surface-1: var(--bg-surface);--surface-2: var(--bg-surface-alt);--surface-3: var(--bg-surface-raised);--skeleton-base: #e3eae5;--skeleton-highlight: #f7faf8;color:var(--color-eerie-black);background:var(--color-anti-flash-white);font-family:Segoe UI,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,filter .16s ease,transform .16s ease}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{border:1px solid var(--color-border);border-radius:10px;min-height:42px;padding:9px 12px;background:var(--bg-input);color:var(--text-primary)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}select option{background:var(--bg-input);color:var(--text-primary)}input:disabled,select:disabled,textarea:disabled,button:disabled{opacity:.66}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);box-shadow:0 0 0 1000px var(--bg-input) inset;caret-color:var(--text-primary)}input:focus,select:focus,textarea:focus{border-color:var(--color-dark-spring-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent);outline:0}button:not(:disabled):active{box-shadow:none;filter:brightness(.92);transform:translateY(0)}a{color:inherit;text-decoration:none}a[href]{cursor:pointer;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}button:focus-visible,a[href]:focus-visible{outline:2px solid var(--color-dark-spring-green);outline-offset:3px}@media(hover:hover)and (pointer:fine){button:not(:disabled):hover{box-shadow:0 4px 10px #106a2e1f;filter:brightness(.96);transform:translateY(-1px)}}@media(prefers-reduced-motion:reduce){button,a[href],input,select,textarea{scroll-behavior:auto;transition-duration:.01ms}}button,input,select,textarea{font:inherit}.page-header{margin-bottom:28px;animation:page-enter .26s ease both}.page-kicker{margin:0 0 8px;color:var(--color-dartmouth-green);font-size:.82rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.page-title{margin:0;color:var(--color-eerie-black);font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.1}.page-description{max-width:760px;margin:10px 0 0;color:var(--color-muted);line-height:1.65}.placeholder-panel{border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);padding:24px;box-shadow:var(--shadow-soft)}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.placeholder-panel h2{margin:0 0 10px;font-size:1.15rem}.placeholder-panel p{margin:0;color:var(--color-muted);line-height:1.6}@media(max-width:768px){html,body,#app{max-width:100%;overflow-x:clip}body{min-width:320px}input:not([type=checkbox]):not([type=radio]),select,button{min-height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{max-width:100%;padding:10px 12px;font-size:1rem;line-height:1.25}select{height:44px;min-height:44px}textarea{min-height:88px;resize:vertical}.page-header{margin-bottom:18px}.page-kicker{margin-bottom:5px;font-size:.72rem}.page-title{font-size:clamp(1.5rem,7vw,1.85rem)}.page-description{margin-top:7px;font-size:.92rem;line-height:1.5}.placeholder-panel{border-radius:12px;padding:16px}:is(.table-wrap,.en-table,.grading-table-wrap,.event-table-wrap,.attendance-table){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}:is(.grading-tabs,.monitoring-tabs,.history-tabs,.group-tabs,.admission-context-nav){max-width:100%;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}:is(.grading-tabs,.monitoring-tabs,.history-tabs,.group-tabs,.admission-context-nav)::-webkit-scrollbar{display:none}:is(.grading-tabs,.monitoring-tabs,.history-tabs,.group-tabs,.admission-context-nav)>*{flex:0 0 auto;white-space:nowrap}:is([role=dialog],.grading-modal,.event-modal,.admission-dialog,.en-dialog,.dr-dialog){max-width:calc(100vw - 24px);max-height:90dvh;overflow-y:auto;overscroll-behavior:contain}}@media(max-width:480px){.page-title{font-size:1.5rem}.page-description{font-size:.88rem}.placeholder-panel{padding:14px}}
