/* Forest Haven official palette; unmodified OFL fonts are self-hosted. */
@font-face{font-family:Cabin;src:url('/static/fonts/Cabin.ttf') format('truetype');font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:Cantarell;src:url('/static/fonts/Cantarell-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cantarell;src:url('/static/fonts/Cantarell-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--forest:#2f4152;--green:#405b72;--secondary:#6a8299;--sage:#94a998;--paper:#f3f6f5;--line:#d8e1e5;--ink:#2f4152;--muted:#52677a;--amber:#765115}
body{font-family:Cantarell,system-ui,sans-serif;line-height:1.55;font-synthesis:none}
h1,h2,h3,.eyebrow,.stat strong{font-family:Cabin,Arial,sans-serif}
h1{font-weight:600;font-size:42px;line-height:1.15;letter-spacing:-.015em}
h2{font-size:24px;font-weight:600}h3{font-weight:600}.stat strong{font-weight:500}
button,.button{font-family:Cantarell,system-ui,sans-serif;font-weight:700;border-color:var(--secondary)}
.primary{background:var(--forest);border-color:var(--forest);color:#fff}.primary:hover{background:#405b72}
button:hover,.button:hover{background:#e8eef3}.primary:hover{background:#405b72}
.top{display:grid;grid-template-columns:auto 1fr auto;gap:24px;padding:12px max(5vw,20px);background:#fff;color:var(--forest);border-top:5px solid var(--sage);border-bottom:1px solid var(--line)}
.brand{display:block;line-height:0;letter-spacing:normal;width:248px;max-width:100%}
.official-logo{display:block;width:100%;height:auto;object-fit:contain;aspect-ratio:1106/384}
.staff-caption{border-left:1px solid var(--secondary);padding-left:24px;line-height:1.4}
.staff-caption strong{display:block;font:600 19px/1.4 Cabin,Arial,sans-serif}.staff-caption span{display:block;font-size:12px;color:var(--muted)}
.account{color:var(--muted);font-size:12px}.preview{background:#e8eef3;color:var(--forest);border-bottom:1px solid #c5d2dc}
main{padding-top:28px}.heading{margin-bottom:24px}.eyebrow{color:var(--forest);letter-spacing:.1em}
nav{background:#fff;border-radius:8px 8px 0 0;border:1px solid var(--line);border-bottom:2px solid var(--line);padding:0 8px;gap:4px}
.tab{font-family:Cabin,Arial,sans-serif;font-weight:600;color:var(--muted)}.tab.active{color:var(--forest);border-bottom-color:var(--forest);background:#edf2f5}
.site-card,.panel,.stat{box-shadow:0 2px 6px #2f415208}.stat{border-top:3px solid var(--sage)}
.pill{background:#e7eee8;color:var(--forest)}.pill.hold{background:#f5ead4;color:#765115}.reading{font-weight:700;font-variant-numeric:tabular-nums}
input,select,textarea{border-color:var(--secondary)}.table-scroll table{font-size:14px}th{color:var(--muted);font-family:Cabin,Arial,sans-serif;font-weight:600}th,td{padding-top:12px;padding-bottom:12px}
.chart-scroll svg{font-family:Cantarell,system-ui,sans-serif}.chart-bar{fill:var(--forest)}.chart-axis{fill:var(--muted)}.chart-gap{fill:#edf1f4;stroke:var(--secondary)}.chart-grid{stroke:var(--line)}
.photo-picker,.shared-photo{background:#f5f8f7}.photo-picker legend{font-family:Cabin,Arial,sans-serif}.photo-card:hover{border-color:var(--forest)}
footer{align-items:center;gap:16px;font-size:12px}.platform-credit{font-size:11px;letter-spacing:.03em;color:var(--muted)}
@media(max-width:600px){.top{grid-template-columns:1fr auto;gap:10px 16px;padding:12px 18px}.brand{width:236px;max-width:calc(100vw - 110px)}.staff-caption{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:8px 0 0}.staff-caption strong{font-size:16px}.staff-caption span{font-size:11px}.account{font-size:11px}h1{font-size:35px}.heading h1{font-size:35px}h2{font-size:22px}main{padding-top:22px}.tab{padding:13px 12px}.table-scroll table{font-size:13px}footer{align-items:start;flex-direction:column;gap:4px}.stat span{font-size:12px}}

.photo-card.retired{opacity:1;background:#f1f3f4;border-style:dashed}.photo-card.retired img{opacity:.6}dialog::backdrop{background:#2f415280}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--secondary)}
