:root{--primary:#0b57d0;--primary-strong:#0647b4;--primary-soft:#d9e6fb;--surface:#f7f9fc;--surface-low:#f1f3f6;--surface-high:#e8ebf0;--paper:#fff;--line:#d7dce5;--line-strong:#bcc5d3;--ink:#191c1e;--muted:#5f6368;--success:#087f5b;--warning:#d97706;--danger:#c5221f;--page-section-gap:24px}*{box-sizing:border-box}html,body{background:var(--surface);min-height:100%;color:var(--ink);margin:0}body{min-height:100vh;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.workspace-layout{background:var(--surface);min-height:100vh}.workspace-sider{inset-block:0;z-index:30;border-right:1px solid var(--line);left:0;overflow:hidden;background:var(--surface-low)!important;position:fixed!important}.workspace-sider .ant-layout-sider-children,.mobile-navigation .ant-drawer-body{flex-direction:column;min-height:100%;display:flex}.brand{min-height:86px;color:var(--ink);align-items:center;gap:12px;padding:18px 20px;display:flex}.brand-copy{min-width:0}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:21px;display:grid}.brand-title{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:800;overflow:hidden}.brand-subtitle{color:var(--muted);margin-top:3px;font-size:12px}.workspace-menu{flex:1;padding-top:20px;background:0 0!important;border-inline-end:0!important}.workspace-menu .ant-menu-item{color:#3f4757;font-weight:500}.workspace-menu .ant-menu-item .anticon{font-size:18px}.workspace-menu .ant-menu-item-selected{font-weight:700;color:var(--primary)!important;background:#cfe0fa!important}.workspace-menu .ant-menu-item-selected:after{display:none}.sider-footer{border-top:1px solid var(--line);margin:auto 12px 18px;padding-top:16px}.sider-footer .ant-btn{color:#3f4757;justify-content:flex-start;width:100%}.workspace-main{background:var(--surface);min-height:100vh;transition:margin .2s}.workspace-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f9fcf5;grid-template-columns:auto 1fr;align-items:center;height:72px;padding:0 34px;display:grid;position:sticky;top:0}.header-leading,.header-actions{align-items:center;gap:8px;min-width:0;display:flex}.header-actions{justify-content:flex-end}.header-actions>.ant-btn:not(.account-button),.collapse-button,.mobile-menu-button{color:#465166;width:40px;padding-inline:0;font-size:18px}.mobile-menu-button{display:none!important}.account-button{align-items:center;gap:8px;height:48px;padding:4px 8px;display:flex}.account-avatar{font-weight:700;color:var(--primary)!important;background:#d8e5f7!important}.account-name{color:#303746;font-size:13px}.account-chevron{color:var(--muted);font-size:9px}.workspace-content{width:100%;max-width:1500px;margin:0 auto;padding:40px 48px 56px}.workspace-page-stack{gap:var(--page-section-gap);flex-direction:column;min-width:0;display:flex}.workspace-page-stack>.page-heading,.workspace-page-stack>.contacts-toolbar{margin-bottom:0}.workspace-page-stack>.surface-card,.workspace-page-stack>.ant-alert{margin-block:0!important}.workspace-page-stack>.ant-row{margin-top:0!important}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.page-kicker{display:none}.page-title{color:var(--ink);letter-spacing:0;margin:0;font-size:34px;font-weight:800;line-height:1.24}.page-description{color:#4b5565;margin:8px 0 0;font-size:15px;line-height:1.6}.surface-card{overflow:hidden;box-shadow:0 1px 3px #191c1e14;border:1px solid var(--line)!important;border-radius:8px!important}.surface-card .ant-card-head{border-bottom-color:var(--line);min-height:64px}.stat-card{min-height:142px;position:relative;overflow:hidden}.stat-card:before{background:var(--stat-color,var(--primary));content:"";height:3px;position:absolute;top:0;left:0;right:0}.stat-label{color:var(--muted);font-size:13px}.stat-value{color:var(--ink);letter-spacing:0;margin:12px 0 3px;font-size:32px;font-weight:800}.muted{color:var(--muted)}.dashboard-summary-grid{grid-template-columns:minmax(0,2fr) minmax(260px,.9fr);gap:18px;display:grid}.dashboard-reminders,.dashboard-side-stats{min-height:100%}.dashboard-side-stats{grid-template-rows:1fr 1fr;gap:18px;display:grid}.reminder-item{background:var(--surface);border:1px solid #e1e5eb;border-radius:8px;align-items:center;gap:14px;min-height:76px;padding:14px 16px;display:flex}.reminder-item+.reminder-item{margin-top:10px}.reminder-high{background:#fff3f2;border-color:#f2c8c7}.reminder-dot{border-radius:50%;flex:0 0 10px;width:10px;height:10px}.reminder-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.reminder-copy span{color:var(--muted);font-size:12px}.dashboard-metric{height:100%}.dashboard-metric .ant-card-body{height:100%;position:relative}.dashboard-metric .stat-value small{font-size:14px;font-weight:600}.dashboard-metric>.ant-card-body>.muted{font-size:12px}.metric-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:8px;place-items:center;font-size:18px;display:grid;position:absolute;top:22px;right:22px}.metric-warning{color:#a74f00;background:#fff0d5}.dashboard-schedule{margin-top:18px}.dashboard-schedule .ant-card-body{padding-top:28px}.course-timeline-item{justify-content:space-between;align-items:flex-start;gap:16px;padding:1px 0 16px;display:flex}.course-timeline-item .muted{margin-top:6px;font-size:12px}.dashboard-list-row{border-bottom:1px solid #e8ebf0;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:10px 0;display:flex}.dashboard-list-row:last-child{border-bottom:0}.dashboard-list-row>div{align-items:center;gap:8px;display:flex}.dashboard-list-row>div .muted{font-size:12px}.contacts-toolbar{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #191c1e0f}.contacts-search{width:min(460px,100%)}.contacts-count{flex:none;font-size:13px}.contact-grid{grid-template-columns:repeat(3,minmax(260px,1fr));gap:18px;display:grid}.contact-card{border:1px solid var(--line-strong);background:#fff;border-radius:8px;min-width:0;padding:22px;box-shadow:0 1px 3px #191c1e0f}.contact-card-header,.contact-person,.contact-title-row,.contact-info-row{align-items:center;display:flex}.contact-card-header{justify-content:space-between;align-items:flex-start;gap:10px;min-height:58px}.contact-person{align-items:flex-start;gap:12px;min-width:0}.contact-avatar{background:var(--primary-soft);width:48px;height:48px;color:var(--primary);border-radius:50%;flex:0 0 48px;place-items:center;font-size:18px;font-weight:800;display:grid}.contact-details{min-width:0}.contact-title-row{flex-wrap:wrap;gap:6px}.contact-title-row h2{overflow-wrap:anywhere;letter-spacing:0;min-width:0;margin:0;font-size:16px;line-height:1.45}.contact-student{font-weight:600}.contact-title-row .contact-primary-tag{color:#875600;margin-inline-end:0}.contact-details p{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.5}.contact-card-actions{flex:none}.contact-card-actions .ant-btn{width:32px;height:32px;padding:0}.contact-card-body{background:var(--surface-low);border-radius:8px;gap:10px;margin-top:18px;padding:14px;display:grid}.contact-info-row{gap:10px;min-width:0}.contact-info-icon{color:#465166;flex:none;font-size:16px}.contact-phone,.contact-wechat{overflow-wrap:anywhere;min-width:0;color:var(--ink);flex:1;font-size:13px}.contact-phone:hover{color:var(--primary)}.contact-call-button{width:30px;height:30px;color:var(--primary);flex:none;padding:0}.contact-info-muted{color:var(--muted);font-style:italic}.contact-wechat-status{border:0;margin-inline-end:0}.contact-wechat-status-added{color:#087f5b;background:#dff7ec}.contact-wechat-status-empty{color:#5f6368;background:#e7e9ee}.contact-workplace span{overflow-wrap:anywhere;color:#4b5565;min-width:0;font-size:12px}.contact-empty{border:1px solid var(--line);background:#fff;border-radius:8px;padding:70px 20px}.duty-board-header{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:24px;min-height:92px;padding:22px 26px;display:flex}.duty-board-title,.duty-board-legend,.duty-board-legend-item,.duty-area,.duty-note,.duty-board-footer{align-items:center;display:flex}.duty-board-title{gap:10px}.duty-board-title-icon{color:var(--primary);font-size:20px}.duty-board-title h2{letter-spacing:0;margin:0;font-size:18px}.duty-board-subtitle{color:var(--muted);margin:6px 0 0 30px;font-size:12px}.duty-board-legend{color:#4b5565;flex:none;gap:18px;font-size:12px}.duty-board-legend-item{gap:7px}.duty-board-swatch{border-radius:50%;width:10px;height:10px}.duty-board-swatch-standard{background:#cfe0fa}.duty-board-swatch-review{background:#f7d5d3}.duty-table-wrap{overflow-x:auto}.duty-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:860px}.duty-table th,.duty-table td{color:#303746;text-align:left;vertical-align:middle;border-bottom:1px solid #e2e6ec;padding:16px 20px}.duty-table thead th{background:var(--surface-low);color:#465166;height:50px;padding-block:12px;font-size:12px;font-weight:700}.duty-table thead th:first-child{width:170px}.duty-table thead th:nth-child(2){width:190px}.duty-table thead th:nth-child(3){width:260px}.duty-table thead th:last-child{width:92px}.duty-row:last-child th,.duty-row:last-child td{border-bottom:0}.duty-row-today th,.duty-row-today td{background:#f1f6ff}.duty-date-cell{align-items:center;gap:12px;display:flex}.duty-day-number,.duty-cell-icon{border-radius:8px;flex:none;place-items:center;display:grid}.duty-day-number{background:var(--surface-high);color:#465166;width:36px;height:36px;font-weight:800}.duty-row-today .duty-day-number{background:var(--primary);color:#fff}.duty-date-copy{flex-direction:column;gap:3px;display:flex}.duty-date-copy small{color:var(--muted);font-weight:500}.duty-area{gap:10px;font-weight:600}.duty-cell-icon{background:var(--surface-low);color:#465166;width:30px;height:30px}.duty-members{flex-wrap:wrap;gap:5px;display:flex}.duty-member-tag{margin:0}.duty-note{color:#465166;gap:8px;font-size:12px;line-height:1.5}.duty-note-default{color:var(--muted)}.duty-actions-cell{text-align:right!important}.duty-actions .ant-btn{width:32px;height:32px;padding:0}.duty-table-state{height:240px;text-align:center!important}.duty-board-footer{border-top:1px solid var(--line);background:var(--surface-low);min-height:50px;color:var(--muted);gap:8px;padding:12px 22px;font-size:12px}.committee-layout{gap:30px;display:grid}.committee-section-heading{color:var(--primary);align-items:center;gap:9px;margin-bottom:16px;display:flex}.committee-section-heading h2{color:var(--ink);letter-spacing:0;margin:0;font-size:18px}.committee-section-count{color:var(--muted);margin-left:auto;font-size:12px}.committee-leaders{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.committee-leader-card,.committee-member-card,.committee-empty,.committee-loading{border:1px solid var(--line-strong);background:#fff;border-radius:8px;box-shadow:0 1px 3px #191c1e0f}.committee-leader-card{border-top:4px solid var(--primary);padding:26px;position:relative;overflow:hidden}.committee-leader-card-2{border-top-color:#59677c}.committee-card-header,.committee-member-profile,.committee-member-card{align-items:flex-start;display:flex}.committee-card-header{justify-content:space-between;gap:16px}.committee-member-profile{gap:16px;min-width:0}.member-avatar{flex:none;font-weight:800;background:var(--primary-soft)!important;color:var(--primary)!important}.member-avatar-2,.member-avatar-compact{background:var(--surface-high)!important;color:#465166!important}.committee-member-copy{flex-direction:column;flex:1;min-width:0;display:flex}.committee-member-name{overflow-wrap:anywhere;letter-spacing:0;margin:0;font-size:21px;line-height:1.35}.committee-role{background:var(--primary-soft);color:var(--primary);border-radius:999px;align-self:flex-start;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:600}.committee-student-no,.committee-member-responsibility{color:var(--muted);margin-top:7px;font-size:12px}.card-actions{flex:none;display:flex}.card-actions .ant-btn{width:34px;height:34px;padding:0}.committee-responsibility{background:var(--surface-low);color:#465166;border-radius:8px;align-items:flex-start;gap:10px;min-height:66px;margin-top:22px;padding:15px;display:flex}.committee-responsibility .anticon{color:var(--success);margin-top:4px}.committee-responsibility p{margin:0;line-height:1.65}.committee-card-order{color:var(--muted);margin-top:14px;font-size:11px}.committee-member-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.committee-member-card{gap:12px;min-height:116px;padding:18px;position:relative}.committee-member-card .committee-member-name{padding-right:54px;font-size:16px}.committee-member-card .committee-role{color:#465166;background:0 0;margin-top:3px;padding:0}.committee-member-card .card-actions{position:absolute;top:10px;right:10px}.committee-empty,.committee-loading{padding:70px 24px}.ant-card,.ant-modal-content,.ant-popover-inner,.ant-dropdown-menu{box-shadow:0 1px 3px #191c1e1a}.ant-btn-primary{background:var(--primary)}.ant-btn-primary:not(:disabled):hover{background:var(--primary-strong)!important}.ant-table-wrapper .ant-table-thead>tr>th{border-bottom-color:var(--line);height:52px;font-size:13px;font-weight:700}.ant-table-wrapper .ant-table-tbody>tr>td{border-bottom-color:#e5e8ee;height:56px}.ant-tag{border-radius:999px}.login-page{background:linear-gradient(135deg,#edf2f9 0%,#f7f9fc 48%,#dce5fb 100%);place-items:center;min-height:100vh;padding:32px 18px;display:grid}.login-panel{background:#fffffff5;border:1px solid #fffc;border-radius:8px;width:min(460px,100%);padding:46px 42px 34px;box-shadow:0 18px 50px #2d406924}.login-brand{text-align:center;margin-bottom:42px}.login-logo{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:58px;height:58px;margin:0 auto 18px;font-size:29px;display:grid;box-shadow:0 8px 20px #0b57d033}.login-brand h1{color:var(--primary);letter-spacing:0;margin:0;font-size:32px;font-weight:800}.login-brand p{color:#4b5565;margin:10px 0 0;font-size:14px}.login-options{justify-content:space-between;align-items:center;margin:-2px 0 22px;display:flex}.login-security{color:#818898;text-align:center;margin-top:30px;font-size:12px;font-weight:600}.seating-loading-card .ant-card-body{padding:24px}.seating-workspace-card{background:#f7f9fc;overflow:hidden}.seating-overview{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:24px;padding:20px 24px;display:grid}.seating-overview-heading,.seating-section-heading,.seating-canvas-toolbar,.seating-overview-stats,.seating-history-actions,.seating-environment-list>div,.seating-workspace-footer,.seating-legend,.seating-selection-bar,.seat-cell-header,.seat-student-row{align-items:center;display:flex}.seating-overview-heading{gap:12px;min-width:0}.seating-overview-icon{width:38px;height:38px;color:var(--success);background:#e5f4ee;border-radius:8px;flex:0 0 38px;place-items:center;font-size:18px;display:grid}.section-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.seating-overview-heading h2,.seating-section-heading h2{color:var(--ink);letter-spacing:0;margin:2px 0 0;font-size:16px}.seating-overview-heading .ant-tag{white-space:nowrap;margin-left:4px}.seating-overview-stats{border-left:1px solid var(--line);gap:24px;padding-left:24px}.seating-overview-stat{flex-direction:column;gap:3px;min-width:68px;display:flex}.seating-overview-stat span{color:var(--muted);font-size:12px}.seating-overview-stat strong{color:var(--ink);font-size:20px;line-height:1.2}.seating-overview-stat small{color:var(--muted);font-size:12px;font-weight:500}.seating-history-actions{gap:2px}.seating-history-actions .ant-btn{color:#465166;width:34px;height:34px;padding:0}.seating-workspace-body{min-width:0;position:relative}.seating-workspace-body-editing,.seating-workspace-body-view{display:block}.seating-sidebar{background:#fff;min-width:0}.seating-sidebar-floating{z-index:13;border:1px solid var(--line);border-radius:8px;width:min(216px,100% - 32px);max-height:calc(100vh - 32px);padding:6px;display:block;position:fixed;inset:auto 12px 12px auto;overflow:hidden;box-shadow:0 12px 28px #191c1e29}.seating-sidebar-floating-positioned{bottom:auto;right:auto}.seating-sidebar-floating-collapsed{border-radius:14px;width:72px;max-height:none;padding:4px;overflow:visible}.student-pool-floating-header{align-items:center;gap:4px;min-width:0;display:flex}.student-pool-floating-header .seating-sidebar-floating-handle{flex:0 0 24px;margin:0}.student-pool-toggle{background:var(--surface-low);min-width:0;min-height:32px;color:var(--primary);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:6px;flex:1;align-items:center;gap:6px;padding:5px 7px;transition:border-color .18s,background .18s,box-shadow .18s;display:flex;position:relative}.student-pool-toggle:hover,.student-pool-toggle:focus-visible{background:#f5f9ff;border-color:#b9cff1;outline:0;box-shadow:0 2px 8px #0b57d01a}.student-pool-toggle>.anticon{flex:none;font-size:16px}.student-pool-toggle-copy{flex:1;justify-content:space-between;align-items:baseline;gap:4px;min-width:0;display:flex}.student-pool-toggle-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.student-pool-toggle-copy small{color:var(--muted);flex:none;font-size:10px}.student-pool-unassigned-badge{min-width:38px;color:var(--muted);background:#f4f5f7;border:1px solid #d7dce5;border-radius:5px;justify-content:center;align-items:center;gap:2px;padding:3px 5px;line-height:1;display:inline-flex}.student-pool-unassigned-badge strong{font-size:12px;font-weight:800}.student-pool-unassigned-badge small{font-size:9px}.student-pool-unassigned-badge-active{color:#a74f00;background:#fff4df;border-color:#f0ce9c}.seating-sidebar-floating-open .student-pool-unassigned-badge{display:none}.student-pool-close{color:#8a94a3;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:0 0 26px;place-items:center;width:26px;height:26px;padding:0;display:grid}.student-pool-close:hover,.student-pool-close:focus-visible{background:var(--surface-low);color:var(--primary);outline:0}.student-pool-summary{background:#f8fafc;border:1px solid #e7ebf1;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:6px;padding:7px 8px;display:flex}.student-pool-summary-active{background:#fff8ec;border-color:#f0ce9c}.student-pool-summary-primary{color:#a74f00;align-items:baseline;gap:4px;display:inline-flex}.student-pool-summary-primary span{font-size:11px;font-weight:700}.student-pool-summary-primary strong{font-size:20px;line-height:1}.student-pool-summary-primary small,.student-pool-summary-secondary{color:var(--muted);font-size:10px}.student-pool-summary-secondary{flex:none}.seating-sidebar-floating-collapsed .student-pool-floating-header{flex-direction:column;gap:2px}.seating-sidebar-floating-collapsed .student-pool-toggle{border-radius:50%;flex-direction:column;flex:0 0 56px;justify-content:center;gap:1px;width:56px;height:56px;min-height:56px;padding:5px 3px}.seating-sidebar-floating-collapsed .student-pool-toggle>.anticon{font-size:18px}.seating-sidebar-floating-collapsed .student-pool-toggle-copy{flex-direction:column;flex:none;align-items:center;gap:0}.seating-sidebar-floating-collapsed .student-pool-toggle-copy strong{font-size:11px}.seating-sidebar-floating-collapsed .student-pool-toggle-copy small{font-size:9px;line-height:1.1;display:none}.seating-sidebar-floating-collapsed .student-pool-unassigned-badge{border-radius:50%;min-width:24px;height:24px;padding:2px;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 6px #191c1e29}.seating-sidebar-floating-collapsed .student-pool-unassigned-badge strong{font-size:11px}.seating-sidebar-floating-collapsed .student-pool-unassigned-badge small{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.seating-sidebar-floating-handle{color:#8a94a3;cursor:grab;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:4px;place-items:center;width:28px;height:22px;margin:0 auto 3px;padding:0;display:grid}.seating-sidebar-floating-handle:hover,.seating-sidebar-floating-handle:focus-visible{background:var(--surface-low);color:var(--primary)}.seating-sidebar-floating-dragging .seating-sidebar-floating-handle{cursor:grabbing}.seating-sidebar-section{min-width:0}.seating-section-heading{justify-content:space-between;gap:12px;margin-bottom:14px}.seating-section-heading>div{min-width:0}.seating-section-heading h2{font-size:15px}.seating-section-heading span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.seating-section-heading .ant-tag{flex:none;margin:0}.seating-dimension-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seating-dimension-fields label{color:#465166;gap:6px;font-size:12px;font-weight:600;display:grid}.seating-dimension-fields .ant-input-number{width:100%}.seating-layout-capacity{background:var(--surface-low);border-radius:6px;grid-template-columns:1fr auto;align-items:baseline;gap:3px 10px;margin:14px 0;padding:11px 12px;display:grid}.seating-layout-capacity span,.seating-layout-capacity small{color:var(--muted);font-size:11px}.seating-layout-capacity strong{color:var(--ink);font-size:13px}.seating-layout-capacity small{grid-column:1/-1}.seating-sidebar>.ant-divider{border-color:var(--line);margin:20px 0}.seating-environment-list{gap:8px;display:grid}.seating-environment-list>div{color:#465166;gap:9px;font-size:12px}.seating-environment-list strong{color:var(--ink);margin-left:auto;font-size:13px}.seating-feature-symbol{border-radius:6px;place-items:center;width:26px;height:26px;display:grid}.seating-feature-window{color:var(--success);background:#e5f4ee}.seating-feature-door{color:#a74f00;background:#fff0d8}.seating-pool-heading{align-items:flex-start}.seating-student-pool-section>.ant-input,.seating-student-pool-section>.ant-segmented{margin-bottom:10px}.seating-selection-bar{min-width:0;color:var(--success);background:#f0faf5;border:1px solid #b7d9c9;border-radius:6px;gap:7px;margin-bottom:10px;padding:7px 8px;font-size:11px}.seating-selection-bar>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.seating-selection-bar .ant-btn{width:24px;height:24px;color:var(--success);flex:0 0 24px;padding:0}.student-pool-list{border-top:1px solid var(--line);border-radius:0;gap:2px;min-height:0;max-height:min(300px,100vh - 270px);margin-top:6px;padding:4px 0 0;transition:border-color .18s,background .18s;display:grid;overflow-y:auto}.student-pool-search{width:100%;margin-top:6px}.student-pool-search .ant-input{font-size:11px}.student-pool-empty{color:var(--muted);text-align:center;padding:18px 8px;font-size:11px}.student-pool-list-drop-active{background:#f5f9ff}.student-pool-item{width:100%;min-width:0;color:var(--ink);text-align:left;cursor:grab;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding:5px 6px;transition:background .18s;display:flex}.student-pool-item .student-pool-copy{align-items:flex-start}.student-pool-group-label{color:var(--muted);justify-content:space-between;align-items:center;padding:5px 6px 3px;font-size:10px;font-weight:700;display:flex}.student-pool-group-label small{font-size:9px;font-weight:500}.student-pool-item:hover,.student-pool-item-selected{background:#f5f9ff}.student-pool-item:active,.seat-student:active{cursor:grabbing}.student-pool-item-dragging{opacity:.45}.student-pool-item-status{border-radius:4px;flex:none;padding:2px 4px;font-size:9px;line-height:1.2}.student-pool-item-status-unassigned{color:#a74f00;background:#fff0d8;font-weight:700}.student-pool-item-status-assigned{color:var(--muted);background:#f0f2f5}.student-avatar{width:32px;height:32px;color:var(--primary);background:#e5eefc;border-radius:50%;flex:0 0 32px;place-items:center;font-size:14px;font-weight:800;display:grid}.student-avatar-female{color:#a4553f;background:#f8e9e2}.student-avatar-selected{flex-basis:24px;width:24px;height:24px;font-size:11px}.student-pool-copy,.seat-student-copy{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;display:flex}.student-pool-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.seat-student-copy strong{color:var(--ink);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;word-break:break-all;font-size:16px;font-weight:750;line-height:1.35;overflow:visible}.student-pool-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.seat-student-copy small{color:var(--muted);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;word-break:break-all;font-size:10px;line-height:1.2;overflow:visible}.student-pool-location{background:var(--surface-low);color:var(--muted);border-radius:4px;flex:none;padding:3px 5px;font-size:10px}.seating-canvas-section{background:#f7f9fc;min-width:0;padding:22px 24px 20px}.seating-canvas-toolbar{z-index:12;scrollbar-width:none;white-space:nowrap;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:18px;min-width:0;margin-bottom:16px;position:relative;overflow-x:auto}.seating-canvas-toolbar::-webkit-scrollbar{display:none}.seating-canvas-options{flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.seating-output-actions{flex:none}.seating-heading-actions{flex-wrap:wrap;justify-content:flex-end}.seating-output-actions .ant-btn{color:#465166;width:40px;padding-inline:0;font-size:18px}.seating-view-controls{color:var(--muted);align-items:center;gap:12px;font-size:11px;display:flex}.seating-view-controls>label{color:#465166;cursor:pointer;align-items:center;gap:5px;display:inline-flex}.seating-view-controls-label{align-items:center;gap:4px;color:var(--muted)!important;display:inline-flex!important}.seating-canvas-toolbar>div:first-child{flex:none;align-items:baseline;gap:10px;min-width:0;display:flex}.seating-canvas-toolbar strong{color:var(--ink);font-size:15px}.seating-canvas-toolbar span{color:var(--muted);font-size:12px}.seating-legend{color:var(--muted);flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:10px 14px;font-size:11px}.seating-legend span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.seating-legend span:first-child .anticon{color:var(--primary)}.seating-legend span:nth-child(3) .anticon{color:var(--success)}.seating-legend span:nth-child(4) .anticon{color:#a74f00}.seating-print-header{color:#111;border-bottom:1px solid #777;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px;padding-bottom:8px;display:none}.seating-print-header strong{font-size:18px}.seating-print-header span{color:#444;font-size:11px}.seating-map-scroll{max-width:100%;padding:4px 2px 12px;overflow-x:auto}.seating-map{width:100%;min-width:0}.room-front{grid-template-columns:88px minmax(var(--room-center-min-width,180px), 1fr) 88px;width:max-content;min-width:100%;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:12px;margin-bottom:14px;font-size:10px;display:grid}.blackboard{color:#465166;background:#eef1f4;border:1px solid #c3cbd6;border-radius:6px;justify-content:center;align-items:center;gap:10px;width:min(100%,360px);min-height:44px;margin-inline:auto;padding:8px 16px;display:flex;box-shadow:inset 0 2px #ffffffbf}.blackboard strong{font-size:14px}.blackboard small{color:#8a94a3;letter-spacing:.1em;font-size:9px}.room-layout{grid-template-columns:88px minmax(var(--room-center-min-width,0px), 1fr) 88px;align-items:start;gap:8px;width:max-content;min-width:100%;display:grid}.room-layout-no-left{grid-template-columns:minmax(var(--room-center-min-width,0px), 1fr) 88px}.room-layout-no-right{grid-template-columns:88px minmax(var(--room-center-min-width,0px), 1fr)}.room-layout-no-left.room-layout-no-right{grid-template-columns:minmax(var(--room-center-min-width,0px), 1fr)}.room-center-column{min-width:0}.room-column-label{height:28px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.room-side-track{gap:6px;display:grid}.room-side-marker{color:#7b8492;cursor:pointer;background:#f9fafb;border:1px dashed #cbd2dc;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:96px;padding:6px 3px;font-size:10px;transition:border-color .18s,background .18s,color .18s;display:flex}.room-side-marker:hover,.room-side-marker:focus-visible{border-color:var(--primary);color:var(--primary)}.room-side-marker-static,.room-side-marker-static:hover{cursor:default;color:#7b8492;background:#f9fafb;border-color:#d6dce4}.room-side-marker-icon{background:#edf0f4;border-radius:6px;place-items:center;width:28px;height:28px;font-size:16px;display:grid}.room-side-marker-window{color:var(--success);background:#f0faf5;border-style:solid;border-color:#b7d9c9}.room-side-marker-window .room-side-marker-icon{background:#dff2e9}.room-side-marker-door{color:#a74f00;background:#fff8ec;border-style:solid;border-color:#f0ce9c}.room-side-marker-door .room-side-marker-icon{background:#ffedcd}.room-back{grid-template-columns:88px minmax(var(--room-center-min-width,180px), 1fr) 88px;border-top:1px solid var(--line);width:max-content;min-width:100%;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:12px;margin-top:14px;padding-top:12px;font-size:10px;display:grid}.room-end-label{flex-direction:column;align-items:center;gap:2px;display:flex}.room-end-label strong{color:var(--ink);font-size:11px}.room-end-label small{color:var(--muted);letter-spacing:.08em;font-size:9px}.room-end-hint{color:var(--muted);font-size:10px}.room-back-boundary{color:#7b8492;background:#fbfcfd;border:1px dashed #cbd2dc;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:32px;padding:6px 10px;display:flex}.room-back-boundary-line{border-top:1px dashed #cbd2dc;flex:1;min-width:20px}.seat-grid{grid-auto-rows:minmax(104px,auto);gap:6px;min-width:0;display:grid}.seat-cell{border:1px solid var(--line-strong);background:#fff;border-radius:8px;flex-direction:column;min-width:0;min-height:104px;padding:8px;transition:border-color .18s,background .18s,box-shadow .18s;display:flex}.seat-cell-editable:hover{border-color:#8fb6ef;box-shadow:0 3px 10px #0b57d017}.seat-cell-readonly{cursor:default}.seat-cell-readonly:hover{border-color:var(--line-strong);box-shadow:none}.seat-cell-drop-target{background:#f2f7ff;border-color:var(--primary)!important;box-shadow:0 0 0 2px #0b57d01f,0 5px 14px #0b57d01f!important}.seat-cell-header{color:var(--muted);justify-content:space-between;gap:6px;margin-bottom:6px;font-size:9px}.seat-cell-header span:last-child{color:#8a94a3}.seat-student-row{flex:1;align-items:stretch;gap:3px;min-width:0}.seat-student{min-width:0;color:var(--ink);text-align:center;cursor:grab;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#f5f6f8;border:1px solid #d9dee6;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:6px 8px;transition:border-color .18s,background .18s;display:flex}.seat-student-readonly{cursor:default;align-items:center}.seat-student-copy,.seat-student-name{text-align:center;align-items:center;width:100%}.seat-student-name{display:block}.seat-student-male{background:#e9f2ff;border-color:#b9d4f6}.seat-student-female{background:#fff0f5;border-color:#efbfd1}.seat-student-neutral{background:#f5f6f8;border-color:#d9dee6}.seat-student:hover,.seat-student-selected{border-color:var(--primary);filter:saturate(1.08)}.seating-workspace-body-editing .seat-student{flex-direction:column;gap:3px}.seat-replacement-menu .ant-dropdown-menu{max-height:320px;overflow-y:auto}.seat-empty-editor{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.seat-empty-trigger{color:#9aa5b5;cursor:default;white-space:nowrap;background:#fafbfc;border:1px solid #e0e5eb;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;width:100%;min-width:0;min-height:40px;padding:4px;font-size:11px;display:flex}.seat-empty-trigger:hover{color:#9aa5b5;background:#fafbfc;border-color:#e0e5eb}.seat-cell-readonly .seat-empty-trigger{background:0 0;border-color:#0000;flex-basis:auto;width:100%;min-width:0}.seat-cell-readonly .seat-empty-editor{justify-content:center}.seat-aisle{color:#8a94a3;background:repeating-linear-gradient(135deg,#0000,#0000 8px,#0f172a09 8px 16px);border-left:1px dashed #c4cad4;border-right:1px dashed #c4cad4;border-radius:4px;justify-content:center;align-items:flex-start;min-height:104px;font-size:10px;display:flex}.seat-aisle span{letter-spacing:.2em;writing-mode:vertical-rl;padding-top:8px}.seating-workspace-footer{border-top:1px solid var(--line);min-height:48px;color:var(--muted);background:#fff;justify-content:space-between;gap:18px;padding:12px 24px;font-size:11px}.seating-workspace-footer .anticon{color:var(--primary)}.seating-footer-capacity{flex:none}.seating-settings-actions{flex:none;align-self:auto}.seating-settings-content{gap:14px;max-height:min(68vh,620px);padding:2px;display:grid;overflow-y:auto}.seating-settings-section{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0;padding:18px}.seating-settings-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;margin-bottom:16px;display:flex}.seating-settings-section-heading>div{min-width:0}.seating-settings-section-heading h3{color:var(--ink);margin:0;font-size:16px}.seating-settings-section-heading p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.5}.seating-settings-section-heading .ant-tag{flex:none;margin:0}.seating-settings-dimensions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.seating-settings-dimensions label,.seating-side-settings label{color:#465166;gap:6px;font-size:12px;font-weight:600;display:grid}.seating-settings-dimensions .ant-input-number{width:100%}.seating-aisle-options{border-top:1px solid var(--line);gap:12px;margin-top:16px;padding-top:16px;display:grid}.seating-aisle-options .ant-checkbox-group{flex-wrap:wrap;gap:8px 16px;display:flex}.seating-aisle-options .ant-checkbox-wrapper{color:#465166;margin:0;font-size:12px}.seating-settings-capacity{background:var(--paper);color:var(--muted);border-radius:6px;align-items:baseline;gap:8px;margin-top:16px;padding:10px 12px;font-size:12px;display:flex}.seating-settings-capacity strong{color:var(--ink);margin-left:auto;font-size:13px}.seating-settings-capacity small{color:var(--muted);font-size:11px}.seating-side-settings-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.seating-side-settings{border:1px solid var(--line);background:var(--paper);border-radius:7px;gap:10px;min-width:0;padding:14px;display:grid}.seating-side-settings>strong{color:var(--ink);font-size:13px}.seating-side-settings label{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:8px;font-weight:400}.seating-side-settings label>span{color:var(--muted);font-size:11px}.seating-side-settings .ant-select{width:100%;min-width:0}.timetable-wrap{overflow-x:auto}.timetable-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:78px repeat(5,minmax(150px,1fr));min-width:900px;display:grid}.timetable-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:92px;padding:10px}.timetable-head{background:var(--surface-low);color:#465166;place-items:center;min-height:58px;font-weight:700;display:grid}.course-pill{border:1px solid color-mix(in srgb, var(--course-color) 22%, white);background:color-mix(in srgb, var(--course-color) 9%, white);border-radius:6px;height:100%;padding:10px 12px}.course-name{font-weight:700}.course-detail{color:var(--muted);margin-top:5px;font-size:11px}.timetable-modal-footer,.timetable-modal-actions{align-items:center;display:flex}.timetable-modal-footer{justify-content:space-between;gap:12px}.timetable-modal-actions{gap:8px;margin-left:auto}.timetable-modal-actions .ant-btn+.ant-btn{margin-inline-start:0}.mobile-navigation .ant-drawer-content{background:var(--surface-low)}@media (max-width:1100px){.workspace-header{grid-template-columns:auto 1fr;padding-inline:20px}.workspace-content{padding-inline:28px}.account-name,.account-chevron{display:none}.dashboard-summary-grid{grid-template-columns:1fr}.dashboard-side-stats{grid-template-rows:none;grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.committee-member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.seating-workspace-body{grid-template-columns:248px minmax(0,1fr)}.seating-overview{gap:16px}.seating-overview-stats{gap:16px;padding-left:16px}}@media (max-width:991px){.workspace-main{margin-left:80px!important}.workspace-header{grid-template-columns:auto 1fr}}@media (max-width:720px){.workspace-sider{display:none}.workspace-main{margin-left:0!important}.workspace-header{grid-template-columns:minmax(0,1fr) auto;height:64px;padding:0 12px}.mobile-menu-button{display:inline-flex!important}.collapse-button{display:none!important}.workspace-content{padding:26px 16px 40px}.workspace-page-stack{gap:20px}.page-heading{flex-direction:column;align-items:flex-start;margin-bottom:22px}.page-title{font-size:28px}.page-heading>:last-child:not(:first-child){width:100%}.login-panel{padding:38px 24px 28px}.dashboard-side-stats{grid-template-columns:1fr}.reminder-item{align-items:flex-start}.reminder-item>.ant-tag{display:none}.contacts-heading-actions{grid-template-columns:1fr 1fr;display:grid!important}.contacts-heading-actions .ant-btn{width:100%}.contacts-toolbar{flex-direction:column;align-items:stretch;padding:14px}.contacts-search{width:100%}.contact-grid{grid-template-columns:1fr}.duty-board-header{flex-direction:column;align-items:flex-start;padding:18px}.duty-board-subtitle{margin-left:0}.duty-board-footer{align-items:flex-start}.committee-leaders,.committee-member-grid{grid-template-columns:1fr}.committee-leader-card{padding:20px}.seating-overview{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:18px}.seating-overview-stats{border-top:1px solid var(--line);border-left:0;grid-column:1/-1;justify-content:space-between;padding:14px 0 0}.seating-workspace-body{flex-direction:column;display:flex}.seating-workspace-body-editing{display:block}.seating-canvas-section{order:1;padding:18px 16px 16px}.seating-map{min-width:680px}.seating-sidebar{border-top:1px solid var(--line);border-right:0;order:2;padding:20px 16px 24px}.seating-sidebar-floating{border:1px solid var(--line);width:min(196px,100% - 24px);max-height:calc(100vh - 24px);padding:6px;inset:auto 12px 12px auto}.seating-sidebar-floating-collapsed{width:72px;max-height:none;padding:4px;overflow:visible}.seating-settings-content{max-height:68vh}.seating-settings-actions{align-self:flex-start}.seating-canvas-toolbar{flex-direction:column;align-items:flex-start;gap:10px}.seating-heading-actions{justify-content:flex-start;width:100%}.seating-legend{justify-content:flex-start}.seating-workspace-footer{flex-direction:column;align-items:flex-start;gap:6px;padding-inline:18px}}@media (max-width:480px){.header-actions>:nth-child(2),.header-actions>:nth-child(3){display:none}.login-brand h1{font-size:27px}.seating-overview-heading .ant-tag{display:none}.seating-overview-stats{gap:10px}.seating-overview-stat strong{font-size:18px}.seating-canvas-toolbar>div:first-child{flex-direction:column;align-items:flex-start;gap:2px}.seating-legend{gap:7px 10px}.seating-workspace-footer>.ant-space{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{size:landscape;margin:10mm}html,body{background:#fff!important;min-height:0!important}.workspace-layout{background:#fff!important}.workspace-sider,.workspace-header,.workspace-page-stack>.page-heading,.workspace-page-stack>.ant-alert,.seating-overview,.seating-canvas-toolbar,.seating-sidebar-floating,.seating-workspace-footer,.ant-dropdown,.ant-tooltip,.ant-message,.ant-notification,.ant-modal-root{display:none!important}.workspace-layout>.workspace-main{background:#fff!important;width:100%!important;min-height:0!important;margin-left:0!important}.workspace-content{max-width:none!important;padding:0!important}.workspace-page-stack{gap:0!important}.seating-workspace-card.surface-card{box-shadow:none!important;border:0!important;border-radius:0!important;overflow:visible!important}.seating-workspace-card .ant-card-body{padding:0!important}.seating-print-region{filter:grayscale();--room-center-min-width:0px!important;--seat-grid-min-seat-width:0px!important;color:#111!important;background:#fff!important;min-width:0!important;padding:0!important}.seating-print-header{display:flex}.seating-print-region .room-front{margin-bottom:8px}.seating-print-region .blackboard{gap:6px;min-height:32px;padding:4px 10px}.seating-print-region .blackboard strong{font-size:12px}.seating-print-region .blackboard small{font-size:8px}.seating-print-region .room-layout{gap:6px}.seating-print-region .room-column-label{height:18px;font-size:8px}.seating-print-region .room-side-track{gap:3px;grid-template-rows:repeat(7,minmax(64px,1fr))!important}.seating-print-region .room-side-marker{border-radius:4px;gap:2px;min-height:64px;padding:3px 2px;font-size:8px}.seating-print-region .room-side-marker-icon{border-radius:4px;width:20px;height:20px;font-size:11px}.seating-print-region .room-end-label{gap:1px}.seating-print-region .room-end-label strong,.seating-print-region .room-end-hint{font-size:8px}.seating-print-region .room-end-label small{font-size:7px}.seating-map-scroll{padding:0!important;overflow:visible!important}.seating-map,.seating-print-region .room-front,.seating-print-region .room-layout,.seating-print-region .room-back{width:100%!important;min-width:0!important}.seating-print-region .seat-grid{grid-auto-rows:minmax(64px,auto);gap:3px}.seating-print-region .seat-cell,.seating-print-region .seat-aisle{min-height:64px}.seating-print-region .seat-cell{border-radius:4px;padding:4px}.seating-print-region .seat-cell-header{gap:3px;margin-bottom:2px;font-size:7px}.seating-print-region .seat-student{border-radius:4px;padding:3px 4px}.seating-print-region .seat-student-copy strong{line-height:1.1;font-size:11px!important}.seating-print-region .seat-aisle{font-size:8px}.seating-print-region .seat-aisle span{padding-top:4px}.room-front,.room-layout,.room-back{color:#222!important}.blackboard,.room-side-marker,.room-back-boundary,.seat-cell,.seat-student,.seat-aisle{box-shadow:none!important;color:#111!important;background:#fff!important;border-color:#666!important}.blackboard,.room-side-marker-icon{background:#f2f2f2!important}.room-side-marker-window,.room-side-marker-door,.seat-student-male,.seat-student-female,.seat-student-neutral{color:#111!important;background:#fff!important;border-color:#666!important}.seat-aisle{border-left-color:#999!important;border-right-color:#999!important}.seat-cell,.room-side-marker{break-inside:avoid}.seating-print-region .room-back{margin-top:8px;padding-top:8px}.seating-print-region .room-back-boundary{border-radius:4px;gap:5px;min-height:24px;padding:4px 8px;font-size:8px}.seating-print-region *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
