:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-raised:#fff;--color-surface-sunken:#f0f2f5;--color-border:#e3e6eb;--color-border-strong:#cdd2da;--color-text:#14181f;--color-text-muted:#5a6270;--color-text-subtle:#7c8492;--color-primary:#0a7c4a;--color-primary-hover:#086039;--color-primary-soft:#e6f4ec;--color-primary-ring:#0a7c4a38;--color-status-valid-bg:#e6f4ec;--color-status-valid-fg:#0a5a36;--color-status-valid-border:#b9e0c9;--color-status-valid-dot:#16a34a;--color-status-warn-bg:#fef3c7;--color-status-warn-fg:#7a4a05;--color-status-warn-border:#fcd97d;--color-status-warn-dot:#d97706;--color-status-danger-bg:#fee2e2;--color-status-danger-fg:#8e1c1c;--color-status-danger-border:#fca5a5;--color-status-danger-dot:#dc2626;--color-status-neutral-bg:#f1f3f6;--color-status-neutral-fg:#475160;--color-status-neutral-border:#d1d5db;--color-status-neutral-dot:#6b7280;--color-status-info-bg:#dbeafe;--color-status-info-fg:#1d4ed8;--color-status-info-border:#93c5fd;--color-status-info-dot:#2563eb;--color-status-violet-bg:#ede9fe;--color-status-violet-fg:#4c1d95;--color-status-violet-border:#c4b5fd;--color-status-violet-dot:#7c3aed;--color-accent:#c2410c;--color-accent-soft:#fff1ea;--color-globe-overlay-bg:#0a121ec7;--color-globe-overlay-bg-strong:#0a121eeb;--color-globe-overlay-border:#ffffff24;--color-globe-overlay-text:#ffffffeb;--color-globe-overlay-text-muted:#fff9;--color-globe-overlay-text-subtle:#ffffff73;--appbar-bg:#1f3d3d;--appbar-hairline:#ffffff1a;--appbar-control-border:#ffffff26;--appbar-control-bg:#ffffff0d;--appbar-control-bg-hover:#ffffff1a;--appbar-control-bg-active:#ffffff26;--appbar-text:#fff;--appbar-text-nav:#fff9;--appbar-text-control:#ffffffb3;--appbar-ring:#fff6;--appbar-avatar-bg:#f0fdfa;--appbar-avatar-fg:#0f766e;--appbar-control-h:36px;--appbar-alert:#fca5a5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.625rem;--text-2xl:2rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 10px #0f172a14, 0 1px 2px #0f172a0a;--shadow-lg:0 16px 40px #0f172a2e, 0 2px 6px #0f172a0f;--shadow-overlay:0 24px 60px #0f172a38;--motion-fast:.12s;--motion-base:.18s;--motion-slow:.26s;--ease-out:cubic-bezier(.2, .7, .3, 1);--font-sans:"IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display:"IBM Plex Serif", Georgia, serif;--leading-tight:1.2;--leading-normal:1.5;--ring-focus:0 0 0 3px var(--color-primary-ring)}:root[data-theme=dark]{--color-bg:#0c1117;--color-surface:#131a23;--color-surface-raised:#1a222d;--color-surface-sunken:#0f151c;--color-border:#232c38;--color-border-strong:#34404f;--color-text:#e6ebf2;--color-text-muted:#9aa3b1;--color-text-subtle:#6a7382;--color-primary:#34d399;--color-primary-hover:#6ee7b7;--color-primary-soft:#34d3991f;--color-primary-ring:#34d39947;--color-status-valid-bg:#22c55e24;--color-status-valid-fg:#86efac;--color-status-valid-border:#22c55e52;--color-status-valid-dot:#4ade80;--color-status-warn-bg:#d9770624;--color-status-warn-fg:#fcd34d;--color-status-warn-border:#d9770652;--color-status-warn-dot:#fbbf24;--color-status-danger-bg:#dc262624;--color-status-danger-fg:#fca5a5;--color-status-danger-border:#dc262652;--color-status-danger-dot:#f87171;--color-status-neutral-bg:#94a3b81f;--color-status-neutral-fg:#cbd5e1;--color-status-neutral-border:#94a3b83d;--color-status-neutral-dot:#94a3b8;--color-status-info-bg:#2563eb29;--color-status-info-fg:#93c5fd;--color-status-info-border:#2563eb57;--color-status-info-dot:#60a5fa;--color-status-violet-bg:#7c3aed29;--color-status-violet-fg:#c4b5fd;--color-status-violet-border:#7c3aed57;--color-status-violet-dot:#a78bfa;--color-accent:#fb923c;--color-accent-soft:#fb923c1f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000073;--shadow-lg:0 18px 44px #0000008c;--shadow-overlay:0 28px 70px #000000a6}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11"}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{color:inherit;font-family:inherit}input,select,textarea{font-family:inherit}:focus{outline:none}:focus-visible{box-shadow:var(--ring-focus);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@supports (scrollbar-color:auto){*{scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}}.appbar{background:var(--appbar-bg);border-bottom:1px solid var(--appbar-hairline);z-index:40;position:sticky;top:0}.appbar-inner{max-width:1600px;padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-6);margin:0 auto;display:flex}.appbar-logo{border-radius:var(--radius-sm);flex:1 1 0;align-items:center;gap:.625rem;min-width:max-content;text-decoration:none;display:flex}.appbar-logo:hover{text-decoration:none}.appbar-logo:focus-visible{box-shadow:0 0 0 2px var(--appbar-ring);outline:none}.appbar-logo__mark{height:var(--appbar-control-h);object-fit:contain;width:auto}.appbar-logo__wordmark{font-family:var(--font-sans);font-size:15px;font-weight:var(--weight-bold);letter-spacing:-.01em;color:var(--appbar-text);white-space:nowrap}.appbar-nav{flex:none;justify-content:center;align-items:center;display:flex}.appbar .tabs--segmented{gap:var(--space-1);padding:var(--space-1);background:var(--appbar-control-bg);border-color:var(--appbar-hairline);border-radius:var(--radius-md)}.appbar .tabs--segmented .tabs__item{padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);letter-spacing:-.01em;color:var(--appbar-text-nav);border:0;font-size:14px;line-height:20px}.appbar .tabs--segmented .tabs__item:hover{background:var(--appbar-control-bg-hover);color:var(--appbar-text)}.appbar .tabs--segmented .tabs__item--active{background:var(--appbar-control-bg-active);color:var(--appbar-text);box-shadow:none}.appbar .tabs--segmented .tabs__item:focus-visible{box-shadow:0 0 0 2px var(--appbar-ring);outline:none}.appbar-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex:1 1 0;min-width:max-content;display:flex}.appbar-ctl{height:var(--appbar-control-h);border:1px solid var(--appbar-control-border);border-radius:var(--radius-sm);background:var(--appbar-control-bg);color:var(--appbar-text-control);white-space:nowrap;cursor:pointer;transition:background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);justify-content:center;align-items:center;font-family:inherit;text-decoration:none;display:inline-flex}.appbar-ctl:hover{background:var(--appbar-control-bg-hover);color:var(--appbar-text);text-decoration:none}.appbar-ctl:focus-visible{box-shadow:0 0 0 2px var(--appbar-ring);outline:none}.appbar-ctl--icon{width:var(--appbar-control-h);padding:0}.appbar-ctl--icon svg{width:18px;height:18px}.appbar-ctl--text{font-size:13px;font-weight:var(--weight-medium);letter-spacing:-.005em;padding:0 .875rem}.appbar-gear{transition:transform var(--motion-slow) var(--ease-out)}.appbar-ctl:hover .appbar-gear{transform:rotate(45deg)}.appbar-user{height:var(--appbar-control-h);padding-left:var(--space-1);padding-right:var(--space-3);border:1px solid var(--appbar-control-border);border-radius:var(--radius-sm);background:var(--appbar-control-bg);align-items:center;gap:.625rem;display:none}@media (width>=640px){.appbar-user{display:inline-flex}}.appbar-user__avatar{border-radius:var(--radius-pill);background:var(--appbar-avatar-bg);width:28px;height:28px;color:var(--appbar-avatar-fg);font-size:12.5px;font-weight:var(--weight-semibold);text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.appbar-user__name{font-size:13px;font-weight:var(--weight-medium);color:var(--appbar-text);white-space:nowrap}@media (width<=900px){.appbar-inner{gap:var(--space-3);flex-wrap:wrap}.appbar-nav{flex:0 0 100%;order:3}}.source-header{margin:0 0 var(--space-5)}.source-header-eyebrow{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.35rem;display:block}.source-header-text{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--text-md);color:var(--color-text);line-height:var(--leading-tight)}.source-tabs{align-items:center;gap:var(--space-1);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.content{max-width:1400px;padding:var(--space-5);margin:0 auto}.content--bleed{flex-direction:column;flex:1;max-width:none;min-height:0;margin:0;padding:0;display:flex}.appbar-ctl--attention{position:relative}.appbar-ctl--attention:after{content:"";background:var(--appbar-alert);width:7px;height:7px;box-shadow:0 0 0 2px var(--appbar-bg);border-radius:50%;position:absolute;top:-2px;right:-2px}.tabs{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.tabs__item{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;text-transform:capitalize;white-space:nowrap;transition:background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);background:0 0;border:1px solid #0000;line-height:1.4;display:inline-flex}.tabs__item:hover,.tabs__item--active{color:var(--color-text)}.tabs--segmented{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:2px;padding:2px}.tabs--segmented .tabs__item{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.tabs--segmented .tabs__item--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.tabs--inline{gap:var(--space-1)}.tabs--inline .tabs__item{padding:var(--space-2) var(--space-3);border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.tabs--inline .tabs__item:hover{border-color:var(--color-primary);color:var(--color-primary)}.tabs--inline .tabs__item--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tabs--inline .tabs__item--active:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.tabs--count .tabs__item{padding:var(--space-1) var(--space-3);border-color:var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm)}.tabs--count .tabs__item:hover{border-color:var(--color-primary);color:var(--color-text)}.tabs--count .tabs__item--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tabs__count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-2xs);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);letter-spacing:-.01em;padding:.05rem .4rem}.tabs__item--active .tabs__count{color:#fff;background:#ffffff38}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);white-space:nowrap;background:0 0;border:1px solid #0000;line-height:1;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn--outline:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn--ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary)}.btn--icon{border-color:var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-muted);padding:0}.btn--icon:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-soft)}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--lg{padding:var(--space-3) var(--space-5);font-size:var(--text-base)}.btn--on-dark{background:var(--color-globe-overlay-bg);border-color:var(--color-globe-overlay-border);color:var(--color-globe-overlay-text)}.btn--on-dark:hover:not(:disabled){background:var(--color-globe-overlay-bg-strong);color:#fff;border-color:#ffffff47}.search-wrap{flex:320px;align-items:center;min-width:0;max-width:480px;display:flex;position:relative}.search-icon{left:var(--space-3);color:var(--color-text-muted);pointer-events:none;position:absolute}.search{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;height:38px;color:var(--color-text);font-size:var(--text-base);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);outline:none;padding:0 2.5rem 0 2.6rem}.search::placeholder{color:var(--color-text-subtle)}.search:focus{border-color:var(--color-primary);box-shadow:var(--ring-focus)}.clear{right:var(--space-2);background:var(--color-surface-sunken);width:24px;height:24px;color:var(--color-text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex;position:absolute}.clear:hover{background:var(--color-border);color:var(--color-text)}.filter-group{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:var(--text-2xs);font-weight:var(--weight-semibold);display:inline-flex}.filter-select{height:38px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);cursor:pointer;text-transform:none;letter-spacing:0;min-width:9rem;max-width:14rem;font-weight:var(--weight-regular);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out)}.filter-select:hover{border-color:var(--color-primary)}.filter-select:focus{border-color:var(--color-primary);box-shadow:var(--ring-focus);outline:none}.badge{align-items:center;gap:var(--space-1);padding:.15rem var(--space-2);border-radius:var(--radius-pill);background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border:1px solid #0000;border-color:var(--color-status-neutral-border);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.02em;text-transform:capitalize;white-space:nowrap;line-height:1.4;display:inline-flex}.badge--valid{background:var(--color-status-valid-bg);color:var(--color-status-valid-fg);border-color:var(--color-status-valid-border)}.badge--warn{background:var(--color-status-warn-bg);color:var(--color-status-warn-fg);border-color:var(--color-status-warn-border)}.badge--danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg);border-color:var(--color-status-danger-border)}.badge--neutral{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border-color:var(--color-status-neutral-border)}.badge--info{background:var(--color-status-info-bg);color:var(--color-status-info-fg);border-color:var(--color-status-info-border)}.badge--violet{background:var(--color-status-violet-bg);color:var(--color-status-violet-fg);border-color:var(--color-status-violet-border)}.badge--on-dark{border-color:#0000}.badge--on-dark.badge--valid{color:#86efac;background:#14532d}.badge--on-dark.badge--warn{color:#fcd34d;background:#78350f}.badge--on-dark.badge--danger{color:#fca5a5;background:#7f1d1d}.badge--on-dark.badge--neutral{color:#d1d5db;background:#374151}.badge--on-dark.badge--info{color:#93c5fd;background:#1e3a8a}.badge--on-dark.badge--violet{color:#c4b5fd;background:#4c1d95}.cp-strip{margin:0 0 var(--space-6);border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong);background:var(--color-surface);flex-wrap:wrap;display:flex}.cp-tile{min-width:160px;padding:var(--space-4) var(--space-5);gap:var(--space-1);background:var(--color-surface);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--motion-fast) var(--ease-out);border:0;flex-direction:column;flex:160px;margin:0;display:flex;position:relative}.cp-tile+.cp-tile{border-left:1px solid var(--color-border)}.cp-tile:hover{background:var(--color-surface-sunken)}.cp-tile:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.cp-tile--active{background:var(--color-surface-sunken)}.cp-tile--active:before{content:"";background:var(--color-primary);height:2px;position:absolute;inset:0 0 auto}.cp-tile-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-text);letter-spacing:-.015em;line-height:1}.cp-tile-total .cp-tile-num{font-size:var(--text-2xl)}.cp-tile-linked .cp-tile-num{color:var(--color-accent)}.cp-tile-label{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);flex-direction:column;gap:.15rem;display:flex}.cp-tile-sub{text-transform:none;letter-spacing:0;font-size:var(--text-2xs);font-weight:var(--weight-regular);color:var(--color-text-subtle);font-family:var(--font-mono)}@media (prefers-reduced-motion:no-preference){.cp-tile{opacity:0;animation:tile-enter var(--motion-slow) var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 50ms);transform:translateY(6px)}}@keyframes tile-enter{to{opacity:1;transform:none}}.color-doc-title{margin:0 0 var(--space-3);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.color-doc-section+.color-doc-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.color-doc-heading{margin:0 0 var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.color-doc-row{align-items:center;gap:var(--space-2);padding:.2rem 0;line-height:1.3;display:flex}.color-doc-swatch{border-radius:50%;flex-shrink:0;width:12px;height:12px}.imagery-meta{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.imagery-meta-line{font-size:var(--text-xs);color:var(--color-text);line-height:1.4}.imagery-meta-line.muted,.imagery-meta-source{color:var(--color-text-muted)}.imagery-meta-note{margin:var(--space-2) 0 0;font-size:var(--text-2xs);color:var(--color-text-muted);line-height:1.35}.table-wrap{border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong);background:var(--color-surface);position:relative;overflow-x:auto}table.plants{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:var(--text-sm)}table.plants thead{background:var(--color-surface-sunken);z-index:1;position:sticky;top:0}table.plants thead:after{content:"";background:var(--color-border-strong);height:1px;position:absolute;bottom:0;left:0;right:0}table.plants th{text-align:left;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border);transition:color var(--motion-fast) var(--ease-out)}table.plants th:hover{color:var(--color-text)}table.plants th.sorted{color:var(--color-primary)}.sort-ind{width:.85em;font-family:var(--font-mono);margin-left:.25em;font-size:.85em;display:inline-block}table.plants td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top;color:var(--color-text)}table.plants tr{cursor:pointer;transition:background var(--motion-fast) var(--ease-out)}table.plants tbody tr:hover{background:var(--color-surface-sunken)}table.plants tr.expanded{background:var(--color-primary-soft);box-shadow:inset 2px 0 0 var(--color-primary)}table.plants td.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);letter-spacing:-.005em;color:var(--color-text)}table.plants td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm);text-align:right}table.plants td.title-cell{font-weight:var(--weight-medium);color:var(--color-text);max-width:280px}table.plants td.addr{color:var(--color-text-muted);max-width:240px;font-size:var(--text-xs)}table.plants td.truncate{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}@media (prefers-reduced-motion:no-preference){table.plants tbody tr:nth-child(-n+8){opacity:0;animation:row-enter var(--motion-slow) var(--ease-out) forwards;animation-delay:calc(var(--row-i,0) * 30ms);transform:translateY(4px)}}@keyframes row-enter{to{opacity:1;transform:none}}.result-bar{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-3)}.result-bar strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:-.01em}.state{padding:var(--space-12) var(--space-4);text-align:center;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm)}.state.error{color:var(--color-status-danger-fg);border-color:var(--color-status-danger-border);background:var(--color-status-danger-bg)}.controls{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.status-tabs{margin-bottom:var(--space-3)}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);padding:var(--space-12) var(--space-4) var(--space-8);animation:backdrop-fade var(--motion-base) var(--ease-out);background:#0f172a80;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}:root[data-theme=dark] .modal-backdrop{background:#0009}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);width:min(640px,100%);max-height:calc(100vh - 8rem);animation:modal-rise var(--motion-base) var(--ease-out);flex-direction:column;display:flex}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal--detail{width:min(720px,100%)}.modal-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.modal-title{font-family:var(--font-sans);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;overflow:hidden}.modal-back{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted);font-family:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);text-overflow:ellipsis;white-space:nowrap;max-width:50%;display:inline-flex;overflow:hidden}.modal-back:hover{color:var(--color-primary);border-color:var(--color-primary)}.modal-close{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:inline-flex}.modal-close:hover{background:var(--color-surface-sunken);color:var(--color-text)}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-section+.modal-section{margin-top:var(--space-6)}.modal-section-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-1);display:flex}.modal-section-head .modal-section-title{margin:0}.modal-section-title{margin:0 0 var(--space-1);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.modal-section-hint{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.modal-empty{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-family:var(--font-display);font-style:italic;font-size:var(--text-base)}.modal-error{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-status-danger-border);background:var(--color-status-danger-bg);color:var(--color-status-danger-fg);border-radius:var(--radius-md);font-size:var(--text-sm)}.detail-dl{gap:var(--space-2) var(--space-5);font-size:var(--text-sm);grid-template-columns:max-content 1fr;margin:0;display:grid}.detail-dl dt{font-family:var(--font-sans);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;padding-top:.2rem}.detail-dl dd{word-break:break-word;color:var(--color-text);margin:0}.detail-dl dd.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.005em;font-size:.95em}.detail-dl a{color:var(--color-primary)}.detail-dl--compact{gap:var(--space-2) var(--space-3);font-size:var(--text-xs)}.detail-dl--compact dt{font-size:var(--text-2xs);letter-spacing:.06em}.linked-plants{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.linked-plants-title{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.linked-plants-count{font-weight:var(--weight-regular);text-transform:none;letter-spacing:0;color:var(--color-text-subtle);margin-left:var(--space-1)}.linked-plants-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.linked-plant-card{text-align:left;width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:inherit;transition:border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);font-family:inherit;display:block}.linked-plant-card:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.linked-plant-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.linked-plant-source{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.linked-plant-arrow{color:var(--color-text-subtle);transition:transform var(--motion-fast) var(--ease-out);margin-left:auto}.linked-plant-card:hover .linked-plant-arrow{color:var(--color-primary);transform:translate(2px)}.linked-plant-title{font-weight:var(--weight-medium);font-size:var(--text-base);margin-bottom:.1rem}.linked-plant-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.linked-plant-meta{gap:var(--space-3);margin-top:var(--space-1);font-size:var(--text-2xs);color:var(--color-text-subtle);flex-wrap:wrap;display:flex}.linked-plant-id{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.005em}.linked-plant-year{font-variant-numeric:tabular-nums}.pager{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.pager-info{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.005em;color:var(--color-text)}.pager button{padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);transition:border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)}.pager button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pager button:disabled{opacity:.4;cursor:not-allowed}.globe-wrap{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.globe-stage{background:radial-gradient(#0b1726 0%,#050a13 100%);flex:1;justify-content:center;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.globe-loading{right:var(--space-3);bottom:var(--space-3);z-index:3;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-globe-overlay-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);color:var(--color-globe-overlay-text);font-family:var(--font-sans);font-size:var(--text-sm);letter-spacing:.02em;pointer-events:none;display:flex;position:absolute}.globe-spinner{border:2px solid #ffffff2e;border-top-color:#9ec9ff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.9s linear infinite globe-spin}@keyframes globe-spin{to{transform:rotate(360deg)}}.globe-loading-text{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:#ffffffe6}.globe-loading-text strong{font-weight:var(--weight-semibold)}.globe-attribution{left:var(--space-3);z-index:2;color:var(--color-globe-overlay-text-subtle);font-family:var(--font-sans);font-size:var(--text-2xs);letter-spacing:.02em;pointer-events:none;position:absolute;bottom:.6rem}.globe-controls{top:var(--space-3);left:var(--space-3);z-index:4;align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.globe-controls-buttons{gap:var(--space-2);display:flex}.globe-control-btn{appearance:none;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-globe-overlay-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);color:var(--color-globe-overlay-text);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);display:inline-flex}.globe-control-btn:hover{background:var(--color-globe-overlay-bg-strong);border-color:#9ec9ff66}.globe-control-btn.is-active{border-color:#9ec9ff99}.globe-control-caret{opacity:.7;transition:transform var(--motion-fast) var(--ease-out)}.globe-control-btn.is-active .globe-control-caret{transform:rotate(180deg)}.globe-panel{width:248px;max-width:calc(100vw - 2 * var(--space-3));max-height:calc(100vh - 8rem);padding:var(--space-3) var(--space-4);background:var(--color-globe-overlay-bg-strong);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);color:var(--color-globe-overlay-text);font-family:var(--font-sans);font-size:var(--text-sm);overflow-y:auto;box-shadow:0 8px 24px #00000059}.globe-filters{gap:var(--space-3);flex-direction:column;display:flex}.globe-filters .legend-group{align-items:flex-start;gap:var(--space-1);padding:0 0 var(--space-3);border-bottom:1px solid #ffffff1f;border-right:none;flex-direction:column;display:flex}.globe-filters .legend-group:last-of-type{border-bottom:none;padding-bottom:0}.globe-panel .legend-hint{margin:var(--space-3) 0 0;display:block}.globe-panel--legend .color-doc-title,.globe-panel--legend .color-doc-heading,.globe-panel--legend .imagery-meta-line.muted,.globe-panel--legend .imagery-meta-source,.globe-panel--legend .imagery-meta-note{color:var(--color-globe-overlay-text-subtle)}.globe-panel--legend .imagery-meta-line{color:var(--color-globe-overlay-text)}.globe-panel--legend .imagery-meta,.globe-panel--legend .color-doc-section+.color-doc-section{border-color:#ffffff24}.legend-item{align-items:center;gap:var(--space-1);display:inline-flex}.legend-toggle{appearance:none;color:inherit;font:inherit;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);cursor:pointer;transition:opacity var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);background:#ffffff0f;border:1px solid #ffffff24}.legend-toggle:hover{background:#ffffff1f;border-color:#ffffff38}.legend-toggle.is-off{opacity:.45;text-decoration:line-through}.legend-toggle.is-off .legend-dot{box-shadow:none;filter:grayscale(.6)}.legend-item.muted{color:#ffffff8c;font-size:var(--text-xs)}.legend-item strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);letter-spacing:-.005em}.legend-dot{border-radius:50%;width:10px;height:10px;box-shadow:0 0 6px}.legend-group{align-items:center;gap:var(--space-1);padding-right:var(--space-3);border-right:1px solid #ffffff1f;display:inline-flex}.legend-group:last-of-type{border-right:none;padding-right:0}.legend-source-label{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3}.legend-hint{color:#ffffff8c;font-size:var(--text-xs);margin-left:.25rem}.globe-tip{padding:var(--space-2) var(--space-3);background:var(--color-globe-overlay-bg-strong);color:#fff;border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);max-width:280px;box-shadow:0 4px 18px #0006}.globe-tip-meta{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin-bottom:.25rem}.globe-tip-title{font-weight:var(--weight-semibold);margin-bottom:.2rem}.globe-tip-addr{color:#ffffffb3;font-size:var(--text-xs);margin-bottom:var(--space-1)}.globe-tip-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.globe-tip-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-2xs);color:#ffffffa6;letter-spacing:-.005em}.globe-tip-details{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid #ffffff1f;gap:.2rem;display:grid}.globe-tip-detail-row{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);display:flex}.globe-tip-detail-label{color:#ffffff80;font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;flex:none}.globe-tip-detail-value{color:#ffffffe6;word-break:break-word;min-width:0}.globe-pin-anchor{pointer-events:none;width:0;height:0;position:relative}.globe-pin{cursor:pointer;pointer-events:auto;filter:drop-shadow(0 2px 3px #00000080);width:30px;height:auto;transition:width .1s,filter .1s;position:absolute;bottom:0;left:0;transform:translate(-50%)}.globe-pin:hover{filter:drop-shadow(0 3px 5px #000000a6);width:36px}.globe-search{top:var(--space-3);z-index:4;width:min(420px,70%);color:var(--color-globe-overlay-text);position:absolute;left:50%;transform:translate(-50%)}.globe-search-input-wrap{background:var(--color-globe-overlay-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);transition:border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);align-items:center;display:flex;position:relative}.globe-search-input-wrap:focus-within{border-color:#9ec9ff99;box-shadow:0 0 0 3px #9ec9ff2e}.globe-search-icon{left:var(--space-3);color:#ffffff8c;pointer-events:none;position:absolute}.globe-search-input{color:#fffffff2;width:100%;height:38px;font-family:var(--font-sans);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1;padding:0 2.4rem}.globe-search-input::placeholder{color:#ffffff80}.globe-search-clear{right:var(--space-2);color:#ffffffd9;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:1rem;line-height:1;display:inline-flex;position:absolute}.globe-search-clear:hover{background:#fff3}.globe-search-results{margin:var(--space-1) 0 0;padding:var(--space-1);background:var(--color-globe-overlay-bg-strong);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-globe-overlay-border);border-radius:var(--radius-md);max-height:320px;list-style:none;overflow-y:auto;box-shadow:0 6px 22px #00000059}.globe-search-result{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--motion-fast) var(--ease-out);display:flex}.globe-search-result:hover,.globe-search-result.is-active{background:#ffffff1a}.globe-search-result-dot{border-radius:50%;flex:none;width:10px;height:10px;margin-top:.35rem}.globe-search-result-body{flex:1;min-width:0}.globe-search-result-title{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);color:#fffffff2;display:flex}.globe-search-result-name{font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.globe-search-result-source{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;flex:none}.globe-search-result-sub{font-size:var(--text-xs);color:#ffffff9e;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.globe-search-empty{padding:var(--space-3);font-size:var(--text-sm);color:#fff9;text-align:center}.globe-detail-card{top:3.6rem;right:var(--space-3);z-index:3;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:320px;max-width:calc(100% - 1.7rem);max-height:calc(100% - 5rem);box-shadow:var(--shadow-lg);color:var(--color-text);position:absolute;overflow-y:auto}.globe-detail-card-head{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-surface);z-index:1;display:flex;position:sticky;top:0}.globe-detail-card-titles{flex:1;min-width:0}.globe-detail-card-source{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.2rem}.globe-detail-card-title{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.25;font-weight:var(--weight-semibold);word-break:break-word;color:var(--color-text);margin:0}.globe-detail-card-actions{align-items:center;gap:var(--space-1);flex:none;display:flex}.globe-detail-card-body{padding:var(--space-3) var(--space-4) var(--space-4)}@media (width<=700px){.globe-detail-card{top:auto;right:var(--space-2);left:var(--space-2);bottom:var(--space-2);width:auto;max-height:55%}.globe-search{width:calc(100% - 1.2rem)}}.scraper-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.scraper-row{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface);transition:border-color var(--motion-fast) var(--ease-out)}.scraper-row:hover{border-color:var(--color-border-strong)}.scraper-row-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.scraper-row-titles{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:inline-flex}.scraper-name{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text)}.scraper-desc{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.scraper-meta{margin-top:var(--space-2);gap:var(--space-2);color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;letter-spacing:-.005em;flex-wrap:wrap;display:flex}.scraper-log{margin:var(--space-3) 0 0;padding:var(--space-3);color:#d1d5db;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word;letter-spacing:-.005em;background:#0b1220;max-height:180px;overflow-y:auto}.scraper-group+.scraper-group{margin-top:var(--space-5)}.scraper-group-title{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle)}.scraper-strip{flex-shrink:0;gap:3px;display:inline-flex}.scraper-strip-cell{background:var(--color-border-strong);border-radius:2px;width:6px;height:16px}.scraper-strip-cell--succeeded{background:var(--color-status-valid-fg)}.scraper-strip-cell--failed{background:var(--color-status-danger-fg)}.scraper-strip-cell--interrupted{background:var(--color-status-warn-fg)}.scraper-strip-cell--running{background:var(--color-status-info-fg)}.scraper-stale{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;padding:2px var(--space-2);border-radius:var(--radius-sm);border:1px dashed var(--color-status-warn-fg);color:var(--color-status-warn-fg)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.005em;font-size:.95em}.tabular{font-variant-numeric:tabular-nums}.truncate{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.editorial{font-family:var(--font-display);font-style:italic;font-weight:400}
