/* Research partnership and contribution workspace. */
.partnership { margin-block: 20px 46px; }
.partnership-card { display: grid; grid-template-columns: minmax(0, 1fr) 44px 230px; align-items: stretch; gap: 16px; padding: 28px 34px 0; overflow: hidden; background: #fff; color: #263353; border: 1px solid var(--rule); border-radius: 22px; }
.partner-kicker { display: block; font: 500 10px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: #7e8aa3; }
.partnership-academic { min-width: 0; }
.partnership-academic > .partner-kicker { text-align: center; margin-bottom: 20px; }
.partner-universities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.partner-universities a { text-align: center; text-decoration: none; font: 500 30px/1.15 var(--serif); }
.partner-campus-art { display: block; width: 100%; height: auto; aspect-ratio: 2172 / 558; object-fit: cover; object-position: center 56%; margin-top: 16px; }
.partner-cross { align-self: center; text-align: center; margin-bottom: 28px; color: #9aa5bb; font: 300 28px/1 var(--sans); }
.partner-foundation { display: grid; grid-template-rows: auto 1fr; justify-items: center; gap: 22px; text-align: center; text-decoration: none; padding-bottom: 32px; }
.aitonomy-wordmark { align-self: center; font: 400 38px/1 var(--sans); letter-spacing: -.055em; }
.aitonomy-wordmark b { font-weight: 600; }
.aitonomy-wordmark small { display: block; margin-top: 12px; font: 400 11px/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; }
.partner-note { text-align: center; font-size: 11px; color: var(--faint); margin-top: 12px; }
.partner-contact { text-align: center; margin-top: 10px; font-size: 12px; font-weight: 600; color: var(--muted); }
.partner-contact a { color: var(--accent-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.partner-universities a:hover, .partner-foundation:hover .aitonomy-wordmark { color: #584b9a; }
@media (max-width: 850px) {
  .partnership-card { grid-template-columns: minmax(0, 1fr) 28px 180px; padding: 24px 24px 0; gap: 8px; }
  .partner-universities { gap: 8px; }
  .partner-universities a { font-size: 25px; }
  .aitonomy-wordmark { font-size: 32px; }
}
@media (max-width: 600px) {
  .partnership-card { grid-template-columns: 1fr; padding: 24px 18px 0; gap: 18px; }
  .partner-universities a { font-size: clamp(18px, 5.3vw, 24px); }
  .partner-cross { margin: 0; }
  .partner-foundation { gap: 16px; padding-bottom: 28px; }
  .partner-note { max-width: 34em; margin-inline: auto; }
}
.contribution-hero .lede { max-width: 790px; }
.contribution-benefits { display: grid; gap: 10px; font-size: 17px; color: var(--muted); }
.contribution-benefits li { padding-left: 16px; border-left: 2px solid var(--rule); }
.contribution-benefits strong { color: var(--accent-ink); font-weight: 600; }
.contribute-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 20px; }
.form-hint { font-size: 13px; line-height: 1.65; color: var(--muted); }
.guide-wrap { display: grid; gap: 34px; }
.criteria-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.criteria-grid article { padding-right: 22px; }
.criteria-grid article + article { padding-left: 28px; border-left: 1px solid var(--rule); }
.criterion-number { font: 400 24px/1 var(--serif); color: var(--accent); }
.criteria-grid h3 { margin: 18px 0 12px; font: 500 24px/1.15 var(--serif); }
.criteria-grid p { font-size: 15px; line-height: 1.7; color: var(--muted); }
.guide-example { display: grid; grid-template-columns: 1fr 1.3fr; gap: 42px; padding: 30px; border-radius: 18px; background: var(--accent-wash); }
.guide-example h3 { font: 400 28px/1.2 var(--serif); margin-top: 10px; }
.guide-example p { color: var(--muted); }
.guide-example .text-link { display: inline-block; margin-top: 14px; }
.preparation-list { display: grid; }
.preparation-list li { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 20px; padding: 22px 0; border-top: 1px solid var(--rule); }
.preparation-list li > span { font: 400 26px/1.3 var(--serif); color: var(--accent); }
.preparation-list h3 { font: 400 25px/1.2 var(--serif); margin-bottom: 9px; }
.preparation-list p { color: var(--muted); max-width: 800px; }
.guide-faq { border-top: 1px solid var(--rule); padding-top: 22px; }
.guide-faq summary, .self-test summary { cursor: pointer; font-weight: 500; }
.guide-faq p { color: var(--muted); margin-top: 14px; max-width: 880px; }
.guide-next { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 0; }
.guide-next h2, .guide-next h3 { font: 400 28px/1.2 var(--serif); }
.guide-next p { color:var(--muted); margin-top:8px; }
.collaboration-callout { padding:36px; border:1px solid var(--rule); border-radius:20px; background:var(--sheet); display:grid; gap:24px; }
.collaboration-callout h2 { font:400 clamp(26px,3vw,34px)/1.15 var(--serif); margin-block:12px; }
.collaboration-callout p { max-width:740px; color:var(--muted); }
.contact-address { font-size:clamp(16px,2.3vw,24px); overflow-wrap:anywhere; text-decoration:none; color:var(--accent-ink); }
.account-wrap { max-width:760px; }
.account-wrap .page-title { font-size:clamp(32px,4.5vw,48px); }
.account-card { background:var(--sheet); border:1px solid var(--rule); border-radius:20px; padding:32px; }
.account-tabs { display:flex; border-bottom:1px solid var(--rule); gap:25px; margin-bottom:26px; }
.account-tabs button { background:none; border:0; border-bottom:2px solid transparent; padding:0 0 12px; font:500 15px/1.5 var(--sans); color:var(--muted); cursor:pointer; }
.account-tabs button[aria-pressed=true] { border-bottom-color:var(--accent); color:var(--ink); }
.sle-form { display:grid; gap:22px; }
.sle-form label { display:grid; gap:8px; font:500 14px/1.5 var(--sans); }
.sle-form input:not([type=checkbox]), .sle-form textarea, .sle-form select { display:block; width:100%; min-width:0; border:1px solid var(--rule); border-radius:9px; padding:12px 14px; background:var(--sheet); color:var(--ink); font:400 15px/1.5 var(--sans); }
.sle-form input[readonly] { background:var(--paper); color:var(--muted); }
.sle-form textarea { resize:vertical; }
.sle-form input::placeholder, .sle-form textarea::placeholder { color:var(--faint); opacity:1; }
.sle-form label b { display:contents; color:var(--mark); }
.sle-form label small, .optional { font-size:12px; font-weight:400; color:var(--muted); }
.sle-form .btn { justify-content:center; cursor:pointer; }
.sle-form button:disabled { opacity:.6; cursor:wait; }
.sle-form [hidden] { display:none !important; }
.form-link { border:0; padding:0; background:none; color:var(--accent-ink); text-align:left; cursor:pointer; font:400 14px/1.5 var(--sans); }
.form-feedback { font-size:14px; line-height:1.6; white-space:pre-wrap; }
.form-feedback:not(:empty) { padding:14px 16px; border-radius:9px; background:var(--accent-wash); margin-block:18px; }
.form-feedback.is-error { color:var(--mark); border:1px solid currentColor; background:transparent; }
.account-privacy { margin-top:24px; font-size:12px; line-height:1.6; color:var(--muted); }
.auth-hero .account-wrap { max-width:560px; }
.auth-hero .page-title { font-size:clamp(32px,4vw,44px); }
.auth-hero .lede { font-size:17px; line-height:1.65; }
.social-signin { display:grid; gap:12px; }
.social-signin > p { color:var(--muted); font-size:12px; line-height:1.5; text-align:center; margin:2px 0 6px; }
.oauth-button { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:48px; padding:12px 18px; border:1px solid var(--rule); border-radius:10px; background:var(--sheet); color:var(--ink); font:500 15px/1.4 var(--sans); cursor:pointer; }
.oauth-button:hover { background:var(--accent-wash); border-color:var(--accent); }
.oauth-button img { flex:none; background:#fff; border-radius:3px; }
.oauth-button[data-oauth=github] { background:#24292f; border-color:#24292f; color:#fff; }
.oauth-button[data-oauth=github]:hover { background:#343b43; }
.oauth-button[data-oauth=github] img { background:transparent; }
.oauth-button:disabled { opacity:.6; cursor:wait; }
.auth-divider { display:flex; align-items:center; gap:14px; color:var(--faint); font-size:12px; margin:14px 0 24px; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:var(--rule); }
.account-card [hidden] { display:none !important; }
.signup-confirmation { display:grid; gap:22px; }
.signup-confirmation h2 { font:400 30px/1.2 var(--serif); }
.signup-confirmation p { color:var(--muted); line-height:1.7; overflow-wrap:anywhere; }
.password-input { display:block; position:relative; }
.sle-form .password-input input { padding-right:68px; }
.password-input button { position:absolute; right:12px; top:50%; transform:translateY(-50%); border:0; background:none; color:var(--muted); font:500 12px var(--sans); cursor:pointer; }
.sle-form .field-error { color:var(--mark); min-height:0; }
.sle-form .file-picker { position:relative; display:inline-flex; align-items:center; justify-content:center; width:fit-content; min-height:44px; padding:10px 18px; border:1px solid var(--rule); border-radius:10px; background:var(--sheet); color:var(--accent-ink); cursor:pointer; }
.sle-form .file-picker:hover { background:var(--accent-wash); border-color:var(--accent); }
.sle-form .file-picker:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.sle-form .file-picker input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.sle-form .file-picker:has(input:disabled) { opacity:.6; cursor:default; }
.workspace-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.workspace-heading .page-title { font-size:clamp(32px,4.5vw,48px); }
.submission-list { display:grid; gap:16px; }
.submission-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; padding:24px; border:1px solid var(--rule); border-radius:14px; background:var(--sheet); text-decoration:none; }
.submission-row h2 { font:500 25px/1.3 var(--serif); overflow-wrap:anywhere; }
.submission-row p { font-size:13px; color:var(--muted); margin-top:8px; }
.submission-row:hover { border-color:var(--accent); }
.status-badge { font-size:12px; line-height:1.4; padding:5px 9px; align-self:start; border:1px solid var(--rule); border-radius:30px; white-space:nowrap; }
.status-submitted { color:var(--accent-ink); background:var(--accent-wash); border-color:transparent; }
.submission-empty { padding:40px; border:1px dashed var(--rule); border-radius:15px; text-align:center; }
.submission-empty h2 { font:400 30px/1.3 var(--serif); }
.submission-empty p { margin:14px 0 22px; color:var(--muted); }
.submission-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:42px; align-items:start; }
.submission-outline { position:sticky; top:110px; display:grid; gap:16px; }
.submission-outline a { text-decoration:none; font-size:14px; }
.submission-outline > p:last-child { font-size:12px; color:var(--muted); margin-top:10px; }
.form-section { min-width:0; margin:0; border:1px solid var(--rule); border-radius:16px; padding:28px; background:var(--sheet); display:grid; gap:22px; }
.form-section legend { font:500 26px/1.3 var(--serif); padding:0 10px; }
.form-section legend span { color:var(--accent); margin-right:12px; }
.form-two { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.file-field { border:1px dashed var(--rule); padding:18px; border-radius:12px; display:grid; gap:10px; background:var(--paper); }
.sle-form input[type=file] { background:transparent; font-size:13px; padding:0; border:0; }
input[type=file]::file-selector-button { background:var(--sheet); color:var(--ink); padding:9px 12px; border:1px solid var(--rule); border-radius:7px; margin-right:12px; cursor:pointer; }
.uploaded-files { display:grid; gap:8px; }
.uploaded-files li { display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:13px; overflow-wrap:anywhere; }
.uploaded-files button { background:none; border:0; color:var(--accent-ink); cursor:pointer; font:inherit; padding:5px; }
.uploaded-files button.remove-file { color:var(--mark); font-size:12px; }
.self-test { border-top:1px solid var(--rule); padding-top:20px; }
.self-test > :not(summary) { margin-top:18px; }
.sle-form .form-check { display:flex; align-items:flex-start; gap:10px; font-weight:400; }
.form-check input { width:17px; height:17px; flex:0 0 auto; accent-color:var(--accent); margin-top:3px; }
.submission-toolbar { position:sticky; bottom:16px; display:flex; align-items:center; gap:12px; padding:16px; border:1px solid var(--rule); border-radius:12px; background:var(--sheet); box-shadow:0 8px 30px rgb(var(--shadow)/.1); z-index:5; }
.submission-toolbar span { font-size:12px; color:var(--muted); }
.task-reference { font:400 12px/1.6 var(--mono); color:var(--muted); overflow-wrap:anywhere; }
.review-notes { border:1px solid var(--rule); background:var(--sheet); padding:25px; border-radius:12px; margin-top:24px; white-space:pre-wrap; }
@media(max-width:800px) {
 .criteria-grid { grid-template-columns:1fr; gap:24px; }
 .criteria-grid article + article { border-left:0; padding-left:0; border-top:1px solid var(--rule); padding-top:24px; }
 .guide-example { grid-template-columns:1fr; gap:22px; }
 .submission-layout { grid-template-columns:1fr; gap:24px; }
 .submission-outline { position:static; display:flex; flex-wrap:wrap; gap:12px 18px; }
 .submission-outline > p { flex-basis:100%; }
 .workspace-heading { align-items:start; flex-direction:column; }
}
@media(max-width:560px) {
 .account-card, .collaboration-callout { padding:24px 20px; }
 .form-section { padding:22px 18px; }
 .form-two { grid-template-columns:1fr; }
 .guide-next { align-items:start; flex-direction:column; }
 .submission-row { grid-template-columns:1fr; }
 .submission-toolbar { flex-wrap:wrap; bottom:8px; padding:12px; }
 .submission-toolbar .btn { font-size:13px; }
 .submission-toolbar span { flex-basis:100%; }
}

.submission-toolbar[hidden], .review-notes[hidden], .account-tabs[hidden] { display:none !important; }

/* Account menu and settings. */
.account-menu { position:relative; }
.account-menu[hidden], [data-account-panel][hidden] { display:none !important; }
.account-avatar { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--accent); color:white; font:500 17px var(--sans); cursor:pointer; list-style:none; }
.account-avatar::-webkit-details-marker { display:none; }
.account-dropdown { position:absolute; right:0; top:calc(100% + 14px); width:280px; max-width:calc(100vw - 40px); border:1px solid var(--rule); border-radius:15px; background:var(--sheet); box-shadow:0 12px 40px rgb(var(--shadow)/.16); overflow:hidden; z-index:30; }
.account-identity { padding:22px; display:grid; gap:6px; overflow-wrap:anywhere; }
.account-identity span { font-size:13px; color:var(--muted); }
.account-dropdown > a, .account-dropdown > button { display:block; width:100%; padding:16px 22px; border:0; border-top:1px solid var(--rule); color:var(--ink); background:none; text-decoration:none; text-align:left; font:400 14px var(--sans); cursor:pointer; }
.account-dropdown > a:hover, .account-dropdown > button:hover { background:var(--accent-wash); }
.management-wrap { max-width:1050px; }
.management-wrap .page-title { font-size:clamp(32px,4.5vw,48px); }
.management-layout { display:grid; grid-template-columns:170px minmax(0,1fr); gap:36px; padding:30px; }
.management-tabs { display:flex; flex-direction:column; gap:6px; }
.management-tabs a { padding:12px 15px; border-radius:8px; text-decoration:none; font-size:14px; }
.management-tabs a[aria-current=page] { background:var(--accent-wash); color:var(--accent-ink); font-weight:500; }
.management-content { min-width:0; }
.management-content h2, .account-dialog h2 { font:500 30px/1.3 var(--serif); }
.management-content h3 { font:500 18px/1.4 var(--sans); margin-bottom:10px; }
.account-section { padding-block:26px; border-top:1px solid var(--rule); margin-top:22px; }
.account-section .btn { justify-self:start; }
.account-section > .sle-form { margin-top:20px; }
.account-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-block:20px; border-bottom:1px solid var(--rule); }
.account-row > div { min-width:0; overflow-wrap:anywhere; }
.account-row .btn { flex-shrink:0; }
.account-row .form-hint { margin-top:4px; }
.device-row { padding-block:16px; }
.device-row + .device-row { border-top:1px solid var(--rule); }
.danger-button { color:#b13d3d; }
.btn-primary.danger-button { background:#ac3535; border-color:#ac3535; color:white; }
.key-reveal { border:1px solid var(--accent); background:var(--accent-wash); border-radius:12px; padding:20px; }
.key-reveal[hidden] { display:none; }
.key-reveal code { display:block; overflow-wrap:anywhere; user-select:all; margin-block:20px; font:13px/1.7 var(--mono); }
.key-prefix { font:12px/1.6 var(--mono); margin-top:8px; }
.api-usage summary { cursor:pointer; font-size:14px; font-weight:500; }
.api-usage p { margin-top:16px; }
.api-usage pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:16px; background:var(--paper); border:1px solid var(--rule); border-radius:8px; font:12px/1.7 var(--mono); margin-top:12px; }
.account-dialog { width:min(550px,calc(100% - 32px)); max-height:calc(100vh - 40px); margin:auto; padding:30px; border:1px solid var(--rule); border-radius:18px; background:var(--sheet); color:var(--ink); }
.account-dialog::backdrop { background:rgb(0 0 0 / .5); }
.account-dialog > p { font-size:14px; line-height:1.7; color:var(--muted); margin-block:18px; }
@media(max-width:700px) {
 .management-layout { grid-template-columns:1fr; gap:24px; padding:22px 18px; }
 .management-tabs { flex-direction:row; border-bottom:1px solid var(--rule); padding-bottom:16px; }
 .management-tabs a { padding:10px 12px; }
 .account-row { align-items:start; }
 .account-dialog { padding:24px 20px; }
}

.policy-copy p { font-size:15px; line-height:1.8; margin-bottom:18px; color:var(--muted); }
.policy-copy h2 { font:500 27px/1.3 var(--serif); margin:32px 0 14px; }
.policy-copy a { color:var(--accent-ink); overflow-wrap:anywhere; }

.contribution-hero .page-title { max-width:none; text-wrap:wrap; }
.contribution-hero .page-title em { display:block; margin-top:14px; font-size:.5em; line-height:1.3; letter-spacing:-.01em; }
.contribution-guide { padding-block:24px 32px; }
.contribution-guide .guide-wrap { gap:20px; }
.contribution-guide .section-head { margin:0; }
.contribution-guide .section-head h2 { font-size:clamp(26px,2.5vw,30px); }
.contribution-guide .criteria-grid h3 { font-size:23px; margin:0 0 10px; }
.contribution-guide .criteria-grid p { font-size:14px; line-height:1.65; }
.submission-guide-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:48px; align-items:start; }
.submission-guide-grid .criteria-grid { grid-template-columns:1fr; gap:20px; margin-bottom:20px; }
.submission-guide-grid .criteria-grid article { padding:0; border:0; }
.submission-guide-grid .criteria-grid h3 { font-size:21px; margin-bottom:6px; }
.contribution-guide .preparation-list li { grid-template-columns:30px minmax(0,1fr); gap:16px; padding:15px 0; }
.contribution-guide .preparation-list li > span { font-size:20px; }
.contribution-guide .preparation-list li > div { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:baseline; gap:20px; }
.contribution-guide .preparation-list h3 { font-size:21px; margin:0; }
.contribution-guide .preparation-list p, .submission-notes p { font-size:14px; line-height:1.65; }
.submission-notes { padding:18px 22px; border-radius:12px; background:var(--accent-wash); display:grid; gap:10px; color:var(--muted); }
.submission-notes strong { color:var(--ink); font-weight:500; }
@media(max-width:600px) {
 .contribution-hero .page-title em { font-size:22px; }
 .contribution-guide .preparation-list li > div { grid-template-columns:1fr; gap:5px; }
 .submission-notes { padding:16px; }
}
@media(max-width:850px) { .submission-guide-grid { grid-template-columns:1fr; gap:28px; } }
