:root{color:#20242b;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f5f8;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:#f3f5f8;min-height:100vh}button,input,textarea{color:inherit;font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2475bf38}.app-shell{background:#f3f5f8;min-height:100vh}.sidebar{z-index:20;background:#fff;border-right:1px solid #e6e9ed;width:184px;position:fixed;inset:0 auto 0 0}.brand-mark{color:#e87513;background:#fff8f1;border:1px solid #f5d7b9;border-radius:8px;place-items:center;width:44px;height:44px;margin:18px auto 24px;display:grid}.main-navigation{flex-direction:column;gap:4px;padding:0 12px;display:flex}.navigation-link{color:#555e6a;white-space:nowrap;border-radius:6px;align-items:center;gap:11px;min-height:44px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:flex;position:relative;overflow:hidden}.navigation-link:hover{color:#20242b;background:#f6f7f9}.navigation-link.is-active{color:#a94700;background:#fff6ed}.navigation-link.is-active:before{content:"";background:#e87513;border-radius:0 2px 2px 0;width:3px;position:absolute;inset:9px auto 9px 0}.workspace{min-width:0;min-height:100vh;margin-left:184px}.topbar{z-index:10;background:#fffffff5;border-bottom:1px solid #e6e9ed;justify-content:space-between;align-items:center;gap:20px;height:68px;padding:0 28px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:20px;font-weight:650;line-height:1.25;overflow:hidden}.administrator{color:#59616c;white-space:nowrap;flex:none;align-items:center;gap:7px;font-size:13px;display:flex}.page-content{width:100%;padding:22px 26px 30px}.content-panel{background:#fff;border:1px solid #e8ebef;border-radius:7px;width:min(100%,1320px);min-height:420px;margin:0 auto}.activities-panel,.teachers-panel{overflow:hidden}.page-toolbar{border-bottom:1px solid #eceef1;justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:15px 20px;display:flex}.search-form{align-items:center;gap:10px;width:min(100%,500px);min-width:0;display:flex}.search-input{flex:auto;min-width:0;position:relative}.search-input>svg{color:#89919c;pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input input,.form-field input,.form-field select,.form-field textarea{color:#20242b;background:#fff;border:1px solid #d9dee5;border-radius:5px;width:100%;transition:border-color .12s,box-shadow .12s}.search-input input{height:38px;padding:0 12px 0 38px}.search-input input::placeholder,.form-field textarea::placeholder,.form-field input::placeholder{color:#9aa1ab}.search-input input:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#e87513;outline:none;box-shadow:0 0 0 3px #e875131f}.button{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 15px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.56}.button-primary{color:#fff;background:#b84d00;border-color:#b84d00}.button-primary:hover:not(:disabled){background:#933d00;border-color:#933d00}.button-secondary{color:#3e4855;background:#fff;border-color:#d9dee5}.button-secondary:hover:not(:disabled){color:#1f6fae;background:#f8fafc;border-color:#aeb8c4}.list-summary{color:#404752;border-bottom:1px solid #eceef1;align-items:center;gap:9px;min-height:54px;padding:0 20px;font-size:14px;font-weight:600;display:flex}.list-summary>span{background:#e87513;border-radius:2px;width:4px;height:18px}.table-scroll{width:100%;overflow-x:auto}.activities-table,.teachers-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:700px}.activities-table{min-width:820px}.activities-table th,.activities-table td,.teachers-table th,.teachers-table td{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #eceef1;height:52px;padding:10px 18px;overflow:hidden}.activities-table th,.teachers-table th{color:#4a525d;background:#f7f8fa;height:46px;font-size:13px;font-weight:650}.activities-table td,.teachers-table td{color:#303640;font-size:14px}.activities-table th:first-child,.activities-table td:first-child{width:28%}.activities-table th:nth-child(2),.activities-table td:nth-child(2){width:22%}.activities-table th:nth-child(3),.activities-table td:nth-child(3){width:20%}.activities-table th:nth-child(4),.activities-table td:nth-child(4),.activities-table th:nth-child(5),.activities-table td:nth-child(5){width:15%}.teachers-table th:first-child,.teachers-table td:first-child{width:22%}.teachers-table th:nth-child(2),.teachers-table td:nth-child(2){width:38%}.teachers-table th:nth-child(3),.teachers-table td:nth-child(3){width:25%}.teachers-table th:nth-child(4),.teachers-table td:nth-child(4){width:15%}.activities-table tbody tr:hover,.teachers-table tbody tr:hover{background:#fbfcfd}.activities-table tbody tr:last-child td,.teachers-table tbody tr:last-child td{border-bottom:0}.activity-name,.teacher-name{font-weight:600}.note-cell{color:#66707c}.text-action{color:#2475bf;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;min-height:32px;padding:0;font-size:14px;display:inline-flex}.text-action:hover{color:#155a94;text-decoration:underline}.page-state,.placeholder-state{color:#7a838e;justify-content:center;align-items:center;gap:10px;min-height:260px;font-size:14px;display:flex}.page-state{flex-direction:column}.page-state-error{color:#a4423b}.placeholder-state{flex-direction:column}.placeholder-state p{margin:0}.activity-detail-panel{overflow:hidden}.detail-navigation{border-bottom:1px solid #eceef1;padding:15px 20px}.activity-detail-header{padding:22px 24px 8px}.activity-detail-header h2{overflow-wrap:anywhere;margin:0;font-size:24px;font-weight:650;line-height:1.35}.activity-meta{border-bottom:1px solid #eceef1;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(220px,1.6fr);gap:18px;margin:0;padding:10px 24px 24px;display:grid}.activity-meta>div{align-content:start;gap:6px;min-width:0;display:grid}.activity-meta dt{color:#727b86;font-size:12px;font-weight:650}.activity-meta dd{overflow-wrap:anywhere;color:#2d343d;min-width:0;margin:0;font-size:14px;line-height:1.55}.activity-note dd{white-space:pre-wrap}.roster-heading{justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:16px 24px;display:flex}.roster-title{align-items:center;gap:14px;min-width:0;display:flex}.roster-title>div{align-items:center;gap:8px;min-width:0;display:flex}.roster-title h3{margin:0;font-size:18px;font-weight:650}.roster-title>span{color:#707985;white-space:nowrap;font-size:13px}.roster-actions{flex:none;align-items:center;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden:focus-visible+.csv-file-button{outline-offset:2px;outline:3px solid #2475bf38}.visually-hidden:disabled+.csv-file-button{cursor:not-allowed;opacity:.56}.csv-file-button{min-width:118px}.import-error{color:#a4423b;background:#fff7f6;border:1px solid #f0ceca;border-radius:6px;align-items:flex-start;gap:9px;margin:0 24px 18px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.import-error svg{flex:none;margin-top:1px}.import-preview{background:#fbfcfd;border:1px solid #dfe4ea;border-radius:7px;margin:0 24px 22px;overflow:hidden}.import-preview-header{background:#fff;border-bottom:1px solid #e7eaee;justify-content:space-between;align-items:center;gap:18px;min-height:72px;padding:14px 16px;display:flex}.import-preview-header>div{align-items:center;gap:10px;min-width:0;display:flex}.import-preview-header>div>svg{color:#31836b;flex:none}.import-preview-header h4{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:650}.import-preview-header p{color:#6d7681;margin:4px 0 0;font-size:12px}.import-notices{color:#6b5a2f;background:#fffaf0;border-bottom:1px solid #ece5d5;gap:5px;padding:10px 16px;font-size:12px;display:grid}.import-notices:empty{display:none}.import-notices p{overflow-wrap:anywhere;margin:0}.import-table,.students-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:520px}.import-table th,.import-table td,.students-table th,.students-table td{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #eceef1;height:48px;padding:9px 16px;overflow:hidden}.import-table th,.students-table th{color:#4a525d;background:#f5f7f9;height:44px;font-size:13px;font-weight:650}.import-table td,.students-table td{color:#303640;background:#fff;font-size:14px}.import-table th:first-child,.import-table td:first-child{width:130px}.students-table th:first-child,.students-table td:first-child{width:90px}.students-table th:last-child,.students-table td:last-child{width:150px}.import-table tbody tr:last-child td,.students-table tbody tr:last-child td{border-bottom:0}.student-name{font-weight:600}.roster-empty{border-top:1px solid #eceef1;min-height:220px}.dialog-backdrop{z-index:50;background:#191f2770;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog{background:#fff;border:1px solid #dfe3e8;border-radius:8px;width:min(100%,520px);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 18px 50px #141d2733}.dialog-header{border-bottom:1px solid #eceef1;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:0 18px 0 20px;display:flex}.dialog-header h2{margin:0;font-size:18px;font-weight:650}.icon-button,.toast-close{cursor:pointer;color:#69727d;background:0 0;border:0;border-radius:5px;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.icon-button:hover:not(:disabled),.toast-close:hover{color:#242a31;background:#f1f3f5}.dialog-body{gap:18px;padding:20px;display:grid}.dialog-footer{background:#fafbfc;border-top:1px solid #eceef1;justify-content:flex-end;align-items:center;gap:10px;min-height:64px;padding:12px 20px;display:flex}.form-field{gap:8px;display:grid}.form-field label{color:#353c45;font-size:14px;font-weight:600}.required-mark{color:#c94b43;margin-left:4px}.form-field input{height:40px;padding:0 11px}.form-field select{height:40px;padding:0 32px 0 11px}.form-field textarea{resize:vertical;min-height:92px;padding:10px 11px;line-height:1.55}.form-field [aria-invalid=true]{border-color:#c94b43}.field-error{color:#b33d36;margin:-2px 0 0;font-size:12px}.form-help,.inline-error{margin:0;font-size:12px;line-height:1.45}.form-help{color:#6f7883}.inline-error{color:#b33d36}.toast-region{z-index:70;pointer-events:none;gap:8px;width:min(360px,100vw - 36px);display:grid;position:fixed;top:18px;right:18px}.toast{color:#27303a;pointer-events:auto;background:#fff;border:1px solid #dce2e8;border-left-width:4px;border-radius:6px;grid-template-columns:20px minmax(0,1fr) 32px;align-items:center;gap:9px;min-height:48px;padding:7px 7px 7px 14px;display:grid;box-shadow:0 10px 30px #232b3429}.toast>span{overflow-wrap:anywhere;min-width:0;font-size:14px;line-height:1.45}.toast-success{border-left-color:#31836b}.toast-success>svg{color:#31836b}.toast-error{border-left-color:#c94b43}.toast-error>svg{color:#c94b43}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}@media (prefers-reduced-motion:reduce){.spin{animation:none}}@media (width<=760px){.sidebar{border-bottom:1px solid #e6e9ed;border-right:0;align-items:center;gap:10px;width:100%;height:60px;padding:8px 10px;display:flex;position:sticky;top:0}.brand-mark{flex:0 0 42px;width:42px;height:42px;margin:0}.main-navigation{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:0;display:grid}.navigation-link{justify-content:center;gap:7px;min-width:0;min-height:42px;padding:0 8px}.navigation-link.is-active:before{border-radius:2px 2px 0 0;width:auto;height:3px;inset:auto 12px 0}.workspace{margin-left:0}.topbar{height:58px;padding:0 14px;position:static}.topbar h1{font-size:18px}.page-content{padding:12px}.content-panel{min-height:360px}.page-toolbar{padding:13px}.list-summary{padding:0 14px}.activities-table th,.activities-table td,.teachers-table th,.teachers-table td,.import-table th,.import-table td,.students-table th,.students-table td{padding-left:14px;padding-right:14px}.activity-detail-header{padding:20px 18px 8px}.activity-meta{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 18px 20px}.activity-note{grid-column:1/-1}.roster-heading{padding-left:18px;padding-right:18px}.import-error,.import-preview{margin-left:18px;margin-right:18px}}@media (width<=540px){.administrator{gap:5px;font-size:12px}.page-toolbar{flex-direction:column;align-items:stretch;gap:10px}.search-form,.page-toolbar>.button-primary{width:100%}.detail-navigation{padding:12px}.detail-navigation .button{width:100%}.activity-detail-header{padding:18px 14px 8px}.activity-detail-header h2{font-size:20px}.activity-meta{grid-template-columns:minmax(0,1fr);gap:14px;padding:10px 14px 18px}.activity-note{grid-column:auto}.roster-heading{flex-direction:column;align-items:stretch;gap:13px;min-height:0;padding:15px 14px}.roster-title{justify-content:space-between;align-items:flex-start}.roster-title>div{align-items:flex-start}.roster-actions,.csv-file-button{width:100%}.import-error,.import-preview{margin-left:12px;margin-right:12px}.import-preview-header{flex-direction:column;align-items:stretch}.import-preview-header>.button{width:100%}.import-table{min-width:440px}.students-table{min-width:520px}.dialog-backdrop{align-items:end;padding:10px}.dialog{max-height:calc(100vh - 20px)}.toast-region{width:calc(100vw - 20px);top:68px;right:10px}}
