.portal-home-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:27px 0 20px}
.portal-home-card{padding:26px;border:1px solid #d7d8ca;background:#fafaf6;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.portal-home-card h3{font-size:clamp(23px,2vw,30px);margin:3px 0 10px;line-height:1.18}
.portal-home-card p{color:#405347;line-height:1.58}.portal-home-card .button{margin-top:auto}
.agreement-shell{width:min(1140px,calc(100% - 36px));margin:52px auto 95px;display:grid;gap:28px;min-width:0}
.agreement-heading{background:#143323;color:#fffefa;padding:clamp(25px,5vw,48px)}
.agreement-heading h1{font-size:clamp(34px,4vw,55px);line-height:1.1;margin:10px 0}
.agreement-heading p{max-width:800px}.agreement-heading .button{border-color:#c1a16b;color:#fffefa;margin-top:10px}
.agreement-summary,.agreement-document,.agreement-sign{padding:clamp(22px,4vw,43px);background:#fffefa;border:1px solid #dadfd4;min-width:0}
.agreement-summary h2,.agreement-document h2,.agreement-sign h2{font-size:clamp(27px,3vw,37px);margin:0 0 18px;line-height:1.2}
.agreement-summary-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:16px;padding:11px 0;border-bottom:1px solid #e3e8e2}
.agreement-summary-row span{color:#4e6354}.agreement-summary-row strong{overflow-wrap:anywhere}
.agreement-document p{max-width:890px}.agreement-document object{display:block;margin:22px 0 0;width:100%;height:min(75vh,900px);border:1px solid #becdc1;background:#fff}
.agreement-sign h3{font-size:clamp(20px,2vw,26px);border-top:1px solid #d7ddd4;padding-top:25px;margin:35px 0 15px}
.agreement-check{display:flex;align-items:flex-start;gap:14px;padding:13px 14px;margin:9px 0;border:1px solid #d9e3db;line-height:1.48;cursor:pointer}
.agreement-check:has(input:checked){border-color:#78967d;background:#f2f7f2}.agreement-check input{width:20px;height:20px;flex:none;accent-color:#20543b;margin-top:3px}
.agreement-radio{border:1px solid #d9e3db;padding:13px 16px}.agreement-radio legend{font-weight:700;padding:0 6px}
.agreement-sign .field{max-width:680px}.agreement-sign .alert{max-width:780px}
.agreement-sign a:not(.button){text-decoration:underline;color:#214b34;text-underline-offset:3px}
@media(max-width:700px){.portal-home-cards{grid-template-columns:1fr}.agreement-shell{width:calc(100% - 20px);margin:22px auto 65px;gap:15px}.agreement-summary-row{grid-template-columns:1fr;gap:1px}.agreement-document object{height:55vh}.agreement-check{padding:13px 11px}}
/* The agreement is a single native document; the archival PDF appears only after signing. */
.agreement-shell{width:min(1150px,calc(100% - 32px));gap:18px}.agreement-native{min-width:0}
.legal-contract,.agreement-final{background:#fffefa;border:1px solid #d9dfd4;min-width:0;padding:clamp(23px,4.8vw,56px)}
.legal-contract{color:#1a2c21}.legal-eyebrow{font:700 11px/1.5 'Geist Mono',ui-monospace,monospace;letter-spacing:.13em;color:#836a35;margin:0 0 16px}
.legal-contract>h2{font-size:clamp(30px,3.6vw,45px);line-height:1.14;margin:0 0 7px}.legal-subtitle{font-size:16px;color:#3f5546;margin:0 0 10px}.legal-version{font-size:13px;color:#526559}
.legal-nav{display:flex;gap:10px;overflow-x:auto;white-space:nowrap;padding:16px 0 19px;margin:16px 0 5px;border-top:1px solid #e3e8e1;border-bottom:1px solid #e3e8e1;scrollbar-width:thin}
.legal-nav a{color:#1a5035;text-decoration:none;font-size:13px;font-weight:700;padding:6px 11px;border:1px solid #cbdacb}.legal-nav a:hover,.legal-nav a:focus-visible{background:#eaf3ea}
.legal-section{padding:26px 0 18px;border-bottom:1px solid #e0e6dd;scroll-margin-top:24px}.legal-section h3{font-size:clamp(21px,2.4vw,29px);line-height:1.23;margin:0 0 16px;max-width:36ch}
.legal-section h4{font-size:17px;margin:22px 0 12px}.legal-section p,.legal-section li{max-width:84ch;font-size:15px;line-height:1.76;overflow-wrap:anywhere;margin:0 0 14px}
.legal-section .legal-safety{padding:16px 18px;border-left:3px solid #ba9d5a;background:#f6f6f0;font-weight:550}
.legal-bullets{margin:4px 0 17px;padding-left:25px}.legal-bullets li{padding-left:5px;margin-bottom:8px}.legal-programme{border-left:3px solid #d0d7cb;padding:11px 15px;margin:17px 0 10px!important;background:#f8f9f5;font-weight:630}.legal-programme.selected{border-color:#ac8845;background:#f8f7ed}
.legal-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 35px;margin:0 0 22px}.legal-detail{border-bottom:1px solid #e1e8df;padding:11px 0;min-width:0}
.legal-detail dt{font-size:12px;color:#506456;margin-bottom:5px}.legal-detail dd{font-weight:620;margin:0;line-height:1.45;overflow-wrap:anywhere}.legal-contact{display:inline-block;color:#21583b;margin:6px 0 20px;font-weight:620;text-underline-offset:3px}
.legal-check{display:flex;align-items:flex-start;gap:14px;margin:12px 0;padding:15px 17px;border:1px solid #d3ded3;background:#fcfdfa;font-size:14px;line-height:1.65;cursor:pointer;max-width:900px}
.legal-check:has(input:checked){border-color:#6b8c75;background:#f1f7ef}.legal-check input{flex:none;width:19px;height:19px;margin:3px 0 0;accent-color:#20563a}.legal-check input:disabled{cursor:default}.legal-check:has(input:disabled){cursor:default}
.legal-field{display:grid;gap:9px;max-width:710px;margin:20px 0 25px;font-size:13px;font-weight:650}.legal-field input{width:100%;min-height:46px;padding:10px 13px;color:#203a29;background:#fff;border:1px solid #859d89;font:inherit}.legal-field input:focus-visible,.legal-sign-choice:focus-visible,.legal-nav a:focus-visible{outline:2px solid #a98339;outline-offset:2px}
.legal-signature{max-width:820px;border-top:1px solid #e1e7e0;padding-top:7px;margin-top:24px}.legal-signature-pad{display:block;width:100%;height:165px;border:1px solid #8b9d8d;touch-action:none;background:#fff;margin:12px 0}.legal-sign-choice{background:#fafaf6;border:1px solid #7c9482;padding:10px 15px;margin:7px 10px 7px 0;color:#193d27;font-weight:650;cursor:pointer}.legal-sign-choice[aria-pressed="true"]{background:#173e29;color:#fff;border-color:#173e29}.legal-signature .button{margin-bottom:15px}.legal-model{border-bottom:0}.legal-model p{margin-bottom:11px}
.agreement-final{border-top:4px solid #b39860}.agreement-final h2{font-size:clamp(24px,2.8vw,33px);margin:0 0 12px}.agreement-final>p{max-width:75ch;line-height:1.65}.agreement-final .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:17px}
@media(max-width:700px){.agreement-shell{width:calc(100% - 20px);margin-top:18px}.legal-contract,.agreement-final{padding:21px 17px}.legal-details{grid-template-columns:1fr}.legal-section{padding:22px 0 14px}.legal-section p,.legal-section li{font-size:14px;line-height:1.68}.legal-check{padding:12px 10px}.legal-signature-pad{height:150px}.agreement-final .actions>*{width:100%}}
/* v58 — editable preset agreement details */
.legal-preset-editor{border:1px solid #cfd9cf;background:#f8faf6;padding:18px 20px;margin:12px 0 24px}.legal-preset-editor h4{margin:0 0 6px;font-size:19px}.legal-preset-editor>p{margin:0 0 15px;max-width:82ch}.legal-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.legal-preset-field{display:grid;gap:6px;min-width:0}.legal-preset-field>span,.legal-preset-summary>span{font-size:12px;color:#506456}.legal-preset-field input,.legal-preset-field select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #8fa394;background:#fff;color:#173126;font:inherit}.legal-preset-field input:focus,.legal-preset-field select:focus{border-color:#9f7d3d}.legal-preset-summary{display:grid;align-content:center;gap:5px;border-bottom:1px solid #dfe6dd;padding:7px 0}.legal-preset-summary strong{font-size:15px;line-height:1.4}.legal-correction-note{border-left:3px solid #ae8b43;background:#fff9e9;padding:12px 14px!important;margin:18px 0 0!important;color:#4a422d!important}.agreement-correction-pending{border:1px solid #c7a75a;background:#fff9e8;padding:18px 20px;margin:0 0 18px}.agreement-correction-pending h2{font-size:22px;margin:0 0 8px}.agreement-correction-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px;margin-top:14px}.agreement-correction-list p{margin:0;padding:8px 0;border-bottom:1px solid #eadcb8}.agreement-correction-list strong{display:block;font-size:12px;color:#6c5b2e}.agreement-correction-list span{display:block;margin-top:3px}.agreement-final .button.correction{background:#8b6b2d;border-color:#8b6b2d}.agreement-final .button.correction:hover{background:#745821}
@media(max-width:700px){.legal-preset-grid,.agreement-correction-list{grid-template-columns:1fr}.legal-preset-editor{padding:15px 12px}}


/* v87 incomplete agreement guidance */
.agreement-section-missing{padding-left:18px;border-left:4px solid #a94a32;background:linear-gradient(90deg,rgba(169,74,50,.08),transparent 72%)}
.agreement-missing{border-color:#a94a32!important;background:#fff5f1!important;box-shadow:0 0 0 2px rgba(169,74,50,.10)}
.legal-field.agreement-missing input,.agreement-missing .legal-signature-pad{border-color:#a94a32!important;outline:2px solid rgba(169,74,50,.12);outline-offset:1px}
.agreement-missing::after{content:'Required · complete this section';display:block;margin-left:auto;padding-left:12px;color:#8a3525;font-size:11px;font-weight:800;letter-spacing:.02em}
.legal-signature.agreement-missing::after{margin:8px 0 0;padding:0}
@media(max-width:700px){.agreement-section-missing{padding-left:10px}.agreement-missing::after{margin-left:0;padding-left:0}}
