:root{color:#3b332b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4efe4;font-family:Inter,ui-sans-serif,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:radial-gradient(circle at 20% 10%,#ffffffb8,#0000 36%),linear-gradient(#f8f4eb 0%,#eee6d7 100%);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}#root,.page-shell{min-height:100vh}.app{width:min(920px,100% - 32px);margin:0 auto;padding:56px 0 80px}.eyebrow{color:#8a5f32;letter-spacing:.18em;margin:0 0 8px;font-size:.8rem;font-weight:800}.subtitle{color:#746453;margin:14px 0 0}@media (width<=620px){.app{padding-top:34px}}.topbar{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8f4ebf5;border-bottom:1px solid #ded4c2;position:sticky;top:0}.topbar-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:18px;width:min(1040px,100% - 32px);min-height:66px;margin:0 auto;display:grid}.menu-wrapper{z-index:40;position:relative}.menu-button{background:#fffaf0;border:1px solid #cabda7;border-radius:11px;place-content:center;gap:5px;width:42px;height:42px;padding:0;display:grid}.menu-button:hover{background:#f3ead9;border-color:#987b59}.menu-button span{background:#4e4032;border-radius:999px;width:19px;height:2px;display:block}.topbar-brand{align-items:baseline;gap:10px;display:flex}.topbar-brand strong{color:#76502d;letter-spacing:.13em;font-size:.94rem}.topbar-brand span{color:#756858;font-size:.88rem}.topbar-page-name{color:#44382d;font-size:.9rem;font-weight:750}.page-menu{z-index:50;background:#fffaf0;border:1px solid #cfc1aa;border-radius:14px;width:240px;padding:7px;display:grid;position:absolute;top:calc(100% + 10px);left:0;overflow:hidden;box-shadow:0 16px 38px #3e2f1e2e}.page-menu button{color:#514334;text-align:left;background:0 0;border:0;border-radius:9px;padding:12px 13px;font-weight:700}.page-menu button:hover{background:#f1e7d5}.page-menu button.active{color:#67431f;background:#e8d8bb}.menu-backdrop{z-index:20;cursor:default;background:#362b1f14;border:0;position:fixed;inset:0}@media (width<=620px){.topbar-brand span{display:none}.topbar-page-name{font-size:.78rem}}.assessment-setup-header{margin-bottom:30px}.assessment-setup-header h1{color:#35291d;margin:0;font-size:clamp(2.5rem,7vw,4.5rem);line-height:.95}.assessment-builder-card,.saved-assessments-section{background:#fffaf0;border:1px solid #d4c3a5;border-radius:18px;padding:24px;box-shadow:0 8px 22px #48341f14}.builder-heading,.saved-assessments-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.builder-label{color:#8a5f32;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:800}.builder-heading h2,.saved-assessments-heading h2{color:#35291d;margin:0;font-size:1.45rem}.live-total{text-align:right;background:#f3e7cf;border:1px solid #d4c3a5;border-radius:14px;min-width:112px;padding:10px 14px;display:grid}.live-total span{color:#786653;text-transform:uppercase;font-size:.72rem;font-weight:750}.live-total strong{color:#60401f;margin-top:2px;font-size:1.45rem}.assessment-title-field,.criterion-row label{gap:8px;display:grid}.assessment-title-field>span,.criterion-row label>span{color:#5b4a38;font-size:.84rem;font-weight:800}.assessment-title-field input,.criterion-row input{color:#35291d;background:#fffdf7;border:1px solid #cdbd9f;border-radius:11px;outline:none;width:100%;padding:12px 14px}.assessment-title-field input:focus,.criterion-row input:focus{border-color:#9a6f42;box-shadow:0 0 0 3px #9a6f4229}.criteria-builder{border-top:1px solid #e1d5bf;margin-top:28px;padding-top:24px}.criteria-builder-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.criteria-builder-heading h3,.grade-weighting-placeholder h3{color:#3b2e22;margin:0;font-size:1.05rem}.criteria-builder-heading p,.grade-weighting-placeholder p{color:#7a6956;margin:5px 0 0;font-size:.85rem;line-height:1.5}.add-criterion-button{color:#684722;background:#f5ead7;border:1px solid #bca884;border-radius:10px;flex-shrink:0;padding:9px 12px;font-weight:750}.criteria-list{gap:12px;display:grid}.criterion-row{background:#fbf4e8;border:1px solid #e0d3bd;border-radius:14px;grid-template-columns:minmax(0,1fr) 140px 42px;align-items:end;gap:12px;padding:15px;display:grid}.remove-criterion-button{color:#9a7f64;background:0 0;border:0;border-radius:10px;place-items:center;width:42px;height:43px;font-size:1.45rem;display:grid}.remove-criterion-button:hover{color:#963f2c;background:#f3d7cf}.criteria-total-row{border-top:1px solid #e2d5bf;justify-content:space-between;align-items:center;gap:18px;margin-top:15px;padding:16px 4px 0;display:flex}.criteria-total-row span{color:#766653;font-size:.86rem;font-weight:700}.criteria-total-row strong{color:#5e3e20}.grade-weighting-placeholder{background:#f5ead78c;border:1px dashed #bca884;border-radius:15px;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;padding:20px;display:flex}.coming-soon-badge{color:#6f4724;background:#ead8b8;border-radius:999px;flex-shrink:0;padding:7px 11px;font-size:.78rem;font-weight:800}.assessment-form-error,.assessment-form-success{border-radius:11px;margin:18px 0 0;padding:11px 13px;font-size:.88rem;font-weight:700}.assessment-form-error{color:#8c3f2c;background:#fff2ee;border:1px solid #dfb8ad}.assessment-form-success{color:#45643a;background:#f2f8ee;border:1px solid #b8ccb0}.assessment-form-actions{justify-content:flex-end;margin-top:22px;display:flex}.assessment-primary-button{color:#fffaf0;background:#7a4f29;border:1px solid #7a4f29;border-radius:11px;padding:11px 17px;font-weight:750}.saved-assessments-section{margin-top:22px}.saved-assessments-heading>span{color:#786957;font-size:.86rem;font-weight:750}.no-assessments-card{text-align:center;border:1px dashed #bca884;border-radius:14px;padding:24px}.no-assessments-card h3{margin:0}.no-assessments-card p{color:#786754;margin:8px 0 0}.saved-assessment-list{gap:13px;display:grid}.saved-assessment-card{background:#fbf4e8;border:1px solid #ddcfb7;border-radius:15px;padding:17px}.saved-assessment-top{justify-content:space-between;gap:16px;display:flex}.saved-assessment-top h3{margin:0}.saved-assessment-top p{color:#7a6956;margin:5px 0 0;font-size:.82rem}.assessment-total-badge{color:#6f4724;background:#ead8b8;border-radius:999px;height:fit-content;padding:7px 10px;font-weight:800}.saved-criteria-list{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.saved-criterion{background:#fffaf0;border:1px solid #d8c6a7;border-radius:999px;gap:4px;padding:6px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.saved-criterion small{color:#947653;font-size:inherit}.saved-assessment-actions{justify-content:flex-end;margin-top:15px;display:flex}.delete-assessment-button{color:#914936;background:#fff5f1;border:1px solid #d6b3a9;border-radius:9px;padding:8px 12px;font-weight:750}@media (width<=620px){.builder-heading,.criteria-builder-heading,.grade-weighting-placeholder{flex-direction:column;align-items:stretch}.live-total{text-align:left}.criterion-row{grid-template-columns:1fr}.remove-criterion-button,.assessment-primary-button{width:100%}}.grade-boundaries-builder{background:#fffaefc7;border:1px solid #d9c8aa;border-radius:16px;gap:18px;padding:clamp(16px,2.5vw,24px);display:grid}.grade-boundaries-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.grade-boundaries-heading h3{color:#4c3927;margin:3px 0 5px}.grade-boundaries-heading p{color:#786957;margin:0;line-height:1.5}.add-grade-boundary-button{color:#533c26;background:#efe1c9;border:1px solid #aa8c62;border-radius:11px;flex:none;padding:10px 14px;font-weight:800}.add-grade-boundary-button:hover{background:#e4d1b2}.grade-boundaries-example{color:#6a5845;background:#ecdfc78c;border-left:4px solid #b69566;border-radius:8px;padding:11px 14px;line-height:1.5}.grade-boundaries-list{gap:10px;display:grid}.grade-boundary-row{background:#fffaf0;border:1px solid #dfd0b6;border-radius:13px;grid-template-columns:minmax(180px,1fr) minmax(170px,.5fr) auto;align-items:end;gap:12px;padding:13px;display:grid}.grade-name-field,.grade-percentage-field{gap:6px;display:grid}.grade-name-field>span,.grade-percentage-field>span{color:#655543;font-size:.78rem;font-weight:800}.grade-name-field input,.grade-percentage-field input{color:#47392c;background:#fffdf8;border:1px solid #cdbd9f;border-radius:10px;width:100%;min-width:0;padding:10px 12px}.grade-name-field input:focus,.grade-percentage-field input:focus{border-color:#815f39;outline:none;box-shadow:0 0 0 3px #815f3924}.percentage-input-wrapper{background:#fffdf8;border:1px solid #cdbd9f;border-radius:10px;grid-template-columns:1fr auto;align-items:center;display:grid;overflow:hidden}.percentage-input-wrapper:focus-within{border-color:#815f39;box-shadow:0 0 0 3px #815f3924}.percentage-input-wrapper input{box-shadow:none;border:0;border-radius:0}.percentage-input-wrapper input:focus{box-shadow:none;border:0}.percentage-input-wrapper>span{color:#725f49;padding:0 12px 0 5px;font-weight:850}.remove-grade-boundary-button{color:#805b3d;background:#f5ead8;border:1px solid #cebda0;border-radius:10px;width:38px;height:38px;font-size:1.25rem;line-height:1}.remove-grade-boundary-button:hover:not(:disabled){background:#ead5ba}.remove-grade-boundary-button:disabled{cursor:not-allowed;opacity:.38}.grade-boundaries-note{color:#7b6c5a;margin:0;font-size:.84rem;line-height:1.45}.saved-grade-section{border-top:1px solid #e2d4bd;gap:8px;padding-top:13px;display:grid}.saved-grade-section>strong{color:#5d4934;font-size:.8rem}.saved-grade-boundaries-list{flex-wrap:wrap;gap:7px;display:flex}.saved-grade-boundary{color:#5f4933;background:#f5ead6;border:1px solid #cbb591;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:.78rem;font-weight:750;display:inline-flex}.saved-grade-boundary small{color:#866b4e;font-size:.7rem}.no-grade-boundaries-message{color:#8a7965;margin:0;font-size:.82rem}@media (width<=720px){.grade-boundaries-heading{display:grid}.add-grade-boundary-button{justify-self:start}.grade-boundary-row{grid-template-columns:1fr}.remove-grade-boundary-button{justify-self:end}}.collapsible-section{background:#fffaefc7;border:1px solid #d9c8aa;border-radius:16px;overflow:hidden}.collapsible-summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;list-style:none;display:flex}.collapsible-summary::-webkit-details-marker{display:none}.collapsible-summary:hover{background:#ebdcc247}.collapsible-summary:focus-visible{outline-offset:-3px;outline:3px solid #815f3933}.collapsible-summary-text{gap:3px;min-width:0;display:grid}.collapsible-label{color:#8a6034;letter-spacing:.13em;text-transform:uppercase;font-size:.72rem;font-weight:850}.collapsible-title{color:#493726;font-size:1.05rem}.collapsible-description{color:#786957;font-size:.84rem;line-height:1.45}.collapsible-summary-end{flex:none;align-items:center;gap:10px;display:flex}.collapsible-badge{color:#674c31;background:#f1e3cc;border:1px solid #cbb28c;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:800}.collapsible-arrow{color:#6e5133;font-size:1.2rem;transition:transform .16s}.collapsible-section[open] .collapsible-arrow{transform:rotate(180deg)}.collapsible-content{border-top:1px solid #dfd0b7;padding:clamp(16px,2.5vw,22px)}@media (width<=620px){.collapsible-summary{align-items:flex-start;padding:16px}.collapsible-description{display:none}.collapsible-content{padding:14px}}.comment-writer{gap:18px;display:grid}.comment-writer-introduction{background:#f4e8d275;border:1px solid #dbc8a8;border-radius:13px;padding:15px 17px}.comment-writer-introduction p{color:#6f604f;margin:0;line-height:1.55}.comment-writer-introduction p+p{margin-top:5px}.comment-criterion-list{gap:12px;display:grid}.comment-criterion-editor{background:#fffaf0;border:1px solid #dac8aa;border-radius:14px;overflow:hidden}.comment-criterion-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px;list-style:none;display:flex}.comment-criterion-summary::-webkit-details-marker{display:none}.comment-criterion-summary:hover{background:#ebdcc24d}.comment-criterion-summary>div{gap:3px;display:grid}.comment-criterion-summary strong{color:#4d3926;font-size:1rem}.comment-criterion-summary span{color:#786957;font-size:.8rem}.comment-criterion-badge{background:#f0e1c9;border:1px solid #cbb38c;border-radius:999px;flex:none;padding:5px 9px;font-weight:800;color:#64492f!important;font-size:.7rem!important}.comment-score-list{border-top:1px solid #dfd0b7;gap:13px;padding:17px;display:grid}.comment-score-field{grid-template-columns:76px minmax(0,1fr);align-items:start;gap:12px;display:grid}.comment-score-label{color:#72573b;padding-top:11px;font-size:.78rem;font-weight:850}.comment-score-field textarea{box-sizing:border-box;resize:vertical;color:#493c30;width:100%;min-height:92px;font:inherit;background:#fffdf8;border:1px solid #ceb995;border-radius:11px;padding:11px 13px;line-height:1.5}.comment-score-field textarea:focus{border-color:#87633f;outline:3px solid #87633f24}.comment-writer-empty{color:#786957;margin:0}@media (width<=620px){.comment-score-field{grid-template-columns:1fr;gap:6px}.comment-score-label{padding-top:0}}.marking-header{margin-bottom:30px}.marking-header h1{color:#35291d;margin:0;font-size:clamp(2.5rem,7vw,4.5rem);line-height:.95}.marking-controls{background:#fffaf0;border:1px solid #d4c3a5;border-radius:16px;grid-template-columns:minmax(130px,.35fr) minmax(240px,1fr) auto auto;align-items:end;gap:14px;padding:18px 20px;display:grid;box-shadow:0 8px 22px #48341f14}.marking-control-field{gap:7px;display:grid}.marking-control-field>span,.marking-sort-control>span{color:#574838;font-size:.82rem;font-weight:800}.marking-control-field select{color:#35291d;background:#fffdf7;border:1px solid #c9b894;border-radius:10px;outline:none;width:100%;min-width:0;padding:10px 38px 10px 12px;font-weight:750}.marking-control-field select:focus{border-color:#98704a;box-shadow:0 0 0 3px #98704a26}.marking-sort-control{gap:7px;display:grid}.marking-sort-buttons{background:#fffdf7;border:1px solid #c9b894;border-radius:10px;display:inline-flex;overflow:hidden}.marking-sort-button{color:#6a5947;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-right:1px solid #d8c8ad;padding:10px 12px;font-size:.78rem;font-weight:800;transition:background .14s,color .14s}.marking-sort-button:last-child{border-right:0}.marking-sort-button:hover{color:#52391f;background:#f2e5cf}.marking-sort-button--selected{color:#fffaf0;background:#76502d}.marking-sort-button--selected:hover{color:#fffaf0;background:#654224}.marking-sort-button:focus-visible{z-index:1;outline-offset:-3px;outline:3px solid #98704a40;position:relative}.student-count{color:#796957;white-space:nowrap;place-self:center end;font-size:.9rem;font-weight:700}.assessment-table-card{background:#fffaf0;border:1px solid #d4c3a5;border-radius:18px;margin-top:18px;overflow:hidden;box-shadow:0 8px 22px #48341f14}.table-heading{border-bottom:1px solid #ded1b9;justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.table-label{color:#8a5f32;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem;font-weight:800}.table-heading h2{color:#35291d;margin:0;font-size:1.45rem}.table-subtitle{color:#796957;margin:6px 0 0;font-size:.86rem}.table-scroll{width:100%;overflow:visible}.assessment-table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:0}.assessment-table th{color:#62513f;text-align:left;letter-spacing:.08em;overflow-wrap:anywhere;text-transform:uppercase;white-space:normal;background:#eee4d2;min-width:0;padding:clamp(8px,1vw,14px) clamp(5px,.8vw,14px);font-size:.78rem;line-height:1.25}.assessment-table td{color:#3c3025;border-top:1px solid #e6dccb;min-width:0;padding:clamp(8px,1vw,16px) clamp(5px,.8vw,14px)}.assessment-table tbody tr:first-child td{border-top:0}.assessment-table tbody tr:hover{background:#faf3e7}.assessment-table th span,.assessment-table th small{display:block}.assessment-table th small{color:#8b745a;letter-spacing:normal;text-transform:none;margin-top:3px;font-size:.74rem}.assessment-table th:first-child,.student-name-cell,.mark-input-cell,.student-total-cell{min-width:0}.criterion-heading-text{overflow-wrap:anywhere;display:block}.student-name-cell{align-items:center;gap:clamp(6px,1vw,13px);display:flex;overflow:hidden}.student-name-cell strong{overflow-wrap:anywhere;min-width:0;font-size:clamp(.72rem,1.1vw,.95rem);line-height:1.25}.table-student-avatar{color:#6f4724;background:#ead8b8;border-radius:clamp(8px,1vw,11px);flex-shrink:0;place-items:center;width:clamp(28px,3vw,38px);height:clamp(28px,3vw,38px);font-size:clamp(.72rem,1vw,.95rem);font-weight:800;display:grid}.mark-input-cell{text-align:center}.mark-input{border:1px solid var(--mark-border);background:var(--mark-background);width:min(100%,86px);min-width:0;height:36px;color:var(--mark-text);text-align:center;border-radius:999px;outline:none;margin:0 auto;padding:5px 7px;font-weight:850;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s;display:block}.mark-input::placeholder{color:#ad9f8d;opacity:1}.mark-input:hover{transform:translateY(-1px)}.mark-input:focus{border-color:#72502f;box-shadow:0 0 0 3px #7a4f292b,0 3px 9px #48341f17}.student-total-cell{color:#654624;text-align:center;background:#ead8b84d;font-weight:850}.empty-mark-cell,.empty-total-cell{color:#ae9e88;text-align:center;min-width:0;font-weight:700}.total-column-heading,.empty-total-cell{background:#ead8b84d}.empty-total-cell{color:#795c3d}.empty-state-card{background:#fffaf0a6;border:1px dashed #bca884;border-radius:18px;padding:28px}.empty-state-card h2{color:#35291d;margin:0}.empty-state-card p{color:#746453;margin:9px 0 0;line-height:1.6}@media (width<=1040px){.marking-controls{grid-template-columns:minmax(130px,.4fr) minmax(220px,1fr) auto}.student-count{grid-column:1/-1;justify-self:start}}@media (width<=720px){.marking-controls{grid-template-columns:1fr;align-items:stretch}.marking-control-field select{width:100%}.marking-sort-buttons{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.marking-sort-button{border-right:1px solid #d8c8ad;padding-inline:8px}.marking-sort-button:last-child{border-right:0}.student-count{grid-column:auto;justify-self:start}.assessment-table th{font-size:.65rem}.assessment-table th small{font-size:.64rem}.student-name-cell{gap:5px}.table-student-avatar{display:none}.mark-input{height:32px;padding-inline:3px;font-size:.78rem}}.output-page{gap:28px;display:grid}.output-page-header h1{margin:6px 0 8px}.output-controls{background:#fffaf0d1;border:1px solid #d8c5a5;border-radius:16px;grid-template-columns:minmax(110px,.35fr) minmax(220px,1fr) minmax(190px,.75fr) auto;align-items:end;gap:14px;padding:18px;display:grid}.output-control-field{gap:7px;display:grid}.output-control-field>span{color:#574838;font-size:.8rem;font-weight:800}.output-control-field select{color:#47392c;background:#fffdf8;border:1px solid #cbb998;border-radius:10px;width:100%;min-width:0;padding:10px 12px}.output-control-field select:focus{border-color:#815f39;outline:none;box-shadow:0 0 0 3px #815f3924}.student-navigation-buttons{gap:8px;display:flex}.student-navigation-buttons button{color:#594128;white-space:nowrap;background:#f3e5cf;border:1px solid #bda580;border-radius:10px;padding:10px 12px;font-weight:750}.student-navigation-buttons button:hover:not(:disabled){background:#e8d4b5}.student-navigation-buttons button:disabled{cursor:not-allowed;opacity:.42}.output-preview-placeholder{background:#fffaf0d1;border:1px solid #d8c5a5;border-radius:18px;justify-content:space-between;align-items:flex-start;gap:24px;padding:clamp(22px,4vw,38px);display:flex}.output-preview-placeholder h2{color:#403124;margin:4px 0 8px}.output-preview-placeholder p{color:#746452;margin:3px 0}.output-placeholder-label{letter-spacing:.13em;text-transform:uppercase;font-size:.76rem;font-weight:850;color:#855c32!important}.export-class-button{color:#513b26;background:#e9d7ba;border:1px solid #a9875f;border-radius:11px;flex:none;padding:11px 17px;font-weight:800}.export-class-button:disabled{cursor:not-allowed;opacity:.48}.output-empty-state{background:#fffaf0d1;border:1px solid #d8c5a5;border-radius:18px;padding:28px}.output-empty-state h2{color:#403124;margin:0 0 8px}.output-empty-state p{color:#746452;margin:0}@media (width<=900px){.output-controls{grid-template-columns:1fr 1fr}.student-navigation-buttons{align-self:end}}@media (width<=620px){.output-controls{grid-template-columns:1fr}.student-navigation-buttons{width:100%}.student-navigation-buttons button{flex:1}.output-preview-placeholder{display:grid}}.output-page-actions{justify-content:flex-end;margin-top:-10px;display:flex}.student-assessment-card{background:#fffbf3f0;border:1px solid #d4bd97;border-radius:18px;gap:18px;padding:clamp(20px,3vw,30px);display:grid}.student-output-header{border-bottom:1px solid #dfcfb5;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:15px;display:flex}.student-output-header h2{color:#3e3023;margin:3px 0;font-size:clamp(1.65rem,3vw,2.25rem)}.output-card-label{color:#8a6034;letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:850}.output-assessment-title{color:#71614f;margin:0;font-size:1rem;font-weight:650}.output-class-badge{color:#5b4229;background:#f1e3cb;border:1px solid #c5ad88;border-radius:999px;flex:none;padding:8px 12px;font-weight:800}.output-criteria-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.output-criterion{background:#fffaf0;border:1px solid #ddcdb3;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.output-criterion-name{color:#5f5141;overflow-wrap:anywhere;min-width:0;font-size:.86rem;font-weight:750}.output-criterion strong{color:#493522;flex:none;font-size:1rem}.output-criterion small{color:#8a765d;margin-left:2px;font-size:.72rem}.output-result-summary{background:#efe1c9;border:1px solid #d3bd99;border-radius:13px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.output-result-summary>div{text-align:center;justify-content:center;align-items:center;gap:9px;padding:12px;display:flex}.output-result-summary>div+div{border-left:1px solid #d2ba94}.output-result-summary span{color:#725f49;font-size:.78rem;font-weight:750}.output-result-summary strong{color:#49331f;font-size:1rem}.incomplete-output-notice{color:#6d5944;background:#edddc180;border-left:4px solid #b68750;border-radius:7px;margin:-5px 0 0;padding:9px 12px;font-size:.84rem}.output-comment-section{gap:8px;display:grid}.output-comment-section label{color:#554331;font-size:.86rem;font-weight:800}.output-comment-section textarea{resize:vertical;color:#4e4134;width:100%;min-height:190px;font:inherit;background:#fffdf8;border:1px solid #d2c1a5;border-radius:13px;padding:14px;line-height:1.55}.output-comment-section textarea:disabled{cursor:not-allowed;color:#8c7e6b;opacity:1;background:#f5efe4}@media (width<=620px){.student-output-header{display:grid}.output-class-badge{justify-self:start}.output-result-summary{grid-template-columns:1fr}.output-result-summary>div{justify-content:space-between}.output-result-summary>div+div{border-top:1px solid #d2ba94;border-left:0}}.output-comment-heading label{color:#554331;font-size:.86rem;font-weight:800}.output-comment-heading span{color:#887865;font-size:.76rem}.output-comment-section textarea:not(:disabled){cursor:text;background:#fffdf8}.output-comment-section textarea:focus{border-color:#815f39;outline:none;box-shadow:0 0 0 3px #815f3924}@media (width<=620px){.output-comment-heading{gap:4px;display:grid}}.pdf-export-stage{pointer-events:none;width:1100px;position:fixed;top:0;left:-100000px}.pdf-student-card{box-sizing:border-box;color:#403124;background:#fffaf0;border:1px solid #d4bd97;border-radius:18px;flex-direction:column;gap:16px;width:1100px;height:500px;margin-bottom:24px;padding:26px 30px;font-family:inherit;display:flex;overflow:hidden}.pdf-card-header{border-bottom:1px solid #dfcfb5;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:14px;display:flex}.pdf-card-header h2{color:#3e3023;margin:0 0 4px;font-size:28px;line-height:1.1}.pdf-card-header p{color:#71614f;margin:0;font-size:17px;font-weight:650}.pdf-class-badge{color:#5b4229;background:#f1e3cb;border:1px solid #c5ad88;border-radius:999px;flex:none;padding:8px 13px;font-size:15px;font-weight:800}.pdf-criteria-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.pdf-criterion{background:#fffdf8;border:1px solid #ddcdb3;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex}.pdf-criterion-name{color:#5f5141;overflow-wrap:anywhere;min-width:0;font-size:15px;font-weight:750}.pdf-criterion strong{color:#493522;flex:none;font-size:18px}.pdf-criterion small{color:#8a765d;margin-left:2px;font-size:12px}.pdf-result-summary{background:#efe1c9;border:1px solid #d3bd99;border-radius:13px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.pdf-result-summary>div{text-align:center;justify-content:center;align-items:center;gap:7px;padding:11px 8px;display:flex}.pdf-result-summary>div+div{border-left:1px solid #d2ba94}.pdf-result-summary span{color:#725f49;font-size:13px;font-weight:750}.pdf-result-summary strong{color:#49331f;font-size:17px}.pdf-comment-section{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.pdf-comment-section h3{color:#554331;margin:0;font-size:15px}.pdf-comment-box{box-sizing:border-box;color:#4e4134;white-space:pre-wrap;overflow-wrap:anywhere;background:#fffdf8;border:1px solid #d2c1a5;border-radius:13px;flex:1;min-height:0;padding:15px;font-size:15px;line-height:1.5;overflow:hidden}.pdf-comment-box--dense{font-size:13px;line-height:1.4}.pdf-comment-box--very-dense{font-size:11.5px;line-height:1.3}.output-comment-heading{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.output-comment-heading>div{gap:4px;display:grid}.generate-comment-button{color:#fffaf0;font:inherit;cursor:pointer;background:#6f5031;border:1px solid #87633f;border-radius:999px;flex:none;padding:9px 15px;font-size:.8rem;font-weight:800}.generate-comment-button:hover:not(:disabled){background:#5c4027}.generate-comment-button:focus-visible{outline-offset:2px;outline:3px solid #87633f38}.generate-comment-button:disabled{color:#8a8175;cursor:not-allowed;background:#d9d0c2;border-color:#cbbda8}.comment-generation-warning,.comment-generation-message{border-radius:10px;margin:0;padding:10px 12px;font-size:.82rem;line-height:1.45}.comment-generation-warning{color:#6a4c2d;background:#f4e5ca;border:1px solid #d6b887}.comment-generation-message{color:#465136;background:#e7ecd9;border:1px solid #b9c5a1}@media (width<=620px){.output-comment-heading{flex-direction:column;align-items:stretch}.generate-comment-button{align-self:flex-start}}.class-report-modal-backdrop{z-index:2000;background:#271e16c2;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.class-report-modal{background:#f8f0e3;border:1px solid #cdb997;border-radius:20px;flex-direction:column;width:min(1180px,96vw);height:min(94vh,1100px);display:flex;overflow:hidden;box-shadow:0 30px 90px #19120c61}.class-report-modal-header{background:#fffaf0;border-bottom:1px solid #d7c5a7;justify-content:space-between;align-items:flex-start;gap:24px;padding:20px 24px;display:flex}.class-report-modal-label{color:#8a6034;letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:850}.class-report-modal-header h2{color:#453224;margin:0;font-size:1.45rem}.class-report-modal-header p:last-child{color:#756654;margin:6px 0 0}.class-report-modal-actions{flex:none;gap:10px;display:flex}.class-report-close-button,.class-report-download-button{font:inherit;cursor:pointer;border-radius:999px;padding:10px 16px;font-size:.82rem;font-weight:800}.class-report-close-button{color:#654a31;background:#fffaf0;border:1px solid #c7b393}.class-report-download-button{color:#fffaf0;background:#6c4b2e;border:1px solid #6c4b2e}.class-report-close-button:disabled,.class-report-download-button:disabled{cursor:not-allowed;opacity:.55}.class-report-status-grid{background:#f2e5d1;border-bottom:1px solid #d7c5a7;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px 24px;display:grid}.class-report-status-grid>div{background:#fffaf0c7;border:1px solid #d4bf9f;border-radius:11px;gap:2px;padding:9px 11px;display:grid}.class-report-status-grid span{color:#796956;font-size:.7rem;font-weight:750}.class-report-status-grid strong{color:#4e3925;font-size:1rem}.class-report-status-warning{background:#f4dfbd!important;border-color:#d0a96d!important}.class-report-modal-body{flex:1;min-height:0;padding:26px;overflow:auto}.class-report-preview-pages{gap:34px;display:grid}.class-report-page-block{justify-items:center;gap:8px;display:grid}.class-report-page-label{color:#766753;width:min(794px,100%);margin:0;font-size:.75rem;font-weight:800}.class-report-page{box-sizing:border-box;aspect-ratio:210/297;background:#fffdf8;width:min(794px,100%);padding:15px 18px;box-shadow:0 8px 28px #36281a2e}.class-report-page-grid{grid-template-rows:repeat(4,minmax(0,1fr));gap:10px;height:100%;display:grid}.class-report-slot{min-height:0;position:relative}.class-report-slot:not(:last-child):after{content:"";border-top:1px dashed #b9a68a;position:absolute;bottom:-5px;left:0;right:0}.class-report-slot--empty{visibility:hidden}.class-report-card{box-sizing:border-box;color:#403124;background:#fffaf0;border:1px solid #d4bd97;border-radius:10px;flex-direction:column;gap:5px;height:100%;min-height:0;padding:8px 11px;display:flex;overflow:hidden}.class-report-card-header{border-bottom:1px solid #dfcfb5;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:5px;display:flex}.class-report-card-header h2{color:#3e3023;margin:0 0 1px;font-size:14px;line-height:1.05}.class-report-card-header p{color:#71614f;margin:0;font-size:8px;font-weight:700}.class-report-class-badge{color:#5b4229;background:#f1e3cb;border:1px solid #c5ad88;border-radius:999px;flex:none;padding:4px 7px;font-size:7.5px;font-weight:800}.class-report-criteria-grid{grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:4px;display:grid}.class-report-criterion{background:#fffdf8;border:1px solid #ddcdb3;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:4px 6px;display:flex}.class-report-criterion span{color:#5f5141;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:7.5px;font-weight:750;overflow:hidden}.class-report-criterion strong{color:#493522;flex:none;font-size:9px}.class-report-criterion small{color:#8a765d;margin-left:1px;font-size:7px}.class-report-result-summary{background:#efe1c9;border:1px solid #d3bd99;border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.class-report-result-summary>div{text-align:center;justify-content:center;align-items:center;gap:3px;padding:3px 4px;display:flex}.class-report-result-summary>div+div{border-left:1px solid #d2ba94}.class-report-result-summary span{color:#725f49;font-size:7px;font-weight:750}.class-report-result-summary strong{color:#49331f;font-size:8px}.class-report-comment-section{min-height:0;display:block}.class-report-comment-section h3{color:#554331;margin:0 0 3px;font-size:7.5px}.class-report-comment-box{box-sizing:border-box;color:#4e4134;overflow-wrap:anywhere;white-space:pre-wrap;background:#fffdf8;border:1px solid #d2c1a5;border-radius:7px;width:100%;min-height:calc(3.35em + 11px);padding:5px 7px calc(5px + 2.55em);font-size:16px;line-height:1.28;overflow:hidden}.class-report-comment-box--compact{padding-bottom:calc(4px + 2.35em);font-size:14.8px;line-height:1.22}.class-report-comment-box--dense{padding:4px 6px calc(4px + 2.15em);font-size:13.4px;line-height:1.17}.class-report-comment-box--very-dense{padding:3px 5px calc(3px + 1.8em);font-size:11.8px;line-height:1.1}@media (width<=760px){.class-report-modal-backdrop{padding:8px}.class-report-modal{border-radius:14px;width:100%;height:98vh}.class-report-modal-header{padding:16px;display:grid}.class-report-modal-actions{width:100%}.class-report-modal-actions button{flex:1}.class-report-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 16px}.class-report-modal-body{padding:14px}}.data-modal-backdrop{z-index:2100;background:#261d15c2;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.data-modal{background:#f8f0e3;border:1px solid #ccb58f;border-radius:20px;flex-direction:column;width:min(920px,96vw);max-height:94vh;display:flex;overflow:hidden;box-shadow:0 30px 90px #1c140d66}.data-modal-header{background:#fffaf0;border-bottom:1px solid #dbc9ac;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 24px;display:flex}.data-modal-label{color:#8a6034;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.7rem;font-weight:850}.data-modal-header h2{color:#453224;margin:0;font-size:1.5rem}.data-modal-header p:last-child{color:#756654;margin:7px 0 0}.data-modal-close{color:#62492f;width:38px;height:38px;font:inherit;cursor:pointer;background:#fffaf0;border:1px solid #cbb797;border-radius:50%;flex:none;place-items:center;font-size:1.5rem;line-height:1;display:grid}.data-modal-close:disabled{cursor:not-allowed;opacity:.5}.data-modal-body{gap:18px;padding:24px;display:grid;overflow:auto}.data-modal-current,.data-modal-action-card,.data-modal-restore-preview,.data-modal-danger-zone{background:#fffaf0;border:1px solid #d4bf9f;border-radius:15px}.data-modal-current{padding:18px}.data-modal-current>header,.data-modal-restore-preview>header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.data-modal-current h3,.data-modal-action-card h3,.data-modal-restore-preview h3,.data-modal-danger-zone h3{color:#453224;margin:0}.data-modal-current>header>span{color:#60462e;background:#efe1c9;border:1px solid #b9a27f;border-radius:999px;flex:none;padding:6px 10px;font-size:.72rem;font-weight:800}.data-modal-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.data-modal-summary-grid>div{background:#fffdf8;border:1px solid #e0d1ba;border-radius:10px;gap:3px;padding:10px;display:grid}.data-modal-summary-grid span{color:#7b6b57;font-size:.68rem;font-weight:750}.data-modal-summary-grid strong{color:#493522;font-size:1.05rem}.data-modal-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.data-modal-action-card{align-items:flex-start;gap:15px;padding:18px;display:flex}.data-modal-action-card>div:last-child{justify-items:start;gap:8px;display:grid}.data-modal-action-card p:not(.data-modal-label){color:#746451;margin:0;line-height:1.45}.data-modal-icon{color:#684522;background:#ead8b8;border-radius:13px;flex:none;place-items:center;width:46px;height:46px;font-size:1.35rem;font-weight:900;display:grid}.data-modal-file-input{display:none}.data-modal-primary-button,.data-modal-secondary-button,.data-modal-preview-cancel,.data-modal-danger-button{font:inherit;cursor:pointer;border-radius:999px;padding:9px 14px;font-size:.8rem;font-weight:800}.data-modal-primary-button{color:#fffaf0;background:#6c492a;border:1px solid #6c492a}.data-modal-primary-button:hover{background:#58391f}.data-modal-secondary-button,.data-modal-preview-cancel{color:#654a31;background:#fffaf0;border:1px solid #c5b08d}.data-modal-secondary-button:hover,.data-modal-preview-cancel:hover{background:#f2e4cb}.data-modal-secondary-button:disabled{cursor:wait;opacity:.6}.data-modal-success{color:#405632;background:#e2ecd9;border:1px solid #9eb389;border-radius:12px;margin:0;padding:12px 14px;font-weight:750}.data-modal-error{color:#6e3528;background:#f4ddd5;border:1px solid #bf826f;border-radius:12px;padding:13px 15px}.data-modal-error p{margin:5px 0 0}.data-modal-restore-preview{padding:18px}.data-modal-restore-preview header p:last-child{color:#796956;margin:5px 0 0;font-size:.82rem}.data-modal-restore-warning{color:#68491f;background:#f4dfbd;border:1px solid #d0a96d;border-radius:10px;margin-top:14px;padding:11px 13px;font-size:.82rem;font-weight:750}.data-modal-preview-actions{justify-content:flex-end;gap:9px;margin-top:14px;display:flex}.data-modal-danger-zone{background:#fff7f3;border-color:#d7a89a;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.data-modal-danger-zone p:last-child{color:#795d52;max-width:620px;margin:6px 0 0;line-height:1.45}.data-modal-danger-button{color:#fff8f4;background:#984a36;border:1px solid #984a36;flex:none}.data-modal-danger-button:hover{background:#7c3828}@media (width<=760px){.data-modal-backdrop{padding:8px}.data-modal{border-radius:14px;width:100%;max-height:98vh}.data-modal-header,.data-modal-body{padding:16px}.data-modal-action-grid{grid-template-columns:1fr}.data-modal-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-modal-danger-zone{flex-direction:column;align-items:stretch}.data-modal-danger-button{width:100%}}.data-modal-information{background:linear-gradient(#fffcf5f5,#f4eadaf5);border:1px solid #d7c4a7;border-radius:16px;overflow:hidden;box-shadow:inset 0 1px #ffffffbf}.data-modal-information summary{color:#4f4032;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;font-family:Arial,sans-serif;font-size:.92rem;font-weight:800;list-style:none;display:flex}.data-modal-information summary::-webkit-details-marker{display:none}.data-modal-information summary:after{content:"+";color:#6c5943;background:#f8f0e4;border:1px solid #ad9270;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:1.1rem;font-weight:500;line-height:1;transition:transform .16s,background .16s;display:grid}.data-modal-information[open] summary:after{content:"−";background:#eadbc5;transform:rotate(180deg)}.data-modal-information summary:hover{background:#dfcfb73d}.data-modal-information summary:focus-visible{outline-offset:-3px;outline:3px solid #5b797059}.data-modal-information-content{border-top:1px solid #d7c4a7;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 16px 24px;display:grid}.data-modal-information-content section{background:#fffdf8ad;border:1px solid #b2977473;border-radius:12px;padding:15px}.data-modal-information-content h3{color:#4f4032;margin:0 0 8px;font-family:Arial,sans-serif;font-size:.84rem;font-weight:800}.data-modal-information-content p{color:#746451;margin:0;font-family:Arial,sans-serif;font-size:.78rem;line-height:1.55}.data-modal-information-content{overscroll-behavior:contain;scrollbar-gutter:stable;border-top:1px solid #d7c4a7;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;height:min(42vh,360px);min-height:0;padding:16px 18px 24px 16px;display:grid;overflow-y:auto}@media (width<=680px){.data-modal-information-content{grid-template-columns:1fr}}.data-modal{flex-direction:column;max-height:calc(100dvh - 28px);display:flex;overflow:hidden}.data-modal-header{flex:none}.data-modal-body{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-height:0;padding-bottom:28px;overflow-y:auto}.data-modal-information{flex:none}.data-modal-information-content{overscroll-behavior:auto;scrollbar-gutter:auto;height:auto;min-height:0;max-height:none;padding:16px 16px 24px;overflow:visible}.data-modal-body{flex:auto;min-height:0;padding-bottom:32px;overflow:hidden auto}.data-modal-information{overflow:visible}.data-modal-information-content{align-content:start;height:auto;max-height:none;padding:16px 16px 24px;overflow:visible}.data-modal-danger-zone{z-index:auto;flex:none;position:static;inset:auto}.student-import-backdrop{z-index:2000;background:#261d15c2;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.student-import-modal{background:#f8f0e3;border:1px solid #ccb58f;border-radius:20px;flex-direction:column;width:min(920px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 30px 90px #1c140d66}.student-import-header{background:#fffaf0;border-bottom:1px solid #dbc9ac;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 24px;display:flex}.student-import-label{color:#8a6034;letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:850}.student-import-header h2{color:#453224;margin:0;font-size:1.5rem}.student-import-header p:last-child{color:#756654;max-width:620px;margin:7px 0 0;line-height:1.45}.student-import-close{color:#62492f;width:38px;height:38px;font:inherit;cursor:pointer;background:#fffaf0;border:1px solid #cbb797;border-radius:50%;flex:none;place-items:center;font-size:1.5rem;line-height:1;display:grid}.student-import-close:disabled{cursor:not-allowed;opacity:.5}.student-import-body{flex:1;min-height:0;padding:24px;overflow:auto}.student-import-file-input{display:none}.student-import-picker{text-align:center;background:#fffaf0b8;border:2px dashed #cbb592;border-radius:18px;justify-items:center;padding:54px 24px;display:grid}.student-import-picker-icon{color:#664727;letter-spacing:.08em;background:#ead8bb;border:1px solid #c2a77e;border-radius:18px;place-items:center;width:72px;height:72px;font-size:.9rem;font-weight:900;display:grid}.student-import-picker h3{color:#493522;margin:18px 0 7px;font-size:1.2rem}.student-import-picker p{color:#786956;max-width:520px;margin:0;line-height:1.5}.student-import-choose-button{color:#fffaf0;font:inherit;cursor:pointer;background:#68482c;border:1px solid #68482c;border-radius:999px;margin-top:22px;padding:11px 18px;font-weight:800}.student-import-choose-button:disabled{cursor:wait;opacity:.65}.student-import-picker small{color:#8a7b67;margin-top:10px}.student-import-error{color:#6e3528;background:#f4ddd5;border:1px solid #bf826f;border-radius:14px;gap:8px;margin-top:16px;padding:16px;display:grid}.student-import-error p{margin:0}.student-import-error button{color:#6e3528;font:inherit;cursor:pointer;background:#fff8f3;border:1px solid #9d6553;border-radius:999px;justify-self:start;padding:8px 13px;font-weight:750}.student-import-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.student-import-summary>div,.student-import-counts>div{background:#fffaf0;border:1px solid #d4bf9f;border-radius:12px;gap:4px;padding:12px;display:grid}.student-import-summary span,.student-import-counts span{color:#796956;font-size:.72rem;font-weight:750}.student-import-summary strong,.student-import-counts strong{color:#4e3925;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.student-import-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.student-import-counts strong{font-size:1.15rem}.student-import-preview{background:#fffaf0;border:1px solid #d4bf9f;border-radius:14px;margin-top:18px;overflow:hidden}.student-import-preview>header{border-bottom:1px solid #ddcdb3;justify-content:space-between;align-items:center;gap:20px;padding:14px 16px;display:flex}.student-import-preview h3{color:#493522;margin:0;font-size:1rem}.student-import-preview header p{color:#7c6d59;margin:3px 0 0;font-size:.8rem}.student-import-preview header button{color:#654a31;font:inherit;cursor:pointer;background:#fffaf0;border:1px solid #c3ad8a;border-radius:999px;flex:none;padding:8px 12px;font-size:.78rem;font-weight:750}.student-import-table-wrapper{max-height:390px;overflow:auto}.student-import-table{border-collapse:collapse;width:100%}.student-import-table th,.student-import-table td{text-align:left;border-bottom:1px solid #eadfcd;padding:11px 16px}.student-import-table th{z-index:1;color:#5c4936;letter-spacing:.04em;text-transform:uppercase;background:#efe1ca;font-size:.72rem;position:sticky;top:0}.student-import-table td{color:#594a3c;font-size:.86rem}.student-import-table td:first-child{gap:2px;display:grid}.student-import-table td small{color:#88765f}.student-import-row--duplicate{opacity:.55}.student-import-status{border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:850;display:inline-block}.student-import-status--ready{color:#425d33;background:#dce8d2}.student-import-status--duplicate{color:#756556;background:#e6ddd1}.student-import-footer{background:#fffaf0;border-top:1px solid #d7c5a7;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.student-import-cancel-button,.student-import-confirm-button{font:inherit;cursor:pointer;border-radius:999px;padding:10px 16px;font-size:.84rem;font-weight:800}.student-import-cancel-button{color:#654a31;background:#fffaf0;border:1px solid #c7b393}.student-import-confirm-button{color:#fffaf0;background:#68482c;border:1px solid #68482c}.student-import-confirm-button:disabled{cursor:not-allowed;opacity:.5}@media (width<=720px){.student-import-backdrop{padding:8px}.student-import-modal{border-radius:14px;width:100%;max-height:98vh}.student-import-header{padding:17px}.student-import-body{padding:16px}.student-import-summary,.student-import-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.student-import-preview>header{flex-direction:column;align-items:flex-start}.student-import-footer{padding:14px 16px}}.app-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;display:flex}.app-header h1{color:#2f251b;margin:0;font-size:clamp(2.5rem,7vw,4.5rem);line-height:.95}.student-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.import-students-button,.reset-button{font:inherit;cursor:pointer;border-radius:12px;padding:11px 16px;font-weight:750;box-shadow:0 4px 12px #48341f14}.import-students-button{color:#fffaf0;background:#7a4f29;border:1px solid #7a4f29}.import-students-button:hover{background:#64401f}.reset-button{color:#4f4030;background:#fffaf0;border:1px solid #cdbd9f}.reset-button:hover{background:#f3e7cf;border-color:#aa8a61}.student-list{gap:14px;display:grid}.student-card{background:#fffaf0;border:1px solid #d4c3a5;border-radius:18px;transition:transform .16s,border-color .16s,box-shadow .16s;position:relative;overflow:hidden;box-shadow:0 8px 22px #48341f14}.student-card:hover{border-color:#a98558;transform:translateY(-2px);box-shadow:0 12px 28px #48341f21}.student-card--editing:hover{transform:none}.student-card-content{width:100%;color:inherit;text-align:left;align-items:center;gap:18px;padding:20px 150px 20px 20px;display:flex}.student-avatar{color:#6f4724;background:#ead8b8;border-radius:15px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:1.25rem;font-weight:800;display:grid}.student-details{gap:5px;min-width:0;display:grid}.student-details strong{color:#35291d;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.student-details span{color:#7a6956;font-size:.93rem}.student-card-actions{z-index:2;align-items:center;gap:8px;display:flex;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.edit-student-button{color:#654a31;font:inherit;cursor:pointer;background:#fffaf0;border:1px solid #c5b08d;border-radius:999px;padding:7px 11px;font-size:.77rem;font-weight:800}.edit-student-button:hover{background:#f2e4cb;border-color:#94704b}.delete-button{color:#9a7f64;width:34px;height:34px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.55rem;line-height:1;display:grid}.delete-button:hover{color:#963f2c;background:#f3d7cf}.add-student-card{color:#62513e;text-align:left;cursor:pointer;background:#fffaf09e;border:2px dashed #bca884;border-radius:18px;align-items:center;gap:18px;width:100%;padding:19px;transition:border-color .16s,background .16s,color .16s;display:flex}.add-student-card:hover{color:#5b3a1e;background:#f5e8ce;border-color:#8d653d}.add-icon{color:#6f4724;background:#ead8b8;border-radius:15px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:1.75rem;font-weight:500;display:grid}.add-student-card strong,.add-student-card small{display:block}.add-student-card strong{color:#35291d;margin-bottom:5px;font-size:1.05rem}.add-student-card small{color:#7a6956;font-size:.9rem}.add-student-form,.edit-student-form{background:#fffaf0;border:1px solid #cdbd9f;border-radius:18px;gap:18px;padding:24px;display:grid;box-shadow:0 12px 28px #48341f1f}.add-student-form h2,.edit-student-form h2{color:#35291d;margin:0;font-size:1.25rem}.edit-student-form header p{color:#8a6034;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:850}.student-form-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.add-student-form label,.edit-student-form label{color:#5c4b39;gap:8px;font-size:.9rem;font-weight:700;display:grid}.add-student-form input,.edit-student-form input{box-sizing:border-box;color:#35291d;width:100%;font:inherit;background:#fffdf7;border:1px solid #cdbd9f;border-radius:11px;outline:none;padding:12px 14px}.add-student-form input::placeholder,.edit-student-form input::placeholder{color:#a08e78}.add-student-form input:focus,.edit-student-form input:focus{border-color:#9a6f42;box-shadow:0 0 0 3px #9a6f4229}.form-actions{justify-content:flex-end;gap:10px;display:flex}.cancel-button,.save-button{font:inherit;cursor:pointer;border-radius:11px;padding:11px 17px;font-weight:750}.cancel-button{color:#5c4b39;background:#fffaf0;border:1px solid #cdbd9f}.cancel-button:hover{background:#f3e7cf}.save-button{color:#fffaf0;background:#7a4f29;border:1px solid #7a4f29}.save-button:hover{background:#64401f}@media (width<=760px){.app-header{flex-direction:column;align-items:flex-start}.student-header-actions{width:100%}.student-header-actions button{flex:1}.student-form-fields{grid-template-columns:1fr}}@media (width<=540px){.student-header-actions{flex-direction:column;align-items:stretch}.student-card-content{padding:20px 118px 20px 16px}.student-card-actions{right:12px}.edit-student-button{padding:7px 9px}}.workspace-gate{color:#3d3025;background:radial-gradient(circle at top,#fffaf0 0%,#eee2cf 48%,#d8c5a8 100%);place-items:center;min-height:100vh;padding:28px;display:grid}.workspace-gate-card{background:#fffaf0f7;border:1px solid #c7ad83;border-radius:24px;width:min(520px,100%);padding:36px;box-shadow:0 24px 70px #37271833}.workspace-gate-header{margin-bottom:22px}.workspace-gate-label{color:#8b6032;letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-family:Arial,sans-serif;font-size:.72rem;font-weight:800}.workspace-gate-header h1{color:#392b20;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.8rem,10vw,4.4rem);line-height:.95}.workspace-gate-header h2{color:#4d3b2c;margin:14px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.workspace-gate-explanation{color:#72614e;margin-bottom:20px;font-family:Arial,sans-serif;font-size:.94rem;line-height:1.55}.workspace-gate-explanation p{margin:0 0 10px}.workspace-gate-error{color:#713a2d;background:#f5ddd5;border:1px solid #c78d7a;border-radius:11px;margin-bottom:18px;padding:12px 14px;font-family:Arial,sans-serif;font-size:.84rem;font-weight:750;line-height:1.45}.workspace-gate-form{gap:16px;display:grid}.workspace-gate-form label{color:#544433;gap:8px;font-family:Arial,sans-serif;font-size:.82rem;font-weight:800;display:grid}.workspace-gate-form input{color:#30251c;background:#fffdf8;border:1px solid #bfa77f;border-radius:12px;outline:none;width:100%;padding:13px 14px;font-family:Arial,sans-serif;font-size:.95rem}.workspace-gate-form input:focus{border-color:#805a34;box-shadow:0 0 0 4px #805a3426}.workspace-gate-form input:disabled{opacity:.65;cursor:not-allowed}.workspace-gate-form button{color:#fffaf0;cursor:pointer;background:#694626;border:1px solid #694626;border-radius:999px;margin-top:2px;padding:13px 18px;font-family:Arial,sans-serif;font-size:.88rem;font-weight:850}.workspace-gate-form button:hover:not(:disabled){background:#56381e}.workspace-gate-form button:disabled{opacity:.62;cursor:wait}.workspace-gate-warning{color:#806f5d;border-top:1px solid #dfcfb6;margin-top:22px;padding-top:17px;font-family:Arial,sans-serif;font-size:.78rem;line-height:1.5}.workspace-gate-warning strong{color:#5d4935;margin-bottom:5px;display:block}.workspace-gate-warning p{margin:0}@media (width<=600px){.workspace-gate{padding:16px}.workspace-gate-card{border-radius:19px;padding:26px 22px}}.workspace-gate-recovery{color:#806f5d;border-top:1px solid #dfcfb6;margin-top:22px;padding-top:18px;font-family:Arial,sans-serif;font-size:.8rem;line-height:1.5}.workspace-gate-recovery>p{margin:0 0 14px}.workspace-gate-file-input{display:none}.workspace-gate-recovery-actions{flex-wrap:wrap;gap:10px;display:flex}.workspace-gate-recovery-actions button{color:#5d4935;cursor:pointer;background:#f6eee1;border:1px solid #947650;border-radius:999px;padding:10px 15px;font-family:Arial,sans-serif;font-size:.78rem;font-weight:800}.workspace-gate-recovery-actions button:hover:not(:disabled){background:#ecdfcc}.workspace-gate-recovery-actions button:disabled{opacity:.6;cursor:wait}.workspace-gate-recovery-actions .workspace-gate-reset-button{color:#713a2d;background:#f5ddd5;border-color:#b47b6a}.workspace-gate-recovery-actions .workspace-gate-reset-button:hover:not(:disabled){background:#ecc9be}@media (width<=520px){.workspace-gate-recovery-actions{display:grid}.workspace-gate-recovery-actions button{width:100%}}.face-licence-page{color:#273a38;background:radial-gradient(circle at top,#e9e0c2cc,#0000 44%),#d8cfb2;place-items:center;min-height:100vh;padding:28px;display:grid}.face-licence-card{background:#faf7ebf5;border:1px solid #273a382e;border-radius:22px;width:min(100%,470px);padding:42px;box-shadow:0 24px 70px #1f2d2b2e}.face-licence-mark{color:#f5ecd1;letter-spacing:.13em;background:#314b48;border-radius:12px;justify-content:center;align-items:center;min-width:76px;min-height:42px;margin-bottom:28px;padding:0 15px;font-weight:800;display:inline-flex}.face-licence-eyebrow{color:#657a74;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.76rem;font-weight:800}.face-licence-card h1{margin:0 0 12px;font-size:clamp(2rem,7vw,3rem);line-height:1}.face-licence-card>p{color:#566866;margin:0 0 28px;line-height:1.6}.face-licence-card form{gap:12px;display:grid}.face-licence-card label{font-weight:750}.face-licence-card input{box-sizing:border-box;color:#243835;width:100%;font:inherit;letter-spacing:.08em;text-transform:uppercase;background:#fffdf6;border:1px solid #aeb9ae;border-radius:12px;padding:16px 17px;font-size:1.05rem;font-weight:750}.face-licence-card input:focus{border-color:#314b48;outline:3px solid #314b482b}.face-licence-card button{color:#fff9e8;min-height:52px;font:inherit;cursor:pointer;background:#314b48;border:0;border-radius:12px;margin-top:5px;font-weight:800}.face-licence-card button:disabled{cursor:not-allowed;opacity:.55}.face-licence-card small{color:#73807d;text-align:center;margin-top:20px;display:block}.face-licence-error{color:#7a2f26;background:#f5dfd8;border-radius:10px;margin:0;padding:11px 13px;font-size:.9rem;line-height:1.4}.face-licence-retry{width:100%;color:#314b48!important;background:0 0!important;border:1px solid #849792!important}.face-licence-loader{border:4px solid #314b482e;border-top-color:#314b48;border-radius:50%;width:34px;height:34px;margin:24px auto 0;animation:.8s linear infinite face-licence-spin}@keyframes face-licence-spin{to{transform:rotate(360deg)}}@media (width<=560px){.face-licence-page{padding:16px}.face-licence-card{padding:30px 24px}}
