:root{--bg: #1e1e1e;--bg-strong: #181818;--panel: #252526;--panel-alt: #2d2d30;--border: #3c3c3c;--border-strong: #323233;--text: #d4d4d4;--text-strong: #f3f4f6;--muted: #9da5b4;--muted-strong: #7f8794;--accent: #0f6fb2;--accent-strong: #0c5f97;--surface-hover: #2a2d2e;--input-bg: #2a2d2e;--button-bg: #252526;--topbar-bg: #0f6fb2;--shadow-soft: 0 16px 38px rgba(0,0,0,.32);--danger: #ef4444;--danger-strong: #dc2626}[data-theme=light]{--bg: #f3f7fb;--bg-strong: #ffffff;--panel: #ffffff;--panel-alt: #edf3f9;--border: #d7e0ea;--border-strong: #c9d4e1;--text: #172033;--text-strong: #0d1728;--muted: #5b6474;--muted-strong: #6f7a8d;--accent: #0e639c;--accent-strong: #0b537f;--surface-hover: #edf3f9;--input-bg: #ffffff;--button-bg: #edf3f9;--topbar-bg: #0e639c;--shadow-soft: 0 16px 38px rgba(23, 32, 51, .1);--danger: #ef4444;--danger-strong: #b91c1c}html,body,#root{height:100%;width:100%;margin:0;padding:0}body{font-family:Segoe UI,sans-serif;background-color:var(--bg);color:var(--text);font-size:.85rem;line-height:1.45}.app-shell{display:flex;min-height:100vh;background-color:var(--bg)}.sidebar{width:130px;background:var(--panel);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;transition:width .2s ease}.sidebar.collapsed{width:35px;padding:1.25rem .5rem}.sidebar.collapsed .sidebar-logo-text,.sidebar.collapsed .nav-group-header,.sidebar.collapsed .nav-label{display:none}.sidebar-logo{display:flex;align-items:center;gap:.5rem}.icon-button{width:32px;height:32px;border-radius:.35rem;border:1px solid var(--border);background:var(--input-bg);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:var(--surface-hover)}.icon-button.hamburger{padding:0}.hamburger-lines{display:flex;flex-direction:column;justify-content:center;gap:4px}.hamburger-lines span{display:block;width:16px;height:2px;border-radius:4px;background:var(--text)}.sidebar-logo-text{font-weight:600;font-size:1.1rem}.sidebar-nav{margin-top:1.5rem;display:flex;flex-direction:column;gap:.35rem}.nav-item{width:100%;text-align:left;padding:.15rem .75rem;border-radius:.5rem;border:none;background:transparent;color:var(--text);font-size:.9rem;cursor:pointer}.nav-item:hover{background:var(--surface-hover)}.nav-item.active{background:#0e639c24;border:1px solid var(--accent)}.sidebar.collapsed .nav-item.active,.sidebar.collapsed .nav-group-toggle.active{background:transparent;border-color:transparent}.nav-group{margin-top:.5rem}.nav-group-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-strong);margin:.35rem 0 .15rem}.nav-group-toggle{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:.25rem;padding:.35rem .6rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--muted-strong);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.nav-group-toggle:hover{background:var(--surface-hover);color:var(--text)}.nav-group-toggle.active{color:var(--text);border-color:var(--border);background:var(--surface-hover)}.nav-group-title{text-align:left}.nav-group-caret{font-size:.85rem;color:var(--muted-strong)}.nav-group-items{margin-top:.15rem;display:flex;flex-direction:column;gap:.25rem}.sidebar.collapsed .nav-group-title,.sidebar.collapsed .nav-group-caret{display:none}.nav-item.sub{padding-left:1.5rem;font-size:.85rem}.app-main{flex:1;display:flex;flex-direction:column;min-height:100vh;width:100%}.topbar{height:56px;border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;background:var(--topbar-bg)}.topbar-left{display:flex;align-items:center;gap:.85rem}.topbar-title{font-size:.78rem;font-weight:600;margin:0;color:var(--text-strong)}.topbar-right{font-size:.78rem;color:var(--muted);display:flex;align-items:center}.user-menu{position:relative}.user-chip{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#ffffff29;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.user-chip:hover{filter:brightness(1.1)}.user-menu-popover{position:absolute;top:110%;right:0;min-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:.75rem;padding:.75rem;box-shadow:var(--shadow-soft);z-index:20}.user-menu-header{margin-bottom:.5rem}.user-menu-name{font-weight:600;color:var(--text-strong);font-size:1rem}.user-menu-role{color:var(--muted);font-size:.9rem}.user-menu-actions{display:flex;flex-direction:column;gap:.5rem}.menu-action{display:flex;align-items:center;justify-content:space-between;width:100%;border-radius:.6rem;border:1px solid var(--border);background:var(--panel-alt);color:var(--text);padding:.55rem .75rem;cursor:pointer;font-size:.78rem}.menu-action:hover{background:var(--surface-hover)}.menu-action-pill{padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--panel);font-size:.75rem}.menu-action.danger{color:#ef4444;border-color:#ef4444;background:#ef444414}.menu-action.danger:hover{background:#ef444424}.app-content{flex:1;padding:1.5rem;overflow-y:auto;width:100%;box-sizing:border-box}.placeholder-card{max-width:520px;background:var(--bg-strong);border-radius:.75rem;border:1px solid var(--border);padding:1.5rem;box-shadow:var(--shadow-soft)}.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:1rem;align-items:start}.overview-card{background:var(--bg-strong);border:1px solid var(--border);border-radius:.75rem;padding:1rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.75rem;height:100%;max-height:360px;overflow:hidden;min-height:0}.overview-card.full-span{grid-column:1 / -1}.overview-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.overview-card-title{font-weight:700;color:var(--text-strong)}.overview-card-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.75rem}.overview-card-subtitle{color:var(--muted);font-size:.9rem}.overview-card-subsection{text-transform:uppercase;color:var(--muted-strong);font-size:.7rem;letter-spacing:.08em}.overview-list{display:flex;flex-direction:column;gap:.4rem}.overview-row{display:flex;align-items:center;gap:.5rem}.overview-dot{width:10px;height:10px;border-radius:999px;background:var(--accent);flex-shrink:0}.overview-row-text{color:var(--text);font-size:.85rem}.overview-stat-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--panel)}.overview-stat-label{color:var(--muted);font-size:.78rem}.overview-stat-value{font-weight:700;color:var(--text-strong);font-size:1rem}.overview-status{display:flex;align-items:center;gap:.6rem}.status-pill{padding:.25rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:.85rem;color:var(--text)}.status-pill.ok{color:#bbf7d0;border-color:#22c55e;background:#22c55e14}.status-pill.warn{color:#fcd34d;border-color:#f59e0b;background:#f59e0b1a}.status-pill.error{color:#fca5a5;border-color:#ef4444;background:#ef44441f}.overview-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.overview-meta{color:var(--muted);font-size:.85rem}.card-error{color:#fca5a5;font-size:.78rem}.message-form{display:flex;flex-direction:column;gap:.5rem}.message-textarea{min-height:90px;resize:vertical}.message-list{display:flex;flex-direction:column;gap:.6rem;max-height:none}.message-item{border:1px solid var(--border);border-radius:.6rem;padding:.65rem .75rem;background:var(--panel)}.welcome-snippet{position:relative;max-height:160px;overflow:hidden}.welcome-snippet:after{content:"";position:absolute;left:0;right:0;bottom:0;height:50px;pointer-events:none;background:linear-gradient(180deg,rgba(30,30,30,0) 0%,var(--bg-strong) 100%)}.message-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.message-author{font-weight:700;color:var(--text-strong)}.message-meta{color:var(--muted);font-size:.72rem}.message-body{color:var(--text);white-space:pre-wrap}.input{width:100%;padding:2px 6px;border-radius:.4rem;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:12px;height:38px;box-sizing:border-box;line-height:1.2}.input::placeholder{color:var(--muted)}.select{padding:2px 6px;border-radius:.4rem;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:12px;height:38px;box-sizing:border-box}.button{padding:.4rem .75rem;border-radius:.4rem;border:1px solid var(--border);background:var(--button-bg);color:var(--text);font-size:.78rem;cursor:pointer;height:38px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.button:hover{background:var(--surface-hover)}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.danger{background:var(--danger);border-color:var(--danger-strong);color:#fff}.button.danger:hover{background:var(--danger-strong)}.button.subtle{background:var(--panel);color:var(--text);border-color:var(--border)}.button.subtle:hover{background:var(--surface-hover)}.controls-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:1rem}.registry-controls{position:relative;top:auto;left:auto;right:auto;margin:0 0 12px;width:100%;align-items:flex-end;gap:12px;justify-content:space-between;flex-wrap:nowrap}.registry-left{display:flex;align-items:flex-end;gap:10px;flex:1 1 540px;min-width:420px;max-width:640px}.registry-right{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex:0 1 420px;min-width:340px}@media(max-width:1100px){.registry-controls{flex-wrap:wrap;gap:8px}.registry-left,.registry-right{flex:1 1 100%;min-width:0;justify-content:space-between}.registry-right{justify-content:flex-end}.registry-search{flex:1 1 60%;min-width:260px}.search-bar-row{flex-wrap:wrap;row-gap:6px;align-items:flex-start}.search-bar-row .input{flex:1 1 240px;min-width:0}.control-subgroup{min-width:150px}.controls-bar.registry-controls .button,.search-bar-row .button{height:34px;padding:.3rem .6rem;font-size:.83rem}}.control-group{display:flex;flex-direction:column;gap:6px}.control-label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.button-row{display:flex;gap:8px;align-items:center}.control-sublabel{font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-strong)}.search-bar.control-group{margin:0;gap:4px}.search-bar .control-label{margin:0}.search-bar-row{align-items:flex-end}.search-bar-row{display:flex;gap:8px;align-items:flex-end}.date-range-row{display:flex;gap:8px;align-items:center}.search-bar-row .input{min-width:220px}.search-bar-row .select{min-width:140px}.search-bar-row .button{height:38px}.control-subgroup{display:flex;flex-direction:column;gap:4px}.date-range-row .input{min-width:150px}.date-range-row .divider{color:var(--muted-strong);font-size:.85rem;margin:0 4px}.table-card{width:100%;background:var(--bg-strong);border-radius:.75rem;border:1px solid var(--border);overflow:hidden;box-shadow:0 10px 30px #00000040;margin-bottom:8px}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table thead{background:var(--panel-alt);box-shadow:none}.table th,.table td{padding:.65rem .85rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border-strong);text-align:left}.table th:last-child,.table td:last-child{border-right:none}.table th{font-weight:600;color:var(--text-strong);position:sticky;top:0;z-index:2;background:var(--panel-alt)}.table th.sortable{cursor:pointer}.table th.sortable:hover{background:var(--surface-hover)}.table td{color:var(--text)}.table-empty{padding:1rem .75rem;color:var(--muted)}.manage-table{width:100%;border-collapse:collapse;margin-top:.25rem;font-size:.85rem}.manage-table th,.manage-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border-strong);padding:.55rem .75rem;text-align:left;color:var(--text)}.manage-table th{background:var(--panel);font-weight:600;color:var(--text-strong)}.manage-table td:last-child,.manage-table th:last-child{border-right:none}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.modal-snackbar{background:#0e639c1a;border:1px solid var(--accent);color:var(--accent);padding:.55rem .75rem;border-radius:.5rem}.modal-snackbar.success{background:#22c55e14;border-color:#22c55e;color:#22c55e}.modal-snackbar.error{background:#ef44441a;border-color:#ef4444;color:#ef4444}.secondary-modal-backdrop .modal-card{display:flex;flex-direction:column;gap:.75rem}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{width:min(900px,90vw);max-height:90vh;background:var(--panel);border:1px solid var(--border);border-radius:.75rem;padding:1rem;box-shadow:0 20px 50px #0006;display:flex;flex-direction:column;gap:.75rem}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.modal-title{font-size:1.1rem;font-weight:600;color:var(--text-strong)}.modal-subtitle{color:var(--muted);font-size:.85rem}.tab-row{display:flex;gap:8px}.tab{padding:.4rem .75rem;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:.4rem;cursor:pointer}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.registry-search-group{background:transparent;border:none;border-radius:0;padding:0;display:flex;flex-direction:column;gap:8px}@media(max-width:1100px){.registry-search-group{width:100%}}.modal-section{background:var(--bg-strong);border:1px solid var(--border);border-radius:.5rem;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.manual-rows{display:flex;flex-direction:column;gap:.75rem;max-height:45vh;overflow-y:auto}.manual-row{border:1px solid var(--border);border-radius:.5rem;padding:.75rem;background:var(--panel);display:flex;flex-direction:column;gap:.5rem}.manual-row-label{font-weight:600;color:var(--text-strong)}.manual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem}.manual-field{display:flex;flex-direction:column;gap:4px}.manual-row-actions{display:flex;justify-content:flex-end}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-error{background:#ef44441f;color:#fca5a5;padding:.5rem .75rem;border-radius:.4rem;border:1px solid #ef4444}.hint{color:var(--muted);font-size:.78rem}.page-titlebar{background:var(--bg-strong);border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem;font-weight:600;color:var(--text-strong);margin-bottom:1rem}.calendar-shell{display:grid;grid-template-columns:1.8fr 1fr;grid-template-areas:"calendar sidebar";gap:1rem;align-items:start}.calendar-left{grid-area:calendar;display:flex;flex-direction:column;gap:1rem}.calendar-header{display:flex;align-items:center;gap:.5rem}.calendar-month{font-weight:600;color:var(--text-strong);flex:1;padding-left:.5rem}.calendar-grid{background:var(--bg-strong);border:1px solid var(--border);border-radius:.6rem;display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:.5rem}.calendar-day-name{text-align:center;font-size:.8rem;color:var(--muted);padding:.35rem 0}.calendar-cell{min-height:80px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:.4rem;padding:.4rem;text-align:left;position:relative;cursor:pointer}.calendar-cell:hover{background:var(--surface-hover)}.calendar-cell.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.calendar-cell.today{border-color:var(--muted)}.calendar-cell.empty{background:transparent;border:none;cursor:default}.calendar-day-number{font-weight:600;font-size:.95rem}.calendar-dot{position:absolute;width:10px;height:10px;border-radius:999px;background:var(--accent);bottom:6px;right:6px}.calendar-panel{background:var(--bg-strong);border:1px solid var(--border);border-radius:.6rem;padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.calendar-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.calendar-panel-title{font-weight:600;color:var(--text-strong)}.calendar-form{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--border);border-radius:.5rem;padding:.75rem;background:var(--panel)}.calendar-form-row{display:flex;align-items:center;gap:.5rem}.calendar-color{width:48px;height:32px;padding:0;border:1px solid var(--border);border-radius:.4rem;background:transparent}.event-list{display:flex;flex-direction:column;gap:.5rem}.event-item{display:flex;align-items:center;gap:.6rem;padding:.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--panel)}.event-badge{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.event-content{flex:1;display:flex;flex-direction:column;gap:2px}.event-title{font-weight:600;color:var(--text)}.event-meta{color:var(--muted);font-size:.85rem}.calendar-sidebar{grid-area:sidebar;background:var(--bg-strong);border:1px solid var(--border);border-radius:.6rem;padding:.75rem;display:flex;flex-direction:column;gap:1rem}.calendar-sidebar-lists{display:flex;flex-direction:column;gap:1rem}.calendar-sidebar-section{display:flex;flex-direction:column;gap:.4rem}.calendar-sidebar-title{font-weight:700;color:var(--text-strong)}.sidebar-row{display:flex;gap:.5rem;align-items:center}.sidebar-pill{width:10px;height:10px;border-radius:999px;background:var(--accent)}.sidebar-text{color:var(--text)}@media(max-width:1024px){.calendar-shell{grid-template-columns:1fr;grid-template-areas:"calendar" "sidebar"}.calendar-sidebar{order:2}.calendar-sidebar-lists{margin-top:auto}}.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.template-card{background:var(--bg-strong);border:1px solid var(--border);border-radius:.6rem;padding:.75rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.6rem}.template-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.template-title-group{display:flex;flex-direction:column;gap:.15rem}.template-title{font-weight:700;color:var(--text-strong)}.template-subtitle{color:var(--muted);font-size:.85rem}.template-pill{padding:.25rem .55rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--panel);font-size:.8rem}.template-actions{display:flex;gap:.5rem;flex-wrap:wrap}.template-empty{grid-column:1 / -1;border:1px dashed var(--border);border-radius:.6rem;padding:1rem;color:var(--muted);text-align:center;background:var(--panel)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,rgba(15,111,178,.18),transparent 32%),linear-gradient(180deg,var(--bg) 0%,var(--bg-strong) 100%)}.login-card{background:var(--bg-strong);border-radius:.75rem;border:1px solid var(--border);padding:2rem;width:100%;max-width:460px;align-self:center;box-shadow:0 20px 50px #0006}.login-card h1{margin:0 0 .25rem}.login-subtitle{margin:0 0 1.5rem;color:var(--muted);font-size:.9rem}.login-label{display:block;margin-bottom:.75rem;font-size:.85rem}.login-error{background:#ef44441f;color:#fca5a5;padding:.4rem .6rem;border-radius:.4rem;font-size:.8rem;margin-bottom:.75rem}._tableViewport_1a3oo_1{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:var(--data-table-viewport-height, 100%);width:100%;min-width:0;max-width:100vw;overflow:hidden}._tableHeader_1a3oo_13{flex:0 0 auto;min-height:0}._tableBody_1a3oo_18{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;min-width:0;width:100%}._tableCard_1a3oo_28{background:var(--bg-strong);border-radius:.75rem;border:1px solid var(--border);box-shadow:none;margin-bottom:0;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:100%;width:100%;overflow:hidden;min-width:0}._dataGridShell_1a3oo_44{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;min-width:0}._dataGridContainer_1a3oo_53{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;min-width:0;height:100%}._dataGridContainer_1a3oo_53 .MuiDataGrid-root{flex:1 1 auto;min-height:0;min-width:0;height:100%;font-size:12px}._dataGridContainer_1a3oo_53 .MuiDataGrid-virtualScroller{overflow:auto}._floatingRowAction_1a3oo_76{position:absolute;right:8px;transform:translateY(-50%);z-index:3;pointer-events:none}._floatingRowAction_1a3oo_76 .MuiIconButton-root{pointer-events:auto;background:#fffffff5;border:1px solid var(--border);box-shadow:0 6px 18px #0f172a1f}._floatingRowAction_1a3oo_76 .MuiIconButton-root:hover{background:#fff}._dataGridHeaderCell_1a3oo_95{display:flex;justify-content:space-between;align-items:center;gap:8px}._dataGridFilterCell_1a3oo_102{display:inline-flex}._dataGridOverlay_1a3oo_106{padding:1rem;color:var(--muted)}._dataGridActiveRow_1a3oo_111,._dataGridActiveRow_1a3oo_111 .MuiDataGrid-cell{background-color:#f0f4ff}._tableFooter_1a3oo_119{position:sticky;bottom:0;display:flex;justify-content:center;align-items:center;gap:6px;padding:.4rem .6rem;border-top:1px solid var(--border);background:var(--bg-strong);z-index:2;flex-shrink:0}._tableFooterPage_1a3oo_133{font-weight:600;min-width:72px;text-align:center}._registryViewport_18e66_1{height:86vh;display:flex;flex-direction:column;overflow:hidden;min-height:0;max-width:100vw;width:100%}._registryHeader_18e66_11{flex:0 0 auto;min-height:0}._registryBody_18e66_16{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;min-width:0;width:100%}._courseTabsRow_18e66_26{display:flex;gap:12px;margin-bottom:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}._courseTabs_18e66_26{display:flex;gap:8px;background:var(--panel);padding:6px;border-radius:6px;border:1px solid var(--border)}._courseTabButton_18e66_44{padding:8px 14px;border-radius:4px;background:transparent;color:var(--text);border:none;cursor:pointer;font-weight:600}._courseTabButton_18e66_44:hover{background:var(--surface-hover)}._courseTabButtonActive_18e66_58{background:var(--accent);color:#fff}._registryControls_18e66_63{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}._registryHeaderActions_18e66_70{display:flex;align-items:center;gap:8px}._registryEditorPanel_18e66_76{width:min(100vw,420px);height:100%;padding:20px;display:flex;flex-direction:column;gap:16px}._registryEditorHeader_18e66_85{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}._registryEditorForm_18e66_92{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px}._registryEditorActions_18e66_101{display:flex;justify-content:flex-end;gap:8px}@media(max-width:1100px){._courseTabsRow_18e66_26{gap:8px}._registryControls_18e66_63{width:100%}}.witnessing-page{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.witnessing-row{display:flex;gap:16px}.witnessing-period-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;width:100%}.witnessing-period-controls-left,.witnessing-period-controls-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.witnessing-period-controls-right{justify-content:flex-end}.witnessing-period-indicator{align-items:center;display:flex;justify-content:center;min-width:0}.witnessing-period-indicator-text{font-size:32px;font-weight:700;line-height:1.1;color:var(--text-strong);white-space:nowrap}.witnessing-period-today{min-height:40px;padding-inline:14px;border-radius:12px;color:var(--text-strong);background:var(--button-bg);border:1px solid var(--border)}.witnessing-period-today:hover{background:var(--surface-hover)}.witnessing-select-control{min-width:150px}.witnessing-year-button,.witnessing-month-button{border-radius:12px;background:var(--input-bg);color:var(--text)}.witnessing-year-button .MuiOutlinedInput-notchedOutline,.witnessing-month-button .MuiOutlinedInput-notchedOutline{border-color:var(--border)}.witnessing-year-button:hover .MuiOutlinedInput-notchedOutline,.witnessing-month-button:hover .MuiOutlinedInput-notchedOutline,.witnessing-year-button.Mui-focused .MuiOutlinedInput-notchedOutline,.witnessing-month-button.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--accent)}.witnessing-year-button .MuiSelect-icon,.witnessing-month-button .MuiSelect-icon,.witnessing-year-button .MuiInputLabel-root,.witnessing-month-button .MuiInputLabel-root{color:var(--muted)}.witnessing-month-strip{min-width:170px}.witnessing-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 192px}.witnessing-left{display:flex;flex-direction:column;gap:8px}.witnessing-calendar{background:var(--bg-strong);border:1px solid var(--border);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-soft)}.witnessing-calendar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.witnessingCalendarWrap{max-height:620px;overflow:auto}.witnessingCalendarWrap .fc{height:auto}.witnessingCalendarWrap .fc .fc-scrollgrid,.witnessingCalendarWrap .fc .fc-daygrid-body,.witnessingCalendarWrap .fc .fc-daygrid-body>table{height:auto}.witnessingCalendarWrap .fc .fc-scrollgrid-section-body{height:auto}.witnessingCalendarWrap .fc .fc-daygrid-day-frame{min-height:0;padding:4px}.witnessingCalendarWrap .fc .fc-daygrid-day-number{font-size:13px;font-weight:700;padding:4px 6px;color:var(--text)}.witnessingCalendarWrap .fc .fc-daygrid-event{margin-top:4px}.witnessingCalendarWrap .fc .fc-h-event .fc-event-main{color:inherit}.witnessingCalendarWrap .fc .fc-daygrid-day-events{margin-top:2px;margin-bottom:0}.witnessingCalendarWrap .fc .fc-daygrid-event-harness{margin-top:0}.witnessingCalendarWrap .fc .fc-button{background:var(--button-bg);border:1px solid var(--border);color:var(--text);box-shadow:none}.witnessingCalendarWrap .fc .fc-button:hover,.witnessingCalendarWrap .fc .fc-button:focus,.witnessingCalendarWrap .fc .fc-button:active{background:var(--surface-hover);border-color:var(--accent);box-shadow:none}.witnessingCalendarWrap .fc .fc-button-primary:not(:disabled).fc-button-active{background:color-mix(in srgb,var(--accent) 18%,var(--button-bg));border-color:var(--accent);color:var(--text-strong)}.witnessing-period-controls-right .MuiButton-root{min-width:144px}.witnessingCalendarWrap .fc .fc-col-header-cell{background:var(--panel-alt)}.witnessingCalendarWrap .fc .fc-col-header-cell-cushion{padding:10px 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.witnessingCalendarWrap .fc-theme-standard td,.witnessingCalendarWrap .fc-theme-standard th{border-color:var(--border)}.witnessingCalendarWrap .fc .fc-daygrid-day.fc-day-today{background:#0f6fb21f}.witnessingCalendarWrap .fc .fc-day-other .fc-daygrid-day-number{color:var(--muted)}.witnessing-error{color:#dc2626;font-size:13px}.witnessing-panel{border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px}.witnessing-panel-header{display:flex;align-items:center;justify-content:space-between}.witnessing-allocation-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.witnessing-allocation-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#0000000a;background:color-mix(in srgb,currentColor 8%,transparent)}.witnessing-allocation-counts{display:flex;gap:16px;text-align:right}.witnessing-allocation-table{gap:4px}.witnessing-allocation-table-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:8px}.witnessing-allocation-cell{min-width:0;font-size:12px!important;line-height:1.2!important;white-space:nowrap}.witnessing-allocation-name{font-weight:700!important;overflow:hidden;text-overflow:ellipsis}.witnessing-allocation-ratio{font-weight:700!important;text-align:right}.witnessing-allocation-percent{min-width:34px;text-align:right;color:var(--muted)}.witnessing-drawer{width:min(420px,100vw);padding:24px;display:flex;flex-direction:column;gap:16px}.witnessing-drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.witnessing-witness-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.witnessing-editor{display:flex;flex-direction:column;gap:16px;height:100%}.witnessing-editor-witnesses{display:flex;flex-direction:column;gap:12px}.witnessing-editor-witness-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;background:#0000000a;background:color-mix(in srgb,currentColor 6%,transparent)}.witnessing-editor-witness-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.witnessing-editor-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:auto;padding-top:16px}.witnessing-totals{display:flex;flex-direction:column;gap:4px}.witnessing-event-item{border-radius:8px;padding:0;border:1px solid #2563eb!important;color:#0f172a!important;box-shadow:none}.witnessing-event-item .fc-event-main{color:inherit!important}.witnessing-event-item.is-assigned{background:linear-gradient(180deg,#dbeafef5,#bfdbfef5)!important}.witnessing-event-item.is-unassigned{background:transparent!important;color:#1d4ed8!important}.witnessing-event-item.is-closed{border-color:#64748b!important}.witnessing-event-item.is-closed.is-assigned{background:linear-gradient(180deg,#e2e8f0f5,#cbd5e1f5)!important;opacity:.88}.witnessing-event-item.is-closed.is-unassigned{background:transparent!important;color:#475569!important;opacity:.88}.witnessing-event-item.is-cancelled{border-color:#dc2626!important}.witnessing-event-item.is-cancelled.is-assigned{background:linear-gradient(180deg,#fee2e2fa,#fca5a5f5)!important;opacity:.92}.witnessing-event-item.is-cancelled.is-unassigned{background:transparent!important;color:#b91c1c!important;opacity:.92}.witnessing-event-item.is-full{border-color:#dc262680!important}.witnessing-event-card{display:block;padding:4px 6px;min-width:0}.witnessing-event-time{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:11px;line-height:1.15;color:inherit}[data-theme=dark] .witnessing-event-item{border-color:#7db1e4bf!important;box-shadow:none}[data-theme=dark] .witnessing-event-item.is-assigned{background:linear-gradient(180deg,#1a3f5ce6,#16344ceb)!important;color:#e8f4ff!important}[data-theme=dark] .witnessing-event-item.is-unassigned{background:transparent!important;color:#9cdcfe!important}[data-theme=dark] .witnessing-event-item.is-closed.is-assigned{background:linear-gradient(180deg,#3e444df0,#31373ff5)!important}[data-theme=dark] .witnessing-event-item.is-closed.is-unassigned{background:transparent!important;color:#cbd5e1!important}[data-theme=dark] .witnessing-event-item.is-cancelled.is-assigned{background:linear-gradient(180deg,#642424f0,#4e1e1ef5)!important}[data-theme=dark] .witnessing-event-item.is-cancelled.is-unassigned{background:transparent!important;color:#fca5a5!important}@media(max-width:900px){.witnessing-body{grid-template-columns:1fr}.witnessing-period-controls,.witnessing-period-controls-left,.witnessing-period-controls-right,.witnessing-calendar-row{align-items:stretch}.witnessing-period-controls{grid-template-columns:1fr}.witnessing-period-controls-right,.witnessing-period-indicator{justify-content:flex-start}.witnessing-period-indicator-text{font-size:24px}.witnessing-select-control{flex:1 1 160px}}._pageShell_1ft52_1{height:86vh;display:flex;flex-direction:column;overflow:hidden;min-height:0;max-width:100vw;width:100%}._controlsBar_1ft52_11{flex-shrink:0;justify-content:flex-end}._searchGroup_1ft52_16{margin-left:auto}._controlsStack_1ft52_20{flex-wrap:wrap;row-gap:8px}._searchToggle_1ft52_25{display:flex;align-items:center;gap:8px;overflow:hidden;transition:width .2s ease}._searchToggleOpen_1ft52_33{width:min(420px,70vw)}._searchToggleClosed_1ft52_37{width:36px}._searchFields_1ft52_41{flex:1;min-width:0;display:flex;gap:8px;align-items:center}._searchFieldSelect_1ft52_49{min-width:140px}._filterPopover_1ft52_53{padding:10px;border-radius:8px;display:flex;gap:8px;flex-wrap:wrap;min-width:320px}._filterField_1ft52_62{min-width:140px;flex:1 1 140px}._filterLabel_1ft52_67{font-size:12px;color:var(--muted, #6b7280);margin-bottom:4px}._filterValue_1ft52_73{min-width:180px;flex:2 1 200px}._filterActions_1ft52_78{align-self:flex-end}:root{font-family:Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-family:Segoe UI,sans-serif;font-size:12px}button,input,select,textarea{font:inherit;font-size:12px}*{box-sizing:border-box}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.table-wrapper{margin-top:1rem;overflow-x:auto}.doc-table{width:100%;border-collapse:collapse}.doc-table th,.doc-table td{padding:.5rem .75rem;text-align:left}.doc-table thead{border-bottom:1px solid var(--border)}.doc-table tbody tr:nth-child(2n){background-color:var(--panel)}
