/* Functional portal layout. Colours, fonts and gradients belong to memo-v24.css. */
.portal-main label{display:block;margin-top:16px;font-size:16px}
.portal-main input,.portal-main select,.portal-main textarea{display:block;width:100%;margin:8px 0 16px;box-sizing:border-box;font:inherit;background:var(--deep);color:var(--ink);border:1px solid var(--line);padding:12px}
.portal-main input[type=hidden]{display:none}.portal-main input[type=checkbox]{width:auto;display:inline-block}.portal-main textarea{min-height:120px;resize:vertical}
.portal-card,.hub-panel,.hub-intro{padding:24px;border:1px solid var(--line);margin-block:24px;background:var(--row);background-size:100% 100%;color:var(--ink)}
.error{color:var(--ink);background:var(--deep);padding:16px;border:1px solid var(--accent);border-inline-start:3px solid var(--accent)}
fieldset{border:1px solid var(--line);margin-top:18px}fieldset label{display:inline-flex!important;align-items:center;gap:8px;margin:8px 14px!important}fieldset input{width:auto!important;margin:0!important}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-block:24px}.metrics .portal-card{margin:0}.metrics strong{font-size:32px}
.axis-link{padding:20px;color:inherit;text-align:center;text-decoration:none;border-bottom:3px solid transparent}.axis-link small{margin-top:8px}.axis-link[aria-current]{border-color:var(--accent);background:var(--black)}
.stage-link{display:flex;padding:18px;gap:14px;text-decoration:none;border-bottom:1px solid var(--line)}.stage-link[aria-current]{background:var(--row);border-inline-start:3px solid var(--accent)}
.requirement-item{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:20px;border-top:1px solid var(--line)}.requirement-item form{grid-column:1/-1}.evidence-row{padding-block:14px}.evidence-row strong{margin-block:8px}
.result-card,.analysis-version{padding:20px;border:1px solid var(--line);margin-block:16px;background:var(--row)}.result-card>*{display:block;margin:8px 0}.source-note{padding-inline:20px}
.portal-main .stage-panel{min-height:0}.portal-main .requirement-section{background:var(--row)}
@media(max-width:960px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.requirement-item{grid-template-columns:1fr}.portal-card,.hub-panel,.hub-intro{padding:18px}.metrics{gap:10px}.metrics .portal-card{padding:14px}.metrics small{min-height:48px}}
