/* Readable controls shared by the portal, invitations and public pages. */
:root{--spj-control:#394554;--spj-control-hover:#48586c;--spj-control-border:#a8b5c5;--spj-copy:#f8f5e6;--spj-muted:#d4dbe3;--spj-field:#263442}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #ffdd00!important;outline-offset:4px}
.spj-portal{font-size:16px;line-height:1.65}
.spj-portal a{color:#ffdd00;text-underline-offset:3px}
.spj-portal p,.spj-portal label,.spj-portal legend{color:var(--spj-copy)}
.spj-portal .muted,.spj-portal .empty{color:var(--spj-muted)!important;font-size:14px}
.spj-portal .eyebrow{color:#c3c8ff;font-size:12px}
.spj-portal button{min-height:44px;line-height:1.4}
.spj-portal button.secondary,.spj-portal .login button.secondary,.spj-portal button.dark{background:var(--spj-control);color:#fff;border:1px solid var(--spj-control-border)}
.spj-portal button.secondary:hover,.spj-portal button.dark:hover{background:var(--spj-control-hover);filter:none}
.spj-portal button:disabled,.spj-portal button.secondary:disabled,.spj-portal .login button:disabled{opacity:1;background:#465160;color:#e3e9ef;border:1px solid #8fa0b3;cursor:not-allowed;filter:none}
.spj-portal nav button{color:var(--spj-copy);font-weight:600;min-height:48px;padding:12px 14px;white-space:nowrap;border:1px solid transparent}
.spj-portal nav button.active{background:#394554;color:#ffdd00;border:1px solid #a8b5c5;border-bottom:3px solid #ffdd00}
.spj-portal nav button:hover{background:#303c49}
.spj-portal input:not([type=checkbox]):not([type=radio]),.spj-portal select,.spj-portal textarea{background:var(--spj-field);color:#fff;border:1px solid var(--spj-control-border);font:inherit;min-height:44px;max-width:100%;padding:12px}
.spj-portal input::placeholder,.spj-portal textarea::placeholder{color:#d4dbe3;opacity:1}
.spj-portal input[type=checkbox],.spj-portal input[type=radio]{accent-color:#ffdd00}
.spj-portal input::file-selector-button{background:#e3e9ef;color:#15202b;border:1px solid #a8b5c5;padding:9px 12px;margin-right:12px;font:inherit;cursor:pointer}
.spj-portal .tag{background:#5053b9;color:#fff;font-size:13px}
.spj-portal a.tag{text-decoration:underline}
.spj-portal .card{border-top-color:#8e94e0}
.spj-portal .board-folders>article{background:#252e37;border:1px solid #718296;border-top:3px solid #8e94e0;padding:22px}
.spj-portal [role=status]:not(:empty),.spj-portal [role=alert]:not(:empty){background:#303c49;color:#fff;border-left:3px solid #ffdd00;padding:12px 14px;margin:14px 0;overflow-wrap:anywhere}
.spj-portal summary{min-height:44px;padding:8px 0;line-height:1.6}
.spj-portal .board-folders fieldset{border-color:#a8b5c5}
.spj-portal code{color:#fff;overflow-wrap:anywhere;white-space:normal}
.spj-portal .row{flex-wrap:wrap}
.spj-portal .row>div{min-width:min(220px,100%);overflow-wrap:anywhere}
/* Contact form and public calls to action retain Summer Project yellow. */
.wpcf7 input[type=submit],.ast-custom-button{background:#ffdd00!important;color:#091118!important;border:1px solid #ffdd00!important;min-height:44px}
#z71oioqupz input:not([type=submit]):not([type=checkbox]),#z71oioqupz select,#z71oioqupz textarea{background:#263442!important;color:#fff!important;border:1px solid #a8b5c5!important;font-size:16px}
#z71oioqupz input::placeholder,#z71oioqupz textarea::placeholder{color:#d4dbe3!important;opacity:1}
#z71oioqupz label,#z71oioqupz p{color:#f8f5e6}
.spj-legal .entry-content{color:#f8f5e6;line-height:1.75}
.spj-legal .entry-title,.spj-legal .entry-content :is(h1,h2,h3,h4,h5,h6){color:#ffdd00!important}
.spj-legal .entry-content h2{font-size:clamp(24px,3.5vw,36px);line-height:1.3;margin:36px 0 18px;overflow-wrap:anywhere}
.spj-legal .entry-content a{color:#ffdd00;text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){.spj-portal .board-folders>article{padding:18px}.spj-portal nav{gap:10px}.spj-portal button{max-width:100%;overflow-wrap:anywhere}.spj-portal .row>div{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Keep every role choice on its own line, including folder permissions. */
.spj-portal .check-role{display:flex;align-items:center;gap:12px;min-height:44px;padding:5px 0;font-size:14px;line-height:1.5}
.spj-portal .check-role input{flex:0 0 22px;width:22px;height:22px;min-height:22px;margin:0}
.spj-portal .board-folders button{margin:4px 4px 4px 0}
.spj-portal nav{flex-wrap:wrap;gap:10px;overflow:visible}
@media(max-width:720px){.spj-portal nav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}}

[data-public-text]{white-space:pre-line}.spj-announcement{box-sizing:border-box;max-width:1120px;margin:110px auto 28px;padding:24px 30px;background:#ffdd00;color:#091118;border:2px solid #fff3a0;text-align:left;position:relative;z-index:3;box-shadow:0 8px 28px #0004}.spj-announcement-label{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:14px;font-weight:800}.spj-announcement h2{font-size:clamp(24px,4vw,34px);color:#091118!important;margin:10px 0;line-height:1.3}.spj-announcement p{color:#091118!important;white-space:pre-line;font-size:18px;line-height:1.6;margin:10px 0 0;overflow-wrap:anywhere}.spj-announcement[hidden]{display:none!important}#account-content textarea{display:block;width:100%;resize:vertical;margin:10px 0 16px;line-height:1.65}#account-content .content-section{border:1px solid #718296;margin:18px 0;padding:14px 20px}#account-content .content-section>summary{color:#ffdd00;cursor:pointer}#account-content .spj-announcement{margin:20px 0;max-width:100%}#account-content [hidden]{display:none!important}#account-content label{display:block}#account-content label.check-role{display:flex}@media(max-width:720px){.spj-announcement{margin:85px 16px 20px;padding:20px}.spj-announcement p{font-size:16px}#account-content .content-section{padding:12px}}

#account-notices textarea{display:block;width:100%;resize:vertical;margin:10px 0 18px;line-height:1.65}#account-notices label:not(.check-role){display:block}#account-notices .notice-body{white-space:pre-wrap;overflow-wrap:anywhere}#account-notices fieldset{border:1px solid #a8b5c5;padding:18px;min-width:0}#account-notices summary{color:#ffdd00;cursor:pointer}
