
:root{--ink:#20362f;--green:#23664d;--muted:#78847d;--line:#e4e9e3;--bg:#f6f7f2;--accent:#e7edb1}*{box-sizing:border-box}body{margin:0;font:15px/1.5 'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button{border:0;border-radius:9px;padding:11px 17px;background:var(--green);color:white;font-weight:600}button:hover{filter:brightness(.94)}button.secondary{background:white;border:1px solid var(--line);color:var(--ink)}button.small{padding:6px 10px;font-size:13px}a{color:var(--green)}.layout{display:grid;grid-template-columns:246px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:28px;font-weight:750;letter-spacing:-1px;display:flex;align-items:center;gap:11px}.mark{background:var(--green);color:white;border-radius:12px;padding:3px 12px;font-size:27px}.sub{font-size:11px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}.school{margin:32px 0 25px;padding:15px 10px;border-block:1px solid var(--line);font-size:13px}.nav button{width:100%;text-align:left;margin:4px 0;background:transparent;color:#68756d;font-weight:500}.nav button.active{background:#eaf2ec;color:var(--green);font-weight:700}.sidefoot{margin-top:auto;font-size:12px;color:var(--muted)}.topbar{height:87px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#fff9;gap:15px}.profile{display:flex;align-items:center;gap:10px;font-size:13px}.avatar{height:36px;width:36px;background:#e4eadc;border-radius:50%;display:grid;place-items:center;font-weight:700}.workspace{max-width:1390px;margin:auto;padding:36px 42px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:1.6px;color:var(--green);font-weight:700}h1{font-size:31px;letter-spacing:-1px;margin:5px 0 6px;line-height:1.2}h2{font-size:19px;margin:0}h3{font-size:16px;margin:0}p{margin:8px 0;color:#6f7c74}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.hero{padding:27px 30px;background:#eaf0de;border-radius:15px;display:flex;justify-content:space-between;gap:25px;margin-bottom:26px;position:relative;overflow:hidden}.hero p{max-width:580px}.hero-art{font-size:65px;transform:rotate(-12deg);color:#477151;padding:0 28px}.tag{display:inline-block;border-radius:20px;background:#eaf3ed;color:#286647;padding:4px 10px;font-size:12px;font-weight:600}.tag.warn{background:#fff2d9;color:#947022}.tag.gray{background:#f0f2ef;color:#6f7c74}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:20px 23px}.stat strong{display:block;font-size:30px;margin:6px 0}.stat span{color:var(--muted);font-size:13px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:25px;margin-bottom:22px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:15px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:23px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.content-card{border:1px solid var(--line);border-radius:12px;padding:20px;background:white}.content-card h3{margin:12px 0 4px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.chip{border:1px solid var(--line);border-radius:6px;padding:4px 9px;font-size:12px;background:#fafbf8}.cardfoot{border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;background:#fafbf8}td,th{padding:14px 12px;border-bottom:1px solid var(--line)}.tablewrap{overflow:auto}.empty{padding:35px;text-align:center;color:var(--muted)}label{display:block;font-size:13px;font-weight:600;margin:17px 0 7px}input,select,textarea{border:1px solid #dbe2d9;border-radius:8px;padding:11px 12px;background:white;color:var(--ink);width:100%}textarea{min-height:170px;resize:vertical;line-height:1.65}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.checks{display:flex;flex-wrap:wrap;gap:9px}.checks label{margin:0;display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 14px;border-radius:8px;font-weight:500}.checks label:has(input:checked){background:#eaf3ed;border-color:#79a68b}.checks input{width:auto;accent-color:var(--green)}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.note{font-size:12px;color:var(--muted)}.notice{padding:12px 16px;border-radius:9px;background:#fff6df;color:#826725;font-size:13px;margin-bottom:20px}.progress{height:7px;border-radius:10px;background:#edf0e9;margin:12px 0;overflow:hidden}.progress i{height:100%;display:block;background:#5b8869}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#234e3c;color:white;padding:10vw 7vw;position:relative}.login-story h1{font-size:49px;max-width:440px;margin-top:70px}.login-story p{color:#c2d1c5;max-width:400px;font-size:17px}.loginform{max-width:440px;width:100%;padding:35px;margin:auto}.demo{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.demo button{display:block;width:100%;margin:8px 0;text-align:left}.toast{position:fixed;bottom:25px;right:25px;background:#234e3c;color:white;padding:15px 23px;border-radius:10px;z-index:50;box-shadow:0 8px 30px #0002}.printpage{width:297mm;height:210mm;padding:8mm;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4mm;background:white;margin:20px auto;box-shadow:0 4px 25px #0001}.printcard{border:1px dashed #aeb6ae;padding:5mm;font-size:18px;overflow:hidden;white-space:normal}.printhead{display:flex;align-items:center;gap:9px;border-bottom:1px solid #ccc;padding-bottom:8px;margin-bottom:8px}.printhead img{width:auto;height:60px;margin-left:35px;object-fit:contain;flex-shrink:0}.printcard h3{font-size:15px}.printcard p{white-space:pre-wrap;color:#222;line-height:1.4;margin:8px 0}.printarea{overflow:auto}.mobilebrand{display:none}@media(max-width:1050px){.workspace{padding:25px}.topbar{padding:15px 25px}.grid{grid-template-columns:1fr}.sidebar{padding:25px 15px}.layout{grid-template-columns:210px 1fr}.cards{grid-template-columns:1fr}}@media(max-width:700px){.layout{display:block}.sidebar{height:auto;position:static;padding:15px}.sidebar .brand,.school,.sidefoot{display:none}.nav{display:flex;overflow:auto;gap:4px}.nav button{white-space:nowrap;width:auto;font-size:12px}.topbar{height:auto;padding:12px 17px}.topbar .crumb{display:none}.workspace{padding:23px 16px}.heading{align-items:flex-start}h1{font-size:26px}.heading button{font-size:12px;padding:10px}.hero{padding:22px}.hero-art{display:none}.stats{gap:8px}.stat{padding:14px 11px}.stat strong{font-size:25px}.stat span{font-size:11px}.panel{padding:18px}.fields{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-story{padding:28px}.login-story h1{font-size:29px;margin-top:25px}.login-story p{font-size:14px}.loginform{padding:25px}.profile select{max-width:170px}.printpage{transform-origin:top left}.panelhead{flex-wrap:wrap}}@page{size:A4 landscape;margin:0}@media print{body{background:white}.sidebar,.topbar,.workspace>*:not(.printarea),.no-print{display:none!important}.layout{display:block}.workspace{padding:0;max-width:none}.printarea{overflow:visible}.printpage{margin:0;box-shadow:none;page-break-after:always;break-after:page}.printpage:last-child{page-break-after:auto;break-after:auto}.printcard{break-inside:avoid;print-color-adjust:exact}}

.matrix{border-collapse:separate;border-spacing:0;min-width:650px}.matrix th,.matrix td{text-align:center;min-width:85px;padding:15px 10px}.matrix th:first-child,.matrix td:first-child{text-align:left;position:sticky;left:0;z-index:2;background:white;min-width:190px;max-width:240px;box-shadow:1px 0 var(--line)}.matrix thead th{background:#f7f9f4;font-size:12px;font-weight:600;white-space:nowrap}.matrix thead th:first-child{background:#f7f9f4}.sq{display:inline-grid;place-items:center;min-width:35px;width:35px;height:35px;padding:0;border-radius:7px;border:1px solid #dec25d;background:#f6d879;color:#685011;font-size:13px;box-shadow:0 2px 3px #00000008}.sq.green{background:#b9dfc2;border-color:#89bd98;color:#245e35}.sq.blue{background:#a9ceec;border-color:#77add6;color:#1f5077}.sq.gray{background:#e9ece8;border-color:#dbe0d9;color:#9aa39a;cursor:default;box-shadow:none}.sq.partial{background:linear-gradient(135deg,#a9ceec 50%,#f6d879 50%);color:#294333;border-color:#a9b886}.sq:focus-visible{outline:3px solid #264c80;outline-offset:3px}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:#69776c;margin:16px 0}.legend span{display:flex;align-items:center;gap:7px}.dot{width:13px;height:13px;border-radius:3px;border:1px solid #0001;display:inline-block}.completion{display:flex;justify-content:space-between;gap:15px;margin:13px 0;font-size:13px}.summarychips{display:flex;gap:8px;flex-wrap:wrap}.matrixdialog{border:1px solid var(--line);border-radius:17px;max-width:510px;width:calc(100% - 32px);padding:26px;color:var(--ink);box-shadow:0 20px 90px #122b3440}.matrixdialog::backdrop{background:#14251d70;backdrop-filter:blur(3px)}.detailrow{padding:15px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.detailrow .tag{white-space:nowrap}.matrixfoot{font-size:11px;color:var(--muted);margin-top:5px}.matrix .teachername{font-weight:600;font-size:13px}.matrix .note{font-size:11px}.matrixpanel{padding-bottom:12px}.mapfilter{max-width:220px}.matrixdialog button{flex-shrink:0}@media(max-width:700px){.matrix th:first-child,.matrix td:first-child{min-width:140px;max-width:160px}.matrix th,.matrix td{min-width:75px;padding:12px 7px}.matrixpanel{padding:14px}.matrixdialog{padding:20px}.legend{gap:10px}.summarychips .tag{font-size:11px}} 

.loginerror{padding:12px;color:#8a3927;background:#fff0e8;border-radius:8px;margin:15px 0;font-size:13px}.loading{min-height:100vh;display:grid;place-items:center}.passwordhint{background:#edf2e5;border-radius:10px;padding:14px;margin-bottom:20px;font-size:13px}.resetbox{display:none;margin-top:8px}.readonly-note{font-size:13px;color:#856d22}.btnlink{display:inline-block;padding:11px 17px;border-radius:9px;background:var(--green);color:white;text-decoration:none;font-weight:600}.btnlink.secondary{background:white;border:1px solid var(--line);color:var(--ink)}button:disabled{opacity:.6;cursor:wait}
.print-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}.print-meta>div{min-width:0;overflow-wrap:anywhere}.print-study-title{margin-top:5px;text-align:center}
