/* Course account structure; portal components remain shared. */
.academy .account-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding:16px 0;margin:0 0 24px;border-bottom:1px solid #c4dbd3}
.account-bar-label{font-weight:700;color:#0c2c43}
.account-bar-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px}
.account-bar a{display:inline-flex;align-items:center;min-height:44px}
.account-bar a[aria-current]{color:#007b50;text-decoration:underline;text-underline-offset:6px;font-weight:700}
.account-bar form{margin:0}
.account-access .article-head{margin-bottom:28px}
.account-access .article-head h1{max-width:24ch}
.account-access .lead{max-width:58ch}
.account-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;margin:0 0 60px}
.account-card{padding:20px;border:1px solid #c4dbd3;border-radius:6px;margin:28px 0;min-width:0;background:#fff}
.account-layout .account-card{margin:0}
.account-card p{line-height:1.65}
.account-form{display:grid;gap:20px}
.account-form>label{display:grid;gap:8px;font-weight:600;line-height:1.5}
.account-form input:not([type=checkbox]):not([type=radio]){width:100%;min-height:48px;font-size:1rem;border:1px solid #b7cbd6;border-radius:4px;padding:12px;box-sizing:border-box;background:#fff;color:#0c2c43}
.account-form>button{width:100%;white-space:normal;justify-content:center}
.account-form .account-recovery{justify-self:start;display:inline-flex;align-items:center;min-height:44px;margin-top:-12px;text-decoration:underline;text-underline-offset:3px;font-size:1rem}
.account-card .account-field-help{font-size:1rem;color:#526877;line-height:1.65;margin:0}
.account-form label:has(+.account-field-help){margin-bottom:-8px}
.account-card>.account-field-help{margin-top:18px}
.account-check,.account-form>label.account-check{display:flex;align-items:flex-start;gap:12px;line-height:1.65;font-weight:400;min-height:44px;padding:8px 0}
.account-check input{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;margin:3px 0 0}
.account-check span{min-width:0}
.account-question .account-check span{overflow-wrap:break-word}
.account-card-footer{display:grid;gap:10px;padding-top:24px;margin-top:24px;border-top:1px solid #dce4e8}
.account-card-footer p{margin:0;font-weight:600;color:#0c2c43}
.account-card-footer a{min-height:44px;display:inline-flex;align-items:center}
.account-card-footer .button-outline{justify-content:center;white-space:normal;width:100%}
.account-help{margin-top:16px;border-top:1px solid #dce4e8;padding-top:12px}
.account-help summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;cursor:pointer;color:#007b50;line-height:1.5;list-style:none;font-weight:600}
.account-help summary::-webkit-details-marker{display:none}
.account-help summary:after{content:'+';font-size:1.5rem;line-height:1;flex-shrink:0;font-weight:400}
.account-help[open] summary:after{content:'−'}
.account-help p{margin:10px 0 0}
.account-help p a{text-decoration:underline;text-underline-offset:3px}
.account-notice,.account-error{padding:18px 20px;border:1px solid #a8cebb;border-left:4px solid #007b50;border-radius:5px;margin:22px 0;line-height:1.65;font-size:1rem;overflow-wrap:break-word}
.account-notice{background:#edf7ef}
.account-error{background:#fff5ef;border-color:#c88e70;color:#713b1d}
.account-card>.account-notice,.account-card>.account-error{margin:0 0 24px}
.account-info{padding:24px;background:#edf6f0;border:1px solid #c4dbd3;border-top:3px solid #007b50;border-radius:6px;min-width:0}
.account-info h2{font-size:1.75rem;line-height:1.18;margin:14px 0 18px}
.account-info p{font-size:1rem;line-height:1.65}
.account-course-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr));gap:18px;margin:24px 0;padding:22px 0;border-block:1px solid #bcd7ca}
.account-course-facts div{min-width:0}
.account-course-facts dt{font:700 2rem/1.2 Georgia,serif;color:#007b50;margin-bottom:5px}
.account-course-facts dd{font-size:1rem;line-height:1.5;margin:0;color:#314e61}
.account-benefits{display:grid;gap:14px;margin:0 0 20px;padding-left:22px;line-height:1.6;font-size:1rem}
.account-benefits li::marker{color:#007b50}
.account-info>.text-link{display:inline-flex;min-height:44px;align-items:center}
.account-form-intro{margin:0 0 24px}
.account-instructions h2,.account-divider h2{font:700 1.25rem/1.4 Arial,sans-serif;margin:0 0 12px}
.account-instructions p{margin:0 0 14px}
.account-divider{margin:24px 0;padding-top:24px;border-top:1px solid #dce4e8}
.account-question{min-width:0;padding:16px;margin:28px 0;border:1px solid #c4dbd3;border-radius:6px;background:#fff}
.account-question legend{font-weight:700;font-size:1.125rem;line-height:1.6;padding:0 8px;max-width:100%;overflow-wrap:break-word}
.account-question .account-check{border:1px solid #dce4e8;border-radius:4px;padding:14px;margin:12px 0;cursor:pointer}
.account-question .account-check:has(input:checked){border-color:#007b50;background:#edf6f0}
.account-delete{margin-top:32px;padding-top:24px;border-top:1px solid #dce4e8}
.account-delete summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:#713b1d;font-weight:600}
.account-delete summary:after{content:'+';margin-left:auto;padding-left:16px;font-size:1.5rem}
.account-delete[open] summary:after{content:'−'}
.course-locked{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:6px 12px;align-items:start;padding:12px 0;color:#526877}
.course-locked small{grid-column:2;display:inline-flex;align-items:center;gap:6px;font-size:1rem;line-height:1.5}.course-lock-icon{width:.9em;height:.9em;flex:none;color:#8c640d}.course-lock-icon rect{fill:#f2c94c}.course-lock-icon path{stroke:#78848a}
.account-google{min-width:0;margin:0 0 24px}
.account-google [data-google-signin]{display:grid;justify-items:center;min-width:0}
.account-google [data-google-button]{width:min(100%,400px);min-height:48px;display:flex;align-items:center;justify-content:center}
.account-google [data-google-status]:not(.visually-hidden){margin-top:12px;text-align:center;max-width:40ch}
.account-google-divider{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;margin:20px 0 0;color:#617481;text-align:center;font-size:1rem;line-height:1.5}
.account-google-divider:before,.account-google-divider:after{content:"";height:1px;background:#dce4e8}
.account-exam{margin-bottom:50px;width:100%;max-width:none}
.account-exam>button{white-space:normal;max-width:100%}
.account-layout a:focus-visible,.account-form input:focus-visible,.account-check input:focus-visible,.account-help summary:focus-visible,.account-delete summary:focus-visible{outline:3px solid #007b50;outline-offset:3px}
.academy .course-grid,.academy .assessment-topics{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}
.academy .course-module{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.academy .course-module h3{max-width:100%;min-width:0;overflow-wrap:break-word;hyphens:auto}
.academy .course-module>.text-link,.academy .course-module>.button{margin-top:auto}
.academy .course-module>.text-link{padding-top:16px;min-height:44px;display:inline-flex;align-items:center}
.academy .course-module:where(a):hover{border-color:#007b50;background:#f7faf7}
.academy .course-module:where(a):focus-visible{outline:3px solid #007b50;outline-offset:3px}
.academy .assessment-topic{display:flex;flex-direction:column;gap:12px;min-width:0}
.academy .assessment-topic>a{min-height:44px;display:inline-flex;align-items:center;margin-top:auto}
.academy .quiz-feedback h3{font-size:1.35rem;line-height:1.4;margin:12px 0}
.academy .activity textarea{box-sizing:border-box}
.academy .course-summary .actions{margin-top:22px}
.academy .course-summary p+p{margin-top:14px}
.account-progress{display:block;width:100%;height:10px;margin:16px 0 22px;border:none;border-radius:8px;background:#d5e5dd;accent-color:#007b50}
.account-progress::-webkit-progress-bar{background:#d5e5dd;border-radius:8px}
.account-progress::-webkit-progress-value{background:#007b50;border-radius:8px}
.academy .course-top-progress .account-progress{flex-basis:100%;margin:0}
.account-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:24px;align-items:start;margin:28px 0 60px}
.account-settings .account-card{margin:0}
.account-settings h2{font-size:1.75rem;line-height:1.2;margin-bottom:24px}
.account-settings p{margin:18px 0}
.account-settings-link{display:inline-flex;align-items:center;min-height:44px}
.account-details{display:grid;gap:20px;margin:24px 0}
.account-details dt{font-weight:700;margin-bottom:6px}
.account-details dd{margin:0;overflow-wrap:anywhere;font-size:1rem;line-height:1.65}
.academy .mm-investment-map :is(h2,h3){overflow-wrap:break-word;hyphens:auto}
@media(min-width:58rem){.account-layout{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:40px}.account-card{padding:32px}.account-info{padding:32px}.account-question{padding:24px}}
@media(max-width:360px){.account-card,.account-info{padding:18px}.account-question{padding:14px}.account-question .account-check{padding:12px}.account-bar-links{gap:8px 16px}}
@media(max-width:42rem){.account-question .account-check{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.account-question .account-check input{margin:0}.account-question .account-check span{width:100%}}

/* Editorial illustration is lightweight HTML/SVG, with the message also in real text. */
.course-free-highlight{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;padding:26px;margin:26px 0 32px;border-radius:8px;background:#0c2c43;border-top:4px solid #00875a;color:#fff}
.course-free-copy{min-width:0}
.course-free-highlight .course-free-kicker{color:#a5e9c9;font-size:1rem;line-height:1.5;letter-spacing:.04em;font-weight:600;margin:0 0 14px}
.course-free-highlight h2{color:#fff;font-size:1.75rem;line-height:1.12;letter-spacing:-.025em;margin:0 0 20px}
.course-free-highlight .course-free-description{color:#e1eaf0;font-size:1.0625rem;line-height:1.65;max-width:64ch;margin:0}
.course-free-assurances{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;padding:0;margin:22px 0 0;font-size:1rem;color:#d6f5e5}
.course-free-assurances li{display:flex;align-items:baseline;gap:8px;min-width:0}
.course-free-assurances li:before{content:'✓';color:#a5e9c9;font-weight:700;flex-shrink:0}
.course-free-highlight .actions{margin-top:26px}
.course-free-highlight .button{max-width:100%;white-space:normal;text-align:center;background:#008153}
.course-free-highlight .button:hover{background:#006d46}
.course-free-highlight .button-outline{background:#edf6f0;color:#005f3d;white-space:normal;max-width:100%}
.course-free-art{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px 20px;padding:20px;border:1px solid #4a7d78;border-radius:8px;background:#123c4b;color:#a5e9c9;min-width:0}
.course-free-book{display:block;width:80px;height:68px;max-width:100%;flex-shrink:0}
.course-free-price{display:flex;align-items:baseline;justify-content:center;gap:10px;color:#fff;line-height:1}
.course-free-price>span{font-size:1.25rem;font-weight:600}
.course-free-price>strong{font:700 4.5rem/1 Georgia,serif}
.course-free-stamp{display:block;font-size:1rem;font-weight:700;line-height:1.5;color:#c2f3da;text-transform:uppercase;letter-spacing:.05em}
.course-free-compact{gap:20px;padding:22px;margin-top:0}
.course-free-compact h2{font-size:1.75rem;margin-bottom:14px}
.course-free-compact .course-free-description{font-size:1rem}
.course-free-compact .course-free-assurances{margin-top:16px}
.course-free-compact .course-free-art{padding:12px}
.course-free-compact .course-free-book{width:56px;height:48px}
.course-free-compact .course-free-price>strong{font-size:3rem}
@media(min-width:55rem){.course-free-highlight{grid-template-columns:minmax(0,1fr) minmax(13rem,.32fr);align-items:center;padding:38px;gap:48px}.course-free-highlight h2{font-size:2.25rem}.course-free-art{flex-direction:column;padding:26px}.course-free-book{width:112px;height:94px}.course-free-compact{grid-template-columns:minmax(0,1fr) minmax(12rem,.26fr);padding:26px 32px;gap:32px}.course-free-compact h2{font-size:2rem}.course-free-compact .course-free-art{flex-direction:row;flex-wrap:wrap;gap:10px 18px}.course-free-compact .course-free-stamp{flex-basis:100%;text-align:center}}
@media(max-width:360px){.course-free-highlight{padding:20px}.course-free-art{padding:16px}.course-free-compact{padding:20px}.course-free-compact .course-free-art{gap:10px}}
.course-identity{margin:24px 0;padding:18px 22px;border-left:4px solid #007b50;background:#edf6f0;border-radius:0 6px 6px 0}
.course-identity>span{display:block;color:#007044;font-size:1rem;font-weight:600;line-height:1.5;margin-bottom:6px}
.course-identity p{margin:0;font:700 1.5rem/1.25 Georgia,serif;color:#0c2c43}
.course-identity a{display:inline-block;min-height:44px;color:inherit;text-decoration:none}
.course-identity a:hover{text-decoration:underline;text-underline-offset:4px}
.course-identity a:focus-visible{outline:3px solid #007b50;outline-offset:4px}
.academy .course-grid .course-module>h3{font-size:1.625rem;margin:13px 0;line-height:1.15}
.course-journey-heading{margin:32px 0 0;font-size:1.875rem}
.academy .course-reading>h3{font-size:1.875rem;line-height:1.2;margin:30px 0 10px}
.academy .course-reading>h4{font-size:1.4375rem;line-height:1.2;margin:22px 0 10px}
@media(max-width:360px){.course-identity{padding:16px}.course-identity p{font-size:1.375rem}}

/* Course flow: separate reading blocks and keep access instructions in their card. */
.academy .course-top-progress{margin:28px 0;gap:18px 28px;padding:22px 24px}
.academy .course-top-progress p{margin:0;line-height:1.65}
.academy .course-top-progress .course-access-note{flex-basis:100%;padding-top:18px;border-top:1px solid #dce4e8;max-width:none}
.academy .course-access-note a{text-decoration:underline;text-underline-offset:3px;font-weight:600}
.academy .course-top-progress+p{margin:24px 0;line-height:1.65}
.academy .course-summary+p,.academy .course-grid+p{margin:24px 0;line-height:1.65}
.academy .account-card>h2+ p{margin-top:14px}
.academy .account-card>h3{margin:28px 0 16px}
.academy .account-card>p+.button,.academy .account-card>p+.button-outline{margin-top:20px}
.academy .account-card>ul{margin:18px 0;padding-left:24px;line-height:1.7}
.academy .account-card>ul li+li{margin-top:12px}
.academy .course-layout .course-main>*+p{margin-top:22px}
.academy .activity>p{margin:16px 0;line-height:1.65}
@media(max-width:42rem){.academy .course-top-progress{padding:20px}.academy .course-top-progress>.text-link{min-height:44px;display:inline-flex;align-items:center}}

/* Result sections need the same breathing room as the rest of the journey. */
.academy>.course-summary+h2,.academy>.assessment-topics+h2{margin:36px 0 22px}
.academy .course-module>h3{hyphens:none}

.account-info>p+.account-benefits{margin-top:24px}

/* Familiar account menu, shared by the complete student journey. */
.academy .account-bar{position:relative}
.account-profile{position:relative;min-width:0}
.account-profile>summary{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;list-style:none;color:#0c2c43;font-weight:600;padding:0 4px}
.account-profile>summary::-webkit-details-marker{display:none}
.account-profile>summary>span:not(.account-avatar){max-width:18ch;overflow-wrap:anywhere}
.account-avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#e7f3ec;color:#00744b;font-size:1rem}
.account-profile-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:40;width:min(22rem,calc(100vw - 40px));padding:22px;background:#fff;border:1px solid #c4dbd3;border-radius:6px;box-shadow:0 8px 28px #0c2c431c;box-sizing:border-box}
.account-profile-panel .account-profile-name{font-weight:700;margin:0 0 8px;line-height:1.5;overflow-wrap:anywhere}
.account-profile-panel .account-profile-email{font-size:1rem;line-height:1.6;color:#526877;overflow-wrap:anywhere;margin:0 0 18px;padding-bottom:18px;border-bottom:1px solid #dce4e8}
.account-profile-panel>a{display:flex;min-height:44px;align-items:center;padding:8px 0;text-decoration:underline;text-underline-offset:3px;font-size:1rem}
.account-profile-panel form{border-top:1px solid #dce4e8;padding-top:12px;margin-top:10px}
.account-signout{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 0;background:none;border:0;color:#00744b;font:600 1rem/1.5 Arial,sans-serif;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.account-profile summary:focus-visible,.account-profile-panel a:focus-visible,.account-signout:focus-visible{outline:3px solid #007b50;outline-offset:4px}
@media(max-width:42rem){.account-profile{position:static}.account-profile-panel{right:0;left:0;top:calc(100% + 8px);width:auto}.account-profile>summary>span:not(.account-avatar){max-width:12ch}}

/* Course identity art is reused only to identify this same course. */
.academy .course-art-image{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:5px}
.account-info>.course-art-image{margin:0 0 24px}
.academy .course-identity{display:flex;align-items:center;gap:18px}
.academy .course-identity>.course-art-image{flex:0 0 96px;width:96px}
.academy .course-identity>div{min-width:0}
.academy .course-identity>div>span{display:block;font-size:1rem;font-weight:600;line-height:1.5;margin-bottom:6px;color:#007044}
.course-student-card>.course-art-image{margin-bottom:22px}
.academy .all-courses-grid{grid-template-columns:minmax(0,1fr)}
.course-student-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.course-student-copy p,.course-student-copy h2{margin:0}
.course-student-copy>.button{margin-top:auto;white-space:normal}
.academy .course-student-copy{justify-content:center;gap:16px}
.academy .course-student-copy p,.academy .course-student-copy h2{margin:0}
.academy .course-student-card>.course-art-image{align-self:center}
@media(min-width:58rem){.academy .course-student-card{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:32px;align-items:stretch}.course-student-card>.course-art-image{margin:0}.course-student-copy{padding:12px 0}}
.academy .course-free-art{display:flex;flex-direction:column;gap:14px;padding:0;background:transparent;border:0}
.course-free-art>.course-art-image{width:100%;max-width:520px}
.account-profile>summary::after{content:none!important}
.account-profile{border:0;margin:0}
@media(min-width:55rem){.academy .course-free-highlight{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
@media(max-width:359px){.academy .course-identity{flex-direction:column;align-items:flex-start}.academy .course-identity>.course-art-image{flex:auto;width:100%;max-width:160px}}

/* Every visible course image shares the price ribbon. Account forms show it
   only in the course information card; their identity strip stays textual. */
.academy .course-catalog-visual>.course-art-image{height:100%;min-height:0;align-self:stretch}
.account-info>.course-catalog-visual{margin:0 0 24px}
.academy .course-free-art>.course-catalog-visual{max-width:520px}
.academy .course-free-compact{grid-template-columns:minmax(0,1fr)}
.academy .course-student-card>.course-catalog-visual{align-self:center;width:100%;margin-bottom:22px}
.academy .course-identity>.course-catalog-visual{flex:0 1 15rem;width:15rem;min-width:0;max-width:100%}
.academy .course-identity-text-only{display:block}
@media(min-width:58rem){.academy .course-student-card>.course-catalog-visual{margin-bottom:0}}
@media(max-width:48rem){.academy .course-identity{flex-direction:column;align-items:flex-start}.academy .course-identity>.course-catalog-visual{flex:auto;width:min(100%,15rem)}}

.account-edit-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.account-edit-actions .text-link{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.account-delete-panel{margin-top:32px;padding:0;border:1px solid #dfb9af;border-radius:7px;background:#fffaf8;overflow:visible}
.account-delete-panel>summary{display:flex;gap:16px;align-items:center;padding:22px 24px;min-height:72px;color:#8e3026;font-size:1rem}
.account-delete-panel>summary strong{display:block;font-size:1.125rem;line-height:1.5}.account-delete-panel>summary small{display:block;font-size:1rem;line-height:1.5;font-weight:400;margin-top:4px;color:#694b44}
.account-delete-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#f7e4df}
.account-delete-content{padding:26px 24px;border-top:1px solid #e4c9c0}.account-delete-content h2{font-size:1.75rem;line-height:1.25;color:#7d2d24;margin:0 0 20px}.account-delete-content p,.account-delete-content li{font-size:1rem;line-height:1.7}.account-delete-content ul{margin:18px 0;padding-left:24px}.account-delete-content li+li{margin-top:10px}.account-delete-content .account-form{margin-top:26px;max-width:48rem}
.account-delete-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 22px;border:1px solid #96392e;border-radius:5px;background:#96392e;color:white;font-size:1rem;line-height:1.5;font-weight:600;white-space:normal}.account-delete-button:hover{background:#7d2d24}.account-delete-button:focus-visible{outline:3px solid #102d43;outline-offset:4px}
@media(max-width:359px){.account-delete-panel>summary,.account-delete-content{padding:20px}.account-delete-panel>summary{gap:12px}}

/* The code-flow button is real HTML, with no iframe overlay or stretched logo. */
.account-google [data-google-code]{min-width:0}
.account-google-continue{box-sizing:border-box;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:48px;padding:12px;border:1px solid #747775;border-radius:4px;background:#fff;color:#1f1f1f;font:500 1rem/1.5 Arial,Helvetica,sans-serif;text-align:center;white-space:normal;cursor:pointer}
.account-google-continue img{display:block;width:20px;height:20px;margin:0;object-fit:contain}
.account-google-continue span{min-width:0;overflow-wrap:normal}

.account-google-continue:hover{background:#f8faff;border-color:#59636c;box-shadow:0 1px 2px #1f1f1f14}
.account-google-continue:focus-visible{outline:3px solid #007b50;outline-offset:3px}
.account-google-continue:disabled{cursor:wait}

.account-verification{display:grid;gap:14px;padding:18px;border:1px solid #c4dbd3;border-radius:5px;background:#f7fbf9;min-width:0}
.account-verification h3{font:700 1.125rem/1.5 Arial,Helvetica,sans-serif;margin:0}
.account-verification [data-google-code]{display:grid;gap:12px;min-width:0}
.account-verification [data-google-status]{line-height:1.5}
.account-verification [data-google-verified]{color:#006b47;font-weight:600}
.activity-optional{padding:16px;border-left:3px solid #007b50;background:#edf6f0;line-height:1.6}
