:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#253d35;background:#f6f5ef;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;gap:30px;border-bottom:1px solid #dbdfd6}header span{flex:1;color:#778178;font-size:.86rem}.brand{font-size:1.5rem;font-weight:700;letter-spacing:-.05em;text-decoration:none}.brand em{font-weight:400}main{max-width:1440px;padding:36px 5% 60px;margin:auto}h1{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.045em;line-height:1.14;margin:16px 0 25px;font-weight:550}h2{font-size:1.25rem;letter-spacing:-.02em}a{color:#276951;text-underline-offset:3px}button{cursor:pointer;border:0;border-radius:8px;background:#285d49;color:white;padding:12px 22px;font:inherit;font-weight:600}button:hover{background:#1c4837}.secondary{background:#e7eade;color:#315744}input,textarea,select{border:1px solid #cdd4c9;background:#fffef9;border-radius:7px;padding:11px 13px;color:inherit;font:inherit;max-width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #87ab97;outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:#285d49}label{display:block;margin-bottom:14px}label>input:not([type=checkbox]):not([type=radio]),label>textarea,label>select{display:block;width:100%;margin-top:5px}.inline{display:flex;align-items:center;gap:8px;margin:0}.filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:24px 0}.filters>input{flex:1;min-width:220px}.title-row{display:flex;gap:20px;justify-content:space-between;align-items:center}.badge,.tags span{background:#e8ede2;border-radius:5px;padding:4px 9px;font-size:.75rem;color:#4b6554}.eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:650;color:#7c8977}.table-wrap{overflow:auto;border:1px solid #d8ded2;border-radius:12px;background:#fffefa}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.75rem;color:#77826f;font-weight:600;background:#eff2e9;padding:17px 12px;white-space:nowrap}td{border-top:1px solid #e3e7dd;padding:20px 12px;vertical-align:middle;font-size:.86rem}th:first-child,td:first-child{padding-left:24px}td:first-child{min-width:250px;max-width:410px}.progress{min-width:66px;text-align:center;font-size:.72rem;color:#527759}.empty{font-size:1.35rem;color:#c6cebf}.unit-title{font-weight:650;text-decoration:none;font-size:1rem}.tags{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:9px 0}.muted,small{color:#7a8577}.muted{font-size:.84rem}.empty-state{height:180px;text-align:center}.card{background:#fffef9;border:1px solid #dce1d5;border-radius:12px;padding:24px;margin:18px 0}.reading-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px}.recall{position:sticky;top:20px;background:#eef2e7}.recall button{width:100%;margin-top:20px}.rating{display:inline-flex;gap:4px;margin:0 4px 0 0}.rating-labels{display:flex;justify-content:space-between}fieldset{border:1px solid #d5dccf;border-radius:8px;padding:14px;margin:15px 0}legend{font-size:.8rem;padding:0 6px}.lead{font-size:1.15rem;color:#6c786c;max-width:850px}.editor{max-width:880px}.subject-row{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:7px 0}.subject-row input[type=date]{max-width:180px}textarea{resize:vertical}.policy{margin:26px 0;max-width:850px}summary{cursor:pointer;font-weight:600}pre,code{font-family:ui-monospace,SFMono-Regular,monospace}pre{overflow:auto;background:#eff1e9;padding:18px;border-radius:8px;font-size:.86rem}.document{white-space:pre-wrap;overflow-wrap:anywhere}iframe{width:100%;height:520px;border:1px solid #dce1d5;border-radius:8px}article{min-width:0}.math{overflow-wrap:anywhere}.math .katex-display{overflow:auto}.error{background:#f7e4db;padding:15px;border-radius:8px;color:#8b3a2b}.notice{background:#e4eddf;padding:15px;border-radius:8px}.login{max-width:500px;margin:8vh auto}.login h1{font-size:3.8rem}footer{border-top:1px solid #dbe0d4;padding:25px 5%;color:#899282;font-size:.75rem;max-width:1440px;margin:auto}nav{font-size:.85rem}@media(max-width:800px){header span{display:none}header{justify-content:space-between}.reading-grid{grid-template-columns:1fr}.reading-grid aside{grid-row:1}.recall{position:static}main{padding:25px 4%}.card{padding:18px}.title-row{align-items:flex-start}.subject-row{align-items:flex-start;flex-direction:column}.login h1{font-size:3rem}}
