:root{--roal-green:#306b24;--roal-leaf:#62b32b;--roal-pale:#eef7e9;--ink:#193723;--muted:#536353;--blue:#306b24;--line:#dce7d7;--soft:#f5f9f2}body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.roal-official-logo{display:block;width:220px;height:112px;object-fit:contain;background:#fff}.brand:has(.roal-official-logo){gap:0;flex-shrink:0}.header{height:auto;min-height:118px;padding-top:8px;padding-bottom:8px;gap:22px}.header nav{gap:20px}.header-actions{gap:10px;flex-wrap:wrap}.header .small{padding:11px 16px;font-size:13px;gap:8px}.button.blue,.button.green,.button.dark,.virtual-button{background:var(--roal-green)!important;color:#fff!important}.hero em,.support-callout em,.login-story em{color:var(--roal-green)}.virtual-panel,.support-callout,.stage-intro,.primary,.secondary,.high{background:var(--roal-pale)!important;color:var(--ink)!important}.campus-banner{background:var(--roal-green)!important}.campus-banner .white,.support-callout .white{background:#fff!important;color:var(--roal-green)!important}.sidebar{background:#fff}.sidebar .roal-official-logo{width:185px;height:112px}.stage-nav .active,.management-tabs .selected,.subject-icon{background:var(--roal-pale)!important;color:var(--roal-green)!important}.login-story{background:var(--roal-pale);color:var(--ink)}.login-story .roal-official-logo{width:250px;height:140px;border-radius:12px}.profile .avatar{background:var(--roal-pale);color:var(--roal-green)}.roal-legal-links{display:flex;gap:20px;justify-content:center;padding:18px;flex-wrap:wrap;font-size:13px;background:#f4f8f1;color:#365432}.roal-legal-links a{text-decoration:underline}.campus-page>.roal-legal-links{margin-left:245px}.site-page{max-width:1120px;margin:auto;padding:56px 28px 80px}.site-page h1{font-size:clamp(2.3rem,5vw,4rem);line-height:1.1;letter-spacing:-.035em;margin:14px 0 24px}.site-page h2{line-height:1.25}.site-kicker{font-size:12px;font-weight:750;letter-spacing:.16em;color:var(--roal-green);text-transform:uppercase}.site-lead{font-size:19px;max-width:700px;color:var(--muted)}.site-page a:not(.button){text-decoration:underline}.legal-copy{max-width:800px}.legal-copy h2{margin-top:36px}.legal-copy table{border-collapse:collapse;width:100%;font-size:14px}.legal-copy td,.legal-copy th{border:1px solid var(--line);padding:12px;text-align:left}.news-section{margin:60px auto;padding:0 28px;max-width:1180px}.news-section>h2{font-size:36px}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0}.news-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 6px 25px #18341808}.news-card>img{width:100%;height:220px;object-fit:cover;display:block}.news-copy{padding:24px}.news-meta{font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}.news-card h2,.news-card h3{font-size:23px;margin:14px 0}.news-card p{white-space:pre-wrap;overflow-wrap:anywhere}.news-card details summary{cursor:pointer;color:var(--roal-green);font-weight:650}.news-empty{padding:32px;border:1px dashed #9cb793;border-radius:16px;background:var(--roal-pale);grid-column:1/-1}.news-editor{max-width:820px;padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff}.news-editor form,.teacher-login{display:grid;gap:18px}.news-editor label,.teacher-login label{display:grid;gap:7px;font-weight:600}.news-editor input,.news-editor textarea,.teacher-login input{width:100%;padding:13px;border:1px solid #a5b39f;border-radius:8px;font:inherit}.news-editor textarea{min-height:220px;resize:vertical}.news-editor .editor-actions{display:flex;gap:12px;flex-wrap:wrap}.news-editor-status{min-height:25px}.news-preview{border:1px solid var(--line);padding:24px;border-radius:12px;margin:20px 0}.news-preview img{max-height:320px;width:100%;object-fit:contain}.news-preview p{white-space:pre-wrap;overflow-wrap:anywhere}.teacher-login{max-width:420px;background:var(--roal-pale);border-radius:18px;padding:28px}.teacher-login h2{margin:0}.author-profile{padding:0;border:0;background:none;color:var(--roal-green);font:inherit;text-decoration:underline;cursor:pointer}.publication-summary{border:1px solid var(--line);border-radius:16px;background:#fff;padding:24px;margin:15px 0}.publication-summary h2{margin:12px 0}.publication-day{font-size:14px;color:var(--muted);margin:30px 0 10px}.publication-meta{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.attachment-card{display:grid;gap:12px;margin:18px 0;max-width:520px;padding:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.attachment-card strong{overflow-wrap:anywhere}.pdf-thumb{height:210px;position:relative;background:#eef2ec;border-radius:8px;overflow:hidden}.pdf-thumb iframe{width:100%;height:320px;pointer-events:none;border:0;opacity:.85}.pdf-thumb button{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:20px;border:0;background:linear-gradient(transparent 20%,#164822b3);color:white;font-weight:700;cursor:pointer}.roal-dialog{border:1px solid #9bad91;border-radius:18px;padding:24px;max-width:760px;width:calc(100% - 32px);max-height:90vh;color:var(--ink)}.roal-dialog::backdrop{background:#1028109c}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.dialog-top button{font:inherit;font-size:24px;border:0;background:#edf4e9;border-radius:8px;width:38px;height:38px;cursor:pointer}.pdf-dialog{max-width:1100px}.pdf-full{width:100%;height:68vh;border:1px solid var(--line)}.person-profile{text-align:center;padding:25px}.person-photo,.person-initial{width:90px;height:90px;object-fit:cover;border-radius:50%;display:inline-grid;place-items:center;font-size:36px;background:var(--roal-pale)}.directory-search{display:grid;gap:8px}.directory-search input,.user-search{padding:12px;border:1px solid #92ab89;border-radius:8px;width:100%;font:inherit}.directory-tabs{display:flex;gap:12px;margin:20px 0}.directory-tabs button,.person-row button,.user-role-list button{cursor:pointer}.directory-tabs [aria-pressed=true]{background:var(--roal-green);color:white}.directory-tabs button{border:1px solid #92ab89;padding:10px 18px;border-radius:8px}.person-row{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:15px 0;flex-wrap:wrap}.person-name{background:none;border:0;font:inherit;font-weight:700;color:var(--roal-green)}.person-row span{font-size:13px}.person-row button:last-child:not(:first-child){margin-left:auto}.user-role-list{margin:25px 0}.user-role-list>div{border-top:1px solid var(--line);padding:15px 0}.user-role-list>div[hidden]{display:none}.user-role-list small{display:block}.sidebar-bottom>button.manage-link{background:none;border:0;text-align:left;padding:8px 0;font:inherit;cursor:pointer}.sidebar-bottom{gap:8px}#roal-chat-toggle{position:fixed;right:22px;bottom:20px;background:var(--roal-green);color:white;border:0;box-shadow:0 5px 25px #0003;padding:15px 24px;border-radius:30px;cursor:pointer;font:inherit;font-weight:650;z-index:1000}#roal-chat{position:fixed;right:20px;bottom:80px;width:400px;max-width:calc(100vw - 32px);max-height:80vh;overflow:auto;background:#fff;border:1px solid #93af87;border-radius:18px;padding:20px;box-shadow:0 12px 50px #0003;z-index:1001}#roal-chat[hidden]{display:none}.dm-note,.dm-status{font-size:12px;color:var(--muted)}.dm-conversations{max-height:150px;overflow:auto}.dm-conversations>button{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;padding:12px;cursor:pointer;display:grid;gap:4px}.dm-conversations span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-conversations b{font-size:11px;color:var(--roal-green)}.dm-messages{max-height:290px;min-height:90px;overflow:auto;padding:8px 0}.dm-bubble{padding:10px 12px;margin:10px 30px 10px 0;border-radius:12px;background:#f0f3ed}.dm-bubble.mine{margin:10px 0 10px 30px;background:#e4f3d9}.dm-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.dm-bubble time{font-size:10px;color:var(--muted)}.dm-form label{display:grid;font-size:12px}.dm-form textarea{width:100%;font:inherit;padding:9px;resize:vertical}.dm-form button{width:100%;margin-top:8px}.news-mine button{display:block;margin:10px 0;padding:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #2a6d24;outline-offset:3px}@media(max-width:1000px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header nav{display:none}}@media(max-width:760px){.header{padding:10px 18px;display:flex;flex-wrap:wrap;justify-content:space-between}.header .roal-official-logo{width:160px;height:85px}.header-actions{width:100%;justify-content:center}.header .small{padding:10px 12px;font-size:12px}.sidebar .roal-official-logo{width:145px;height:80px}.sidebar-bottom{position:static;display:flex;flex-wrap:wrap;margin:10px 0}.sidebar-bottom>a,.sidebar-bottom>button{display:inline-block!important;font-size:12px!important;margin-right:12px}.sidebar-bottom .sidebar-note{display:none}.sidebar .stage-nav{margin-top:12px}.campus-page>.roal-legal-links{margin-left:0}.news-grid{grid-template-columns:1fr}.site-page{padding:35px 20px 60px}.news-section{padding:0 20px}.person-row{gap:10px}.roal-dialog{padding:18px}#roal-chat{right:12px;bottom:75px;width:calc(100vw - 24px)}.pdf-full{height:65vh}.login-story .roal-official-logo{width:170px;height:95px}.teacher-login,.news-editor{padding:20px}}
body.roal-compact .header{height:auto;min-height:130px;background:#fff;color:#193723;overflow:visible}body.roal-compact .header .brand{color:#193723}body.roal-compact .header nav a{color:#193723}body.roal-compact .header-resource{color:#306b24;border-color:#adc69e}body.roal-compact .roal-official-logo{object-fit:contain;max-height:none}body.roal-compact .hero{min-height:560px;background:linear-gradient(110deg,#fff 35%,#edf7e6);padding:0 7vw;display:grid;grid-template-columns:1.35fr .85fr;gap:60px;align-items:center;overflow:visible}body.roal-compact .hero::after{display:none}body.roal-compact .hero-copy{padding:75px 0;color:#193723;max-width:760px}body.roal-compact .hero-copy>p{color:#536353}body.roal-compact .hero .eyebrow{color:#306b24}body.roal-compact .hero .text-link{color:#306b24}body.roal-compact .hero h1 em{color:#306b24}body.roal-compact .hero-visual{position:relative;inset:auto;z-index:0;height:365px;min-width:0;background:radial-gradient(ellipse at center,#d9edc9 0%,#e7f3de 55%,transparent 56%);overflow:visible}body.roal-compact .virtual-panel{position:absolute;left:0;right:0;top:55px;bottom:auto;width:100%;max-width:400px;border:1px solid #acc49b;background:#fff!important;box-shadow:0 20px 40px #2a5c1d16;backdrop-filter:none;color:#193723}body.roal-compact .virtual-panel h2,body.roal-compact .virtual-panel p{color:#193723}body.roal-compact .support-callout .eyebrow,body.roal-compact .support-callout p{color:#365432}body.roal-compact .support-mark{color:#306b24;border-color:#306b24}body.roal-compact footer{flex-wrap:wrap}#roal-consent{color:#193723!important}#roal-consent p{font-family:system-ui,sans-serif}
@media(max-width:760px){body.roal-compact .header{min-height:0;padding:12px 20px;height:auto}body.roal-compact .header-actions{margin:0;width:100%}body.roal-compact .hero{grid-template-columns:1fr;gap:0;padding:0 24px;min-height:0}body.roal-compact .hero-copy{padding:42px 0 12px}body.roal-compact .hero h1{font-size:clamp(2.4rem,10vw,3.6rem)}body.roal-compact .hero-visual{height:310px;margin:0}body.roal-compact .virtual-panel{top:25px;left:0;right:0;width:100%;bottom:auto}.hero-actions{align-items:center}body.roal-compact .hero-actions .button{width:auto}body.roal-compact .header .roal-official-logo{width:160px;height:90px}.header nav{display:none}}

.campus-main>.roal-legal-links{margin-left:0}.login-page>.roal-legal-links{grid-column:1/-1}.login-story p{color:#365432}.login-story em{color:#306b24}

.pdf-thumb canvas{display:block;margin:auto;max-width:100%;background:white}.pdf-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:12px;background:#edf4e9}.pdf-toolbar button{padding:8px 15px;border:1px solid #a5b79b;border-radius:7px;background:white}.pdf-pages{max-height:62vh;overflow:auto;background:#dfe5dc;padding:16px;text-align:center}.pdf-pages canvas{display:block;margin:auto;background:white;box-shadow:0 2px 10px #0002}.pdf-text{white-space:pre-wrap;max-height:160px;overflow:auto;font-size:14px}.pdf-viewer details{padding:12px;font-size:13px}
body.roal-compact .support-callout h2 em{color:#306b24}
[hidden]{display:none!important}
