:root { color-scheme: light; --ink:#17251d; --muted:#69766e; --line:#dfe7e1; --leaf:#28734b; --wash:#f4f7f3; --paper:#fff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--wash); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.shell { width:min(1120px,calc(100% - 32px)); margin-inline:auto; }
.site-header { background:var(--paper); border-bottom:1px solid var(--line); }
.brand { height:72px; display:flex; align-items:center; gap:12px; }
.brand-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:var(--leaf); color:white; font:700 20px Georgia,serif; }
.brand div { display:flex; flex-direction:column; line-height:1.2; }.brand span:last-child { color:var(--muted); font-size:12px; }
.heading { display:flex; justify-content:space-between; align-items:end; gap:20px; padding:48px 0 28px; }
.view-tabs { display:flex; gap:4px; margin:16px 0 14px; }.view-tabs a { border-radius:8px; padding:8px 12px; color:var(--muted); font-size:14px; font-weight:700; text-decoration:none; }.view-tabs a:hover { background:#eaf1eb; color:var(--ink); }.view-tabs a[aria-current="page"] { background:var(--leaf); color:white; }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:6px; font:700 clamp(34px,5vw,48px) Georgia,serif; } h2 { margin:0; font:700 25px Georgia,serif; } h3 { margin:4px 0 0; font:700 22px Georgia,serif; }
.eyebrow { margin-bottom:5px; color:var(--leaf); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.muted,.empty { color:var(--muted); }
.status { white-space:nowrap; border:1px solid var(--line); border-radius:999px; background:white; padding:8px 12px; color:var(--muted); font-size:13px; }.status i { display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:#45a66d; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px; }.metrics article,.panel { background:var(--paper); border:1px solid var(--line); border-radius:16px; box-shadow:0 5px 22px rgba(28,57,39,.04); }.metrics article { min-height:130px; padding:22px; display:flex; flex-direction:column; justify-content:space-between; }.metrics span { color:var(--muted); font-size:13px; }.metrics strong { font:700 38px Georgia,serif; }.metrics .text-value { font-size:22px; }
.dashboard-grid { display:grid; grid-template-columns:300px 1fr; align-items:start; gap:24px; padding-bottom:60px; }.panel-title { padding:22px; border-bottom:1px solid var(--line); }.species-list>div { display:flex; justify-content:space-between; gap:16px; padding:14px 22px; border-bottom:1px solid var(--line); }.species-list>div:last-child { border:0; }.species-list strong { color:var(--leaf); }.empty { padding:22px; }
.visit-list { padding:10px 20px; }.visit-card { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }.visit-card:last-child { border:0; }.visit-image { height:120px; display:grid; place-items:center; overflow:hidden; border-radius:12px; background:#e9eee9; color:var(--muted); font-size:12px; }.visit-image img { width:100%; height:100%; object-fit:cover; }.visit-top { display:flex; justify-content:space-between; align-items:start; gap:16px; }.visit-top time { color:var(--muted); font-size:13px; }.duration { border-radius:8px; background:#eaf4ed; padding:6px 9px; color:var(--leaf); font-size:12px; font-weight:700; }.visit-content dl { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0 0; }.visit-content dl div { display:flex; flex-direction:column; }.visit-content dt { color:var(--muted); font-size:11px; }.visit-content dd { margin:4px 0 0; font-weight:700; font-variant-numeric:tabular-nums; }.error-panel { max-width:700px; margin:80px auto; padding:40px; border:1px solid var(--line); border-radius:16px; background:white; }
@media (max-width:800px) { .metrics { grid-template-columns:repeat(2,1fr); }.dashboard-grid { grid-template-columns:1fr; }.species-list { display:grid; grid-template-columns:repeat(2,1fr); }.species-list>div:nth-last-child(2) { border-bottom:0; } }
@media (max-width:560px) { .shell { width:min(100% - 22px,1120px); }.heading { padding-top:32px; align-items:start; flex-direction:column; }.metrics { gap:8px; }.metrics article { min-height:112px; padding:16px; }.metrics strong { font-size:32px; }.metrics .text-value { font-size:18px; }.visit-list { padding:4px 16px; }.visit-card { grid-template-columns:96px 1fr; gap:13px; }.visit-image { height:96px; }.visit-content dl { grid-template-columns:1fr; gap:7px; margin-top:14px; }.visit-content dl div { flex-direction:row; justify-content:space-between; gap:8px; } h3 { font-size:19px; }.species-list { grid-template-columns:1fr; }.species-list>div:nth-last-child(2) { border-bottom:1px solid var(--line); } }

.species-name { display:flex; min-width:0; flex-direction:column; }
.species-name small { margin-top:2px; color:var(--muted); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:11px; font-weight:400; line-height:1.25; }
.metrics .species-name { font-size:22px; }
.metrics .species-name>span { color:var(--ink); }
.visit-image-button { width:100%; height:100%; margin:0; padding:0; overflow:hidden; border:0; background:transparent; cursor:zoom-in; }
.visit-image-button:focus-visible { outline:3px solid var(--leaf); outline-offset:-3px; }
.visit-card-rejected { opacity:.58; }
.feedback-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:16px; }
.feedback-state { color:#8b3a32; font-size:12px; font-weight:800; }
.feedback-button { border:1px solid #b9c6bc; border-radius:8px; background:white; padding:7px 10px; color:var(--ink); cursor:pointer; font-family:inherit; font-size:12px; font-weight:600; }
.feedback-button:hover { border-color:#8b3a32; color:#8b3a32; }.feedback-button:disabled { cursor:wait; opacity:.55; }
.lightbox { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:48px; background:rgba(8,16,11,.88); }
.lightbox[hidden] { display:none; }
.lightbox img { display:block; max-width:100%; max-height:calc(100vh - 96px); object-fit:contain; box-shadow:0 12px 50px rgba(0,0,0,.45); }
.lightbox-close { position:absolute; top:14px; right:18px; width:42px; height:42px; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:rgba(0,0,0,.35); color:white; cursor:pointer; font-size:30px; line-height:1; }
.lightbox-close:focus-visible { outline:3px solid white; outline-offset:2px; }
body.lightbox-open { overflow:hidden; }

.daily-panel { margin-bottom:60px; overflow:hidden; }.date-navigation { display:flex; align-items:center; justify-content:center; gap:18px; padding:18px 22px; border-bottom:1px solid var(--line); }.date-navigation time { min-width:120px; text-align:center; font:700 20px Georgia,serif; font-variant-numeric:tabular-nums; }.date-navigation a { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:9px; color:var(--ink); font-size:26px; line-height:1; text-decoration:none; }.date-navigation a:hover { border-color:var(--leaf); color:var(--leaf); }
.daily-table-scroll { overflow-x:auto; }.daily-table { width:100%; min-width:1060px; border-collapse:separate; border-spacing:0; font-size:12px; font-variant-numeric:tabular-nums; }.daily-table th,.daily-table td { height:50px; padding:8px 7px; border-bottom:1px solid var(--line); text-align:center; }.daily-table thead th { height:38px; background:#f8faf8; color:var(--muted); font-size:11px; }.daily-table th:first-child { position:sticky; left:0; z-index:1; width:190px; min-width:190px; padding-left:18px; background:var(--paper); text-align:left; }.daily-table thead th:first-child { z-index:3; background:#f8faf8; }.daily-table th:nth-child(2),.daily-table td:nth-child(2) { position:sticky; left:190px; z-index:1; width:68px; min-width:68px; background:var(--paper); box-shadow:5px 0 8px -8px rgba(23,37,29,.65); }.daily-table thead th:nth-child(2) { z-index:3; background:#f8faf8; }.daily-table tbody tr:last-child>* { border-bottom:0; }.daily-table .species-name>span { font-size:13px; font-weight:700; }.daily-total { color:var(--leaf); font-weight:800; }.daily-table td.has-visits { background:#e5f2e9; color:#185f3b; font-weight:800; }.daily-table td.intensity-2 { background:#d2e9da; }.daily-table td.intensity-3 { background:#bce0c8; }.daily-table .daily-empty { height:100px; color:var(--muted); text-align:center; }

@media (max-width:560px) { .metrics .species-name { font-size:18px; }.lightbox { padding:52px 12px 12px; }.lightbox img { max-height:calc(100vh - 64px); } }
