@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/prototype-0.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/prototype-1.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prototype-2.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prototype-3.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-5.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-5.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/prototype-5.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prototype-6.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prototype-7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/prototype-6.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/prototype-7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html,body{margin:0;padding:0;background:var(--bg-F7F8FA, #F7F8FA);color:var(--fg-1F2633, #1F2633);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}a{color:var(--fg-2F6DB5, #2F6DB5);text-decoration:none}a:hover{color:var(--fg-0F2C59, #0F2C59);text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.prototype-rule-prototypeview-0:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-1:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-2:hover{background:var(--bg-16386E, #16386E)}.prototype-rule-prototypeview-3:hover{border-color:var(--ln-0F2C59, #0F2C59)}.prototype-rule-prototypeview-4:hover{background:var(--bg-F2F5F9, #F2F5F9)}.prototype-rule-prototypeview-5:hover{background:var(--bg-F3F5F8, #F3F5F8)}.prototype-rule-prototypeview-6:hover{background:var(--bg-FDF1F0, #FDF1F0)}.prototype-rule-prototypeview-7:hover,.prototype-rule-prototypeview-8:hover{background:var(--bg-FAFBFC, #FAFBFC)}.prototype-rule-prototypeview-9:hover{background:var(--bg-F3F5F8, #F3F5F8)}.prototype-rule-prototypeview-10:hover{border-color:var(--ln-B8C2D1, #B8C2D1);color:var(--fg-5B6472, #5B6472)}.prototype-rule-prototypeview-11:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-12:hover{background:var(--bg-FAFBFC, #FAFBFC)}.prototype-rule-prototypeview-13:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-14:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-15:hover{background:var(--bg-FAFBFC, #FAFBFC)}.prototype-rule-prototypeview-16:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-17:hover{background:var(--bg-F7F9FB, #F7F9FB)}.prototype-rule-prototypeview-18:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-19:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);box-shadow:0 0 0 3px #0f2c5914}.prototype-rule-prototypeview-20:hover{border-color:var(--ln-0F2C59, #0F2C59)}.prototype-rule-selectview-0:hover{border-color:var(--ln-B8C2D1, #B8C2D1)}.prototype-rule-selectview-1:hover{color:var(--fg-1F2633, #1F2633);background:var(--bg-F2F5F9, #F2F5F9)}.prototype-rule-selectview-2:focus-visible{border-color:var(--ln-0F2C59, #0F2C59);background:var(--bg-FFFFFF, #FFFFFF)}.prototype-root{min-height:100vh;width:100%;overflow-x:clip}.prototype-root main{min-width:0}.prototype-root button:disabled{opacity:.5;cursor:default}.prototype-root button:focus-visible,.prototype-root input:focus-visible,.prototype-root textarea:focus-visible,.prototype-root select:focus-visible,.prototype-root [tabindex]:focus-visible{outline:3px solid var(--focus-ring, #2F6DB5)!important;outline-offset:2px}.prototype-root button>span{min-width:0;overflow-wrap:anywhere}.prototype-root input,.prototype-root textarea{max-width:100%}.prototype-loading{min-height:100vh;display:grid;place-items:center;font-family:"Source Serif 4",Georgia,serif;color:var(--fg-0F2C59, #0F2C59);background:var(--bg-F7F8FA, #F7F8FA)}.prototype-error{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;color:var(--fg-B42318, #B42318);background:var(--bg-FDF1F0, #FDF1F0);border-bottom:1px solid var(--ln-F1C7C2, #F1C7C2);font-size:14px}.prototype-error button{border:0;background:none;color:inherit;cursor:pointer}.prototype-pagination{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:12px;background:#fff;border-top:1px solid var(--ln-E6E9EE, #E6E9EE);border-radius:0 0 10px 10px;color:var(--fg-6B7380, #6B7380);font-size:13px}.prototype-pagination>div{display:flex;align-items:center;gap:12px}.prototype-pagination button{height:34px;min-width:34px;padding:0 10px;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:#fff;cursor:pointer}.prototype-inline-action{height:40px;padding:0 14px;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:#fff;color:var(--fg-0F2C59, #0F2C59);cursor:pointer;font-size:14px;white-space:nowrap}.prototype-primary{background:var(--bg-0F2C59, #0F2C59)!important;color:#fff!important;border-color:var(--ln-0F2C59, #0F2C59)!important}.prototype-heading-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.prototype-extra-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.prototype-extra-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px}.prototype-extra-fields input{height:40px;padding:0 12px;border:1px solid var(--ln-CDD3DC, #CDD3DC);border-radius:8px;background:#fff}.prototype-dialog-backdrop{position:fixed;inset:0;z-index:85;background:#0a142873;padding:24px 12px;overflow-y:auto;display:flex}.prototype-dialog{margin:auto;width:min(600px,100%);background:#fff;border-radius:12px}.prototype-dialog header,.prototype-dialog footer{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;gap:12px}.prototype-dialog header{border-bottom:1px solid var(--ln-E2E5EA, #E2E5EA)}.prototype-dialog h2{font-family:"Source Serif 4",Georgia,serif;font-size:21px;font-weight:600;margin:0}.prototype-dialog header button{border:0;background:none;font-size:24px;cursor:pointer}.prototype-dialog-fields{padding:20px 22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.prototype-dialog-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px}.prototype-dialog-fields input{height:40px;min-width:0;max-width:100%;padding:0 12px;border:1px solid var(--ln-CDD3DC, #CDD3DC);border-radius:8px;background:#fff}.prototype-dialog footer{justify-content:flex-end;border-top:1px solid var(--ln-E2E5EA, #E2E5EA)}.prototype-dialog footer button{padding:0 18px;height:40px;border-radius:8px;border:1px solid var(--ln-CDD3DC, #CDD3DC);background:#fff;cursor:pointer}.prototype-form-error{grid-column:1/-1;background:var(--bg-FDF1F0, #FDF1F0);color:var(--fg-B42318, #B42318);padding:10px 12px;border-radius:8px;margin:0}.prototype-sidebar-logo{width:62px;height:62px;object-fit:contain;flex-shrink:0}.prototype-compact-list{min-width:0!important;overflow-wrap:anywhere}.prototype-compact-list button{min-width:0}.prototype-compact-list span{min-width:0;overflow-wrap:anywhere}.prototype-list-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--fg-5B6472, #5B6472)}.prototype-list-controls label{display:flex;flex-direction:column;gap:6px;min-width:130px;max-width:100%}.prototype-list-controls select{height:40px;max-width:100%;padding:0 30px 0 10px;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:#fff;color:var(--fg-1F2633, #1F2633);font:inherit;font-size:13px}.prototype-list-controls input{height:40px;max-width:100%;padding:0 10px;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:#fff;color:var(--fg-1F2633, #1F2633);font:inherit;font-size:13px}.prototype-list-empty{padding:20px;text-align:center;color:var(--fg-6B7380, #6B7380);font-size:13px}.prototype-sort-direction{display:flex;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;overflow:hidden;background:#fff}.prototype-sort-direction button{height:36px;padding:0 12px;border:0;background:#fff;color:var(--fg-5B6472, #5B6472);cursor:pointer;font-size:13px}.prototype-sort-direction button[aria-pressed=true]{background:var(--bg-EEF3FA, #EEF3FA);color:var(--fg-0F2C59, #0F2C59);font-weight:600}.prototype-sort-header{border:0;background:none;padding:0;display:inline-flex;gap:6px;align-items:center;justify-content:flex-start;color:inherit;font:inherit;text-align:left;cursor:pointer;min-width:0}.prototype-sort-header>span:last-child{flex-shrink:0;color:var(--fg-2F6DB5, #2F6DB5)}.prototype-room-usage-note{margin:0;font-size:12px;line-height:1.5;color:var(--fg-5B6472, #5B6472)}.prototype-campus-map button:focus-visible{outline:0}.prototype-campus-map button:focus-visible .prototype-campus-pin{outline:3px solid var(--ln-8DB6E8, #8DB6E8);outline-offset:3px}.prototype-campus-map button[aria-pressed=true] .prototype-campus-pin{outline:2px solid var(--ln-8DB6E8, #8DB6E8);outline-offset:3px}.prototype-map-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:24px;align-items:start}.prototype-map-layout>section{min-width:0}.prototype-map-layout .prototype-pagination{grid-column:1/-1;padding:12px 0;font-size:12px}.prototype-map-layout .prototype-list-controls{gap:8px}.prototype-map-layout .prototype-list-controls label{min-width:110px;flex:1}@media(max-width:1100px){.prototype-map-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:1100px){.prototype-teacher-list>div,.prototype-teacher-list>button{grid-template-columns:minmax(0,1.3fr) 75px minmax(0,1.1fr) 95px 50px!important;padding-left:16px!important;padding-right:16px!important;font-size:13px}.prototype-group-list>div,.prototype-group-list>button{grid-template-columns:95px 65px minmax(0,1fr) 70px 90px!important;padding-left:16px!important;padding-right:16px!important;font-size:13px}}@media(max-width:600px){.prototype-compact-list{min-width:560px!important}.prototype-pagination{padding:14px 16px}.prototype-error{padding:12px 16px}}.prototype-att-name{display:flex;flex-direction:column;gap:6px;min-width:0}.prototype-att-reason{height:34px;padding:0 10px;border:1px solid var(--ln-CDD3DC, #CDD3DC);border-radius:6px;background:var(--bg-FFFFFF, #fff);font-size:13px;max-width:420px}.prototype-att-reason[aria-invalid=true]{border-color:var(--ln-B42318, #B42318)}.prototype-att-unassigned{font-size:12px;color:var(--fg-8A5A00, #8A5A00);background:var(--bg-FBF4E4, #FBF4E4);padding:1px 6px;border-radius:4px;white-space:nowrap}.prototype-draggable{cursor:grab}.prototype-draggable:active{cursor:grabbing}[data-dragging=true]{opacity:.45}.prototype-drop-cell{transition:background-color .1s,box-shadow .1s}.prototype-drop-cell[data-drop=move]{background:var(--success-bg)!important;box-shadow:inset 0 0 0 1.5px var(--success)}.prototype-drop-cell[data-drop=swap]{background:var(--tint)!important;box-shadow:inset 0 0 0 1.5px var(--info)}.prototype-drop-cell[data-drop=blocked]{background:repeating-linear-gradient(135deg,var(--danger-bg) 0 6px,transparent 6px 12px)!important;cursor:not-allowed}.prototype-drop-cell[data-drop=source]{outline:1.5px dashed var(--line-strong);outline-offset:-3px}.prototype-drop-cell[data-over=true][data-drop=move]{box-shadow:inset 0 0 0 3px var(--success)}.prototype-drop-cell[data-over=true][data-drop=swap]{box-shadow:inset 0 0 0 3px var(--info)}.prototype-drop-cell[data-over=true][data-drop=blocked]{box-shadow:inset 0 0 0 3px var(--danger)}.prototype-drag-status{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:61;max-width:min(720px,calc(100vw - 32px));padding:10px 16px;border-radius:8px;font-size:13px;line-height:1.45;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-left:4px solid var(--info);box-shadow:0 10px 30px #0f2c592e;pointer-events:none}.prototype-drag-status[data-tone=ok]{border-left-color:var(--success)}.prototype-drag-status[data-tone=bad]{border-left-color:var(--danger);color:var(--danger)}.prototype-toast-action{flex:none;height:28px;padding:0 12px;border:1px solid rgba(255,255,255,.45);border-radius:6px;background:transparent;color:#fff;font:inherit;font-weight:600;cursor:pointer}.prototype-toast-action:hover{background:#ffffff1f}:root{--page: #F7F8FA;--surface: #FFFFFF;--surface-2: #FAFBFC;--tint: #EEF3FA;--line: #E6E9EE;--line-strong: #CDD3DC;--text: #1F2633;--text-2: #3A4250;--text-3: #5B6472;--text-4: #8A93A1;--accent: #0F2C59;--accent-hover: #16386E;--on-accent: #FFFFFF;--info: #2F6DB5;--danger: #B42318;--danger-bg: #FDF1F0;--success: #1F6B45;--success-bg: #EEF6F1;--warning: #8A5A00;--warning-bg: #FBF4E4;--scrollbar: #CDD3DC}:root[data-theme=dark]{--page: #0E131C;--surface: #151B26;--surface-2: #1A2130;--tint: #1E2C44;--line: #2A3343;--line-strong: #3A4456;--text: #E6EAF0;--text-2: #C3CAD6;--text-3: #9AA4B2;--text-4: #6B7585;--accent: #8DB6E8;--accent-fill: #2F5EA8;--accent-hover: #3A6CBC;--on-accent: #FFFFFF;--info: #79A8E6;--danger: #F2867C;--danger-bg: #3A1E1E;--success: #6FCF97;--success-bg: #17301F;--warning: #E8B65A;--warning-bg: #33280F;--bg-glass: rgba(21,27,38,.92);--shimmer: rgba(255,255,255,.06);--scrollbar: #3A4456;color-scheme:dark;--bg-0F2C59: var(--accent-fill);--fg-0F2C59: var(--accent);--ln-0F2C59: var(--accent);--bg-16386E: var(--accent-hover);--fg-16386E: var(--accent);--ln-16386E: var(--accent);--bg-1B2A44: var(--page);--fg-1B2A44: var(--text);--ln-1B2A44: var(--line);--bg-1F2633: var(--line);--fg-1F2633: var(--text);--ln-1F2633: var(--text-3);--bg-1F6B45: var(--success);--fg-1F6B45: var(--success);--ln-1F6B45: var(--success);--bg-2F6DB5: var(--info);--fg-2F6DB5: var(--info);--ln-2F6DB5: var(--info);--bg-3A4250: var(--line);--fg-3A4250: var(--text-2);--ln-3A4250: var(--text-3);--bg-5B6472: var(--text-4);--fg-5B6472: var(--text-3);--ln-5B6472: var(--text-3);--bg-6B7380: var(--text-4);--fg-6B7380: var(--text-3);--ln-6B7380: var(--text-3);--bg-7A1A12: var(--danger);--fg-7A1A12: var(--danger);--ln-7A1A12: var(--danger);--bg-8A5A00: var(--warning);--fg-8A5A00: var(--warning);--ln-8A5A00: var(--warning);--bg-8A93A1: var(--line-strong);--fg-8A93A1: var(--text-4);--ln-8A93A1: var(--line-strong);--bg-8DB6E8: var(--info);--fg-8DB6E8: var(--info);--ln-8DB6E8: var(--info);--bg-B42318: var(--danger);--fg-B42318: var(--danger);--ln-B42318: var(--danger);--bg-B4BBC6: var(--line-strong);--fg-B4BBC6: var(--text-4);--ln-B4BBC6: var(--line-strong);--bg-B8C2D1: var(--line-strong);--fg-B8C2D1: var(--text-4);--ln-B8C2D1: var(--line-strong);--bg-C08A1E: var(--warning);--fg-C08A1E: var(--warning);--ln-C08A1E: var(--warning);--bg-C3CAD4: var(--line-strong);--fg-C3CAD4: var(--text-4);--ln-C3CAD4: var(--line-strong);--bg-C8102E: var(--danger);--fg-C8102E: var(--danger);--ln-C8102E: var(--danger);--bg-CCD3DC: var(--line-strong);--fg-CCD3DC: var(--text-4);--ln-CCD3DC: var(--line-strong);--bg-CDD3DC: var(--line-strong);--fg-CDD3DC: var(--text-4);--ln-CDD3DC: var(--line-strong);--bg-D6E2F3: var(--tint);--fg-D6E2F3: var(--text);--ln-D6E2F3: var(--line-strong);--bg-D9DEE6: var(--line);--fg-D9DEE6: var(--text-4);--ln-D9DEE6: var(--line);--bg-DCE1E8: var(--line);--fg-DCE1E8: var(--text-4);--ln-DCE1E8: var(--line);--bg-DDE2E8: var(--line);--fg-DDE2E8: var(--text-4);--ln-DDE2E8: var(--line);--bg-E1E5EB: var(--line);--fg-E1E5EB: var(--text-4);--ln-E1E5EB: var(--line);--bg-E2E5EA: var(--line);--fg-E2E5EA: var(--text-4);--ln-E2E5EA: var(--line);--bg-E6E9EE: var(--line);--fg-E6E9EE: var(--text-4);--ln-E6E9EE: var(--line);--bg-E8EDF5: var(--tint);--fg-E8EDF5: var(--text);--ln-E8EDF5: var(--line-strong);--bg-EAF0F8: var(--tint);--fg-EAF0F8: var(--text);--ln-EAF0F8: var(--line-strong);--bg-ECEFF3: var(--surface-2);--fg-ECEFF3: var(--text);--ln-ECEFF3: var(--line);--bg-EDF0F4: var(--surface-2);--fg-EDF0F4: var(--text);--ln-EDF0F4: var(--line);--bg-EEF0F3: var(--surface-2);--fg-EEF0F3: var(--text);--ln-EEF0F3: var(--line);--bg-EEF3FA: var(--tint);--fg-EEF3FA: var(--text);--ln-EEF3FA: var(--line-strong);--bg-EEF6F1: var(--success-bg);--fg-EEF6F1: var(--success);--ln-EEF6F1: var(--success-bg);--bg-EFF6F2: var(--success-bg);--fg-EFF6F2: var(--success);--ln-EFF6F2: var(--success-bg);--bg-F0F2F5: var(--surface-2);--fg-F0F2F5: var(--text);--ln-F0F2F5: var(--line);--bg-F1C7C2: var(--danger-bg);--fg-F1C7C2: var(--danger);--ln-F1C7C2: var(--danger-bg);--bg-F2F3F5: var(--surface-2);--fg-F2F3F5: var(--text);--ln-F2F3F5: var(--line);--bg-F2F5F9: var(--surface-2);--fg-F2F5F9: var(--text);--ln-F2F5F9: var(--line);--bg-F3F5F8: var(--surface-2);--fg-F3F5F8: var(--text);--ln-F3F5F8: var(--line);--bg-F3F6FB: var(--tint);--fg-F3F6FB: var(--text);--ln-F3F6FB: var(--line-strong);--bg-F5F7FA: var(--surface-2);--fg-F5F7FA: var(--text);--ln-F5F7FA: var(--line);--bg-F7F8FA: var(--page);--fg-F7F8FA: var(--text);--ln-F7F8FA: var(--line);--bg-F7F9FB: var(--surface-2);--fg-F7F9FB: var(--text);--ln-F7F9FB: var(--line);--bg-F7F9FC: var(--surface-2);--fg-F7F9FC: var(--text);--ln-F7F9FC: var(--line);--bg-FAFBFC: var(--surface-2);--fg-FAFBFC: var(--text);--ln-FAFBFC: var(--line);--bg-FBF4E4: var(--warning-bg);--fg-FBF4E4: var(--warning);--ln-FBF4E4: var(--warning-bg);--bg-FDF1F0: var(--danger-bg);--fg-FDF1F0: var(--danger);--ln-FDF1F0: var(--danger-bg);--bg-FFF7F7: var(--danger-bg);--fg-FFF7F7: var(--danger);--ln-FFF7F7: var(--danger-bg);--bg-FFFFFF: var(--surface);--fg-FFFFFF: var(--on-accent);--ln-FFFFFF: var(--on-accent)}@media(prefers-color-scheme:dark){:root[data-theme=auto]{--page: #0E131C;--surface: #151B26;--surface-2: #1A2130;--tint: #1E2C44;--line: #2A3343;--line-strong: #3A4456;--text: #E6EAF0;--text-2: #C3CAD6;--text-3: #9AA4B2;--text-4: #6B7585;--accent: #8DB6E8;--accent-fill: #2F5EA8;--accent-hover: #3A6CBC;--on-accent: #FFFFFF;--info: #79A8E6;--danger: #F2867C;--danger-bg: #3A1E1E;--success: #6FCF97;--success-bg: #17301F;--warning: #E8B65A;--warning-bg: #33280F;--bg-glass: rgba(21,27,38,.92);--shimmer: rgba(255,255,255,.06);--scrollbar: #3A4456;color-scheme:dark;--bg-0F2C59: var(--accent-fill);--fg-0F2C59: var(--accent);--ln-0F2C59: var(--accent);--bg-16386E: var(--accent-hover);--fg-16386E: var(--accent);--ln-16386E: var(--accent);--bg-1B2A44: var(--page);--fg-1B2A44: var(--text);--ln-1B2A44: var(--line);--bg-1F2633: var(--line);--fg-1F2633: var(--text);--ln-1F2633: var(--text-3);--bg-1F6B45: var(--success);--fg-1F6B45: var(--success);--ln-1F6B45: var(--success);--bg-2F6DB5: var(--info);--fg-2F6DB5: var(--info);--ln-2F6DB5: var(--info);--bg-3A4250: var(--line);--fg-3A4250: var(--text-2);--ln-3A4250: var(--text-3);--bg-5B6472: var(--text-4);--fg-5B6472: var(--text-3);--ln-5B6472: var(--text-3);--bg-6B7380: var(--text-4);--fg-6B7380: var(--text-3);--ln-6B7380: var(--text-3);--bg-7A1A12: var(--danger);--fg-7A1A12: var(--danger);--ln-7A1A12: var(--danger);--bg-8A5A00: var(--warning);--fg-8A5A00: var(--warning);--ln-8A5A00: var(--warning);--bg-8A93A1: var(--line-strong);--fg-8A93A1: var(--text-4);--ln-8A93A1: var(--line-strong);--bg-8DB6E8: var(--info);--fg-8DB6E8: var(--info);--ln-8DB6E8: var(--info);--bg-B42318: var(--danger);--fg-B42318: var(--danger);--ln-B42318: var(--danger);--bg-B4BBC6: var(--line-strong);--fg-B4BBC6: var(--text-4);--ln-B4BBC6: var(--line-strong);--bg-B8C2D1: var(--line-strong);--fg-B8C2D1: var(--text-4);--ln-B8C2D1: var(--line-strong);--bg-C08A1E: var(--warning);--fg-C08A1E: var(--warning);--ln-C08A1E: var(--warning);--bg-C3CAD4: var(--line-strong);--fg-C3CAD4: var(--text-4);--ln-C3CAD4: var(--line-strong);--bg-C8102E: var(--danger);--fg-C8102E: var(--danger);--ln-C8102E: var(--danger);--bg-CCD3DC: var(--line-strong);--fg-CCD3DC: var(--text-4);--ln-CCD3DC: var(--line-strong);--bg-CDD3DC: var(--line-strong);--fg-CDD3DC: var(--text-4);--ln-CDD3DC: var(--line-strong);--bg-D6E2F3: var(--tint);--fg-D6E2F3: var(--text);--ln-D6E2F3: var(--line-strong);--bg-D9DEE6: var(--line);--fg-D9DEE6: var(--text-4);--ln-D9DEE6: var(--line);--bg-DCE1E8: var(--line);--fg-DCE1E8: var(--text-4);--ln-DCE1E8: var(--line);--bg-DDE2E8: var(--line);--fg-DDE2E8: var(--text-4);--ln-DDE2E8: var(--line);--bg-E1E5EB: var(--line);--fg-E1E5EB: var(--text-4);--ln-E1E5EB: var(--line);--bg-E2E5EA: var(--line);--fg-E2E5EA: var(--text-4);--ln-E2E5EA: var(--line);--bg-E6E9EE: var(--line);--fg-E6E9EE: var(--text-4);--ln-E6E9EE: var(--line);--bg-E8EDF5: var(--tint);--fg-E8EDF5: var(--text);--ln-E8EDF5: var(--line-strong);--bg-EAF0F8: var(--tint);--fg-EAF0F8: var(--text);--ln-EAF0F8: var(--line-strong);--bg-ECEFF3: var(--surface-2);--fg-ECEFF3: var(--text);--ln-ECEFF3: var(--line);--bg-EDF0F4: var(--surface-2);--fg-EDF0F4: var(--text);--ln-EDF0F4: var(--line);--bg-EEF0F3: var(--surface-2);--fg-EEF0F3: var(--text);--ln-EEF0F3: var(--line);--bg-EEF3FA: var(--tint);--fg-EEF3FA: var(--text);--ln-EEF3FA: var(--line-strong);--bg-EEF6F1: var(--success-bg);--fg-EEF6F1: var(--success);--ln-EEF6F1: var(--success-bg);--bg-EFF6F2: var(--success-bg);--fg-EFF6F2: var(--success);--ln-EFF6F2: var(--success-bg);--bg-F0F2F5: var(--surface-2);--fg-F0F2F5: var(--text);--ln-F0F2F5: var(--line);--bg-F1C7C2: var(--danger-bg);--fg-F1C7C2: var(--danger);--ln-F1C7C2: var(--danger-bg);--bg-F2F3F5: var(--surface-2);--fg-F2F3F5: var(--text);--ln-F2F3F5: var(--line);--bg-F2F5F9: var(--surface-2);--fg-F2F5F9: var(--text);--ln-F2F5F9: var(--line);--bg-F3F5F8: var(--surface-2);--fg-F3F5F8: var(--text);--ln-F3F5F8: var(--line);--bg-F3F6FB: var(--tint);--fg-F3F6FB: var(--text);--ln-F3F6FB: var(--line-strong);--bg-F5F7FA: var(--surface-2);--fg-F5F7FA: var(--text);--ln-F5F7FA: var(--line);--bg-F7F8FA: var(--page);--fg-F7F8FA: var(--text);--ln-F7F8FA: var(--line);--bg-F7F9FB: var(--surface-2);--fg-F7F9FB: var(--text);--ln-F7F9FB: var(--line);--bg-F7F9FC: var(--surface-2);--fg-F7F9FC: var(--text);--ln-F7F9FC: var(--line);--bg-FAFBFC: var(--surface-2);--fg-FAFBFC: var(--text);--ln-FAFBFC: var(--line);--bg-FBF4E4: var(--warning-bg);--fg-FBF4E4: var(--warning);--ln-FBF4E4: var(--warning-bg);--bg-FDF1F0: var(--danger-bg);--fg-FDF1F0: var(--danger);--ln-FDF1F0: var(--danger-bg);--bg-FFF7F7: var(--danger-bg);--fg-FFF7F7: var(--danger);--ln-FFF7F7: var(--danger-bg);--bg-FFFFFF: var(--surface);--fg-FFFFFF: var(--on-accent);--ln-FFFFFF: var(--on-accent)}}:root[data-theme=dark] body,:root[data-theme=dark] html{background:var(--page);color:var(--text)}@media(prefers-color-scheme:dark){:root[data-theme=auto] body{background:var(--page);color:var(--text)}}:root[data-theme=dark] img[src$="aztu-university-logo.png"],:root[data-theme=dark] img[src$="aztu-logo.png"]{filter:brightness(0) invert(.92)}@media(prefers-color-scheme:dark){:root[data-theme=auto] img[src$="aztu-university-logo.png"],:root[data-theme=auto] img[src$="aztu-logo.png"]{filter:brightness(0) invert(.92)}}.prototype-root *{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}.prototype-root *::-webkit-scrollbar{width:8px;height:8px}.prototype-root *::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.prototype-root *::-webkit-scrollbar-track{background:transparent}.prototype-root button,.prototype-root a,.prototype-root input,.prototype-root select,.prototype-root textarea{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}.prototype-toast{animation:prototype-toast-in .22s ease-out}@keyframes prototype-toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.prototype-page-in{animation:prototype-page-in .18s ease-out}@keyframes prototype-page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.prototype-root *,.prototype-toast,.prototype-page-in{transition:none!important;animation:none!important}}.prototype-export{position:relative;display:inline-flex;flex-shrink:0}.prototype-export-button{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:8px;cursor:pointer;font:inherit;font-size:14px;white-space:nowrap}.prototype-export.is-small .prototype-export-button{height:34px;font-size:13px}.prototype-export-button span{font-size:10px;color:var(--text-3)}.prototype-export-button[aria-expanded=true]{border-color:var(--accent)}.prototype-export-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:40;min-width:210px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0f2c5924;display:flex;flex-direction:column}.prototype-export-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-size:14px;cursor:pointer;text-align:left}.prototype-export-menu button:hover,.prototype-export-menu button:focus-visible{background:var(--tint);outline:none}.prototype-export-menu b{font-weight:500}.prototype-export-menu small{font-size:12px;color:var(--text-3)}.prototype-room-link{border:0;background:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px}.prototype-room-link:hover,.prototype-room-link:focus-visible{text-decoration-color:currentColor}.prototype-skeleton>*,.prototype-skeleton>*>*{position:relative;overflow:hidden}.prototype-skeleton div:empty:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--shimmer, rgba(255,255,255,.55)),transparent);animation:prototype-shimmer 1.3s ease-in-out infinite}@keyframes prototype-shimmer{to{transform:translate(100%)}}.prototype-refresh-bar{position:fixed;top:0;left:0;right:0;height:2px;z-index:90;overflow:hidden;background:transparent;pointer-events:none}.prototype-refresh-bar:after{content:"";position:absolute;top:0;bottom:0;width:30%;background:var(--fg-0F2C59, #0F2C59);animation:prototype-refresh 1.1s ease-in-out infinite}@keyframes prototype-refresh{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.prototype-skeleton div:empty:after,.prototype-refresh-bar:after{animation:none}.prototype-refresh-bar:after{left:0;width:100%;opacity:.5}}.prototype-stats-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.prototype-stats-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media(max-width:1180px){.prototype-stats-5{grid-template-columns:repeat(3,minmax(0,1fr))!important}.prototype-stats-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:640px){.prototype-stats-5,.prototype-stats-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.prototype-stats-5>:last-child{grid-column:1 / -1}}.prototype-search{position:relative;flex:1;max-width:420px;min-width:180px}.prototype-search input{width:100%;height:38px;padding:0 12px 0 34px;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:var(--bg-FAFBFC, #FAFBFC);color:var(--fg-1F2633, #1F2633);font-size:13px}.prototype-search input:focus{outline:none;border-color:var(--ln-0F2C59, #0F2C59);background:var(--bg-FFFFFF, #FFFFFF);box-shadow:0 0 0 3px #0f2c5914}.prototype-search>svg{position:absolute;left:11px;top:11px;color:var(--fg-6B7380, #6B7380);pointer-events:none}.prototype-search-results{position:absolute;left:0;right:0;top:44px;z-index:40;background:var(--bg-FFFFFF, #FFFFFF);border:1px solid var(--ln-DCE1E8, #DCE1E8);border-radius:10px;box-shadow:0 12px 28px #0f2c5924;padding:6px;max-height:60vh;overflow:auto}.prototype-search-results button{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;cursor:pointer;align-items:baseline}.prototype-search-results button:hover,.prototype-search-results button:focus-visible{background:var(--bg-EEF3FA, #EEF3FA);outline:none}.prototype-search-results small{font-size:11px;color:var(--fg-6B7380, #6B7380);text-transform:uppercase;letter-spacing:.04em}.prototype-search-results b{font-weight:500;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prototype-search-results span{font-size:12px;color:var(--fg-5B6472, #5B6472);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prototype-search-empty{padding:10px 12px;font-size:13px;color:var(--fg-5B6472, #5B6472)}.prototype-icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ln-E1E5EB, #E1E5EB);border-radius:8px;background:var(--bg-FFFFFF, #FFFFFF);color:var(--fg-3A4250, #3A4250);cursor:pointer;flex-shrink:0}.prototype-icon-button:hover{border-color:var(--ln-0F2C59, #0F2C59);color:var(--fg-0F2C59, #0F2C59)}
