.month-day-picker{position:relative;display:inline-flex;min-width:0}.month-day-trigger{display:inline-flex;align-items:center;justify-content:center;min-height:2.35rem;padding:0 .8rem;border:1px solid rgba(3,201,205,.24);border-radius:8px;background:#ffffffb8;color:#063b3dc7;cursor:pointer;font:inherit;font-size:.95rem;text-align:left;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.month-day-trigger:focus-visible,.month-day-trigger:hover{border-color:#03c9cd75;background:#03c9cd1f;color:#063b3d;transform:translateY(-1px)}.month-day-trigger.date-button{min-height:2.25rem;padding:0 .75rem}.month-day-trigger.admin-time-date-button,.month-day-trigger.time-date-button{justify-content:flex-start;width:100%;min-height:2.55rem;padding:0 .75rem;background:#cffcf638}.month-day-trigger.admin-time-date-button{background:#cffcf647}.month-day-trigger.admin-time-date-button:focus-visible,.month-day-trigger.time-date-button:focus-visible{box-shadow:0 0 0 3px #03c9cd1f}.month-day-popover{position:absolute;top:calc(100% + .55rem);left:0;z-index:30;display:grid;gap:.7rem;width:17.25rem;padding:.85rem;border:1px solid rgba(3,201,205,.2);border-radius:8px;background:#fffffffa;box-shadow:0 20px 48px #03c9cd29;transform-origin:top left}.month-day-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.month-day-heading span{color:#063b3d9e;font-size:.86rem}.month-day-heading strong{color:#063b3d;font-size:.98rem}.month-day-grid,.month-day-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.32rem}.month-day-weekdays span{display:grid;place-items:center;min-height:1.35rem;color:#063b3d8a;font-size:.78rem}.month-day-blank,.month-day-cell{min-width:0;min-height:2rem}.month-day-cell{border:1px solid rgba(3,201,205,.14);border-radius:7px;background:#cffcf62e;color:#063b3d;cursor:pointer;font:inherit;font-size:.9rem;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .18s ease,transform .16s ease}.month-day-cell:focus-visible,.month-day-cell:hover{border-color:#03c9cd73;background:#03c9cd1f;transform:translateY(-1px)}.month-day-cell--active{border-color:#03c9cdc2;background:#03c9cd;color:#fff;box-shadow:0 10px 22px #03c9cd2e}@media(max-width:520px){.month-day-picker{width:100%}.month-day-popover{width:min(17.25rem,calc(100vw - 2rem))}}.time-value-picker[data-v-d7a5da8d]{position:relative;display:inline-flex;min-width:0}.time-value-trigger[data-v-d7a5da8d]{display:inline-flex;align-items:center;justify-content:space-between;width:100%;min-height:2.55rem;padding:0 .72rem;border:1px solid rgba(3,201,205,.22);border-radius:8px;background:#cffcf638;color:#063b3d;cursor:pointer;font:inherit;text-align:left;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.time-value-trigger[data-v-d7a5da8d]:after{width:.45rem;height:.45rem;margin-left:.55rem;border-right:2px solid;border-bottom:2px solid;content:"";opacity:.58;transform:translateY(-.12rem) rotate(45deg);transition:transform .18s ease}.time-value-trigger[aria-expanded=true][data-v-d7a5da8d]:after{transform:translateY(.12rem) rotate(225deg)}.time-value-trigger span[data-v-d7a5da8d]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-value-trigger--placeholder[data-v-d7a5da8d]{color:#063b3d7a}.time-value-trigger[data-v-d7a5da8d]:focus-visible,.time-value-trigger[data-v-d7a5da8d]:hover{outline:none;border-color:#03c9cd94;background:#cffcf657;box-shadow:0 0 0 3px #03c9cd1f;transform:translateY(-1px)}.time-value-popover[data-v-d7a5da8d]{position:absolute;top:calc(100% + .45rem);left:0;z-index:70;display:grid;gap:.55rem;width:15rem;padding:.75rem;border:1px solid rgba(3,201,205,.2);border-radius:8px;background:#fffffffa;box-shadow:0 20px 48px #03c9cd29;transform-origin:top left}.time-value-heading[data-v-d7a5da8d]{color:#063b3d9e;font-size:.86rem}.time-value-grid[data-v-d7a5da8d]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;max-height:13.2rem;overflow-y:auto;scrollbar-color:rgba(3,201,205,.44) rgba(207,252,246,.34);scrollbar-width:thin}.time-value-option[data-v-d7a5da8d]{min-width:0;min-height:2.1rem;border:1px solid rgba(3,201,205,.14);border-radius:7px;background:#cffcf62e;color:#063b3d;cursor:pointer;font:inherit;font-size:.9rem;overflow:hidden;padding:0 .45rem;text-overflow:ellipsis;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .18s ease,transform .16s ease}.time-value-option[data-v-d7a5da8d]:focus-visible,.time-value-option[data-v-d7a5da8d]:hover{outline:none;border-color:#03c9cd73;background:#03c9cd1f;transform:translateY(-1px)}.time-value-option--active[data-v-d7a5da8d]{border-color:#03c9cdc2;background:#03c9cd;color:#fff;box-shadow:0 10px 22px #03c9cd2e}.time-value-pop-enter-active[data-v-d7a5da8d],.time-value-pop-leave-active[data-v-d7a5da8d]{transition:opacity .18s ease,transform .22s ease}.time-value-pop-enter-from[data-v-d7a5da8d],.time-value-pop-leave-to[data-v-d7a5da8d]{opacity:0;transform:translateY(-.35rem) scale(.96)}@media(max-width:520px){.time-value-picker[data-v-d7a5da8d]{width:100%}.time-value-popover[data-v-d7a5da8d]{width:min(15rem,calc(100vw - 2rem))}}.admin-page[data-v-49e368d8]{min-height:100vh;background:radial-gradient(circle at 22% 10%,hsla(0,0%,100%,.94) 0 16rem,transparent 28rem),linear-gradient(135deg,#cffcf6,#e9fffb 48%,#bff7f4);color:#063b3d;font-family:ChillRound,Noto Sans SC,Microsoft YaHei,sans-serif}.admin-page[data-v-49e368d8]:not(.admin-page--workspace){display:grid;place-items:center;padding:1rem}.admin-login-panel[data-v-49e368d8]{width:min(420px,100%);padding:1.35rem;border:1px solid rgba(3,201,205,.2);border-radius:18px;background:#ffffffc7;box-shadow:0 24px 62px #03c9cd2e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-heading[data-v-49e368d8]{margin-bottom:1.25rem}.admin-error[data-v-49e368d8],.admin-event-modal header h2[data-v-49e368d8],.admin-event-modal header p[data-v-49e368d8],.admin-heading h1[data-v-49e368d8],.admin-heading p[data-v-49e368d8],.admin-main-header h1[data-v-49e368d8],.admin-main-header p[data-v-49e368d8],.admin-placeholder h1[data-v-49e368d8],.admin-placeholder p[data-v-49e368d8],.admin-success[data-v-49e368d8]{margin:0}.admin-event-modal header p[data-v-49e368d8],.admin-heading p[data-v-49e368d8],.admin-main-header p[data-v-49e368d8]{color:#063b3d94;font-size:.9rem}.admin-heading h1[data-v-49e368d8]{margin-top:.25rem;font-size:2rem;line-height:1.1}.admin-form[data-v-49e368d8]{display:grid;gap:1rem}.admin-form label[data-v-49e368d8],.event-filter-grid label[data-v-49e368d8],.event-form label[data-v-49e368d8],.file-filter-grid label[data-v-49e368d8],.room-create-form label[data-v-49e368d8],.room-edit-form label[data-v-49e368d8],.storage-settings-form label[data-v-49e368d8],.teacher-create-form label[data-v-49e368d8]{display:grid;gap:.45rem}.admin-form label span[data-v-49e368d8],.event-filter-grid label span[data-v-49e368d8],.event-form label span[data-v-49e368d8],.file-filter-grid label span[data-v-49e368d8],.room-create-form label span[data-v-49e368d8],.room-edit-form label span[data-v-49e368d8],.storage-settings-form label span[data-v-49e368d8],.teacher-create-form label span[data-v-49e368d8]{color:#063b3dad;font-size:.92rem}.admin-form input[data-v-49e368d8],.event-form input[data-v-49e368d8],.file-filter-grid input[data-v-49e368d8],.room-create-form input[data-v-49e368d8],.room-edit-form input[data-v-49e368d8],.storage-settings-form input[data-v-49e368d8],.teacher-create-form input[data-v-49e368d8]{width:100%;min-height:2.6rem;border:1px solid rgba(3,201,205,.24);border-radius:8px;background:#cffcf647;color:#063b3d;font:inherit;padding:0 .78rem;outline:none;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.admin-form input[data-v-49e368d8]:focus,.event-form input[data-v-49e368d8]:focus,.file-filter-grid input[data-v-49e368d8]:focus,.room-create-form input[data-v-49e368d8]:focus,.room-edit-form input[data-v-49e368d8]:focus,.storage-settings-form input[data-v-49e368d8]:focus,.teacher-create-form input[data-v-49e368d8]:focus{border-color:#03c9cd94;background:#cffcf661;box-shadow:0 0 0 3px #03c9cd1f}.admin-danger-button[data-v-49e368d8],.admin-form button[data-v-49e368d8],.admin-primary-button[data-v-49e368d8],.admin-secondary-button[data-v-49e368d8],.event-pagination button[data-v-49e368d8]{min-height:2.45rem;border-radius:8px;cursor:pointer;font:inherit;font-weight:700;transition:background-color .18s ease,box-shadow .18s ease,opacity .18s ease,transform .18s ease}.admin-form button[data-v-49e368d8],.admin-primary-button[data-v-49e368d8]{border:1px solid rgba(3,201,205,.32);background:#03c9cd;color:#fff}.admin-secondary-button[data-v-49e368d8],.event-pagination button[data-v-49e368d8]{border:1px solid rgba(3,201,205,.2);background:#ffffffc7;color:#063b3dc2}.admin-danger-button[data-v-49e368d8]{border:1px solid rgba(239,68,68,.28);background:#ef4444;color:#fff;padding:0 .9rem}.admin-danger-button[data-v-49e368d8]:focus-visible,.admin-danger-button[data-v-49e368d8]:hover,.admin-form button[data-v-49e368d8]:focus-visible,.admin-form button[data-v-49e368d8]:hover,.admin-primary-button[data-v-49e368d8]:focus-visible,.admin-primary-button[data-v-49e368d8]:hover,.admin-secondary-button[data-v-49e368d8]:focus-visible,.admin-secondary-button[data-v-49e368d8]:hover,.event-pagination button[data-v-49e368d8]:focus-visible,.event-pagination button[data-v-49e368d8]:hover{box-shadow:0 14px 30px #03c9cd2e;transform:translateY(-1px)}.admin-danger-button[data-v-49e368d8]:disabled,.admin-form button[data-v-49e368d8]:disabled,.admin-primary-button[data-v-49e368d8]:disabled,.event-pagination button[data-v-49e368d8]:disabled{cursor:not-allowed;opacity:.62;transform:none}.admin-error[data-v-49e368d8],.admin-loading[data-v-49e368d8],.admin-success[data-v-49e368d8]{border-radius:8px;padding:.75rem .85rem}.admin-loading[data-v-49e368d8]{background:#cffcf657;color:#063b3dad}.admin-error[data-v-49e368d8]{background:#ef44441a;color:#b91c1c}.admin-success[data-v-49e368d8]{background:#16a34a1a;color:#15803d}.admin-workspace[data-v-49e368d8]{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.admin-sidebar[data-v-49e368d8]{position:sticky;top:0;display:flex;flex-direction:column;gap:1.2rem;height:100vh;padding:1rem;border-right:1px solid rgba(3,201,205,.18);background:#ffffffad;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-brand[data-v-49e368d8]{display:inline-flex;align-items:center;gap:.65rem;min-height:2.7rem;color:#063b3d;text-decoration:none}.admin-brand span[data-v-49e368d8]{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:#03c9cd;color:#fff;box-shadow:0 12px 26px #03c9cd2e}.admin-brand strong[data-v-49e368d8]{font-size:1.05rem}.admin-nav[data-v-49e368d8]{display:grid;gap:.45rem}.admin-nav button[data-v-49e368d8]{min-height:2.65rem;border:1px solid transparent;border-radius:8px;background:transparent;color:#063b3db8;cursor:pointer;font:inherit;text-align:left;padding:0 .85rem;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.admin-nav button[data-v-49e368d8]:focus-visible,.admin-nav button[data-v-49e368d8]:hover,.admin-nav-active[data-v-49e368d8]{border-color:#03c9cd38;background:#cffcf66b;color:#063b3d;transform:translate(2px)}.admin-main[data-v-49e368d8]{min-width:0;padding:1.4rem}.admin-main-header[data-v-49e368d8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-main-header h1[data-v-49e368d8]{margin-top:.2rem;font-size:2rem;line-height:1.1}.admin-placeholder[data-v-49e368d8],.event-table-panel[data-v-49e368d8],.repair-panel[data-v-49e368d8],.room-panel[data-v-49e368d8],.settings-panel[data-v-49e368d8],.teacher-panel[data-v-49e368d8]{border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffffc7;box-shadow:0 20px 50px #03c9cd1f}.repair-panel[data-v-49e368d8],.room-panel[data-v-49e368d8],.settings-panel[data-v-49e368d8],.teacher-panel[data-v-49e368d8]{display:grid;gap:1rem;padding:1rem}.event-filter-panel[data-v-49e368d8]{display:grid;gap:.85rem;padding:1rem;border-bottom:1px solid rgba(3,201,205,.14)}.event-filter-grid[data-v-49e368d8]{grid-template-columns:minmax(10rem,.9fr) repeat(4,minmax(8rem,1fr)) auto}.event-filter-grid[data-v-49e368d8],.file-filter-grid[data-v-49e368d8]{display:grid;align-items:end;gap:.8rem}.file-filter-grid[data-v-49e368d8]{grid-template-columns:minmax(10rem,1fr) minmax(10rem,.85fr) minmax(10rem,.85fr) auto}.event-filter-grid .admin-secondary-button[data-v-49e368d8],.file-filter-grid .admin-secondary-button[data-v-49e368d8]{padding:0 .95rem;white-space:nowrap}.event-filter-crumbs[data-v-49e368d8]{display:flex;flex-wrap:wrap;gap:.55rem}.event-filter-crumbs span[data-v-49e368d8]{display:inline-flex;align-items:center;gap:.38rem;min-height:1.9rem;padding:0 .65rem;border:1px solid rgba(3,201,205,.16);border-radius:999px;background:#cffcf642;color:#063b3d;font-size:.86rem;font-weight:700}.event-filter-crumbs small[data-v-49e368d8]{color:#063b3d85;font-size:.76rem;font-weight:700}[data-v-49e368d8] .month-day-trigger.admin-filter-date-button{justify-content:flex-start;width:100%;min-height:2.6rem;padding:0 .78rem;background:#cffcf647;color:#063b3d}[data-v-49e368d8] .month-day-popover.admin-filter-date-popover{z-index:45}[data-v-49e368d8] .time-value-trigger.admin-value-button{justify-content:flex-start;width:100%;min-height:2.6rem;padding:0 .78rem;background:#cffcf647;color:#063b3d}[data-v-49e368d8] .time-value-trigger.admin-value-button:focus-visible,[data-v-49e368d8] .time-value-trigger.admin-value-button:hover{background:#cffcf661}[data-v-49e368d8] .time-value-popover.admin-value-popover{z-index:55;width:min(18rem,calc(100vw - 2rem))}[data-v-49e368d8] .admin-value-popover .time-value-grid{grid-template-columns:1fr;max-height:14rem}[data-v-49e368d8] .admin-value-popover .time-value-option{text-align:left}[data-v-49e368d8] .month-day-trigger.admin-time-date-button,[data-v-49e368d8] .time-value-trigger{width:100%;min-height:2.6rem}[data-v-49e368d8] .time-value-picker{width:100%}.room-create-form[data-v-49e368d8],.teacher-create-form[data-v-49e368d8]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.85rem}.room-edit-form[data-v-49e368d8]{display:grid;grid-template-columns:minmax(10rem,.7fr) minmax(0,1fr) auto;align-items:end;gap:.85rem;padding-top:1rem;border-top:1px solid rgba(3,201,205,.12)}.settings-tabs[data-v-49e368d8]{display:inline-flex;width:-moz-fit-content;width:fit-content;gap:.25rem;padding:.25rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffff9e}.settings-tabs button[data-v-49e368d8]{min-height:2.35rem;padding:0 1rem;border:0;border-radius:7px;background:transparent;color:#063b3dad;cursor:pointer;font:inherit;font-weight:700;transition:background-color .18s ease,color .18s ease,box-shadow .2s ease,transform .18s ease}.settings-tabs button[data-v-49e368d8]:focus-visible,.settings-tabs button[data-v-49e368d8]:hover{color:#063b3d;transform:translateY(-1px)}.settings-tabs .settings-tab--active[data-v-49e368d8]{background:#03c9cd;color:#fff;box-shadow:0 12px 28px #03c9cd2e}.license-settings-section[data-v-49e368d8],.storage-settings-section[data-v-49e368d8]{display:grid;gap:1rem;padding-top:1rem;border-top:1px solid rgba(3,201,205,.12)}.storage-settings-section header[data-v-49e368d8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.license-settings-section h2[data-v-49e368d8],.license-settings-section p[data-v-49e368d8],.storage-settings-section h2[data-v-49e368d8],.storage-settings-section p[data-v-49e368d8]{margin:0}.license-settings-section h2[data-v-49e368d8],.storage-settings-section h2[data-v-49e368d8]{font-size:1.35rem;line-height:1.2}.storage-settings-section header p[data-v-49e368d8]{margin-top:.35rem;color:#063b3d99;line-height:1.45}.storage-settings-section header span[data-v-49e368d8]{display:inline-flex;align-items:center;min-height:1.8rem;padding:0 .65rem;border:1px solid rgba(3,201,205,.16);border-radius:999px;background:#cffcf647;color:#04777a;font-size:.82rem;font-weight:800;white-space:nowrap}.storage-settings-form[data-v-49e368d8]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.storage-settings-form>label[data-v-49e368d8]{min-width:0}.settings-feedback[data-v-49e368d8],.storage-settings-form footer[data-v-49e368d8]{grid-column:1/-1}.storage-settings-form footer[data-v-49e368d8]{display:flex;justify-content:flex-end;gap:.75rem}.storage-settings-form footer .admin-primary-button[data-v-49e368d8],.storage-settings-form footer .admin-secondary-button[data-v-49e368d8]{padding:0 1rem}.license-settings-section[data-v-49e368d8]{min-height:10rem;align-content:center}.license-settings-section p[data-v-49e368d8]{min-height:2.1rem;padding:.45rem .8rem;border:1px solid rgba(22,163,74,.18);border-radius:999px;background:#16a34a1a;color:#15803d;font-weight:800}.license-settings-section p[data-v-49e368d8],.room-error[data-v-49e368d8],.teacher-error[data-v-49e368d8]{width:-moz-fit-content;width:fit-content}.room-card-grid[data-v-49e368d8],.teacher-card-grid[data-v-49e368d8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.85rem}.repair-card-list[data-v-49e368d8]{display:grid;gap:.85rem}.admin-empty-card[data-v-49e368d8],.repair-card[data-v-49e368d8],.room-card[data-v-49e368d8],.teacher-card[data-v-49e368d8]{min-width:0;min-height:7rem;padding:1rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#ffffffad;box-shadow:0 12px 28px #03c9cd14}.repair-card[data-v-49e368d8],.room-card[data-v-49e368d8],.teacher-card[data-v-49e368d8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;transition:border-color .18s ease,box-shadow .22s ease,transform .22s ease}.repair-card[data-v-49e368d8]:hover,.room-card[data-v-49e368d8]:hover,.teacher-card[data-v-49e368d8]:hover{border-color:#03c9cd52;box-shadow:0 16px 34px #03c9cd24;transform:translateY(-2px)}.room-card div[data-v-49e368d8],.teacher-card div[data-v-49e368d8]{display:grid;gap:.35rem;min-width:0}.repair-card-main[data-v-49e368d8]{display:grid;gap:.45rem;min-width:0}.repair-card-heading[data-v-49e368d8]{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.repair-card-heading strong[data-v-49e368d8]{min-width:0;color:#063b3d;font-size:1.12rem;line-height:1.2;overflow-wrap:anywhere}.repair-card-main p[data-v-49e368d8]{margin:0;color:#063b3d;line-height:1.45;overflow-wrap:anywhere}.repair-card-main time[data-v-49e368d8]{color:#063b3d8f;font-size:.86rem}.repair-status-pill[data-v-49e368d8]{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .55rem;border-radius:999px;font-size:.78rem;font-weight:800;line-height:1}.repair-status-pill--pending[data-v-49e368d8]{background:#d977061f;color:#b45309}.repair-status-pill--resolved[data-v-49e368d8]{background:#16a34a1f;color:#15803d}.repair-card-actions[data-v-49e368d8],.room-card-actions[data-v-49e368d8]{display:grid;gap:.55rem;justify-items:end;flex:0 0 auto}.repair-card-actions .admin-primary-button[data-v-49e368d8],.repair-card-actions .admin-secondary-button[data-v-49e368d8]{padding:0 .85rem}.room-card span[data-v-49e368d8],.teacher-card span[data-v-49e368d8]{color:#063b3d8f;font-size:.82rem}.room-card strong[data-v-49e368d8],.teacher-card strong[data-v-49e368d8]{min-width:0;color:#063b3d;font-size:1.12rem;line-height:1.2;overflow-wrap:anywhere}.admin-empty-card[data-v-49e368d8]{display:grid;place-items:center;color:#063b3d9e}.event-table-toolbar[data-v-49e368d8]{display:flex;align-items:center;justify-content:flex-start;gap:1rem;min-height:3.2rem;padding:0 1rem;border-bottom:1px solid rgba(3,201,205,.14);color:#063b3da3}.event-table-toolbar span[data-v-49e368d8]:nth-child(2){margin-left:auto}.admin-file-upload-panel[data-v-49e368d8]{display:grid;grid-template-columns:minmax(12rem,.72fr) minmax(18rem,1fr) auto;align-items:end;gap:.75rem;padding:1rem;border-bottom:1px solid rgba(3,201,205,.14);background:#ffffff94}.admin-file-upload-panel label[data-v-49e368d8]{display:grid;gap:.45rem;min-width:0}.admin-file-upload-panel label span[data-v-49e368d8]{color:#063b3dad;font-size:.92rem}.admin-file-upload-dropzone[data-v-49e368d8]{min-height:4.35rem;padding:.68rem .85rem;border:1px dashed rgba(3,201,205,.32);border-radius:8px;background:#cffcf638;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}.admin-file-upload-dropzone[data-v-49e368d8]:focus-within,.admin-file-upload-dropzone[data-v-49e368d8]:hover{border-color:#03c9cd94;background:#cffcf657;box-shadow:0 0 0 3px #03c9cd1a;transform:translateY(-1px)}.admin-file-upload-dropzone input[data-v-49e368d8]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.admin-file-upload-dropzone strong[data-v-49e368d8]{min-width:0;color:#063b3d;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-file-upload-dropzone small[data-v-49e368d8]{color:#063b3d8f;font-size:.82rem}.admin-file-upload-feedback[data-v-49e368d8]{grid-column:1/-1;width:-moz-fit-content;width:fit-content}.event-list-error[data-v-49e368d8]{width:-moz-fit-content;width:fit-content;margin:.85rem 1rem 0}.event-table-scroll[data-v-49e368d8]{overflow-x:auto}.event-table[data-v-49e368d8]{width:100%;min-width:980px;border-collapse:collapse}.file-table[data-v-49e368d8]{min-width:1160px}.event-table td[data-v-49e368d8],.event-table th[data-v-49e368d8]{padding:.85rem 1rem;border-bottom:1px solid rgba(3,201,205,.1);text-align:left;white-space:nowrap}.event-table th[data-v-49e368d8]{color:#063b3d94;font-size:.86rem;font-weight:700}.event-table td[data-v-49e368d8]{color:#063b3d;font-size:.94rem}.file-name-cell[data-v-49e368d8]{max-width:18rem;white-space:normal;overflow-wrap:anywhere;font-weight:700;line-height:1.35}.event-row-actions[data-v-49e368d8],.file-table-actions[data-v-49e368d8]{display:inline-flex;align-items:center;gap:.75rem}.event-table tr:hover td[data-v-49e368d8]{background:#cffcf63d}.event-check-cell[data-v-49e368d8]{width:3rem;text-align:center}.event-check-cell input[data-v-49e368d8]{width:1.05rem;height:1.05rem;accent-color:#03c9cd;cursor:pointer}.admin-type-pill[data-v-49e368d8]{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .52rem;border-radius:999px;font-size:.78rem;line-height:1}.admin-type-pill--class[data-v-49e368d8]{background:#03c9cd21;color:#04777a}.admin-type-pill--maintenance[data-v-49e368d8]{background:#dc26261f;color:#b91c1c}.admin-text-button[data-v-49e368d8]{border:0;background:transparent;color:#04777a;cursor:pointer;font:inherit;font-weight:700;padding:0;white-space:nowrap}.admin-text-button[data-v-49e368d8]:disabled{color:#063b3d5c;cursor:wait}.admin-danger-text-button[data-v-49e368d8]{border:0;background:transparent;color:#b91c1c;cursor:pointer;font:inherit;font-weight:700;padding:0;white-space:nowrap}.event-pagination[data-v-49e368d8]{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;min-height:3.5rem;padding:0 1rem}.event-pagination span[data-v-49e368d8]{color:#063b3da3}.admin-placeholder[data-v-49e368d8]{display:grid;gap:.45rem;padding:1.2rem}.admin-placeholder h1[data-v-49e368d8]{font-size:1.6rem}.admin-placeholder p[data-v-49e368d8]{color:#063b3d9e}.admin-modal-backdrop[data-v-49e368d8]{position:fixed;inset:0;z-index:60;display:grid;place-items:start center;padding:1rem;overflow-y:auto;background:#063b3d47;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-event-modal[data-v-49e368d8]{width:min(760px,100%);margin:auto 0;border:1px solid rgba(3,201,205,.22);border-radius:8px;background:#fffffffa;box-shadow:0 28px 72px #063b3d38}.admin-event-modal header[data-v-49e368d8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem .85rem;border-bottom:1px solid rgba(3,201,205,.16)}.admin-event-modal header h2[data-v-49e368d8]{margin-top:.25rem;font-size:1.45rem}.admin-event-modal header button[data-v-49e368d8]{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#cffcf66b;color:#063b3d;cursor:pointer;font:inherit;font-size:1.35rem;line-height:1}.admin-event-files-modal[data-v-49e368d8]{width:min(900px,100%)}.quick-invite-modal[data-v-49e368d8]{width:min(560px,100%)}.quick-invite-content[data-v-49e368d8]{display:grid;gap:1rem;padding:1.15rem 1.25rem 1.25rem}.quick-invite-summary[data-v-49e368d8]{display:grid;gap:.3rem;min-width:0;padding:.8rem .9rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#cffcf633}.quick-invite-summary strong[data-v-49e368d8]{color:#063b3d;overflow-wrap:anywhere;line-height:1.25}.quick-invite-summary span[data-v-49e368d8]{color:#063b3d9e;font-size:.88rem;line-height:1.35}.quick-invite-link-field[data-v-49e368d8]{display:grid;gap:.45rem;min-width:0}.quick-invite-link-field span[data-v-49e368d8]{color:#063b3dad;font-size:.92rem}.quick-invite-link-field input[data-v-49e368d8]{width:100%;min-height:2.7rem;border:1px solid rgba(3,201,205,.24);border-radius:8px;background:#cffcf647;color:#063b3d;font:inherit;padding:0 .78rem;outline:none}.quick-invite-link-field input[data-v-49e368d8]:focus{border-color:#03c9cd94;background:#cffcf661;box-shadow:0 0 0 3px #03c9cd1f}.quick-invite-feedback[data-v-49e368d8]{width:-moz-fit-content;width:fit-content}.quick-invite-content footer[data-v-49e368d8]{display:flex;justify-content:flex-end;gap:.75rem}.event-files-manager[data-v-49e368d8]{display:grid;gap:1rem;padding:1.15rem 1.25rem 1.25rem}.event-files-block[data-v-49e368d8]{display:grid;gap:.75rem;min-width:0}.event-files-block-header[data-v-49e368d8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.event-files-block-header h3[data-v-49e368d8],.event-files-block-header p[data-v-49e368d8]{margin:0}.event-files-block-header h3[data-v-49e368d8]{color:#063b3d;font-size:1.05rem;line-height:1.2}.event-files-block-header p[data-v-49e368d8]{margin-top:.2rem;color:#063b3d94;font-size:.88rem}.event-files-block-header .admin-secondary-button[data-v-49e368d8]{min-height:2.25rem;padding:0 .85rem}.event-file-list[data-v-49e368d8]{display:grid;gap:.55rem;max-height:16rem;overflow-y:auto;padding-right:.2rem;scrollbar-color:rgba(3,201,205,.44) rgba(207,252,246,.34);scrollbar-width:thin}.event-file-card[data-v-49e368d8],.event-file-empty[data-v-49e368d8]{min-height:3.8rem;padding:.75rem .85rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#cffcf62e}.event-file-empty[data-v-49e368d8]{display:grid;place-items:center;color:#063b3d94}.event-file-card[data-v-49e368d8]{display:flex;align-items:center;justify-content:space-between;gap:.85rem}.event-file-card--selectable[data-v-49e368d8]{justify-content:flex-start;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}.event-file-card--selectable[data-v-49e368d8]:focus-within,.event-file-card--selectable[data-v-49e368d8]:hover{border-color:#03c9cd5c;background:#cffcf647;box-shadow:0 10px 22px #03c9cd1a;transform:translateY(-1px)}.event-file-card input[data-v-49e368d8]{flex:0 0 auto;width:1.05rem;height:1.05rem;accent-color:#03c9cd}.event-file-card div[data-v-49e368d8]{display:grid;gap:.25rem;min-width:0}.event-file-card strong[data-v-49e368d8]{min-width:0;color:#063b3d;overflow-wrap:anywhere;line-height:1.25}.event-file-card small[data-v-49e368d8]{color:#063b3d94;font-size:.82rem;line-height:1.35}.event-file-error[data-v-49e368d8]{width:-moz-fit-content;width:fit-content}.event-files-manager footer[data-v-49e368d8]{display:flex;justify-content:flex-end;gap:.75rem}.event-form[data-v-49e368d8]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.95rem 1rem;padding:1.15rem 1.25rem 1.25rem}.event-form>label[data-v-49e368d8]{min-width:0}.admin-time-selects[data-v-49e368d8]{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(5.2rem,.55fr) minmax(5.2rem,.55fr);gap:.55rem;align-items:start}.event-time-presets[data-v-49e368d8]{display:grid;grid-column:1/-1;gap:.45rem;min-width:0}.event-time-presets>span[data-v-49e368d8]{color:#063b3dad;font-size:.92rem}.event-time-presets>div[data-v-49e368d8]{display:flex;flex-wrap:wrap;gap:.55rem}.event-time-presets .admin-secondary-button[data-v-49e368d8]{min-height:2.25rem;padding:0 .9rem}.bulk-event-import[data-v-49e368d8],.event-modal-tabs[data-v-49e368d8]{grid-column:1/-1}.event-modal-tabs[data-v-49e368d8]{display:inline-flex;width:-moz-fit-content;width:fit-content;gap:.25rem;padding:.25rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffff9e}.event-modal-tabs button[data-v-49e368d8]{min-height:2.25rem;padding:0 .9rem;border:0;border-radius:7px;background:transparent;color:#063b3dad;cursor:pointer;font:inherit;transition:background-color .18s ease,color .18s ease,box-shadow .2s ease,transform .18s ease}.event-modal-tabs button[data-v-49e368d8]:focus-visible,.event-modal-tabs button[data-v-49e368d8]:hover{color:#063b3d;transform:translateY(-1px)}.event-modal-tabs .event-modal-tab--active[data-v-49e368d8]{background:#03c9cd;color:#fff;box-shadow:0 12px 28px #03c9cd2e}.bulk-event-import[data-v-49e368d8]{display:grid;gap:.65rem;min-width:0}.bulk-event-toolbar[data-v-49e368d8]{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.bulk-event-toolbar span[data-v-49e368d8]{color:#063b3dad;font-size:.92rem}.bulk-event-toolbar .admin-secondary-button[data-v-49e368d8]{min-height:2.2rem;padding:0 .8rem}.bulk-event-import textarea[data-v-49e368d8]{width:100%;min-height:20rem;max-height:min(52vh,28rem);padding:.85rem;border:1px solid rgba(3,201,205,.24);border-radius:8px;background:#cffcf638;color:#063b3d;font:.9rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;outline:none;resize:vertical;-moz-tab-size:2;-o-tab-size:2;tab-size:2;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.bulk-event-import textarea[data-v-49e368d8]:focus{border-color:#03c9cd94;background:#cffcf657;box-shadow:0 0 0 3px #03c9cd1f}.event-form footer[data-v-49e368d8],.event-form-error[data-v-49e368d8]{grid-column:1/-1}.event-form footer[data-v-49e368d8]{display:flex;justify-content:flex-end;gap:.75rem}.admin-modal-enter-active[data-v-49e368d8],.admin-modal-leave-active[data-v-49e368d8],.admin-pop-enter-active[data-v-49e368d8],.admin-pop-leave-active[data-v-49e368d8]{transition:opacity .18s ease,transform .22s ease}.admin-pop-enter-from[data-v-49e368d8],.admin-pop-leave-to[data-v-49e368d8]{opacity:0;transform:translateY(-.35rem)}.admin-modal-enter-from[data-v-49e368d8],.admin-modal-leave-to[data-v-49e368d8]{opacity:0}.admin-modal-enter-from .admin-event-modal[data-v-49e368d8],.admin-modal-leave-to .admin-event-modal[data-v-49e368d8]{transform:translateY(1rem) scale(.97)}@media(max-width:820px){.admin-workspace[data-v-49e368d8]{grid-template-columns:1fr}.admin-sidebar[data-v-49e368d8]{position:static;height:auto}.admin-nav[data-v-49e368d8]{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-nav button[data-v-49e368d8]{text-align:center;padding:0 .55rem}.admin-main[data-v-49e368d8]{padding:1rem}.admin-file-upload-panel[data-v-49e368d8],.event-filter-grid[data-v-49e368d8],.file-filter-grid[data-v-49e368d8],.storage-settings-form[data-v-49e368d8]{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-file-upload-panel .admin-primary-button[data-v-49e368d8]{grid-column:1/-1}}@media(max-width:520px){.admin-main-header[data-v-49e368d8],.event-pagination[data-v-49e368d8],.event-table-toolbar[data-v-49e368d8]{align-items:stretch;flex-direction:column}.admin-file-upload-panel[data-v-49e368d8],.event-filter-grid[data-v-49e368d8],.file-filter-grid[data-v-49e368d8],.room-create-form[data-v-49e368d8],.room-edit-form[data-v-49e368d8],.storage-settings-form[data-v-49e368d8],.teacher-create-form[data-v-49e368d8]{grid-template-columns:1fr}.admin-primary-button[data-v-49e368d8],.admin-secondary-button[data-v-49e368d8],.event-pagination button[data-v-49e368d8]{width:100%}.event-form[data-v-49e368d8]{grid-template-columns:1fr}.bulk-event-toolbar[data-v-49e368d8],.event-modal-tabs[data-v-49e368d8]{align-items:stretch;width:100%}.event-modal-tabs button[data-v-49e368d8]{flex:1 1 0}.bulk-event-toolbar[data-v-49e368d8]{flex-direction:column}.settings-tabs[data-v-49e368d8],.storage-settings-form footer[data-v-49e368d8]{width:100%}.settings-tabs button[data-v-49e368d8]{flex:1 1 0}.storage-settings-form footer[data-v-49e368d8],.storage-settings-section header[data-v-49e368d8]{align-items:stretch;flex-direction:column}.bulk-event-toolbar .admin-secondary-button[data-v-49e368d8]{width:100%}.bulk-event-import textarea[data-v-49e368d8]{min-height:18rem}.admin-time-selects[data-v-49e368d8]{grid-template-columns:1fr}.event-time-presets>div[data-v-49e368d8]{flex-direction:column}.event-time-presets .admin-secondary-button[data-v-49e368d8]{width:100%}.repair-card[data-v-49e368d8]{flex-direction:column}.event-file-card[data-v-49e368d8],.event-files-block-header[data-v-49e368d8],.event-files-manager footer[data-v-49e368d8]{align-items:stretch;flex-direction:column}.repair-card-actions[data-v-49e368d8]{width:100%;justify-items:stretch}.repair-card-actions button[data-v-49e368d8]{width:100%}}@font-face{font-family:ChillRound;src:url(../ChillRoundM.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--color-primary:#03c9cd;--color-mint:#cffcf6;--color-ink:#063b3d;--color-danger:#ef4444;--color-danger-dark:#b91c1c;--color-surface:hsla(0,0%,100%,.78);--color-surface-strong:hsla(0,0%,100%,.94);--shadow-soft:0 16px 44px rgba(3,201,205,.18);font-family:ChillRound,Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--color-ink);background:var(--color-mint)}*{box-sizing:border-box}html{min-height:100%;background:var(--color-mint)}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}.app-shell{--nav-offset:58px;--content-width:1680px;--page-gutter:clamp(1rem,2vw,2rem);background:radial-gradient(circle at 18% 0,hsla(0,0%,100%,.92) 0 18rem,transparent 30rem),linear-gradient(135deg,#cffcf6,#e9fffb 46%,#bff7f4);color:var(--color-ink);overflow-x:hidden}.app-shell,.room-display-page{min-height:100vh;font-family:ChillRound,Noto Sans SC,Microsoft YaHei,sans-serif}.room-display-page{position:relative;isolation:isolate;display:grid;place-items:center;padding:2rem 2rem 14rem;background:#e8f7ff;color:var(--color-ink);text-align:center;transition:color .24s ease;-moz-user-select:none;user-select:none;-webkit-user-select:none;overflow:hidden}.room-display-background{position:fixed;inset:0;z-index:0;pointer-events:none}.room-display-background-layer{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;will-change:opacity}.room-display-background-layer--idle{background:radial-gradient(circle at 50% 42%,hsla(0,0%,100%,.86) 0 12rem,transparent 28rem),linear-gradient(135deg,#bee8ff,#e8f7ff 45%,#8ed3ff)}.room-display-background-layer--busy{background:radial-gradient(circle at 50% 42%,hsla(0,0%,100%,.88) 0 12rem,transparent 28rem),linear-gradient(135deg,#a7f3d0,#ecfdf5 44%,#34d399)}.room-display-background-layer--maintenance{background:radial-gradient(circle at 50% 42%,hsla(0,0%,100%,.88) 0 12rem,transparent 28rem),linear-gradient(135deg,#fecaca,#fff1f2 44%,#fb7185)}.room-display-page--busy .room-display-background-layer--busy,.room-display-page--idle .room-display-background-layer--idle,.room-display-page--maintenance .room-display-background-layer--maintenance{opacity:1}.room-display-message{position:relative;z-index:1;display:grid;justify-items:center;gap:.75rem}.room-display-message h1,.room-display-message h3,.room-display-message small{margin:0}.room-display-message h3{color:#063b3dad;font-size:clamp(1.4rem,4vw,2.4rem);font-weight:700;line-height:1.1}.room-display-message h1{color:var(--color-ink);font-size:clamp(3rem,12vw,7rem);font-weight:700;line-height:1}.room-display-message small{color:#063b3da8;font-size:clamp(1rem,2.5vw,1.55rem);line-height:1.5}.room-display-event-summary{padding:.35rem .8rem;border:1px solid hsla(0,0%,100%,.72);border-radius:999px;background:#ffffff6b;box-shadow:0 14px 32px #063b3d14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#063b3dc7;font-weight:700}.room-display-dock-area{position:fixed;right:50%;bottom:clamp(2.4rem,6vh,4.5rem);z-index:2;display:grid;justify-items:center;gap:1rem;width:min(58rem,calc(100vw - 2rem));transform:translate(50%)}.room-file-shelf{display:grid;gap:.7rem;width:100%;padding:.85rem;border:1px solid hsla(0,0%,100%,.74);border-radius:22px;background:#ffffff57;box-shadow:0 20px 52px #03c9cd26,inset 0 1px #ffffffa8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.room-file-shelf h2{margin:0;color:#063b3db8;font-size:1rem;font-weight:700;line-height:1;text-align:left}.room-file-list{display:flex;gap:.7rem;overflow-x:auto;padding:.05rem .05rem .15rem;scrollbar-width:none}.room-file-list::-webkit-scrollbar{display:none}.room-file-item{display:grid;justify-items:center;align-items:start;gap:.42rem;min-width:6.8rem;max-width:6.8rem;padding:.55rem .5rem;border:1px solid transparent;border-radius:14px;color:#063b3dbd;font-size:.82rem;font-weight:700;line-height:1.25;outline:none;text-align:center;transition:background-color .22s ease,border-color .22s ease,box-shadow .26s ease,transform .22s ease}.room-file-name{display:-webkit-box;min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.room-file-item small{color:#063b3d80;font-size:.72rem;font-weight:700;line-height:1}.room-file-message{margin:0;min-height:2.4rem;display:grid;place-items:center;border-radius:8px;background:#ffffff5c;color:#063b3d9e;font-weight:700}.room-file-icon{justify-self:center;display:grid;place-items:center;width:3.5rem;height:3.5rem}.room-file-icon img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.room-file-item:focus-visible,.room-file-item:hover{border-color:#03c9cd38;background:#ffffff8f;box-shadow:0 14px 32px #03c9cd1f;color:var(--color-ink);transform:translateY(-.2rem)}.room-dock-row{display:flex;justify-content:center;gap:.8rem;width:100%}.room-app-dock,.room-dock-row{align-items:flex-end;max-width:100%}.room-app-dock{display:inline-flex;gap:.72rem;min-width:0;margin:0;padding:.72rem .86rem;border:1px solid hsla(0,0%,100%,.78);border-radius:24px;background:#ffffff6b;box-shadow:0 24px 62px #03c9cd2e,inset 0 1px #ffffffb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow-x:auto;scrollbar-width:none}.room-app-dock::-webkit-scrollbar{display:none}.room-app-dock-item{display:grid;justify-items:center;gap:.42rem;min-width:4.5rem;color:#063b3db8;font-size:.86rem;font-weight:700;line-height:1;outline:none}.room-app-icon{display:grid;place-items:center;width:clamp(3.8rem,8vw,5.2rem);height:clamp(3.8rem,8vw,5.2rem);border:1px solid hsla(0,0%,100%,.72);border-radius:18px;background:#ffffffb3;box-shadow:0 16px 34px #063b3d1f;transform-origin:bottom center;transition:background-color .26s ease,border-color .26s ease,box-shadow .32s ease,transform .26s ease}.room-app-icon img{display:block;width:72%;height:72%;-o-object-fit:contain;object-fit:contain}.room-app-dock-item:focus-visible .room-app-icon,.room-app-dock-item:hover .room-app-icon{border-color:#03c9cd6b;background:#ffffffe0;box-shadow:0 22px 46px #063b3d29,0 0 0 5px #03c9cd1f,0 0 34px #03c9cd52;transform:translateY(-.45rem)}.room-app-dock-item:focus-visible,.room-app-dock-item:hover{color:var(--color-ink)}.room-system-bar{display:inline-flex;align-items:center;gap:.55rem;padding:.72rem;border:1px solid hsla(0,0%,100%,.78);border-radius:24px;background:#ffffff6b;box-shadow:0 24px 62px #03c9cd24,inset 0 1px #ffffffb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.room-system-button{display:grid;justify-items:center;gap:.42rem;min-width:4.5rem;padding:0;border:0;background:transparent;color:#063b3dc2;cursor:pointer;font:inherit;font-size:.86rem;font-weight:700;line-height:1;transition:color .22s ease}.room-system-icon{display:grid;place-items:center;width:clamp(3.8rem,8vw,5.2rem);height:clamp(3.8rem,8vw,5.2rem);border:1px solid hsla(0,0%,100%,.72);border-radius:18px;background:#ffffffb8;box-shadow:0 16px 34px #063b3d1a;transform-origin:bottom center;transition:background-color .26s ease,border-color .26s ease,box-shadow .32s ease,color .22s ease,transform .26s ease}.room-system-icon svg{width:54%;height:54%;fill:currentColor}.room-system-icon img{display:block;width:62%;height:62%;-o-object-fit:contain;object-fit:contain}.room-system-button:focus-visible,.room-system-button:hover{outline:none;color:var(--color-ink)}.room-system-button:focus-visible .room-system-icon,.room-system-button:hover .room-system-icon{border-color:#03c9cd6b;background:#ffffffe6;box-shadow:0 22px 46px #063b3d24,0 0 0 5px #03c9cd1a;transform:translateY(-.35rem)}.room-system-button--repair:focus-visible,.room-system-button--repair:hover{color:var(--color-danger)}.room-system-button--repair:focus-visible .room-system-icon,.room-system-button--repair:hover .room-system-icon{border-color:#ef444494;background:var(--color-danger);color:#fff;box-shadow:0 22px 48px #ef444442,0 0 0 5px #ef444424}.site-nav{position:fixed;top:.7rem;left:50%;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:min(var(--content-width),calc(100% - var(--page-gutter)*2));min-height:48px;margin:0;padding:.38rem .5rem;border:1px solid rgba(3,201,205,.2);border-radius:999px;background:#f4fffdc7;box-shadow:0 16px 42px #03c9cd29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.site-nav:before{position:absolute;inset:0;z-index:-1;content:"";border-radius:inherit;background:linear-gradient(90deg,#cffcf6db,#ffffffa3,#cffcf6b8);opacity:.82}.nav-center,.nav-left{display:flex;align-items:center;min-width:0}.nav-left{flex:1 1 0;justify-content:flex-start;gap:.35rem}.nav-center{flex:0 1 auto;justify-content:center;gap:.25rem}.board-link{display:inline-flex;align-items:center;flex:0 0 auto;gap:.5rem;min-width:0;font-weight:700}.board-mark{display:grid;place-items:center;width:2rem;height:2rem;border:2px solid hsla(0,0%,100%,.86);border-radius:999px;background:var(--color-primary);color:#fff;box-shadow:0 10px 24px #03c9cd2e;line-height:1}.board-link span:last-child{font-size:1.05rem;letter-spacing:0;white-space:nowrap}.home-link,.nav-center a,.nav-center button{display:inline-flex;align-items:center;justify-content:center;min-height:2.1rem;padding:0 .82rem;border:0;border-radius:999px;background:transparent;color:#063b3dc7;cursor:pointer;font:inherit;font-size:.94rem;transition:background-color .18s ease,color .18s ease,transform .18s ease;white-space:nowrap}.home-link:focus-visible,.home-link:hover,.nav-center a:focus-visible,.nav-center a:hover,.nav-center button:focus-visible,.nav-center button:hover{background:#03c9cd24;color:var(--color-ink);transform:translateY(-1px)}.repair-link{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;max-width:-moz-max-content;max-width:max-content;min-height:2.1rem;margin-left:auto;padding:0 .95rem;border:1px solid hsla(0,0%,100%,.72);border-radius:999px;background:var(--color-danger);color:#fff;box-shadow:0 16px 40px #ef444438;cursor:pointer;font:inherit;font-size:.92rem;font-weight:700;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease;white-space:nowrap}.repair-link:focus-visible,.repair-link:hover{background:var(--color-danger-dark);box-shadow:0 18px 48px #ef444452;transform:translateY(-1px)}.page-shell{min-height:100vh;padding:calc(var(--nav-offset) + 3.5rem) var(--page-gutter) 4.5rem}.board-loader{position:fixed;inset:0;z-index:40;display:grid;place-items:center;align-content:center;gap:1rem;padding:calc(var(--nav-offset) + 2rem) var(--page-gutter) 2rem;background:radial-gradient(circle at 50% 38%,hsla(0,0%,100%,.9) 0 11rem,transparent 22rem),linear-gradient(135deg,#cffcf6,#e9fffb 48%,#bff7f4);color:var(--color-ink)}.board-loader-mark{position:relative;display:grid;place-items:center;width:5.5rem;height:5.5rem;border-radius:999px;background:#ffffff9e;box-shadow:0 22px 58px #03c9cd38}.board-loader-mark:after,.board-loader-mark:before{position:absolute;inset:0;border:2px solid transparent;border-top:2px solid var(--color-primary);border-radius:inherit;content:"";animation:board-loader-spin 1.15s linear infinite}.board-loader-mark:after{inset:.7rem;border-top-color:#063b3db3;animation-duration:1.65s;animation-direction:reverse}.board-loader-mark span{position:absolute;width:.55rem;height:.55rem;border-radius:999px;background:var(--color-primary);animation:board-loader-dot 1.05s ease-in-out infinite}.board-loader-mark span:first-child{--dot-x:-1.05rem;transform:translate(var(--dot-x))}.board-loader-mark span:nth-child(2){animation-delay:.12s}.board-loader-mark span:nth-child(3){--dot-x:1.05rem;animation-delay:.24s;transform:translate(var(--dot-x))}.board-loader p{margin:0;color:#063b3db8;font-size:1.05rem;font-weight:700}.board-loader-fade-enter-active,.board-loader-fade-leave-active{transition:opacity .22s ease}.board-loader-fade-enter-from,.board-loader-fade-leave-to{opacity:0}@keyframes board-loader-spin{to{transform:rotate(1turn)}}@keyframes board-loader-dot{0%,to{opacity:.45;transform:translate(var(--dot-x,0)) scale(.78)}50%{opacity:1;transform:translate(var(--dot-x,0)) scale(1.1)}}.cloud-page,.invite-page,.rooms-overview{width:min(var(--content-width),100%);margin:0 auto}.cloud-page,.invite-page{display:grid;gap:1rem}.cloud-control-panel,.cloud-file-section,.cloud-header,.invite-header,.invite-panel{border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffffc7;box-shadow:var(--shadow-soft)}.cloud-header,.invite-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem}.cloud-header h1,.cloud-header p,.invite-header h1,.invite-header p{margin:0}.cloud-header p,.invite-header p{color:#063b3d94;font-size:.9rem}.cloud-header h1,.invite-header h1{margin-top:.2rem;color:var(--color-ink);font-size:2rem;line-height:1.1}.cloud-header>span,.invite-header>span{display:inline-flex;align-items:center;min-height:2rem;padding:0 .7rem;border:1px solid rgba(3,201,205,.16);border-radius:999px;background:#cffcf64d;color:#04777a;font-size:.86rem;font-weight:800;white-space:nowrap}.invite-panel{padding:1rem}.invite-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.invite-summary div{display:grid;gap:.25rem;min-width:0;padding:.8rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#f4fffdad}.invite-section-heading p,.invite-summary small{color:#063b3d94;font-size:.84rem}.invite-summary strong{min-width:0;color:var(--color-ink);line-height:1.25;overflow-wrap:anywhere}.invite-section-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.65rem;min-width:0;margin-bottom:.85rem}.invite-section-heading h2,.invite-section-heading p{margin:0}.invite-section-heading h2{color:var(--color-ink);font-size:1.12rem;line-height:1.2}.invite-room-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:stretch}.invite-room-row .time-value-picker{width:100%}.invite-room-row .time-value-popover{width:min(22rem,calc(100vw - 2rem))}.invite-room-feedback{margin:0 0 .85rem}.invite-file-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.82fr);gap:1rem}.invite-file-block{display:grid;align-content:start;gap:.85rem;min-width:0}.invite-file-block:first-child{grid-row:span 2}.invite-file-list{display:grid;gap:.72rem;min-width:0}.invite-file-card,.invite-select-card{box-shadow:none}.invite-select-card{grid-template-columns:auto minmax(0,1fr);cursor:pointer}.invite-select-card input{width:1.05rem;height:1.05rem;margin-top:.2rem;accent-color:var(--color-primary)}.invite-upload-form{display:grid;gap:.85rem}.invite-empty{display:grid;place-items:center;min-height:5rem;color:#063b3d9e;font-weight:700;text-align:center}.invite-empty--error,.invite-error{color:var(--color-danger)}.invite-feedback{margin:0}.cloud-control-panel{display:grid;grid-template-columns:minmax(18rem,.82fr) minmax(0,1.18fr);align-items:stretch;gap:1rem;padding:1rem}.cloud-panel-block,.cloud-upload-form{display:grid;align-content:start;gap:.85rem;min-width:0;padding:.95rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#f4fffdad}.cloud-panel-heading{display:grid;gap:.22rem;min-width:0}.cloud-panel-heading strong{color:var(--color-ink);font-size:1rem;line-height:1.25}.cloud-panel-heading small{color:#063b3d94;font-size:.84rem;line-height:1.35}.cloud-teacher-select{display:grid;gap:.45rem;min-width:0}.cloud-teacher-select>span{color:#063b3dad;font-size:.92rem}.cloud-teacher-select .time-value-picker{width:100%}.cloud-teacher-select .time-value-popover.cloud-teacher-popover{width:min(22rem,calc(100vw - 2rem))}.cloud-teacher-select .cloud-teacher-popover .time-value-grid{grid-template-columns:1fr;max-height:18rem}.cloud-teacher-select .cloud-teacher-popover .time-value-option{display:flex;align-items:center;justify-content:flex-start;min-height:2.45rem;padding:0 .75rem;text-align:left}.cloud-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.8rem;min-width:0}.cloud-upload-dropzone{position:relative;display:grid;gap:.25rem;min-height:4.4rem;padding:.72rem .85rem;border:1px dashed rgba(3,201,205,.34);border-radius:8px;background:#cffcf638;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.cloud-upload-dropzone:focus-within,.cloud-upload-dropzone:hover{border-color:#03c9cd9e;background:#cffcf65c;box-shadow:0 0 0 3px #03c9cd1a;transform:translateY(-1px)}.cloud-upload-dropzone input{position:absolute;inset:0;cursor:pointer;opacity:0}.cloud-upload-dropzone strong{min-width:0;color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-upload-dropzone small{color:#063b3d94;font-size:.82rem}.cloud-upload-button{align-self:stretch;min-width:7.5rem}.cloud-file-section{display:grid;overflow:hidden}.cloud-file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.2rem;padding:0 1rem;border-bottom:1px solid rgba(3,201,205,.14);color:#063b3da3}.cloud-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem;padding:1rem}.cloud-empty,.cloud-file-card{min-height:7rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#ffffffad}.cloud-empty{display:grid;grid-column:1/-1;place-items:center;color:#063b3d9e}.cloud-file-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;padding:.9rem;transition:border-color .18s ease,box-shadow .22s ease,transform .22s ease}.cloud-file-card:hover{border-color:#03c9cd52;box-shadow:0 16px 34px #03c9cd24;transform:translateY(-2px)}.cloud-file-icon{display:grid;place-items:center;width:3.35rem;height:3.35rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#cffcf642}.cloud-file-icon img{width:2.15rem;height:2.15rem;-o-object-fit:contain;object-fit:contain}.cloud-file-info{display:grid;gap:.3rem;min-width:0}.cloud-file-info strong{min-width:0;color:var(--color-ink);line-height:1.25;overflow-wrap:anywhere}.cloud-file-info small,.cloud-file-info span{color:#063b3d94;font-size:.82rem;line-height:1.35}.cloud-file-actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:.6rem}.cloud-file-actions .danger-button,.cloud-file-actions .secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.1rem;line-height:1;padding:0 .75rem;white-space:nowrap}.site-footer{display:grid;justify-items:center;gap:.25rem;width:min(var(--content-width),100%);margin:1.25rem auto 0;padding:1rem;border-top:1px solid rgba(3,201,205,.16);color:#063b3d9e;text-align:center}.site-footer p{margin:0;font-size:.92rem;line-height:1.5}.site-footer p:first-child{color:var(--color-ink);font-weight:700}.ndi-page{width:min(var(--content-width),100%);margin:0 auto}.ndi-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ndi-header h1,.ndi-header p{margin:0}.ndi-header p{color:#063b3d94;font-size:.92rem}.ndi-header h1{margin-top:.22rem;color:var(--color-ink);font-size:2.35rem;line-height:1.05}.ndi-status{display:inline-flex;align-items:center;max-width:min(34rem,52vw);min-height:2.15rem;padding:0 .8rem;border:1px solid rgba(3,201,205,.18);border-radius:999px;background:#ffffffb3;color:#063b3dad;font-size:.9rem;line-height:1.2}.ndi-status--error{border-color:#dc26262e;background:#dc26261a;color:#b91c1c}.ndi-player-panel{display:grid;gap:1rem;padding:1rem;background:#ffffffc2;box-shadow:0 24px 62px #03c9cd24;animation:schedule-panel-in .3s ease both}.ndi-player-panel,.ndi-video-frame{border:1px solid rgba(3,201,205,.18);border-radius:8px}.ndi-video-frame{position:relative;width:100%;aspect-ratio:16/9;min-height:360px;background:linear-gradient(135deg,#063b3df0,#04777ae0),#063b3d;overflow:hidden}.ndi-video-frame:before{position:absolute;inset:0;background:linear-gradient(hsla(0,0%,100%,.05) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.05) 1px,transparent 0);background-size:36px 36px;content:"";opacity:.35;pointer-events:none}.ndi-video{position:relative;z-index:1;display:block;width:100%;height:100%;background:transparent}.ndi-control-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.85rem}.ndi-control-bar label{display:grid;gap:.45rem;min-width:0}.ndi-control-bar span,.ndi-note span{color:#063b3da8;font-size:.9rem}.ndi-control-bar input{width:100%;min-height:2.55rem;border:1px solid rgba(3,201,205,.22);border-radius:8px;background:#cffcf638;color:var(--color-ink);font:inherit;padding:0 .8rem;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.ndi-control-bar input:focus{outline:none;border-color:#03c9cd94;background:#cffcf657;box-shadow:0 0 0 3px #03c9cd1f}.ndi-note{display:grid;gap:.25rem;padding:.85rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#cffcf63d}.ndi-note strong{color:var(--color-ink);font-size:.98rem}.board-controls{--board-control-height:2.85rem;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.55rem;margin-bottom:.95rem}.board-tabs{display:inline-flex;align-items:center;gap:.25rem;height:var(--board-control-height);padding:.25rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffff94}.board-tabs button{height:calc(var(--board-control-height) - .5rem - 2px);min-height:0;padding:0 1rem;border:0;border-radius:7px;background:transparent;color:#063b3da8;cursor:pointer;font:inherit;transition:background-color .18s ease,color .18s ease,box-shadow .2s ease,transform .18s ease}.board-tabs button:focus-visible,.board-tabs button:hover{color:var(--color-ink);transform:translateY(-1px)}.board-tabs .board-tab--active{background:var(--color-primary);color:#fff;box-shadow:0 12px 28px #03c9cd2e}.date-button,.view-toggle{border:1px solid rgba(3,201,205,.24);border-radius:8px;background:#ffffffb8;color:#063b3dc7;cursor:pointer;font:inherit;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.date-picker{position:relative;display:inline-flex;flex:0 0 auto}.date-button{width:-moz-fit-content;width:fit-content;padding:0 .75rem;font-size:.95rem}.board-controls .month-day-trigger.date-button,.date-button{height:var(--board-control-height);min-height:var(--board-control-height)}.view-toggle{display:grid;place-items:center;width:var(--board-control-height);height:var(--board-control-height);min-height:var(--board-control-height);padding:0}.view-icon{display:grid;width:1.1rem;height:1.1rem;gap:.16rem;transition:opacity .16s ease,transform .22s ease}.view-icon span{display:block;border-radius:2px;background:currentColor;transition:border-radius .18s ease,transform .22s ease}.view-icon--grid{grid-template-columns:repeat(2,1fr);transform:rotate(0) scale(1)}.view-icon--list{grid-template-columns:1fr;grid-template-rows:repeat(4,1fr);transform:translateY(1px) scale(.94)}.view-toggle:active .view-icon{transform:scale(.86)}.date-button:focus-visible,.date-button:hover,.view-toggle:focus-visible,.view-toggle:hover{border-color:#03c9cd75;background:#03c9cd1f;color:var(--color-ink);transform:translateY(-1px)}.calendar-popover{position:absolute;top:calc(100% + .55rem);left:0;z-index:10;display:grid;gap:.55rem;min-width:15rem;padding:.9rem;border:1px solid rgba(3,201,205,.2);border-radius:8px;background:#fffffff5;box-shadow:0 20px 48px #03c9cd29;transform-origin:top left}.calendar-pop-enter-active,.calendar-pop-leave-active{transition:opacity .18s ease,transform .22s ease}.calendar-pop-enter-from,.calendar-pop-leave-to{opacity:0;transform:translateY(-.45rem) scale(.96)}.calendar-pop-enter-to,.calendar-pop-leave-from{opacity:1;transform:translateY(0) scale(1)}.calendar-popover label{color:#063b3dad;font-size:.9rem}.calendar-popover input{min-height:2.4rem;border:1px solid rgba(3,201,205,.28);border-radius:8px;color:var(--color-ink);font:inherit;padding:0 .7rem}.schedule-load-message{width:100%;margin:-.65rem 0 1rem;color:#063b3da3;font-size:.95rem}.schedule-load-message--error{color:var(--color-danger-dark)}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;min-width:0}.room-grid--single{grid-template-columns:1fr}.room-card{min-width:0;min-height:330px;padding:1.35rem;border:1px solid var(--room-line);border-radius:8px;background:linear-gradient(180deg,#ffffffd1,#ffffff7a),var(--room-soft);box-shadow:0 22px 54px var(--room-shadow);transition:border-color .2s ease,box-shadow .22s ease,transform .22s ease}.room-card:hover{border-color:var(--room-accent);box-shadow:0 28px 66px var(--room-shadow);transform:translateY(-3px)}.room-card-motion-enter-active,.room-card-motion-leave-active,.room-card-motion-move{transition:opacity .22s ease,transform .26s ease}.room-card-motion-enter-from,.room-card-motion-leave-to{opacity:0;transform:translateY(.8rem) scale(.98)}.room-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3rem;margin-bottom:1.2rem}.room-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;min-width:0}.room-card h2{margin:0;color:var(--room-ink);font-size:1.65rem;font-weight:700;letter-spacing:0;line-height:1.15}.status-pill{display:inline-flex;align-items:center;flex:0 0 auto;gap:.45rem;min-height:1.75rem;padding:0 .62rem;border:1px solid;border-radius:999px;background:#ffffffc7;font-size:.9rem;line-height:1;white-space:nowrap}.status-dot{width:.55rem;height:.55rem;border-radius:999px;background:currentColor;animation:status-pulse 1.8s ease-in-out infinite}@keyframes status-pulse{0%,to{box-shadow:0 0 0 0 currentColor}50%{box-shadow:0 0 0 4px transparent}}.status-pill--idle{color:#16a34a}.status-pill--busy{color:#d97706}.status-pill--maintenance{color:#dc2626}.reserve-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:2.35rem;padding:0 1rem;border:1px solid var(--room-button-border);border-radius:8px;background:var(--room-accent);color:#fff;cursor:pointer;box-shadow:0 14px 30px var(--room-shadow);font:inherit;font-size:.98rem;font-weight:700;transition:box-shadow .18s ease,transform .18s ease;white-space:nowrap}.reserve-button:focus-visible,.reserve-button:hover{box-shadow:0 16px 36px var(--room-shadow);transform:translateY(-1px)}.modal-close:active,.primary-button:active,.reserve-button:active,.secondary-button:active{transform:translateY(0) scale(.97)}.timeline-panel{position:relative;max-width:100%;min-width:0;height:190px;border-radius:8px;background:var(--room-panel);border:1px solid var(--room-line);overflow-x:auto;overflow-y:hidden;scrollbar-color:var(--room-scrollbar) hsla(0,0%,100%,.56);scrollbar-width:thin;transition:border-color .18s ease,box-shadow .22s ease}.timeline-panel:hover{border-color:var(--room-accent);box-shadow:inset 0 0 0 1px var(--room-line)}.timeline-panel::-webkit-scrollbar{height:.6rem}.timeline-panel::-webkit-scrollbar-track{border-radius:999px;background:#ffffff8f}.timeline-panel::-webkit-scrollbar-thumb{border-radius:999px;background:var(--room-scrollbar)}.timeline-canvas{position:relative;width:2400px;height:100%;padding:.75rem 1rem 1rem}.timeline-axis{position:relative;height:2.65rem;margin:0 .35rem .35rem}.timeline-mark{position:absolute;left:var(--mark-left);bottom:0;display:flex;align-items:flex-start;justify-content:center;width:3.9rem;height:100%;color:#063b3d94;line-height:1;white-space:nowrap;pointer-events:none;transform:translate(-50%)}.timeline-mark--start{justify-content:flex-start;transform:translate(0)}.timeline-mark--end{justify-content:flex-end;transform:translate(-100%)}.timeline-mark:before{position:absolute;left:50%;bottom:0;width:1px;height:.52rem;border-radius:999px;background:#063b3d47;content:"";transform:translate(-50%)}.timeline-mark--start:before{left:0;transform:none}.timeline-mark--end:before{left:auto;right:0;transform:none}.timeline-mark span{position:relative;z-index:1;color:#063b3dad}.timeline-mark--half:before{width:1px;height:.9rem;background:#063b3d6b}.timeline-mark--half span{font-size:.82rem;font-weight:600}.timeline-mark--hour:before{width:2px;height:1.25rem;background:var(--room-accent);box-shadow:0 0 0 1px #ffffffb8}.timeline-mark--hour span{color:var(--room-ink);font-size:1rem;font-weight:700}.timeline-track{position:relative;height:116px;background:repeating-linear-gradient(to right,var(--room-line) 0,var(--room-line) 1px,transparent 1px,transparent .34722%),#ffffff6b}.reservation-block,.timeline-track{border:1px solid var(--room-line);border-radius:8px;overflow:hidden}.reservation-block{position:absolute;top:2.15rem;left:var(--reservation-left);z-index:2;width:var(--reservation-width);min-width:4.5rem;height:4.75rem;padding:.65rem 0;background:var(--room-block);box-shadow:0 12px 28px var(--room-shadow);transition:border-color .18s ease,box-shadow .22s ease,transform .22s ease}.reservation-block:hover{border-color:var(--room-accent);box-shadow:0 16px 34px var(--room-shadow);transform:translateY(-2px)}.reservation-motion-enter-active,.reservation-motion-leave-active{transition:opacity .22s ease,transform .26s ease}.reservation-motion-enter-from,.reservation-motion-leave-to{opacity:0;transform:translateY(.75rem) scale(.96)}.reservation-content{position:sticky;left:.75rem;display:grid;align-content:center;gap:.45rem;width:min(18rem,calc(100vw - 4.5rem));max-width:calc(100% - 1.5rem);min-width:0;height:100%;padding-right:.75rem}.reservation-block--maintenance{border-color:#dc26263d;box-shadow:0 12px 28px #dc26261a}.reservation-block--rebroadcast{border-color:#0b39542e;background:#d4f1f4;color:#0b3954;box-shadow:0 12px 28px #0b39541a}.reservation-meta{gap:.45rem}.reservation-meta,.reservation-time{display:flex;align-items:center;min-width:0}.reservation-time{gap:.25rem;color:var(--room-muted);font-size:.82rem;line-height:1;white-space:nowrap}.reservation-time span,.reservation-time time{flex:0 0 auto}.reservation-type{flex:0 0 auto;min-height:1.2rem;padding:.12rem .4rem;border-radius:999px;font-size:.72rem;line-height:1}.reservation-type--class{background:var(--room-badge);color:var(--room-ink)}.reservation-type--maintenance{background:#dc26261f;color:#b91c1c}.reservation-block--rebroadcast .reservation-time,.reservation-block--rebroadcast .reservation-type,.reservation-block--rebroadcast p{color:#0b3954}.reservation-block--rebroadcast .reservation-type{background:#0b39541a}.reservation-block p{min-width:0;margin:0;color:var(--room-ink);font-size:.98rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.current-time{top:0;bottom:0;left:var(--current-left);z-index:5;width:2px;box-shadow:0 0 0 1px #ffffffb8}.current-time,.current-time span{position:absolute;background:var(--color-danger);transform:translate(-50%)}.current-time span{top:.35rem;left:50%;padding:.25rem .4rem;border-radius:6px;color:#fff;font-size:.76rem;line-height:1;white-space:nowrap}.schedule-board{min-width:0}.schedule-toolbar{display:flex;align-items:center;justify-content:flex-end;flex:1 1 auto;flex-wrap:wrap;gap:.55rem;min-width:0;margin-left:auto}.schedule-filter-tabs{display:inline-flex;align-items:center;gap:.25rem;height:var(--board-control-height);padding:.25rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffff94}.schedule-filter-tabs button{height:calc(var(--board-control-height) - .5rem - 2px);min-height:0;padding:0 .88rem;border:0;border-radius:7px;background:transparent;color:#063b3da8;cursor:pointer;font:inherit;font-size:.92rem;transition:background-color .18s ease,color .18s ease,box-shadow .2s ease,transform .18s ease}.schedule-filter-tabs button:focus-visible,.schedule-filter-tabs button:hover{color:var(--color-ink);transform:translateY(-1px)}.schedule-filter-tabs .schedule-filter-tab--active{background:var(--color-primary);color:#fff;box-shadow:0 12px 28px #03c9cd2e}.schedule-filter-select{display:inline-grid;grid-template-columns:auto minmax(9rem,12rem);align-items:center;gap:.45rem;min-width:0}.schedule-filter-select span{color:#063b3d9e;font-size:.86rem}.schedule-filter-select .time-value-picker{width:100%}.schedule-filter-select .time-value-trigger.schedule-filter-button{height:var(--board-control-height);min-height:var(--board-control-height);padding:0 .7rem;background:#ffffffb8}.schedule-filter-select .time-value-popover.schedule-filter-popover{width:min(14rem,calc(100vw - 2rem))}.schedule-filter-select .schedule-filter-popover .time-value-grid{grid-template-columns:1fr;max-height:14rem}.schedule-filter-select .schedule-filter-popover .time-value-option{text-align:left}.schedule-panel{position:relative;max-width:100%;min-width:0;min-height:460px;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:linear-gradient(180deg,#ffffffeb,#ffffffb8),#cffcf675;box-shadow:0 24px 62px #03c9cd26;overflow-x:auto;overflow-y:hidden;scrollbar-color:rgba(3,201,205,.46) hsla(0,0%,100%,.62);scrollbar-width:thin;animation:schedule-panel-in .3s ease both}.schedule-panel:hover{border-color:#03c9cd52;box-shadow:0 28px 68px #03c9cd30}.schedule-panel::-webkit-scrollbar{width:.62rem;height:.62rem}.schedule-panel::-webkit-scrollbar-track{border-radius:999px;background:#ffffff9e}.schedule-panel::-webkit-scrollbar-thumb{border-radius:999px;background:#03c9cd85}.schedule-canvas{position:relative;width:2800px;min-height:calc(var(--schedule-track-height) + 4.45rem);padding:1rem 1.2rem 1.2rem}.schedule-axis{position:sticky;top:0;z-index:7;height:3rem;margin:0 .45rem .55rem;border-bottom:1px solid rgba(3,201,205,.16);background:linear-gradient(180deg,#f8fffdf5,#f8fffddb);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.schedule-mark{position:absolute;left:var(--mark-left);bottom:0;display:flex;align-items:flex-start;justify-content:center;width:4.5rem;height:100%;color:#063b3d94;line-height:1;white-space:nowrap;pointer-events:none;transform:translate(-50%)}.schedule-mark--start{justify-content:flex-start;transform:translate(0)}.schedule-mark--end{justify-content:flex-end;transform:translate(-100%)}.schedule-mark:before{position:absolute;left:50%;bottom:0;width:1px;height:.62rem;border-radius:999px;background:#063b3d47;content:"";transform:translate(-50%)}.schedule-mark--start:before{left:0;transform:none}.schedule-mark--end:before{right:0;left:auto;transform:none}.schedule-mark span{position:relative;z-index:1;color:#063b3dad}.schedule-mark--half:before{width:1px;height:1.05rem;background:#063b3d70}.schedule-mark--half span{font-size:.9rem;font-weight:600}.schedule-mark--hour:before{width:2px;height:1.45rem;background:#03c9cdeb;box-shadow:0 0 0 1px #ffffffc2}.schedule-mark--hour span{color:var(--color-ink);font-size:1.08rem;font-weight:700}.schedule-track{position:relative;height:var(--schedule-track-height);min-height:24rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:repeating-linear-gradient(90deg,rgba(3,201,205,.13) 0,rgba(3,201,205,.13) 1px,transparent 0,transparent .55556%),linear-gradient(180deg,#ffffffb3 0 5.55rem,#cffcf63d 0 11.1rem),#ffffff6b;background-size:auto,auto 11.1rem,auto;overflow:hidden}.schedule-track:before{background:linear-gradient(90deg,hsla(0,0%,100%,.68),transparent 1.25rem,transparent calc(100% - 1.25rem),hsla(0,0%,100%,.68));content:""}.schedule-room-rows,.schedule-track:before{position:absolute;inset:0;z-index:1;pointer-events:none}.schedule-room-row{position:absolute;top:var(--schedule-row-top);right:0;left:0;height:5.55rem;border-bottom:1px solid rgba(3,201,205,.18)}.schedule-room-row span{position:sticky;left:.85rem;z-index:2;display:inline-flex;align-items:center;min-height:1.8rem;margin:.8rem 0 0 .85rem;padding:0 .62rem;border:1px solid rgba(3,201,205,.18);border-radius:999px;background:#ffffffc7;color:#063b3db8;font-size:.82rem;font-weight:700;box-shadow:0 8px 22px #03c9cd1a}.schedule-event{position:absolute;top:var(--schedule-top);left:var(--schedule-left);z-index:2;width:var(--schedule-width);min-width:9.5rem;height:4.55rem;padding:.75rem 0;border:1px solid var(--room-line);border-radius:8px;background:var(--room-block);box-shadow:0 14px 34px var(--room-shadow);overflow:hidden;transition:border-color .18s ease,box-shadow .22s ease,transform .22s ease}.schedule-event:hover{border-color:var(--room-accent);box-shadow:0 18px 42px var(--room-shadow);transform:translateY(-2px)}.schedule-event-content{position:sticky;left:.85rem;display:grid;align-content:center;gap:.5rem;width:min(24rem,calc(100vw - 4.8rem));max-width:calc(100% - 1.7rem);min-width:0;height:100%;padding-right:.85rem}.schedule-event--maintenance{border-color:#dc26263d;box-shadow:0 14px 34px #dc26261a}.schedule-event--rebroadcast{border-color:#0b39542e;background:#d4f1f4;color:#0b3954;box-shadow:0 14px 34px #0b39541a}.schedule-event-meta{display:flex;align-items:center;gap:.45rem;min-width:0;color:var(--room-muted);font-size:.82rem;line-height:1;white-space:nowrap}.schedule-room{flex:0 0 auto;color:var(--room-ink);font-weight:700}.schedule-event-meta time{flex:0 0 auto}.schedule-event h2{min-width:0;margin:0;color:var(--room-ink);font-size:1.02rem;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-event--rebroadcast .reservation-type,.schedule-event--rebroadcast .schedule-event-meta,.schedule-event--rebroadcast .schedule-room,.schedule-event--rebroadcast h2{color:#0b3954}.schedule-event--rebroadcast .reservation-type{background:#0b39541a}.current-time--schedule{z-index:6}.schedule-empty{position:absolute;top:50%;left:50%;margin:0;padding:.8rem 1rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#ffffffc2;color:#063b3d99;transform:translate(-50%,-50%)}@keyframes schedule-panel-in{0%{opacity:0;transform:translateY(.75rem) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .18s ease}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:start center;padding:1rem;overflow-y:auto;overscroll-behavior:contain;background:#063b3d47;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-overflow-scrolling:touch}.modal-fade-enter-active .reservation-modal,.modal-fade-leave-active .reservation-modal{transition:opacity .2s ease,transform .24s ease}.modal-fade-enter-from .reservation-modal,.modal-fade-leave-to .reservation-modal{opacity:0;transform:translateY(1rem) scale(.97)}.reservation-modal{display:flex;flex-direction:column;width:min(720px,100%);max-height:min(calc(100vh - 2rem),780px);max-height:min(calc(100dvh - 2rem),780px);margin:auto 0;overflow:hidden;border:1px solid rgba(3,201,205,.22);border-radius:8px;background:#fffffffa;box-shadow:0 28px 72px #063b3d38}.reservation-modal>:not(.modal-header){flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.reservation-modal--booking{height:auto;overflow:visible}.reservation-modal--booking .reservation-modal-scroll,.reservation-modal--booking>:not(.modal-header){overflow:visible}.reservation-modal-scroll{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.35rem .85rem;border-bottom:1px solid rgba(3,201,205,.16)}.modal-header h2,.modal-header p{margin:0}.modal-header p{color:#063b3d94;font-size:.92rem}.modal-header h2{margin-top:.25rem;color:var(--color-ink);font-size:1.55rem;line-height:1.1}.modal-close{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#cffcf66b;color:var(--color-ink);cursor:pointer;font:inherit;font-size:1.4rem;line-height:1;transition:background-color .18s ease,transform .18s ease}.modal-close:focus-visible,.modal-close:hover{background:#03c9cd24;transform:rotate(6deg)}.reservation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-height:100%;padding:1.2rem 1.35rem 1.35rem}.repair-modal{width:min(560px,100%)}.file-upload-modal{width:min(620px,100%)}.teacher-cloud-modal{width:min(760px,100%)}.room-settings-modal{width:min(560px,100%)}.file-upload-body{display:grid;gap:1rem;padding:1.2rem 1.35rem 1.35rem}.upload-event-summary{display:grid;gap:.28rem;padding:.9rem;border:1px solid rgba(3,201,205,.16);border-radius:8px;background:#cffcf63d}.upload-event-summary strong{color:var(--color-ink);font-size:1.05rem;line-height:1.25;overflow-wrap:anywhere}.upload-event-summary small,.upload-event-summary span{color:#063b3d9e;line-height:1.4}.file-upload-dropzone{position:relative;display:grid;place-items:center;gap:.35rem;min-height:8.2rem;padding:1rem;border:1px dashed rgba(3,201,205,.42);border-radius:8px;background:#cffcf638;color:#063b3dad;cursor:pointer;text-align:center;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.file-upload-dropzone:focus-within,.file-upload-dropzone:hover{border-color:#03c9cdad;background:#cffcf65c;box-shadow:0 0 0 3px #03c9cd1a;transform:translateY(-1px)}.file-upload-dropzone input{position:absolute;inset:0;cursor:pointer;opacity:0}.file-upload-dropzone span{color:var(--color-ink);font-size:1.05rem;font-weight:700}.file-upload-dropzone small{max-width:25rem;color:#063b3d94;line-height:1.45}.selected-upload-list{display:grid;gap:.45rem;max-height:12rem;overflow-y:auto;padding:.35rem;border:1px solid rgba(3,201,205,.12);border-radius:8px;background:#ffffff85}.selected-upload-list div{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.25rem;padding:0 .55rem;border-radius:7px;background:#cffcf63d}.selected-upload-list span{min-width:0;color:var(--color-ink);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-upload-list small{flex:0 0 auto;color:#063b3d94}.upload-cloud-section{display:grid;gap:.75rem;padding:.85rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#cffcf629}.upload-cloud-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.upload-cloud-header h3,.upload-cloud-header p{margin:0}.upload-cloud-header h3{color:var(--color-ink);font-size:1rem;line-height:1.2}.upload-cloud-header p{margin-top:.2rem;color:#063b3d94;font-size:.86rem}.upload-cloud-header .secondary-button{min-height:2.25rem;padding:0 .75rem}.upload-cloud-list{display:grid;gap:.55rem;max-height:16rem;overflow-y:auto;padding:.2rem;scrollbar-color:rgba(3,201,205,.44) rgba(207,252,246,.34);scrollbar-width:thin}.upload-cloud-empty,.upload-cloud-item{min-height:4rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#ffffffad}.upload-cloud-empty{display:grid;place-items:center;color:#063b3d9e;font-weight:700}.upload-cloud-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.55rem;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .22s ease,transform .18s ease}.upload-cloud-item:focus-within,.upload-cloud-item:hover{border-color:#03c9cd6b;background:#ffffffe6;box-shadow:0 12px 28px #03c9cd1a;transform:translateY(-1px)}.upload-cloud-item input{width:1.05rem;height:1.05rem;accent-color:var(--color-primary)}.upload-cloud-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem}.upload-cloud-icon img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.upload-cloud-info{display:grid;gap:.22rem;min-width:0}.upload-cloud-info strong{min-width:0;color:var(--color-ink);font-size:.94rem;line-height:1.22;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-cloud-info small,.upload-cloud-item>span:last-child{color:#063b3d94;font-size:.76rem;font-weight:700;line-height:1.2}.upload-cloud-info small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-cloud-item>span:last-child{white-space:nowrap}.repair-form,.teacher-cloud-panel{display:grid;gap:1rem;padding:1.2rem 1.35rem 1.35rem}.teacher-cloud-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.6rem}.teacher-cloud-toolbar span{min-width:0;color:var(--color-ink);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-cloud-file-list{display:grid;gap:.6rem;max-height:min(44vh,24rem);overflow-y:auto;padding:.35rem;border:1px solid rgba(3,201,205,.12);border-radius:8px;background:#cffcf629;scrollbar-color:rgba(3,201,205,.44) rgba(207,252,246,.34);scrollbar-width:thin}.teacher-cloud-empty,.teacher-cloud-file{min-width:0;min-height:4.6rem;border:1px solid rgba(3,201,205,.14);border-radius:8px;background:#ffffffad}.teacher-cloud-empty{display:grid;place-items:center;color:#063b3d9e;font-weight:700}.teacher-cloud-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.65rem;color:var(--color-ink);cursor:pointer;font:inherit;text-align:left;transition:background-color .18s ease,border-color .18s ease,box-shadow .22s ease,transform .18s ease}.teacher-cloud-file:focus-visible,.teacher-cloud-file:hover{outline:none;border-color:#03c9cd6b;background:#ffffffe6;box-shadow:0 14px 34px #03c9cd1f;transform:translateY(-1px)}.teacher-cloud-file-icon{display:grid;place-items:center;width:3rem;height:3rem}.teacher-cloud-file-icon img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.teacher-cloud-file-info{display:grid;gap:.25rem;min-width:0}.teacher-cloud-file-info strong{min-width:0;color:var(--color-ink);font-size:.98rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-cloud-file-info small,.teacher-cloud-file>span:last-child{color:#063b3d94;font-size:.78rem;font-weight:700;line-height:1.2}.teacher-cloud-file-info small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-cloud-file>span:last-child{white-space:nowrap}.room-settings-form,.room-settings-panel{display:grid;gap:1rem;padding:1.2rem 1.35rem 1.35rem}.room-settings-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.room-setting-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.8rem;min-height:5.1rem;padding:.9rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#cffcf638;color:var(--color-ink);cursor:pointer;font:inherit;text-align:left;transition:background-color .18s ease,border-color .18s ease,box-shadow .22s ease,transform .18s ease}.room-setting-toggle:focus-visible,.room-setting-toggle:hover{outline:none;border-color:#03c9cd75;background:#cffcf661;box-shadow:0 14px 34px #03c9cd24;transform:translateY(-1px)}.room-setting-toggle--active{border-color:#03c9cd94;background:#03c9cd1f;box-shadow:0 0 0 3px #03c9cd1a}.room-setting-toggle-icon{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid rgba(3,201,205,.18);border-radius:8px;background:#ffffffad;color:var(--color-ink)}.room-setting-toggle-icon svg{width:1.65rem;height:1.65rem;fill:currentColor}.room-setting-toggle span:last-child{display:grid;gap:.25rem;min-width:0}.room-setting-toggle strong{color:var(--color-ink);font-size:1rem;line-height:1.15}.room-setting-toggle small{color:#063b3d94;font-size:.82rem;font-weight:700;line-height:1.2}.room-settings-panel .form-feedback{grid-column:1/-1}.form-field,.segmented-field,.time-fieldset{min-width:0}.form-field{display:grid;gap:.45rem}.form-actions,.form-feedback,.form-field--wide{grid-column:1/-1}.form-field span,.segmented-field legend,.time-fieldset legend{color:#063b3dad;font-size:.9rem}.form-field input,.form-field textarea,.time-selects input{width:100%;min-height:2.55rem;border:1px solid rgba(3,201,205,.22);border-radius:8px;background:#cffcf638;color:var(--color-ink);font:inherit;padding:0 .75rem;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.form-field textarea{min-height:7rem;padding:.75rem;line-height:1.45;resize:vertical}.form-field input:focus,.form-field textarea:focus,.time-selects input:focus{outline:none;border-color:#03c9cd94;background:#cffcf657;box-shadow:0 0 0 3px #03c9cd1f}.form-field .time-value-picker{width:100%}.form-field .time-value-trigger.form-value-button{width:100%;min-height:2.55rem;background:#cffcf638}.form-field .time-value-trigger.form-value-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-field .time-value-popover.form-value-popover{width:min(18rem,calc(100vw - 2rem));z-index:75}.form-field .form-value-popover .time-value-grid{grid-template-columns:1fr}.form-field .form-value-popover .time-value-option{text-align:left}.segmented-field,.time-fieldset{margin:0;border:1px solid rgba(3,201,205,.16);border-radius:8px;padding:.75rem}.time-selects{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(5rem,.55fr) minmax(5rem,.55fr);gap:.55rem;align-items:start}.segmented-field{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.segmented-field legend{width:100%;margin-bottom:.2rem}.segmented-field label{display:inline-flex;align-items:center;gap:.35rem;min-height:2rem;padding:0 .65rem;border-radius:8px;background:#cffcf657;color:var(--color-ink);cursor:pointer;transition:background-color .18s ease,transform .18s ease}.segmented-field label:hover{background:#03c9cd1f;transform:translateY(-1px)}.segmented-field input{accent-color:var(--color-primary)}.form-feedback{margin:0;min-height:2.4rem;padding:.65rem .8rem;border-radius:8px;font-size:.96rem}.feedback-pop-enter-active,.feedback-pop-leave-active{transition:opacity .18s ease,transform .22s ease}.feedback-pop-enter-from,.feedback-pop-leave-to{opacity:0;transform:translateY(-.35rem)}.form-feedback--success{background:#16a34a1f;color:#15803d}.form-feedback--error{background:#dc26261f;color:#b91c1c}.form-actions{display:flex;justify-content:flex-end;gap:.65rem}.danger-button,.primary-button,.secondary-button{min-height:2.55rem;border-radius:8px;cursor:pointer;font:inherit;padding:0 1rem;text-align:center;transition:box-shadow .18s ease,background-color .18s ease,transform .18s ease}.primary-button{border:1px solid rgba(3,201,205,.32);background:var(--color-primary);color:#fff}.secondary-button{border:1px solid rgba(3,201,205,.2);background:#ffffffc2;color:#063b3dc2}.danger-button{border:1px solid rgba(239,68,68,.28);background:#ef44441a;color:#b91c1c}.primary-button:focus-visible,.primary-button:hover{box-shadow:0 12px 28px #03c9cd38;transform:translateY(-1px)}.primary-button--danger{border-color:#ef444457;background:var(--color-danger)}.primary-button--danger:focus-visible,.primary-button--danger:hover{box-shadow:0 12px 28px #ef444438}.danger-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.secondary-button:focus-visible,.secondary-button:hover{background:#cffcf66b;transform:translateY(-1px)}.danger-button:focus-visible,.danger-button:hover{background:#ef444429;box-shadow:0 12px 28px #ef444429;transform:translateY(-1px)}@media(max-width:760px){.app-shell{--nav-offset:112px}.modal-backdrop--booking{display:block;padding:0;overflow:hidden;touch-action:none}.reservation-modal--booking{position:fixed;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100vh;height:100dvh;max-height:none;margin:0;overflow:hidden;border-width:0;border-radius:0}.reservation-modal--booking .modal-header{min-height:0;padding:max(.9rem,env(safe-area-inset-top)) 1rem .75rem}.reservation-modal--booking .modal-header h2{font-size:1.28rem}.reservation-modal--booking .reservation-modal-scroll{height:auto;min-height:0;overflow-x:hidden;overflow-y:scroll;touch-action:pan-y}.reservation-modal--booking .reservation-form{gap:.85rem;min-height:auto;padding:1rem 1rem max(1.35rem,env(safe-area-inset-bottom))}.site-nav{align-items:stretch;flex-wrap:wrap;gap:.45rem;width:min(var(--content-width),calc(100% - var(--page-gutter)*2));min-height:0;padding:.45rem;border-radius:22px}.nav-left{flex:1 1 auto;gap:.35rem}.repair-link{min-height:2rem;padding:0 .78rem}.nav-center{order:3;justify-content:space-between;flex-basis:100%;overflow-x:auto;padding-bottom:.05rem}.nav-center a{flex:1 0 auto;min-width:5.5rem;padding:0 .65rem}.page-shell{min-height:100vh;padding:calc(var(--nav-offset) + 2rem) var(--page-gutter) 3rem}.board-loader{padding-top:calc(var(--nav-offset) + 1.5rem)}.board-loader-mark{width:4.8rem;height:4.8rem}.room-settings-panel{grid-template-columns:1fr}.room-display-page{padding-bottom:15.5rem}.room-display-dock-area{bottom:1.4rem;gap:.75rem}.room-dock-row{align-items:center;gap:.65rem;width:100%}.room-app-dock{flex:1 1 auto}.room-system-bar{flex:0 0 auto}.teacher-cloud-file{grid-template-columns:auto minmax(0,1fr)}.teacher-cloud-file>span:last-child{grid-column:2}.upload-cloud-header{align-items:stretch;flex-direction:column}.upload-cloud-header .secondary-button{width:100%}.upload-cloud-item{grid-template-columns:auto auto minmax(0,1fr)}.upload-cloud-item>span:last-child{grid-column:3}.ndi-control-bar,.ndi-header{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.ndi-header h1{font-size:2rem}.ndi-status{max-width:100%;border-radius:8px;padding:.55rem .75rem}.ndi-video-frame{min-height:220px}.cloud-control-panel,.cloud-header,.cloud-upload-form,.cloud-upload-row{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.cloud-panel-block,.cloud-upload-form{padding:.85rem}.cloud-teacher-select .time-value-popover.cloud-teacher-popover{width:min(22rem,calc(100vw - 2rem))}.cloud-upload-button{min-height:2.75rem;width:100%}.cloud-file-grid{grid-template-columns:1fr}.cloud-file-actions{justify-content:stretch}.cloud-file-actions .danger-button,.cloud-file-actions .secondary-button{flex:1 1 0}.board-controls{align-items:stretch}.board-tabs{display:flex;flex:1 1 14rem}.board-tabs button{flex:1 1 0;padding:0 .65rem}.board-controls .date-picker{flex:1 1 12rem}.board-controls .date-button{width:100%}.calendar-popover{width:min(18rem,calc(100vw - 2rem));min-width:min(15rem,calc(100vw - 2rem))}.room-grid{grid-template-columns:1fr}.room-card{min-height:0;padding:1rem}.timeline-panel{height:178px}.timeline-canvas{width:1920px;padding:.8rem .75rem .9rem}.timeline-axis{height:2.4rem;margin-inline:.25rem}.timeline-mark{width:3.3rem}.timeline-mark--hour span{font-size:.92rem}.timeline-mark--half span{font-size:.76rem}.reservation-block{top:2rem;min-width:4rem;height:4.4rem;padding:.55rem 0}.reservation-content{left:.6rem;width:min(16rem,calc(100vw - 3.6rem));max-width:calc(100% - 1.2rem);padding-right:.6rem}.reservation-time{font-size:.74rem}.reservation-meta{gap:.35rem}.reservation-type{font-size:.68rem}.reservation-block p{font-size:.9rem}.reservation-form,.time-selects{grid-template-columns:1fr}}@media(max-width:420px){.board-link{gap:.45rem}.board-link span:last-child{font-size:.98rem}.board-mark{width:1.9rem;height:1.9rem}.home-link{padding:0 .7rem}.repair-link{font-size:.92rem}.room-card-header{align-items:flex-start;flex-direction:column;gap:.65rem}.room-card h2{font-size:1.45rem}.reserve-button{min-height:2.2rem;padding:0 .85rem}.view-toggle{width:var(--board-control-height);height:var(--board-control-height)}.timeline-canvas{width:1680px;padding-inline:.55rem}.timeline-mark{width:2.9rem;font-size:.76rem}.timeline-mark--hour span{font-size:.84rem}.timeline-mark--half span{font-size:.7rem}.reservation-block{min-width:3.45rem;padding:.5rem 0}.reservation-content{left:.5rem;width:min(14rem,calc(100vw - 3rem));max-width:calc(100% - 1rem);padding-right:.5rem}.reservation-time{font-size:.68rem}.reservation-meta{gap:.25rem}.reservation-type{padding-inline:.32rem;font-size:.64rem}.reservation-block p{font-size:.82rem}}@media(max-width:860px){.invite-file-grid,.invite-summary{grid-template-columns:1fr}.invite-file-block:first-child{grid-row:auto}.invite-room-row,.invite-section-heading{grid-template-columns:1fr}}@media(max-width:560px){.invite-header{align-items:stretch;flex-direction:column}.invite-header>span{width:-moz-max-content;width:max-content;max-width:100%}.invite-file-card,.invite-select-card{grid-template-columns:1fr}}
