@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville&display=swap";:root{color:#243a30;font-synthesis:none;background:#f8f6ef;font-family:DM Sans,system-ui,sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}.print-only{display:none}@media print{.skip-link,.print-view .print-hidden,.print-view button,.print-view form,.print-view select,.print-view label,.print-view nav,.print-view footer{display:none!important}.print-view .print-only{display:block}.print-view{max-width:none;min-height:0;padding:0;font-size:12pt}.print-view .dashboard{padding:16px 0}.print-view .card,.print-view .notice{background:#fff;border-radius:0}.print-view li{break-inside:avoid}.print-view a{color:#000;min-height:0;text-decoration:none}}.skip-link{z-index:100;background:#fffef9;border:1px solid #315b3b;border-radius:10px;padding:12px 16px;position:fixed;top:8px;left:8px;transform:translateY(calc(-100% - 16px))}.skip-link:focus{transform:none}h1,h2,p,summary{overflow-wrap:anywhere}.shell>*,.dashboard-grid>*,.auth-form>*{min-width:0}.shell{flex-direction:column;max-width:1100px;min-height:100dvh;margin:auto;padding:36px 48px;display:flex}header{flex-wrap:wrap;align-items:center;gap:12px;font-weight:700;display:flex}.mark{color:#436b46;font-size:30px}.badge{border:1px solid #cdd3c5;border-radius:40px;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:500}.welcome{margin:auto 0;padding:80px 0 96px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#5d704c;font-size:12px;font-weight:700}h1{letter-spacing:-.04em;margin:24px 0;font-family:Libre Baskerville,Georgia,serif;font-size:clamp(42px,6vw,72px);font-weight:400;line-height:1.2}.intro{color:#57655b;font-size:20px}.notice{background:#eef2e7;border:1px solid #d9dfd2;border-radius:16px;gap:14px;max-width:560px;margin-top:48px;padding:22px 24px;display:flex}.notice p{color:#52614e;margin:4px 0 0}.status-dot{background:#4e714c;border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:9px}footer{color:#5d685d;border-top:1px solid #dfdfd3;padding-top:22px;font-size:13px}a{color:#2c5838;overflow-wrap:anywhere;align-items:center;max-width:100%;min-height:44px;display:inline-flex}a:focus-visible{outline-offset:4px;outline:3px solid #436b46}.auth-panel{max-width:580px}textarea{font:inherit;resize:vertical;color:#243a30;background:#fff;border:1px solid #a9b5a4;border-radius:10px;width:100%;min-height:160px;padding:14px}textarea:focus-visible{outline-offset:3px;outline:3px solid #829c56}.work-text{white-space:pre-wrap;overflow-wrap:anywhere}.work-card{margin:24px 0}.attachment-preview{overflow-wrap:anywhere;background:#f8f6ef;border:1px solid #d9dfd2;border-radius:10px;margin:16px 0;padding:16px}.attachment-preview img{object-fit:contain;max-width:100%;height:auto;max-height:70vh;margin-top:12px;display:block}.submission-progress{margin-top:24px}.assignment-access{margin:16px 0}.assignment-access summary{cursor:pointer;padding:12px 0}.submission-progress .actions{margin-bottom:16px}.actions{flex-wrap:wrap;gap:12px;display:flex}.actions>*{min-width:0;max-width:100%}.attachment-remove{margin:12px 0}.attachment-remove summary{cursor:pointer;min-height:48px;padding:12px 0}.attachment-remove summary:focus-visible{outline-offset:3px;outline:3px solid #829c56}dialog{color:#243a30;background:#fffef9;border:1px solid #a9b5a4;border-radius:12px;width:min(520px,100% - 32px);max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto}dialog::backdrop{background:#243a3059}.child-switch .actions a,.child-progress-links a{overflow-wrap:anywhere;border:1px solid #a9b5a4;border-radius:10px;max-width:100%;min-height:48px;padding:10px 16px;text-decoration:none}.child-switch .actions a:hover,.child-progress-links a:hover{background:#eef2e7}.child-switch .actions a[aria-current=page],.child-progress-links a[aria-current=page]{color:#fff;background:#315b3b;border-color:#315b3b;font-weight:600}.review-form,.feedback{border-top:1px solid #d9dfd2;padding-top:20px}.auth-form{gap:12px;margin:28px 0;display:grid}.check-label{cursor:pointer;align-items:flex-start;gap:12px;min-height:48px;display:flex}.check-label input[type=checkbox]{accent-color:#315b3b;flex-shrink:0;width:20px;height:20px;min-height:20px;margin:3px 0 0;padding:0}.setup-fields{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}input,select,button{font:inherit;border-radius:10px;min-width:0;max-width:100%;min-height:48px;padding:12px 16px}input,select{color:#243a30;background:#fff;border:1px solid #a9b5a4;width:100%}button{cursor:pointer;color:#fff;overflow-wrap:anywhere;background:#315b3b;border:1px solid #315b3b;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}input[type=file]::file-selector-button{font:inherit;color:#315b3b;cursor:pointer;background:#eef2e7;border:1px solid #a9b5a4;border-radius:8px;min-height:44px;margin-right:12px;padding:8px 12px}button.secondary{color:#315b3b;background:0 0}input:focus-visible,select:focus-visible,button:focus-visible{outline-offset:3px;outline:3px solid #829c56}.muted{color:#57655b}.form-message{background:#eef2e7;border-radius:10px;padding:16px}.header-action{margin-left:auto}.dashboard{flex:1;padding:52px 0}.dashboard h1{font-size:clamp(32px,5vw,56px)}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;margin-top:36px;display:grid}.assignment-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.assignment-filters label{margin-bottom:6px;display:block}.learner-progress{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.card{background:#fffef9;border:1px solid #d9dfd2;border-radius:16px;padding:24px}.card h2{margin-top:0}.card ul{margin:0;padding:0;list-style:none}.card li{overflow-wrap:anywhere;border-top:1px solid #e2e6dc;padding:16px 0;display:grid}.card ol{padding-inline-start:24px}.card ol li{display:list-item}.card[id^=setup-]{scroll-margin-top:24px}@media (width<=700px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=600px){.card{padding:18px}.assignment-filters{grid-template-columns:1fr}.shell{padding:24px}.welcome{padding:60px 0}.intro{font-size:18px}.desktop{display:none}.notice{padding:18px}.badge{font-size:11px}}
