:root{color:#262626;background:#f5f7fa;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;background:#f5f7fa}button,input,textarea{font:inherit}h1,h2,h3,p{margin:0}.app-shell{min-height:100vh;background:#f5f7fa}.app-sider{position:sticky!important;top:0;height:100vh;background:#fff}.app-sider .n-layout-sider-scroll-container{display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 18px;cursor:pointer;border-bottom:1px solid #efeff5}.brand-mark{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;color:#fff;background:#18a058;border-radius:6px}.brand-mark img{width:100%;height:100%;border-radius:inherit;object-fit:contain}.side-brand strong,.mobile-brand strong{display:block;color:#262626;font-size:14px;font-weight:600;line-height:1.35}.side-brand small,.side-footer small{display:block;margin-top:2px;color:#8a8f98;font-size:11px;line-height:1.35}.app-sider .n-menu{padding:12px 10px}.side-footer{display:flex;align-items:flex-start;gap:9px;margin-top:auto;padding:16px 18px 20px;color:#8a8f98}.side-footer svg{margin-top:2px;color:#18a058}.side-footer strong{display:block;color:#595d63;font-size:12px;font-weight:500;line-height:1.35}.main-layout{min-width:0;min-height:100vh;background:#f5f7fa}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 28px;background:#fff}.topbar-title strong{display:block;color:#262626;font-size:15px;font-weight:600;line-height:1.35}.topbar-title span{display:block;margin-top:1px;color:#8a8f98;font-size:12px;line-height:1.35}.mobile-brand,.mobile-nav{display:none}.mobile-menu-trigger{display:none;width:34px;height:34px;padding:0;border:0;color:#333639;background:transparent;place-items:center;cursor:pointer}.user-menu-button .n-button__content{gap:6px}.public-shell{min-height:100vh}.auth-page{display:grid;min-height:100vh;grid-template-columns:minmax(360px,.92fr) minmax(460px,1.08fr);background:#fff}.auth-brand-panel{display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(32px,5vw,72px);color:#fff;background:#163b38}.auth-brand{display:flex;align-items:center;gap:11px;font-size:16px}.auth-brand-panel h1{margin-top:22px;font-size:clamp(34px,4vw,52px);font-weight:600;line-height:1.25}.auth-brand-panel p{max-width:540px;margin-top:20px;color:#c8dcda;font-size:15px;line-height:1.8}.auth-security-note{color:#a9c7c3;font-size:12px}.auth-form-panel{display:grid;min-height:100vh;place-items:center;padding:40px}.auth-form-wrap{width:min(100%,430px)}.auth-heading{margin-bottom:28px}.auth-heading>span{color:#0f8b68;font-size:13px;font-weight:600}.auth-heading h2{margin-top:6px;color:#242726;font-size:28px;font-weight:600;line-height:1.35}.auth-heading p,.auth-switch{margin-top:8px;color:#757a80;font-size:13px;line-height:1.65}.auth-switch{margin:20px 0;text-align:center}.auth-back{margin-bottom:24px}.settings-grid,.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.dashboard-view .n-statistic .n-statistic-value__prefix{margin-right:8px;color:#0f8b68}.dashboard-view .n-card>.n-card__content>.n-text{display:block;margin-top:5px;font-size:12px}.assignment-brief-list,.assignment-list{display:flex;flex-direction:column}.assignment-brief{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;padding:14px 2px;border:0;border-bottom:1px solid #efeff5;color:#333639;background:transparent;text-align:left;cursor:pointer}.assignment-brief:last-child{border-bottom:0}.assignment-brief:hover strong{color:#0f8b68}.assignment-brief strong,.assignment-brief small{display:block}.assignment-brief small{margin-top:4px;color:#8a8f98;font-size:12px}.assignment-deadline{display:flex;flex:0 0 auto;align-items:center;gap:8px;color:#757a80;font-size:12px}.class-card{height:100%}.class-card.clickable{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}.class-card.clickable:hover{border-color:#8bc8b5;box-shadow:0 8px 24px #20433a14}.class-card-title{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.class-icon,.assignment-row-icon{display:grid;width:36px;height:36px;place-items:center;color:#0f8b68;border:1px solid #cde7df;border-radius:6px;background:#eff9f5}.class-card-title strong,.class-card-title small{display:block}.class-card-title small{margin-top:3px;color:#8a8f98;font-size:11px}.class-card>.n-card__content>p{min-height:44px;margin-top:16px;color:#757a80;font-size:13px;line-height:1.65}.class-card-meta,.assignment-card-meta{display:flex;align-items:center;gap:14px;color:#757a80;font-size:12px}.class-card-meta span,.assignment-card-meta span,.inline-icon{display:inline-flex;align-items:center;gap:5px}.class-card-meta>svg{margin-left:auto}.compact-modal{width:min(92vw,480px)}.form-modal{width:min(94vw,680px)}.assignment-row{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(190px,auto) auto;gap:14px;align-items:center;padding:16px 4px;border:0;border-bottom:1px solid #efeff5;color:#333639;background:transparent;text-align:left;cursor:pointer}.assignment-row:hover .assignment-row-main strong{color:#0f8b68}.assignment-row-main strong,.assignment-row-main small,.assignment-row-status small{display:block}.assignment-row-main small,.assignment-row-status small{margin-top:5px;color:#8a8f98;font-size:12px}.assignment-row-status{text-align:right}.assignment-row-status small{display:flex;align-items:center;justify-content:flex-end;gap:5px}.assignment-description{margin-top:18px;color:#595d63;font-size:14px;line-height:1.75;white-space:pre-wrap}.invite-code-block{display:flex;min-height:54px;align-items:center;gap:10px}.invite-code-block span{color:#8a8f98;font-size:12px}.invite-code-block strong{color:#0f8b68;font-size:20px;letter-spacing:0}.invite-code-block .n-button{margin-left:auto}.teacher-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.assignment-management-surface{padding:18px 20px 20px;border:1px solid #efeff5;border-radius:6px;background:#fff}.teacher-assignment-card{padding:18px;border:1px solid #e3e5e8;border-radius:6px;background:#fff}.teacher-assignment-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.teacher-assignment-card header strong,.teacher-assignment-card header small{display:block}.teacher-assignment-card header small{margin-top:3px;color:#8a8f98;font-size:11px}.teacher-assignment-card p{min-height:44px;color:#595d63;font-size:13px;line-height:1.65}.teacher-assignment-card footer{margin-top:18px;padding-top:14px;border-top:1px solid #efeff5}.assignment-card-meta{align-items:flex-start;flex-direction:column;gap:6px;margin-top:14px}.late-text{color:#d9822b;font-weight:600}.markdown-content{color:inherit;font-size:13px;line-height:1.65;overflow-wrap:anywhere}.markdown-content>:first-child{margin-top:4px}.markdown-content>:last-child{margin-bottom:0}.markdown-content pre{overflow:auto;padding:10px;border-radius:5px;background:#00000012}.markdown-content code{font-family:SFMono-Regular,Consolas,monospace}.app-content{overflow:visible}.page-frame{width:min(100%,1400px);margin:0 auto;padding:24px 28px 48px}.page-view{display:flex;flex-direction:column;gap:16px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.page-header h1{color:#262626;font-size:24px;font-weight:600;line-height:1.4}.page-header p{margin-top:5px;color:#757a80;font-size:14px;line-height:1.6}.page-header>.n-alert{width:auto;max-width:360px}.n-card{box-shadow:none}.workspace-grid{display:grid;grid-template-columns:minmax(340px,380px) minmax(0,1fr);gap:16px;align-items:start}.submission-card,.workspace-card,.history-table-card{min-width:0}.submission-card .n-card-header,.workspace-card .n-card__content{padding:18px 20px}.submission-card .n-card__content{padding:0 20px 20px}.workspace-card{min-height:0}.workspace-card .n-tabs-nav{margin-bottom:12px}.card-title,.detail-section-title{display:flex;align-items:center;gap:8px;color:#333639;font-size:15px;font-weight:600}.card-title svg,.detail-section-title svg{color:#18a058}.submission-card .n-form-item{margin-bottom:16px}.upload-block .n-upload-dragger{padding:12px}.upload-block .n-upload-dragger svg{color:#18a058}.upload-block .n-upload-dragger strong,.upload-block .n-upload-dragger span{display:block}.upload-block .n-upload-dragger strong{margin-top:7px;color:#333639;font-size:13px;font-weight:500}.upload-block .n-upload-dragger span{margin-top:3px;color:#8a8f98;font-size:12px}.form-footnote{display:flex;justify-content:space-between;gap:10px;margin:-6px 0 18px;color:#8a8f98;font-size:12px;line-height:1.4}.form-footnote.danger{color:#d03050}.form-actions{display:flex;gap:10px}.source-panel{min-width:0}.panel-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px}.panel-meta strong{display:block;overflow-wrap:anywhere;color:#333639;font-size:14px;font-weight:600}.panel-meta span{display:block;margin-top:4px;color:#8a8f98;font-size:12px}.code-scroll{overflow:auto;border:1px solid #efeff5;border-radius:6px;background:#fafafa;padding:14px}.code-scroll .n-code{font-size:13px;line-height:1.7}.grading-panel{min-height:440px;padding:2px 0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.eyebrow{display:block;color:#18a058;font-size:12px;font-weight:500;line-height:1.4}.panel-heading h2{margin-top:3px;color:#333639;font-size:20px;font-weight:600;line-height:1.4}.feedback-empty{min-height:300px}.feedback-empty .n-empty__icon{color:#18a058}.progress-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 8px;color:#595d63;font-size:13px}.progress-topline strong{color:#18a058;font-weight:600}.grading-steps{margin-top:22px}.activity-list{display:flex;flex-direction:column;gap:7px;margin-top:18px}.activity-list span{padding-left:10px;border-left:2px solid #e0e2e6;color:#8a8f98;font-size:12px;line-height:1.45}.result-overview{display:grid;grid-template-columns:128px minmax(0,1fr);gap:18px;align-items:center;padding:2px 0 6px}.result-summary{min-width:0;padding-left:18px;border-left:1px solid #efeff5}.result-summary p{margin-top:8px;color:#595d63;font-size:13px;line-height:1.65}.feedback-section+.feedback-section{margin-top:18px}.feedback-section h3{display:flex;align-items:center;gap:7px;color:#333639;font-size:14px;font-weight:600}.feedback-section h3 svg{color:#18a058}.feedback-section>p{margin-top:9px;color:#595d63;font-size:13px;line-height:1.75}.issue-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.issue-list.compact{gap:8px}.issue-row{padding:12px;border:1px solid #efeff5;border-radius:6px;background:#fafafa}.issue-title{display:flex;align-items:center;gap:7px;color:#333639;font-size:13px}.issue-title small{margin-left:auto;color:#8a8f98;font-size:12px}.severity-dot{display:inline-block;width:7px;height:7px;flex:0 0 auto;border-radius:50%}.severity-dot.high{background:#d03050}.severity-dot.medium{background:#f0a020}.severity-dot.low{background:#18a058}.issue-row p{margin:6px 0 4px;color:#757a80;font-size:12px;line-height:1.6}.issue-row>span{color:#18a058;font-size:12px;line-height:1.5}.saved-note{display:flex;align-items:center;gap:6px;margin-top:16px;color:#8a8f98;font-size:12px}.saved-note svg:first-child{color:#18a058}.saved-note svg:last-child{margin-left:auto;color:#b5b7bb}.chat-panel{display:flex;min-height:390px;flex-direction:column;padding:18px 20px 20px}.chat-panel.compact{min-height:330px}.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#333639}.chat-heading>div{display:flex;align-items:center;gap:8px}.chat-heading svg{color:#18a058}.chat-heading strong{font-size:15px;font-weight:600}.chat-heading>span{color:#8a8f98;font-size:12px}.chat-feed{display:flex;min-height:170px;max-height:300px;flex:1;flex-direction:column;gap:12px;overflow:auto;padding:18px 0 10px}.chat-bubble{max-width:94%;align-self:flex-start;padding:10px 12px;border-radius:6px;background:#f5f7fa}.chat-bubble.user{align-self:flex-end;color:#fff;background:#18a058}.chat-bubble span{color:#18a058;font-size:11px;font-weight:500}.chat-bubble.user span{color:#dcf5e6}.chat-bubble p{margin-top:4px;color:#333639;font-size:13px;line-height:1.6;white-space:pre-wrap}.chat-bubble.user p{color:#fff}.quick-prompts{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}.quick-prompts-label{width:100%;color:#8a8f98;font-size:12px}.quick-prompts .n-button{max-width:100%;height:auto;min-height:28px;text-align:left;white-space:normal}.chat-interrupted{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;color:#d03050;font-size:12px}.error-reference{display:block;margin-top:8px;color:inherit;opacity:.75}.chat-composer{display:flex;align-items:flex-end;gap:8px}.chat-composer .n-input{flex:1}.chat-composer .n-button{min-width:76px}.history-table-card .n-card__content{padding:18px 20px 20px}.filter-bar{margin-bottom:18px}.filter-input{width:260px}.filter-input.small{width:180px}.filter-select{width:150px}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;color:#8a8f98;font-size:12px}.file-cell strong{display:block;color:#333639;font-size:13px;font-weight:600}.file-cell span{display:block;margin-top:3px;color:#8a8f98;font-size:12px}.score-text{color:#18a058}.grade-pill{color:#d99900;font-weight:600}.chat-drawer .n-drawer-body-content-wrapper{padding:0}@media(max-width:1080px){.workspace-grid{grid-template-columns:minmax(300px,340px) minmax(0,1fr)}}@media(max-width:860px){.app-sider{display:none}.app-header{height:56px;padding:0 16px}.mobile-menu-trigger{display:grid}.mobile-brand{display:flex;align-items:center;gap:8px;color:#18a058;cursor:pointer}.app-header .mobile-brand{margin-right:auto;margin-left:8px}.mobile-brand strong{font-size:14px}.topbar-title{display:none}.mobile-nav{display:block}.page-frame{padding:20px 16px 36px}.workspace-grid{grid-template-columns:minmax(0,1fr)}.workspace-card{min-height:auto}.dashboard-grid,.settings-grid,.teacher-assignment-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.page-view{gap:14px}.page-header{flex-direction:column;gap:12px}.page-header h1{font-size:22px}.page-header>.n-alert{width:100%;max-width:none}.submission-card .n-card-header,.workspace-card .n-card__content,.history-table-card .n-card__content,.submission-card .n-card__content{padding-right:16px;padding-left:16px}.form-footnote,.pagination-row{align-items:flex-start;flex-direction:column}.form-actions,.form-actions .n-button{width:100%}.result-overview{grid-template-columns:minmax(0,1fr);gap:12px}.result-summary{padding-top:12px;padding-left:0;border-top:1px solid #efeff5;border-left:0}.chat-composer{align-items:stretch;flex-direction:column}.chat-composer .n-button,.filter-input,.filter-input.small,.filter-select{width:100%}.user-menu-button span,.app-header .n-tag{display:none}.assignment-row{grid-template-columns:auto minmax(0,1fr) auto}.assignment-row-status{grid-column:2 / -1;text-align:left}.assignment-row-status small{justify-content:flex-start}.assignment-brief{align-items:flex-start;flex-direction:column}.auth-form-panel{padding:28px 20px}}@media(max-width:760px){.auth-page{display:block}.auth-brand-panel{min-height:auto;padding:24px 20px 30px}.auth-brand-panel>div:nth-child(2){margin-top:34px}.auth-brand-panel h1{font-size:30px}.auth-brand-panel p{margin-top:12px}.auth-security-note{margin-top:30px}.auth-form-panel{min-height:auto}}
