:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173b42;background:#f4f5ed;--ink:#173b42;--muted:#536f6c;--paper:#f4f5ed;--line:#cedcd0;--navy:#183b43;--lime:#dcecc7;--orange:#bd5734;--teal:#1e7c87}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fffef6;color:var(--ink);font-size:13px;font-weight:700}button:hover:not(:disabled){border-color:#3b817a;background:#e5eee0}button:disabled{cursor:default;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b57d23;outline-offset:3px}input,select,textarea{min-height:44px;border:1px solid #b1c5b4;border-radius:10px;background:#fffefa;padding:10px;color:var(--ink);width:100%;font-size:16px}textarea{resize:vertical;min-height:108px;line-height:1.6}h1,h2,h3,p{margin:0}p{line-height:1.65}h1,h2{letter-spacing:-.045em;line-height:1.15}button.primary,.primary{background:var(--navy);border-color:var(--navy);color:white}button.primary:hover{background:#285459}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:white;padding:12px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 4vw;border-bottom:1px solid var(--line);background:#fffdf4}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:850;text-decoration:none}.brand small{display:block;font-size:8px;letter-spacing:1.7px;margin-top:4px}.brand img{flex-shrink:0}.tools{display:flex;gap:7px;align-items:center}.tools a{font-size:13px;padding:12px;text-decoration:none;min-height:44px}.tools button{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:850;color:#3d8279;margin-bottom:9px}.small{font-size:12px;color:var(--muted);line-height:1.65}main{max-width:1350px;padding:32px 4vw 50px;margin:auto}.welcome{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px}.welcome h1{font-size:clamp(35px,4.5vw,60px);margin:12px 0 22px}.welcome h1 span{color:#437f65}.intro-copy{font-size:18px;color:var(--muted);max-width:600px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 30px}.tags span{font-size:11px;font-weight:700;padding:7px 10px;border-radius:25px;background:#e1ebd7}#team-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;max-width:560px}#team-form label{font-size:12px;font-weight:700}#team-form label[for=grade]{grid-column:2;grid-row:1}#team-form #grade{grid-column:2;grid-row:2}#begin{grid-column:1/-1;margin:6px 0 12px}#resume-copy{margin:8px 0}.cover{width:100%;max-height:580px;object-fit:contain}.welcome-bottom{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:25px;border-top:1px solid var(--line)}.welcome-bottom p{font-size:13px;color:var(--muted)}.welcome-bottom b{display:block;color:var(--ink);font-size:10px;letter-spacing:1px}.lab-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.lab-heading h1{font-size:32px}.saved{display:flex;align-items:center;gap:12px;font-size:11px;color:#447d70}.role-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#e6ecd9;border:1px solid var(--line);border-radius:13px;padding:9px 14px;font-size:12px;margin-bottom:16px}.role-bar #role-copy{margin-left:8px;color:var(--muted)}#steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}#steps button{background:transparent}#steps button.current{background:var(--navy);border-color:var(--navy);color:#fff}#steps button.complete{border-color:#8baa7c;background:#e5efdb}#steps button.current.complete{background:var(--navy);color:white}.lab-grid{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(0,1.05fr);gap:24px;align-items:start}.visual-panel{position:sticky;top:14px;background:#e5eddc;border:1px solid #bed0b5;border-radius:22px;padding:16px;min-width:0}.panel-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:1px;font-weight:800;margin-bottom:10px}.panel-label span:last-child{letter-spacing:0;font-weight:600}.view-switch{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:5px;margin-bottom:10px}.view-switch button,.tool-switch button{font-size:11px;padding:8px}button[aria-pressed=true]{background:#d1e4c8;border-color:#619572}.map-card{background:#f2f5ec;border:1px solid #bfd0b5;border-radius:13px;overflow:hidden}.map-stage{position:relative}.map-stage svg{display:block;width:100%;height:auto;touch-action:manipulation;cursor:crosshair}.map-caption{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px;font-size:10px;background:#fffef5}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}.dot.a{background:#df673b}.dot.b{background:#167d8e}.tool-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.readout{font-size:12px;padding:10px 12px;border-radius:10px;background:#fffdf4;border:1px solid var(--line);line-height:1.6;min-height:43px}.map-instruction{font-size:11px;line-height:1.6;padding:12px 0;color:var(--muted)}.profile{padding:12px;background:#fffdf5;border:1px solid var(--line);border-radius:12px}.profile svg{display:block;width:100%;height:auto}.profile .small{font-size:11px}.model-note{margin-top:12px;font-size:10px}.point-tooltip{position:absolute;background:#fffef8;border:1px solid #91af8a;border-radius:7px;font-size:12px;padding:8px 11px;pointer-events:none;z-index:2}.work-panel{border:1px solid var(--line);border-radius:22px;background:#fffdf6;padding:23px;min-width:0}.task-header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}.task-header h2{font-size:28px}.task-header button{font-size:11px;flex-shrink:0}.task-copy{font-size:14px;color:var(--muted);margin-bottom:20px}.layer-shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.layer-chip{background:#e2edce;box-shadow:0 3px 0 #bfd0aa;padding:12px 6px}.layer-chip.used{box-shadow:none}.stack-zone{border:2px dashed #a6bf92;border-radius:14px;padding:17px;background:#eef3e1;font-size:13px;margin-top:17px;line-height:1.6;text-align:center}.stack-preview{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;justify-content:center}.stack-preview span{font-size:11px;background:#dcebc2;border-radius:5px;padding:5px 8px}.unit-example,.hint-box{background:#e9efde;border-radius:12px;padding:14px;margin-bottom:16px;font-size:13px;line-height:1.6}.unit-example b{font-size:18px;display:block;margin-bottom:5px}.unit-example p{font-size:12px}.hint-box{margin:16px 0 0}.prediction-options,.choice-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}.prediction-options button,.choice-options button{min-height:62px}.prediction-options button span,.choice-options button span{display:block;font-size:11px;font-weight:400;margin-top:4px}.route-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}.route-stat{border:1px solid var(--line);border-left:4px solid #df673b;background:#fffef8;border-radius:12px;padding:12px}.route-stat.b{border-left-color:#167d8e}.route-stat h3{font-size:13px;margin-bottom:9px}.route-stat p{font-size:11px;color:var(--muted)}.route-stat p b{display:block;font-size:20px;color:var(--ink);margin:3px 0 8px}.text-label{font-size:13px;font-weight:700;display:block;margin:16px 0 8px}.text-label small{font-weight:400;display:block;margin-top:4px;font-size:11px;color:var(--muted)}.calc-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.calc-tabs button{min-height:55px}.calc-tabs small{display:block;font-weight:400;font-size:10px;margin-top:3px}.given-data{display:grid;gap:9px;margin:16px 0}.given-data>div{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f0f2e4;border-radius:9px;padding:10px 12px;font-size:12px}.given-data b{font-size:18px}.formula{background:#e5ede0;padding:15px;border-radius:12px;font-size:14px;line-height:1.8;margin:14px 0;font-weight:650;font-variant-numeric:tabular-nums}.formula small{font-size:11px;font-weight:400;display:block;color:var(--muted)}.answer-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:10px 0}.inline-actions{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.inline-actions button{font-size:11px}.criteria{font-size:12px;padding:14px;background:#e6eedd;border-radius:12px;line-height:1.7}.route-editor{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.route-editor summary,.coords-details summary{min-height:44px;padding:10px 0;cursor:pointer;font-size:13px;font-weight:700}.route-editor p{font-size:12px;color:var(--muted);margin:10px 0}.route-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.route-actions button{font-size:11px}.feedback{background:#f9eacb;border-left:4px solid #c39532;border-radius:10px;padding:14px;font-size:13px;margin-top:16px;line-height:1.65}.feedback.success{background:#e1edda;border-color:#62934b}.work-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding-top:17px;border-top:1px solid var(--line)}.work-footer span{font-size:11px;color:var(--muted);max-width:140px}.work-footer .primary{font-size:12px}.lab-footer{display:flex;flex-wrap:wrap;gap:8px;padding:20px 0}.lab-footer button,.import-button{font-size:11px}.import-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:#fffef6;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer}.site-footer{text-align:center;font-size:11px;color:var(--muted);line-height:1.8;padding:25px;border-top:1px solid var(--line)}[hidden]{display:none!important}dialog{width:min(760px,calc(100vw - 30px));max-height:90dvh;overflow:auto;border:1px solid #b2c9ad;border-radius:20px;padding:23px;background:#fffdf5;color:var(--ink);box-shadow:0 15px 70px #183d4040}dialog::backdrop{background:#123a4590;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.dialog-head h2{font-size:25px}.dialog-head button{flex-shrink:0;font-size:22px;padding:0;width:44px;height:44px}.guide-copy p,.guide-copy li,#example-copy li{font-size:14px;line-height:1.8;margin-bottom:14px}.guide-copy h3{font-size:17px;margin:23px 0 12px}.guide-copy ul,#example-copy ol{padding-left:23px}.example-eq{font-size:20px;font-weight:800;background:#e3ecd8;border-radius:12px;padding:14px;margin:14px 0}.example-note{font-size:12px;color:var(--muted);margin-bottom:20px}.map-dialog{width:min(1000px,calc(100vw - 20px))}#large-map svg{display:block;width:100%;height:auto;max-height:55dvh;cursor:crosshair;touch-action:manipulation;background:#f2f5ec;border:1px solid var(--line);border-radius:12px}#large-controls{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.coordinate-form,.calculator-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.coordinate-form label,.calculator-form label{font-size:12px;display:grid;gap:6px}.coordinate-form button,.calculator-form button{grid-column:1/-1}.calculator-form{grid-template-columns:repeat(3,1fr)}.calculator-form p{grid-column:1/-1}.report-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.bitacora h3{font-size:17px;margin:24px 0 10px}.bitacora p{font-size:13px;margin:10px 0}.bitacora .note{white-space:pre-wrap;background:#e9efdd;border-radius:10px;padding:12px}.bitacora svg{width:100%;display:block;margin:12px 0}.data-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.bitacora table,.guide-copy table{min-width:480px;width:100%;border-collapse:collapse;font-size:12px}.bitacora th,.bitacora td,.guide-copy th,.guide-copy td{padding:9px;border-bottom:1px solid var(--line);text-align:left;line-height:1.5}.bitacora .small{font-size:11px}.badge{font-size:12px;border:1px solid #88af71;background:#dfeccf;border-radius:12px;padding:12px;margin:12px 0}body.expanded{overflow:hidden}body.expanded #lab{position:fixed;inset:0;overflow:auto;background:var(--paper);z-index:20;padding:18px max(18px,env(safe-area-inset-right)) 22px max(18px,env(safe-area-inset-left))}body.expanded .topbar{position:fixed;top:0;right:0;z-index:25;background:transparent;border:0;padding:8px}body.expanded .topbar .brand,body.expanded .tools #guide,body.expanded .tools a{display:none}body.expanded #fullscreen{box-shadow:0 2px 12px #123b4320}body.expanded #fullscreen span{display:none}body.expanded .lab-heading{padding-right:52px}body.expanded .saved button{display:none}#lab:fullscreen{position:relative;overflow:auto;background:var(--paper);padding:20px 3vw}#lab:fullscreen .lab-heading{padding-right:60px}.fullscreen-exit{display:none;position:fixed;top:10px;right:10px;z-index:30}#lab:fullscreen .fullscreen-exit{display:block}#terrain-map .contour-label{font-size:24px}#terrain-map .summit-label{font-size:25px}
@media(max-width:1000px){main{padding:24px 3vw}.lab-grid{gap:16px;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr)}.work-panel{padding:18px}.saved{flex-direction:column;align-items:end;font-size:10px;gap:5px}.role-bar #role-copy{display:none}.welcome h1{font-size:43px}.topbar{padding:15px 3vw}.brand{font-size:19px}}
@media(max-width:730px){.welcome{grid-template-columns:1fr;gap:24px}.cover{max-height:430px;grid-row:2}.welcome h1{font-size:43px}.intro-copy{font-size:16px}.lab-grid{grid-template-columns:1fr}.visual-panel{position:static;padding:12px}.lab-heading h1{font-size:24px}.lab-heading .eyebrow{font-size:9px}.saved{max-width:135px;font-size:9px}.saved button{font-size:10px}.task-header h2{font-size:23px}.task-copy{font-size:13px}.work-footer{flex-direction:column;align-items:stretch}.work-footer span{max-width:none}.tools #fullscreen span{display:none}.brand{font-size:18px}.brand img{width:34px;height:34px}.brand small{font-size:7px;letter-spacing:1px}.tools button,.tools a{font-size:11px;padding:8px 10px}.topbar{gap:8px}.tools{gap:5px}#steps{gap:5px}#steps button{font-size:11px;padding:7px 5px}.role-bar{font-size:11px}.role-bar button{font-size:11px;padding:6px 9px}.welcome-bottom p{font-size:12px}.welcome-bottom b{font-size:9px}.calculator-form{grid-template-columns:1fr}.calculator-form button{grid-column:1}#terrain-map .contour-label{font-size:36px}#terrain-map .contour-label[data-level="10"],#terrain-map .contour-label[data-level="30"],#terrain-map .contour-label[data-level="50"],#terrain-map .contour-label[data-level="70"]{display:none}#terrain-map .summit-label{font-size:32px}#map-markers text{font-size:31px}#map-markers text:first-of-type{text-anchor:start}#map-markers text:last-of-type{text-anchor:end}#map-chrome text{font-size:28px}#profile-chart text{font-size:23px}.view-switch button,.tool-switch button{font-size:10px}.visual-panel .model-note{font-size:10px}body.expanded #lab{padding:14px}.dialog-head h2{font-size:22px}.site-footer{font-size:10px}dialog{padding:18px}}
@media(max-width:365px){.brand small{display:none}.brand{font-size:15px;gap:6px}.brand img{width:29px;height:29px}.tools button,.tools a{padding:7px 8px;font-size:10px}.welcome h1{font-size:36px}#team-form{grid-template-columns:1fr}#team-form label[for=grade]{grid-column:1;grid-row:3}#team-form #grade{grid-column:1;grid-row:4}.task-header h2{font-size:20px}.task-header button{padding:8px;font-size:10px}.work-panel{padding:14px}.route-stat{padding:10px}.route-stat p b{font-size:18px}#steps button{font-size:10px}.saved{max-width:115px}}
@media(max-height:500px) and (min-width:731px){.visual-panel{position:static}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
@media print{body>*{display:none!important}body:has(#report-dialog[open]) #report-dialog{display:block!important;position:static;max-height:none;width:100%;border:0;box-shadow:none;padding:0;margin:0;background:white}body:has(#report-dialog[open]){background:white}.report-actions,.dialog-head button{display:none!important}.bitacora table,.guide-copy table{min-width:0;font-size:10px}.data-scroll{overflow:visible;border:0}.bitacora svg{max-height:270px}.bitacora tr,.bitacora .note{break-inside:avoid}@page{size:A4;margin:15mm}}
#large-map{max-height:55dvh;overflow:auto;overscroll-behavior:contain}#large-map .contour-label{font-size:28px}#large-map .summit-label{font-size:28px}dialog .dialog-head{position:sticky;top:0;background:#fffdf5;z-index:2;padding-bottom:6px}#profile-chart text{font-size:27px}
@media(max-width:730px){#large-map svg{min-width:620px;max-height:none}#large-map .contour-label{font-size:30px}#large-map .contour-label[data-level="10"],#large-map .contour-label[data-level="30"],#large-map .contour-label[data-level="50"],#large-map .contour-label[data-level="70"]{display:none}#large-map text{font-size:29px}#profile-chart text{font-size:28px}}
.answer-row{grid-template-columns:44px minmax(0,1fr) auto}#sign-toggle{font-size:22px;padding:0}

.profile-large{overflow:auto;max-height:55dvh;margin:14px 0}.profile-large svg{display:block;width:100%;height:auto}.profile-large svg text{font-size:26px}@media(max-width:730px){.profile-large svg{min-width:620px}}

.grade-summary{display:flex;gap:6px 16px;flex-wrap:wrap;padding:12px 15px;border:1px solid var(--line,#cbdedb);border-radius:14px;background:#e8f2ea;margin:-6px 0 18px;font-size:13px;color:var(--ink,#163f4b)}.grade-summary span{font-size:12px}.grade-preview{font-size:13px;color:var(--green,#0e6572);margin:12px 0}.grade-task{border:1px solid #8fb7a6;background:#eef7ee;border-radius:16px;padding:18px;margin:0 0 22px}.grade-task h3{font-size:21px;line-height:1.25;margin:5px 0 13px}.grade-task p{font-size:14px}.grade-given{background:white;border-radius:10px;padding:12px;white-space:pre-line}.grade-entry{display:flex;align-items:center;gap:8px;margin:7px 0 10px}.grade-entry input{font-size:16px!important;min-width:0;flex:1}.grade-entry span{font-size:13px;white-space:nowrap}.grade-entry button{min-width:44px;padding:8px}.grade-task>button{width:100%;min-height:44px}.grade-help{margin:10px 0}.grade-help summary{min-height:44px;cursor:pointer;padding:10px;font-size:13px;font-weight:750}.grade-help ol{padding-left:24px;font-size:13px}.grade-help li{margin:7px 0}.grade-nav{display:flex;justify-content:space-between;gap:8px;align-items:center}.grade-nav button{min-height:44px}.grade-task #grade-status{font-size:13px;margin:12px 0 0}.grade-report{margin-top:26px}.grade-report p{white-space:pre-line}#grade-example-dialog{max-height:calc(100dvh - 24px);overflow:auto}@media(max-width:730px){.grade-task{padding:14px}.grade-summary{display:block}.grade-summary span{display:block;margin-top:4px}.grade-entry{flex-wrap:wrap}.grade-entry input{width:50%}.grade-nav button{font-size:12px;padding:9px}.grade-task h3{font-size:20px}}@media print{.grade-task,.grade-summary,.grade-preview{display:none}.grade-report{display:block}}

input,select,textarea{font-size:16px}
