@import url('/portal.css');
:root{--ink:#193a3b;--muted:#526561;--paper:#f6f4ed;--line:#d6ded4;--accent:#b74f35}body{background:var(--paper);color:var(--ink);font:16px/1.65 system-ui;margin:0}*{box-sizing:border-box}a{color:inherit}button,input,textarea{font:inherit}button,a.button{cursor:pointer}button{border:1px solid #b8c8bd;background:#fff;border-radius:8px;padding:9px 15px;color:var(--ink)}button:hover{background:#e9efe6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b94f2f;outline-offset:3px}.primary{background:#194d46;color:#fff;border-color:#194d46}.primary:hover{background:#27675e}button:disabled{opacity:.6;cursor:wait}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:9;background:white;padding:10px}.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100vh}#sidebar{grid-row:1/3;padding:25px 18px;background:#e9ede4;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow:auto}.brand{font:32px Georgia,serif;text-decoration:none;display:block;margin-bottom:24px}.brand span{font-style:italic}.overline{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:750;color:#4d6b61}.course-name{font:29px/1.1 Georgia,serif;margin:10px 0}.part-switch{display:flex;gap:7px;margin:18px 0}.part-switch a{padding:5px 9px;border:1px solid #b8c8bd;border-radius:6px;font-size:13px;text-decoration:none}.part-switch .active{background:#244f46;color:white}.day-link{display:grid;grid-template-columns:26px 1fr 16px;gap:4px;padding:9px 8px;text-decoration:none;font-size:13px;line-height:1.4;border-radius:7px;margin:2px 0}.day-link:hover,.day-link.active{background:#fff}.day-link.active{box-shadow:inset 3px 0 #b64f35}.day-link .number{font-variant-numeric:tabular-nums;color:#567262}.sidebar-links{display:flex;flex-wrap:wrap;gap:9px;font-size:13px;margin-top:18px}.account-course-bar{padding:12px 28px;border-bottom:1px solid var(--line);background:#fff;font-size:12px;grid-column:2}.account-course-bar>div{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.account-course-bar p{margin:5px 0}.account-course-bar button{padding:3px 9px;font-size:12px}.course-sync-line{margin-top:5px}.course-recovery{padding:12px;background:#fff0ce}#main{width:100%;max-width:1260px;margin:auto;padding:40px clamp(20px,5vw,64px) 70px;min-width:0;align-self:start;outline:none}h1{font:clamp(32px,4vw,55px)/1.09 Georgia,serif;letter-spacing:-.035em;margin:10px 0 18px}h2{font:29px/1.2 Georgia,serif;letter-spacing:-.025em;margin-top:0}h3{font:700 19px/1.3 system-ui}.intro{font-size:18px;max-width:820px;color:var(--muted)}.meta{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.pill{font-size:12px;padding:5px 10px;border-radius:20px;background:#e8eee4}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding:0 0 12px;flex-wrap:wrap;margin:26px 0}.tabs a{padding:6px 12px;text-decoration:none;border-radius:6px;font-size:14px}.tabs a.active{background:#244f46;color:#fff}.card{padding:clamp(18px,3vw,30px);background:#fff;border:1px solid var(--line);border-radius:12px;margin:20px 0;box-shadow:none}.card p:last-child{margin-bottom:0}.card.lesson{scroll-margin-top:20px}.lesson-number{font:italic 19px Georgia,serif;color:#ae4e35}.code,pre{background:#153839;color:#f3f7ee;white-space:pre;overflow:auto;border-radius:9px;padding:22px;font:14px/1.6 Consolas,monospace;max-width:100%;tab-size:4}.explain{border-left:3px solid #b9ceb8;padding-left:16px;color:#3d5a51}.check{display:flex;align-items:flex-start;gap:10px;margin:20px 0;font-size:14px}.check input{margin-top:6px;accent-color:#236753;width:18px;height:18px}.answer{display:block;width:min(100%,630px);padding:11px 14px;border:1px solid #aabfb0;border-radius:7px;margin:8px 0;font:16px Consolas,monospace}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.feedback{min-height:25px;margin:10px 0;color:#765431}.feedback.success{color:#16703e;font-weight:650}details{margin:15px 0}summary{cursor:pointer;font-weight:600}.note{padding:16px 20px;border-radius:8px;background:#edf2e8;font-size:14px}.subtle{color:var(--muted);font-size:13px}.objectives{padding-left:20px}.next{display:flex;justify-content:space-between;gap:15px;margin-top:35px;border-top:1px solid var(--line);padding-top:20px}.quiz-choice{display:flex;gap:12px;padding:10px;border:1px solid var(--line);margin:7px 0;border-radius:7px}.quiz-choice:has(input:checked){background:#ecf2e7}.quiz-choice input{accent-color:#235f4c}.quiz-result{background:#eef2e9;border-radius:8px;padding:14px;margin-top:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid .card{margin:0}.day-tile{display:block;text-decoration:none}.day-tile h3{margin:8px 0}.progress{height:7px;background:#dbe3d5;border-radius:8px;margin:12px 0;overflow:hidden}.progress span{display:block;height:100%;background:#b9553b}.editor{width:100%;min-height:190px;border:1px solid #b8c7bc;padding:15px;border-radius:8px;font:14px/1.5 Consolas,monospace;resize:vertical}.recording{border-top:1px solid var(--line);padding-top:15px}.error{border:1px solid #b34827;padding:18px;background:#fff3df}.screen-reader{position:absolute;left:-9999px}.download{display:inline-block;background:#244f46;color:white;text-decoration:none;padding:11px 16px;border-radius:8px}.lesson-anchor{float:right;font:13px system-ui;color:#52685f}.schedule-time{font:24px Georgia,serif;color:#ad4f37}.completion-list{padding-left:20px}.completion-list li{margin:8px 0}.welcome-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:25px}.focus-mode #sidebar,.focus-mode .account-course-bar{display:none}.focus-mode .app-shell{display:block}.focus-mode #main{max-width:1020px}.focus-mode [data-focus]{position:fixed;right:12px;top:12px;z-index:9}.focus-button{font-size:12px;padding:5px 10px}.lesson p{max-width:78ch}[hidden]{display:none!important}@media(max-width:980px){.app-shell{grid-template-columns:225px minmax(0,1fr)}#sidebar{padding:20px 12px}#main{padding:28px 24px}.grid,.welcome-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}#sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:18px}.brand{margin:0 0 10px}.course-name{font-size:24px}.part-switch{margin:10px 0}.day-nav{display:flex;overflow:auto;gap:4px;padding:6px 0}.day-link{flex:0 0 150px;min-height:57px}.account-course-bar{padding:12px 18px}#main{padding:28px 18px}h1{font-size:37px}.tabs{gap:0}.tabs a{padding:6px 9px}pre{font-size:12px;padding:15px}}@media print{#sidebar,.account-course-bar,.tabs,.next,.focus-button{display:none}.app-shell{display:block}#main{padding:0;max-width:none}.card{break-inside:avoid;box-shadow:none}pre{white-space:pre-wrap;background:#f5f5f5;color:black}body{font-size:11pt}}

.answer{resize:vertical;min-height:46px}.focus-mode #main{padding-top:65px}
/* Functional concept explorers for the two independent Java courses. */
.course-explorer{margin-top:26px}.explorer-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.explorer-control{display:grid;grid-template-columns:70px 1fr 35px;gap:12px;align-items:center;margin:22px 0;font-size:16px}.explorer-control input{width:100%;accent-color:#334bb1}.color-swatch{height:135px;border:1px solid #536874;border-radius:8px}.course-explorer canvas{width:100%;height:auto;border-radius:8px;border:1px solid #c3cebf}.course-explorer pre{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.course-explorer output{font-variant-numeric:tabular-nums}body[data-course="java-color"] .part-switch a.active{background:#334bb1;color:white}body[data-course="java-minecraft"] .part-switch a.active{background:#254537;color:white}.course-explorer button{min-height:44px}@media(max-width:750px){.explorer-grid{grid-template-columns:1fr}.explorer-control{grid-template-columns:70px 1fr 35px}.course-name{overflow-wrap:break-word}}

.science-explorer .explorer-control{grid-template-columns:minmax(105px,1fr) minmax(70px,1fr) 36px;gap:8px}.science-explorer canvas{max-width:100%}

/* Keep Java beside the reading, with a bottom panel on narrow screens. */
#java-dock{background:#e3ede8;border-left:1px solid #b8c8bd;min-width:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;grid-column:3;grid-row:1/4}.java-dock-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#143c3a;color:white;font-size:16px}.java-dock-heading button{font-size:14px;padding:5px 10px;min-height:36px}#java-dock>iframe{width:100%;flex:1;min-height:0;border:0;background:#f4f7f5}#java-dock.collapsed>iframe{display:none}#java-dock.collapsed{height:auto}
@media(min-width:1100px){.java-docked .app-shell{grid-template-columns:200px minmax(320px,1fr) minmax(420px,46%)}.java-docked #main{grid-column:2;padding:28px 24px;max-width:none}.java-docked .grid,.java-docked .welcome-grid{grid-template-columns:1fr}.java-docked.java-dock-hidden .app-shell{grid-template-columns:200px minmax(0,1fr)}.java-dock-hidden #java-dock{position:fixed;right:12px;bottom:12px;top:auto;z-index:12;border-radius:8px;overflow:hidden}.focus-mode.java-docked:not(.java-dock-hidden) .app-shell{display:grid;grid-template-columns:minmax(320px,1fr) minmax(420px,48%)}.focus-mode.java-docked:not(.java-dock-hidden) #main{grid-column:1}.focus-mode.java-docked:not(.java-dock-hidden) #java-dock{grid-column:2}}
@media(max-width:1099px){.java-docked:not(.java-dock-hidden){padding-bottom:56vh}#java-dock{position:fixed;bottom:0;top:auto;left:0;right:0;height:55vh;min-height:300px;z-index:12;border-top:2px solid #143c3a;border-left:0;box-shadow:0 -5px 18px #143c3a22}#java-dock.collapsed{min-height:0;height:auto;left:auto;right:10px;bottom:10px;border-radius:8px}.java-dock-heading{padding:5px 12px}.java-docked #main{scroll-margin-bottom:56vh}}
@media print{#java-dock{display:none!important}.java-docked .app-shell{display:block}.java-docked{padding-bottom:0!important}}
