/* Base Camp, app-shaped. 6 September 2026. Shared by both editions. */
:root{--ink:#102133;--paper:#F5F7F9;--card:#FFFFFF;--contour:#D3DBE3;--alpine:#1D3F63;--alpine-deep:#14304C;--survey:#C28B2C;--muted:#5B6B7C;--err:#A33A1E;--display:"Fraunces",Georgia,serif;--body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:980px;margin:0 auto;padding:0 18px}a{color:var(--alpine)}
.mast{background:var(--card);border-bottom:1px solid var(--contour)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.sls-mk{width:34px;height:29px;flex:none}.sls-tx{display:flex;flex-direction:column;line-height:1.05}
.sls-nm{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.01em}
.sls-sb{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}
.sitenav{display:flex;flex-wrap:wrap;gap:20px}
.sitenav a{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);text-decoration:none;position:relative;padding-bottom:3px}
.sitenav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--survey);opacity:0;transition:opacity .15s}
.sitenav a:hover::after,.sitenav a:focus-visible::after,.sitenav a.here::after{opacity:1}
main{padding:26px 0 70px}
.eyebrow{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0}
h1{font-family:var(--display);font-weight:600;font-size:clamp(26px,4vw,36px);line-height:1.14;margin:.2em 0 16px;letter-spacing:-.015em;text-wrap:balance}
h2{font-family:var(--display);font-weight:600;font-size:clamp(19px,2.6vw,24px);line-height:1.2;margin:0;text-wrap:balance}
h3{font-family:var(--display);font-weight:600;font-size:18px;line-height:1.25;margin:0}
p{margin:0}.small{font-size:14px;color:var(--muted);line-height:1.5}
.k{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--survey)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tile{font:inherit;text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--contour);padding:12px 12px 10px;display:flex;flex-direction:column;gap:3px;position:relative;color:var(--ink);border-radius:6px}
.tile.bn{border-color:var(--survey);border-width:2px;padding:11px 11px 9px}
.tile.cur{background:#FBF5EA}
.tile:hover,.tile:focus-visible{border-color:var(--survey);outline:none}
.tile .g{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.tile .n{font-family:var(--display);font-size:30px;font-weight:600;line-height:1}
.tile .bd{font-size:11px;font-weight:700}
.tile .fl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--survey)}
.tile .dc{position:absolute;top:10px;right:10px;font-size:11px;font-weight:600;color:var(--muted)}
.b0{color:var(--err)}.b1{color:#B07A1F}.b2{color:#3F6B4E}.b3{color:#2F6B4F}
.nx{background:var(--ink);color:#fff;border-radius:6px;padding:20px 22px;margin:12px 0 18px;display:flex;flex-direction:column;gap:10px}
.nx .k{color:#E0B565}.nx h2{color:#fff;font-size:clamp(20px,2.8vw,26px)}
.nx .btn{background:var(--survey);border-color:var(--survey);color:var(--ink)}
.nx .btn:hover{background:#D9A441;border-color:#D9A441}
.nx .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.nx .btn.ghost:hover{border-color:#fff}
.nx .note{color:#C9D3DD}.nx .note a{color:#E0B565}
.row{background:var(--card);border:1px solid var(--contour);border-radius:6px;margin-top:8px}
.row.on{border-color:var(--survey)}
.rh{font:inherit;width:100%;text-align:left;cursor:pointer;background:none;border:0;padding:15px 18px;display:flex;align-items:center;gap:12px;color:var(--ink);font-family:var(--display);font-weight:600;font-size:18px;line-height:1.25}
.rh span{flex:1}.rh em{font-style:normal;font-family:var(--body);font-size:12px;font-weight:600;color:var(--muted)}
.rh i{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;flex:none;margin-right:4px}
.row.on .rh i{transform:rotate(-135deg);border-color:var(--survey)}
.rh:hover span,.rh:focus-visible span{color:var(--alpine)}.rh:focus-visible{outline:2px solid var(--survey);outline-offset:-2px;border-radius:6px}
.rb{padding:16px 18px 20px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--contour)}
.rb p{max-width:64ch}
.rb[hidden]{display:none}
.st{border:1px solid var(--contour);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--paper)}
.st.open{border-color:var(--survey);background:#FBF5EA}
.st.done{opacity:.75}
.st .k{color:var(--muted)}.st.open .k{color:var(--survey)}
.card{background:var(--card);border:1px solid var(--contour);border-radius:6px;padding:22px 20px;display:flex;flex-direction:column;gap:14px;margin-top:10px}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.btn{font:inherit;font-size:14.5px;font-weight:600;padding:11px 18px;border:1px solid var(--alpine);background:var(--alpine);color:#fff;cursor:pointer;text-decoration:none;display:inline-block;border-radius:4px}
.btn:hover{background:var(--alpine-deep);border-color:var(--alpine-deep)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--contour);font-weight:500}
.btn.ghost:hover{border-color:var(--survey);background:transparent}
.btn:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--survey);outline-offset:3px}
.bk{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.bk-c{padding:14px 14px 12px;border-radius:5px;background:rgba(16,33,51,.035);box-shadow:inset 0 0 0 1px rgba(16,33,51,.1)}
.bk-c.now{box-shadow:inset 0 0 0 2px var(--survey)}
.bk-n{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8A6A22;margin-bottom:4px}
.bk-h{margin:0 0 4px;font-size:17px}
.bk-l{margin:0 0 8px;font-size:13.5px;line-height:1.5;color:#4a5260}
.bk-u{list-style:none;margin:0;padding:0}.bk-u li{margin:0 0 6px}
.bk-u a{font-size:13.5px;color:#2A3E56;text-decoration:none;border-bottom:1px solid rgba(42,62,86,.22);padding-bottom:1px}
.bk-u a:hover{color:#8A6A22}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:640px}
.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1/-1}
.field label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.field input,.field textarea{font:inherit;font-size:15px;padding:10px 12px;background:var(--card);color:var(--ink);border:1px solid var(--contour);border-radius:4px}
.field textarea{min-height:90px;resize:vertical}
.sig{border-left:3px solid var(--survey);background:var(--paper);padding:14px 18px;display:flex;flex-direction:column;gap:8px}
.sig p{font-style:italic;font-size:15.5px;line-height:1.55}.sig .who{font-size:13px;color:var(--muted)}
.coach{margin:0 0 14px;padding:12px 16px;border-radius:5px;font-size:14px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:rgba(217,164,65,.14);box-shadow:inset 0 0 0 1px rgba(217,164,65,.5)}
.coach a{color:#8A6A22;font-weight:600}
.note{padding:8px 0;border-top:1px solid var(--contour)}.note span{color:var(--muted)}.note div{white-space:pre-wrap;margin-top:3px;color:var(--ink)}
.acct{margin-top:22px;padding:12px 16px;border-radius:5px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:rgba(16,33,51,.04);box-shadow:inset 0 0 0 1px rgba(16,33,51,.1);color:var(--muted)}
.acct em{color:#B07A1F;font-style:normal}.acct .links{display:flex;gap:14px;flex-wrap:wrap}.acct a{color:var(--alpine);text-decoration:none;font-weight:600}
.install{margin-top:8px;font-size:13.5px;color:var(--muted)}.install a{color:var(--alpine);font-weight:600}
footer.foot{background:var(--card);border-top:1px solid var(--contour);padding:22px 0 30px}
footer.foot .wrap{display:flex;flex-direction:column;gap:8px}
footer.foot .fb{font-family:var(--display);font-size:16px;font-weight:600}
footer.foot p{font-size:12px;color:var(--muted);line-height:1.5;max-width:78ch}
@media(max-width:760px){
  .sitenav{display:none}main{padding:16px 0 50px}.wrap{padding:0 12px}
  .tiles{grid-template-columns:1fr 1fr;gap:8px}.tile .n{font-size:28px}
  .nx{padding:16px 16px}.rh{padding:14px 14px;font-size:17px}.rb{padding:14px 14px 16px}
  .form{grid-template-columns:1fr}.card{padding:18px 16px}
  .btn{padding:12px 16px;font-size:15px}
}
@media(display-mode:standalone){.mast{display:none}main{padding-top:10px}}
@media print{.mast,.foot,.nx .btnrow,.btnrow,.acct,#sls-strip{display:none!important}.rb[hidden]{display:block!important}.row{border:0}}

/* the app frame: no site menu, no legal footer, a bar of five tabs at the foot */
.sitenav,footer.foot{display:none}
body{padding-bottom:84px}
main{padding:22px 0 30px}
#bc-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.96);border-top:1px solid var(--contour);backdrop-filter:saturate(1.2) blur(8px);padding-bottom:env(safe-area-inset-bottom)}
.tabbar{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr)}
.tab{font:inherit;background:none;border:0;cursor:pointer;padding:9px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.02em}
.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tab.shelf svg,.tab svg rect{fill:none}
.tab.on{color:var(--alpine)}.tab.on::after{content:"";width:22px;height:3px;border-radius:2px;background:var(--survey);margin-top:2px}
.tab:focus-visible{outline:2px solid var(--survey);outline-offset:-2px;border-radius:6px}
.closed{background:#FBF1EC;border:1px solid #E3B7A6;border-radius:6px;padding:16px 18px;margin:10px 0 16px;display:flex;flex-direction:column;gap:8px}
.closed b{color:var(--err);font-family:var(--display);font-size:19px}
.legal{margin-top:18px;font-size:11.5px;color:var(--muted);line-height:1.5;max-width:78ch}
.stack{display:flex;flex-direction:column;gap:10px;margin-top:12px}
h1{margin-bottom:12px}
@media(min-width:761px){#bc-tabbar{background:var(--card)}.tab{flex-direction:row;gap:8px;font-size:13.5px;padding:12px 8px}.tab.on::after{display:none}.tab.on{box-shadow:inset 0 -3px 0 var(--survey)}}
@media(display-mode:standalone){main{padding-top:14px}}
@media print{#bc-tabbar{display:none}}

/* the scorecard tab */
.tblw{overflow-x:auto;margin-top:6px}
.tbl{border-collapse:collapse;width:100%;font-size:14px;min-width:420px}
.tbl th,.tbl td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--contour);white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.tbl tr.plan td{color:var(--muted);font-style:italic;background:var(--paper)}
.tbl td.bad{color:var(--err);font-weight:700}
