:root{font-family:system-ui,"Microsoft JhengHei",sans-serif;color:#283f3d;background:#f5f7f2;font-size:16px;line-height:1.6;--accent:#246a61}
*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 4vw;border-bottom:1px solid #dce5dd;background:#fff}
.brand{display:flex;align-items:center;gap:1rem;color:inherit;text-decoration:none}.brand img{max-width:95px;max-height:44px;object-fit:contain}
.shell{display:grid;grid-template-columns:210px minmax(0,1fr);max-width:1280px;margin:auto;min-height:85vh}nav{padding:2rem 1rem;display:flex;flex-direction:column;gap:.5rem;align-items:stretch}
main{padding:2rem;min-width:0;max-width:1000px}h1{font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.3}h2{font-size:1.3rem}h3{font-size:1.05rem}
button,.button{font:inherit;cursor:pointer;border:1px solid #b8cec5;border-radius:.7rem;padding:.6rem 1rem;background:white;color:#284f49;white-space:normal}
button:hover{background:#e5efea}button:disabled{opacity:.55;cursor:not-allowed}button[aria-busy="true"]{cursor:wait}.primary{background:var(--accent);color:white}.primary:hover{background:#1b514a}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c6953c;outline-offset:3px}
input,textarea,select{font:inherit;width:100%;border:1px solid #afc5ba;border-radius:.5rem;padding:.65rem;background:#fff;color:inherit}textarea{min-height:110px;resize:vertical}
label{display:block;margin:.8rem 0}article,.card{background:white;border:1px solid #dce5dd;border-radius:1rem;padding:1.3rem;margin:1rem 0;overflow-wrap:anywhere}
.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}.muted{color:#566e69}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#607e74}
#status{min-height:1.5rem;color:#775024}#chat-log{max-height:430px;overflow:auto;overscroll-behavior:contain;padding:.5rem;border:1px solid #dce5dd;border-radius:1rem;background:#fafcf8}.message{padding:1rem;margin:.5rem 0;background:#e8f0e9;border-radius:.7rem;white-space:pre-wrap}.message.student{background:#f4efdf}
dialog{width:min(650px,92vw);max-height:85vh;border:1px solid #abc4b8;border-radius:1rem;padding:2rem;color:inherit}dialog::backdrop{background:#233f3b80}
.check{display:flex;align-items:start;gap:.7rem}.check input{width:auto;margin-top:.5rem}blockquote{border-left:3px solid #d2bb78;padding-left:1rem;margin-left:0;white-space:pre-wrap}
[hidden]{display:none!important}a{color:var(--accent)}.student-auth-shell{max-width:1120px}.student-auth-logos img{object-fit:contain}
@media(max-width:650px){header{padding:.7rem;align-items:start}.brand{gap:.4rem}.brand img{max-width:62px;max-height:36px}header button{padding:.4rem}.shell{display:block}nav{padding:.6rem;flex-direction:row;overflow:auto}nav button{flex-shrink:0;font-size:.9rem}main{padding:1rem}article{padding:1rem}dialog{padding:1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

