.platform{background:#f3f2ea;color:#1b3029;min-width:0}.platform #app{max-width:1280px;margin:auto;padding:48px 40px 80px}.platform h1{font-size:clamp(32px,3vw,44px);letter-spacing:-.04em;margin:10px 0 14px}.platform h2{font-size:24px;margin:0 0 16px}.platform p{line-height:1.65}.platform .muted{color:#647267}.platform .eyebrow{font-size:11px;letter-spacing:.15em;font-weight:700;color:#596e56}.platform .login{display:grid;grid-template-columns:1fr 1fr;min-height:480px;max-width:1020px;margin:25px auto;border:1px solid #cbd4c4;border-radius:16px;overflow:hidden}.platform .welcome{background:#1a362e;color:#f0f1de;padding:48px;display:flex;flex-direction:column;justify-content:center}.platform .welcome .eyebrow{color:#b8cbb3}.platform .welcome p{color:#c5d4bd}.platform .login-form{padding:48px;background:#faf9f3;display:flex;flex-direction:column;justify-content:center}.platform label{display:block;font-size:14px;font-weight:600;margin:18px 0 8px}.platform input:not([type=checkbox]),.platform select,.platform textarea{display:block;width:100%;padding:13px 14px;background:#fffef8;border:1px solid #aeba9f;border-radius:5px;font:inherit;color:inherit;margin:8px 0 16px}.platform textarea{min-height:130px}.platform button,.platform .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px}.platform .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.platform .page-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}.platform .card{background:#faf9f3;border:1px solid #cbd4c4;border-radius:10px;padding:26px;margin-bottom:20px}.platform .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.platform .cards .card{margin:0}.platform .card small{font-size:12px;color:#5c6e5d}.platform .course-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.platform .crew-title{font-size:21px;margin:0 0 8px}.platform .badge{font-size:11px;letter-spacing:.04em;padding:6px 9px;border-radius:4px;background:#e5eadb;color:#3d5941}.platform .badge.closed{background:#f1dfc4;color:#674823}.platform .empty{padding:48px;text-align:center;background:#e8ecdf;border-radius:10px}.platform .toolbar{display:flex;gap:10px;margin:24px 0;flex-wrap:wrap}.platform .split{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:24px}.platform .person-choice{display:flex;align-items:center;gap:10px;margin:8px 0;padding:10px;border:1px solid #d3dacb;border-radius:6px;font-weight:400}.platform .person-choice input{accent-color:#385b46}.platform .danger{color:#8d3926}.platform pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7}.platform .answer{border-top:1px solid #d2dacb;padding:14px 0}.platform .answer strong{font-size:12px;color:#51684d}.platform .answer p{margin:6px 0}.platform .evidence img{width:100%;max-height:560px;object-fit:contain;background:#fff}.platform .timeline{display:grid;gap:10px}.platform .timeline button{justify-content:space-between;text-align:left;padding:18px;background:#faf9f3}.platform #notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:720px;padding:16px 24px;background:#19382d;color:#fffbe9;border-radius:8px;z-index:10000;box-shadow:0 8px 36px #152c2633}.platform dialog{max-width:600px}.platform .code{font-family:monospace;font-size:16px;overflow-wrap:anywhere;background:#e7ecd9;padding:18px;border-radius:6px;user-select:all}.platform .back{display:inline-block;margin-bottom:22px;color:#5b705c}.platform .route-preview{width:100%;max-width:500px;background:#e3e8da;border:1px solid #b7c8ac;border-radius:6px}.platform .login .primary{width:100%;margin:10px 0 18px}.platform .legal-note{font-size:12px;color:#6c776b}.platform .subtle{font-weight:400}.platform .feedback{background:#e9eede}.platform details{padding:12px 0}.platform summary{cursor:pointer}.platform .small{font-size:13px}

/* Keep course navigation separate from occasional administration. */
.platform .teaching-resources { margin: 0 0 28px; border-bottom: 1px solid #cbd4c4; padding-bottom: 16px; }
.platform .teaching-resources > summary { font-weight: 600; font-size: 14px; }
.platform .crew-settings { flex-basis: 100%; padding: 0; }
.platform .crew-settings > summary { font-size: 13px; color: #526b59; }
.platform .crew-settings .actions { margin-top: 12px; }
.platform .cards .toolbar { margin: 22px 0 0; }
.platform .page-head h1 { font-size: 34px; }
.platform .welcome h1 { font-size: 37px; line-height: 1.2; }
.platform dialog form { display: block; }
.platform dialog form .actions { margin-top: 24px; }
.platform .login-form h2 { line-height: 1.3; }
@media(max-width: 900px) {
 .platform #app { padding: 30px 24px 50px; }
 .platform .cards, .platform .split { grid-template-columns: 1fr; }
 .platform .page-head, .platform .course-row { flex-wrap: wrap; align-items: flex-start; }
 .platform .welcome, .platform .login-form { padding: 30px; }
 .platform .login { margin: 0; }
}
@media(max-width: 600px) {
 .platform #app { padding: 24px 16px 40px; }
 .platform .login { grid-template-columns: 1fr; }
 .platform .welcome h1 { font-size: 29px; }
 .platform .welcome, .platform .login-form { padding: 24px; }
 .platform .welcome > .small { display: none; }
 .platform .page-head h1 { font-size: 28px; }
 .platform .card { padding: 20px; }
 .platform .topbar { padding: 0 16px; }
 .platform .topbar nav { flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
 .platform .topbar .brand { font-size: 10px; gap: 7px; }
 .platform #notice { width: calc(100% - 32px); }
}
/* One application shell, using the lesson palette and type. */
.main-nav{display:flex;gap:8px;padding:10px max(24px,calc((100vw - 1200px)/2));background:#20392f;position:sticky;top:0;z-index:20;overflow-x:auto}.main-nav[hidden]{display:none}.main-nav a{white-space:nowrap;color:#ecf1e9;text-decoration:none;padding:12px 18px;border-radius:6px}.main-nav a[aria-current]{background:#e28448;color:#152b20;font-weight:700}.role-welcome{max-width:960px;margin:50px auto}.role-heading{max-width:700px;margin-bottom:36px}.role-heading h1{font-size:clamp(32px,4vw,48px)}.role-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px}.role-choices>button{text-align:left;padding:32px;background:#fffdf6;border:1px solid #c9d2c5;box-shadow:0 10px 35px #20392f0a;min-height:270px}.role-choices>button:hover{border-color:#cf743a;background:#fffaf0}.role-choices h2{margin:24px 0 10px}.role-choices p{font-weight:400;line-height:1.6}.role-symbol{font-size:28px;color:#a75d2e}.role-choices>button>span:last-child{display:block;margin-top:25px;color:#8c491f}.mission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.mission-card{background:#fffdf6;border:1px solid #cdd6c9;border-radius:14px;overflow:hidden}.mission-image{display:block;position:relative;height:210px;background:#dce3d6}.mission-image img{height:100%;width:100%;object-fit:cover}.mission-card:first-child .mission-image img{object-fit:contain;padding:15px}.mission-image>span{position:absolute;bottom:12px;left:14px;padding:5px 10px;background:#173429ed;color:#fff;border-radius:4px;font-size:12px}.mission-card-body{padding:24px}.mission-card h2{margin:0}.mission-card h2 a{text-decoration:none;color:inherit}.mission-card-body>p{min-height:48px}.mission-links{display:flex;gap:8px;flex-wrap:wrap}.mission-links a{font-size:13px;padding:8px 12px}.mission-tabs{display:flex;gap:5px;border-bottom:1px solid #b7c5b5;margin-bottom:26px;overflow:auto}.mission-tabs a{padding:14px 20px;white-space:nowrap;text-decoration:none;color:#36513b;border-bottom:3px solid transparent}.mission-tabs a[aria-current]{border-color:#d9773f;font-weight:700}.preparation-intro,.show-card{display:flex;align-items:center;gap:24px;justify-content:space-between}.preparation-intro>div{max-width:720px}.preparation-intro>a,.show-card>a{flex-shrink:0}.part-list{display:grid;gap:10px}.part-list>a,.course-assignment{display:flex;align-items:center;gap:20px;background:#fffdf7;padding:18px 22px;border:1px solid #d5ddcf;border-radius:8px;text-decoration:none;color:inherit}.part-list>a>span:first-child{font-size:22px;color:#a35e30;width:24px;flex-shrink:0}.part-list>a>span:last-child{margin-left:auto}.part-list p{font-size:14px;margin:5px 0 0;color:#61705f}.test-mode{margin-top:26px}.solution-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:30px}.solution-parts{display:flex;flex-direction:column;gap:6px;align-self:start;position:sticky;top:85px}.solution-parts a{padding:12px 15px;text-decoration:none;color:#334d38;border-radius:5px}.solution-parts a[aria-current]{background:#20392f;color:#fff}.solution-detail{background:#fffdf7;border:1px solid #d4ddce;border-radius:12px;padding:28px;min-width:0}.solution-title{display:flex;gap:18px;align-items:start;justify-content:space-between;flex-wrap:wrap}.source-task{margin:16px 0}.solution-answer{border-left:4px solid #db7a40;padding:5px 20px;background:#f8efdf;margin:24px 0}.solution-answer p{font-size:18px}.solution-variant{margin:16px 0;border-top:1px solid #dce1d7;padding-top:14px}.solution-variant>summary{font-weight:650;padding:8px 0}.solution-variant>p{font-size:14px}.solution-notes{margin-top:26px}.admin-heading{margin-top:50px}.course-assignment{justify-content:space-between}.code{overflow-wrap:anywhere}.platform #app:focus{outline:none}.platform :focus-visible{outline:3px solid #b7622c;outline-offset:3px}
@media(max-width:900px){.solution-layout{grid-template-columns:1fr}.solution-parts{position:static;flex-direction:row;overflow-x:auto}.solution-parts a{white-space:nowrap}.preparation-intro,.show-card{align-items:flex-start;flex-direction:column}.mission-image{height:170px}}
@media(max-width:600px){.role-welcome{margin:15px auto}.role-choices,.mission-grid{grid-template-columns:1fr}.role-choices>button{min-height:0;padding:24px}.mission-card-body,.solution-detail{padding:20px}.main-nav{padding:8px 12px;gap:0}.main-nav a{padding:10px 12px;font-size:14px}.mission-tabs a{padding:12px 14px}.mission-card-body>p{min-height:0}.part-list>a{padding:15px;gap:12px}.course-assignment{align-items:flex-start;flex-direction:column}.solution-title .button{width:100%;text-align:center}}
