:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC",sans-serif;color:#193b39;background:#f3f7f7;--primary:#087f75;--line:#dde8e6}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}button,.button{border:0;background:var(--primary);color:white;border-radius:9px;padding:11px 18px;font:inherit;cursor:pointer;display:inline-block}button:hover,.button:hover{background:#06695f}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid #e8a52f;outline-offset:3px}.shell{display:flex;min-height:100vh}aside{width:224px;flex-shrink:0;background:white;border-right:1px solid var(--line);padding:28px 20px;position:sticky;top:0;height:100vh;overflow:auto}.brand,.wordmark{font-size:30px;font-weight:800;letter-spacing:2px;color:#075c55;display:block}.brand span,.wordmark span{display:block;font-size:11px;font-weight:500;letter-spacing:2px;color:#72918a;margin-top:4px}.role{font-size:12px;color:#668780;margin:24px 10px 12px}nav{display:grid;gap:4px}nav a{padding:10px 14px;border-radius:8px;color:#5a7370;font-size:14px}nav a:hover,nav a[aria-current=page]{color:#057568;background:#e7f4ef;font-weight:600}.logout{color:#7e5353;background:#f7eded;width:100%;margin-top:25px}main{max-width:1600px;padding:34px 40px;width:100%;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1{font-size:28px;letter-spacing:-.6px;margin:8px 0}h2{font-size:27px}p{line-height:1.7}.muted{color:#758c87;font-size:14px;margin:8px 0}.eyebrow{font-size:12px;letter-spacing:1.5px;color:#69847e;margin:0}.avatar{width:44px;height:44px;background:#ddeee5;display:grid;place-items:center;border-radius:50%;font-weight:700}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric{background:white;border:1px solid var(--line);padding:22px;border-radius:14px}.metric span{display:block;font-size:13px;color:#6c8882}.metric strong{display:block;font-size:34px;margin-top:8px;letter-spacing:-1px}.welcome{display:flex;align-items:center;justify-content:space-between;background:#e1f0e8;border:1px solid #cfe4d8;border-radius:20px;padding:42px;margin-top:26px;overflow:hidden}.notebook{width:220px;transform:rotate(5deg);background:#fffefa;padding:24px;border-radius:5px;box-shadow:0 10px 20px #416b5115;border-left:8px solid #afd6b8}.notebook span{font-size:12px;color:#899783}.notebook p{font:italic 28px/1.4 Georgia,serif;color:#40856d}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:500;color:#79908a;background:#f8fbfa;white-space:nowrap}th,td{padding:15px 16px;border-bottom:1px solid #edf2f0;max-width:300px;overflow-wrap:anywhere}td{line-height:1.6}tr:last-child td{border-bottom:0}.actions{min-width:90px}.small{font-size:12px;padding:7px 10px;margin:3px;background:#e6f3ed;color:#176b58;white-space:nowrap}.editor{background:white;border:1px solid var(--line);border-radius:12px;margin:18px 0}.editor summary{padding:16px 20px;cursor:pointer;color:var(--primary);font-weight:600}.api-form{padding:0 20px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.api-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#58776f}input,select,textarea{font:inherit;padding:10px;border:1px solid #cfddd8;border-radius:7px;background:#fcfefd;color:#294e42;min-width:0}select[multiple]{min-height:130px}textarea{resize:vertical}.api-form button{align-self:end}.api-form output{grid-column:1/-1;color:#a44141}.search{display:flex;gap:10px;margin-bottom:20px}.search input{width:300px}.empty{background:white;border:1px dashed #cadbd4;border-radius:12px;padding:70px 25px;text-align:center;color:#7c9188}footer{color:#9aaba5;font-size:12px;margin-top:45px}.login{max-width:460px;margin:7vh auto;background:white;padding:40px;border-radius:20px;border:1px solid var(--line)}.login h1{font-size:36px;line-height:1.5;margin-top:35px}.login form{display:grid;gap:16px;margin-top:30px}.login label{display:grid;gap:8px;font-size:13px}.error{color:#a44141}#toast:not(:empty){position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 24px;border-radius:12px;background:#214f44;color:white;box-shadow:0 8px 20px #1232;max-width:90%;z-index:100}@media(max-width:900px){main{padding:24px 20px}aside{width:180px;padding:20px 12px}.metrics{grid-template-columns:repeat(2,1fr)}.notebook{display:none}.welcome{padding:25px}}@media(max-width:600px){.shell{display:block}aside{position:static;width:100%;height:auto;padding:16px}.brand{font-size:24px}nav{display:flex;overflow:auto;gap:5px;margin-top:12px}nav a{white-space:nowrap}.role,.logout{display:none}.metrics{gap:10px}.metric{padding:16px}header{margin-bottom:20px}h1{font-size:24px}.search input{width:100%}.login{margin:20px;padding:25px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.lesson-text{white-space:pre-wrap;line-height:1.9}.passage{background:white;border:1px solid var(--line);padding:20px;border-radius:12px;margin:14px 0}.passage p:first-child{font:20px/1.8 Georgia,serif}audio{max-width:230px;height:36px}.paging{display:flex;gap:20px;margin:24px 0}@media print{aside,button,.paging,main>a{display:none!important}body,main{background:white;padding:0}.table-wrap{overflow:visible;border:0}table{font-size:11px}}
