@import "https://fonts.googleapis.com/css2?family=Prompt:wght@400&display=swap";:root{--green-900:#0d3f1b;--green-800:#14551f;--green-700:#17652a;--green-100:#e9f4ea;--amber:#f8b91e;--amber-soft:#fff5cf;--blue:#1398d2;--blue-soft:#e8f6fc;--coral:#f26435;--coral-soft:#fff0e9;--ink:#182231;--muted:#667085;--line:#dfe5dc;--paper:#fff;--page:#f3f7f1;--shadow:0 16px 40px #0f2d181a}*{box-sizing:border-box;letter-spacing:0}body{background:var(--page);min-width:320px;min-height:100vh;color:var(--ink);margin:0;font-family:Noto Sans Thai,Sarabun,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}img{max-width:100%;display:block}.auth-page{grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);min-height:100vh;display:grid}.brand-panel{background:var(--green-700);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 24px;display:flex;position:relative}.brand-panel:after{background:linear-gradient(90deg,var(--amber) 0 18%,#ffffff47 18%);content:"";border-radius:999px;width:52px;height:6px;position:absolute;bottom:38px;left:38px}.brand-panel h1,.brand-panel p{margin:0}.brand-panel h1{font-size:32px;line-height:1.2}.brand-panel p{color:#ffffffd1}.brand-panel span{color:#ffffff94;font-size:12px;position:absolute;bottom:26px;left:38px}.brand-mark{width:96px;height:96px;color:var(--green-700);background:#fff;border-radius:999px;place-items:center;display:grid}.brand-mark svg{width:48px;height:48px}.auth-panel{background:#f8fbf6;place-items:center;padding:32px;display:grid}.auth-card{border:1px solid var(--line);background:var(--paper);width:min(100%,520px);box-shadow:var(--shadow);border-radius:8px;gap:20px;padding:30px;display:grid}.eyebrow{color:var(--muted);margin:0 0 4px;font-size:14px;font-weight:800}.auth-card h2,.page-header h1,.hero-strip h1,.top-bar h2,.section-heading h2{margin:0}.auth-card h2{font-size:26px}.role-grid{gap:12px;display:grid}.role-card{border:1px solid var(--line);min-height:86px;color:var(--ink);text-align:left;background:#fff;border-radius:8px;grid-template-columns:48px 1fr 24px;align-items:center;gap:14px;padding:14px;display:grid}.role-card.selected{border-color:var(--green-700);box-shadow:inset 0 0 0 1px var(--green-700)}.role-card>svg:first-child{background:var(--green-100);width:40px;height:40px;color:var(--green-700);border-radius:8px;padding:9px}.role-card:nth-child(2)>svg:first-child{background:var(--amber-soft);color:#b97700}.role-card strong,.role-card small{display:block}.role-card small{color:var(--muted);font-size:13px}.login-form{gap:16px;display:grid}.login-form label{color:var(--muted);gap:8px;font-size:14px;font-weight:800;display:grid}.input-shell{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:50px;padding:0 14px;display:flex}.input-shell svg{width:18px;color:var(--muted)}.input-shell input{border:0;outline:0;width:100%;min-width:0}.primary-button,.small-primary,.text-button,.logout-button,.icon-button,.avatar-button,.select-button,.template-button,.outline-file-button{border:0}.primary-button{background:var(--green-700);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:0 20px;font-weight:900;display:inline-flex}.full-button{width:100%}.text-button{width:fit-content;color:var(--green-700);background:0 0;padding:0;font-weight:900}.app-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.side-nav{background:var(--green-800);color:#fff;flex-direction:column;gap:24px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.side-brand{align-items:center;gap:12px;min-height:58px;display:flex}.side-brand>svg{width:42px;height:42px;color:var(--green-700);background:#fff;border-radius:999px;padding:10px;display:grid}.side-brand strong,.side-brand small{display:block}.side-brand small{color:#ffffffad;font-size:12px}.side-nav nav{gap:8px;display:grid}.side-nav nav button,.logout-button,.bottom-nav button{color:#ffffffb8;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:12px;min-height:46px;padding:0 14px;font-weight:800;display:flex}.side-nav nav button.active{color:var(--green-700);background:#fff}.side-nav svg,.logout-button svg{width:20px;height:20px}.logout-button{margin-top:auto}.workspace{min-width:0;padding-bottom:32px}.top-bar{z-index:3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f3f7f1f0;border-bottom:1px solid #dfe5dcc7;justify-content:space-between;align-items:center;min-height:84px;padding:18px clamp(20px,4vw,44px);display:flex;position:sticky;top:0}.top-bar h2{font-size:20px}.top-actions{align-items:center;gap:10px;display:flex}.icon-button,.avatar-button{width:42px;height:42px;color:var(--green-700);background:#fff;border-radius:8px;place-items:center;display:grid;box-shadow:0 8px 22px #12371b14}.avatar-button{background:var(--green-700);color:#fff;font-weight:900}.content-area{width:min(1180px,100%);margin:0 auto;padding:28px clamp(20px,4vw,44px)}.page-stack{gap:22px;display:grid}.hero-strip{background:var(--green-700);color:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;min-height:136px;padding:24px;display:flex}.hero-strip .eyebrow{color:#ffffffbd}.hero-strip h1,.page-header h1{font-size:32px;line-height:1.2}.grade-badge{background:var(--amber);width:118px;height:92px;color:var(--green-900);border-radius:8px;place-items:center;display:grid}.grade-badge strong{font-size:38px;line-height:1}.grade-badge span{font-size:13px;font-weight:900}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.stat-card,.panel,.material-card,.score-hero,.upload-panel,.profile-panel{border:1px solid var(--line);background:var(--paper);border-radius:8px;box-shadow:0 12px 28px #112d190f}.stat-card{min-height:92px;padding:18px}.stat-card span{color:var(--muted);font-size:13px;font-weight:900;display:block}.stat-card strong{margin-top:6px;font-size:28px;line-height:1.1;display:block}.tone-green{background:var(--green-100);color:var(--green-700)}.tone-amber{background:var(--amber-soft);color:#8f6200}.tone-blue{background:var(--blue-soft);color:#0879aa}.tone-coral{background:var(--coral-soft);color:#c9471d}.two-column{grid-template-columns:minmax(0,1fr) minmax(340px,.78fr);gap:18px;display:grid}.wide-panel{grid-column:1/-1}.panel,.upload-panel,.profile-panel{padding:20px}.section-heading,.page-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.section-heading h2{font-size:20px}.section-heading span{color:var(--muted);font-size:14px;font-weight:900}.action-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.tool-tile,.quick-button{border:1px solid var(--line);min-height:124px;color:var(--ink);text-align:center;background:#fbfdf9;border-radius:8px;place-items:center;gap:10px;padding:16px 12px;font-weight:900;display:grid}.tool-tile svg,.quick-button svg{background:var(--green-100);width:34px;height:34px;color:var(--green-700);border-radius:8px;padding:8px}.quick-button:nth-child(2) svg{background:var(--blue-soft);color:var(--blue)}.quick-button:nth-child(3) svg{background:var(--amber-soft);color:#a66b00}.quick-button:nth-child(4) svg{background:var(--coral-soft);color:var(--coral)}.submission-list,.score-list{gap:12px;margin-top:16px;display:grid}.submission-card,.score-card,.score-row{border:1px solid var(--line);background:#fbfdf9;border-radius:8px;align-items:center;gap:14px;min-height:70px;padding:14px;display:grid}.submission-card{grid-template-columns:1fr auto}.submission-card strong,.submission-card span,.score-card strong,.score-card span,.lesson-card strong,.lesson-card span{display:block}.submission-card span,.score-card span,.lesson-card span,.material-body p{color:var(--muted);margin:0;font-size:13px}.submission-state{justify-items:end;gap:6px;display:grid}.submission-state small{color:var(--muted);font-size:12px}.status-pill{border-radius:999px;justify-content:center;align-items:center;min-width:66px;min-height:26px;padding:2px 9px;font-size:12px;font-weight:900;display:inline-flex}.status-pill.pass{background:var(--green-100);color:var(--green-700)}.status-pill.pending{background:var(--amber-soft);color:#8a6200}.status-pill.info{background:var(--blue-soft);color:var(--blue)}.announcement-card{background:var(--coral-soft);border:1px solid #f2d6c8;border-radius:8px;gap:14px;margin-top:14px;padding:14px;display:flex}.announcement-card svg{color:var(--coral);flex:none}.announcement-card p{color:var(--muted);margin:4px 0 0}.lesson-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.lesson-card{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.lesson-card img{object-fit:cover;width:100%;height:180px}.lesson-card div{padding:14px}.filter-row,.control-row,.template-row{flex-wrap:wrap;gap:10px;display:flex}.filter-row button,.select-button{border:1px solid var(--line);min-height:42px;color:var(--muted);background:#fff;border-radius:8px;padding:0 16px;font-weight:900}.filter-row button.active{border-color:var(--green-700);background:var(--green-700);color:#fff}.select-button{color:var(--ink);align-items:center;gap:10px;display:inline-flex}.wide-select{justify-content:space-between;width:min(100%,340px)}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.material-card{border-left-width:5px;overflow:hidden}.tone-border-green{border-left-color:var(--green-700)}.tone-border-amber{border-left-color:var(--amber)}.tone-border-blue{border-left-color:var(--blue)}.tone-border-coral{border-left-color:var(--coral)}.material-card img,.material-icon{object-fit:cover;width:100%;height:170px}.material-icon{place-items:center;display:grid}.material-icon svg{width:52px;height:52px}.material-body{gap:8px;padding:16px;display:grid}.material-body h2{margin:0;font-size:20px;line-height:1.3}.material-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:900;display:flex}.type-pill{border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:900;display:inline-flex}.type-pill.pdf{background:var(--green-100);color:var(--green-700)}.type-pill.video{background:var(--blue-soft);color:var(--blue)}.type-pill.img{background:var(--coral-soft);color:var(--coral)}.small-primary{background:var(--green-700);color:#fff;border-radius:8px;align-items:center;gap:8px;width:fit-content;min-height:34px;padding:0 14px;font-size:13px;font-weight:900;display:inline-flex}.small-primary svg{width:16px}.score-hero{background:var(--green-700);color:#fff;justify-content:space-between;align-items:center;padding:24px;display:flex}.score-hero strong{font-size:42px;line-height:1;display:block}.score-hero span{color:#ffffffc2}.score-hero b{color:var(--amber);font-size:54px}.score-card{grid-template-columns:1fr minmax(210px,.45fr)}.score-progress{justify-items:end;gap:6px;display:grid}progress{background:var(--green-100);border:0;border-radius:999px;width:100%;height:8px;overflow:hidden}progress::-webkit-progress-bar{background:var(--green-100)}progress::-webkit-progress-value{background:var(--green-700)}progress::-moz-progress-bar{background:var(--green-700)}.score-manager{gap:18px;display:grid}.score-table{gap:10px;display:grid}.score-row{grid-template-columns:44px minmax(0,1fr) auto 110px}.score-row span{color:var(--muted);font-size:13px}.student-initial{background:var(--green-100);width:40px;height:40px;color:var(--green-700);border-radius:999px;place-items:center;font-weight:900;display:grid}.score-input{justify-content:flex-end;align-items:center;gap:6px;display:flex}.score-input input{border:1px solid var(--line);text-align:center;border-radius:8px;width:58px;height:38px}.upload-panel{border:2px dashed var(--green-700);text-align:center;background:#fbfdf9;place-items:center;gap:10px;min-height:260px;display:grid}.upload-panel>svg{width:58px;height:58px;color:var(--green-700)}.upload-panel strong{font-size:24px}.upload-panel span,.upload-panel small{color:var(--muted)}.outline-file-button{border:2px solid var(--amber);color:#bd7a00;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:10px;max-width:100%;min-height:52px;padding:0 18px;font-weight:900;display:inline-flex}.outline-file-button input{display:none}.template-button{color:#667085;background:#fff;border:2px solid #808997;border-radius:8px;align-items:center;gap:10px;min-height:46px;padding:0 16px;font-weight:900;display:inline-flex}.template-button.active{border-color:var(--green-700);color:var(--green-700)}.student-preview{gap:8px;margin-top:16px;display:grid}.student-preview-head,.student-preview-row{border-radius:8px;grid-template-columns:64px 130px 1fr 64px;align-items:center;gap:10px;min-height:46px;padding:0 14px;display:grid}.student-preview-head{color:var(--muted);background:#f5faf3;font-weight:900}.student-preview-row{border:1px solid var(--line);background:#fff}.profile-panel{align-items:center;gap:18px;display:flex}.profile-avatar{background:var(--green-700);color:#fff;border-radius:999px;place-items:center;width:76px;height:76px;font-size:30px;font-weight:900;display:grid}.profile-panel h2,.profile-panel p{margin:0}.profile-panel p{color:var(--muted)}.bottom-nav{display:none}.toast{z-index:10;background:var(--ink);color:#fff;max-width:min(420px,100vw - 44px);box-shadow:var(--shadow);border-radius:8px;padding:14px 16px;font-weight:900;position:fixed;bottom:22px;right:22px}.auth-toast{bottom:32px;right:32px}@media (width<=980px){.auth-page{grid-template-columns:1fr}.brand-panel{min-height:330px}.app-shell{padding-bottom:84px;display:block}.side-nav{display:none}.top-bar{min-height:76px}.content-area{padding:22px 16px}.two-column,.material-grid{grid-template-columns:1fr}.bottom-nav{z-index:5;border-top:1px solid var(--line);background:#fff;grid-template-columns:repeat(5,1fr);min-height:72px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--muted);background:0 0;border:0;place-items:center;gap:2px;padding:7px 4px;font-size:12px;font-weight:900;display:grid}.bottom-nav button.active{color:var(--green-700)}.bottom-nav svg{width:23px;height:23px}}@media (width<=620px){.brand-panel{min-height:280px;padding:34px 18px}.brand-panel h1{font-size:26px}.auth-panel{padding:18px}.auth-card{padding:20px}.role-card{grid-template-columns:44px 1fr 22px}.top-bar{padding:16px}.top-bar h2{font-size:16px}.icon-button{display:none}.hero-strip{flex-direction:column;align-items:flex-start}.hero-strip h1,.page-header h1{font-size:26px}.stat-grid,.lesson-strip,.action-grid,.quick-grid,.submission-card,.score-card,.score-row{grid-template-columns:1fr}.submission-state,.score-progress{justify-items:start}.score-input{justify-content:flex-start}.score-hero strong{font-size:34px}.score-hero b{font-size:42px}.material-card img,.material-icon,.lesson-card img{height:160px}.upload-panel{min-height:240px;padding:18px}.upload-panel strong{font-size:20px}.student-preview{overflow-x:auto}.student-preview-head,.student-preview-row{min-width:560px}.toast{max-width:calc(100vw - 28px);bottom:86px;right:14px}}html{font-family:Noto Sans Thai,Sarabun,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}body,button,input,select,textarea{font-family:Noto Sans Thai,Sarabun,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{font-weight:400;overflow-x:hidden}.auth-page{position:relative}.auth-theme-toggle{z-index:12;position:fixed;top:18px;right:18px}button,input,select,textarea{max-width:100%}.input-shell input{color:var(--ink);background:0 0}.brand-mark{background:var(--paper);border-radius:8px;width:clamp(128px,18vw,176px);height:clamp(120px,17vw,164px);box-shadow:0 18px 42px #0825112e}.brand-logo,.side-logo{object-fit:contain;width:100%;height:100%;display:block}.side-logo{background:var(--paper);border-radius:14px;flex:none;width:56px;height:56px;padding:6px}.side-brand{border-bottom:1px solid #ffffff24;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:8px 6px 18px;display:grid}.side-brand>div,.top-bar>div:first-child{min-width:0}.side-brand strong,.side-brand small,.top-bar h2,.top-bar .eyebrow{overflow-wrap:anywhere}.side-nav{background:linear-gradient(#ffffff0a,#fff0 28%),#10531f}.side-nav nav{gap:10px}.side-nav nav button,.logout-button{color:#ffffffc7;min-height:52px;box-shadow:none;background:0 0;border:0;border-radius:10px;outline:none;transition:background .16s,color .16s,transform .16s;position:relative}.side-nav nav button:hover,.logout-button:hover{color:#fff;background:#ffffff14;transform:translate(2px)}.side-nav nav button:before{content:"";background:0 0;border-radius:999px;width:3px;position:absolute;inset:12px auto 12px 0}.side-nav nav button svg,.logout-button svg{flex:none}.content-area,.workspace,.panel,.material-card,.score-card,.submission-card,.profile-panel{min-width:0}.page-header,.section-heading,.top-bar,.score-hero,.profile-panel{flex-wrap:wrap}.material-body h2,.page-header h1,.hero-strip h1,.auth-card h2,.section-heading h2{overflow-wrap:anywhere}.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.bottom-nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.material-tools{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.material-search{min-height:46px}.material-uploader{gap:16px;display:grid}.material-name-card{grid-template-rows:minmax(210px,1fr) auto;display:grid}.material-title-display{border-bottom:1px solid var(--line);background:var(--surface-soft);align-content:space-between;gap:18px;min-width:0;padding:24px;display:grid}.material-title-display h2,.material-title-display p{margin:0}.material-title-display h2{overflow-wrap:anywhere;color:var(--ink);font-size:30px;line-height:1.25}.material-title-display p{color:var(--muted)}.material-title-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.material-meta{flex-wrap:wrap}.student-material-level{border:1px solid var(--line);background:var(--paper);width:fit-content;min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 14px;display:inline-flex;box-shadow:0 8px 22px #0f172a0d}.student-material-level svg{width:18px;height:18px;color:var(--blue)}.student-material-level strong{color:var(--ink)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{color:var(--muted);gap:8px;font-size:14px;font-weight:600;display:grid}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--paper);width:100%;min-height:46px;color:var(--ink);font:inherit;border-radius:8px;padding:0 12px}.field textarea{resize:vertical;min-height:120px;padding-block:12px}.full-span{grid-column:1/-1}.submission-state .small-primary{min-height:30px;padding:0 10px;font-size:12px}.empty-state{border:1px dashed var(--line);background:var(--surface-subtle);color:var(--muted);border-radius:8px;gap:4px;padding:18px;display:grid}.empty-state strong{color:var(--ink)}.compact-form{gap:16px;display:grid}.form-actions,.card-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.danger-button,.icon-danger{background:var(--coral-soft);color:#b73514;min-height:42px;font:inherit;border:1px solid #f3c1b0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.small-danger{min-height:34px;font-size:13px}.icon-danger{width:38px;min-height:38px;padding:0}.danger-button svg,.icon-danger svg{width:16px;height:16px}.assignment-list,.score-tabs,.mini-list{gap:10px;display:grid}.assignment-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.assignment-edit-classroom{border:1px solid var(--line);background:var(--surface-subtle);border-radius:10px;gap:3px;padding:14px 16px;display:grid}.assignment-edit-classroom span,.assignment-edit-classroom small,.assignment-catalog-item span,.assignment-catalog-item small{color:var(--muted)}.assignment-edit-classroom span,.assignment-catalog-item small{font-size:12px}.assignment-catalog{border-top:1px solid var(--line);gap:14px;margin-top:8px;padding-top:20px;display:grid}.assignment-catalog-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.assignment-edit-help{color:var(--muted);font-size:12px}.created-score-ring{aspect-ratio:1;border-radius:999px;flex:none;place-items:center;width:104px;display:grid;box-shadow:0 12px 30px #0f172a1f}.created-score-ring>div{aspect-ratio:1;background:var(--paper);width:76%;box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;place-content:center;place-items:center;display:grid}.created-score-ring strong{font-size:25px;line-height:1}.created-score-ring span{color:var(--muted);margin-top:4px;font-size:11px}.assignment-catalog-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;display:grid}.assignment-catalog-item{border:1px solid var(--line);background:var(--paper);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;min-width:0;min-height:82px;padding:14px;display:flex}.assignment-catalog-item.editing{border-color:var(--blue);background:var(--surface-selected);box-shadow:inset 0 0 0 1px var(--blue)}.assignment-catalog-item>div{gap:2px;min-width:0;display:grid}.assignment-catalog-item strong,.assignment-catalog-item span,.assignment-catalog-item small{overflow-wrap:anywhere}.assignment-edit-button{border:1px solid var(--line);background:var(--surface-soft);min-height:38px;color:var(--ink);font:inherit;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.assignment-edit-button svg{width:15px;height:15px}.assignment-order-item{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.assignment-order-item>div{grid-template-rows:repeat(2,1fr);gap:6px;display:grid}.assignment-order-item>div button,.matrix-header-actions button{border:1px solid var(--line);background:var(--surface-subtle);width:32px;min-height:28px;color:var(--muted);border-radius:8px;place-items:center;padding:0;display:grid}.assignment-order-item svg,.matrix-header-actions svg{width:14px;height:14px}.teacher-score-view-switch{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;grid-template-columns:repeat(2,auto);gap:4px;width:fit-content;padding:4px;display:inline-grid;box-shadow:0 8px 22px #0f172a0d}.teacher-score-view-switch button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;display:inline-flex}.teacher-score-view-switch button.active{background:var(--paper);color:var(--ink);box-shadow:0 4px 14px #0f172a14}.teacher-score-view-switch svg,.score-overview-heading .primary-button svg,.score-overview-heading .template-button svg{width:17px;height:17px}.assignment-chip,.score-tabs button{border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:8px;font-weight:600}.assignment-chip{text-align:left;gap:2px;min-height:58px;padding:10px 12px;display:grid}.assignment-chip span{color:var(--muted);font-size:12px}.assignment-chip.active,.score-tabs button.active{border-color:var(--green-700);background:var(--green-700);color:#fff}.assignment-chip.active span{color:#ffffffc7}.score-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.score-tabs button{min-height:44px}.score-result{color:var(--green-700);justify-content:flex-end;align-items:baseline;gap:6px;font-weight:600;display:flex}.score-result span{color:var(--muted);font-size:13px}.desktop-score-matrix{gap:16px;display:grid}.teacher-score-page,.score-workspace-panel,.desktop-score-matrix,.desktop-score-overview{width:100%;min-width:0;max-width:100%}.score-workspace-panel{grid-template-columns:minmax(0,1fr);overflow:hidden}.score-matrix-scroll{border:1px solid var(--line);background:var(--paper);border-radius:12px;width:100%;max-width:100%;overflow:auto;box-shadow:0 12px 32px #0f172a0f}.desktop-score-matrix .score-matrix-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(600px,100dvh - 160px,960px)}@media (width>=981px){.content-area.score-content-area{width:100%;max-width:none;padding-inline:clamp(12px,1.4vw,20px)}.score-content-area .score-manager{box-shadow:none;background:0 0;border:0;padding:0}.score-content-area .page-stack{gap:16px}.score-content-area .panel-classroom-picker{width:min(100%,640px)}.score-content-area .score-matrix-scroll{border-color:color-mix(in srgb, var(--line) 72%, transparent);box-shadow:none;border-radius:10px}}.score-matrix{border-spacing:0;border-collapse:separate;width:max-content;min-width:100%;color:var(--ink);font-size:13px}.score-matrix th,.score-matrix td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);vertical-align:middle;height:72px;padding:10px 12px}.score-matrix thead th{z-index:4;background:var(--surface-soft);text-align:left;height:88px;position:sticky;top:0}.score-matrix tr:last-child>*{border-bottom:0}.score-matrix tr>:last-child{border-right:0}.score-matrix .matrix-no,.score-matrix .matrix-id,.score-matrix .matrix-name{z-index:3;position:sticky}.score-matrix .matrix-no{text-align:center;width:62px;min-width:62px;left:0}.score-matrix .matrix-id{width:118px;min-width:118px;left:62px}.score-matrix .matrix-name{text-align:left;width:240px;min-width:240px;left:180px;box-shadow:8px 0 16px #0f172a0d}.score-matrix thead .matrix-no,.score-matrix thead .matrix-id,.score-matrix thead .matrix-name{z-index:6;background:var(--surface-soft)}.matrix-assignment{width:228px;min-width:228px}.matrix-assignment>div{gap:4px;display:grid;position:relative}.matrix-assignment strong,.matrix-assignment span{overflow-wrap:anywhere;display:block}.matrix-assignment span,.matrix-score-cell small,.matrix-save-copy>span{color:var(--muted);font-size:11px}.matrix-delete{border:1px solid color-mix(in srgb, var(--coral) 28%, transparent);background:var(--surface-danger);width:28px;height:28px;color:var(--coral);border-radius:8px;place-items:center;padding:0;display:grid}.matrix-delete svg{width:14px;height:14px}.matrix-header-actions{gap:5px;margin-top:4px;display:flex}.matrix-header-actions button:disabled,.assignment-order-item button:disabled{cursor:default;opacity:.32}.matrix-header-actions .matrix-delete{border-color:color-mix(in srgb, var(--coral) 28%, transparent);background:var(--surface-danger);color:var(--coral)}.matrix-score-cell{width:228px;min-width:228px;height:118px}.score-entry-controls{gap:7px;display:grid}.score-entry-controls select{border:1px solid var(--line);background:var(--surface-subtle);width:100%;height:32px;color:var(--ink);border-radius:7px;padding:0 28px 0 9px;font-size:12px}.score-entry-number{align-items:center;gap:6px;display:flex}.score-entry-number input{border:1px solid var(--line);background:var(--surface-subtle);width:96px;height:40px;color:var(--ink);text-align:center;border-radius:8px;padding:0 8px}.score-entry-number input:disabled{cursor:not-allowed;opacity:.52}.score-entry-number span{color:var(--muted);white-space:nowrap}.matrix-score-cell small{min-height:17px;margin:0;display:block}.score-matrix td.score-status-scored,.score-row.score-status-scored,.score-summary-row.score-status-scored{background:#edf8f1;border-color:#b9ddc8}.score-matrix td.score-status-leave,.score-row.score-status-leave,.score-summary-row.score-status-leave{background:#fff8df;border-color:#ead28f}.score-matrix td.score-status-expired,.score-row.score-status-expired,.score-summary-row.score-status-expired{background:#fff0ed;border-color:#efbeb6}.score-matrix td.score-status-no_score,.score-row.score-status-no_score,.score-summary-row.score-status-no_score{background:#eef1f4;border-color:#cbd1d9}.score-status-scored .score-entry-controls select,.score-status-scored .score-entry-number input{background:#ffffffb8;border-color:#9fceb2}.score-status-leave .score-entry-controls select,.score-status-expired .score-entry-controls select,.score-status-no_score .score-entry-controls select{background:#ffffffa3;border-color:currentColor}.score-status-scored .score-entry-controls small,.score-result.score-status-scored{color:#18733b}.score-status-leave .score-entry-controls small,.score-result.score-status-leave{color:#936b00}.score-status-expired .score-entry-controls small,.score-result.score-status-expired{color:#b43a2d}.score-status-no_score .score-entry-controls small,.score-result.score-status-no_score{color:#5d6672}.score-result.score-status-ungraded{color:var(--muted)}.matrix-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.matrix-save-copy{gap:5px;display:grid}.score-autosave-status{width:fit-content;min-height:22px;color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:600;display:inline-flex}.score-autosave-status i{background:currentColor;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.score-autosave-status.pending{color:var(--amber)}.score-autosave-status.saving{color:var(--blue)}.score-autosave-status.saved{color:var(--green-700)}.score-autosave-status.error{color:var(--coral)}.score-overview-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.score-overview-heading .primary-button{flex:none;min-height:42px}.score-overview-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:10px;display:flex}.score-overview-actions .primary-button,.score-overview-actions .template-button{min-height:42px}.mobile-score-overview-list{display:none}.overview-assignment strong,.overview-assignment span,.matrix-overview-score strong,.matrix-overview-score span,.matrix-total strong,.matrix-total span{display:block}.overview-assignment span,.matrix-overview-score span,.matrix-total span{color:var(--muted);font-size:11px}.matrix-overview-score{text-align:center;width:152px;min-width:152px}.desktop-score-overview .score-matrix-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(560px,100dvh - 170px,920px)}.matrix-overview-score strong,.matrix-total strong{font-size:16px}.score-matrix .matrix-total{z-index:3;border-left:1px solid var(--line);background:var(--surface-soft);text-align:center;width:112px;min-width:112px;position:sticky;right:0;box-shadow:-8px 0 16px #0f172a0d}.score-matrix thead .matrix-total{z-index:6}.mobile-score-editor{display:none}.student-preview-head,.student-preview-row-action{grid-template-columns:64px 130px minmax(0,1fr) 112px 116px 42px}.student-preview-row-action strong,.student-preview-row-action span{overflow-wrap:anywhere;min-width:0}.review-card small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.review-grid{grid-template-columns:minmax(130px,1.2fr) repeat(3,minmax(84px,.7fr)) minmax(92px,.7fr) auto;align-items:end;gap:10px;display:grid}.review-grid .field{font-size:12px}.review-grid .field input,.review-grid .field select{min-height:38px;padding:0 10px}.inline-link{align-items:center;gap:6px;margin-top:10px;font-size:13px;display:inline-flex}.inline-link svg{width:15px;height:15px}.account-toolbar{margin:14px 0}.account-toolbar .field{width:min(100%,420px)}.password-form{align-items:end}.password-form .field{flex:260px}.mini-list>div{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;gap:2px;padding:12px;display:grid}.mini-list span{color:var(--muted);font-size:13px}.classroom-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.classroom-chip{grid-template-columns:minmax(0,1fr) 38px;align-items:stretch;gap:8px;display:grid}.classroom-chip>button:first-child{border:1px solid var(--line);background:var(--paper);min-height:58px;color:var(--ink);font:inherit;text-align:left;border-radius:8px;gap:2px;padding:10px 12px;font-weight:600;display:grid}.classroom-chip span{color:var(--muted);font-size:12px}.classroom-chip.active>button:first-child{border-color:var(--green-700);background:var(--green-700);color:#fff}.classroom-chip.active span{color:#ffffffc7}.teacher-classroom-picker{min-width:min(280px,42vw);color:var(--muted);gap:6px;font-size:12px;font-weight:600;display:grid}.teacher-classroom-picker select{border:1px solid var(--line);background:var(--paper);min-height:42px;color:var(--ink);font:inherit;border-radius:10px;padding:0 12px}.mobile-logout-button{border:1px solid var(--line);background:var(--paper);min-height:42px;color:var(--ink);font:inherit;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:none}.announcement-form,.announcement-list,.download-log-table,.score-summary-table,.score-overview,.score-overview-layout,.score-overview-copy{gap:12px;display:grid}.announcement-card,.download-log-row,.score-summary-row{border:1px solid var(--line);background:var(--paper);border-radius:10px;gap:6px;padding:14px;display:grid}.announcement-card{grid-template-columns:minmax(0,1fr) auto;align-items:start}.announcement-card p{color:var(--ink);margin:0;font-size:14px;line-height:1.5}.announcement-card span{color:var(--muted);font-size:12px}.announcement-card-student{grid-template-columns:minmax(0,1fr)}.file-preview{border:1px solid var(--line);background:var(--surface-subtle);border-radius:10px;width:100%;min-height:220px;overflow:hidden}.file-preview.compact{min-height:160px}.file-preview img,.file-preview video,.file-preview iframe{object-fit:cover;border:0;width:100%;height:100%}.pdf-preview{display:block;position:relative}.pdf-native-preview{display:block}.pdf-mobile-preview{display:none}.file-preview>span{height:100%;color:var(--muted);text-align:center;place-items:center;padding:20px;display:grid}.download-log-head,.download-log-row,.score-summary-head,.score-summary-row{grid-template-columns:minmax(0,1.4fr) minmax(110px,.9fr) minmax(110px,.9fr);align-items:center}.score-summary-head,.download-log-head{color:var(--muted);gap:12px;padding:0 14px;font-size:12px;font-weight:600;display:grid}.score-summary-head{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(92px,.7fr))}.score-summary-row{text-align:left;font:inherit;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(92px,.7fr))}.score-summary-row.active{border-color:var(--green-700);background:var(--surface-selected)}.score-summary-row.static{cursor:default}.score-overview-layout{grid-template-columns:minmax(220px,260px) minmax(0,1fr);align-items:center}.score-ring{aspect-ratio:1;border-radius:999px;place-items:center;width:min(260px,68vw);margin-inline:auto;display:grid}.score-ring>div{aspect-ratio:1;background:var(--paper);border-radius:999px;place-items:center;width:72%;display:grid;box-shadow:inset 0 0 0 1px #17652a14}.score-ring strong{font-size:clamp(28px,4vw,40px)}.score-ring span,.score-overview-copy p{color:var(--muted)}.grade-badge{background:var(--surface-subtle);border:1px solid #dce7d8;border-radius:10px;gap:2px;padding:14px 16px;display:grid}.top-actions{flex-wrap:wrap;justify-content:flex-end}@media (width<=1180px){.app-shell{grid-template-columns:236px minmax(0,1fr)}.side-nav{padding:20px 14px}.content-area{padding-inline:22px}}@media (width<=980px){.auth-page{grid-template-columns:1fr}.brand-panel{min-height:320px;padding:34px 18px 44px}.brand-panel span{left:18px}.auth-card{width:min(100%,560px)}.top-actions{flex-shrink:0}.mobile-logout-button{display:inline-flex}}@media (width<=760px){.auth-theme-toggle{top:12px;right:12px}.desktop-score-matrix{display:none}.score-workspace-panel>.section-heading{grid-template-columns:minmax(0,1fr);gap:2px;display:grid}.score-workspace-panel>.section-heading span{justify-self:start}.mobile-score-editor{gap:14px;display:grid}.teacher-score-view-switch{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.score-overview-heading{flex-direction:column;align-items:stretch}.score-overview-actions{grid-template-columns:1fr;width:100%;display:grid}.score-overview-heading .primary-button,.score-overview-heading .template-button{width:100%}.desktop-score-overview{display:none}.mobile-score-overview-list{gap:12px;display:grid}.mobile-score-overview-card{border:1px solid var(--line);background:var(--paper);border-radius:10px;overflow:hidden}.mobile-score-overview-card header{background:var(--surface-soft);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.mobile-score-overview-card header span,.mobile-score-total span{color:var(--muted);font-size:11px;display:block}.mobile-score-total{text-align:right;flex:none}.mobile-score-total strong{font-size:20px}.mobile-assignment-score{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:8px 14px;display:flex}.mobile-assignment-score span{overflow-wrap:anywhere;min-width:0;color:var(--muted)}.mobile-assignment-score strong{flex:none}.content-area{padding-inline:14px}.hero-strip,.score-hero,.panel,.upload-panel,.profile-panel{padding:16px}.stat-grid,.lesson-strip,.action-grid,.quick-grid,.material-grid,.two-column{grid-template-columns:1fr}.material-card img,.material-icon,.lesson-card img{height:clamp(150px,42vw,210px)}.material-name-card{grid-template-rows:minmax(160px,auto) auto}.material-title-display{gap:14px;padding:20px}.material-title-display h2{font-size:26px}.student-material-level{justify-content:center;width:100%}.score-overview-layout,.download-log-head,.download-log-row,.score-summary-head,.score-summary-row,.announcement-card{grid-template-columns:1fr}.score-table,.score-list,.submission-list{gap:10px}.review-card,.review-grid,.score-row-wide{grid-template-columns:1fr}.score-result{justify-content:flex-start}.matrix-actions{flex-direction:column;align-items:stretch}}@media (width<=620px){.auth-panel{padding:16px}.auth-card{padding:18px}.brand-mark{width:128px;height:120px}.top-bar{align-items:flex-start;gap:12px}.top-actions{margin-left:auto}.teacher-classroom-picker{min-width:100%}.hero-strip h1,.page-header h1{font-size:25px}.score-hero strong{font-size:32px}.score-hero b{font-size:40px}.score-row,.score-card,.submission-card{gap:10px}.submission-state{align-items:flex-start}.material-tools,.form-grid,.score-tabs,.assignment-list,.assignment-catalog-list,.classroom-list,.classroom-form-grid{grid-template-columns:1fr}.assignment-catalog-item{flex-direction:column;align-items:stretch}.assignment-catalog-heading{align-items:flex-start}.created-score-ring{width:82px}.created-score-ring strong{font-size:20px}.assignment-edit-button{width:100%}.classroom-chip{grid-template-columns:minmax(0,1fr)}.classroom-chip .icon-danger{width:100%}.material-tools .select-button{justify-content:center;width:100%}.template-row button,.filter-row button,.control-row button{flex:140px;justify-content:center}.student-preview{overflow-x:visible}.student-preview-head{display:none}.student-preview-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 14px;min-width:0;padding:12px}.student-preview-row>*{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}.student-preview-row>:before{color:var(--muted);font-size:11px;font-weight:500;line-height:1.2}.student-preview-row>span:first-child:before{content:"เลขที่"}.student-preview-row>span:nth-child(2):before{content:"รหัสนักเรียน"}.student-preview-row>strong:nth-child(3){grid-column:1/-1}.student-preview-row>strong:nth-child(3):before{content:"ชื่อ-นามสกุล"}.student-preview-row>span:nth-child(4):before{content:"บัญชี"}.student-preview-row-action .account-button,.student-preview-row-action .icon-danger{grid-column:1/-1;width:100%}}@media (width<=420px){.brand-panel h1{font-size:24px}.role-card{grid-template-columns:42px minmax(0,1fr) 20px;padding:12px}.role-card small,.submission-card span,.score-card span,.lesson-card span,.material-body p{font-size:12px}.bottom-nav button{font-size:11px}.toast{max-width:calc(100vw - 20px);right:10px}}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input,select,textarea{font-weight:400}.login-form label,.field,.eyebrow,.section-heading span,.stat-card span,.material-meta,.type-pill,.status-pill,.role-card small,.side-brand small,.bottom-nav button,.side-nav nav button,.logout-button,.student-preview-head,.student-preview-row>:before{font-weight:500}.primary-button,.small-primary,.text-button,.select-button,.template-button,.outline-file-button,.filter-row button,.tool-tile,.quick-button,.role-card,.assignment-chip,.score-tabs button,.classroom-chip>button:first-child,.danger-button,.icon-danger,.avatar-button,.toast,.student-initial,.profile-avatar,.score-result,.score-input,.grade-badge span{font-weight:600}.side-brand strong,.auth-card h2,.page-header h1,.hero-strip h1,.top-bar h2,.section-heading h2,.stat-card strong,.material-body h2,.submission-card strong,.score-card strong,.lesson-card strong,.empty-state strong,.profile-panel h2,.role-card strong,.upload-panel strong,.score-result strong{font-weight:700}.primary-button,.small-primary{background:linear-gradient(#23833b 0%,#17652a 100%);border:1px solid #17652a24;border-radius:10px;transition:transform .16s,box-shadow .16s,filter .16s;box-shadow:0 8px 18px #17652a24}.primary-button:hover:not(:disabled),.small-primary:hover:not(:disabled){filter:saturate(1.03);transform:translateY(-1px);box-shadow:0 12px 24px #17652a2b}.primary-button:active:not(:disabled),.small-primary:active:not(:disabled){transform:translateY(0)}.select-button,.template-button,.outline-file-button,.filter-row button,.assignment-chip,.score-tabs button,.classroom-chip>button:first-child,.tool-tile,.quick-button,.role-card{background:var(--paper);border-color:#dce7d8;border-radius:10px;box-shadow:0 5px 14px #112d190b}.filter-row button,.select-button,.template-button,.outline-file-button{color:#344054}.filter-row button.active,.assignment-chip.active,.score-tabs button.active,.classroom-chip.active>button:first-child{color:#fff;background:#17652a;box-shadow:0 8px 18px #17652a24}.side-nav nav button.active{color:#fff;box-shadow:none;background:#ffffff24}.danger-button,.icon-danger{background:var(--surface-danger);color:#b73514;border-color:#f2c9bb;border-radius:10px;box-shadow:0 5px 14px #c9471d12}.icon-button,.avatar-button{border-radius:12px;box-shadow:0 8px 20px #12371b14}@media (width<=760px){.pdf-native-preview{display:none}.pdf-mobile-preview{min-height:inherit;color:var(--ink);text-align:center;align-content:center;justify-items:center;gap:12px;padding:18px;display:grid}.pdf-mobile-preview>svg{width:42px;height:42px;color:var(--blue)}.pdf-mobile-preview strong,.pdf-mobile-preview span{display:block}.pdf-mobile-preview strong{overflow-wrap:anywhere;line-height:1.35}.pdf-mobile-preview span{color:var(--muted);margin-top:4px;font-size:13px}.pdf-mobile-preview .template-button{justify-content:center;width:100%;max-width:260px}}.account-toolbar{gap:12px;display:grid}.bulk-account-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.check-cell{justify-content:center;align-items:center;display:flex}.check-cell input{width:20px;height:20px;accent-color:var(--green-700);cursor:pointer}.check-cell input:disabled{cursor:not-allowed;opacity:.48}.student-preview-row-action strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.account-button{justify-content:center;min-width:112px}.icon-danger{background:var(--surface-danger);color:#d7421e;border:1px solid #f3c6b9;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.icon-danger svg{width:18px;height:18px}@media (width<=620px){.student-preview-head-action,.student-preview-row-action{min-width:820px}.bulk-account-row>.template-button,.bulk-account-row>.small-primary{justify-content:center;width:100%}}:root{--green-900:#0f172a;--green-800:#fff;--green-700:#111827;--green-100:#f5f5f7;--amber:#0071e3;--amber-soft:#eaf4ff;--blue:#0071e3;--blue-soft:#eaf4ff;--coral:#d93025;--coral-soft:#fff2f0;--ink:#252a32;--muted:#69717d;--line:#d9dfe7;--paper:#fafbfd;--page:#edf1f5;--shadow:0 10px 30px #232d3c12;--surface-soft:#f0f3f7;--surface-subtle:#f5f7fa;--surface-selected:#eef6ff;--surface-danger:#fff8f5}:root[data-theme=dark]{--green-900:#f5f5f7;--green-800:#121418;--green-700:#f5f5f7;--green-100:#23262d;--amber:#8ab4ff;--amber-soft:#1f2d3d;--blue:#8ab4ff;--blue-soft:#1f2d3d;--coral:#ff8a80;--coral-soft:#3a1f1d;--ink:#f5f5f7;--muted:#a7abb5;--line:#2b2f38;--paper:#15171c;--page:#0f1115;--shadow:0 18px 45px #00000061;--surface-soft:#ffffff13;--surface-subtle:#ffffff0e;--surface-selected:#2997ff24;--surface-danger:#ff453a1f}body{background:var(--page);color:var(--ink);font-family:Prompt,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}*,button,input,select,textarea{font-family:Prompt,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;font-weight:400!important}.brand-panel{border-right:1px solid var(--line);background:var(--paper);color:var(--ink)}.brand-panel:after{display:none}.brand-panel p,.brand-panel span{color:var(--muted)}.brand-mark{background:linear-gradient(145deg,#fff 0%,#f4f6fb 100%);border:1px solid #ffffffe6;border-radius:999px;width:clamp(132px,18vw,176px);height:clamp(132px,18vw,176px);padding:14px;box-shadow:0 24px 54px #00000024,inset 0 1px #ffffffe6}.brand-logo{filter:drop-shadow(0 10px 14px #0000001f);border-radius:999px}.auth-panel{background:var(--page)}.mobile-head-brand{display:none}.app-shell{grid-template-columns:292px minmax(0,1fr)}.side-nav{border-right:1px solid var(--line);color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8fafcf0}.side-brand{border-bottom-color:var(--line)}.side-logo,.mobile-head-brand img{background:linear-gradient(145deg,#fff 0%,#f3f5f9 100%);border-radius:999px;box-shadow:0 12px 26px #0000001f,inset 0 1px #fffffff2}.side-brand small{color:var(--muted)}.side-nav nav button,.logout-button{min-height:48px;color:var(--muted);border:1px solid #0000;border-radius:8px;font-weight:600}.side-nav nav button:hover,.logout-button:hover{border-color:var(--line);background:var(--surface-soft);color:var(--ink);transform:none}.side-nav nav button.active{border-color:var(--line);background:var(--surface-soft);color:var(--ink)}.side-nav nav button.active:before{background:#0071e3}.top-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f6f8fbe6;border-bottom:1px solid #d9dfe7db}:root:not([data-theme=dark]) .bottom-nav{border-top-color:var(--line);background:#f6f8fbf0}@media (width>=1121px){.side-nav{gap:24px;padding:0 18px 24px}.side-brand{height:84px;min-height:84px;padding:10px 6px}.side-brand strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.top-bar{flex-wrap:nowrap;gap:clamp(20px,3vw,42px);min-height:84px;padding-block:10px}.top-title-block{flex:auto;align-content:center;gap:2px;min-width:220px;display:grid}.top-title-block .eyebrow{margin:0;line-height:1.3}.top-title-block h2{line-height:1.3}.top-actions{flex-wrap:nowrap;flex:none;align-items:flex-end;gap:8px;display:flex}.teacher-classroom-picker{gap:3px;width:clamp(240px,24vw,300px);min-width:0;line-height:1.2}.teacher-classroom-picker select,.top-actions .icon-button,.top-actions .theme-toggle-button,.top-actions .avatar-button{height:42px;min-height:42px}.top-actions .icon-button,.top-actions .avatar-button{flex:0 0 42px;width:42px}.top-actions .theme-toggle-button{white-space:nowrap;flex:none;padding-inline:12px}}@media (width>=761px) and (width<=1120px){.app-shell{grid-template-columns:1fr;padding-bottom:78px;display:block}.side-nav{display:none}.workspace{padding-bottom:18px}.top-bar{grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;min-height:72px;padding:12px 22px;display:grid}.top-title-block{width:100%}.top-title-block>.eyebrow,.top-title-block>h2{display:none}.mobile-head-brand{align-items:center;gap:10px;min-width:0;display:flex}.mobile-head-brand img{border:1px solid var(--line);object-fit:contain;border-radius:999px;flex:none;width:42px;height:42px;padding:4px}.mobile-head-brand strong,.mobile-head-brand small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.top-actions{display:contents}.teacher-classroom-picker{grid-area:2/1/auto/-1;width:100%;min-width:0}.teacher-classroom-picker select{width:100%}.top-actions .icon-button,.avatar-button{display:none}.theme-toggle-button{grid-area:1/2}.mobile-profile-button{grid-area:1/3;display:inline-flex}.mobile-logout-button{grid-area:1/4;display:inline-flex}.bottom-nav{z-index:8;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));min-height:68px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 34px #0f172a14}.bottom-nav button{min-width:0;color:var(--muted);background:0 0;border:0;place-items:center;gap:2px;padding:7px 4px;font-size:12px;display:grid}.bottom-nav [data-nav-key=profile]{display:none!important}.bottom-nav button.active{color:var(--blue)}.bottom-nav svg{width:22px;height:22px}.content-area{padding:24px 28px 36px}}.top-bar h2,.page-header h1,.hero-strip h1{font-weight:700}.eyebrow,.section-heading span,.field{font-weight:500}.panel,.material-card,.score-hero,.upload-panel,.profile-panel,.stat-card,.auth-card{border-color:var(--line);background:var(--paper);box-shadow:0 18px 45px #0f172a14,inset 0 1px #fffc}.hero-strip,.score-hero{border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 18px 45px #0f172a14}.hero-strip .eyebrow,.score-hero span{color:var(--muted)}.grade-badge{background:var(--surface-soft);color:var(--ink)}.primary-button,.small-primary,.avatar-button{color:#fff;box-shadow:none;background:#1d1d1f;font-weight:700}.primary-button,.small-primary,.template-button,.select-button,.outline-file-button,.icon-button,.avatar-button,.mobile-profile-button,.mobile-logout-button,.filter-row button{border-radius:8px}.template-button,.select-button,.filter-row button,.mobile-profile-button,.mobile-logout-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:600}.filter-row button.active,.template-button.active{color:#fff;background:#1d1d1f;border-color:#1d1d1f}.icon-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 10px 24px #0f172a14}.theme-toggle-button{border:1px solid var(--line);background:var(--paper);min-height:42px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;box-shadow:0 10px 24px #0f172a14}.theme-toggle-button svg{width:18px;height:18px}.mobile-profile-button{border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;display:none;box-shadow:0 10px 24px #0f172a14}.mobile-profile-button svg{width:18px;height:18px}.mobile-profile-button.active{color:#0071e3;background:#0071e31a;border-color:#0071e35c}.field input,.field select,.field textarea,.input-shell,.score-input input{border-color:var(--line);background:var(--paper);color:var(--ink);box-shadow:inset 0 1px 2px #00000005}.field input:focus,.field select:focus,.field textarea:focus,.input-shell:focus-within{border-color:#0071e3;outline:none;box-shadow:0 0 0 3px #0071e324}.upload-panel,.empty-state{border-color:var(--line);background:var(--paper)}.upload-panel{border-style:dashed}.upload-panel>svg,.text-button{color:#0071e3}.material-card,.lesson-card,.submission-card,.score-card,.score-row,.score-summary-row,.announcement-card,.download-log-row,.student-preview-row{background:var(--paper);box-shadow:0 12px 30px #0f172a0f}.material-card{border-left-width:1px}.tone-border-green,.tone-border-amber,.tone-border-blue,.tone-border-coral{border-left-color:var(--line)}.material-icon,.tone-green,.tone-amber,.tone-blue,.tone-coral,.type-pill.pdf,.type-pill.video,.type-pill.img,.status-pill.pass,.status-pill.info{background:var(--surface-soft);color:var(--ink)}.status-pill.pending{color:#8a6200;background:#fff8e5}.status-pill.fail{background:var(--coral-soft);color:var(--coral)}.bottom-nav{border-top-color:var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe6}.bottom-nav [data-nav-key=profile]{display:none!important}.bottom-nav button.active{color:#0071e3}.student-score-simple .score-overview-layout{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}.student-score-simple .score-ring{width:min(240px,64vw)}.student-score-simple .score-ring>div{box-shadow:inset 0 0 0 1px var(--line)}.student-score-simple .score-ring strong{font-size:clamp(38px,7vw,64px);line-height:1}.student-score-simple .score-overview-copy{align-content:center}.student-score-simple .score-overview-copy p{margin:0;font-size:18px}.student-score-table .score-summary-head,.student-score-table .score-summary-row{grid-template-columns:minmax(0,1fr) minmax(120px,.35fr)}.student-score-table .score-summary-row span{color:var(--ink);font-weight:700}.student-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.student-home-card{min-height:174px;color:var(--ink);text-align:left;background:linear-gradient(145deg,#fff 0%,#f7f8fb 100%);border:1px solid #e5e5eae6;border-radius:18px;align-content:space-between;gap:10px;padding:20px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 22px 50px #0f172a1a,inset 0 1px #ffffffeb}.student-home-card:hover{transform:translateY(-2px);box-shadow:0 30px 62px #0f172a21,inset 0 1px #ffffffeb}.student-home-card svg{color:#0071e3;background:#eef5ff;border-radius:12px;width:36px;height:36px;padding:8px}.student-home-card span{color:var(--muted);font-size:13px}.student-home-card strong{font-size:clamp(24px,3vw,34px);line-height:1.08}.student-home-card small{color:var(--muted);font-size:14px;line-height:1.4}.score-home-card{text-align:center;place-items:center}.home-score-ring{width:min(156px,42vw)}.home-score-ring>div{box-shadow:inset 0 0 0 1px var(--line), 0 18px 35px #0f172a14}.home-score-ring strong{font-size:clamp(32px,7vw,48px)}.announcement-home-card,.announcement-panel-red,.announcement-card-student{border-color:#ffcdd2f2;box-shadow:0 22px 58px #d9302524,inset 0 1px #ffffffeb}.announcement-home-card svg{color:#d93025;background:#fff2f0}.announcement-panel-red{background:linear-gradient(145deg,#fff 0%,#fff8f7 100%)}.student-home-lists{align-items:start}.teacher-home-layout{grid-template-columns:minmax(0,.9fr) minmax(360px,1fr);align-items:start;gap:18px;display:grid}.teacher-actions-panel,.announcement-compose-panel,.teacher-pending-panel,.teacher-announcement-panel{min-width:0}.teacher-actions-panel,.announcement-compose-panel{gap:16px;display:grid}.teacher-pending-panel{grid-area:1/2}.teacher-announcement-panel{background:linear-gradient(145deg,#fff 0%,#fff9f8 100%);border-color:#ff453a29;grid-area:2/2;overflow:hidden;box-shadow:0 22px 58px #d930251a,inset 0 1px #ffffffeb}.announcement-overview-header,.announcement-overview-title,.announcement-overview-meta,.announcement-overview-empty{align-items:center;display:flex}.announcement-overview-header{border-bottom:1px solid #ff453a1f;justify-content:space-between;gap:16px;padding-bottom:16px}.announcement-overview-title{gap:12px;min-width:0}.announcement-overview-icon{color:#d93025;background:#fff0ee;border-radius:12px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid}.announcement-overview-icon svg,.announcement-overview-empty>svg{width:21px;height:21px}.announcement-overview-title h2,.announcement-overview-title p,.announcement-overview-item p{margin:0}.announcement-overview-title h2{font-size:20px;line-height:1.25}.announcement-overview-title p,.announcement-overview-item small,.announcement-overview-empty span{color:var(--muted);font-size:12px}.announcement-count{color:#b42318;background:#fff0ee;border-radius:999px;flex:none;min-height:30px;padding:5px 10px;font-size:12px;font-weight:600}.announcement-overview-list{display:grid}.announcement-overview-item{border-bottom:1px solid #ff453a1a;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:16px 0;display:grid}.announcement-overview-item:last-child{border-bottom:0;padding-bottom:0}.announcement-overview-copy{min-width:0}.announcement-overview-meta{justify-content:space-between;gap:12px}.announcement-overview-meta strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;overflow:hidden}.announcement-overview-meta span{color:var(--muted);flex:none;font-size:11px}.announcement-overview-item p{color:var(--ink);overflow-wrap:anywhere;padding:5px 0 7px;font-size:13px;line-height:1.5}.announcement-overview-item small{display:block}.announcement-overview-empty{text-align:left;justify-content:center;gap:12px;min-height:112px;padding:18px}.announcement-overview-empty>svg{color:#d93025;flex:none}.announcement-overview-empty strong,.announcement-overview-empty span{display:block}.announcement-compose-grid{gap:14px}:root[data-theme=dark] .teacher-announcement-panel{background:linear-gradient(145deg,#2e1818f5 0%,#191212fa 100%);border-color:#ff453a38;box-shadow:0 26px 68px #00000052,inset 0 1px #ffffff0f}:root[data-theme=dark] .announcement-overview-header,:root[data-theme=dark] .announcement-overview-item{border-color:#ff8a8024}:root[data-theme=dark] .announcement-overview-icon,:root[data-theme=dark] .announcement-count{color:#ff9a91;background:#ff453a26}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f5f7ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.download-confirm-panel{border-radius:20px;width:min(100%,540px);max-height:min(720px,100vh - 40px);overflow:auto;box-shadow:0 30px 90px #0f172a38}.modal-copy{color:var(--muted);margin:0}.download-confirm-panel .form-actions{justify-content:flex-end}.student-preview{gap:10px}.student-preview-head-action,.student-preview-row-action{grid-template-columns:44px 64px 128px minmax(240px,1fr) 132px 116px 52px}.student-preview-head{border:1px solid var(--line);background:var(--surface-soft);min-height:50px}.student-preview-row{border-radius:12px;min-height:58px}.bulk-account-row{align-items:stretch}.bulk-account-row .danger-button,.bulk-account-row .template-button,.bulk-account-row .small-primary{justify-content:center}:root[data-theme=dark] body,:root[data-theme=dark] .auth-panel{background:var(--page);color:var(--ink)}:root[data-theme=dark] .brand-panel,:root[data-theme=dark] .side-nav,:root[data-theme=dark] .top-bar,:root[data-theme=dark] .panel,:root[data-theme=dark] .material-card,:root[data-theme=dark] .score-hero,:root[data-theme=dark] .upload-panel,:root[data-theme=dark] .profile-panel,:root[data-theme=dark] .stat-card,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .student-home-card,:root[data-theme=dark] .announcement-panel-red,:root[data-theme=dark] .student-preview-row,:root[data-theme=dark] .submission-card,:root[data-theme=dark] .score-row,:root[data-theme=dark] .score-summary-row,:root[data-theme=dark] .download-log-row,:root[data-theme=dark] .input-shell,:root[data-theme=dark] .field input,:root[data-theme=dark] .field select,:root[data-theme=dark] .field textarea,:root[data-theme=dark] .template-button,:root[data-theme=dark] .select-button,:root[data-theme=dark] .filter-row button,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .theme-toggle-button,:root[data-theme=dark] .student-preview-head,:root[data-theme=dark] .announcement-card,:root[data-theme=dark] .download-confirm-panel{border-color:var(--line);background:var(--paper);color:var(--ink)}:root[data-theme=dark] .top-bar{background:#0f1115d6}:root[data-theme=dark] .bottom-nav{border-color:var(--line);background:#0f1115eb}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .side-logo,:root[data-theme=dark] .mobile-head-brand img{background:linear-gradient(145deg,#20232a 0%,#111318 100%);border-color:#333844}:root[data-theme=dark] .side-nav nav button:hover,:root[data-theme=dark] .side-nav nav button.active,:root[data-theme=dark] .student-home-card,:root[data-theme=dark] .hero-strip,:root[data-theme=dark] .score-hero{background:linear-gradient(145deg,#191c22 0%,#121419 100%)}:root[data-theme=dark] .announcement-home-card,:root[data-theme=dark] .announcement-panel-red,:root[data-theme=dark] .announcement-card-student{box-shadow:0 22px 58px #ff585826}.primary-button,.small-primary,.filter-row button.active,.template-button.active,.assignment-chip.active,.score-tabs button.active,.classroom-chip.active>button:first-child,.avatar-button{color:#fff!important;background:#1d1d1f!important;border-color:#1d1d1f!important}.assignment-type-sections{gap:16px;display:grid}.assignment-type-section{gap:10px;display:grid}.assignment-type-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:600;display:flex}.assignment-type-badge{width:fit-content;min-height:26px;color:var(--blue);white-space:nowrap;background:#0071e317;border:1px solid #0071e329;border-radius:999px;justify-content:center;align-items:center;padding:2px 10px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.assignment-type-badge.compact{vertical-align:middle;min-height:20px;margin-right:6px;padding:1px 7px;font-size:10px}:root[data-theme=dark] .primary-button,:root[data-theme=dark] .small-primary,:root[data-theme=dark] .filter-row button.active,:root[data-theme=dark] .template-button.active,:root[data-theme=dark] .avatar-button{color:#111827!important;background:#f5f5f7!important;border-color:#f5f5f7!important}:root[data-theme=dark] .assignment-type-badge{color:#8ecbff;background:#2997ff29;border-color:#2997ff47}@media (width<=980px){.app-shell,.teacher-home-layout{grid-template-columns:1fr}.teacher-pending-panel,.teacher-announcement-panel{grid-area:auto}.top-title-block{width:100%}.mobile-head-brand{align-items:center;gap:10px;min-width:0;display:flex}.mobile-head-brand img{border:1px solid var(--line);object-fit:contain;background:#fff;border-radius:10px;flex:none;width:38px;height:38px;padding:4px}.mobile-head-brand strong,.mobile-head-brand small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mobile-head-brand strong{color:var(--ink);font-size:15px;font-weight:700;line-height:1.2}.mobile-head-brand small{color:var(--muted);font-size:12px}.top-actions{width:100%}.teacher-classroom-picker,.mobile-profile-button,.mobile-logout-button{flex:180px}}@media (width<=760px){.content-area{padding:18px 12px 96px}.top-bar{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;min-height:64px;padding:14px 12px;display:grid}.top-title-block>.eyebrow,.top-title-block>h2{display:none}.top-actions{display:contents}.teacher-classroom-picker{grid-area:2/1/auto/-1;width:100%}.avatar-button{display:none}.mobile-logout-button{border-radius:999px;grid-area:1/4;place-items:center;width:40px;min-width:0;height:40px;min-height:40px;padding:0;display:grid}.mobile-profile-button{border-radius:999px;grid-area:1/3;place-items:center;width:40px;min-width:0;height:40px;min-height:40px;padding:0;display:grid}.mobile-profile-button span{display:none}.mobile-profile-button svg{width:18px;height:18px}.mobile-logout-button span{display:none}.mobile-logout-button svg{width:18px;height:18px}.theme-toggle-button{grid-area:1/2;width:40px;height:40px;min-height:40px;padding:0}.theme-toggle-button span,.top-actions .icon-button{display:none}.page-header{gap:4px}.material-tools{gap:8px}.material-grid{gap:12px}.material-body{padding:14px}.card-actions>button{flex:120px;justify-content:center}.student-score-simple .score-overview-layout,.student-score-table .score-summary-head,.student-score-table .score-summary-row{grid-template-columns:1fr}.student-score-simple .score-overview-copy{text-align:center}.download-confirm-panel{scroll-margin-top:82px}.student-home-grid{grid-template-columns:1fr}.student-home-card{min-height:140px}.score-home-card{min-height:190px}.download-log-head,.score-summary-head{display:none}.download-log-row,.score-summary-row{border-radius:14px;grid-template-columns:1fr;gap:8px;padding:14px;display:grid}.download-log-row>*,.score-summary-row>*{overflow-wrap:anywhere;gap:2px;display:grid}.download-log-row>:before,.score-summary-row>:before{color:var(--muted);font-size:11px;line-height:1.2}.download-log-row>strong:before,.score-summary-row>strong:before{content:"รายการ"}.download-log-row>span:nth-child(2):before{content:"นักเรียน"}.download-log-row>span:nth-child(3):before{content:"วันที่"}.score-summary-row>span:nth-child(2):before{content:"คะแนน"}.score-summary-row>span:nth-child(3):before{content:"คะแนนเก็บ"}.score-summary-row>span:nth-child(4):before{content:"ผู้เรียน"}}@media (width<=620px){.student-preview-row-action{border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;padding:14px}.student-preview-row-action>.check-cell{justify-content:flex-start}.student-preview-row-action>.check-cell:before{content:"เลือก"}.student-preview-row-action>span:nth-child(2):before{content:"เลขที่"}.student-preview-row-action>span:nth-child(3):before{content:"รหัสนักเรียน"}.student-preview-row-action>strong:nth-child(4){grid-column:1/-1}.student-preview-row-action>strong:nth-child(4):before{content:"ชื่อ-นามสกุล"}.student-preview-row-action>span:nth-child(5):before{content:"บัญชี"}.student-preview-row-action .account-button,.student-preview-row-action .icon-danger{grid-column:1/-1;width:100%}.bulk-account-row{grid-template-columns:1fr;display:grid}}:root{--ring-fill:#111827;--ring-track:#eef0f3;--surface-glass:#ffffffd6}:root[data-theme=dark]{--green-900:#f5f5f7;--green-800:#050506;--green-700:#2997ff;--green-100:#1d1d1f;--amber:#2997ff;--amber-soft:#2997ff24;--blue:#2997ff;--blue-soft:#2997ff24;--coral:#ff453a;--coral-soft:#ff453a21;--ink:#f5f5f7;--muted:#a1a1a6;--line:#ffffff1f;--paper:#1d1d1f;--page:#000;--shadow:0 24px 70px #00000085;--ring-fill:#2997ff;--ring-track:#ffffff1f;--surface-glass:#161618c7}:root[data-theme=dark] body{color:var(--ink);background:#000}:root[data-theme=dark] .workspace,:root[data-theme=dark] .content-area{background:linear-gradient(#ffffff0b 0%,#fff0 260px),#000}:root[data-theme=dark] .auth-panel{background:#000}:root[data-theme=dark] .brand-panel{background:#050506}:root[data-theme=dark] .side-nav{background:#0a0a0cdb;border-right-color:#ffffff1a;box-shadow:18px 0 48px #00000047}:root[data-theme=dark] .top-bar{background:#0a0a0cc7;border-bottom-color:#ffffff1a;box-shadow:0 12px 36px #00000038}:root[data-theme=dark] .bottom-nav{background:#0a0a0cd6;border-top-color:#ffffff1f;box-shadow:0 -18px 42px #00000057}:root[data-theme=dark] .panel,:root[data-theme=dark] .material-card,:root[data-theme=dark] .score-hero,:root[data-theme=dark] .upload-panel,:root[data-theme=dark] .profile-panel,:root[data-theme=dark] .stat-card,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .download-confirm-panel{background:linear-gradient(#ffffff13 0%,#ffffff0b 100%);border-color:#ffffff1f;box-shadow:0 24px 70px #0000006b,inset 0 1px #ffffff14}:root[data-theme=dark] .student-home-card{background:linear-gradient(145deg,#232326fa 0%,#161618fa 100%);border-color:#ffffff1f;box-shadow:0 26px 70px #00000070,inset 0 1px #ffffff14}:root[data-theme=dark] .student-home-card:hover{box-shadow:0 34px 86px #0000008a,inset 0 1px #ffffff1a}:root[data-theme=dark] .student-home-card svg,:root[data-theme=dark] .material-icon,:root[data-theme=dark] .type-pill.pdf,:root[data-theme=dark] .type-pill.video,:root[data-theme=dark] .type-pill.img,:root[data-theme=dark] .status-pill.pass,:root[data-theme=dark] .status-pill.info,:root[data-theme=dark] .tone-green,:root[data-theme=dark] .tone-amber,:root[data-theme=dark] .tone-blue,:root[data-theme=dark] .tone-coral{color:#8ecbff;background:#2997ff21}:root[data-theme=dark] .announcement-home-card,:root[data-theme=dark] .announcement-panel-red,:root[data-theme=dark] .announcement-card-student{background:linear-gradient(145deg,#2e1818f5 0%,#191212fa 100%);border-color:#ff453a38;box-shadow:0 28px 72px #ff453a21,inset 0 1px #ffffff12}:root[data-theme=dark] .announcement-home-card svg{color:#ff8a80;background:#ff453a29}:root[data-theme=dark] .announcement-card,:root[data-theme=dark] .submission-card,:root[data-theme=dark] .score-card,:root[data-theme=dark] .score-row,:root[data-theme=dark] .score-summary-row,:root[data-theme=dark] .download-log-row,:root[data-theme=dark] .student-preview-row,:root[data-theme=dark] .file-preview{background:#ffffff0e;border-color:#ffffff1c;box-shadow:0 16px 44px #00000042}:root[data-theme=dark] .student-preview-head{background:#ffffff13;border-color:#ffffff1a}:root[data-theme=dark] .field input,:root[data-theme=dark] .field select,:root[data-theme=dark] .field textarea,:root[data-theme=dark] .input-shell,:root[data-theme=dark] .score-input input{color:var(--ink);background:#ffffff13;border-color:#ffffff24;box-shadow:inset 0 1px #ffffff0d}:root[data-theme=dark] .field input::placeholder,:root[data-theme=dark] .field textarea::placeholder,:root[data-theme=dark] .input-shell input::placeholder{color:#f5f5f76b}:root[data-theme=dark] .input-shell input{color:var(--ink);-webkit-text-fill-color:var(--ink);background:0 0;transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #0000}:root[data-theme=dark] .input-shell input:-webkit-autofill{color:var(--ink);-webkit-text-fill-color:var(--ink);background:0 0;transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #0000}:root[data-theme=dark] .input-shell input:-webkit-autofill:hover{color:var(--ink);-webkit-text-fill-color:var(--ink);background:0 0;transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #0000}:root[data-theme=dark] .input-shell input:-webkit-autofill:focus{color:var(--ink);-webkit-text-fill-color:var(--ink);background:0 0;transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #0000}:root[data-theme=dark] .field input:focus,:root[data-theme=dark] .field select:focus,:root[data-theme=dark] .field textarea:focus,:root[data-theme=dark] .input-shell:focus-within{border-color:#2997ffc7;box-shadow:0 0 0 4px #2997ff2e}:root[data-theme=dark] .template-button,:root[data-theme=dark] .select-button,:root[data-theme=dark] .filter-row button,:root[data-theme=dark] .mobile-profile-button,:root[data-theme=dark] .mobile-logout-button,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .theme-toggle-button,:root[data-theme=dark] .outline-file-button,:root[data-theme=dark] .danger-button,:root[data-theme=dark] .icon-danger{color:var(--ink);background:#ffffff13;border-color:#ffffff21;box-shadow:0 14px 36px #00000042}:root[data-theme=dark] .mobile-profile-button.active{color:#8ecbff;background:#2997ff29;border-color:#2997ff6b}:root[data-theme=dark] .logout-button,:root[data-theme=dark] .mobile-logout-button{color:#ff8a80;background:#ff453a21;border:1px solid #ff453a57;box-shadow:0 12px 32px #ff453a1a}:root[data-theme=dark] .logout-button:hover,:root[data-theme=dark] .mobile-logout-button:hover{color:#ffb4ae;background:#ff453a33;border-color:#ff453a8f}:root[data-theme=dark] .primary-button,:root[data-theme=dark] .small-primary,:root[data-theme=dark] .filter-row button.active,:root[data-theme=dark] .template-button.active,:root[data-theme=dark] .assignment-chip.active,:root[data-theme=dark] .score-tabs button.active,:root[data-theme=dark] .classroom-chip.active>button:first-child,:root[data-theme=dark] .avatar-button{color:#fff!important;background:#2997ff!important;border-color:#2997ffc7!important;box-shadow:0 16px 40px #2997ff38!important}:root[data-theme=dark] .text-button,:root[data-theme=dark] .bottom-nav button.active,:root[data-theme=dark] .side-nav nav button.active,:root[data-theme=dark] .side-nav nav button:hover{color:#8ecbff}:root[data-theme=dark] .side-nav nav button.active,:root[data-theme=dark] .side-nav nav button:hover{background:#2997ff1f;border-color:#2997ff3d}:root[data-theme=dark] .side-nav nav button.active:before{background:#2997ff}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .side-logo,:root[data-theme=dark] .mobile-head-brand img{background:radial-gradient(circle at 35% 20%,#303036 0%,#18181b 52%,#0c0c0d 100%);border-color:#ffffff24;box-shadow:0 22px 58px #0000007a,inset 0 1px #ffffff1f}:root[data-theme=dark] .score-ring>div{background:#101012;box-shadow:inset 0 0 0 1px #ffffff1a,0 18px 48px #00000057}:root[data-theme=dark] .home-score-ring>div{box-shadow:inset 0 0 0 1px #ffffff1a,0 20px 54px #2997ff1f}:root[data-theme=dark] .modal-backdrop{background:#00000094}:root[data-theme=dark] .status-pill.pending{color:#ffd60a;background:#ffd60a24}:root[data-theme=dark] .status-pill.fail{color:#ff8a80;background:#ff453a24}:root[data-theme=dark] .toast{color:#ffe781;background:linear-gradient(145deg,#3a2a08 0%,#241a08 100%);border:1px solid #ffd60a61;box-shadow:0 20px 58px #00000075,inset 0 0 0 1px #ffd60a0f}.primary-button,.template-button,.select-button,.outline-file-button,.danger-button,.mobile-profile-button,.mobile-logout-button{height:46px;min-height:46px;padding-block:0}.small-primary,.small-danger{height:40px;min-height:40px}.icon-button,.avatar-button,.icon-danger{width:42px;min-width:42px;height:42px;min-height:42px;padding:0}.primary-button svg,.small-primary svg,.template-button svg,.select-button svg,.outline-file-button svg,.danger-button svg,.icon-button svg,.icon-danger svg{flex:none;width:18px;height:18px}.form-actions>.primary-button,.form-actions>.template-button,.form-actions>.danger-button{height:46px;min-height:46px}.card-actions>.small-primary,.card-actions>.template-button,.card-actions>.danger-button{height:42px;min-height:42px}.bulk-account-row>.small-primary,.bulk-account-row>.template-button,.bulk-account-row>.danger-button,.account-button{height:44px;min-height:44px}.top-actions .icon-button,.top-actions .avatar-button,.top-actions .theme-toggle-button,.top-actions .mobile-profile-button,.top-actions .mobile-logout-button,.teacher-classroom-picker select{height:42px;min-height:42px}.classroom-chip{grid-template-columns:minmax(0,1fr) 46px}.classroom-chip>button:first-child,.classroom-chip>.icon-danger{height:100%;min-height:64px}.classroom-chip>.icon-danger{width:46px;min-width:46px}.student-preview-row-action>.icon-danger{width:44px;min-width:44px;height:44px;min-height:44px}.student-home-welcome{gap:2px;padding:2px;display:grid}.student-home-welcome p,.student-home-welcome h1,.student-home-welcome span{margin:0}.student-home-welcome p,.student-home-welcome span{color:var(--muted)}.student-home-welcome h1{font-size:clamp(28px,4vw,42px);line-height:1.25}.student-home-welcome span{margin-top:4px;font-size:16px}.assignment-classroom-fieldset{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.assignment-classroom-fieldset legend{color:var(--muted);margin-bottom:8px;font-size:14px}.classroom-checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.classroom-checkbox{border:1px solid var(--line);background:var(--paper);min-width:0;min-height:48px;color:var(--ink);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.classroom-checkbox input{accent-color:#1d1d1f;flex:none;width:18px;height:18px}.classroom-checkbox span{overflow-wrap:anywhere;min-width:0}.teacher-download-log .download-log-head,.teacher-download-log .download-log-row{grid-template-columns:minmax(0,1.4fr) minmax(150px,.9fr) minmax(130px,.9fr) 42px}.download-log-row>span:nth-child(2){gap:2px;display:grid}.download-log-row>span:nth-child(2) b{color:var(--ink);font-weight:600}.download-log-row>span:nth-child(2) small,.student-submission-identity small,.profile-student-code{color:var(--muted);font-size:12px}.download-log-delete{justify-self:end}.score-row-wide{grid-template-columns:minmax(0,1fr) minmax(128px,auto)}.student-score-identity,.student-submission-identity{gap:2px;min-width:0;display:grid}.student-score-identity strong,.student-submission-identity span{overflow-wrap:anywhere}.student-submission-identity{margin-top:3px}.profile-panel>div{gap:4px;display:grid}.profile-student-code{display:block}:root[data-theme=dark] .classroom-checkbox{background:#ffffff0e;border-color:#ffffff1f}:root[data-theme=dark] .classroom-checkbox input{accent-color:#f5f5f7}@media (width<=760px){.student-home-welcome{padding-inline:2px}.student-home-welcome h1{font-size:28px}.classroom-checkbox-grid,.teacher-download-log .download-log-head,.teacher-download-log .download-log-row,.score-row-wide{grid-template-columns:1fr}.download-log-delete{justify-self:end}}.top-bar{z-index:30}.panel-classroom-picker{width:min(100%,520px)}.panel-classroom-picker .teacher-classroom-picker{grid-area:auto;width:100%;min-width:0}.panel-classroom-picker .teacher-classroom-picker select{width:100%}.score-matrix-scroll{z-index:0;isolation:isolate;position:relative}:root[data-theme=dark] .score-matrix-scroll{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:#ffffff47 #141416;background:#141416;border-color:#ffffff24;box-shadow:0 22px 58px #0000006b}:root[data-theme=dark] .score-matrix th,:root[data-theme=dark] .score-matrix td,:root[data-theme=dark] .score-matrix tbody .matrix-no,:root[data-theme=dark] .score-matrix tbody .matrix-id,:root[data-theme=dark] .score-matrix tbody .matrix-name{color:#f5f5f7;background:#1d1d1f;border-color:#ffffff1c}:root[data-theme=dark] .score-matrix thead th,:root[data-theme=dark] .score-matrix thead .matrix-no,:root[data-theme=dark] .score-matrix thead .matrix-id,:root[data-theme=dark] .score-matrix thead .matrix-name,:root[data-theme=dark] .score-matrix thead .matrix-total{color:#f5f5f7;background:#2a2a2d;border-color:#ffffff24;box-shadow:inset 0 -1px #ffffff14}:root[data-theme=dark] .score-matrix tbody .matrix-name{box-shadow:10px 0 22px #00000057}:root[data-theme=dark] .score-matrix tbody .matrix-total{background:#242427;border-left-color:#ffffff24;box-shadow:-10px 0 22px #00000057}:root[data-theme=dark] .matrix-score-cell input{color:#f5f5f7;background:#101012;border-color:#ffffff29;box-shadow:inset 0 1px #ffffff0d}:root[data-theme=dark] .matrix-score-cell input:focus{border-color:#2997ffd1;outline:3px solid #2997ff2e}:root[data-theme=dark] .score-entry-controls select{color:#f5f5f7;background:#101012;border-color:#ffffff29}:root[data-theme=dark] .score-matrix td.score-status-scored,:root[data-theme=dark] .score-row.score-status-scored,:root[data-theme=dark] .score-summary-row.score-status-scored{background:#30d1581f;border-color:#30d1584d}:root[data-theme=dark] .score-matrix td.score-status-leave,:root[data-theme=dark] .score-row.score-status-leave,:root[data-theme=dark] .score-summary-row.score-status-leave{background:#ffd60a1c;border-color:#ffd60a4d}:root[data-theme=dark] .score-matrix td.score-status-expired,:root[data-theme=dark] .score-row.score-status-expired,:root[data-theme=dark] .score-summary-row.score-status-expired{background:#ff453a1f;border-color:#ff453a52}:root[data-theme=dark] .score-matrix td.score-status-no_score,:root[data-theme=dark] .score-row.score-status-no_score,:root[data-theme=dark] .score-summary-row.score-status-no_score{background:#aeaeb21a;border-color:#aeaeb247}:root[data-theme=dark] .score-status-scored .score-entry-controls select,:root[data-theme=dark] .score-status-scored .score-entry-number input,:root[data-theme=dark] .score-status-leave .score-entry-controls select,:root[data-theme=dark] .score-status-expired .score-entry-controls select,:root[data-theme=dark] .score-status-no_score .score-entry-controls select{color:#f5f5f7;background:#00000052;border-color:#fff3}:root[data-theme=dark] .score-status-scored .score-entry-controls small,:root[data-theme=dark] .score-result.score-status-scored{color:#62db82}:root[data-theme=dark] .score-status-leave .score-entry-controls small,:root[data-theme=dark] .score-result.score-status-leave{color:#ffe06a}:root[data-theme=dark] .score-status-expired .score-entry-controls small,:root[data-theme=dark] .score-result.score-status-expired{color:#ff958d}:root[data-theme=dark] .score-status-no_score .score-entry-controls small,:root[data-theme=dark] .score-result.score-status-no_score{color:#c7c7cc}.student-home-card-manager{grid-column:1/-1;gap:18px;display:grid}.home-card-manager-layout{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:22px;display:grid}.home-card-compose{border-right:1px solid var(--line);align-content:start;gap:16px;min-width:0;padding-right:22px;display:grid}.home-card-audience-fieldset,.home-card-admin-list{gap:10px;display:grid}.audience-all-checkbox{max-width:320px}.home-card-admin-item{border:1px solid var(--line);background:var(--surface-subtle);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:13px;display:grid}.home-card-admin-item.inactive{opacity:.68}.home-card-admin-icon,.student-resource-icon{aspect-ratio:1;background:var(--blue-soft);width:42px;color:var(--blue);border-radius:12px;place-items:center;display:grid}.home-card-admin-icon svg,.student-resource-icon svg{width:20px;height:20px}.home-card-admin-copy{gap:2px;min-width:0;display:grid}.home-card-admin-copy strong,.home-card-admin-copy a,.home-card-admin-copy small{overflow-wrap:anywhere}.home-card-admin-copy a{width:fit-content;color:var(--blue);align-items:center;gap:4px;font-size:13px;text-decoration:none;display:inline-flex}.home-card-admin-copy a svg{width:13px;height:13px}.home-card-admin-copy small{color:var(--muted);font-size:12px}.home-card-admin-actions{grid-template-columns:repeat(5,36px);gap:6px;display:grid}.home-card-admin-actions button{border:1px solid var(--line);background:var(--paper);width:36px;min-height:36px;color:var(--ink);border-radius:9px;place-items:center;padding:0;display:grid}.home-card-admin-actions button:disabled{opacity:.32}.home-card-admin-actions button.delete{color:var(--coral);border-color:#ff453a4d}.home-card-admin-actions svg{width:16px;height:16px}.student-resource-panel{gap:16px;display:grid}.student-resource-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;display:grid}.student-resource-card{border:1px solid var(--line);background:var(--surface-subtle);min-width:0;min-height:112px;color:var(--ink);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:16px;text-decoration:none;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid}.student-resource-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 18px 38px #0f172a1a}.student-resource-card>div{gap:3px;min-width:0;display:grid}.student-resource-card strong,.student-resource-card small,.student-resource-card p{overflow-wrap:anywhere}.student-resource-card small,.student-resource-card p{color:var(--muted)}.student-resource-card p{margin:4px 0 0;font-size:13px;line-height:1.4}.student-resource-external{width:17px;height:17px;color:var(--muted)}.page-stack,.panel,.compact-form,.upload-panel,.form-grid,.field,.review-card,.review-grid,.submission-card,.teacher-home-layout{min-width:0}.field input,.field select,.field textarea{min-width:0;max-width:100%}.field select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.outline-file-button{min-width:0;overflow:hidden}.upload-panel{grid-template-columns:minmax(0,1fr);width:100%;overflow:hidden}.upload-panel>strong,.upload-panel>small{overflow-wrap:anywhere;max-width:100%}.file-choice-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.teacher-score-view-switch{grid-template-columns:repeat(3,auto);max-width:100%}.review-card{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}.review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.review-grid .small-primary{width:100%}.review-grid .review-delete-button{width:100%;min-height:40px}.submission-file-name{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;display:block;overflow:hidden}.review-file-box{border:1px solid var(--line);background:var(--surface-subtle);border-radius:10px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;margin-top:10px;padding:10px;display:grid}.review-file-box>svg{width:20px;height:20px;color:var(--muted)}.review-file-box>div{min-width:0;display:grid}.review-file-box span{color:var(--muted);font-size:11px}.review-file-box strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.review-file-box .template-button{height:38px;min-height:38px;padding-inline:12px}.submission-option-group,.group-member-picker{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.submission-option-group legend,.group-member-picker legend{color:var(--muted);margin-bottom:6px;font-size:14px}.group-member-picker legend span{color:var(--ink);margin-left:6px}.submission-segmented-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.submission-segmented-control button{min-width:0;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.submission-segmented-control button.active{background:var(--paper);color:var(--ink);box-shadow:0 3px 12px #0f172a14}.submission-segmented-control svg,.group-member-current svg{width:18px;height:18px}.group-member-picker{border:1px solid var(--line);background:var(--surface-subtle);border-radius:12px;padding:14px}.group-member-current,.group-member-option{border:1px solid var(--line);background:var(--paper);border-radius:9px;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.group-member-current{color:var(--green-700)}.group-member-current div,.group-member-option span{gap:1px;min-width:0;display:grid}.group-member-current small,.group-member-option small{color:var(--muted);font-size:11px}.group-member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:320px;display:grid;overflow:auto}.group-member-option{cursor:pointer}.group-member-option:has(input:checked){border-color:color-mix(in srgb, var(--blue) 52%, var(--line));background:var(--surface-selected)}.group-member-option input{width:18px;height:18px;accent-color:var(--blue);flex:none}.empty-inline{color:var(--muted);text-align:center;padding:12px}.submission-link-field input{min-height:54px}.submission-title-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.submission-kind-badge{background:var(--blue-soft);min-height:24px;color:var(--blue);border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;display:inline-flex}.submission-member-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.submission-member-list span{border:1px solid var(--line);background:var(--surface-subtle);color:var(--ink);border-radius:999px;padding:4px 8px;font-size:11px}:root[data-theme=dark] .submission-segmented-control,:root[data-theme=dark] .group-member-picker{background:#ffffff0b;border-color:#ffffff1f}:root[data-theme=dark] .submission-segmented-control button.active,:root[data-theme=dark] .group-member-current,:root[data-theme=dark] .group-member-option,:root[data-theme=dark] .submission-member-list span{color:#f5f5f7;background:#1d1d1f;border-color:#ffffff21}:root[data-theme=dark] .group-member-option:has(input:checked){background:#2997ff24;border-color:#2997ff9e}.chat-panel{gap:16px;padding:18px;display:grid}.chat-classroom-picker{max-width:460px}.chat-layout{grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:16px;min-height:620px;display:grid}.chat-roster{align-content:start;gap:8px;max-height:620px;padding-right:4px;display:grid;overflow:auto}.chat-roster button{border:1px solid var(--line);background:var(--paper);min-height:72px;color:var(--ink);text-align:left;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.chat-roster button.active{background:var(--surface-selected);border-color:#0071e36b;box-shadow:0 12px 28px #0071e317}.chat-roster strong,.chat-roster span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.chat-roster span{color:var(--muted);font-size:12px}.chat-roster .chat-typing-text{color:var(--blue);font-weight:600}.chat-roster b{background:var(--coral);color:#fff;border-radius:999px;place-items:center;min-width:26px;height:26px;font-size:12px;display:grid}.chat-thread{border:1px solid var(--line);background:var(--surface-soft);border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid;overflow:hidden}.chat-thread-head{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.chat-thread-head strong,.chat-thread-head span{display:block}.chat-thread-head span{color:var(--muted);font-size:13px}.chat-thread-head svg{width:24px;height:24px;color:var(--blue)}.chat-message-list{flex-direction:column;gap:10px;min-height:360px;padding:18px;display:flex;overflow:auto}.chat-bubble{border:1px solid var(--line);background:var(--paper);border-radius:18px;max-width:min(72%,620px);padding:12px 14px;box-shadow:0 10px 26px #0f172a0f}.chat-bubble.mine{color:#fff;background:#0071e3;border-color:#0071e347;align-self:flex-end}.chat-bubble.theirs{align-self:flex-start}.chat-bubble p{white-space:pre-wrap;word-break:break-word;margin:0}.chat-bubble span{color:var(--muted);margin-top:6px;font-size:11px;display:block}.chat-bubble.mine span{color:#ffffffb8}.chat-typing-indicator{border:1px solid var(--line);background:var(--paper);max-width:min(72%,620px);color:var(--muted);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;padding:10px 12px;display:inline-flex;box-shadow:0 10px 26px #0f172a0d}.chat-typing-indicator span{background:var(--blue);border-radius:999px;width:6px;height:6px;animation:1.1s ease-in-out infinite chatTypingPulse}.chat-typing-indicator span:nth-child(2){animation-delay:.14s}.chat-typing-indicator span:nth-child(3){animation-delay:.28s}.chat-typing-indicator b{margin-left:4px;font-size:12px;font-weight:600}@keyframes chatTypingPulse{0%,to{opacity:.32;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.chat-compose{border-top:1px solid var(--line);background:var(--paper);grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;display:grid}.chat-compose input{border:1px solid var(--line);background:var(--paper);min-width:0;min-height:52px;color:var(--ink);border-radius:14px;padding:0 14px}:root[data-theme=dark] .chat-roster button,:root[data-theme=dark] .chat-thread,:root[data-theme=dark] .chat-thread-head,:root[data-theme=dark] .chat-compose,:root[data-theme=dark] .chat-compose input,:root[data-theme=dark] .chat-bubble.theirs,:root[data-theme=dark] .chat-typing-indicator{color:#f5f5f7;background:#1d1d1f;border-color:#ffffff21}:root[data-theme=dark] .chat-roster .chat-typing-text{color:#8ecbff}:root[data-theme=dark] .chat-roster button.active{background:#2997ff24;border-color:#2997ff9e}:root[data-theme=dark] .chat-thread{background:#161617}@media (width<=1100px){.review-card{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr;min-height:0}.chat-roster{max-height:none;padding:0 0 4px;display:flex;overflow-x:auto}.chat-roster button{min-width:220px}.chat-thread{min-height:560px}.home-card-manager-layout{grid-template-columns:1fr}.home-card-compose{border-right:0;border-bottom:1px solid var(--line);padding-bottom:20px;padding-right:0}}@media (width<=760px){.hero-strip{min-height:0;padding:16px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{border-radius:12px;min-height:68px;padding:11px 12px}.stat-card span{font-size:11px;line-height:1.25}.stat-card strong{margin-top:3px;font-size:22px}.student-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-resource-grid{grid-template-columns:1fr}.student-resource-card{min-height:96px;padding:13px}.home-card-admin-item{grid-template-columns:auto minmax(0,1fr)}.home-card-admin-actions{grid-column:1/-1;grid-template-columns:repeat(5,minmax(36px,1fr))}.home-card-admin-actions button{width:100%}.student-home-card,.score-home-card{border-radius:14px;gap:7px;min-height:154px;padding:12px}.student-home-card svg{width:32px;height:32px;padding:7px}.student-home-card strong{font-size:20px}.student-home-card small{font-size:12px}.home-score-ring{width:104px}.home-score-ring strong{font-size:28px}.panel-classroom-picker{width:100%}.teacher-score-view-switch{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-score-view-switch button{gap:5px;min-width:0;padding-inline:6px;font-size:12px}.review-grid{grid-template-columns:1fr}.review-file-box{grid-template-columns:24px minmax(0,1fr)}.review-file-box .template-button{grid-column:1/-1;width:100%}.group-member-grid{grid-template-columns:1fr}}
