/* Scorae rubric library — shared styles. Brand tokens match scorae.com. */
:root{--cream:#f5f2eb;--cream-alt:#edeae3;--cream-dark:#e5e1d8;--indigo:#4338ca;
--indigo-hover:#3730a3;--indigo-light:rgba(67,56,202,.08);--navy:#1a1a3e;
--navy-soft:#2a2a50;--slate:#5a5a6e;--muted:#8a8a9a;--white:#fff;
--border:rgba(0,0,0,.07);--border-strong:rgba(0,0,0,.12);--radius:12px;--radius-lg:20px;
--shadow-sm:0 1px 3px rgba(0,0,0,.04);--shadow-md:0 4px 20px rgba(0,0,0,.06)}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--navy);
font-family:'Source Sans 3',system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.65}
.wrap{max-width:960px;margin:0 auto;padding:0 24px}
a{color:var(--indigo)}
nav.rl{background:var(--cream);border-bottom:1px solid var(--border);padding:16px 0;
position:sticky;top:0;z-index:20}
nav.rl .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--navy);font-weight:700}
.logo-icon{width:28px;height:28px;border-radius:8px;background:var(--indigo);display:flex;
align-items:center;justify-content:center}
.logo-icon svg{width:15px;height:15px}
nav.rl a.cta{background:var(--indigo);color:#fff;text-decoration:none;padding:9px 18px;
border-radius:10px;font-weight:600;font-size:.94rem}
nav.rl a.cta:hover{background:var(--indigo-hover)}
.crumb{font-size:.88rem;color:var(--muted);padding:22px 0 0}
.crumb a{color:var(--slate);text-decoration:none}
.crumb a:hover{color:var(--indigo)}
h1{font-family:'Playfair Display',Georgia,serif;font-weight:900;font-size:2.35rem;
line-height:1.16;margin:14px 0 10px;letter-spacing:-.01em}
h2{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:1.5rem;
margin:44px 0 12px}
h3{font-size:1.06rem;margin:26px 0 6px}
.lede{font-size:1.12rem;color:var(--slate);margin:0 0 26px;max-width:70ch}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px;padding:0;list-style:none}
.facts li{background:var(--white);border:1px solid var(--border);border-radius:999px;
padding:6px 15px;font-size:.87rem;color:var(--slate)}
.facts b{color:var(--navy);font-weight:600}
.bar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
button.act{font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;border-radius:10px;
padding:9px 16px;border:1px solid var(--border-strong);background:var(--white);color:var(--navy)}
button.act:hover{border-color:var(--indigo);color:var(--indigo)}
.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);
background:var(--white);box-shadow:var(--shadow-sm)}
table.rub{border-collapse:collapse;width:100%;min-width:760px;font-size:.93rem}
table.rub th,table.rub td{border-bottom:1px solid var(--border);
border-right:1px solid var(--border);padding:12px 14px;vertical-align:top;text-align:left}
table.rub th:last-child,table.rub td:last-child{border-right:0}
table.rub thead th{background:var(--cream-alt);font-weight:600;font-size:.84rem;
text-transform:uppercase;letter-spacing:.04em;color:var(--slate);white-space:nowrap}
table.rub tbody th{background:var(--white);font-weight:600;width:20%;color:var(--navy)}
table.rub tbody th small{display:block;font-weight:400;color:var(--muted);
font-size:.82rem;margin-top:3px}
table.rub td .pts{display:block;font-size:.78rem;color:var(--muted);margin-bottom:3px}
table.rub tbody tr:last-child th,table.rub tbody tr:last-child td{border-bottom:0}
.total{margin:14px 0 0;font-size:.92rem;color:var(--slate)}
ul.notes{padding-left:22px;max-width:72ch}
ul.notes li{margin:7px 0;color:var(--slate)}
ul.notes li strong{color:var(--navy)}
.cta{margin:48px 0 8px;background:var(--white);border:1px solid var(--border);
border-radius:var(--radius-lg);padding:30px 30px 32px;box-shadow:var(--shadow-md)}
.cta h2{margin:0 0 10px;font-size:1.32rem}
.cta p{margin:0 0 18px;color:var(--slate);max-width:64ch}
.cta .btn{display:inline-block;background:var(--indigo);color:#fff;text-decoration:none;
padding:13px 26px;border-radius:10px;font-weight:600}
.cta .btn:hover{background:var(--indigo-hover)}
.cta .fine{margin:14px 0 0;font-size:.87rem;color:var(--muted)}
.related{margin:44px 0 0}
.related ul{list-style:none;padding:0;margin:0;display:grid;gap:12px;
grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.related a{display:block;background:var(--white);border:1px solid var(--border);
border-radius:var(--radius);padding:15px 17px;text-decoration:none;color:var(--navy);
font-weight:600;font-size:.96rem}
.related a:hover{border-color:var(--indigo)}
.related a span{display:block;font-weight:400;font-size:.85rem;color:var(--muted);margin-top:3px}
footer.rl{margin-top:64px;border-top:1px solid var(--border);padding:34px 0 46px;
text-align:center;color:var(--muted);font-size:.9rem}
footer.rl a{color:var(--slate);text-decoration:none;margin:0 9px}
footer.rl a:hover{color:var(--indigo)}
.grid{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:14px;
grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}
.grid a{display:block;background:var(--white);border:1px solid var(--border);
border-radius:var(--radius);padding:19px 20px;text-decoration:none;color:var(--navy);height:100%}
.grid a:hover{border-color:var(--indigo);box-shadow:var(--shadow-sm)}
.grid strong{display:block;font-size:1.03rem;margin-bottom:5px}
.grid em{display:block;font-style:normal;color:var(--slate);font-size:.89rem;line-height:1.5}
.grid .tag{display:inline-block;margin-top:11px;font-size:.78rem;color:var(--muted);
background:var(--cream-alt);border-radius:999px;padding:3px 10px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0}
.filters button{font:inherit;font-size:.88rem;cursor:pointer;border-radius:999px;padding:7px 15px;
border:1px solid var(--border-strong);background:var(--white);color:var(--slate)}
.filters button[aria-pressed=true]{background:var(--indigo);border-color:var(--indigo);color:#fff}
@media(max-width:640px){h1{font-size:1.85rem}body{font-size:16px}.cta{padding:22px}}

/* Print: the rubric only. A teacher printing this for a department meeting
   should get a usable sheet, not an advert — and a clean sheet is one they are
   willing to photocopy and hand round, which is free distribution. */
@media print{
  nav.rl,.cta,.related,.bar,.crumb,footer.rl{display:none!important}
  body{background:#fff;font-size:11pt}
  .wrap{max-width:none;padding:0}
  h1{font-size:19pt;margin:0 0 6pt}
  .lede{font-size:10.5pt;margin-bottom:10pt}
  .facts{margin-bottom:12pt}
  .facts li{border:1px solid #bbb;background:none}
  .tablewrap{overflow:visible;border:1px solid #999;box-shadow:none;border-radius:0}
  table.rub{min-width:0;font-size:9.5pt;page-break-inside:auto}
  table.rub th,table.rub td{border-color:#999;padding:6pt 7pt}
  table.rub thead th{background:#eee!important}
  table.rub tr{page-break-inside:avoid}
  h2{font-size:13pt;margin:14pt 0 5pt;page-break-after:avoid}
}
