/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);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}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#f5f7f4;--foreground:#17211d;--muted:#66746e;--line:#dce5df;--teal:#1d6f73;--teal-dark:#124b4e;--green:#4f7f52;--rose:#c8506a;--amber:#b87422;--blue:#436c9f}*{box-sizing:border-box}html{min-width:320px}body{background:var(--background);min-height:100vh;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f8fbf8;background:#163c3e;flex-direction:column;gap:28px;padding:28px 20px;display:flex}.eyebrow{color:#6c8f8c;letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.sidebar .eyebrow{color:#b9d6d1}.log-panel h2,.modal h2,.rack-title h2,.sidebar h1,.topbar h2{margin:0}.sidebar h1{white-space:nowrap;max-width:none;font-size:22px;line-height:1.25}.sidebar nav{gap:8px;display:grid}.mode-switch{border:1px solid #ffffff29;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.mode-switch button{color:#cfe0dc;background:0 0;border:0;border-radius:6px;min-height:34px;font-weight:900}.mode-switch button.active{color:#163c3e;background:#f8fbf8}.nav-item{color:#dcebe7;text-align:left;background:0 0;border:0;border-radius:8px;width:100%;padding:11px 38px 11px 12px;font-weight:700;text-decoration:none;display:block;position:relative}.nav-item.active,.nav-item:hover{color:#fff;background:#245b5e}.nav-badge{color:#fff;background:#dc2626;border:2px solid #123c3e;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:900;line-height:1;display:inline-flex;position:absolute;top:-5px;right:-5px}.nav-group{gap:6px;display:grid}.nav-parent{margin-top:4px}.nav-subitems{border-left:1px solid #ffffff38;gap:4px;padding:4px 0 4px 12px;display:grid}.nav-subitem{color:#d3e5e1;background:#ffffff0a;border-radius:7px;padding:9px 10px;font-size:14px}.nav-subitem.active,.nav-subitem:hover{color:#fff;background:#1f6a6e}.sidebar-panel{background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;margin-top:auto;padding:16px}.sidebar-panel p,.sidebar-panel span{color:#cfe0dc}.sidebar-panel span{margin-bottom:4px;font-size:13px;display:block}.sidebar-panel strong{font-size:20px;display:block}.sidebar-panel p{margin:10px 0 0;font-size:13px;line-height:1.5}.workspace{min-width:0;padding:28px}.cage-header,.modal-actions,.modal-header,.rack-title,.top-actions,.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar h2{font-size:30px}.login-form{align-items:center;gap:8px;margin-left:auto;display:flex}.login-form input{border:1px solid var(--line);background:#fff;border-radius:8px;width:132px;min-height:36px;padding:0 10px}.login-form button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:36px;padding:0 14px;font-weight:800}.login-form button:disabled{opacity:.65}.login-current,.login-error{white-space:nowrap;font-size:13px;font-weight:800}.login-current{color:var(--teal-dark)}.login-error{color:var(--danger)}.portal-login-form.login-form .portal-login-field{display:contents}.portal-login-form.login-form .portal-login-field>span{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.admin-login-page{background:linear-gradient(#f5faf9c7,#f5faf9c7),url(/ui-preview/chen-lab-neuroscience-background.png) 50%/cover no-repeat;place-items:center;min-height:100vh;padding:32px 20px;display:grid}.business-login-page{background-color:#edf5fb;background-image:url(/ui-preview/chen-lab-neuroscience-background.png);background-position:50%;background-repeat:no-repeat;background-size:cover;place-items:center;min-height:100vh;padding:42px 20px;display:grid}.business-login-shell{width:min(100%,372px)}.business-login-checking,.business-login-page .portal-login-form-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe8;border:1px solid #aac5d5c7;border-radius:22px;padding:30px 30px 26px;box-shadow:0 24px 70px #2e587029}.business-login-page .portal-login-brand{width:100%;margin:-14px auto -2px}.business-login-page .portal-login-form-card header h1{color:#0a376c;font-size:23px;line-height:31px}.business-login-page .portal-login-form-card header p{font-size:14px;line-height:22px}.portal-login-footer{border-top:1px solid #b4ccd894;margin-top:6px;padding-top:18px}.business-login-location{color:#496f85;align-items:flex-start;gap:6px;margin:0;font-size:12px;font-weight:650;line-height:18px;display:flex}.business-login-location svg{flex:none;margin-top:1px}.business-login-checking{color:#0a376c;text-align:center;justify-items:center;gap:8px;display:grid}.business-login-checking p{color:#5c736d;margin:0}.business-login-spinner{border:3px solid #14594833;border-top-color:#147c78;border-radius:50%;width:28px;height:28px;animation:business-login-spin .8s linear infinite}@keyframes business-login-spin{to{transform:rotate(1turn)}}@media (max-width:639px){.business-login-page{padding:18px 16px}.business-login-checking,.business-login-page .portal-login-form-card{padding:26px 22px 22px}.business-login-page .portal-login-brand{margin-top:-10px}}.admin-login-shell{width:min(100%,430px)}.portal-login-form-card{background:#fffffff5;border:1px solid #d6e3df;border-radius:24px;gap:18px;padding:34px;display:grid;box-shadow:0 18px 52px #1e4a4124}.portal-login-brand{width:min(100%,310px);margin:0 auto 4px}.portal-login-brand img{object-fit:contain;width:100%;height:auto;display:block}.portal-login-form-card header h1{color:#123f37;margin:0;font-size:28px}.admin-login-note,.portal-login-form-card header p{color:#5c736d}.portal-login-form-card header p{margin:8px 0 0}.portal-login-form-card .portal-login-field{color:#294e47;gap:8px;font-size:14px;font-weight:800;display:grid}.portal-login-form-card input{background:#fff;border:1px solid #c9dcd6;border-radius:10px;min-height:46px;padding:0 12px}.portal-login-form-card button{color:#fff;background:linear-gradient(120deg,#145948,#147c78);border:0;border-radius:10px;min-height:46px;font-weight:800}.portal-login-form-card button:disabled{opacity:.65}.portal-login-success{color:#147254;font-weight:800}.admin-login-note{text-align:center;margin:16px 0 0;font-size:13px}.portal-login-session{align-items:center;gap:8px;margin-left:auto;display:flex}.portal-login-session button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:36px;padding:0 14px;font-weight:800}.portal-password-modal{width:min(460px,100vw - 32px)}.portal-password-form{gap:14px;display:grid}.portal-password-form label{color:var(--teal-dark);gap:6px;font-weight:800;display:grid}.portal-password-form input{border:1px solid var(--line);border-radius:9px;min-height:42px;padding:0 12px}.portal-password-form>button,.portal-password-success button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:9px;min-height:42px;padding:0 18px;font-weight:800}.portal-password-success{gap:16px;display:grid}.admin-password-reset{align-items:center;gap:8px;min-width:230px;display:flex}.admin-password-reset input{min-width:130px}.modal-actions button,.modal-header button,.quick-actions button,.top-actions button{border:1px solid var(--line);min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;font-weight:700}.modal-actions button,.modal-header button,.top-actions button{padding:0 16px}.modal-actions button:last-child,.top-actions button:first-child{border-color:var(--teal-dark);background:var(--teal);color:#fff}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.stats-grid div{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:16px}.cage-header p,.cage-metrics,.detail-grid dt,.empty-cage,.rack-title span,.stats-grid span{color:var(--muted)}.stats-grid span{margin-bottom:6px;font-size:13px;display:block}.stats-grid strong{font-size:28px}.final-stat-breakdown{gap:10px;margin-top:8px;display:grid}.stats-grid .final-stat-breakdown{background:0 0;border:0;padding:0}.stats-grid .final-stat-breakdown div{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;min-height:38px;padding:8px 0;display:flex}.final-stat-breakdown span{margin:0}.final-stat-breakdown strong{font-size:24px}.alert-strip{color:#5c4422;white-space:nowrap;background:#fff8e9;border:1px solid #ead7b8;border-radius:8px;align-items:center;gap:10px;margin-top:16px;padding:12px;display:flex;overflow-x:auto}.alert-strip span{background:#f6e8cc;border-radius:999px;padding:7px 10px;font-size:13px}.inline-alert-button{color:#6b4518;cursor:pointer;background:#fff;border:1px solid #bf7b22;border-radius:999px;min-height:32px;padding:0 12px;font-weight:900}.filter-bar{grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(180px,1.4fr);gap:10px;margin-top:16px;display:grid}.filter-bar-student{grid-template-columns:repeat(3,minmax(120px,1fr)) minmax(180px,1.4fr) minmax(104px,auto) minmax(104px,auto)}.field-label input,.field-label select,.filter-bar input,.filter-bar select,.request-cage-button,.search-box button{border:1px solid var(--line);width:100%;min-height:42px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px}.search-box{grid-template-columns:minmax(0,1fr) 44px;gap:8px;display:grid}.search-box button{cursor:pointer;place-items:center;padding:0;font-size:20px;font-weight:900;display:grid}.search-box button:focus-visible,.search-box button:hover{border-color:var(--teal);outline:none}.request-cage-button{color:#235046;cursor:pointer;background:#fff;padding:0 14px;font-weight:900}.request-cage-button.confirming{color:#fff;background:#2d716a;border-color:#2d716a}.request-cage-button.return-button{color:#7a3d18}.secondary-action-button{color:#fff;cursor:pointer;background:#2d716a;border:1px solid #2d716a;border-radius:8px;min-height:42px;font-weight:900}.cage-request-panel,.request-status-panel{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:14px;padding:14px}.request-status-panel{color:#235046;justify-content:space-between;gap:12px;display:flex}.cage-request-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:320px;margin-top:12px;display:grid;overflow:auto}.cage-request-map{grid-template-columns:repeat(8,minmax(92px,1fr))}.cage-request-card{border:1px solid var(--line);min-height:72px;color:var(--foreground);text-align:left;cursor:pointer;background:#f8fbf8;border-radius:8px;gap:4px;padding:10px;display:grid;position:relative}.cage-request-card:focus-visible,.cage-request-card:hover{border-color:#2d716a;outline:none}.cage-request-card.selected{background:#e9f5f1;border-color:#2d716a;box-shadow:inset 0 0 0 2px #2d716a29}.cage-request-card.disabled{opacity:.45;filter:grayscale(.9);cursor:not-allowed}.cage-request-card.disabled:after{content:"";border-radius:inherit;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#ffffff4d;position:absolute;inset:0}.cage-request-card em{z-index:1;color:#b82234;border:2px solid #b82234;border-radius:6px;padding:4px 9px;font-size:13px;font-style:normal;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.cage-request-card small,.cage-request-card span{color:var(--muted);font-size:12px}.request-panel-actions{align-items:center;gap:10px;display:flex}.request-panel-actions button{min-height:34px;color:var(--foreground);cursor:pointer;padding:0 12px;font-weight:800}.request-panel-actions button,.status-result-panel{border:1px solid var(--line);background:#fff;border-radius:8px}.status-result-panel{margin-top:14px;padding:14px}.panel-heading{justify-content:space-between;align-items:flex-start;display:flex}.panel-heading h2{margin:0;font-size:18px}.panel-heading span{color:#235046;font-weight:900}.panel-heading.compact h2{font-size:14px}.status-result-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px;display:grid}.final-side-card,.status-result-card{border:1px solid var(--line);width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:#f8fbf8;border-radius:8px;gap:3px;padding:10px;display:grid}.final-side-card:focus-visible,.final-side-card:hover,.status-result-card:focus-visible,.status-result-card:hover{border-color:var(--teal);outline:none}.empty-result,.final-side-card small,.final-side-card span,.status-result-card span{color:var(--muted);font-size:12px}.content-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;margin-top:16px;display:grid}.log-panel,.rack-area{min-width:0}.rack-area{overflow:hidden}.log-panel,.rack-section{border:1px solid var(--line);background:#ffffffb8;border-radius:8px}.rack-section{scrollbar-gutter:stable;overflow:auto hidden}.rack-title{margin-bottom:12px}.log-panel h2,.rack-title h2{font-size:19px}.cage-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;display:grid}.cage-grid-large{grid-template-columns:repeat(8,170px);width:max-content;min-width:100%}.cage-card{border:1px solid var(--line);border-top:5px solid var(--green);background:#fff;border-radius:8px;min-height:196px;padding:13px;transition:border-color .16s,box-shadow .16s,transform .16s;box-shadow:0 8px 20px #1e2d260d}.cage-card h3{margin:0;font-size:17px}.cage-header{grid-template-columns:minmax(72px,1fr) auto;align-items:start;gap:8px;display:grid}.cage-header>div{min-width:0}.cage-owner-name{color:#153c35;text-overflow:ellipsis;white-space:nowrap;writing-mode:horizontal-tb;min-width:3em;max-width:100%;font-size:18px;font-weight:900;line-height:1.2;display:block;overflow:hidden}.cage-card p{white-space:nowrap;margin:4px 0 0;font-size:12px}.cage-over{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 0 0 3px #1d6f7329}.cage-empty{border-top-color:#9aa8a2}.cage-crowded{border-top-color:var(--rose)}.cage-alert{background:snow;border-color:#c5172e #e09aa3 #e09aa3}.cage-alert-list{gap:5px;margin-top:10px;display:grid}.cage-alert-list span{color:#a01828;background:#ffe6e9;border-radius:6px;padding:5px 7px;font-size:11px;font-weight:900}.cage-needs-cleaning{border-top-color:var(--amber)}.cage-isolation{border-top-color:var(--blue)}.status-pill{color:#35564d;background:#eef5f2;border-radius:999px;flex:none;padding:5px 8px;font-size:12px;font-weight:700}.cage-status-select{border:1px solid var(--line);color:#29483f;background:#fff;border-radius:8px;flex:none;place-items:center;min-width:58px;min-height:34px;padding:0 10px;font-size:12px;font-weight:800;display:inline-grid}.cage-metrics{gap:8px;margin-top:10px;font-size:12px;display:flex}.mouse-list{gap:7px;margin-top:12px;display:grid}.mouse-chip{width:100%;min-height:50px;color:var(--foreground);cursor:pointer;text-align:left;touch-action:none;background:#f8fbf8;border:1px solid #d5dfd9;border-radius:8px;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px;display:grid;position:relative}.mouse-chip:focus-visible,.mouse-chip:hover{border-color:var(--teal);outline:none}.mouse-chip-pup{background:#fff4f7;border-color:#efc6d1}.mouse-male .mouse-mark{background:#1e2522}.mouse-female .mouse-mark{background:#7b8580}.mouse-pup .mouse-mark{background:#d8617e}.mouse-dead .mouse-mark,.mouse-final .mouse-mark{background:#7b1f2a}.mouse-unknown .mouse-mark{background:#8a7555}.mouse-chip-dead{opacity:.6;filter:grayscale()}.mouse-chip-dragging{cursor:grabbing;opacity:.25}.mouse-chip-locked{cursor:pointer;opacity:.82}.mouse-aged{box-shadow:inset 0 0 0 1px #c5172e1f;background:#ffe7e7!important;border-color:#e07a7a!important}.mouse-delivered-female{box-shadow:inset 0 0 0 1px #3f8a5b24;background:#e6f6e8!important;border-color:#76bf83!important}.mouse-nursing-female{box-shadow:inset 0 0 0 1px #ffffff24;color:#fff!important;background:#245f3c!important;border-color:#17472b!important}.mouse-nursing-female .mouse-code,.mouse-nursing-female .mouse-meta,.mouse-nursing-female .mouse-meta strong{color:#fff}.mouse-nursing-female .mouse-mark{background:#dff4e4}.mouse-overlay{width:190px;box-shadow:0 12px 28px #1e2d2633}.mouse-mark{background:#26332f;border-radius:999px 999px 8px 8px;width:18px;height:12px;position:relative}.mouse-mark:after,.mouse-mark:before{content:"";background:inherit;border-radius:999px;width:7px;height:7px;position:absolute;top:-4px}.mouse-mark:before{left:2px}.mouse-mark:after{right:2px}.mouse-code{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:800;overflow:hidden}.mouse-meta{min-width:0;color:var(--muted);gap:1px;font-size:12px;line-height:1.18;display:grid}.mouse-meta strong{color:var(--foreground);font-size:13px}.mouse-meta span,.mouse-meta strong{min-width:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aged-badge,.skull-mark,.warning-dot,.warning-inline{place-items:center;font-weight:900;display:inline-grid}.warning-dot{color:#fff;background:#d61f37;width:20px;font-size:13px}.aged-badge,.warning-dot{border-radius:999px;height:20px}.aged-badge{color:#a01828;background:#ffd0d0;min-width:42px;padding:0 6px;font-size:11px;font-weight:900}.skull-mark{color:#c5172e;font-size:17px}.warning-inline{color:#b01227;background:#ffe5e8;border-radius:999px;padding:3px 7px;font-size:12px}.empty-cage{background:#f8faf8;border:1px dashed #cbd6cf;border-radius:8px;place-items:center;min-height:74px;font-size:13px;display:grid}.cage-note{color:#8b4b14}.log-panel{z-index:2;width:320px;padding:16px;position:sticky;top:18px}.final-side-panel{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:14px;padding:12px}.final-side-list{gap:12px;max-height:220px;margin-top:10px;display:grid;overflow:auto}.final-date-group{gap:7px;display:grid}.final-date-heading{border-bottom:1px solid var(--line);color:#33564c;justify-content:space-between;align-items:center;gap:8px;padding:4px 2px;font-size:12px;display:flex}.final-date-heading span{color:var(--muted);font-weight:800}.final-side-card.final-accidentalDeath,.final-side-card.final-euthanized{background:#fff1f2;border-color:#efb8bf}.final-side-card.final-usedInExperiment{background:#edf8ef;border-color:#a8d8b1}.trash-zone{color:#8f2634;text-align:center;background:#fff4f4;border:1px dashed #d98b95;border-radius:8px;place-items:center;min-height:86px;margin-bottom:14px;font-weight:900;display:grid}.trash-zone-over{background:#ffe1e5;border-style:solid;box-shadow:0 0 0 3px #c5172e1f}.log-list{gap:10px;margin-top:12px;display:grid}.log-list p{color:#42524c;background:#f6f9f7;border-radius:8px;margin:0;padding:10px;font-size:13px;line-height:1.55}.archive-panel,.placeholder-panel{border:1px solid var(--line);background:#ffffffd1;border-radius:8px;margin-top:16px;padding:18px}.archive-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.archive-header h2,.placeholder-panel h2{margin:0;font-size:20px}.archive-header p,.placeholder-panel p{color:var(--muted);margin:0}.archive-header button{min-height:42px;color:var(--foreground);padding:0 18px;font-weight:900}.archive-header button,.archive-table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px}.archive-table-wrap{overflow-x:auto}.archive-table{border-collapse:collapse;width:100%;min-width:1120px}.archive-table td,.archive-table th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:13px 14px}.archive-table th{color:#314942;background:#eef5f2;font-size:13px}.archive-table tr{cursor:pointer}.archive-table tbody tr:hover{background:#f7faf8}.archive-final-row{color:#59645f;background:#f1f3f2}.archive-table tbody tr.archive-final-row:hover{background:#e8ecea}.record-count{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:8px 12px;font-weight:900}.breeding-panel{border:1px solid var(--line);background:#fff;border-radius:8px;padding:18px}.breeding-tree-list{gap:14px;display:grid}.breeding-tree-card{border:1px solid var(--line);background:#f8faf8;border-radius:8px;gap:12px;padding:14px;display:grid}.breeding-flow,.breeding-parents,.breeding-pup-list{gap:10px;display:grid}.breeding-parents{grid-template-columns:repeat(2,minmax(0,1fr))}.breeding-parents button,.breeding-pup-list button{border:1px solid var(--line);min-height:58px;color:var(--foreground);text-align:left;background:#fff;border-radius:8px;padding:10px 12px}.breeding-flow span,.breeding-parents span,.breeding-pup-list span,.breeding-pups-heading span{color:var(--muted);font-size:12px;font-weight:800;display:block}.breeding-flow strong,.breeding-parents strong,.breeding-pup-list strong,.breeding-pups-heading strong{margin-top:4px;display:block}.breeding-flow{grid-template-columns:repeat(3,minmax(0,1fr));position:relative}.breeding-flow:before{content:"";background:#cfe0d9;height:2px;position:absolute;top:50%;left:12%;right:12%}.breeding-flow div{z-index:1;border:1px solid #cfe0d9;border-radius:8px;padding:10px 12px;position:relative}.breeding-pups{border-top:1px dashed #cfe0d9;padding-top:10px}.breeding-pups-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.breeding-pup-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.weekly-report-panel{border:1px solid var(--line);background:#fff;border-radius:8px;gap:16px;padding:18px;display:grid}.weekly-current-report,.weekly-history-content{border:1px solid var(--line);background:#f8faf8;border-radius:8px;gap:8px;padding:12px;display:grid}.weekly-current-report p,.weekly-history-content p{color:#314942;border:1px solid #dfe8e4;border-radius:8px;margin:0;padding:9px 10px;font-size:13px}.weekly-current-report p.weekly-warning-entry,.weekly-history-content p.weekly-warning-entry{color:#a82133;background:#fff1f2;border-color:#efb8bf;font-weight:900}.mouse-husbandry-badge{color:#fff;border-radius:999px;justify-content:center;align-items:center;width:23px;height:23px;font-style:normal;font-weight:800;line-height:1;display:inline-flex;font-size:12px!important}.mouse-chip>.mouse-husbandry-badge,.teacher-mousemap-mice-grid>button>.mouse-husbandry-badge{position:absolute;bottom:6px;right:6px}.mouse-husbandry-badge.is-conservation{background:#287f73}.mouse-husbandry-badge.is-breeding{background:#c77a12}.mouse-husbandry-badge.is-experiment{background:#7555a8}.mouse-loan-badge{color:#fff;background:#2f6f9f;border-radius:999px;justify-content:center;align-items:center;width:23px;height:23px;font-style:normal;font-weight:800;line-height:1;display:inline-flex;font-size:12px!important}.loan-info-banner{color:#225777;background:#eef7fc;border:1px solid #9fc4dd;border-radius:9px;margin:0 18px 14px;padding:10px 12px;font-weight:700}.loan-return-row{background:#f2f8fc;border:1px solid #9fc4dd;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.loan-return-row p{color:#315b73;margin:0}.mouse-chip>.mouse-loan-badge,.teacher-mousemap-mice-grid>button>.mouse-loan-badge{position:absolute;bottom:6px;left:6px}.weekly-current-report p.weekly-report-lead,.weekly-history-content p.weekly-report-lead{color:#24483e;background:#eef5f2;border-color:#b9cfc6;font-weight:900}.weekly-current-report p.weekly-monthly-entry,.weekly-history-content p.weekly-monthly-entry{color:#21445f;background:#eef6fb;border-color:#a9c9dc;font-weight:800}.weekly-list-section,.weekly-table-section{gap:8px;display:grid}.weekly-experiment-image-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.weekly-experiment-image-item{background:#fff;border:1px solid #cfe0d9;border-radius:8px;margin:0;overflow:hidden}.weekly-experiment-image-item img{object-fit:contain;background:#f5f8f7;width:100%;max-height:260px;display:block}.weekly-experiment-image-item figcaption{color:#314942;gap:4px;padding:8px 10px;font-size:12px;line-height:1.5;display:grid}.weekly-experiment-image-item figcaption strong{color:#24483e}.weekly-list-section h3,.weekly-table-section h3{color:#24483e;margin:0;font-size:14px}.weekly-summary-table-wrap{background:#fff;border:1px solid #b9cfc6;border-radius:8px;overflow-x:auto}.weekly-summary-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1420px}.weekly-summary-table td,.weekly-summary-table th{text-align:center;vertical-align:top;word-break:break-word;border-bottom:1px solid #cfe0d9;border-right:1px solid #cfe0d9;padding:12px 10px;font-size:12px}.weekly-summary-table th{color:#314942;background:#e7f1ed;font-weight:900;line-height:1.35}.weekly-summary-table td:last-child,.weekly-summary-table th:last-child{border-right:0}.weekly-summary-table tbody tr:last-child td{border-bottom:0}.weekly-summary-table td{color:#314942;background:#fff;line-height:1.75}.weekly-summary-table tbody tr:nth-child(2n) td{background:#f8fbf9}.weekly-summary-table td:first-child,.weekly-summary-table td:nth-child(2){font-weight:800}.weekly-summary-table .weekly-not-counted{color:#9aa7a2;font-size:18px;font-weight:900}.weekly-age-status{font-weight:900;display:inline-block}.weekly-age-nursing{color:#168443}.weekly-age-pregnant{color:#c62828}.weekly-age-older{color:#d98c00}.weekly-freeze-student td:first-child:not([colspan]),.weekly-freeze-student th:first-child{z-index:2;position:sticky;left:0;box-shadow:2px 0 3px #0000001a}.weekly-summary-table .weekly-overdue-genotype{color:#c62828;font-weight:900}.weekly-report-actions{justify-content:space-between;gap:12px}.weekly-report-actions button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:42px;padding:0 18px;font-weight:900}.weekly-report-actions button:first-child{border-color:var(--line);color:var(--foreground);background:#fff}.weekly-report-option{border:1px solid var(--line);min-height:42px;color:var(--foreground);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.weekly-report-option input{width:18px;height:18px;accent-color:var(--teal);margin:0}.weekly-history{border-top:1px solid var(--line);padding-top:14px}.weekly-history,.weekly-history-list{gap:10px;display:grid}.weekly-history-item{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.weekly-history-item>button{width:100%;min-height:48px;color:var(--foreground);text-align:left;background:#eef5f2;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;display:flex}.weekly-history-content small,.weekly-history-item>button span{color:var(--muted);font-weight:800}.archive-aged-row{background:#fff4f4}.mouse-row-title{align-items:center;gap:9px;display:flex}.mouse-row-title small{color:var(--muted);font-weight:700}.mouse-dot{background:#1e2522;border-radius:999px 999px 7px 7px;width:18px;height:12px}.mouse-dot-female{background:#7b8580}.mouse-dot-pup{background:#d8617e}.mouse-dot-unknown{background:#8a7555}.mouse-dot-dead,.mouse-dot-final{background:#7b1f2a}.archive-subsection{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.archive-subsection h3{margin:0 0 10px}.archive-subsection p{color:var(--muted);margin:0}.admin-deployment-checklist-panel{gap:12px;display:grid}.admin-deployment-summary{grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;display:grid}.admin-deployment-summary span{border:1px solid var(--line);color:var(--foreground);background:#fff;border-radius:8px;padding:10px;font-weight:900}.admin-deployment-summary .ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.admin-deployment-summary .danger{color:var(--danger);background:#fff1f2;border-color:#fecdd3}.admin-deployment-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.admin-deployment-section{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:start;gap:8px;padding:12px;display:grid}.admin-deployment-section h4{margin:0;font-size:16px}.admin-deployment-item{border:1px solid var(--line);background:#f8faf9;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.admin-deployment-item.ready{background:#f0fdf4;border-color:#bbf7d0}.admin-deployment-item.manual{background:#f0f9ff;border-color:#bae6fd}.admin-deployment-item.action_required{background:#fff1f2;border-color:#fecdd3}.admin-deployment-item div{gap:4px;display:grid}.admin-deployment-item span{color:var(--muted);font-size:12px;font-weight:900}.admin-deployment-item p{color:var(--muted);margin:0}.admin-deployment-item button{border:1px solid var(--line);min-height:36px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px;font-weight:900}.admin-backup-panel{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.admin-backup-panel button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:40px;padding:0 16px;font-weight:900}.admin-backup-panel button:disabled{opacity:.65}.admin-backup-error,.admin-backup-result{overflow-wrap:anywhere;grid-column:1/-1}.admin-backup-alerts{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;grid-column:1/-1;gap:8px;padding:10px;display:grid}.admin-backup-alerts>strong{color:var(--danger)}.admin-backup-alerts article{background:#fff;border:1px solid #fecdd3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.admin-backup-alerts article div{gap:4px;min-width:0;display:grid}.admin-backup-alerts span{color:var(--danger);font-weight:900}.admin-backup-alerts p,.admin-backup-alerts small{margin:0}.admin-backup-alerts small{color:var(--muted);overflow-wrap:anywhere}.admin-backup-history{grid-column:1/-1;gap:8px;display:grid}.admin-backup-history article{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.admin-backup-history article div{gap:4px;min-width:0;display:grid}.admin-backup-history small,.admin-backup-history span{color:var(--muted)}.admin-backup-history small{overflow-wrap:anywhere}.admin-backup-actions{justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.admin-backup-actions button{border:1px solid var(--line);min-height:36px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px;font-weight:900}.admin-backup-verify-result{overflow-wrap:anywhere;border-radius:8px;grid-column:1/-1;gap:4px;padding:10px;display:grid}.admin-backup-verify-result.success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.admin-backup-verify-result.failed{color:var(--danger);background:#fff1f2;border:1px solid #fecdd3}.admin-backup-verify-result small,.admin-backup-verify-result span{color:inherit}.admin-backup-history a{border:1px solid var(--line);min-height:36px;color:var(--foreground);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-weight:900;text-decoration:none;display:inline-flex}.admin-backup-error{font-weight:800;color:var(--danger)!important}.admin-backup-recovery-panel{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;grid-column:1/-1;gap:10px;padding:12px;display:grid}.admin-backup-recovery-heading{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:center;gap:12px;display:grid}.admin-backup-recovery-heading h4{color:var(--foreground);margin:0 0 4px;font-size:16px}.admin-backup-recovery-heading select{border:1px solid var(--line);width:100%;min-height:38px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.admin-backup-recovery-summary{overflow-wrap:anywhere;border-radius:8px;gap:4px;padding:10px;display:grid}.admin-backup-recovery-summary.not_verified,.admin-backup-recovery-summary.unavailable{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.admin-backup-recovery-summary.passed{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.admin-backup-recovery-summary.failed{color:var(--danger);background:#fff1f2;border:1px solid #fecdd3}.admin-backup-recovery-summary span{color:inherit}.admin-backup-recovery-guide{background:#fff;border:1px solid #bae6fd;border-radius:8px;gap:8px;padding:10px;display:grid}.admin-backup-recovery-guide strong{color:var(--foreground)}.admin-backup-recovery-guide p,.admin-backup-recovery-guide small{color:var(--muted);margin:0}.admin-backup-recovery-guide ol{gap:6px;margin:0;padding-left:20px;display:grid}.admin-backup-recovery-guide li{color:var(--foreground);font-weight:700}.admin-backup-recovery-guide small{color:#92400e;font-weight:800}.admin-backup-recovery-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-backup-recovery-actions a{border:1px solid var(--line);min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-weight:900;text-decoration:none;display:inline-flex}.admin-backup-recovery-drill-form{grid-template-columns:minmax(120px,180px) minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:8px;display:grid}.admin-backup-recovery-drill-form label{color:var(--muted);gap:4px;font-weight:800;display:grid}.admin-backup-recovery-drill-form input,.admin-backup-recovery-drill-form select,.admin-backup-recovery-drill-form textarea{border:1px solid var(--line);width:100%;min-height:38px;color:var(--foreground);background:#fff;border-radius:8px;padding:8px 10px}.admin-backup-recovery-drill-form textarea{resize:vertical;min-height:38px}.admin-backup-recovery-message{grid-column:1/-1;font-weight:800}.admin-backup-recovery-message.success{color:#166534}.admin-backup-recovery-message.failed{color:var(--danger)}.admin-backup-recovery-drills{gap:8px;display:grid}.admin-backup-recovery-drills article{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px}.admin-backup-recovery-drills article div{gap:4px;display:grid}.admin-backup-recovery-drills span{color:var(--foreground);font-weight:900}.admin-backup-recovery-drills p,.admin-backup-recovery-drills small{margin:0}.admin-backup-recovery-drills small{color:var(--muted);overflow-wrap:anywhere}.admin-backup-recovery-steps{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-backup-recovery-steps li{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;gap:12px;padding:10px;display:flex}.admin-backup-recovery-steps li.completed,.admin-backup-recovery-steps li.ready{border-color:#bbf7d0}.admin-backup-recovery-steps li.pending{border-color:#fde68a}.admin-backup-recovery-steps li.blocked{opacity:.72}.admin-backup-recovery-empty{color:var(--muted)}.admin-personnel-form{grid-template-columns:repeat(4,minmax(140px,1fr)) auto;align-items:end;gap:10px;margin:12px 0;display:grid}.admin-personnel-form label{color:var(--muted);gap:6px;font-size:12px;font-weight:800;display:grid}.admin-personnel-form label.wide{grid-column:span 2}.admin-personnel-form input,.admin-personnel-form select,.teacher-admin-table td input,.teacher-admin-table td select{border:1px solid var(--line);min-height:38px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:0 10px}.admin-personnel-form button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:38px;padding:0 14px;font-weight:900}.admin-attendance-mapping-panel .panel-heading button,.teacher-admin-table td button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:36px;padding:0 12px;font-weight:900}.admin-personnel-form button:disabled,.teacher-admin-table td button:disabled,.teacher-admin-table td select:disabled{cursor:not-allowed;opacity:.55}.admin-personnel-error,.admin-personnel-message{grid-column:1/-1;font-weight:800}.admin-personnel-message{color:var(--teal-dark)!important}.admin-personnel-error{color:var(--danger)!important}.admin-attendance-mapping-note{margin:4px 0 12px;font-size:13px;color:var(--muted)!important}.admin-attendance-sync-form{grid-template-columns:repeat(2,minmax(160px,1fr)) auto;align-items:end;gap:10px;margin:0 0 14px;display:grid}.admin-attendance-sync-form label{color:var(--muted);gap:6px;font-size:12px;font-weight:800;display:grid}.admin-attendance-sync-form input,.admin-attendance-sync-form select{border:1px solid var(--line);min-height:38px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:0 10px}.admin-attendance-sync-form button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:38px;padding:0 14px;font-weight:900}.admin-attendance-sync-form button:disabled{cursor:not-allowed;opacity:.55}.admin-attendance-sync-form .admin-personnel-error,.admin-attendance-sync-form .admin-personnel-message{grid-column:1/-1}.attendance-sync-batch-list{margin:0 0 16px}.attendance-sync-failed-row td{color:var(--danger);background:#fff1f2;font-weight:800}.compact-list{gap:8px;display:grid}.compact-list button{color:#69242c;text-align:left;background:#fff4f4;border:1px solid #f0b5b5;border-radius:8px;justify-content:space-between;gap:12px;min-height:42px;padding:0 12px;font-weight:800;display:flex}.modal-backdrop{z-index:20;background:#121f1c70;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:min(680px,100%);max-height:min(760px,100vh - 40px);padding:22px;overflow:auto;box-shadow:0 24px 80px #121f1c47}.transfer-modal{width:min(520px,100%)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.detail-grid div{border:1px solid var(--line);background:#f8faf8;border-radius:8px;padding:12px}.detail-grid dt{font-size:12px}.detail-grid dd{margin:5px 0 0;font-weight:800}.sex-big{font-size:20px}.edit-section,.mouse-form{gap:12px;display:grid}.edit-section{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.field-wide{grid-column:1/-1}.mouse-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.mouse-form label{color:var(--muted);gap:7px;font-size:13px;font-weight:700;display:grid}.mouse-form input,.mouse-form select{border:1px solid var(--line);min-height:42px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px}.add-mouse-modal{width:min(820px,100%)}.mouse-detail-modal{flex-direction:column;width:min(900px,100%);display:flex}.mouse-detail-modal .danger-section{order:80}.mouse-detail-modal .modal-section:has(.mouse-log-list){order:90}.modal-skull{color:#c5172e;margin-left:10px}.modal-header-actions{gap:8px;display:flex}.locked-banner{color:#7a1f2b;background:#fff0f0;border:1px solid #f0b5b5;border-radius:8px;margin-top:14px;padding:11px 12px;font-weight:800}.modal-section{margin-top:20px}.modal-section h3{margin:0 0 10px;font-size:17px}.danger-section{background:#fff8f8;border:1px solid #f0b5b5;border-radius:8px;padding:14px}.delivery-section{background:#f7fbf8;border:1px solid #cfe0d9;border-radius:8px;padding:14px}.final-grid,.transfer-submit-row{grid-template-columns:minmax(0,1fr) 160px;align-items:end;gap:10px;display:grid}.compact-list button,.final-grid button,.final-grid button:disabled,.modal-actions button:disabled{min-height:42px}.final-grid button{color:#fff;background:#c5172e;border:1px solid #a82133;border-radius:8px;font-weight:900}.final-experiment-button{background:#3f8a5b!important;border-color:#2f6f49!important}.pending-final{color:#6f1f2a;background:#fff0f0;border:1px solid #f0b5b5;border-radius:8px;grid-template-columns:minmax(0,1fr) 150px 90px;align-items:center;gap:10px;padding:10px;font-weight:800;display:grid}.pending-final button{color:#fff;background:#c5172e;border:1px solid #a82133;border-radius:8px;min-height:38px;font-weight:900}.pending-final button:last-child{border-color:var(--line);color:var(--foreground);background:#fff}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.62}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.checkbox-grid label{border:1px solid var(--line);color:#314942;background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:8px 10px;font-size:13px;font-weight:700;display:flex}.mouse-log-list{gap:9px;display:grid}.mouse-log-list article{border:1px solid var(--line);background:#f8faf8;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.mouse-log-list article.mouse-log-delivery-female{background:#fff1f3;border-color:#efc3c9}.mouse-log-list span{color:var(--muted);font-size:12px}.mouse-log-list strong{color:#2f443d;font-size:13px}.quick-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.quick-actions button{padding:0 8px;font-size:13px}.transfer-copy{color:#34443e;margin:18px 0;line-height:1.7}.field-label{color:var(--muted);gap:8px;font-size:13px;font-weight:700;display:grid}.lab-home,.modal-actions{margin-top:18px}.lab-home{gap:16px}.lab-panel,.lab-profile-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px}.lab-profile-panel{grid-template-columns:minmax(520px,1.2fr) minmax(360px,.8fr);align-items:start;gap:18px;padding:18px;display:grid}.lab-panel h3,.lab-profile-panel h3{margin:0;font-size:22px}.lab-panel p,.lab-profile-panel p{color:var(--muted);margin:8px 0 0}.work-overview{--student-home-metric-value-size:clamp(30px,2.4vw,34px);grid-column:1/-1;grid-template-columns:minmax(220px,.72fr) minmax(0,2.28fr)}.student-home-side-column,.work-overview{align-content:start;gap:12px;display:grid}.student-home-side-column{grid-column:1/-1}.work-metrics{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;grid-template-columns:1fr;align-items:start;gap:18px;padding:16px;display:grid}.work-hours-line{gap:8px;display:grid}.work-hours-line strong{color:var(--teal-dark);font-size:var(--student-home-metric-value-size);line-height:1;display:block}.work-hours-line strong.completion-low{color:#be123c}.work-hours-line strong.completion-ok{color:#166534}.student-home-booking-calendar-button{color:#0f5c55;background:#eef8f5;border:1px solid #9fc9c0;border-radius:8px;grid-column:auto;width:100%;min-height:36px;margin-top:.25rem;font-weight:900}.student-home-booking-calendar-button:focus-visible,.student-home-booking-calendar-button:hover{border-color:var(--teal);background:#e2f3ee;outline:none}.work-subpanels{grid-template-rows:auto auto;grid-template-columns:minmax(480px,1.65fr) minmax(240px,.85fr);gap:12px;display:grid}.attendance-panel,.contribution-panel,.reward-panel{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;gap:10px;padding:16px;display:grid}.attendance-panel{grid-area:1/1/span 2;grid-template-columns:repeat(3,minmax(0,1fr))}.reward-panel{grid-area:1/2;align-content:start}.contribution-panel{grid-area:2/2;align-content:start}.attendance-panel>strong,.contribution-panel>strong,.reward-panel>strong{grid-column:1/-1;font-size:18px;line-height:1.35}.attendance-panel-heading{grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;background:0 0!important;padding:0!important;display:flex!important}.attendance-panel-heading>strong{font-size:18px;line-height:1.35}.attendance-panel-heading .student-not-on-duty-summary-badge{color:#be123c;background:#fff1f2;border:1px solid #fecaca;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.attendance-panel div{background:#fff;border-radius:8px;gap:6px;padding:10px;display:grid}.attendance-panel span{color:var(--muted);font-size:13px}.attendance-panel b,.contribution-panel>b,.reward-panel>b{color:var(--teal-dark);font-size:var(--student-home-metric-value-size);overflow-wrap:anywhere;line-height:1.05}.attendance-panel b.completion-low,.contribution-panel b.completion-low,.reward-panel b.completion-low{color:#be123c}.attendance-panel b.completion-ok,.contribution-panel b.completion-ok,.reward-panel b.completion-ok{color:#166534}.attendance-calendar-button{grid-column:1/-1}.lab-split-grid.student-home-overview-stack{grid-template-columns:1fr}.reward-reasons{flex-wrap:wrap;gap:6px;display:flex}.reward-reasons span{color:#be123c;background:#fff1f2;border-radius:8px;align-items:center;min-height:26px;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}.reward-reasons span.reward-positive{color:#166534}.reward-reasons span.reward-negative{color:#be123c}.lab-reminders{background:#fff1f2;border:1px solid #f2b8bd;border-radius:8px;align-content:start;gap:8px;padding:12px;display:grid}.lab-reminders>strong,.reminder-item p{color:#bf0f2f;font-weight:900}.reminder-item{border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) 68px;align-items:center;gap:10px;padding:8px;display:grid}.reminder-item p{margin:0;font-size:15px}.reminder-item button{color:#be123c;background:#fff;border:1px solid #be123c;border-radius:8px;min-height:32px;font-weight:900}.reminder-item.reminder-received{background:#fde2e6;border-color:#f5c2c7}.reminder-item.reminder-received button{color:#8a2030;background:#f6cbd2}.lab-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.lab-summary-grid button{border:1px solid var(--line);min-height:132px;color:var(--foreground);text-align:left;background:#fff;border-radius:8px;padding:16px}.lab-summary-grid button:focus-visible,.lab-summary-grid button:hover{border-color:var(--teal);outline:none}.lab-summary-grid small,.lab-summary-grid span{color:var(--muted);display:block}.lab-summary-grid strong{margin:10px 0 8px;font-size:28px;display:block}.consumable-price-editor.teacher-admin-filter{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px;display:grid}.consumable-price-editor.teacher-admin-filter label{min-width:0}.consumable-price-editor.teacher-admin-filter input{box-sizing:border-box;width:100%}.student-approval-form{grid-template-columns:1fr 1.2fr .7fr auto;align-items:end;gap:12px;display:grid}.student-approval-form-animal-model{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px 20px;max-width:1040px;margin:0 auto}.student-approval-form-animal-model .student-approval-animal-model-fields{display:contents}.student-approval-form-animal-model .student-approval-detail,.student-approval-form-animal-model>button{grid-column:1/-1}.student-approval-form-animal-model>button{justify-self:end;min-width:180px;padding-inline:24px}.student-approval-form label{gap:6px;display:grid}.student-approval-form label span{color:var(--muted);font-size:12px;font-weight:800}.student-approval-form input,.student-approval-form select,.student-approval-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}.student-approval-detail{grid-column:1/4}.student-approval-form textarea{resize:vertical}.student-approval-form button{background:var(--teal);color:#fff;border:0;border-radius:8px;min-height:42px;font-weight:900}.student-approval-form button:disabled{color:#6f827c;cursor:not-allowed;background:#d9e5df}.student-approval-submit-feedback{margin:12px 0 0}.student-booking-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:16px;display:grid}.student-booking-mode-switch{border:1px solid var(--line);background:#f7fbf9;border-radius:10px;grid-column:1/-1;align-items:center;gap:8px;padding:10px;display:flex}.student-booking-calendar-action-switch button,.student-booking-mode-switch button{min-height:38px;color:var(--teal-dark);background:#fff;border:1px solid #9bc8b8;border-radius:8px;padding:0 16px;font-weight:900}.student-booking-calendar-action-switch button.is-active,.student-booking-mode-switch button.is-active{border-color:var(--teal);background:var(--teal);color:#fff}.student-booking-mode-switch>span{color:var(--muted);margin-left:4px;font-size:13px}.student-booking-supplement-quota{color:#9a5b00;white-space:nowrap;font-size:14px}.student-booking-supplement-reason{grid-column:1/-1}.student-booking-form>label{gap:6px;display:grid}.student-booking-form>label>span,.student-booking-resource-summary span{color:var(--muted);font-size:12px;font-weight:800}.student-booking-form input,.student-booking-form select,.student-booking-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}.student-booking-resource-summary{background:#f1faf6;border:1px solid #b9d8cc;border-radius:12px;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;display:grid}.student-booking-resource-summary.is-unavailable{color:#777;background:#f2f2f2;border-color:#d8d8d8}.student-booking-resource-summary>div{gap:6px;display:grid}.student-booking-slot-picker{border:1px solid var(--line);background:#fbfdfc;border-radius:14px;grid-column:1/-1;padding:16px}.student-booking-slot-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:14px;display:flex}.student-booking-slot-heading h4,.student-booking-slot-heading p{margin:0}.student-booking-slot-heading p{color:var(--muted);margin-top:5px;font-size:13px}.student-booking-slot-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;max-height:390px;padding-right:4px;display:grid;overflow:auto}.student-booking-slot-grid button{min-height:70px;color:var(--ink);background:#fff;border:1px solid #b9d8cc;border-radius:9px;place-content:center;gap:5px;display:grid}.student-booking-slot-grid button span{color:#1686c9;font-size:12px}.student-booking-slot-grid button.is-selected{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#dff3eb}.student-booking-slot-grid button.is-disabled{color:#777;cursor:not-allowed;background:#e8e8e8;border-color:#ddd}.student-booking-slot-grid button.is-disabled span{color:#777}.student-booking-slot-grid button.is-booked-by-me{color:var(--teal-dark);background:#dfe9e5;border-color:#8ea9a0;box-shadow:inset 0 0 0 1px #a7beb6}.student-booking-slot-grid button.is-booked-by-me span{color:var(--teal-dark);font-weight:900}.student-booking-submit{background:var(--teal);color:#fff;border:0;border-radius:8px;grid-column:1/-1;justify-self:end;min-width:180px;min-height:44px;font-weight:900}.student-booking-submit:disabled{color:#6f827c;background:#d9e5df}@media (max-width:1100px){.student-booking-form,.student-booking-resource-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-booking-slot-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:680px){.student-booking-form,.student-booking-resource-summary{grid-template-columns:1fr}.student-booking-slot-grid{grid-template-columns:repeat(2,minmax(118px,1fr))}.student-booking-slot-heading{display:grid}}.student-approval-submit-pending{color:var(--teal);background:#eff8f4;border:1px solid #b9d8cc;border-radius:8px;padding:10px 12px;font-weight:800}.student-approval-feedback-list{gap:10px;margin-top:16px;display:grid}.student-approval-feedback-list h4{margin:0;font-size:15px}.student-approval-feedback-list article{background:#fff5f6;border:1px solid #ffc7cf;border-radius:8px;gap:8px;padding:12px;display:grid}.student-approval-feedback-list article>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-approval-feedback-list p{color:#9b1231;margin:0}.student-approval-feedback-list button{justify-self:start}.student-approval-records{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:18px;display:grid}.student-approval-record-title,.student-approval-records-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.student-approval-record-title small,.student-approval-records-heading span{color:var(--muted);font-size:12px;font-weight:800;display:block}.student-approval-records-heading h4{margin:4px 0 0}.student-approval-records-heading b{color:var(--teal-dark)}.student-approval-record-list{gap:12px;display:grid}.student-approval-record-list>article{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:10px;padding:14px;display:grid}.student-approval-record-title strong{color:var(--ink);margin-bottom:4px;display:block}.student-approval-record-list>article>p{color:var(--muted);margin:0;line-height:1.6}.approval-timeline{gap:0;margin:2px 0 0;padding:0;list-style:none;display:grid}.approval-timeline-item{grid-template-columns:18px minmax(0,1fr);gap:10px;min-height:58px;display:grid;position:relative}.approval-timeline-item:not(:last-child):before{content:"";background:#d9e5df;width:2px;position:absolute;top:17px;bottom:-3px;left:7px}.approval-timeline-marker{z-index:1;background:#a8b8b2;border:3px solid #fff;border-radius:50%;width:16px;height:16px;margin-top:2px;position:relative;box-shadow:0 0 0 1px #cbd8d3}.approval-timeline-item.is-approved .approval-timeline-marker{background:#24835d;box-shadow:0 0 0 1px #24835d}.approval-timeline-item.is-pending .approval-timeline-marker{background:#d79a22;box-shadow:0 0 0 1px #d79a22}.approval-timeline-item.is-needs_revision .approval-timeline-marker,.approval-timeline-item.is-rejected .approval-timeline-marker{background:#c2415a;box-shadow:0 0 0 1px #c2415a}.approval-timeline-content{gap:4px;padding-bottom:12px;display:grid}.approval-timeline-content>div{align-items:center;gap:8px;display:flex}.approval-timeline-content strong{color:var(--ink);font-size:14px}.approval-timeline-status{color:var(--muted);background:#edf3f0;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.approval-timeline-content small,.approval-timeline-content time{color:var(--muted);font-size:12px}.approval-timeline-content p{color:#3b514a;margin:0;font-size:13px;line-height:1.55}.lab-split-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:16px;display:grid}.lab-panel{margin-top:18px;padding:16px}.lab-home .lab-panel{margin-top:0}.panel-link-button{border:1px solid var(--line);min-height:34px;color:var(--teal-dark);background:#fff;border-radius:8px;padding:0 12px;font-weight:900}.panel-count{color:var(--muted);font-size:13px;font-weight:900}.top-public-affairs{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;align-content:start;padding:12px;display:grid}.public-affair-list{gap:10px;margin-top:12px;display:grid}.public-affair-card{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:12px;padding:12px;display:grid}.top-public-affairs .public-affair-card{background:#fff}.public-affair-card p{color:var(--muted);margin:6px 0 0}.public-affair-card span{color:#8a5600;background:#fff4d8;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 8px;font-size:12px;font-weight:900;display:inline-flex}.public-affair-card.affair-done span{color:#166534;background:#e7f6ed}.plan-add-row{grid-template-columns:150px 110px 110px minmax(180px,1fr) 86px;gap:10px;margin-top:14px;display:grid}.plan-add-row button,.plan-add-row input{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:42px;padding:0 12px}.plan-add-row button{border-color:var(--teal-dark);background:var(--teal);color:#fff;font-weight:900}.calendar-mode-toggle{border:1px solid var(--line);background:#f7faf8;border-radius:8px;padding:3px;display:inline-flex}.calendar-mode-toggle button{min-width:58px;min-height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:900}.calendar-mode-toggle button.active{background:var(--teal);color:#fff}.lab-calendar{gap:12px;margin-top:14px;display:grid}.lab-calendar-week{grid-template-columns:repeat(7,minmax(150px,1fr));padding-bottom:6px;overflow-x:auto}.lab-calendar article{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;overflow:hidden}.lab-calendar h4{border-bottom:1px solid var(--line);background:#edf6f1;margin:0;padding:10px 12px}.lab-calendar h4 span{color:#255b55;margin-bottom:4px;font-size:13px;display:block}.plan-empty{color:var(--muted);padding:12px;font-size:13px}.plan-item{border-top:1px solid #edf1ee;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}.plan-item:first-of-type{border-top:0}.plan-item label,.plan-item small,.plan-item span{color:var(--muted)}.plan-item label{align-items:center;gap:6px;font-size:13px;display:flex}.plan-done{color:#7b8580;background:#f0f2f1}.plan-done strong{color:#7b8580;text-decoration:line-through}.student-schedule-calendar{overflow:hidden}.student-schedule-heading{align-items:flex-start}.student-schedule-heading p:last-child{margin-top:6px;font-size:13px}.student-schedule-legend,.student-schedule-summary{flex-wrap:wrap;gap:8px;display:flex}.student-schedule-event-meta em,.student-schedule-legend span,.student-schedule-summary span{border-radius:999px;align-items:center;min-height:28px;padding:4px 10px;font-size:12px;font-style:normal;font-weight:900;display:inline-flex}.student-schedule-event-meta em,.student-schedule-legend .is-course,.student-schedule-summary span{color:#145c52;background:#e6f3ef}.schedule-booking .student-schedule-event-meta em,.student-schedule-legend .is-booking{color:#2458a6;background:#e8f1ff}.schedule-manual .student-schedule-event-meta em,.student-schedule-legend .is-manual{color:#8a5600;background:#fff4d8}.student-schedule-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.student-schedule-navigation{flex-wrap:wrap;gap:8px;display:flex}.student-schedule-navigation button,.student-schedule-navigation input{border:1px solid var(--line);min-height:38px;color:var(--foreground);background:#fff;border-radius:10px;padding:0 12px;font-weight:800}.student-schedule-legend{margin-top:12px}.student-schedule-event-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.student-schedule-event-meta span{color:#47645d;font-size:12px;font-weight:800}.schedule-course{background:#f4fbf8;border-left:4px solid #2f7c70}.schedule-booking{background:#f5f8ff;border-left:4px solid #4e7fc7}.schedule-manual{background:#fffaf0;border-left:4px solid #d49b2b}.student-schedule-calendar .plan-done{border-left-color:#9ca8a3}.animal-status-list{gap:12px;margin-top:12px;display:grid}.animal-status-list button,.ordinary-animal-grid article{border:1px solid var(--line);color:var(--foreground);text-align:left;background:#fbfdfb;border-radius:8px;padding:12px}.animal-status-list button:focus-visible,.animal-status-list button:hover{border-color:var(--teal);outline:none}.animal-status-list span,.ordinary-animal-grid em{color:#bf0f2f;background:#fff1f2;border-radius:999px;margin:8px 6px 0 0;padding:5px 8px;font-size:12px;font-style:normal;font-weight:800;display:inline-block}.ordinary-alert-actions{gap:8px;margin-top:10px;display:grid}.ordinary-model-progress{background:#f0faf7;border:1px solid #b8d6ce;border-radius:8px;gap:4px;padding:8px 10px;display:grid}.ordinary-model-progress strong{color:var(--teal-strong);font-size:13px}.ordinary-model-progress span{color:var(--muted);font-size:12px;font-weight:700}.ordinary-model-progress-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.ordinary-model-progress-actions button{color:#0f5f5a;cursor:pointer;background:#fff;border:1px solid #0f766e;border-radius:6px;min-height:30px;padding:0 10px;font-size:12px;font-weight:900}.ordinary-model-progress-actions button:disabled{color:#94a3b8;cursor:not-allowed;border-color:#cbd5e1}.ordinary-alert-detail{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.ordinary-animal-grid .ordinary-alert-detail span{color:#be123c;margin-top:0;font-size:12px;font-weight:900;display:block}.ordinary-alert-detail button{color:#fff;cursor:pointer;background:#0f766e;border:0;border-radius:6px;min-height:30px;padding:0 10px;font-weight:900}.ordinary-alert-detail button:disabled{cursor:not-allowed;opacity:.55}.lab-table-wrap{border:1px solid var(--line);border-radius:8px;margin-top:14px;overflow-x:auto}.lab-table{border-collapse:collapse;background:#fff;width:100%;min-width:720px}.lab-table td,.lab-table th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;padding:12px}.lab-table th{color:#24423d;background:#edf6f1;font-weight:900}.lab-table td:last-child,.lab-table th:last-child{border-right:0}.lab-table tbody tr:last-child td{border-bottom:0}.reagent-library{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.reagent-library-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.reagent-library-tools label{color:var(--muted);gap:5px;font-size:12px;font-weight:800;display:grid}.reagent-library-tools select{border:1px solid var(--line);min-height:36px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.reagent-library-title{color:var(--text);font-size:18px;line-height:1.3}.reagent-search{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:280px;display:grid}.reagent-search input{border:1px solid var(--line);border-radius:8px;width:100%;min-height:40px;padding:0 12px}.reagent-search button{border:1px solid var(--teal-dark);background:var(--teal-dark);color:#fff;cursor:pointer;border-radius:8px;min-height:40px;padding:0 18px;font-weight:800}.reagent-search button:hover{filter:brightness(1.08)}.reagent-library-layout{grid-template-columns:170px minmax(0,1fr);gap:16px;margin-top:14px;display:grid}.reagent-category-list{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:start;display:grid;overflow:hidden}.reagent-category-list button{border:0;border-bottom:1px solid var(--line);min-height:48px;color:var(--foreground);text-align:left;background:#fff;align-items:center;gap:10px;padding:0 14px;font-weight:800;display:flex}.reagent-category-list button:last-child{border-bottom:0}.reagent-category-list button.active{color:#2563eb;background:#f2f7ff}.reagent-category-list span,.reagent-logo{color:#fff;background:#3b82f6;border-radius:999px;place-items:center;width:34px;height:34px;font-weight:900;display:inline-grid}.reagent-card-list{gap:12px;display:grid}.reagent-card{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:14px;padding:14px;display:grid}.reagent-card-main{color:var(--foreground);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:0;display:flex}.reagent-card-main strong{font-size:20px;display:block}.reagent-card-main p{color:#89929c;margin:6px 0;font-size:16px}.reagent-card-main small{color:var(--muted)}.reagent-request-inline{grid-template-columns:130px minmax(0,1fr) 132px;align-items:center;gap:10px;display:grid}.reagent-request-inline button,.reagent-request-inline input,.reagent-request-inline textarea{border:1px solid var(--line);border-radius:8px;min-height:40px;padding:0 10px}.reagent-request-inline textarea{resize:vertical;font:inherit;padding-top:10px;padding-bottom:10px}.reagent-request-inline button{border-color:var(--teal-dark);background:var(--teal);color:#fff;font-weight:900}.reagent-request-inline--reagent{grid-template-columns:130px 140px minmax(0,1fr)}.reagent-request-inline--reagent .reagent-basis-field{grid-column:1/-1;min-height:76px}.reagent-request-inline--reagent .reagent-submit-field{grid-column:1/-1;justify-self:end;min-width:160px}.reagent-detail-modal{max-width:760px}.reagent-detail-list{gap:14px;margin:18px 0 0;display:grid}.reagent-detail-list div{grid-template-columns:110px minmax(0,1fr);gap:12px;display:grid}.reagent-detail-list dt{color:#94a0aa;font-size:20px}.reagent-detail-list dd{color:var(--foreground);margin:0;font-size:20px}.reagent-detail-list .detail-wide{grid-template-columns:110px minmax(0,1fr)}.approval-pill{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.approval-pending{color:#8a5600;background:#fff4d8}.approval-approved{color:#166534;background:#e7f6ed}.approval-rejected{color:#be123c;background:#fff1f2}.approval-needs_revision{color:#c2410c;background:#fff7ed}.approval-cancelled{color:#52645e;background:#edf3f0}.lab-table button.secondary{border:1px solid var(--line);min-height:32px;color:var(--teal-dark);background:#fff;border-radius:8px;margin-top:6px;font-weight:900}.ordinary-animal-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:14px;display:grid}.ordinary-animal-grid small,.ordinary-animal-grid span,.ordinary-animal-grid strong{display:block}.ordinary-animal-grid span{margin-top:8px;font-size:26px;font-weight:900}.ordinary-animal-grid small{color:#166534;margin-top:10px;font-weight:800}.profile-archive-list{gap:14px;margin-top:14px;display:grid}.student-basic-profile-panel{border:1px solid var(--line);background:#f7fbfa;border-radius:10px;gap:14px;margin-bottom:20px;padding:16px;display:grid}.student-basic-profile-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.student-basic-profile-form label{gap:7px;display:grid}.student-basic-profile-form label>span{color:var(--muted);font-size:13px;font-weight:800}.student-basic-profile-form input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;min-height:42px;padding:9px 11px}.student-basic-profile-form input:disabled{color:var(--teal-dark);opacity:1;background:#edf4f2}.student-basic-profile-address{grid-column:span 2}.student-basic-profile-actions{grid-column:1/-1;align-items:center;gap:12px;display:flex}.student-basic-profile-actions button{background:var(--teal-dark);color:#fff;border:0;border-radius:8px;min-height:40px;padding:9px 18px;font-weight:900}.profile-archive-card{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;padding:14px}.profile-archive-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.profile-archive-header b,.profile-archive-header small,.profile-archive-header strong{display:block}.profile-archive-header small{color:var(--muted);margin-top:6px}.profile-archive-header b.completion-ok{color:#166534}.profile-archive-header b.completion-low{color:#be123c}.profile-archive-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.profile-archive-grid div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:6px;padding:10px;display:grid}.profile-archive-grid span{color:var(--muted);font-size:13px}.archive-reasons{margin-top:12px}.teacher-dashboard{align-items:start;margin-top:18px}.teacher-dashboard,.teacher-main-column{gap:16px;display:grid}.teacher-overview-strip{order:-2;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.teacher-home-public-affairs-group{order:-1;gap:14px;display:grid}.teacher-home-public-affairs-heading{align-items:center}.teacher-meeting-task-panel,.teacher-module-panel,.teacher-overview-button,.teacher-panel,.teacher-side-panel section,.teacher-side-work-plan{border:1px solid var(--line);background:var(--panel);border-radius:8px}.teacher-overview-button{color:var(--foreground);text-align:left;gap:8px;padding:16px;display:grid}.teacher-overview-button:focus-visible,.teacher-overview-button:hover{border-color:var(--teal);outline:none}.teacher-affair-list p,.teacher-card-header span,.teacher-message-list p,.teacher-module-grid p,.teacher-module-table span,.teacher-overview-strip span,.teacher-stats-mini span,.teacher-student-card small,.teacher-work-item small,.teacher-work-item span{color:var(--muted)}.teacher-overview-strip strong{color:var(--teal-dark);font-size:30px}.teacher-meeting-task-panel,.teacher-panel,.teacher-side-panel section,.teacher-side-work-plan{padding:16px}.teacher-managed-students-title{font-size:22px}.teacher-daily-attendance-summary-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.teacher-daily-attendance-summary-list article{border:1px solid var(--line);background:var(--soft-mint);border-radius:10px;gap:8px;padding:14px;display:grid}.teacher-daily-attendance-summary-empty,.teacher-daily-attendance-summary-list p{color:var(--muted);margin:0;line-height:1.7}.teacher-daily-attendance-summary-list b{color:var(--foreground);margin:0 4px}.teacher-daily-attendance-summary-empty{margin-top:12px}.teacher-student-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.teacher-student-card{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:12px;padding:14px;display:grid}.teacher-student-card.active{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.teacher-student-main{color:var(--foreground);text-align:left;background:0 0;border:0;gap:12px;padding:0;display:grid}.teacher-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.teacher-card-header strong{font-size:22px;display:block}.teacher-card-header b{color:#8a5600;background:#fff4d8;border-radius:999px;flex:none;padding:5px 8px;font-size:12px}.teacher-stats-mini{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.teacher-stats-mini div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;padding:9px;display:grid}.teacher-stats-mini strong{color:var(--teal-dark);font-size:18px}.teacher-alert-list{flex-wrap:wrap;gap:6px;display:flex}.teacher-alert-list span{color:#be123c;background:#fff1f2;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.teacher-reminder-row{grid-template-columns:minmax(0,1fr) 72px;gap:8px;display:grid}.teacher-reminder-row button,.teacher-reminder-row select{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:38px;padding:0 10px}.teacher-reminder-row button{border-color:var(--teal-dark);background:var(--teal);color:#fff;font-weight:900}.teacher-module-grid article{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;padding:12px}.teacher-module-grid strong{color:var(--teal-dark);margin-bottom:8px;display:block}.teacher-work-list{gap:10px;margin-top:14px;display:grid}.teacher-affair-list article,.teacher-message-list article,.teacher-module-table article,.teacher-work-item{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:6px;padding:12px;display:grid}.teacher-work-item.done{background:#f0f2f1}.teacher-work-item.done strong{color:#7b8580;text-decoration:line-through}.teacher-side-panel{gap:16px;display:grid;position:sticky;top:18px}.teacher-meeting-task-panel{align-self:start}.teacher-meeting-task-heading .eyebrow,.teacher-meeting-task-heading .panel-count{font-size:14px}.teacher-side-work-plan{align-self:start}.teacher-side-work-plan .teacher-work-list{gap:8px;margin-top:12px}.teacher-side-work-plan .teacher-work-item{grid-template-columns:minmax(0,1fr) 30px;align-items:center;padding:10px}.teacher-side-work-plan .teacher-work-item>div{gap:6px;display:grid}.teacher-affair-list,.teacher-meeting-task-list,.teacher-message-list{gap:10px;margin-top:12px;display:grid}.teacher-meeting-task-note{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.5}.teacher-meeting-task-list article{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.teacher-meeting-task-list article.completed{background:#f0f2f1}.teacher-meeting-task-list article.not-completed{background:#fff7f2;border-color:#f0d0b8}.teacher-meeting-task-list article>div{gap:6px;display:grid}.teacher-meeting-task-list small,.teacher-meeting-task-list span{color:var(--muted);font-size:12px}.teacher-meeting-task-list p{color:var(--muted);margin:0;line-height:1.45}.meeting-task-actions{align-items:center;gap:6px;display:flex}.meeting-task-unfinished{color:#a84a1f;background:#fff7f2;border:1px solid #c96f3c;border-radius:8px;min-height:30px;padding:0 10px;font-size:12px;font-weight:800}.meeting-task-unfinished:disabled{opacity:.5}.meeting-task-progress{color:#8a5b0c;background:#fff8e8;border:1px solid #b87918;border-radius:8px}.meeting-task-complete,.meeting-task-progress{min-height:30px;padding:0 12px;font-size:12px;font-weight:800}.meeting-task-complete{color:#1d5b4d;background:#edf7f2;border:1px solid #1d5b4d;border-radius:8px;min-width:58px}.meeting-task-complete:disabled{color:#255b55;cursor:default;background:#e7ece8;border-color:#c7cfca}.meeting-task-status-label{color:#285a4d;white-space:nowrap;background:#edf7f2;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.meeting-task-reason{color:#a84a1f!important}.meeting-task-completion-note,.meeting-task-reason{font-weight:700;line-height:1.5;display:block;font-size:15px!important}.meeting-task-completion-note{color:#1d5b4d!important}.meeting-task-carryover-note{font-weight:800;color:#8a5b0c!important}.meeting-task-progress-history{background:#fffaf0;border-left:3px solid #d6a24c;border-radius:6px;margin-top:2px;padding:8px 10px;gap:5px!important;display:grid!important}.meeting-task-progress-history p{color:#52615d;grid-template-columns:auto minmax(0,1fr);gap:8px;font-size:13px;display:grid}.meeting-task-progress-history b{color:#8a5b0c;white-space:nowrap}.meeting-task-progress-history span{color:#334b45;font-size:13px}.meeting-task-reason-editor{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.meeting-task-reason-editor input{color:#123c33;background:#fff;border:1px solid #c96f3c;border-radius:8px;flex:1;min-width:220px;min-height:34px;padding:0 10px}.meeting-task-completion-editor input{border-color:#1d5b4d}.meeting-task-progress-editor input{border-color:#b87918}.meeting-task-progress-editor button:nth-of-type(2){background:#b87918;border-color:#b87918}.meeting-task-reason-editor button{color:#fff;background:#1d5b4d;border:1px solid #1d5b4d;border-radius:8px;min-height:34px;padding:0 12px;font-weight:800}.meeting-task-reason-editor button.secondary{border-color:var(--line);color:var(--foreground);background:#fff}.meeting-task-reason-editor button:disabled{opacity:.5}.meeting-task-management-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.meeting-task-management-tools select{border:1px solid var(--line);min-height:34px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.teacher-meeting-task-check,.teacher-work-plan-check{border:1px solid var(--teal-dark);width:30px;height:30px;color:var(--teal-dark);background:#fff;border-radius:8px;font-weight:900}.teacher-meeting-task-check:disabled,.teacher-work-plan-check:disabled{color:#255b55;cursor:default;background:#e7ece8;border-color:#c7cfca}.teacher-message-list article{background:#fff1f2;border-color:#f2b8bd}.teacher-message-list strong{color:#be123c}.teacher-affair-list span{color:#255b55;background:#edf6f1;border-radius:999px;width:max-content;padding:4px 8px;font-size:12px;font-weight:900}.teacher-module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.teacher-module-grid strong{font-size:28px}.teacher-module-table{gap:8px;margin-top:14px;display:grid}.teacher-module-table article{grid-template-columns:90px minmax(0,1fr) 140px;align-items:center}.teacher-module-table b{color:var(--teal-dark);justify-self:end}.teacher-public-management,.teacher-student-management{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:16px;margin-top:18px;padding:16px;display:grid}.teacher-management-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.teacher-student-row-list{grid-template-columns:1fr}.teacher-student-row{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.teacher-student-row.active{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.teacher-student-row-main{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:0;grid-template-columns:minmax(135px,.65fr) minmax(430px,2fr) minmax(220px,.9fr);align-items:center;gap:14px;padding:14px;display:grid}.teacher-student-row-identity{gap:5px;display:grid}.teacher-student-row-identity strong{font-size:17px}.teacher-student-row-identity small,.teacher-student-row-metrics small,.teacher-student-today-punches>small{color:var(--muted)}.teacher-student-row-metrics{grid-template-columns:repeat(7,minmax(58px,1fr));gap:6px;display:grid}.teacher-student-row-metrics>span{border:1px solid var(--line);background:#fbfdfb;border-radius:9px;gap:3px;padding:8px;display:grid}.teacher-student-row-metrics strong{color:var(--lab-primary);font-size:16px}.teacher-student-today-punches{background:var(--lab-primary-soft);border:1px solid #bddbd4;border-radius:10px;gap:6px;padding:9px 10px;display:grid}.teacher-student-today-punches>span{flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:5px 16px;display:flex}.teacher-student-today-punches>span>span{align-items:baseline;gap:6px;font-size:12px;display:flex}.teacher-student-today-punches b{font-weight:700}.teacher-student-today-punches em{color:var(--lab-primary);font-style:normal;font-weight:800}.teacher-student-today-punches i{color:var(--muted);flex-basis:100%;font-size:12px;font-style:normal}.teacher-student-row .teacher-student-card-calendar-actions{border-top:0;border-left:1px solid var(--line);grid-template-columns:1fr;align-content:center;min-width:112px}@media (max-width:1280px){.teacher-student-row-main{grid-template-columns:minmax(140px,.7fr) minmax(470px,2fr)}.teacher-student-today-punches{grid-column:1/-1}}@media (max-width:900px){.teacher-student-row,.teacher-student-row-main,.teacher-student-row-metrics{grid-template-columns:1fr}.teacher-student-row .teacher-student-card-calendar-actions{border-top:1px solid var(--line);border-left:0;grid-template-columns:repeat(2,minmax(0,1fr))}}.teacher-student-archive-history{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:12px;margin-top:4px;padding:16px;display:grid}.teacher-student-archive-toolbar{grid-template-columns:minmax(240px,1fr) minmax(180px,260px);align-items:end;gap:12px;display:grid}.teacher-student-archive-toolbar label{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}.teacher-student-archive-toolbar input,.teacher-student-archive-toolbar select{border:1px solid var(--line);min-height:42px;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px;font-weight:800}.teacher-student-monthly-archive-card{margin-top:2px}.teacher-student-archive-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;background:#fff;border-radius:8px;gap:6px;padding:20px;display:grid}.teacher-student-archive-empty strong{color:var(--ink)}.teacher-student-archive-empty p{margin:0}.teacher-management-card{border:1px solid var(--line);color:var(--foreground);text-align:left;background:#fbfdfb;border-radius:8px;gap:10px;padding:14px;display:grid}.teacher-management-card:focus-within,.teacher-management-card:hover{border-color:var(--teal);outline:none}.teacher-management-card>button{color:var(--foreground);text-align:left;background:0 0;border:0;gap:10px;padding:0;display:grid}.teacher-management-card>button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.teacher-management-card-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.teacher-management-card-head>div{gap:4px;display:grid}.teacher-management-card-head>b{color:#9a3412;background:#fff7ed;border-radius:999px;align-self:start;padding:4px 8px;font-size:12px}.teacher-management-card-head strong{font-size:22px}.teacher-detail-feedback p,.teacher-management-card p,.teacher-management-card small,.teacher-management-card span,.teacher-public-grid p,.teacher-student-detail-grid p{color:var(--muted)}.teacher-management-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.teacher-management-metric-grid>div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;padding:10px;display:grid}.teacher-management-card b{color:var(--teal-dark);font-size:20px}.teacher-public-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.teacher-public-grid section{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;align-content:start;gap:10px;padding:14px;display:grid}.teacher-public-grid h3{margin:0}.teacher-public-grid article{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:12px;display:grid}.teacher-management-reminder-alert{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;gap:6px;padding:10px;display:grid}.teacher-management-reminder-alert strong{color:#be123c}.teacher-management-reminder-alert p{color:#7f1d1d;margin:0;line-height:1.45}.teacher-attendance-ranking-panel{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:12px;padding:14px;display:grid}.teacher-attendance-ranking-panel .teacher-admin-table-wrap{margin:0}.teacher-archived-student-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--lab-shadow);border-radius:16px;gap:12px;padding:20px;display:grid}.teacher-archived-student-panel .teacher-admin-table-wrap{margin:0}.teacher-student-directory-heading-actions,.teacher-student-directory-heading-actions label{align-items:center;gap:10px;display:flex}.teacher-student-directory-heading-actions label>span{color:var(--muted);font-size:13px;font-weight:800}.teacher-student-directory-heading-actions select{border:1px solid var(--line);min-width:188px;min-height:38px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:0 34px 0 12px;font-weight:700}.teacher-student-directory-heading-actions input[type=search]{border:1px solid var(--line);min-width:180px;min-height:38px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:0 12px}@media (max-width:720px){.teacher-attendance-ranking-panel>.panel-heading{flex-direction:column;align-items:stretch}.teacher-student-directory-heading-actions{justify-content:space-between}.teacher-student-directory-heading-actions label{flex:1}.teacher-student-directory-heading-actions input[type=search],.teacher-student-directory-heading-actions select{width:100%;min-width:0}}.teacher-public-grid span{color:#255b55;background:#edf6f1;border-radius:999px;width:max-content;padding:4px 8px;font-size:12px;font-weight:900}.teacher-student-detail-modal{max-width:1040px}.teacher-report-detail-modal{width:min(1320px,100vw - 48px);max-width:none}.teacher-report-modal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.teacher-report-modal-entries p,.teacher-report-modal-grid div{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;padding:12px}.teacher-report-modal-grid span{color:var(--muted);margin-bottom:8px;display:block}.teacher-report-modal-grid strong{color:var(--teal-dark)}.teacher-report-modal-entries{gap:10px;display:grid}.teacher-report-modal-entries p{margin:0}.teacher-detail-feedback,.teacher-student-detail-grid,.teacher-student-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.teacher-detail-feedback div,.teacher-student-detail-grid div,.teacher-student-detail-stats div{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:8px;padding:12px;display:grid}.teacher-student-detail-stats span{color:var(--muted)}.teacher-student-detail-stats strong{color:var(--teal-dark);font-size:22px}.teacher-detail-alert-list p,.teacher-detail-inline-alert{color:#7f1d1d;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:10px;font-weight:800}.teacher-detail-alert-list{gap:8px;display:grid}.teacher-student-detail-grid .teacher-detail-gene-row{background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.teacher-detail-gene-row p{min-width:0;margin:0}.teacher-detail-gene-row button{border:1px solid var(--teal-dark);min-height:32px;color:var(--teal-dark);background:#fff;border-radius:8px;flex:none;padding:0 10px;font-weight:900}.teacher-detail-reminder-actions{grid-template-columns:minmax(0,1fr) 96px;gap:8px;margin-top:4px;display:grid}.teacher-detail-reminder-actions button,.teacher-detail-reminder-actions select{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:40px;padding:0 10px}.teacher-detail-reminder-actions button{border-color:var(--teal-dark);background:var(--teal);color:#fff;font-weight:900}.teacher-review-center{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:16px;margin-top:18px;padding:16px;display:grid}.teacher-review-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.teacher-student-directory-management{box-shadow:none;background:0 0;border:0;padding:0}.teacher-student-directory-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--lab-shadow);border-radius:16px;gap:16px;padding:20px;display:grid}.teacher-student-directory-management>.teacher-attendance-ranking-panel{background:var(--panel);box-shadow:var(--lab-shadow);border-radius:16px;order:-1;padding:20px}.teacher-review-history-list,.teacher-review-list,.teacher-review-side{gap:10px;display:grid}.teacher-review-card{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;grid-template-columns:minmax(0,1fr) 150px;align-items:stretch;gap:12px;padding:14px;display:grid}.teacher-review-card span{color:#255b55;background:#edf6f1;border-radius:999px;width:max-content;margin-bottom:8px;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}.teacher-review-card strong{font-size:20px;display:block}.teacher-review-card p,.teacher-review-card small,.teacher-review-history span,.teacher-review-side p{color:var(--muted)}.teacher-review-detail-rows{gap:6px;margin-top:10px;display:grid}.teacher-review-detail-row{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:8px;grid-template-columns:92px minmax(0,1fr);align-items:start;gap:8px;margin:0;padding:8px 10px;display:grid}.teacher-review-detail-row b{color:#255b55;font-size:12px;line-height:1.5}.teacher-review-card .teacher-review-detail-row span{width:auto;color:var(--text);background:0 0;border-radius:0;margin:0;padding:0;font-size:13px;font-weight:700;line-height:1.5;display:block}.teacher-review-detail-row.warning{background:#fff1f2;border-color:#fecdd3}.teacher-review-detail-row.info{background:#eff6ff;border-color:#bfdbfe}.teacher-review-hint{background:#f0fdfa;border-radius:8px;margin-top:10px;padding:8px 10px;font-weight:800;color:#115e59!important}.teacher-review-actions{grid-area:1/2/span 2;align-self:center;gap:8px;display:grid}.teacher-review-form{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.teacher-review-form label{gap:6px;display:grid}.teacher-review-form label:last-child{grid-column:1/-1}.teacher-review-form span{color:var(--muted);background:0 0;margin:0;padding:0;font-size:12px}.teacher-review-form input,.teacher-review-form select,.teacher-review-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:9px 10px}.teacher-review-form textarea{resize:vertical}.teacher-review-actions button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:38px;font-weight:900}.teacher-review-actions button:last-child{color:#be123c;background:#fff1f2;border-color:#be123c}.teacher-report-feedback-section{gap:12px;display:grid}.teacher-report-feedback-existing{background:#f4fbf8;border:1px solid #bfd8d2;border-radius:8px;gap:6px;padding:12px;display:grid}.teacher-report-feedback-existing strong{color:#0b4a4a}.teacher-report-feedback-existing span{color:var(--muted);font-size:12px}.teacher-report-feedback-existing p{color:#2f443d;margin:0;line-height:1.7}.teacher-report-feedback-form{gap:10px;display:grid}.teacher-report-feedback-form textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:92px;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}.teacher-report-feedback-form textarea:focus{border-color:#0b666a;outline:2px solid #0b666a24}.teacher-report-feedback-form button{justify-self:end}.teacher-review-detail-modal{width:min(1120px,100vw - 56px);max-height:min(86vh,920px);overflow:auto}.teacher-review-modal-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.teacher-review-decision-record,.teacher-review-modal-grid div{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:6px;padding:12px;display:grid}.teacher-review-decision-record span,.teacher-review-modal-grid span{color:var(--muted);font-size:12px;font-weight:800}.teacher-review-decision-record strong,.teacher-review-modal-grid strong{color:var(--ink);font-size:15px}.teacher-review-modal-rows{gap:8px;display:grid}.teacher-review-detail-modal .teacher-review-detail-row{grid-template-columns:116px minmax(0,1fr)}.teacher-review-detail-modal .teacher-review-detail-row span{width:auto;color:var(--text);background:0 0;border-radius:0;margin:0;padding:0;font-size:14px;font-weight:700;line-height:1.6;display:block}.teacher-review-modal-form{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-review-modal-actions{z-index:2;border-top:1px solid var(--line);background:#fffffff7;justify-content:end;margin:0 -22px -22px;padding:14px 22px;position:sticky;bottom:-22px;box-shadow:0 -8px 20px #121f1c0f}.teacher-review-modal-actions .error-message{flex:100%;margin:0}.teacher-review-modal-actions button:last-child{color:#be123c;background:#fff1f2;border-color:#be123c}.teacher-review-history,.teacher-review-side section{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;padding:14px}.teacher-review-side h3{margin:0 0 10px}.teacher-review-history-list article,.teacher-review-side article{border:1px solid var(--line);background:#fff;border-radius:8px;gap:6px;padding:10px;display:grid}.teacher-duration-grid,.teacher-instrument-grid,.teacher-review-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.teacher-duration-grid article,.teacher-instrument-grid article,.teacher-review-category-grid button{border:1px solid var(--line);color:var(--foreground);text-align:left;background:#fbfdfb;border-radius:8px;gap:8px;padding:12px;display:grid}.teacher-report-list-item:hover,.teacher-review-category-grid button.active,.teacher-review-category-grid button:hover{border-color:var(--teal);outline:none}.teacher-duration-grid span,.teacher-instrument-grid span,.teacher-report-list span,.teacher-report-list-item span,.teacher-review-category-grid span{color:#255b55;background:#edf6f1;border-radius:999px;width:max-content;padding:4px 8px;font-size:12px;font-weight:900}.teacher-review-category-grid strong{font-size:24px}.teacher-review-toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.teacher-review-toolbar label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.teacher-review-toolbar select{border:1px solid var(--line);background:var(--panel);min-width:240px;color:var(--foreground);border-radius:10px;padding:9px 12px}.teacher-booking-management,.teacher-report-center{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:16px;margin-top:18px;padding:16px;display:grid}.teacher-admin-filter,.teacher-report-toolbar{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,minmax(180px,1fr)) 96px 96px;align-items:end;gap:14px;padding:16px;display:grid}.teacher-report-toolbar{grid-template-columns:minmax(260px,1fr) 96px}.teacher-admin-filter label,.teacher-report-toolbar label{color:var(--foreground);gap:8px;font-weight:900;display:grid}.teacher-admin-filter input,.teacher-admin-filter select,.teacher-report-toolbar input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px}.teacher-heading-scope-select{min-width:220px;color:var(--foreground);gap:8px;font-weight:900;display:grid}.teacher-heading-scope-select select{border:1px solid var(--line);width:100%;min-height:44px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px}.teacher-scope-heading-copy{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.teacher-scope-heading-copy>div{min-width:0}.teacher-admin-filter button,.teacher-pagination button,.teacher-pagination select,.teacher-report-list-item>button,.teacher-report-toolbar button,.teacher-table-actions button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:40px;font-weight:900}.teacher-admin-filter button.secondary,.teacher-pagination button,.teacher-pagination select,.teacher-report-toolbar button,.teacher-table-actions button{border-color:var(--line);color:var(--foreground);background:#fff}.teacher-admin-filter.booking-student-filter{grid-template-columns:repeat(5,minmax(160px,1fr))}.booking-filter-actions{grid-column:1/-1;justify-content:flex-end;gap:12px;display:flex}.booking-filter-actions button{min-width:96px}.error-message,.success-message{border-radius:8px;margin:0;padding:10px 12px;font-weight:900}.success-message{color:#0b6848;background:#edfdf5;border:1px solid #8fd3b6}.error-message{color:#b3153c;background:#fff0f3;border:1px solid #f2a7b5}.teacher-report-layout{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.teacher-report-column-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:14px;display:grid}.teacher-report-column{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;min-width:0;padding:12px;display:grid}.teacher-report-column-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding-bottom:10px;display:grid}.teacher-report-column-heading h3,.teacher-report-column-heading p{margin:0}.teacher-report-column-heading p{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.45}.teacher-report-column-heading span{color:#255b55;white-space:nowrap;background:#edf6f1;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.teacher-report-list{gap:10px;display:grid}.teacher-booking-section,.teacher-report-list-item{border:1px solid var(--line);color:var(--foreground);text-align:left;background:#fbfdfb;border-radius:8px;gap:10px;padding:14px;display:grid}.teacher-report-list-item{grid-template-columns:minmax(0,1fr) 120px;align-items:center}.teacher-report-list-item>div{gap:10px;display:grid}.teacher-report-list-item>button{justify-self:end;width:110px}.teacher-report-view-button.viewed:focus-visible,.teacher-report-view-button.viewed:hover{color:var(--foreground);border-color:#87928c}.teacher-report-list strong,.teacher-report-list-item strong{font-size:20px}.teacher-duration-grid p,.teacher-duration-grid small,.teacher-instrument-grid p,.teacher-report-list p,.teacher-report-list small,.teacher-report-list-item p,.teacher-report-list-item small{color:var(--muted)}.teacher-pagination,.teacher-table-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-admin-table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;overflow-x:auto}.teacher-admin-table{border-collapse:collapse;background:#fff;width:100%;min-width:980px}.teacher-admin-table td,.teacher-admin-table th{border-bottom:1px solid var(--line);color:var(--foreground);text-align:left;white-space:nowrap;padding:12px}.teacher-admin-table th{color:var(--muted);background:#f5f7f6;font-weight:900}.teacher-admin-table td button{color:#be123c;background:#fff1f2;border:1px solid #be123c;border-radius:8px;min-height:32px;font-weight:900}.teacher-admin-meeting-report article{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.teacher-admin-meeting-report-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.teacher-admin-meeting-report-head div{gap:6px;display:grid}.teacher-admin-meeting-report-head span,.teacher-admin-meeting-report-list p{color:var(--muted)}.teacher-admin-meeting-report-head b{color:#255b55;background:#edf6f1;border-radius:999px;padding:5px 9px}.teacher-admin-meeting-report-list{gap:8px;display:grid}.teacher-admin-meeting-report-list p{align-items:center;gap:8px;margin:0;display:flex}.teacher-admin-meeting-report-list span{color:#255b55;background:#f0f2f1;border-radius:999px;width:max-content;padding:3px 7px;font-size:12px;font-weight:900}.teacher-pagination .active{background:var(--teal);color:#fff}.teacher-adjustment-history-panel{border:1px solid var(--line);background:#fff;border-radius:12px;gap:12px;margin-top:16px;padding:16px;display:grid}.teacher-adjustment-history-table{min-width:900px}.teacher-adjustment-history-panel .teacher-pagination button{border:1px solid var(--line);min-height:34px;color:var(--foreground);background:#fff;border-radius:8px;padding:6px 14px;font-weight:800}.teacher-pagination .teacher-page-jump{color:var(--muted);align-items:center;gap:8px;font-weight:900;display:flex}.teacher-pagination .teacher-page-jump input{border:1px solid var(--line);width:72px;min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.teacher-pagination .teacher-page-jump button{min-height:40px;padding:0 14px}.teacher-duration-filter{grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) 96px}.teacher-duration-grid article{grid-template-columns:minmax(0,1fr) repeat(2,minmax(90px,.35fr));align-items:center}.teacher-duration-grid article>p,.teacher-duration-grid article>span,.teacher-duration-grid article>strong{grid-column:1}.teacher-duration-grid div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;padding:10px;display:grid}.teacher-duration-grid b{color:var(--teal-dark);font-size:22px}@media (max-width:1180px){.app-shell,.sidebar{grid-template-columns:1fr}.sidebar{display:grid;position:static}.sidebar nav{grid-template-columns:repeat(5,minmax(110px,1fr));overflow-x:auto}.sidebar-panel{margin-top:0}.content-grid{grid-template-columns:1fr}.log-panel{position:static}.lab-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-profile-panel,.lab-split-grid,.profile-archive-grid,.reagent-card,.reagent-library-layout,.student-approval-form,.student-basic-profile-form,.teacher-dashboard,.teacher-detail-feedback,.teacher-duration-grid,.teacher-duration-grid article,.teacher-instrument-grid,.teacher-management-grid,.teacher-module-grid,.teacher-public-grid,.teacher-report-column-grid,.teacher-report-layout,.teacher-report-modal-grid,.teacher-review-card,.teacher-review-category-grid,.teacher-review-layout,.teacher-student-detail-grid,.teacher-student-detail-stats,.teacher-student-grid,.work-subpanels{grid-template-columns:1fr}.student-basic-profile-address{grid-column:auto}.work-overview{grid-row:auto;grid-template-columns:1fr}.work-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-home-booking-calendar-button{grid-column:1/-1}.work-subpanels{grid-template-rows:auto;grid-template-columns:1fr;display:grid}.attendance-panel,.contribution-panel,.reward-panel{grid-area:auto}.course-schedule-card{grid-column:auto}.teacher-review-actions,.teacher-review-form{grid-area:auto/1}.teacher-review-form{grid-template-columns:1fr}.student-approval-detail{grid-column:1}.teacher-side-panel{position:static}}@media (max-width:860px){.sidebar,.workspace{padding:18px}.modal-header,.topbar{flex-direction:column;align-items:flex-start}.top-actions{width:100%}.top-actions button{flex:1}.breeding-flow,.breeding-parents,.cage-grid,.cage-grid-large,.checkbox-grid,.detail-grid,.edit-section,.filter-bar,.final-grid,.lab-summary-grid,.mouse-form,.pending-final,.plan-add-row,.plan-item,.profile-archive-grid,.quick-actions,.reagent-request-inline,.stats-grid,.teacher-admin-filter,.teacher-detail-reminder-actions,.teacher-duration-filter,.teacher-management-metric-grid,.teacher-module-table article,.teacher-overview-strip,.teacher-reminder-row,.teacher-report-list-item,.teacher-report-toolbar,.teacher-stats-mini,.transfer-submit-row,.work-metrics,.work-subpanels{grid-template-columns:1fr}.teacher-report-list-item>button{justify-self:stretch;width:100%}.breeding-flow:before{display:none}.alert-strip,.archive-header{flex-direction:column;align-items:flex-start}.alert-strip{white-space:normal}}.teacher-gene-management{gap:16px;display:grid}.teacher-gene-student-toolbar{align-items:end}.teacher-gene-student-toolbar label{min-width:240px;color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.teacher-gene-student-toolbar select{border:1px solid var(--line);width:100%;color:var(--foreground);background:#fff;border-radius:12px;padding:10px 12px}.teacher-gene-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.teacher-gene-card,.teacher-gene-report-list article,.teacher-gene-section,.teacher-gene-summary-grid article{border:1px solid var(--line);background:#fff;border-radius:8px}.teacher-gene-summary-grid article{gap:8px;padding:14px;display:grid}.teacher-gene-card p,.teacher-gene-card span,.teacher-gene-report-list p,.teacher-gene-report-list span,.teacher-gene-summary-grid p,.teacher-gene-summary-grid span{color:var(--muted)}.teacher-gene-summary-grid strong{color:var(--teal-dark)}.teacher-gene-section{gap:12px;padding:16px;display:grid}.teacher-gene-section h3{font-size:18px}.teacher-gene-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-gene-section-heading h3{margin:0}.teacher-gene-two-column{grid-template-columns:1fr;gap:16px;display:grid}.teacher-gene-mousemap{gap:16px}.teacher-gene-mousemap .rack-title,.teacher-gene-mousemap-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.teacher-gene-mousemap .rack-title>span,.teacher-gene-mousemap-heading>span{color:var(--muted);font-size:13px}.teacher-gene-map-selectors{align-items:center;gap:8px;display:flex}.teacher-gene-map-selectors select{border:1px solid var(--line);min-height:34px;color:var(--teal-dark);background:#fff;border-radius:8px;padding:0 10px;font-weight:700}.teacher-gene-mousemap .cage-card{min-height:250px}.teacher-gene-cage-note{color:#9a4f12;background:#fff1d9;border-radius:8px;margin:0;padding:7px 9px;font-size:12px;font-weight:700}.teacher-gene-mousemap .mouse-chip{cursor:pointer;touch-action:auto}.teacher-mousemap-overview{gap:16px;display:grid}.teacher-mousemap-heading,.teacher-mousemap-rack-heading,.teacher-mousemap-room-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-mousemap-heading h3,.teacher-mousemap-heading p,.teacher-mousemap-rack-heading h4,.teacher-mousemap-rack-heading p{margin:0}.teacher-mousemap-heading>span,.teacher-mousemap-rack-heading>span,.teacher-mousemap-room-heading>span{color:var(--muted);font-size:12px;font-weight:700}.teacher-gene-archive-actions label,.teacher-mousemap-student-filter{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.teacher-gene-archive-actions select,.teacher-mousemap-student-filter select{border:1px solid var(--line);min-height:34px;color:var(--teal-dark);background:#fff;border-radius:8px;padding:0 10px;font-weight:700}.teacher-mousemap-room-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.teacher-mousemap-room{border:1px solid var(--line);background:#f8fcfb;border-radius:14px;align-content:start;gap:12px;padding:14px;display:grid}.teacher-mousemap-room-heading strong{color:var(--teal-dark);font-size:16px}.teacher-mousemap-racks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.teacher-mousemap-racks button{min-width:0;color:var(--teal-dark);text-align:left;background:#fff;border:1px solid #c9ddd8;border-radius:10px;gap:3px;padding:10px;display:grid}.teacher-mousemap-racks button.active,.teacher-mousemap-racks button:hover{border-color:var(--lab-primary);background:var(--lab-primary-soft);box-shadow:0 0 0 2px #0f5f5914}.teacher-mousemap-racks button small,.teacher-mousemap-racks button span{color:var(--muted);font-size:12px}.teacher-mousemap-rack-detail{background:#fff;border:1px solid #b7d7d1;border-radius:14px;gap:12px;padding:14px;display:grid;overflow-x:auto}.teacher-mousemap-cage-grid{grid-template-columns:repeat(8,minmax(96px,1fr));gap:8px;min-width:824px;display:grid}.teacher-mousemap-cage-grid>button{min-height:92px;color:inherit;text-align:left;background:#f6f8f8;border:1px solid #d9e4e1;border-radius:9px;gap:5px;padding:9px;display:grid}.teacher-mousemap-cage-grid>button.used{cursor:pointer;background:#eaf8f3;border-color:#79b9ac}.teacher-mousemap-cage-grid>button.selected{border-color:var(--lab-primary);box-shadow:0 0 0 2px #0f5f5924}.teacher-mousemap-cage-grid>button.filtered-out{opacity:.35}.teacher-mousemap-cage-grid>button:disabled{cursor:default}.teacher-mousemap-cage-grid>button strong{color:var(--teal-dark);font-size:13px}.teacher-mousemap-cage-grid>button span{color:var(--muted);font-size:12px;font-weight:800}.teacher-mousemap-cage-grid>button.used span{color:#087565}.teacher-mousemap-cage-grid>button small{overflow-wrap:anywhere;color:var(--foreground);font-size:12px;line-height:1.35}.teacher-mousemap-cage-topline{justify-content:space-between;align-items:flex-start;gap:6px;min-width:0;display:flex}.teacher-mousemap-cage-topline>strong{flex:none}.teacher-mousemap-cage-grid>button .teacher-mousemap-cage-owner{color:#087565;text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.teacher-mousemap-cage-detail{background:#f4fbf9;border:1px solid #a7d8d2;border-radius:12px;gap:12px;min-width:824px;padding:14px;display:grid}.teacher-mousemap-cage-detail-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-mousemap-cage-detail-heading h5,.teacher-mousemap-cage-detail-heading p{margin:0}.teacher-mousemap-cage-detail-heading h5{color:var(--teal-dark);font-size:15px}.teacher-mousemap-cage-detail-heading>button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 11px}.teacher-mousemap-mice-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.teacher-mousemap-mice-grid>button{color:var(--foreground);text-align:left;background:#fff;border:1px solid #bddbd5;border-radius:10px;gap:4px;padding:11px 40px 11px 11px;display:grid;position:relative}.teacher-mousemap-mice-grid>button:hover{border-color:var(--lab-primary)}.teacher-mousemap-mice-grid strong{color:var(--teal-dark)}.teacher-mousemap-mice-grid em,.teacher-mousemap-mice-grid small,.teacher-mousemap-mice-grid span{font-size:11px;font-style:normal}.teacher-mousemap-mice-grid em{color:#087565;font-weight:800}.teacher-gene-archive-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:1100px){.teacher-mousemap-room-grid{grid-template-columns:1fr}.teacher-mousemap-racks{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.teacher-mousemap-heading,.teacher-mousemap-rack-heading,.teacher-mousemap-room-heading{flex-direction:column;align-items:flex-start}.teacher-mousemap-racks{grid-template-columns:repeat(2,minmax(0,1fr))}}.managed-weekly-report-student-picker{border:1px solid var(--line);background:var(--lab-primary-soft);border-radius:14px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin:0;padding:14px;display:grid}.managed-weekly-report-student-picker legend{color:var(--foreground);padding:0 6px;font-weight:800}.managed-weekly-report-student-picker>div{flex-wrap:wrap;gap:10px;display:flex}.managed-weekly-report-student-picker label{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:7px;padding:8px 10px;display:inline-flex}.managed-weekly-report-student-picker button{border:1px solid var(--lab-primary);color:var(--lab-primary);background:#fff;border-radius:10px;padding:8px 12px;font-weight:800}.managed-weekly-report-student-picker>span{color:var(--lab-primary);white-space:nowrap;font-weight:800}.teacher-gene-card,.teacher-gene-report-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.teacher-gene-card div,.teacher-gene-report-list div{gap:4px;display:grid}.teacher-gene-card b,.teacher-gene-report-list b{color:var(--teal-dark)}.teacher-gene-table{min-width:860px}.teacher-gene-operation-list,.teacher-gene-report-list{gap:10px;display:grid}.teacher-gene-operation-controls{grid-template-columns:minmax(180px,1fr) minmax(140px,auto) auto;align-items:center;gap:10px;display:grid}.teacher-gene-operation-controls input,.teacher-gene-operation-controls select{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:8px 10px}.teacher-gene-operation-controls span{color:var(--teal-dark);font-size:12px;font-weight:800}.teacher-gene-operation-card{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(120px,auto);align-items:center;gap:8px 12px;padding:12px;display:grid}.teacher-gene-operation-card div{gap:4px;display:grid}.teacher-gene-operation-card p,.teacher-gene-operation-card span,.teacher-gene-operation-card time,.teacher-gene-report-entries,.teacher-gene-report-list small{color:var(--muted)}.teacher-gene-operation-card p{grid-column:1/-1}.teacher-gene-operation-card time{justify-self:end;font-size:12px}.teacher-gene-report-entries{gap:4px;margin:6px 0 0;padding-left:18px;display:grid}.teacher-gene-report-card{grid-template-columns:minmax(0,1fr);align-items:stretch}.teacher-gene-report-meta{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:10px;display:grid}.teacher-gene-report-sections{gap:12px;display:grid}.teacher-gene-report-sections section{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.teacher-gene-report-sections h4{color:var(--teal-dark);font-size:14px}.teacher-gene-report-sections ul{color:var(--muted);gap:4px;margin:0;padding-left:18px;display:grid}.teacher-gene-report-table-wrap{overflow-x:auto}.teacher-gene-report-table{border-collapse:collapse;width:100%;min-width:720px;font-size:12px}.teacher-gene-report-table td,.teacher-gene-report-table th{border:1px solid var(--line);text-align:left;vertical-align:top;padding:8px}.teacher-gene-report-table th{color:var(--teal-dark);background:#f3fbf9}.teacher-gene-link-button{border:1px solid var(--teal);color:var(--teal-dark);background:#f8fffd;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:700}.teacher-gene-timeline-panel{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:12px;padding:14px;display:grid}.teacher-gene-timeline-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.teacher-gene-timeline-heading div{gap:4px;display:grid}.teacher-gene-timeline-heading span,.teacher-gene-timeline-list small,.teacher-gene-timeline-list span{color:var(--muted)}.teacher-gene-timeline-heading button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px}.teacher-gene-timeline-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.teacher-gene-timeline-list li{border-top:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:12px;padding-top:10px;display:grid}.teacher-gene-timeline-list time{color:var(--teal-dark);font-size:12px;font-weight:700}.teacher-gene-timeline-list div{gap:4px;display:grid}.teacher-gene-timeline-list small{overflow-wrap:anywhere}.ordinary-operation-panel{margin-top:14px}.ordinary-operation-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px;display:grid}.ordinary-operation-form label,.ordinary-operation-summary{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}.ordinary-operation-form input,.ordinary-operation-form select,.ordinary-operation-form textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:10px 12px}.ordinary-operation-form textarea{resize:vertical;min-height:88px}.ordinary-operation-summary{grid-column:1/-1}.ordinary-operation-form button{background:var(--teal);color:#fff;border:0;border-radius:8px;align-self:end;min-height:42px;font-weight:900}.ordinary-operation-form button:disabled{cursor:not-allowed;background:#b7c9c4}.ordinary-operation-list{gap:10px;margin-top:14px;display:grid}.ordinary-operation-list article{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;padding:12px}.ordinary-operation-list small,.ordinary-operation-list span,.ordinary-operation-list strong{display:block}.ordinary-operation-list small,.ordinary-operation-list span{color:var(--muted);margin-top:6px}.ordinary-operation-list p{margin-top:8px}.attendance-reward-records{max-width:260px}.attendance-reward-records span{text-overflow:ellipsis;max-width:240px;overflow:hidden}.reward-reasons span.reward-neutral{color:#64748b;background:#f3f4f6}.attendance-makeup-entry{background:#f4fbf9;border-color:#b7d7d1}.attendance-makeup-button{color:#fff;cursor:pointer;background:#0f766e;border:1px solid #0f766e;border-radius:8px;width:100%;min-height:36px;font-weight:900}.attendance-makeup-button:disabled{color:#64748b;cursor:not-allowed;background:#e5e7eb;border-color:#cbd5e1}.booking-resource-management{order:2;gap:18px;display:grid}.booking-student-management{order:1}.booking-resource-heading-actions{align-items:center;gap:12px;display:flex}.booking-device-actions button,.booking-resource-heading-actions button,.booking-resource-index-toolbar button,.removed-booking-devices button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:40px;padding:0 14px;font-weight:900}.teacher-student-table-actions{gap:6px;min-width:132px;display:grid}.teacher-admin-table td .table-calendar-button{color:#0f5c55;background:#eef8f5;border-color:#9fc9c0}.booking-device-actions button:disabled,.booking-resource-heading-actions button:disabled,.removed-booking-devices button:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed;background:#e7efec}.booking-resource-index-toolbar{border:1px solid var(--line);background:#f6faf8;border-radius:8px;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(160px,1fr)) minmax(220px,1fr) auto;align-items:end;gap:12px;padding:14px;display:grid}.booking-device-list article label,.booking-resource-index-toolbar label{min-width:0;color:var(--muted);gap:6px;font-weight:800;display:grid}.booking-device-list article input,.booking-device-list article select,.booking-resource-index-toolbar input,.booking-resource-index-toolbar select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.booking-resource-index-toolbar .secondary{border-color:var(--line);color:var(--foreground);background:#fff}.booking-device-list{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;font-size:13px;overflow-x:auto}.booking-device-list article,.booking-device-list-header{grid-template-columns:minmax(80px,.55fr) minmax(180px,1.35fr) minmax(110px,.75fr) minmax(105px,.75fr) minmax(118px,.8fr) minmax(118px,.8fr) minmax(82px,.55fr) minmax(100px,.7fr) minmax(150px,1fr);align-items:center;gap:10px;min-width:1220px;padding:12px 14px;display:grid}.booking-device-list article{min-height:44px;padding-top:6px;padding-bottom:6px}.booking-device-list-header{border-bottom:1px solid var(--line);background:var(--mint);color:var(--teal-dark);font-weight:900}.booking-device-list article+article{border-top:1px solid var(--line)}.booking-device-list article>div:first-of-type{gap:5px;min-width:0;display:grid}.booking-device-list article b,.booking-device-list article small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.booking-device-list article small{color:var(--muted);font-weight:600}.booking-device-list article label>span{display:none}.booking-device-list article input:disabled,.booking-device-list article select:disabled{color:var(--muted);background:#f1f5f3}.booking-device-usage{color:var(--teal-dark);margin-right:12px;font-weight:900}.booking-device-manager{color:var(--teal-dark);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.booking-device-name-cell{min-width:0}.booking-device-name-cell input{width:100%}.booking-device-name-cell b,.booking-device-name-cell small{text-overflow:clip;white-space:normal;word-break:break-word;display:block;overflow:visible}.booking-device-name-cell small{color:var(--muted);margin-top:4px}.booking-device-actions{white-space:nowrap;flex-wrap:nowrap;flex-shrink:0;justify-content:flex-end;justify-self:end;gap:8px;width:max-content;min-width:178px;margin-left:auto;display:flex}.booking-device-actions button{border:1px solid var(--line);min-height:34px;color:var(--teal-dark);white-space:nowrap;background:#fff;padding:0 10px;font-size:12px;font-weight:800}.booking-device-actions .danger{color:#b35b64;background:#fff;border-color:#e1b8bd}.booking-device-actions .secondary{border-color:var(--line);color:var(--teal-dark);background:#fff}.booking-device-actions .booking-device-confirm{border-color:var(--teal-dark);background:var(--teal);color:#fff}.booking-device-actions .booking-device-confirm:disabled{color:#fff;background:#9fc9c0;border-color:#7aa8a1}.booking-device-list>.empty-result{padding:20px}.removed-booking-devices{border:1px solid var(--line);background:#f8faf9;border-radius:8px;overflow:hidden}.removed-booking-devices summary{color:var(--teal-dark);cursor:pointer;padding:14px 16px;font-weight:900}.removed-booking-devices>div{gap:8px;padding:0 14px 14px;display:grid}.removed-booking-devices article{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.removed-booking-devices article>div{gap:4px;display:grid}.removed-booking-devices small{color:var(--muted)}.booking-instrument-create-modal{width:min(760px,100%)}.booking-instrument-create-modal .booking-resource-create-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.booking-instrument-create-modal .booking-resource-create-form button{grid-column:1/-1}.booking-resource-create-form{border:1px solid var(--line);background:#f6faf8;border-radius:8px;grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:12px;padding:14px;display:grid}.booking-resource-config-list label,.booking-resource-create-form label{color:var(--muted);gap:6px;font-weight:800;display:grid}.booking-resource-config-list input,.booking-resource-config-list select,.booking-resource-create-form input,.booking-resource-create-form select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.booking-resource-subsection{gap:10px;display:grid}.booking-resource-subsection h4{margin:0;font-size:17px}.booking-resource-config-list{gap:10px;display:grid}.booking-resource-config-list article{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) repeat(4,minmax(130px,.8fr)) auto;align-items:end;gap:10px;padding:12px;display:grid}.booking-resource-config-list article>span,.booking-resource-config-list article>strong{align-self:center}.booking-resource-config-list article>span{color:var(--muted);font-size:13px}.booking-resource-config-list button,.booking-resource-create-form button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;border-radius:8px;min-height:40px;font-weight:900}@media (max-width:1100px){.booking-resource-config-list article,.booking-resource-create-form,.booking-resource-index-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.booking-resource-heading-actions,.removed-booking-devices article{flex-direction:column;align-items:stretch}.booking-instrument-create-modal .booking-resource-create-form,.booking-resource-config-list article,.booking-resource-create-form,.booking-resource-index-toolbar{grid-template-columns:1fr}}.ordinary-model-timeline{border-top:1px solid var(--line);gap:.35rem;margin-top:.55rem;padding-top:.55rem;display:grid}.ordinary-model-timeline small{color:var(--ink-soft);display:block}.ordinary-model-progress-entry{gap:.25rem;display:grid}.ordinary-model-stage-event{border-left:2px solid var(--line);margin-left:.75rem;padding-left:.65rem}.teacher-report-generator{border:1px solid var(--line,#d8e5df);background:#f8fbf9;border-radius:1rem;margin-bottom:1.25rem;padding:1rem}.teacher-report-generator-step{grid-template-columns:minmax(16rem,32rem);gap:.75rem;margin-bottom:.85rem;display:grid}.teacher-report-generator-step label,.teacher-report-student-picker label{gap:.35rem;display:grid}.teacher-report-generator-step input,.teacher-report-generator-step select{width:100%}.teacher-report-step-label{margin:.9rem 0 .45rem;font-weight:700}.teacher-report-month-step{margin-top:.9rem}.teacher-report-month-step small{color:var(--muted,#61746b)}.teacher-report-export-actions{flex-wrap:wrap;gap:.55rem;display:flex}.teacher-report-student-picker{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.65rem;display:grid}.teacher-report-student-picker label{border:1px solid var(--line,#d8e5df);cursor:pointer;background:#fff;border-radius:.75rem;grid-template-columns:auto 1fr;align-items:start;padding:.7rem}.teacher-report-student-picker span{gap:.2rem;display:grid}.teacher-report-student-picker small{color:var(--muted,#61746b)}.teacher-report-generator-actions{justify-content:flex-end;gap:.65rem;margin-top:.85rem;display:flex}@media (max-width:720px){.teacher-report-generator-step{grid-template-columns:1fr}}.teacher-student-card-with-calendars{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-rows:1fr auto;display:grid;overflow:hidden}.teacher-student-card-with-calendars .lab-student-card{border:0;border-radius:0}.student-calendar-month-control span{color:var(--muted);font-size:12px;font-weight:800}.student-calendar-month-control input{border:1px solid var(--line);min-height:40px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 10px}.teacher-student-card-calendar-actions{border-top:1px solid var(--line);background:#f8fbfa;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;display:grid}.teacher-student-card-calendar-actions button{color:#0f5c55;cursor:pointer;background:#eef8f5;border:1px solid #9fc9c0;border-radius:8px;min-height:40px;padding:0 14px;font-weight:900}.teacher-student-card-calendar-actions button:focus-visible,.teacher-student-card-calendar-actions button:hover{border-color:var(--teal);background:#e2f3ee;outline:none}.attendance-calendar-button{color:#0f5c55;cursor:pointer;background:#eef8f5;border:1px solid #9fc9c0;border-radius:8px;width:100%;min-height:36px;font-weight:900}.attendance-calendar-modal,.student-booking-calendar-modal{text-align:left;width:min(1080px,100%)}.attendance-calendar-modal .modal-header,.student-booking-calendar-modal .modal-header{background:0 0;justify-content:space-between;align-items:flex-start;gap:18px;padding:0 0 16px;display:flex}.student-calendar-month-control{gap:6px;max-width:220px;margin:12px 0;display:grid}.student-calendar-toolbar{justify-content:space-between;align-items:end;gap:16px;margin:12px 0;display:flex}.student-calendar-toolbar .student-calendar-month-control{flex:0 220px;margin:0}.student-booking-calendar-scroll{overflow-x:auto}.student-booking-calendar-grid,.student-booking-calendar-weekdays{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px;display:grid}.student-booking-calendar-weekdays span{color:var(--muted);text-align:center;padding:8px;font-size:12px;font-weight:800}.student-booking-calendar-empty,.student-booking-calendar-grid>article{border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fbfdfc;min-height:116px;padding:8px}.student-booking-calendar-grid>article.has-booking{background:#eef8f5}.student-booking-calendar-grid>article>strong{color:var(--teal-dark);margin-bottom:6px;display:block}.student-booking-calendar-entry{border-left:3px solid var(--teal);background:#fff;border-radius:5px;gap:2px;margin-top:6px;padding:7px;font-size:12px;display:grid}.student-booking-cancellation-heading{align-items:end}.student-booking-cancellation-heading p{margin:5px 0 0}.student-booking-cancellation-actions{align-items:end;gap:10px;display:flex}.student-booking-cancellation-actions label{gap:4px;display:grid}.student-booking-cancellation-actions label span{color:var(--muted);font-size:12px;font-weight:800}.student-booking-cancellation-actions button,.student-booking-cancellation-actions input{min-height:40px}.student-booking-cancellation-actions button{background:var(--teal);color:#fff;border:0;border-radius:8px;padding:0 18px;font-weight:900}.student-booking-cancellation-actions button:disabled{color:#6f827c;background:#d9e5df}.student-booking-calendar-action-switch{gap:6px;display:flex}.student-booking-calendar-request-panel{background:#f7fbf9;border:1px solid #b9d8cc;border-radius:12px;gap:12px;margin-top:16px;padding:16px;display:grid}.booking-calendar-request-modal{width:min(720px,100%)}.booking-calendar-request-modal .student-booking-calendar-request-panel{margin-top:18px}.student-booking-calendar-request-panel p{color:var(--muted);margin:4px 0 0}.student-booking-reschedule-fields{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.student-booking-calendar-reason,.student-booking-reschedule-fields label{gap:5px;display:grid}.student-booking-calendar-reason span,.student-booking-reschedule-fields span{color:var(--muted);font-size:12px;font-weight:800}.student-booking-calendar-reason textarea,.student-booking-reschedule-fields input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:10px 12px}.student-booking-calendar-request-panel>button{background:var(--teal);color:#fff;border:0;border-radius:8px;justify-self:end;min-height:42px;padding:0 20px;font-weight:900}.student-booking-calendar-request-panel>button:disabled{color:#6f827c;background:#d9e5df}.student-booking-change-history{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.student-booking-change-history-list{gap:8px;display:grid}.student-booking-change-history-list article{border:1px solid var(--line);background:#fff;border-radius:9px;padding:12px}.student-booking-change-history-list article>div{justify-content:space-between;gap:12px;display:flex}.student-booking-change-history-list p{color:var(--muted);margin:6px 0 0}.student-booking-cancellation-calendar .student-booking-calendar-grid>article{min-height:145px}.student-booking-cancellation-calendar .student-booking-calendar-entry{text-align:left;border-top:0;border-bottom:0;border-right:0;width:100%}.student-booking-cancellation-calendar .student-booking-calendar-entry.is-own:not(:disabled){cursor:pointer}.student-booking-cancellation-calendar .student-booking-calendar-entry.is-selected{background:#cfeee4;border-left-color:#0f766e;box-shadow:inset 0 0 0 2px #0f766e}.student-booking-cancellation-calendar .student-booking-calendar-entry.is-other,.student-booking-cancellation-calendar .student-booking-calendar-entry:disabled{opacity:.72;cursor:default}.student-booking-calendar-no-booking{color:var(--muted);font-size:12px}@media (max-width:680px){.student-booking-cancellation-actions,.student-booking-cancellation-heading{align-items:stretch}.student-booking-cancellation-actions{flex-direction:column;width:100%}.student-booking-calendar-action-switch,.student-booking-mode-switch{flex-direction:column;align-items:stretch}.student-booking-reschedule-fields{grid-template-columns:1fr}}.student-booking-calendar-entry small,.student-booking-calendar-entry span{overflow-wrap:anywhere}.student-booking-calendar-entry em{color:var(--teal-dark);font-size:11px;font-style:normal;font-weight:800}.attendance-calendar-modal .modal-header h2,.attendance-calendar-modal .modal-header p{margin:0}.attendance-calendar-modal .modal-header .eyebrow{color:#0f766e;margin-bottom:4px;font-size:12px;font-weight:900}.attendance-calendar-modal .modal-header h2{color:var(--lab-text);font-size:24px}.attendance-calendar-modal .modal-header p:last-child{color:var(--lab-muted);margin-top:6px;font-size:13px;font-weight:500}.attendance-calendar-legend{border:1px solid var(--lab-border);background:#f8fbfa;border-radius:12px;flex-wrap:wrap;gap:8px;padding:12px;display:flex}.attendance-calendar-legend span{border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:12px;font-weight:900;display:inline-flex}.attendance-calendar-scroll{background:0 0;padding:0;overflow-x:auto}.attendance-calendar-grid,.attendance-calendar-weekdays{grid-template-columns:repeat(7,minmax(108px,1fr));gap:8px;min-width:812px;display:grid}.attendance-calendar-weekdays{background:0 0;margin:14px 0 8px;padding:0}.attendance-calendar-weekdays span{color:var(--lab-muted);text-align:center;font-size:12px;font-weight:900}.attendance-calendar-grid{background:0 0;padding:0}.attendance-calendar-empty{min-height:1px}.attendance-calendar-day{border:1px solid var(--lab-border);background:#fff;border-radius:12px;min-height:154px;padding:10px}.attendance-calendar-day-heading{background:0 0;border-bottom:1px solid #94a3b83d;justify-content:space-between;align-items:center;gap:6px;padding:0 0 8px;display:flex}.attendance-calendar-day-heading strong{color:var(--lab-text);font-size:14px}.attendance-calendar-day-heading span{font-size:11px;font-weight:900}.attendance-calendar-slots{background:0 0;gap:4px;padding:8px 0 0;display:grid}.attendance-panel .attendance-slot{background:#f8fafc;border-radius:6px;justify-content:space-between;align-items:center;gap:5px;padding:3px 5px;display:flex}.attendance-slot b,.attendance-slot span{font-size:10px}.attendance-slot b{color:var(--lab-text)}.attendance-calendar-not-on-duty{color:#be123c;background:#fff1f2;border:1px solid #fecaca;border-radius:6px;justify-content:space-between;align-items:center;gap:5px;padding:4px 6px;display:flex}.attendance-calendar-not-on-duty b,.attendance-calendar-not-on-duty span{color:#be123c;font-size:10px;font-weight:900}.table-action-button-cancel{color:#be123c!important;background:#fff1f2!important;border-color:#e11d48!important}.table-action-button-cancel:disabled{cursor:not-allowed;color:#64748b!important;background:#e5e7eb!important;border-color:#d1d5db!important}.attendance-status-present{color:#166534;background:#effaf5;border-color:#b8dfcf}.attendance-status-late{color:#9a5b00;background:#fff8e8;border-color:#f5d08a}.attendance-status-absence{color:#b42318;background:#fff1f1;border-color:#f0aaaa}.attendance-status-early_leave{color:#b54708;background:#fff5ec;border-color:#f3c29d}.attendance-status-leave{color:#245b9e;background:#eff5ff;border-color:#b8ccea}.attendance-status-makeup{color:#7a5200;background:#fff4c9;border-color:#d7b24a}.attendance-status-course{color:#0f5f59;background:#eaf8f6;border-color:#a7d8d2}.attendance-status-academic_activity{color:#5146a5;background:#f2f1ff;border-color:#b7b4e8}.attendance-slot small{color:inherit;grid-column:1/-1;font-size:9px;line-height:1.35}.attendance-slot-course-group{grid-template-columns:minmax(42px,auto) auto minmax(0,1fr);align-items:center;display:grid}.attendance-slot-course-group small{grid-column:auto}.attendance-status-missing{color:#64748b;background:#f5f7fa;border-color:#d8dee8}.attendance-makeup-form{background:#fff;border:1px solid #b7d7d1;border-radius:8px;gap:8px;padding:10px;display:grid}.attendance-makeup-form label{gap:5px;display:grid}.attendance-makeup-form span{color:var(--muted);font-size:12px;font-weight:900}.attendance-makeup-form input,.attendance-makeup-form textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:8px;padding:8px 10px}.attendance-makeup-form button{color:#fff;background:#0f766e;border:1px solid #0f766e;border-radius:8px;min-height:34px;font-weight:900}.attendance-makeup-form button:disabled{color:#64748b;background:#e5e7eb;border-color:#cbd5e1}.admin-module-shortcuts{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.admin-module-shortcuts a,.admin-module-shortcuts button{color:#0f4f4a;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #0f766e;border-radius:8px;padding:8px 12px;font-weight:900;text-decoration:none}.admin-module-shortcuts a:hover,.admin-module-shortcuts button:hover{background:#eefbf7}.admin-sync-alert-panel{background:#fff7f8;border-color:#fecdd3}.admin-sync-alert-list{gap:10px;margin-top:12px;display:grid}.admin-sync-alert-card{background:#fff;border:1px solid #fda4af;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.admin-sync-alert-card span,.admin-sync-alert-card strong{display:block}.admin-sync-alert-card span{color:#9f1239;margin-top:4px;font-size:12px;font-weight:900}.admin-sync-alert-card p{color:#7f1d1d;margin-top:8px}.admin-sync-alert-card button{color:#fff;cursor:pointer;background:#be123c;border:1px solid #be123c;border-radius:8px;min-height:34px;padding:7px 12px;font-weight:900}.admin-sync-alert-card button:disabled{color:#64748b;cursor:not-allowed;background:#e5e7eb;border-color:#cbd5e1}.teacher-monthly-archive-panel{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:12px;padding:14px;display:grid}.teacher-monthly-archive-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-monthly-archive-toolbar a,.teacher-monthly-archive-toolbar button,.teacher-monthly-archive-toolbar input,.teacher-monthly-archive-toolbar select{white-space:nowrap;border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:8px;flex-shrink:0;padding:0 12px;font-weight:800}.teacher-monthly-archive-toolbar a,.teacher-monthly-archive-toolbar button{background:var(--teal);color:#fff;cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-monthly-archive-panel{margin-top:16px}@media (max-width:900px){.teacher-monthly-archive-toolbar,.teacher-student-archive-toolbar{grid-template-columns:1fr}}.student-report-feedback-list{border-top:1px solid var(--line);gap:10px;margin-top:14px;padding-top:14px;display:grid}.student-report-feedback-list h4{color:#0b4a4a;margin:0;font-size:15px}.student-report-feedback-list article{background:#f4fbf8;border:1px solid #bfd8d2;border-radius:8px;gap:8px;padding:12px;display:grid}.student-report-feedback-list article div{gap:4px;display:grid}.student-report-feedback-list strong{color:#0b4a4a}.student-report-feedback-list span{color:var(--muted);font-size:12px}.student-report-feedback-list p{color:#2f443d;margin:0;line-height:1.7}.report-body-sections{gap:14px;display:grid}.report-body-section{gap:10px;display:grid}.report-body-section h3{color:#0b4a4a;margin:0;font-size:16px}.report-body-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.report-body-table{border-collapse:collapse;background:#fff;width:100%;min-width:640px;font-size:13px}.report-body-table td,.report-body-table th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 10px}.report-body-table th{color:#0b4a4a;background:#edf7f5;font-weight:900}.report-body-table td:last-child,.report-body-table th:last-child{border-right:0}.report-body-table tr:last-child td{border-bottom:0}.report-body-items{gap:8px;display:grid}.report-body-items p{color:#34443e;margin:0;line-height:1.7}.admin-overview-panel{border:1px solid var(--line);background:#fbfdfb;border-radius:8px;gap:12px;margin:14px 0;padding:14px;display:grid}.admin-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.admin-overview-card{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-rows:minmax(116px,1fr) auto;gap:10px;min-width:0;padding:12px;display:grid}.admin-overview-card.danger{background:#fff7f8;border-color:#fecdd3}.admin-overview-card.ok{background:#f7fef9;border-color:#bbf7d0}.admin-overview-card span{color:var(--muted);font-size:12px;font-weight:900}.admin-overview-card strong{color:var(--teal-dark);margin-top:8px;font-size:28px;line-height:1;display:block}.admin-overview-card.danger strong{color:var(--danger)}.admin-overview-card p{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.5}.admin-overview-card a,.admin-overview-card button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;min-height:36px;font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-weight:900;text-decoration:none;display:inline-flex}.admin-overview-card.neutral a,.admin-overview-card.neutral button,.admin-overview-card.ok a,.admin-overview-card.ok button{border-color:var(--line);color:var(--foreground);background:#fff}@media (max-width:1180px){.admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.admin-overview-grid{grid-template-columns:minmax(0,1fr)}}.admin-global-report-panel{gap:12px;display:grid}.admin-global-report-toolbar{grid-template-columns:minmax(170px,240px) minmax(220px,1fr) auto auto;align-items:center;gap:10px;display:grid}.admin-global-report-toolbar input,.admin-global-report-toolbar select{border:1px solid var(--line);min-height:38px;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:0 12px}.admin-global-report-toolbar a,.admin-global-report-toolbar button{border:1px solid var(--teal-dark);background:var(--teal);color:#fff;min-height:38px;font:inherit;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-weight:900;text-decoration:none;display:inline-flex}.admin-global-report-list{gap:10px;display:grid}.admin-global-report-item{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.admin-global-report-item div{gap:5px;min-width:0;display:grid}.admin-global-report-item span{color:#0f766e;font-size:12px;font-weight:900}.admin-global-report-item p,.admin-global-report-item small,.admin-global-report-item strong{overflow-wrap:anywhere}.admin-global-report-item p,.admin-global-report-item small{color:var(--muted);margin:0}@media (max-width:900px){.admin-global-report-item,.admin-global-report-toolbar{grid-template-columns:minmax(0,1fr)}}.admin-permission-matrix{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:16px;padding:16px}.admin-permission-matrix-wrap{overflow-x:auto}.admin-permission-matrix-table{border-collapse:separate;border-spacing:0;width:100%;min-width:980px}.admin-permission-matrix-table td,.admin-permission-matrix-table th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px}.admin-permission-matrix-table thead th{color:var(--muted);font-size:12px;font-weight:700}.admin-permission-matrix-table tbody th{min-width:160px}.admin-permission-matrix-table tbody th span,.admin-permission-matrix-table tbody th strong{display:block}.admin-permission-matrix-table tbody th span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:500}.permission-check{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.permission-check input{width:16px;height:16px}.permission-check span{color:var(--muted);font-size:12px}.admin-system-alert-center{background:snow;border-color:#fecdd3}.admin-system-alert-toolbar{grid-template-columns:minmax(160px,220px) minmax(220px,1fr) auto auto;gap:10px;margin-bottom:14px;display:grid}.admin-system-alert-toolbar input,.admin-system-alert-toolbar select{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.admin-system-alert-list{gap:10px;display:grid}.admin-system-alert-item{background:#fff;border:1px solid #fecdd3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.admin-system-alert-item span{color:#be123c;font-size:12px;font-weight:900}.admin-system-alert-item p,.admin-system-alert-item small,.admin-system-alert-item strong{overflow-wrap:anywhere;display:block}.admin-system-alert-item p,.admin-system-alert-item small{color:var(--muted);margin:4px 0 0}.admin-system-alert-item button{background:#be123c}.unified-alert-center{background:#f8fbff;border-color:#bfdbfe}.unified-alert-toolbar{grid-template-columns:minmax(180px,240px) minmax(220px,1fr) auto;gap:10px;margin-bottom:14px;display:grid}.unified-alert-toolbar input,.unified-alert-toolbar select{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.unified-alert-feedback{color:#0f766e;font-weight:700}.unified-alert-item,.unified-alert-list{gap:10px;display:grid}.unified-alert-item{background:#fff;border:1px solid #dbeafe;border-left-width:4px;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;padding:14px}.unified-alert-item.critical{border-left-color:#dc2626}.unified-alert-item.warning{border-left-color:#d97706}.unified-alert-item.info{border-left-color:#0284c7}.unified-alert-item p,.unified-alert-item small,.unified-alert-item strong{overflow-wrap:anywhere;display:block}.unified-alert-item p,.unified-alert-item small{color:var(--muted);margin:4px 0 0}.unified-alert-item .secondary{background:#475569}.unified-alert-tags{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.unified-alert-tags span{color:#075985;background:#e0f2fe;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.unified-alert-reassignment{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.unified-alert-reassignment label{color:var(--muted);gap:4px;font-size:12px;font-weight:700;display:grid}.unified-alert-reassignment select{min-width:150px}.unified-alert-pagination{margin-top:14px}@media (max-width:720px){.unified-alert-item,.unified-alert-toolbar{grid-template-columns:1fr}}@media (max-width:900px){.admin-system-alert-item,.admin-system-alert-toolbar{grid-template-columns:minmax(0,1fr)}}:root{--background:#f5f8f4;--foreground:#1f2d2b;--muted:#6b7775;--panel:#fff;--line:#dde7e2;--teal:#0f4c4a;--teal-dark:#0f4c4a;--green:#6faf8f;--rose:#e76f6f;--amber:#f2a65a;--blue:#6b8fa3;--lab-primary:#0f4c4a;--lab-primary-soft:#e6f2ed;--lab-green:#6faf8f;--lab-orange:#f2a65a;--lab-red:#e76f6f;--lab-info:#6b8fa3;--lab-shadow:0 10px 30px #0f4c4a14}body{background:radial-gradient(circle at top right,#e6f2edd9,transparent 360px),var(--background);color:var(--foreground)}.workspace{padding:24px}.sidebar{background:linear-gradient(#0f4c4a,#143f3d);gap:22px;padding:24px 16px;box-shadow:8px 0 24px #0f4c4a1f}.sidebar h1{font-size:20px;font-weight:800}.mode-switch{background:#ffffff14;border-color:#e6f2ed3d;border-radius:12px}.mode-switch button{border-radius:10px}.mode-switch button.active{background:var(--lab-primary-soft);color:var(--lab-primary)}.nav-section{gap:6px;margin-top:6px;display:grid}.nav-section-title{color:#e6f2edbd;margin:12px 8px 4px;font-size:12px;font-weight:800}.nav-item{color:#ffffffdb;border-radius:12px;min-height:42px;padding:10px 38px 10px 12px;transition:background .18s,color .18s,transform .18s}.nav-item-label{gap:10px;min-width:0}.nav-icon,.nav-item-label{align-items:center;display:inline-flex}.nav-icon{color:currentColor;justify-content:center;width:20px;height:20px}.nav-item.active,.nav-item:hover{background:var(--lab-primary-soft);color:var(--lab-primary)}.nav-item:disabled,.nav-item:disabled:hover{color:#ffffff61;cursor:not-allowed;opacity:1;background:#ffffff09;transform:none}.nav-disabled-label{font-size:11px;font-weight:800;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.nav-badge{background:var(--lab-red);border:2px solid #0f4c4a;top:8px;right:8px;box-shadow:0 3px 8px #e76f6f47}.nav-subitems{border-left-color:#e6f2ed47}.sidebar-panel{background:#ffffff17;border-color:#e6f2ed38;border-radius:16px}.teacher-dashboard{grid-template-columns:minmax(0,1fr);gap:20px}.teacher-main-column,.teacher-side-panel{gap:20px;display:grid}.teacher-overview-strip{gap:14px}.teacher-meeting-task-panel,.teacher-module-panel,.teacher-overview-button,.teacher-panel,.teacher-public-management,.teacher-side-panel section,.teacher-side-work-plan,.teacher-student-management{border-color:var(--line);background:var(--panel);box-shadow:var(--lab-shadow);border-radius:16px}.teacher-overview-button{min-height:108px;padding:0;overflow:hidden}.teacher-overview-button .lab-stat-card{height:100%;box-shadow:none;border:0}.teacher-meeting-task-panel,.teacher-panel,.teacher-public-management,.teacher-side-panel section,.teacher-side-work-plan,.teacher-student-management{padding:20px}.panel-heading{gap:12px}.panel-heading h3,.teacher-managed-students-title{font-size:18px;font-weight:700}.lab-status-badge{border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:4px 9px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.lab-status-badge.success{color:#0f4c4a;background:#e6f2ed}.lab-status-badge.pending{color:#9a5c18;background:#fff4e8}.lab-status-badge.danger{color:#b93e3e;background:#fdecec}.lab-status-badge.info{color:#496f82;background:#edf3f6}.lab-status-badge.neutral{color:#5e6b68;background:#eef2f0}.lab-stat-card{border:1px solid var(--line);min-height:104px;color:var(--foreground);box-shadow:var(--lab-shadow);background:#fff;border-radius:16px;gap:8px;padding:16px 18px;display:grid}.lab-stat-card>span:not(.lab-stat-icon){color:var(--muted);font-size:14px;font-weight:700}.lab-stat-card strong{color:var(--lab-primary);font-size:28px;font-weight:800;line-height:1}.lab-stat-card p{color:var(--muted);margin:0;font-size:12px}.lab-stat-icon{color:var(--lab-primary)}.lab-progress{gap:7px;display:grid}.lab-progress-label{color:var(--muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.lab-progress-label strong{color:var(--lab-primary)}.lab-progress [role=progressbar]{background:#e7efeb;border-radius:999px;height:8px;overflow:hidden}.lab-progress [role=progressbar] span{border-radius:inherit;background:linear-gradient(90deg,var(--lab-green),var(--lab-primary));height:100%;display:block}.lab-empty-state{border:1px dashed var(--line);min-height:120px;color:var(--muted);text-align:center;background:#fbfdfb;border-radius:16px;place-items:center;gap:8px;padding:24px;display:grid}.lab-empty-state strong{color:var(--foreground);font-size:16px}.lab-empty-state p{margin:0;font-size:13px}.lab-empty-icon{color:var(--lab-info)}.lab-student-card{border:1px solid var(--line);background:#fff;border-radius:16px;height:100%;box-shadow:0 8px 22px #0f4c4a0f}.lab-student-card.active{border-color:var(--lab-primary);box-shadow:0 0 0 2px #0f4c4a1f,var(--lab-shadow)}.lab-student-card>button{width:100%;color:var(--foreground);text-align:left;background:0 0;border:0;gap:14px;padding:16px;display:grid}.lab-student-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lab-student-card-head>div{gap:5px;display:grid}.lab-student-card-head strong{font-size:18px;font-weight:800}.lab-student-card-head span,.lab-student-metrics span{color:var(--muted);font-size:12px;line-height:1.45}.lab-student-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.lab-student-metrics>div{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;gap:3px;padding:10px;display:grid}.lab-student-metrics strong{color:var(--lab-primary);font-size:18px;font-weight:800}.lab-student-alerts{gap:6px;display:grid}.lab-student-alerts p{color:#b93e3e;background:#fff5f5;border:1px solid #f6caca;border-radius:12px;margin:0;padding:8px 10px;font-size:12px;font-weight:700}.lab-alert-panel{border:1px solid var(--line);box-shadow:var(--lab-shadow);background:#fff;border-radius:16px;gap:14px;padding:20px;display:grid}.lab-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.lab-section-heading h3{margin:0;font-size:18px;font-weight:700}.lab-section-heading span{color:var(--muted);font-size:12px;font-weight:800}.lab-alert-list{gap:10px;display:grid}.lab-alert-item{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.lab-alert-item.danger,.lab-alert-item.warning{background:#fff5f5;border-color:#f6caca}.lab-alert-item.pending{background:#fff8ef;border-color:#f7d4ad}.lab-alert-item span{color:var(--lab-primary);font-size:12px;font-weight:800}.lab-alert-item p{color:var(--foreground);margin:4px 0 0;font-size:14px}.lab-alert-item small{color:var(--muted);margin-top:4px;display:block}.lab-alert-item button{border:1px solid var(--lab-primary);background:var(--lab-primary);color:#fff;border-radius:10px;min-height:34px;padding:0 12px;font-weight:800}.teacher-management-grid,.teacher-student-grid{gap:14px}.teacher-management-card,.teacher-student-card{background:0 0;border:0;padding:0}.teacher-reminder-row{display:none}.teacher-management-reminder-alert{margin-top:10px}.teacher-admin-table{border-collapse:separate;border-spacing:0}.teacher-admin-table th{background:var(--lab-primary-soft);color:var(--lab-primary);font-weight:800}.teacher-admin-table td,.teacher-admin-table th{border-color:var(--line);height:52px}@media (max-width:900px){.lab-student-metrics,.teacher-management-grid,.teacher-overview-strip,.teacher-student-grid{grid-template-columns:1fr}}.lab-approval-card{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid;box-shadow:0 8px 22px #0f4c4a0f}.lab-approval-main{gap:10px;display:grid}.lab-approval-main>strong{color:var(--foreground);font-size:18px;font-weight:800}.lab-approval-meta{color:var(--muted);flex-wrap:wrap;gap:8px 12px;font-size:13px;display:flex}.lab-approval-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.lab-approval-detail{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;gap:5px;margin:0;padding:10px 12px;display:grid}.lab-approval-detail b{color:var(--lab-primary);font-size:12px}.lab-approval-detail span{color:var(--foreground);font-size:13px;font-weight:700}.lab-approval-detail.danger,.lab-approval-detail.warning{background:#fff5f5;border-color:#f6caca}.lab-approval-detail.info{background:#f4f8fa;border-color:#cadbe4}.lab-approval-hint{background:var(--lab-primary-soft);color:var(--lab-primary);border-radius:12px;margin:0;padding:9px 12px;font-size:13px;font-weight:800}.lab-approval-actions{gap:8px;min-width:120px;display:grid}.lab-approval-actions button{border:1px solid var(--lab-primary);background:var(--lab-primary);color:#fff;border-radius:10px;min-height:40px;font-weight:800}.lab-data-table-wrap{border:1px solid var(--line);box-shadow:var(--lab-shadow);background:#fff;border-radius:16px;overflow-x:auto}.lab-data-table{border-collapse:separate;border-spacing:0;width:100%}.lab-data-table td,.lab-data-table th{border-bottom:1px solid var(--line);text-align:left;min-height:52px;padding:14px 16px}.lab-data-table th{background:var(--lab-primary-soft);color:var(--lab-primary);font-size:13px;font-weight:800}.lab-data-table td{color:var(--foreground);font-size:14px}.lab-data-table tbody tr:last-child td{border-bottom:0}.lab-data-table .align-right{text-align:right}.lab-data-table .align-center{text-align:center}@media (max-width:900px){.lab-approval-card,.lab-approval-details{grid-template-columns:1fr}.lab-approval-actions{min-width:0}}.teacher-report-center,.teacher-review-center{border-color:var(--line);background:var(--panel);box-shadow:var(--lab-shadow);border-radius:16px}.teacher-report-column,.teacher-report-list-item,.teacher-report-toolbar,.teacher-review-category-grid button,.teacher-review-history,.teacher-review-side section{border-color:var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 22px #0f4c4a0d}.teacher-review-category-grid button{min-height:92px}.teacher-report-list-item:hover,.teacher-review-category-grid button.active,.teacher-review-category-grid button:hover{border-color:var(--lab-primary);box-shadow:0 0 0 2px #0f4c4a1a}.teacher-report-column-heading span,.teacher-report-list span,.teacher-report-list-item span,.teacher-review-category-grid span{background:var(--lab-primary-soft);color:var(--lab-primary)}.teacher-review-category-grid strong{color:var(--lab-primary);font-size:26px;font-weight:800}.teacher-report-column{padding:16px}.teacher-report-column-heading h3{color:var(--foreground);font-size:18px;font-weight:800}.teacher-report-list-item{padding:16px}.teacher-report-list strong,.teacher-report-list-item strong{font-size:18px;font-weight:800}.teacher-report-list-item>button,.teacher-report-toolbar button{border-radius:10px}.teacher-report-toolbar input{border-radius:12px}.teacher-report-view-button.viewed{color:#6b7775;background:#eef1ef;border-color:#d7ddd9}@media (max-width:900px){.teacher-report-list-item{grid-template-columns:1fr}.teacher-report-list-item>button{justify-self:stretch;width:100%}}.lab-inventory-card{border:1px solid var(--line);background:#fff;border-radius:16px;gap:14px;padding:16px;display:grid;box-shadow:0 8px 22px #0f4c4a0f}.lab-inventory-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lab-inventory-head>div{gap:6px;min-width:0;display:grid}.lab-inventory-head span{background:var(--lab-primary-soft);width:max-content;max-width:100%;color:var(--lab-primary);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.lab-inventory-head strong{color:var(--foreground);font-size:18px;font-weight:800;line-height:1.35}.lab-inventory-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.lab-inventory-facts>div{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.lab-inventory-facts b{color:var(--lab-primary);font-size:18px;font-weight:800}.lab-inventory-facts span,.lab-inventory-helper{color:var(--muted);font-size:12px}.lab-inventory-helper{margin:0;line-height:1.55}.lab-inventory-actions{flex-wrap:wrap;gap:8px;display:flex}.lab-inventory-actions button{border:1px solid var(--lab-primary);background:var(--lab-primary);color:#fff;border-radius:10px;min-height:38px;padding:0 12px;font-weight:800}.lab-inventory-actions button+button,.lab-inventory-actions button.secondary{border-color:var(--line);color:var(--foreground);background:#fff}.lab-inventory-actions button.danger{border-color:var(--lab-red);color:var(--lab-red);background:#fff}@media (max-width:640px){.lab-inventory-facts,.lab-inventory-head{grid-template-columns:1fr}}.teacher-inventory-page{box-shadow:var(--lab-shadow);border-radius:16px}.teacher-inventory-page .teacher-admin-filter{border-radius:16px;box-shadow:0 8px 22px #0f4c4a0d}.teacher-inventory-page .teacher-admin-filter input,.teacher-inventory-page .teacher-admin-filter select{border-radius:12px}.teacher-inventory-page .teacher-admin-filter button{border-radius:10px}.teacher-inventory-grid{grid-template-columns:1fr;gap:14px;display:grid}.inventory-usage-report-panel{border:1px solid var(--line);background:#f8fbf9;border-radius:14px;grid-template-columns:minmax(15rem,1fr) minmax(10rem,.45fr) minmax(10rem,.45fr) auto;align-items:end;gap:.75rem;margin:.9rem 0;padding:1rem;display:grid}.inventory-usage-report-panel div,.inventory-usage-report-panel label{gap:.35rem;display:grid}.inventory-usage-report-panel small{color:var(--ink-soft)}.inventory-usage-report-panel a[aria-disabled=true]{pointer-events:none;opacity:.45}.public-consumable-panel{border:1px solid var(--line);background:#fff;border-radius:16px;gap:14px;margin:.9rem 0;padding:16px;display:grid}.public-consumable-panel .archive-header,.public-consumable-panel h3,.public-consumable-panel small{margin:0}.public-consumable-form{grid-template-columns:minmax(14rem,1.4fr) minmax(10rem,.7fr) minmax(10rem,.7fr) auto;align-items:end;gap:12px;display:grid}.public-consumable-form label{gap:6px;display:grid}.public-consumable-students{border:1px solid var(--line);background:#f8fbf9;border-radius:12px;margin:0;padding:14px}.public-consumable-students legend{color:var(--teal-dark);padding:0 6px;font-weight:800}.public-consumable-students>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:260px;display:grid;overflow:auto}.public-consumable-students label{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:8px;padding:9px 10px;display:flex}.public-consumable-students label small,.public-consumable-students label span{display:block}.teacher-inventory-page>.reagent-library,.teacher-reagent-review-panel{border:1px solid var(--line);background:#fff;border-radius:16px;margin-top:16px;padding:16px}.teacher-inventory-page>.reagent-library>.archive-header,.teacher-reagent-review-panel .archive-header{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.button-link{background:var(--teal-dark);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;font-weight:800;text-decoration:none;display:inline-flex}.teacher-reagent-library-layout .teacher-inventory-grid{align-content:start}.teacher-reagent-library-layout .teacher-inventory-column{align-content:start;gap:14px;min-width:0;display:grid}.teacher-pagination-ellipsis{min-width:32px;color:var(--muted);justify-content:center;align-items:center;font-weight:900;display:inline-flex}.teacher-reagent-editor-modal{width:min(980px,100vw - 32px);max-height:calc(100vh - 32px);overflow:auto}.teacher-reagent-initial-batch{border:1px solid var(--line);background:#f5faf7;border-radius:12px;grid-column:1/-1;margin:0;padding:14px}.teacher-reagent-initial-batch legend{color:var(--teal-dark);padding:0 6px;font-weight:900}.teacher-reagent-initial-batch>p{color:var(--muted);margin:0 0 12px}.teacher-reagent-initial-batch>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:900px){.teacher-reagent-initial-batch>div{grid-template-columns:1fr 1fr}}@media (max-width:640px){.teacher-reagent-initial-batch>div{grid-template-columns:1fr}}.inventory-alert-text{margin-top:6px;font-weight:800;line-height:1.5;display:block;color:#c62828!important}.reagent-card:has(.inventory-alert-text){background:#fff8f8;border-color:#ef9a9a}.teacher-reagent-review-panel .data-table td{vertical-align:top}.teacher-reagent-review-panel .data-table button{white-space:nowrap}.teacher-reagent-review-table-wrap{margin-top:14px}.teacher-reagent-review-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;display:flex}.teacher-reagent-review-toolbar .teacher-heading-scope-select{flex:none}.teacher-reagent-review-search{flex:300px;min-width:260px}.teacher-reagent-review-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-weight:800}.teacher-reagent-review-table{min-width:1000px}.teacher-reagent-review-table th:first-child{width:132px}.teacher-reagent-review-table th:nth-child(2){width:144px}.teacher-reagent-review-table th:nth-child(3),.teacher-reagent-review-table th:nth-child(5){width:88px}.teacher-reagent-review-table th:nth-child(7){width:128px}.teacher-reagent-review-table th:nth-child(8){width:220px}.teacher-reagent-review-table th:nth-child(9){width:104px}.teacher-reagent-review-table .approval-pill{font-size:14px}.teacher-reagent-review-quantity{white-space:nowrap}.teacher-reagent-review-reason{color:#b23b3b;vertical-align:middle;max-width:240px}.teacher-reagent-review-category-note,.teacher-reagent-review-reason{white-space:normal;word-break:break-word;font-size:12px;line-height:1.45}.teacher-reagent-review-category-note{color:#6b7280;max-width:220px;margin-top:6px}.teacher-reagent-review-action{border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;min-height:32px;padding:0 12px;font-size:13px;font-weight:900}.teacher-reagent-review-action:disabled{color:#9aa8a4;cursor:not-allowed;background:#edf2f0;border-color:#d5dddb}.teacher-reagent-review-empty{height:84px;color:var(--muted);text-align:center!important}.teacher-inventory-page .teacher-reagent-toolbar{flex-wrap:nowrap;flex:760px;justify-content:flex-end;min-width:0;display:flex}.teacher-inventory-page .teacher-reagent-toolbar input{flex:260px;min-width:180px}.teacher-inventory-page .teacher-reagent-toolbar button{white-space:nowrap;flex:none}@media (max-width:900px){.inventory-usage-report-panel{grid-template-columns:1fr}.public-consumable-form,.public-consumable-students>div{grid-template-columns:1fr 1fr}.teacher-inventory-page>.reagent-library>.archive-header,.teacher-reagent-review-panel .archive-header,.teacher-reagent-review-toolbar{flex-direction:column;align-items:stretch}.teacher-reagent-review-count{margin-left:0}.teacher-inventory-page .teacher-reagent-toolbar{flex-basis:auto;grid-template-columns:minmax(0,1fr) auto;display:grid}}@media (max-width:640px){.public-consumable-form,.public-consumable-students>div{grid-template-columns:1fr}}.lab-animal-package-card{border:1px solid var(--line);background:#fff;border-radius:16px;gap:14px;padding:16px;display:grid;box-shadow:0 8px 22px #0f4c4a0f}.lab-animal-package-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lab-animal-package-head>div{gap:5px;min-width:0;display:grid}.lab-animal-package-head span{color:var(--lab-primary);font-size:12px;font-weight:800}.lab-animal-package-head strong{color:var(--foreground);font-size:18px;font-weight:800;line-height:1.35}.lab-animal-package-head small{color:var(--muted);font-size:12px}.lab-animal-package-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.lab-animal-package-metrics>div{border:1px solid var(--line);background:#fbfdfb;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.lab-animal-package-metrics b{color:var(--lab-primary);font-size:18px;font-weight:800}.lab-animal-package-metrics span{color:var(--muted);font-size:12px}.lab-animal-package-alerts,.lab-animal-package-extra{gap:8px;display:grid}.lab-animal-package-alerts p{color:#b93e3e;background:#fff5f5;border:1px solid #f6caca;border-radius:12px;margin:0;padding:8px 10px;font-size:12px;font-weight:700}.teacher-gene-management,.teacher-ordinary-management{gap:20px;display:grid}.teacher-gene-management>.panel-heading,.teacher-ordinary-management>.panel-heading{border:1px solid var(--line);box-shadow:var(--lab-shadow);background:#fff;border-radius:16px;padding:20px}.teacher-gene-summary-grid{gap:14px}.teacher-gene-card,.teacher-gene-operation-card,.teacher-gene-report-list article,.teacher-gene-section,.teacher-gene-summary-grid article,.teacher-gene-timeline-panel,.teacher-ordinary-grid>section{border-color:var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 22px #0f4c4a0d}.teacher-gene-summary-grid article{padding:16px}.teacher-gene-card span,.teacher-gene-report-list span,.teacher-gene-summary-grid span{background:var(--lab-primary-soft);width:max-content;max-width:100%;color:var(--lab-primary);border-radius:999px;padding:4px 8px;font-weight:800}.teacher-gene-summary-grid strong{color:var(--lab-primary);font-size:28px;font-weight:800}.teacher-gene-section{padding:20px}.teacher-gene-section h3,.teacher-ordinary-grid h3{color:var(--foreground);margin:0;font-size:18px;font-weight:800}.teacher-gene-card,.teacher-gene-operation-card,.teacher-gene-report-list article{border-radius:14px}.ordinary-operation-form input,.ordinary-operation-form select,.ordinary-operation-form textarea,.teacher-gene-operation-controls input,.teacher-gene-operation-controls select,.teacher-report-search input{border-radius:12px}.ordinary-alert-detail button,.ordinary-model-progress-actions button,.ordinary-operation-form button,.panel-link-button,.teacher-gene-link-button,.teacher-gene-timeline-heading button{border-radius:10px}.teacher-ordinary-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.teacher-ordinary-card-grid>.lab-animal-package-card{min-width:0}.lab-animal-package-extra .ordinary-alert-actions,.lab-animal-package-extra .ordinary-alert-detail,.lab-animal-package-extra .ordinary-model-progress{border-radius:12px}.lab-animal-package-extra small{color:var(--muted)}@media (max-width:1100px){.managed-weekly-report-student-picker,.teacher-gene-summary-grid,.teacher-gene-two-column,.teacher-ordinary-card-grid{grid-template-columns:1fr}}.lab-task-card{border:1px solid var(--line);min-height:132px;color:var(--foreground);text-align:left;background:#fff;border-radius:16px;gap:10px;padding:16px;display:grid;box-shadow:0 8px 22px #0f4c4a0f}button.lab-task-card{cursor:pointer}.lab-task-card:focus-visible,.lab-task-card:hover{border-color:var(--lab-primary);box-shadow:0 0 0 2px #0f4c4a1a,var(--lab-shadow);outline:none}.lab-task-card-head{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:800;display:flex}.lab-task-card strong,.lab-task-card-icon{color:var(--lab-primary)}.lab-task-card strong{font-size:26px;font-weight:800;line-height:1.1}.lab-task-card small{color:var(--muted);font-size:12px;line-height:1.45}.lab-task-card.pending strong{color:var(--lab-orange)}.lab-task-card.danger strong{color:var(--lab-red)}.lab-task-card.info strong{color:var(--lab-info)}.lab-home{gap:20px;display:grid}.course-schedule-card,.lab-panel,.lab-profile-panel,.lab-reminders,.top-public-affairs{box-shadow:var(--lab-shadow);border-radius:16px}.lab-profile-panel{border-color:var(--line);background:#fff}.attendance-panel b,.contribution-panel>b,.reward-panel>b,.work-hours-line strong{color:var(--lab-primary)}.attendance-panel,.contribution-panel,.course-schedule-card,.reward-panel,.top-public-affairs{border-color:var(--line);background:#fbfdfb}.attendance-panel div,.lab-calendar article,.plan-item,.public-affair-card,.reward-reasons span{border-radius:12px}.lab-reminders{background:#fff5f5;border-color:#f6caca}.lab-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-summary-grid .lab-task-card{width:100%}.lab-panel{box-shadow:var(--lab-shadow);border-radius:16px}.attendance-makeup-button,.attendance-makeup-form button,.attendance-makeup-form input,.attendance-makeup-form textarea,.calendar-mode-toggle,.calendar-mode-toggle button,.plan-add-row button,.plan-add-row input,.student-report-form button,.student-report-form input,.student-report-form textarea{border-radius:10px}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:20;gap:12px;padding:14px;position:sticky;top:0}.sidebar h1{white-space:normal;font-size:18px}.sidebar nav{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.nav-section{display:contents}.nav-section-title,.sidebar-panel{display:none}.nav-item{width:auto;min-width:max-content;padding:10px 36px 10px 12px}.nav-subitems{border-left:0;padding:0;display:flex}.workspace{padding:16px}.topbar{gap:12px;display:grid}.login-form{flex-wrap:wrap;width:100%;margin-left:0}.lab-profile-panel,.lab-split-grid,.student-approval-form,.work-subpanels{grid-template-columns:1fr}.attendance-panel,.lab-summary-grid,.work-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-add-row{grid-template-columns:1fr}.student-schedule-toolbar{flex-direction:column;align-items:stretch}.student-schedule-navigation{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.student-schedule-navigation input{grid-column:1/-1}.student-schedule-toolbar .calendar-mode-toggle{align-self:flex-start}}@media (max-width:560px){.workspace{padding:12px}.attendance-panel,.lab-summary-grid,.work-metrics{grid-template-columns:1fr}.work-hours-line strong{font-size:var(--student-home-metric-value-size)}.lab-task-card{min-height:108px}}.internal-test-banner{z-index:1000;color:#704817;background:#fff7df;border-bottom:1px solid #d6a756;justify-content:center;align-items:center;gap:8px;min-height:30px;padding:5px 16px;font-size:13px;line-height:20px;display:flex;position:sticky;top:0}.internal-test-release{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.content-grid:has(.archive-panel),.content-grid:has(.breeding-panel),.content-grid:has(.rack-area),.content-grid:has(.weekly-report-panel){align-items:start;gap:20px}.archive-panel,.breeding-panel,.rack-area,.weekly-report-panel{border:1px solid var(--lab-border);background:linear-gradient(180deg,#e6f2ed9e,#fff0 160px),var(--lab-card);box-shadow:var(--lab-shadow);border-radius:16px}.rack-area{gap:18px;padding:18px;display:grid}.archive-table-wrap,.breeding-tree-card,.rack-section,.weekly-current-report,.weekly-history-content,.weekly-summary-table-wrap{border-color:var(--lab-border);background:#ffffffeb;border-radius:16px;box-shadow:0 10px 24px #0f4c4a0d}.rack-section{border-radius:16px;padding:18px}.rack-section+.rack-section{margin-top:0}.rack-title{border-bottom:1px solid var(--lab-border);justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;padding-bottom:12px;display:flex}.archive-header h2,.breeding-panel>.panel-heading h2,.rack-title h2,.weekly-report-panel>.panel-heading h2{color:var(--lab-text);letter-spacing:0;font-size:18px;font-weight:700}.archive-header p,.breeding-panel .panel-heading p,.rack-title p,.weekly-report-panel .panel-heading p{color:var(--lab-muted);font-size:13px;line-height:1.6}.cage-grid{gap:14px}.cage-grid-large{grid-template-columns:repeat(8,176px)}.cage-card{border-color:var(--lab-border);border-top-width:4px;border-radius:14px;box-shadow:0 10px 20px #1f2d2b0d}.cage-card:focus-within,.cage-card:hover{border-color:#0f4c4a6b;transform:translateY(-1px);box-shadow:0 14px 28px #0f4c4a1a}.cage-card h3,.cage-owner-name{color:var(--lab-primary);font-weight:700}.cage-card p{color:var(--lab-muted);line-height:1.5}.mouse-chip{background:var(--lab-primary-soft);color:var(--lab-primary);border-color:#0f4c4a24;border-radius:999px}.mouse-chip.alert,.mouse-chip.danger,.mouse-chip.is-alert{color:var(--lab-danger);background:#fff1f1;border-color:#e76f6f52}.cage-card.cage-empty,.cage-empty{background:#f8faf9;border-top-color:#bcc8c5}.cage-alert,.cage-card.cage-alert,.cage-card.cage-danger,.cage-danger{border-color:#e76f6f70;border-top-color:var(--lab-danger);background:#fff8f8}.cage-card.cage-needs-cleaning,.cage-card.cage-warning,.cage-crowded,.cage-needs-cleaning,.cage-warning{border-top-color:var(--lab-warning);background:#fffaf3}.archive-panel,.breeding-panel,.weekly-report-panel{padding:20px}.archive-header{border-bottom:1px solid var(--lab-border);align-items:center;margin-bottom:16px;padding-bottom:14px}.archive-header button,.breeding-parents button,.breeding-pup-list button,.weekly-history-item button,.weekly-history-toggle,.weekly-report-actions button{border-color:var(--lab-border);min-height:40px;color:var(--lab-primary);background:#fff;border-radius:10px;font-weight:700;transition:border-color .16s,background .16s,color .16s,box-shadow .16s,transform .16s}.archive-header button:hover,.breeding-parents button:hover,.breeding-pup-list button:hover,.weekly-history-item button:hover,.weekly-history-toggle:hover,.weekly-report-actions button:hover{background:var(--lab-primary-soft);border-color:#0f4c4a5c;box-shadow:0 8px 18px #0f4c4a14}.archive-table,.weekly-summary-table{color:var(--lab-text)}.archive-table th,.weekly-summary-table th{background:var(--lab-primary-soft);color:var(--lab-primary);font-size:13px;font-weight:700}.archive-table td,.weekly-summary-table td{border-color:var(--lab-border);color:var(--lab-text);line-height:1.6}.archive-table tbody tr:hover td,.weekly-summary-table tbody tr:hover td{background:#f8fbf9}.archive-final-row,.archive-table tbody tr.archive-final-row td{color:var(--lab-muted);background:#f1f4f3}.record-count{background:var(--lab-primary-soft);color:var(--lab-primary);border-color:#0000;font-size:13px}.breeding-tree-list{gap:16px}.breeding-tree-card{padding:16px}.breeding-parents{gap:12px}.breeding-parents button,.breeding-pup-list button{min-height:64px}.breeding-flow{gap:12px}.breeding-flow:before{background:#0f4c4a2e;left:10%;right:10%}.breeding-flow div{background:#fff;border-color:#0f4c4a2e;border-radius:12px}.breeding-flow span,.breeding-parents span,.breeding-pup-list span,.breeding-pups-heading span,.weekly-current-report p,.weekly-history-content p{color:var(--lab-muted)}.breeding-flow strong,.breeding-parents strong,.breeding-pup-list strong,.breeding-pups-heading strong{color:var(--lab-text)}.breeding-pups{border-top-color:var(--lab-border)}.weekly-current-report,.weekly-history-content{gap:10px;padding:14px}.weekly-current-report p,.weekly-history-content p{border-color:var(--lab-border);background:#fff;border-radius:12px}.weekly-current-report p.weekly-warning-entry,.weekly-history-content p.weekly-warning-entry{color:#b33a3a;background:#fff1f1;border-color:#e76f6f52}.weekly-list-section h3,.weekly-table-section h3{color:var(--lab-primary);font-size:16px;font-weight:700}.weekly-report-actions{flex-wrap:wrap;gap:10px;display:flex}.weekly-report-actions button:first-child{background:var(--lab-primary);color:#fff;border-color:#0000}.weekly-history,.weekly-history-item{border-color:var(--lab-border);background:#fff;border-radius:14px}.weekly-history-item{padding:12px}.weekly-history-item strong{color:var(--lab-text)}.weekly-history-item span{color:var(--lab-muted)}@media (max-width:980px){.content-grid:has(.archive-panel),.content-grid:has(.breeding-panel),.content-grid:has(.rack-area),.content-grid:has(.weekly-report-panel){grid-template-columns:1fr}.work-overview{grid-row:auto}.course-schedule-card{grid-column:auto}.archive-panel,.breeding-panel,.rack-area,.weekly-report-panel{padding:16px}.archive-header,.rack-title{align-items:start;display:grid}.breeding-flow,.breeding-parents{grid-template-columns:1fr}.breeding-flow:before{display:none}}@media (max-width:560px){.archive-panel,.breeding-panel,.rack-section,.weekly-report-panel{padding:14px}.cage-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.cage-grid-large{grid-template-columns:repeat(8,156px)}.cage-card{min-height:172px;padding:12px}.archive-table{min-width:980px}.weekly-summary-table{min-width:1180px}}.gene-animal-module{scroll-margin-top:24px}.archive-panel.gene-animal-module,.breeding-panel.gene-animal-module,.content-grid:has(.rack-area.gene-animal-module),.rack-area.gene-animal-module,.weekly-report-panel.gene-animal-module{margin-top:20px}.gene-animal-stats{align-items:stretch}.gene-animal-stats .gene-alert-stat,.gene-animal-stats .stat-card{border-radius:16px;min-height:132px;padding:20px;box-shadow:0 12px 28px #0f4c4a0f}.gene-animal-stats .gene-alert-stat>span,.gene-animal-stats .stat-card>span{font-size:14px;font-weight:700}.gene-animal-stats .gene-alert-stat>strong,.gene-animal-stats .stat-card>strong{font-size:36px;line-height:1.05}.gene-animal-stats .gene-alert-stat{width:100%;color:var(--lab-danger);cursor:pointer;text-align:left;background:#fff6f6;border:1px solid #e76f6f57;gap:8px;display:grid}.gene-animal-stats .gene-alert-stat strong{color:var(--lab-danger)}.gene-animal-stats .gene-alert-stat small{color:#a23c3c;font-size:12px;font-weight:700}.gene-alert-summary-panel{background:#fff8f8;border:1px solid #e76f6f52;border-radius:16px;margin-top:12px;padding:16px}.gene-alert-summary-heading{color:var(--lab-danger);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.gene-alert-summary-heading strong{font-size:16px}.gene-alert-summary-list{gap:10px;display:grid}.gene-alert-summary-list article{color:var(--lab-danger);background:#fff;border:1px solid #e76f6f38;border-radius:12px;grid-template-columns:10px minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;display:grid}.gene-alert-summary-list p{color:inherit;margin:0;font-size:14px;line-height:1.55}.alarm-dot{background:var(--lab-danger);border-radius:999px;width:8px;height:8px;margin-top:7px}.cage-card .mouse-chip{white-space:normal;border-radius:14px;grid-template-columns:20px minmax(0,1fr);align-items:start;min-height:64px;padding:8px 10px}.cage-card .mouse-code,.cage-card .mouse-meta,.cage-card .mouse-meta span,.cage-card .mouse-meta strong{text-overflow:clip;white-space:normal;word-break:break-word;min-width:0;overflow:visible}.cage-card .mouse-meta{gap:2px}.cage-card .aged-badge,.cage-card .skull-mark,.cage-card .warning-dot{grid-column:2;justify-self:start;margin-top:2px}.mouse-breeding-detail-list{gap:10px;display:grid}.mouse-breeding-detail-list article{border:1px solid var(--lab-border);background:#f8fbf8;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.mouse-breeding-detail-list div{gap:4px;min-width:0;display:grid}.mouse-breeding-detail-list span{color:var(--lab-muted);font-size:12px;font-weight:700}.mouse-breeding-detail-list strong{min-width:0;color:var(--lab-primary);overflow-wrap:anywhere;font-size:14px}.weekly-current-report,.weekly-history-content{min-width:0;max-width:100%;overflow:hidden}.weekly-current-report p,.weekly-history-content p{box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;white-space:normal;max-width:100%}@media (max-width:900px){.mouse-breeding-detail-list article{grid-template-columns:repeat(2,minmax(0,1fr))}}.content-grid.gene-animal-mousemap-grid{grid-template-columns:minmax(0,1fr)}.gene-animal-rack-full{width:100%}.gene-animal-rack-full .trash-zone{margin-bottom:16px}.gene-experiment-progress-panel{border:1px solid var(--lab-border);background:linear-gradient(180deg,#e6f2edb8,#fff0 150px),var(--lab-card);box-shadow:var(--lab-shadow);border-radius:16px;gap:16px;margin-top:20px;padding:18px;display:grid}.gene-progress-total{background:var(--lab-soft);min-width:42px;height:28px;color:var(--lab-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.gene-temp-cage-panel{border:1px solid var(--lab-border);background:var(--lab-card);box-shadow:var(--lab-shadow);border-radius:16px;gap:16px;margin-top:20px;padding:18px;display:grid}.gene-temp-cage-list{flex-wrap:wrap;gap:10px;display:flex}.gene-temp-cage-mouse{border:1px solid var(--lab-border);min-width:120px;color:var(--lab-text);text-align:left;cursor:pointer;background:#fbfdfc;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.teacher-monthly-archive-toolbar button:disabled{opacity:.5;cursor:not-allowed}.gene-temp-cage-mouse:hover{border-color:var(--lab-primary)}.gene-temp-cage-mouse strong{font-size:14px}.gene-temp-cage-mouse span{color:var(--lab-muted);font-size:12px}.gene-experiment-record-panel{border:1px solid var(--lab-border);background:var(--lab-card);box-shadow:var(--lab-shadow);border-radius:16px;gap:16px;margin-top:20px;padding:18px;display:grid}.gene-experiment-record-form{gap:12px;display:grid}.gene-experiment-record-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gene-experiment-record-form label{color:var(--lab-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.gene-experiment-record-form input,.gene-experiment-record-form textarea{border:1px solid var(--lab-border);width:100%;min-height:42px;color:var(--lab-text);background:#fff;border-radius:12px;font-size:14px}.gene-experiment-record-form textarea{resize:vertical;min-height:84px}.gene-experiment-record-images{flex-wrap:wrap;gap:10px;display:flex}.gene-experiment-record-image{width:96px;height:96px;position:relative}.gene-experiment-record-image img{object-fit:cover;border:1px solid var(--lab-border);border-radius:10px;width:100%;height:100%}.gene-experiment-record-image button{color:#fff;cursor:pointer;background:#e5484d;border:none;border-radius:999px;width:22px;height:22px;font-size:11px;position:absolute;top:-6px;right:-6px}.gene-experiment-record-picker{border:1px dashed var(--lab-border);width:96px;height:96px;color:var(--lab-muted);cursor:pointer;border-radius:10px;place-items:center;display:grid}.gene-experiment-record-picker input{display:none}.gene-experiment-record-form button[type=submit]{background:var(--lab-primary);color:#fff;border:none;border-radius:12px;min-height:42px;font-weight:800}.gene-experiment-record-form button[type=submit]:disabled{cursor:not-allowed;opacity:.65}.form-success{color:#1f9d61}.form-error,.form-success{font-size:13px;font-weight:700}.form-error{color:#d13438}.gene-experiment-record-list{gap:12px;display:grid}.gene-experiment-record-item{border:1px solid var(--lab-border);background:#fbfdfc;border-radius:12px;gap:8px;padding:14px;display:grid}.gene-experiment-record-item-head{color:var(--lab-muted);justify-content:space-between;gap:12px;font-size:13px;display:flex}.gene-experiment-record-item-head strong{color:var(--lab-text)}.gene-experiment-record-item p{color:var(--lab-text);white-space:pre-wrap;margin:0;font-size:14px}.gene-experiment-record-image-list{flex-wrap:wrap;gap:8px;display:flex}.gene-experiment-record-image-list img{object-fit:cover;border:1px solid var(--lab-border);border-radius:10px;width:84px;height:84px}.gene-experiment-goal-form{grid-template-columns:1.3fr .8fr .8fr .7fr .8fr;align-items:end;gap:12px;display:grid}.gene-experiment-goal-form label{color:var(--lab-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.gene-experiment-goal-form input,.gene-experiment-goal-form select,.gene-experiment-goal-form textarea{border:1px solid var(--lab-border);width:100%;min-height:42px;color:var(--lab-text);background:#fff;border-radius:12px;font-size:14px}.gene-experiment-goal-form textarea{resize:vertical;min-height:72px}.gene-experiment-goal-detail{grid-column:1/-2}.gene-experiment-goal-form button{background:var(--lab-primary);color:#fff;border:none;border-radius:12px;min-height:42px;font-weight:800}.gene-experiment-goal-form button:disabled{cursor:not-allowed;opacity:.65}.gene-experiment-goal-list{gap:12px;display:grid}.gene-experiment-goal-card{border:1px solid var(--lab-border);background:#ffffffeb;border-radius:14px;gap:12px;padding:14px;display:grid}.gene-experiment-goal-card.is-overdue{background:#fff8f8;border-color:#e76f6f6b}.gene-experiment-goal-card-header,.gene-goal-progress-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.gene-experiment-goal-card-header div{gap:4px;display:grid}.gene-experiment-goal-card-header strong,.gene-goal-progress-row strong{color:var(--lab-text);font-size:16px}.gene-experiment-goal-card-header span,.gene-goal-pending-note,.gene-goal-progress-row span{color:var(--lab-muted);font-size:13px}.goal-status-badge{background:var(--lab-soft);color:var(--lab-primary);border-radius:999px;flex:none;padding:6px 10px;font-size:12px;font-weight:800}.goal-status-badge.status-pending{color:#9b5a17;background:#f2a65a2e}.goal-status-badge.status-needs_revision,.goal-status-badge.status-rejected{color:#b84545;background:#e76f6f29}.gene-goal-progress-track{background:#e8efeb;border-radius:999px;height:10px;overflow:hidden}.gene-goal-progress-track span{border-radius:inherit;background:linear-gradient(90deg,var(--lab-primary),var(--lab-accent));height:100%;display:block}.gene-goal-overdue{color:var(--lab-danger);margin:0;font-size:13px;font-weight:700}@media (max-width:980px){.gene-experiment-goal-form{grid-template-columns:1fr}.gene-experiment-goal-detail{grid-column:auto}}.gene-animal-rack-full .trash-zone{border-radius:12px;min-height:44px;margin-bottom:12px;padding:8px 12px;font-size:13px}.gene-animal-rack-full .cage-grid-large{grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;width:100%;min-width:0;overflow:visible}.gene-animal-rack-full .cage-card{min-height:196px;padding:10px}.gene-animal-rack-full .rack-section{overflow-x:visible}.gene-experiment-empty-progress{background:#ffffffb8;border-style:dashed}.gene-goal-progress-track.is-empty span{background:#b8c8c3}@media (max-width:1180px){.gene-animal-rack-full .rack-section{overflow-x:auto}.gene-animal-rack-full .cage-grid-large{min-width:960px}}.app-shell{grid-template-columns:232px minmax(0,1fr)}.sidebar{padding-left:14px;padding-right:14px}.sidebar h1{white-space:normal;font-size:19px}.mode-switch{grid-template-columns:1fr}.mode-switch button{min-height:32px}.archive-header-with-tools{gap:14px}.archive-filter-bar,.archive-header-actions{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.ordinary-animal-archive .archive-header-with-tools{flex-direction:column;align-items:stretch}.ordinary-animal-archive-filters{margin:0}.ordinary-animal-keyword-filter{min-width:min(100%,360px)}.ordinary-animal-keyword-row{gap:8px;display:flex}.ordinary-animal-keyword-row input{min-width:250px}.ordinary-animal-archive-filters button{border:1px solid var(--teal);background:var(--teal);color:#fff;border-radius:10px;min-height:36px;padding:0 14px;font-weight:800}.ordinary-animal-archive-filters .secondary-action{color:var(--teal);background:#fff}.ordinary-animal-archive-filters button:disabled{border-color:var(--lab-border);color:var(--lab-muted);background:#e3ebe7}.ordinary-animal-archive .clickable-row{cursor:pointer}.ordinary-individual-detail{border:1px solid var(--lab-border);background:#f7fbf9;border-radius:16px;margin:16px;padding:16px}.ordinary-individual-detail dl,.ordinary-individual-detail form{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.ordinary-individual-detail dl>div,.ordinary-individual-detail label{gap:5px;display:grid}.ordinary-individual-detail dt{color:var(--lab-muted);font-size:12px}.ordinary-individual-detail dd{margin:0;font-weight:800}@media (max-width:900px){.ordinary-individual-detail dl,.ordinary-individual-detail form{grid-template-columns:1fr}}.archive-filter-bar label,.archive-header-actions label{color:var(--lab-muted);gap:4px;font-size:12px;font-weight:700;display:grid}.archive-filter-bar select,.archive-header-actions select{border:1px solid var(--lab-border);min-width:132px;min-height:36px;color:var(--lab-text);background:#fff;border-radius:10px;font-size:13px}.archive-filter-bar{border:1px solid var(--lab-border);background:#e6f2ed6b;border-radius:14px;margin:-4px 0 14px;padding:12px}.gene-animal-rack-full .rack-section{padding:16px}.gene-animal-rack-full .cage-grid-large{grid-template-columns:repeat(8,minmax(108px,1fr));gap:8px}.gene-animal-rack-full .cage-card{min-width:0;min-height:214px;padding:8px;overflow:hidden}.gene-animal-rack-full .cage-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:5px;display:grid}.gene-animal-rack-full .cage-card p,.gene-animal-rack-full .cage-header>div,.gene-animal-rack-full .cage-owner-name{min-width:0}.gene-animal-rack-full .cage-owner-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gene-animal-rack-full .cage-status-select{text-align:center;white-space:normal;overflow-wrap:anywhere;border-radius:8px;min-width:0;max-width:48px;padding:4px 6px;font-size:11px;line-height:1.15}.gene-animal-rack-full .cage-metrics{gap:5px;font-size:12px}.gene-animal-rack-full .cage-alert-list{gap:5px}.gene-animal-rack-full .cage-alert-list span{white-space:normal;overflow-wrap:anywhere;padding:5px 6px;font-size:11px;line-height:1.25}.gene-animal-rack-full .cage-card .mouse-chip{width:100%;min-height:52px;padding:7px 8px}.gene-animal-rack-full .cage-card .mouse-meta strong{font-size:13px}.gene-animal-rack-full .cage-card .mouse-code,.gene-animal-rack-full .cage-card .mouse-meta span{font-size:11px}.archive-header-single-row{flex-wrap:nowrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.archive-title-block{flex:none;min-width:132px}.archive-filter-inline{background:0 0;border:0;flex:auto;margin:0;padding:0}.archive-header-single-row .archive-filter-inline,.archive-header-single-row .archive-header-actions{align-items:end}.archive-header-single-row .archive-header-actions{flex:none;margin-left:auto}.archive-header-single-row select{min-width:116px}.archive-header-single-row button{white-space:nowrap}@media (max-width:1360px){.gene-animal-rack-full .cage-grid-large{grid-template-columns:repeat(8,minmax(96px,1fr));gap:7px}.gene-animal-rack-full .cage-card{padding:7px}.gene-animal-rack-full .cage-status-select{max-width:42px;padding:4px 5px}.archive-header-single-row{flex-wrap:wrap;align-items:stretch}.archive-title-block{flex-basis:100%}}.table-inline-stack{gap:6px;min-width:150px;display:grid}.mouse-experiment-detail-form{gap:14px;display:grid}.mouse-experiment-detail-form label{color:var(--muted);gap:7px;font-size:13px;display:grid}.mouse-experiment-detail-form input,.mouse-experiment-detail-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:10px 12px}.mouse-experiment-detail-actions{align-items:center;gap:12px;display:flex}.leave-evidence-upload{border:1px solid var(--line);background:#f7fbfa;border-radius:12px;grid-column:1/-1;gap:12px;padding:14px;display:grid}.leave-evidence-upload p{color:var(--muted);margin:4px 0 0;font-size:13px}.leave-evidence-picker{border:1px solid var(--accent);width:fit-content;color:var(--accent);cursor:pointer;border-radius:9px;padding:9px 16px}.leave-evidence-picker input{display:none}.leave-evidence-preview-list,.leave-evidence-review-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.leave-evidence-preview-list figure,.leave-evidence-review-list a{border:1px solid var(--line);color:inherit;background:#fff;border-radius:10px;margin:0;padding:8px;text-decoration:none}.leave-evidence-preview-list img,.leave-evidence-review-list img{object-fit:cover;border-radius:7px;width:100%;height:120px}.leave-evidence-preview-list figcaption,.leave-evidence-review-list span{text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;display:block;overflow:hidden}.gene-identification-stage-note{color:#52706c;margin:0 0 12px}.pup-status-workflow{background:#f7fbf8;border:1px solid #cfe0d9;border-radius:10px;gap:10px;padding:14px;display:grid}.pup-status-workflow-help,.pup-status-workflow-title{margin:0}.pup-status-workflow-title{color:var(--ink);font-weight:800}.pup-status-workflow-help{color:#52706c;font-size:13px}.pup-status-workflow-steps{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;display:grid}.pup-status-workflow-steps>span{color:var(--accent);font-size:24px;font-weight:900}.pup-status-workflow-steps button{min-height:64px;color:var(--ink);background:#fff;border:1px solid #b9d1ca;border-radius:10px;gap:4px;font-weight:800;display:grid}.pup-status-workflow-steps button small{color:var(--muted);font-size:11px;font-weight:600}.pup-status-workflow-steps button.is-current{border-color:var(--accent);color:var(--accent);background:#e7f4f0}.pup-status-workflow-steps button.is-complete{color:#2d7563;background:#edf7f3;border-color:#8ab6a9}.gene-identification-success{color:#17654f;background:#eaf7f2;border:1px solid #a9d4c5;border-radius:10px;margin:10px 0;padding:10px 12px;font-weight:700}.gene-identification-warning{color:#b84225;background:#fff3ef;border:1px solid #efb4a5;border-radius:10px;margin:10px 0;padding:10px 12px;font-weight:700}@media (max-width:680px){.pup-status-workflow-steps{grid-template-columns:1fr}.pup-status-workflow-steps>span{justify-self:center;transform:rotate(90deg)}}.reagent-request-type-filter{border:1px solid #c6ded9;border-radius:10px;flex:100%;min-width:0;padding:10px}.reagent-request-type-filter button{color:#124d47;white-space:nowrap;background:#fff;border:1px solid #8fb9b0;border-radius:6px;margin:4px;padding:7px 12px;display:inline-flex}.reagent-request-type-filter button[aria-pressed=true]{color:#fff;background:#124d47;border-color:#124d47}.reagent-request-type-filter button:focus-visible{outline-offset:2px;outline:2px solid #007f70}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}