.aw-panel,.aw-student-gradebook,.aw-student-media{margin:14px 0 20px;padding:16px;border:1px solid var(--border,#dbe3ef);border-radius:20px;background:var(--surface,#fff);box-shadow:0 8px 28px rgba(15,23,42,.06)}
.aw-panel-head,.aw-student-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.aw-panel-head h3,.aw-student-section-head h3{margin:2px 0 4px;font-size:1.08rem}.aw-panel-head small,.aw-student-section-head small{font-weight:800;color:#2563eb}.aw-panel-head p,.aw-student-section-head p{margin:0;color:var(--muted,#64748b);font-size:.86rem;line-height:1.65}.aw-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.aw-review-setting{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;margin:10px 0 16px;border-radius:16px;background:color-mix(in srgb,#2563eb 8%,var(--surface,#fff));border:1px solid color-mix(in srgb,#2563eb 18%,transparent)}.aw-review-setting div{display:grid;gap:3px}.aw-review-setting small{color:var(--muted,#64748b);font-size:.8rem}.aw-switch{position:relative;width:52px;height:30px;flex:0 0 auto}.aw-switch input{position:absolute;opacity:0;pointer-events:none}.aw-switch span{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;transition:.2s;cursor:pointer}.aw-switch span:before{content:"";position:absolute;width:24px;height:24px;top:3px;right:3px;border-radius:50%;background:white;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:.2s}.aw-switch input:checked+span{background:#2563eb}.aw-switch input:checked+span:before{transform:translateX(-22px)}
.aw-section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0 9px;padding-top:4px}.aw-section-title>div{display:flex;align-items:center;gap:9px}.aw-section-title small{background:var(--chip-bg,#eef2ff);padding:4px 8px;border-radius:999px;color:var(--muted,#64748b)}.aw-review-list,.aw-content-list{display:grid;gap:10px}.aw-content-card{border:1px solid var(--border,#dbe3ef);border-radius:17px;padding:13px;background:var(--surface,#fff);display:grid;gap:10px}.aw-content-card p{margin:0;white-space:pre-wrap;line-height:1.75;font-size:.9rem}.aw-content-card footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted,#64748b);font-size:.78rem}.aw-content-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.aw-content-head h3{margin:3px 0 0;font-size:.98rem}.aw-kind{font-size:.72rem;font-weight:800;color:#2563eb}.aw-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.aw-status.pending{background:#fff7ed;color:#c2410c}.aw-status.rejected{background:#fef2f2;color:#b91c1c}.aw-status.auto{background:#eff6ff;color:#1d4ed8}.aw-status.approved{background:#ecfdf5;color:#047857}.aw-context-badges{display:flex;flex-wrap:wrap;gap:6px}.aw-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:750}.aw-class-badge{background:#f1f5f9;color:#334155}.aw-subject-badge{background:#eef2ff;color:#4338ca}.aw-legacy-context{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:8px 0}.aw-legacy-context>.aw-context-badges{flex:1}.aw-card-actions,.aw-grade-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.aw-rejection-note{padding:9px 11px;border-radius:12px;background:#fff1f2;color:#9f1239;font-size:.82rem}.aw-empty{padding:22px;text-align:center;border:1px dashed var(--border,#cbd5e1);border-radius:14px;color:var(--muted,#64748b);background:color-mix(in srgb,var(--surface,#fff) 94%,#94a3b8 6%)}.aw-empty.compact{padding:12px;font-size:.82rem}
.aw-attachments{display:flex;gap:8px;flex-wrap:wrap}.aw-attachment{border:1px solid var(--border,#dbe3ef);border-radius:13px;background:var(--surface,#fff);padding:8px 10px;display:grid;grid-template-columns:auto auto;gap:1px 6px;text-align:start;cursor:pointer;color:inherit}.aw-attachment span{grid-row:1/3;font-size:1.25rem}.aw-attachment b{font-size:.78rem}.aw-attachment small{font-size:.65rem;color:var(--muted,#64748b)}
.aw-dialog{border:0;padding:0;background:transparent;max-width:none;width:auto}.aw-dialog::backdrop{background:rgba(15,23,42,.62);backdrop-filter:blur(4px)}.aw-modal-card{width:min(760px,calc(100vw - 24px));max-height:min(88vh,900px);overflow:auto;background:var(--surface,#fff);color:var(--text,#0f172a);border:1px solid var(--border,#dbe3ef);border-radius:23px;padding:18px;box-shadow:0 28px 90px rgba(2,6,23,.32);display:grid;gap:14px}.aw-small-card{width:min(540px,calc(100vw - 24px))}.aw-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.aw-modal-head h2{margin:2px 0 0;font-size:1.15rem}.aw-modal-head small{color:#2563eb;font-weight:800}.aw-modal-head>button,.aw-image-viewer>button{border:0;background:var(--chip-bg,#eef2f7);color:inherit;width:38px;height:38px;border-radius:12px;font-size:1.1rem;cursor:pointer}.aw-modal-card label,.aw-field{display:grid;gap:6px}.aw-modal-card label>span,.aw-field>span{font-size:.8rem;font-weight:800}.aw-modal-card input,.aw-modal-card textarea,.aw-modal-card select,.aw-grade-scope select,.aw-grade-row input,.aw-grade-row select{width:100%;box-sizing:border-box;border:1px solid var(--border,#cbd5e1);border-radius:12px;padding:10px 11px;background:var(--input-bg,var(--surface,#fff));color:inherit;font:inherit}.aw-modal-card textarea{resize:vertical}.aw-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.aw-wide{grid-column:1/-1}.aw-class-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.aw-class-choices label{display:flex;align-items:center;gap:8px;border:1px solid var(--border,#dbe3ef);border-radius:13px;padding:10px;cursor:pointer}.aw-class-choices input{width:18px;height:18px;flex:0 0 auto}.aw-class-choices span{display:grid;gap:1px}.aw-class-choices b{font-size:.83rem}.aw-class-choices small{font-size:.7rem;color:var(--muted,#64748b)}.aw-upload{border:1px dashed var(--border,#cbd5e1);padding:12px;border-radius:14px}.aw-upload span{display:flex;justify-content:space-between;gap:8px}.aw-upload span b{font-size:.7rem;color:var(--muted,#64748b)}.aw-upload small{font-size:.7rem;color:var(--muted,#64748b)}.aw-file-preview{display:flex;gap:6px;flex-wrap:wrap}.aw-file-preview span{background:var(--chip-bg,#eef2f7);padding:5px 8px;border-radius:9px;font-size:.7rem}.aw-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.aw-check input{width:18px!important;height:18px}.aw-hint{padding:10px 12px;border-radius:12px;background:#eff6ff;color:#1e40af;font-size:.78rem;line-height:1.6}.aw-modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:4px}.aw-review-text{padding:11px;border-radius:12px;background:var(--chip-bg,#f1f5f9);line-height:1.7}.aw-image-dialog{width:100%;height:100%}.aw-image-viewer{position:fixed;inset:0;background:rgba(2,6,23,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:18px}.aw-image-viewer>button{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;background:rgba(255,255,255,.15);color:white}.aw-image-viewer img{max-width:96vw;max-height:78vh;object-fit:contain;border-radius:12px;touch-action:pinch-zoom}.aw-image-viewer .btn{display:inline-flex;text-decoration:none}
.aw-grade-panel{overflow:hidden}.aw-grade-scope{display:grid;grid-template-columns:minmax(0,380px);margin-bottom:12px}.aw-grade-scope label{display:grid;gap:6px}.aw-grade-scope span{font-size:.78rem;font-weight:800}.aw-exam-list{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}.aw-exam-chip{min-width:180px;border:1px solid var(--border,#dbe3ef);border-radius:14px;padding:10px;text-align:start;background:var(--surface,#fff);color:inherit;display:grid;gap:3px;cursor:pointer}.aw-exam-chip.active{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.aw-exam-chip b{font-size:.84rem}.aw-exam-chip small{font-size:.68rem;color:var(--muted,#64748b)}.aw-exam-chip span{justify-self:start;font-size:.64rem;padding:3px 7px;border-radius:999px}.aw-exam-chip span.draft{background:#fff7ed;color:#c2410c}.aw-exam-chip span.published{background:#ecfdf5;color:#047857}.aw-gradebook-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}.aw-gradebook-head>div{display:grid;gap:3px}.aw-gradebook-head small{color:var(--muted,#64748b);font-size:.72rem}.aw-grade-rows{display:grid;gap:7px}.aw-grade-row{display:grid;grid-template-columns:minmax(130px,1fr) 135px 110px auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border,#e2e8f0);border-radius:12px}.aw-grade-row b{font-size:.82rem}.aw-grade-row span{color:var(--muted,#64748b);font-size:.72rem}.aw-grade-actions{margin-top:12px}
.aw-student-gradebook{padding:14px}.aw-subject-groups{display:grid;gap:9px}.aw-subject-group{border:1px solid var(--border,#dbe3ef);border-radius:14px;overflow:hidden}.aw-subject-toggle{width:100%;border:0;background:var(--surface,#fff);color:inherit;padding:12px;display:flex;align-items:center;justify-content:space-between;text-align:start;cursor:pointer}.aw-subject-toggle span{display:grid;gap:3px}.aw-subject-toggle b{font-size:.9rem}.aw-subject-toggle small{font-size:.7rem;color:var(--muted,#64748b)}.aw-subject-toggle>strong{font-size:1.3rem;color:#2563eb}.aw-subject-results{display:none;padding:0 10px 10px;gap:7px}.aw-subject-results.open{display:grid}.aw-subject-results article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:11px;background:var(--chip-bg,#f8fafc)}.aw-subject-results article>div{display:grid;gap:3px}.aw-subject-results b{font-size:.8rem}.aw-subject-results small{font-size:.68rem;color:var(--muted,#64748b)}.aw-subject-results article>strong{font-size:.85rem;white-space:nowrap}.aw-subject-results strong.graded{color:#047857}.aw-subject-results strong.absent{color:#b91c1c}.aw-subject-results strong.ungraded{color:#64748b}
.aw-student-media{padding:13px}.aw-student-media-list{display:grid;gap:8px}.aw-student-media-list>article{display:grid;gap:8px;padding:10px;border:1px solid var(--border,#e2e8f0);border-radius:13px}.aw-student-media-list>article>div:first-child{display:grid;gap:5px}.aw-student-media-list small{font-size:.7rem;color:var(--muted,#64748b)}
.aw-toast{position:fixed;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translate(-50%,18px);z-index:2147483000;max-width:min(90vw,520px);padding:10px 14px;border-radius:13px;background:#0f172a;color:#fff;font-size:.82rem;box-shadow:0 14px 40px rgba(0,0,0,.24);opacity:0;pointer-events:none;transition:.2s}.aw-toast.show{opacity:1;transform:translate(-50%,0)}.aw-toast[data-type="error"]{background:#991b1b}.hidden{display:none!important}
@media(max-width:700px){.aw-panel,.aw-student-gradebook,.aw-student-media{padding:12px;border-radius:17px}.aw-panel-head,.aw-student-section-head{align-items:stretch;flex-direction:column}.aw-head-actions .btn,.aw-panel-head>.btn{width:100%}.aw-form-grid,.aw-class-choices{grid-template-columns:1fr}.aw-modal-card{width:calc(100vw - 12px);max-height:calc(100dvh - 16px);padding:14px;border-radius:20px}.aw-grade-row{grid-template-columns:minmax(0,1fr) 110px 86px}.aw-grade-row>span{display:none}.aw-gradebook-head{align-items:flex-start;flex-direction:column}.aw-review-setting{align-items:flex-start}.aw-content-card footer{display:grid}.aw-attachment{flex:1 1 110px}.aw-image-viewer img{max-height:74vh}}
@media(prefers-reduced-motion:reduce){.aw-switch span,.aw-switch span:before,.aw-toast{transition:none}}

/* 2026-10-20: readable, actionable error state on web and native portal shells. */
.aw-load-error{display:grid;justify-items:start;gap:12px;border:1px solid color-mix(in srgb,#dc2626 22%,var(--border,#dbe3ef));border-radius:15px;background:color-mix(in srgb,#fee2e2 30%,var(--surface,#fff));padding:18px;line-height:1.8;color:var(--text,#172337)}
.aw-load-error strong{font-size:.9rem;font-weight:800}.aw-load-error button{min-height:44px}
@media(max-width:520px){.aw-load-error{padding:14px}.aw-load-error button{width:100%}}

/* Zoomable image preview and native Photos action for TestFlight iOS builds. */
.aw-image-dialog{inset:0!important;width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;background:#020617!important}
.aw-image-viewer{gap:0!important;padding:0!important;justify-content:stretch!important}
.aw-image-stage{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none;cursor:grab}
.aw-image-stage:active{cursor:grabbing}
.aw-image-stage img{max-width:96vw!important;max-height:calc(100dvh - 135px)!important;width:auto;height:auto;object-fit:contain;pointer-events:none;user-select:none;transform-origin:center center;will-change:transform}
.aw-image-toolbar{width:100%;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;box-sizing:border-box;padding:12px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#101827}
.aw-image-toolbar button{min-height:42px;border:1px solid #475569;background:#1e293b;color:#fff;border-radius:12px;padding:7px 12px;font:inherit;cursor:pointer}
.aw-image-toolbar #awImageSave{background:#2563eb;border-color:#2563eb}
.aw-grade-auto-panel{margin:12px 0 20px}
.aw-grade-auto-list{display:grid;gap:9px;margin-top:12px}
.aw-grade-auto-item{border:1px solid var(--border,#dbe3ef);background:var(--surface,#fff);border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.aw-grade-auto-item>span:first-child{display:grid;gap:4px}
.aw-grade-auto-item b{font-size:.86rem}.aw-grade-auto-item small{font-size:.75rem;color:var(--muted,#64748b)}
.aw-grade-auto-item input:disabled+span{opacity:.4;cursor:wait}
@media(max-width:520px){.aw-image-toolbar{gap:6px}.aw-image-toolbar button{flex:1 1 auto;padding:9px}.aw-image-toolbar #awImageSave{flex:2 1 100%}}
