:root{--bg-page: #f4f5f0;--bg-card: #ffffff;--bg-input: #ffffff;--bg-hover: #eef1ea;--bg-elevated: #f9faf7;--bg-overlay: rgba(0, 0, 0, .45);--bg-glass: rgba(255, 255, 255, .7);--text-primary: #1a2e1a;--text-secondary: #4a5c4a;--text-muted: #7d8c7d;--accent: #2b7a3b;--accent-hover: #1f6430;--accent-light: #e4f3e7;--accent-dim: #93b89e;--accent-glow: rgba(43, 122, 59, .15);--secondary: #c47f17;--secondary-hover: #a66a0e;--secondary-light: #fef3db;--border-color: #d6dbd2;--border-light: #e8ebe4;--border-input: #bfc8ba;--error: #c53030;--error-bg: #fde8e8;--error-light: #feb2b2;--success: #276749;--success-bg: #e2f5ea;--warning: #b7791f;--warning-bg: #fefce8;--info: #2b6cb0;--info-bg: #ebf4ff;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .04);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .06);--shadow-glow: 0 0 20px rgba(43, 122, 59, .15);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s}html.dark{--bg-page: #0c1410;--bg-card: #141e19;--bg-input: #1a2820;--bg-hover: #1e3028;--bg-elevated: #172420;--bg-overlay: rgba(0, 0, 0, .75);--bg-glass: rgba(20, 30, 25, .8);--text-primary: #e4e8e2;--text-secondary: #a3b0a0;--text-muted: #6a7a68;--accent: #4ade80;--accent-hover: #22c55e;--accent-light: #132a1c;--accent-dim: #2d7a4a;--accent-glow: rgba(74, 222, 128, .12);--secondary: #f59e0b;--secondary-hover: #d97706;--secondary-light: #2a2010;--border-color: #243830;--border-light: #1c2e26;--border-input: #2e4a3a;--error: #f87171;--error-bg: #2c1518;--error-light: #fca5a5;--success: #6ee7a0;--success-bg: #132a1c;--warning: #fbbf24;--warning-bg: #2a2010;--info: #93c5fd;--info-bg: #1a2332;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--shadow-glow: 0 0 24px rgba(74, 222, 128, .1);color-scheme:dark}html.theme-ocean{--accent: #0891b2;--accent-hover: #0e7490;--accent-light: #e0f7fa;--accent-dim: #67b8cc;--accent-glow: rgba(8, 145, 178, .15);--secondary: #0284c7;--secondary-hover: #0369a1;--secondary-light: #e0f2fe;--shadow-glow: 0 0 20px rgba(8, 145, 178, .15)}html.dark.theme-ocean{--accent: #22d3ee;--accent-hover: #06b6d4;--accent-light: #083344;--accent-dim: #155e75;--accent-glow: rgba(34, 211, 238, .12);--secondary: #38bdf8;--secondary-hover: #0ea5e9;--secondary-light: #0c2a3d;--shadow-glow: 0 0 24px rgba(34, 211, 238, .1)}html.theme-forest{--accent: #166534;--accent-hover: #14532d;--accent-light: #dcfce7;--accent-dim: #6b8f76;--accent-glow: rgba(22, 101, 52, .15);--secondary: #a16207;--secondary-hover: #854d0e;--secondary-light: #fef9c3;--shadow-glow: 0 0 20px rgba(22, 101, 52, .15)}html.dark.theme-forest{--accent: #86efac;--accent-hover: #4ade80;--accent-light: #0a2018;--accent-dim: #1a5a34;--accent-glow: rgba(134, 239, 172, .12);--secondary: #facc15;--secondary-hover: #eab308;--secondary-light: #1c1a0a;--shadow-glow: 0 0 24px rgba(134, 239, 172, .1)}html.theme-sunset{--accent: #ea580c;--accent-hover: #c2410c;--accent-light: #fff7ed;--accent-dim: #d4956a;--accent-glow: rgba(234, 88, 12, .15);--secondary: #db2777;--secondary-hover: #be185d;--secondary-light: #fdf2f8;--shadow-glow: 0 0 20px rgba(234, 88, 12, .15)}html.dark.theme-sunset{--accent: #fb923c;--accent-hover: #f97316;--accent-light: #3a1a08;--accent-dim: #9a3412;--accent-glow: rgba(251, 146, 60, .12);--secondary: #f472b6;--secondary-hover: #ec4899;--secondary-light: #3a0a20;--shadow-glow: 0 0 24px rgba(251, 146, 60, .1)}html.theme-midnight{--accent: #7c3aed;--accent-hover: #6d28d9;--accent-light: #f5f3ff;--accent-dim: #a78bfa;--accent-glow: rgba(124, 58, 237, .15);--secondary: #2563eb;--secondary-hover: #1d4ed8;--secondary-light: #eff6ff;--shadow-glow: 0 0 20px rgba(124, 58, 237, .15)}html.dark.theme-midnight{--accent: #a78bfa;--accent-hover: #8b5cf6;--accent-light: #1e1040;--accent-dim: #5b21b6;--accent-glow: rgba(167, 139, 250, .12);--secondary: #60a5fa;--secondary-hover: #3b82f6;--secondary-light: #0c1a36;--shadow-glow: 0 0 24px rgba(167, 139, 250, .1)}*{box-sizing:border-box}@supports (-webkit-touch-callout: none){input,select,textarea{font-size:max(1rem,16px)}}html{background:var(--bg-page);overflow-x:hidden}#root{overflow-x:hidden}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-page);color:var(--text-primary);background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5c13.8 0 25 11.2 25 25S43.8 55 30 55 5 43.8 5 30 16.2 5 30 5zm0 10c-8.3 0-15 6.7-15 15s6.7 15 15 15 15-6.7 15-15-6.7-15-15-15z' fill='%232b7a3b' fill-opacity='0.02' fill-rule='evenodd'/%3E%3C/svg%3E");overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}html.dark body{background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h1v40H0zM40 0v1H0V0z' fill='%23ffffff' fill-opacity='0.015'/%3E%3C/svg%3E")}header{position:sticky;top:0;z-index:40;overflow:clip;background:#1f6430;color:#fff;padding:env(safe-area-inset-top,0px) .75rem .35rem;display:flex;align-items:center;justify-content:space-between}header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:300%;background:linear-gradient(135deg,#164a25,#1f6430,#2b7a3b,#1f6430,#164a25,#1f6430);animation:header-shimmer 12s ease infinite;z-index:0}header>*{position:relative;z-index:1}@keyframes header-shimmer{0%,to{transform:translate(0)}50%{transform:translate(-33.3%)}}header h1{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.header-right{display:flex;align-items:center;gap:.4rem}.header-brand{text-decoration:none;color:#fff;transition:opacity var(--duration-fast)}.header-brand:hover{opacity:.85}header nav{display:flex;align-items:center;gap:.15rem}header a{color:#fff;text-decoration:none;padding:.4rem .65rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:background var(--duration-fast),transform .1s;position:relative}header a:after{content:"";position:absolute;bottom:2px;left:50%;width:0;height:2px;background:#fff9;border-radius:1px;transition:width var(--duration-normal),left var(--duration-normal)}header a:hover{background:#ffffff1f}header a:hover:after{width:60%;left:20%}.nav-avatar:after,.nav-badge-link:after,.header-brand:after,.header-weekly-points:after{display:none}.header-weekly-points{font-size:.8rem;font-weight:700;color:#bbf7d0;background:#ffffff1a;padding:.25rem .6rem;border-radius:var(--radius-full);white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nav-avatar{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;overflow:hidden;background:#fff3;padding:0!important;transition:box-shadow var(--duration-fast)}.nav-avatar:hover{background:#fff3!important;box-shadow:0 0 0 2px #fff6}.nav-avatar-img{width:100%;height:100%;object-fit:cover}main{padding:2rem 2rem calc(2rem + 100px + env(safe-area-inset-bottom,0px));min-height:calc(100dvh - 60px);animation:page-enter var(--duration-slow) var(--ease-out)}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.splash{max-width:800px;margin:0 auto;text-align:center}.splash-hero{padding:3rem 1rem 2rem}.splash-icon-ring{position:relative;width:180px;height:180px;margin:0 auto 2rem}.splash-tree-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3.5rem;filter:drop-shadow(0 2px 8px rgba(43,122,59,.25))}.splash-critter{position:absolute;font-size:1.6rem;top:50%;left:50%;--angle: calc(var(--i) * 45deg);transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-80px) rotate(calc(-1 * var(--angle)));animation:bob 3s ease-in-out infinite;animation-delay:calc(var(--i) * .35s)}@keyframes bob{0%,to{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-80px) rotate(calc(-1 * var(--angle)))}50%{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-88px) rotate(calc(-1 * var(--angle)))}}.splash-hero h2{font-size:2rem;margin:0 0 .75rem;line-height:1.3;background:linear-gradient(135deg,#164a25,var(--accent),#34a853);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.splash-tagline{font-size:1.1rem;color:var(--text-secondary);max-width:520px;margin:0 auto 1.5rem;line-height:1.5}.splash-cta{position:relative;display:inline-block;background:linear-gradient(135deg,var(--accent),#34a853);color:#fff;text-decoration:none;padding:.85rem 2rem;font-size:1.1rem;font-weight:600;border-radius:var(--radius-full);box-shadow:0 4px 16px #2b7a3b4d;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal)}.splash-cta:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:0 4px 24px #2b7a3b80;opacity:0;animation:cta-glow 3s ease-in-out infinite}.splash-cta:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 30px #2b7a3b73}.splash-cta:active{transform:translateY(0) scale(.98)}@keyframes cta-glow{0%,to{opacity:0}50%{opacity:1}}.splash-cta-group{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.splash-cta-secondary{background:transparent;color:var(--accent);border:2px solid var(--accent);box-shadow:none}.splash-cta-secondary:hover{background:var(--accent-glow);box-shadow:none}.splash-secondary{text-align:center;padding:1.5rem 0 .5rem;color:var(--text-secondary);font-size:.9rem}.splash-cta-link{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}.splash-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;padding:2rem 0}.splash-feature{background:var(--bg-card);border-radius:var(--radius-md);padding:1.5rem 1.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);text-align:center;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal);animation:card-enter .4s ease-out both}.splash-feature:nth-child(1){animation-delay:.1s}.splash-feature:nth-child(2){animation-delay:.2s}.splash-feature:nth-child(3){animation-delay:.3s}.splash-feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}@keyframes card-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.feature-icon{font-size:2rem;display:block;margin-bottom:.5rem;transition:transform .3s}.splash-feature:hover .feature-icon{transform:scale(1.2) rotate(-5deg)}.splash-feature h3{margin:0 0 .4rem;font-size:1rem;color:var(--accent)}.splash-feature p{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.45}.splash-footer{padding:1.5rem 0 3rem;font-size:.85rem;color:var(--text-muted)}.splash-footer a{color:var(--accent)}.support-card{max-width:480px;margin:0 auto 2rem;padding:1.25rem 1.5rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;text-align:center}.support-heading{margin:0 0 .4rem;font-size:.9rem;font-weight:500;color:var(--text-muted)}.support-text{margin:0 0 .75rem;font-size:.85rem;line-height:1.5;color:var(--text-muted)}.support-btn{display:inline-block;padding:.45rem 1.1rem;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--radius-sm);font-weight:500;font-size:.85rem;text-decoration:none;transition:background var(--duration-fast),color var(--duration-fast)}.support-btn:hover{background:var(--accent-light);color:var(--accent-hover)}.support-btn-sm{padding:.35rem .9rem;font-size:.8rem}.support-note{margin:.5rem 0 0;font-size:.75rem;color:var(--text-muted)}.support-card-compact{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem 1.5rem;font-size:.9rem;color:var(--text-secondary)}.home{max-width:520px;margin:4rem auto;background:var(--bg-card);padding:2rem;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-light);animation:card-enter .35s ease-out}.home h2{margin-top:0}.home form{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.home input{padding:.6rem .75rem;font-size:1rem;border:1px solid var(--border-input);border-radius:6px;transition:border-color .2s,box-shadow .2s}.home input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.home button,.toolbar button{padding:.6rem 1rem;font-size:1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s}.home button:hover:not(:disabled),.toolbar button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.home button:active:not(:disabled),.toolbar button:active:not(:disabled){transform:translateY(0);box-shadow:none}.home button:disabled,.toolbar button:disabled{background:var(--accent-dim);cursor:not-allowed}.confirm-subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:.25rem}.confirm-code-inputs{display:flex;gap:.5rem;justify-content:center;margin:1rem 0}.confirm-digit{width:3rem!important;height:3.5rem;text-align:center;font-size:1.5rem!important;font-weight:600;letter-spacing:0;border:2px solid var(--border-input)!important;border-radius:8px!important;padding:0!important}.confirm-digit:focus{border-color:var(--accent)!important;outline:none;box-shadow:0 0 0 3px var(--accent-glow)}.confirm-footer{font-size:.9rem;color:var(--text-secondary)}.link-button{background:none!important;border:none;color:var(--accent)!important;cursor:pointer;font-size:inherit;padding:0!important;text-decoration:underline}.link-button:disabled{background:none!important;color:var(--accent-dim)!important;cursor:not-allowed}.profile-form{gap:.75rem!important}.profile-field{display:flex;flex-direction:column;gap:.2rem}.profile-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.profile-readonly{background:var(--bg-hover)!important;color:var(--text-muted)!important;cursor:not-allowed}.profile-mono{font-family:monospace;font-size:.85rem!important}.profile-hint{font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.profile-avatar-section{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.profile-avatar-btn{position:relative;width:72px;height:72px;border-radius:50%;border:3px solid var(--border-input);overflow:hidden;cursor:pointer;background:var(--bg-hover);padding:0;flex-shrink:0}.profile-avatar-btn:hover{border-color:var(--accent)}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-initial{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.8rem;font-weight:700;color:var(--accent)}.profile-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:0;transition:opacity .15s}.profile-avatar-btn:hover .profile-avatar-overlay{opacity:1}.profile-avatar-info{display:flex;flex-direction:column}.profile-avatar-name{font-weight:600;font-size:1.1rem}.profile-avatar-email{font-size:.8rem;color:var(--text-muted)}.profile-title-badge{display:inline-block;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-light);border:1px solid var(--accent-dim);border-radius:12px;padding:.15rem .6rem}.profile-title-select{width:100%;padding:.5rem;border:1px solid var(--border-input);border-radius:6px;font-size:.9rem;background:var(--bg-card)}.inat-link-btn{display:inline-block;margin-top:.5rem;padding:.6rem 1.2rem;background:#74ac00;color:var(--bg-card);border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer}.inat-link-btn:hover{background:#5a8a00}.inat-link-btn:disabled{opacity:.5;cursor:not-allowed}.profile-page .ui-tabs{border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:0;gap:.125rem}.profile-page .ui-tab{border-radius:8px 8px 0 0;border:1px solid transparent;border-bottom:none;padding:.5rem 1.25rem;margin-bottom:-1px;background:none;color:var(--text-muted);font-weight:500;box-shadow:none}.profile-page .ui-tab:hover{background:var(--bg-hover);color:var(--text-secondary)}.profile-page .ui-tab.active{background:var(--bg-card);color:var(--accent);border-color:var(--border-color);border-bottom-color:var(--bg-card);font-weight:600;box-shadow:none}.profile-page h2{display:none}.profile-section{margin-bottom:1rem;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px}.profile-section-title{margin:0 0 .75rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.profile-section-account{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;background:none;border:none;padding:.5rem 0}.profile-setting-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border-light);flex-wrap:wrap}.profile-setting-row:last-child{border-bottom:none}.profile-setting-row--stacked{flex-direction:column;align-items:stretch}.profile-setting-info{display:flex;flex-direction:column;gap:.15rem;flex:1}.profile-setting-name{font-size:.9rem;font-weight:600}.profile-theme-toggle{display:flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;flex-shrink:0}.profile-theme-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .5rem;border:none;background:var(--bg-card);color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.profile-theme-btn+.profile-theme-btn{border-left:1px solid var(--border-color)}.profile-theme-btn.active{background:var(--accent);color:#fff}.profile-theme-btn:hover:not(.active){background:var(--bg-hover)}.profile-visibility-toggle{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-top:.5rem}.profile-visibility-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border:2px solid var(--border-color);border-radius:10px;background:var(--bg-card);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.profile-visibility-btn.active{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px var(--accent)}.profile-visibility-btn:hover:not(.active){border-color:var(--accent-dim)}.profile-visibility-icon{font-size:1.3rem}.profile-visibility-label{font-size:.85rem;font-weight:600;color:var(--text-primary)}.profile-visibility-btn.active .profile-visibility-label{color:var(--accent)}.profile-visibility-desc{font-size:.7rem;color:var(--text-secondary)}.profile-toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.profile-toggle input{opacity:0;width:0;height:0}.profile-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-color);border-radius:24px;cursor:pointer;transition:background var(--duration-normal)}.profile-toggle-slider:before{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;background:var(--bg-card);border-radius:50%;transition:transform .2s}.profile-toggle input:checked+.profile-toggle-slider{background:var(--accent)}.profile-toggle input:checked+.profile-toggle-slider:before{transform:translate(20px)}.profile-delete-btn{background:none;color:var(--error);border:1px solid var(--error);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer}.profile-delete-btn:hover{background:var(--error);color:#fff}.consent-fieldset{border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;margin:.75rem 0 0}.consent-legend{font-size:.85rem;font-weight:600;color:var(--text-secondary);padding:0 .3rem}.consent-item{display:flex;align-items:flex-start;gap:.5rem;margin:.5rem 0;font-size:.85rem;color:var(--text-secondary);cursor:pointer;line-height:1.4}.consent-item input[type=checkbox]{margin-top:.15rem;accent-color:var(--accent);flex-shrink:0}.consent-item a{color:var(--accent)}.legal{max-width:700px;margin:2rem auto;background:var(--bg-card);padding:2rem 2.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);line-height:1.6}.legal h2{margin-top:0}.legal h3{margin-top:1.5rem;margin-bottom:.4rem;font-size:1.05rem;color:var(--text-primary)}.legal h4{margin-top:1rem;margin-bottom:.3rem;font-size:.95rem;color:var(--text-primary)}.legal p,.legal li{font-size:.9rem;color:var(--text-secondary)}.legal ul{padding-left:1.4rem}.legal li{margin-bottom:.3rem}.legal a{color:var(--accent)}.legal code{background:var(--bg-hover);padding:.1rem .35rem;border-radius:3px;font-size:.85rem}.legal-updated{font-size:.8rem;color:var(--text-muted);margin-top:-.5rem}.legal-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color);font-size:.9rem}.legal-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.85rem}.legal-table th,.legal-table td{text-align:left;padding:.5rem .75rem;border:1px solid var(--border-color)}.legal-table th{background:var(--bg-page);font-weight:600;font-size:.8rem;color:var(--text-secondary)}.legal-table td{color:var(--text-secondary)}.legal-table a{color:var(--accent)}@media (max-width: 700px){.legal{margin:1rem;padding:1.25rem}}.profile-logout{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.profile-logout-btn{background:none;border:1px solid var(--error);color:var(--error);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer}.profile-logout-btn:hover{background:var(--error-bg)}.linked-account{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:var(--success-bg);border:1px solid var(--accent-dim);border-radius:var(--radius-md);padding:.75rem 1rem;margin-bottom:1.25rem}.linked-badge{background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:4px}.linked-info{display:flex;flex-direction:column;flex:1}.linked-name{font-weight:600;font-size:1rem}.linked-sub{font-size:.75rem;color:var(--text-secondary)}.linked-actions{display:flex;gap:.4rem}.linked-action-btn{font-size:.8rem;padding:.3rem .65rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:5px}.linked-action-btn:hover{background:var(--accent-hover)}.unlinked-account{background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius-md);padding:.75rem 1rem;margin-bottom:1.25rem}.unlinked-account p{margin:0;font-size:.9rem;color:var(--warning)}.home p a{color:var(--accent)}.obs-page-header{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);padding:1rem 1.25rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.obs-page-account{display:flex;align-items:center;gap:.5rem}.obs-page-linked-badge{background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .4rem;border-radius:3px}.obs-page-inat-user{font-weight:600;color:var(--accent);text-decoration:none;font-size:1.05rem}.obs-page-inat-user:hover{text-decoration:underline}.obs-page-stats{display:flex;gap:1.25rem;font-size:.9rem;color:var(--text-secondary)}.obs-page-search{margin-bottom:1rem;display:flex;gap:.5rem;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.obs-page-search::-webkit-scrollbar{display:none}.obs-page-search input{flex:1;padding:.6rem .75rem;font-size:1rem;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-card);transition:border-color .2s,box-shadow .2s}.obs-page-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.obs-page-sort{padding:.6rem .75rem;font-size:.9rem;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-card);cursor:pointer;white-space:nowrap}.obs-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.obs-page-card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);border:1px solid var(--border-light);overflow:hidden;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal)}.obs-page-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-lg)}.obs-page-card:hover .obs-page-photo{filter:brightness(1.05)}.obs-page-photo{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:filter .2s,transform .3s}.obs-page-card:hover .obs-page-photo{transform:scale(1.03)}.obs-page-no-photo{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);color:var(--text-muted);font-size:.85rem}.obs-page-info{padding:.6rem .75rem;display:flex;flex-direction:column;gap:.15rem}.obs-page-species{font-weight:600;font-size:.9rem;font-style:italic}.obs-page-rank{font-size:.7rem;color:var(--text-muted);text-transform:capitalize}.bounty-card-desc{font-size:.78rem;color:var(--text-secondary);margin:.2rem 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.bounty-card-creator{font-size:.72rem;color:var(--text-muted);font-style:italic}.bounty-card-common{font-size:.8rem;color:var(--text-secondary);font-weight:500}.bounty-card-stats{display:flex;align-items:center;gap:.75rem;margin:.25rem 0}.bounty-card-location{font-size:.75rem;color:var(--text-muted)}.bounty-detail-links{display:flex;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}.bounty-detail-links a{font-size:.82rem;color:var(--accent);text-decoration:none;font-weight:500}.bounty-detail-links a:hover{text-decoration:underline}.bounty-claim-banner{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--bg-secondary, #f0fdf4);border:1px solid var(--accent, #22c55e);border-radius:8px;margin-bottom:1rem}.bounty-claim-banner strong{font-size:.95rem}.bounty-claim-banner span{font-size:.85rem;color:var(--text-muted)}.bounty-celebration{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}.bounty-celebration h2{color:var(--accent, #22c55e);font-size:1.6rem;margin:.5rem 0 .25rem}.bounty-celebration-title{color:var(--text-muted);font-size:1rem;margin:0}.bounty-celebration-canvas{position:absolute;top:0;left:0;width:100%;height:200px}.obs-page-meta{display:flex;align-items:center;justify-content:space-between;margin-top:.15rem}.obs-page-date{font-size:.75rem;color:var(--text-muted)}.obs-page-link{font-size:.75rem;color:var(--accent);text-decoration:none;font-family:monospace}.obs-page-link:hover{text-decoration:underline}.obs-page-load-more{text-align:center;padding:1.5rem 0}.obs-page-load-more button{padding:.6rem 1.5rem;font-size:.95rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer}.obs-page-load-more button:disabled{background:var(--accent-dim);cursor:not-allowed}.obs-page-load-more button:hover:not(:disabled){background:var(--accent-hover)}.obs-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;animation:overlay-fade .2s ease-out;overscroll-behavior:contain}body:has(.obs-detail-overlay){overflow:hidden}.obs-detail{background:var(--bg-card);border-radius:16px;box-shadow:0 12px 48px #00000040;width:92vw;max-width:620px;max-height:90vh;overflow-y:auto;padding:0;animation:panel-slide-up .25s ease-out}.obs-detail-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem .75rem;position:sticky;top:0;background:var(--bg-card);z-index:2;border-bottom:1px solid var(--border-light)}.obs-detail-header h3{margin:0;font-style:italic;font-size:1.35rem;line-height:1.3;color:var(--text-primary)}.obs-detail-header button{background:none;border:1px solid var(--border-input);border-radius:8px;padding:.35rem .85rem;font-size:.85rem;cursor:pointer;color:var(--text-secondary);flex-shrink:0;margin-left:1rem;transition:background .15s,border-color .15s}.obs-detail-header button:hover{background:var(--bg-page);border-color:var(--text-muted)}.obs-detail-sciname{font-style:italic;color:var(--text-secondary);font-size:.95rem;padding:0 1.5rem .75rem}.obs-detail-photos{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem 1.5rem 1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.obs-detail-photos::-webkit-scrollbar{height:4px}.obs-detail-photos::-webkit-scrollbar-thumb{background:var(--border-input);border-radius:2px}.obs-detail-photo{width:100%;border-radius:10px;object-fit:cover}.obs-detail-photos .obs-detail-photo{flex:0 0 auto;scroll-snap-align:start;max-height:420px;width:auto;border-radius:10px;box-shadow:0 2px 8px #0000001a}.obs-detail-photo-wrapper{flex:0 0 auto;scroll-snap-align:start;position:relative}.obs-detail-photo-wrapper .obs-detail-photo{flex:none}.obs-detail-attribution{display:block;font-size:.7rem;color:var(--text-muted, #888);padding:.15rem .25rem;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obs-detail-badges{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.5rem}.obs-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.25rem .65rem;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}.obs-badge-research{background:var(--accent-light);color:var(--accent)}.obs-badge-needs_id{background:#fff3e0;color:#e65100}.obs-badge-casual{background:#fce4ec;color:#c62828}.obs-badge-captive{background:#f3e5f5;color:#7b1fa2}.obs-badge-obscured{background:#fff8e1;color:#f57f17}.obs-badge-license{background:#e3f2fd;color:#1565c0}.obs-badge-improving{background:var(--accent-light);color:var(--accent)}.obs-badge-supporting{background:#e3f2fd;color:#1565c0}.obs-badge-leading{background:#fff3e0;color:#e65100}.obs-badge-maverick{background:#fce4ec;color:#c62828}.obs-detail-description{padding:1rem 1.5rem;font-size:.95rem;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;background:var(--bg-elevated);border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.obs-detail-fields{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:.5rem 0;margin:0 1.5rem 1rem}.obs-detail-row{display:flex;flex-direction:column;padding:.75rem 0;border-bottom:1px solid var(--border-light)}.obs-detail-row:nth-last-child(-n+2){border-bottom:none}.obs-detail-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:.2rem}.obs-detail-value{font-size:.95rem;color:var(--text-primary);text-transform:capitalize;line-height:1.4}.obs-detail-value a{color:var(--accent);text-decoration:none}.obs-detail-value a:hover{text-decoration:underline}.obs-detail-accuracy{color:var(--text-muted);font-size:.82em}.obs-detail-section{padding:1rem 1.5rem;border-top:1px solid var(--border-light)}.obs-detail-section h4{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.obs-detail-ident{padding:.65rem 0;border-bottom:1px solid var(--border-light)}.obs-detail-ident:last-child{border-bottom:none}.obs-detail-ident-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.15rem}.obs-detail-ident-taxon{font-style:italic;font-size:.88rem;color:var(--text-secondary)}.obs-detail-ident-body,.obs-detail-comment-body{margin:.35rem 0 0;font-size:.88rem;color:var(--text-secondary);line-height:1.5}.obs-detail-comment{padding:.65rem 0;border-bottom:1px solid var(--border-light)}.obs-detail-comment:last-child{border-bottom:none}.obs-detail-sound{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}.obs-detail-sound audio{width:100%;border-radius:8px}.obs-detail-inat-link{display:block;text-align:center;background:#74ac00;color:#fff;text-decoration:none;padding:.85rem 1rem;margin:1rem 1.5rem 1.5rem;border-radius:10px;font-weight:600;font-size:1rem;transition:background .15s,transform .1s}.obs-detail-inat-link:hover{background:#5a8a00;transform:translateY(-1px)}.imports-list{list-style:none;padding:0;margin:1rem 0 0}.imports-list li{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;margin-bottom:.5rem;background:var(--bg-elevated)}.imports-list .import-info{display:flex;flex-direction:column}.imports-list .import-name{font-weight:600}.imports-list .import-count{font-size:.85rem;color:var(--text-secondary)}.imports-list .import-actions{display:flex;gap:.4rem}.imports-list button{font-size:.85rem;padding:.35rem .7rem}.imports-subtitle{color:var(--text-secondary);font-size:.9rem;margin:.25rem 0 0}.imports-subtitle a{color:var(--accent)}.btn-danger{background:var(--error);color:var(--bg-card);border-color:#b71c1c}.btn-danger:hover{background:#b71c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.status{margin-top:1rem;padding:.75rem;border-radius:6px;border:1px solid transparent}.status.error{background:var(--error-bg);color:var(--error);border-color:var(--error-light)}.status.success{background:var(--success-bg);color:var(--success);border-color:var(--success)}.status.info{background:var(--info-bg);color:var(--info);border-color:var(--info)}.maintenance-banner{margin-top:2rem;padding:1.5rem 2rem;background:#fff3e0;border:2px solid #f57c00;border-radius:12px;text-align:center;max-width:420px;margin-left:auto;margin-right:auto}.maintenance-icon{font-size:2rem;display:block;margin-bottom:.5rem}.maintenance-banner h3{margin:0 0 .5rem;font-size:1.2rem;color:#e65100}.maintenance-banner p{margin:0;color:#4e342e;font-size:.95rem;line-height:1.5}.toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}.tree-date-filter{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--bg-card);border-radius:8px;box-shadow:0 1px 6px #0000000d;margin-bottom:.75rem}.tree-date-filter label{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-secondary);font-weight:600}.tree-date-filter input[type=date]{padding:.3rem .5rem;border:1px solid var(--border-input);border-radius:6px;font-size:.85rem}.tree-date-filter button{padding:.35rem .7rem;font-size:.85rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer}.tree-date-filter button:hover{background:var(--accent-hover)}.tree-date-filter button:disabled{background:var(--accent-dim);cursor:not-allowed}.tree-date-clear{background:transparent!important;color:var(--text-muted)!important;border:1px solid var(--border-color)!important}.tree-date-clear:hover{color:var(--text-secondary)!important;border-color:var(--text-muted)!important}.cladogram-wrap{position:relative;background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);overflow:hidden;animation:card-enter .4s ease-out .15s both}.cladogram-wrap svg{display:block;width:100%;height:80vh}.node circle{fill:var(--bg-card);stroke:var(--accent);stroke-width:2px;cursor:pointer;transition:fill .2s,stroke .2s,r .15s}.node:hover circle{stroke:var(--accent-hover);filter:drop-shadow(0 0 4px var(--accent-glow))}.node.collapsed circle{fill:var(--accent)}.node.collapsed:hover circle{fill:var(--accent-hover)}.node text{font-size:11px;font-family:-apple-system,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;transition:fill .15s}.node:hover text{fill:var(--accent-hover)}.link{fill:none;stroke:#8aab86;stroke-width:1.5px;transition:stroke .2s}.cladogram-theme-picker{position:absolute;top:.5rem;right:.5rem;z-index:5;display:flex;align-items:center;gap:.35rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.25rem .5rem;box-shadow:0 1px 4px #00000014}.cladogram-theme-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.cladogram-theme-picker select{font-size:.75rem;padding:.2rem .4rem;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-card);cursor:pointer;color:var(--text-primary)}.cladogram-wrap[data-theme=ocean] .node circle{stroke:#0288d1}.cladogram-wrap[data-theme=ocean] .node.collapsed circle{fill:#0288d1}.cladogram-wrap[data-theme=ocean] .node:hover circle{stroke:#01579b;filter:drop-shadow(0 0 4px rgba(2,136,209,.4))}.cladogram-wrap[data-theme=ocean] .node.collapsed:hover circle{fill:#01579b}.cladogram-wrap[data-theme=ocean] .node:hover text{fill:#01579b}.cladogram-wrap[data-theme=ocean] .link{stroke:#81d4fa}.cladogram-wrap[data-theme=forest] .node circle{stroke:#2e7d32}.cladogram-wrap[data-theme=forest] .node.collapsed circle{fill:#2e7d32}.cladogram-wrap[data-theme=forest] .node:hover circle{stroke:#1b5e20;filter:drop-shadow(0 0 4px rgba(27,94,32,.4))}.cladogram-wrap[data-theme=forest] .node.collapsed:hover circle{fill:var(--accent-hover)}.cladogram-wrap[data-theme=forest] .node:hover text{fill:var(--accent-hover)}.cladogram-wrap[data-theme=forest] .link{stroke:#a5d6a7}.cladogram-wrap[data-theme=sunset] .node circle{stroke:#e65100}.cladogram-wrap[data-theme=sunset] .node.collapsed circle{fill:#e65100}.cladogram-wrap[data-theme=sunset] .node:hover circle{stroke:#bf360c;filter:drop-shadow(0 0 4px rgba(230,81,0,.4))}.cladogram-wrap[data-theme=sunset] .node.collapsed:hover circle{fill:#bf360c}.cladogram-wrap[data-theme=sunset] .node:hover text{fill:#bf360c}.cladogram-wrap[data-theme=sunset] .link{stroke:#ffcc80}.cladogram-wrap[data-theme=midnight] .node circle{stroke:#7c4dff}.cladogram-wrap[data-theme=midnight] .node.collapsed circle{fill:#7c4dff}.cladogram-wrap[data-theme=midnight] .node:hover circle{stroke:#6200ea;filter:drop-shadow(0 0 4px rgba(124,77,255,.4))}.cladogram-wrap[data-theme=midnight] .node.collapsed:hover circle{fill:#6200ea}.cladogram-wrap[data-theme=midnight] .node:hover text{fill:#6200ea}.cladogram-wrap[data-theme=midnight] .link{stroke:#b388ff}.cladogram-controls{position:absolute;top:.5rem;left:.5rem;z-index:5;display:flex;align-items:center;gap:.35rem;padding:.4rem .6rem;background:var(--bg-glass);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cladogram-controls button{padding:.3rem .6rem;font-size:.82rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;line-height:1}.cladogram-controls button:hover{background:var(--accent-hover)}.cladogram-hint{position:absolute;top:3rem;left:.5rem;z-index:4;font-size:.72rem;color:var(--text-muted);pointer-events:none}.controls-divider{width:1px;height:1.2rem;background:var(--border-color);margin:0 .15rem}.cladogram-search{width:130px;padding:.3rem .5rem;border:1px solid var(--border-input);border-radius:6px;font-size:.82rem;background:var(--bg-card);color:var(--text-primary)}.cladogram-search:focus{outline:none;border-color:var(--accent)}.search-nav{display:flex;align-items:center;gap:.15rem}.search-nav button{padding:.2rem .4rem;font-size:.9rem;min-width:1.4rem}.search-counter{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.node.search-match circle{stroke:#ff9800;stroke-width:3px;fill:#fff3e0}.node.search-match text{fill:#e65100;font-weight:700}.node.bounty-highlight circle{stroke:#f59e0b;stroke-width:3px;fill:#fef3c7}.node.bounty-highlight text{fill:#b45309;font-weight:700}path.link.bounty-highlight{stroke:#f59e0b;stroke-width:3px;stroke-opacity:.8}.node.bounty-phantom circle{stroke:#f59e0b;stroke-width:2px;stroke-dasharray:4 2;fill:#fffbeb;opacity:.8}.node.bounty-phantom text{fill:#d97706;font-weight:600;font-style:italic;opacity:.85}.node.bounty-highlight-0 circle{stroke:#f59e0b;fill:#fef3c7}.node.bounty-highlight-0 text{fill:#b45309}path.link.bounty-highlight-0{stroke:#f59e0b}.node.bounty-highlight-1 circle{stroke:#3b82f6;fill:#dbeafe}.node.bounty-highlight-1 text{fill:#1d4ed8}path.link.bounty-highlight-1{stroke:#3b82f6}.node.bounty-highlight-2 circle{stroke:#ef4444;fill:#fee2e2}.node.bounty-highlight-2 text{fill:#b91c1c}path.link.bounty-highlight-2{stroke:#ef4444}.node.bounty-highlight-3 circle{stroke:#10b981;fill:#d1fae5}.node.bounty-highlight-3 text{fill:#047857}path.link.bounty-highlight-3{stroke:#10b981}.node.bounty-highlight-4 circle{stroke:#8b5cf6;fill:#ede9fe}.node.bounty-highlight-4 text{fill:#6d28d9}path.link.bounty-highlight-4{stroke:#8b5cf6}.node.bounty-highlight-5 circle{stroke:#ec4899;fill:#fce7f3}.node.bounty-highlight-5 text{fill:#be185d}path.link.bounty-highlight-5{stroke:#ec4899}.bounty-path-toggle{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.85rem;color:var(--text-secondary, #6b7280)}.bounty-path-toggle label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.bounty-path-toggle input[type=checkbox]{accent-color:#f59e0b}.bounty-follow-btn{padding:.25rem .75rem;border-radius:999px;border:1.5px solid #f59e0b;background:transparent;color:#f59e0b;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.bounty-follow-btn:hover{background:#fef3c7}.bounty-follow-btn.following{background:#f59e0b;color:var(--bg-card)}.bounty-follow-btn.following:hover{background:#d97706}.bounty-sort-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9rem}.bounty-sort-bar label{color:var(--text-secondary, #6b7280);font-weight:500}.bounty-sort-bar select{padding:.3rem .6rem;border-radius:6px;border:1px solid var(--border, var(--border-color));background:var(--bg-primary, var(--bg-card));color:inherit;font-size:.85rem;cursor:pointer}.cladogram-tooltip{position:absolute;pointer-events:none;background:var(--bg-card);border:1px solid var(--border-input);border-radius:8px;padding:.5rem .65rem;box-shadow:0 4px 16px #0000001f;font-size:.85rem;max-width:260px;z-index:10;line-height:1.4}.cladogram-tooltip img{display:block;width:100%;margin-top:.4rem;border-radius:4px}.tree-stats-collapse{margin-bottom:.75rem}.tree-stats-summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text-secondary);padding:.5rem 0;list-style:none}.tree-stats-summary::-webkit-details-marker{display:none}.tree-stats-summary:before{content:"▸ "}.tree-stats-collapse[open]>.tree-stats-summary:before{content:"▾ "}.progress-bar{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);padding:1rem 1.25rem;margin-bottom:1rem;animation:card-enter .3s ease-out}.progress-stats{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:.75rem}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.4rem;font-weight:700;color:var(--accent);animation:stat-pop .4s ease-out}@keyframes stat-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.progress-track{height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#34a853);border-radius:4px;min-width:2px;transition:width .6s ease;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:progress-shimmer 2s ease-in-out infinite}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-label{margin:.4rem 0 0;font-size:.8rem;color:var(--text-muted);text-align:center}.photo-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;animation:overlay-fade .2s ease-out}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}.photo-panel{background:var(--bg-card);border-radius:12px;box-shadow:0 8px 32px #0003;width:90vw;max-width:640px;max-height:85vh;overflow-y:auto;padding:1.5rem;animation:panel-slide-up .25s ease-out}@keyframes panel-slide-up{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.photo-panel-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.photo-panel-header h3{margin:0}.photo-panel-rank{font-size:.8rem;color:var(--text-muted);font-style:italic}.photo-panel-header button{background:var(--border-color);border:none;border-radius:6px;padding:.35rem .75rem;cursor:pointer;font-size:.85rem;flex-shrink:0}.photo-panel-header button:hover{background:var(--border-color)}.photo-panel-empty{color:var(--text-muted);text-align:center;padding:2rem 0}.obs-summary{margin:0 0 .75rem;font-size:.85rem;color:var(--text-secondary)}.obs-list{display:flex;flex-direction:column;gap:.35rem}.obs-item{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.obs-date-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .75rem;background:var(--bg-elevated);border:none;cursor:pointer;font-size:.9rem;text-align:left}.obs-date-btn:hover{background:var(--bg-hover)}.obs-date-btn.expanded{background:var(--accent-light)}.obs-date-arrow{font-size:.7rem;color:var(--text-muted);width:.8em}.obs-date-text{flex:1;font-weight:500}.obs-id{font-size:.75rem;color:var(--text-muted);font-family:monospace}.obs-detail{padding:.75rem;border-top:1px solid var(--border-color);background:var(--bg-card)}.obs-detail img{display:block;width:100%;max-height:400px;object-fit:contain;border-radius:6px;margin-bottom:.5rem;background:var(--bg-page)}.obs-no-photo{color:var(--text-muted);text-align:center;padding:1.5rem 0;margin:0}.obs-inat-link{display:inline-block;font-size:.85rem;color:var(--accent);text-decoration:none}.obs-inat-link:hover{text-decoration:underline}.nav-badge-link{display:flex!important;align-items:center;gap:.3rem;background:#ffffff1f!important;border-radius:20px!important;padding:.3rem .7rem .3rem .5rem!important}.nav-badge-link:hover{background:#ffffff40!important}.nav-badge-trophy{font-size:.95rem;line-height:1}.nav-badge-count{font-size:.8rem;font-weight:600;color:#fff;letter-spacing:.02em}.ach-page{max-width:900px;margin:0 auto}.ach-hero{position:relative;background:linear-gradient(135deg,#164a25,var(--accent) 40%,#34a853);border-radius:16px;padding:2.5rem 1.5rem 2rem;margin-bottom:1rem;overflow:hidden;text-align:center;color:#fff}.ach-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.15}.ach-bg-critter{position:absolute;font-size:2.5rem;animation:drift 8s ease-in-out infinite alternate}.ach-bg-critter:nth-child(2n){animation-direction:alternate-reverse}@keyframes drift{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-12px) rotate(8deg)}}.ach-hero-content{position:relative;z-index:1}.ach-trophy{font-size:3rem;margin-bottom:.25rem}.ach-hero h2{margin:0;font-size:1.8rem;font-weight:800}.ach-subtitle{margin:.25rem 0 1.25rem;font-size:.95rem;opacity:.8}.ach-ring-wrap{position:relative;width:110px;height:110px;margin:0 auto .5rem}.ach-ring{width:100%;height:100%;transform:rotate(-90deg)}.ach-ring-bg{fill:none;stroke:#fff3;stroke-width:8}.ach-ring-fill{fill:none;stroke:#a5d6a7;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .8s ease}.ach-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:.1rem}.ach-ring-num{font-size:1.6rem;font-weight:800}.ach-ring-sep{font-size:1.1rem;opacity:.6}.ach-ring-den{font-size:1rem;opacity:.7}.ach-pct{margin:0;font-size:.85rem;opacity:.7}.ach-next{display:flex;align-items:center;gap:.75rem;background:var(--secondary-light);border:1px solid var(--secondary);border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem}.ach-next-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f57f17;writing-mode:vertical-lr;transform:rotate(180deg)}.ach-next-icon{font-size:2rem}.ach-next-info{display:flex;flex-direction:column}.ach-next-name{font-weight:700;font-size:1rem;color:var(--text-primary)}.ach-next-desc{font-size:.85rem;color:var(--text-secondary)}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem}.ach-card{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:12px;border:2px solid transparent;transition:transform .15s,box-shadow .15s}.ach-card.earned{background:linear-gradient(135deg,var(--bg-card),var(--accent-light));border-color:var(--accent-dim);box-shadow:0 2px 8px #2e7d3214}.ach-card.earned:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.ach-card.locked{background:var(--bg-elevated);border-color:var(--border-light)}.ach-card-icon{font-size:2.2rem;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.ach-card.locked .ach-card-icon{filter:grayscale(1) opacity(.4)}.ach-card-body{display:flex;flex-direction:column;flex:1;min-width:0}.ach-card-name{font-weight:700;font-size:.9rem;color:var(--text-primary)}.ach-card.locked .ach-card-name{color:var(--text-muted)}.ach-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.3}.ach-card.locked .ach-card-desc{color:var(--text-muted)}.ach-card-cat{font-size:.65rem;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:.15rem}.ach-card.locked .ach-card-cat{color:var(--text-muted)}.ach-card-rarity{font-size:.7rem;color:var(--text-muted);font-style:italic}.ach-card.locked .ach-card-rarity{color:var(--text-muted)}.ach-card-check{font-size:1.1rem;color:var(--accent);font-weight:700;flex-shrink:0}.nav-hamburger{display:none;background:none;border:none;cursor:pointer;padding:.5rem;z-index:20}.hamburger,.hamburger:before,.hamburger:after{display:block;width:22px;height:2px;background:var(--bg-card);border-radius:2px;transition:transform .25s,opacity .2s;position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0;width:22px}.hamburger:before{top:-7px}.hamburger:after{top:7px}.hamburger.open{background:transparent}.hamburger.open:before{top:0;transform:rotate(45deg)}.hamburger.open:after{top:0;transform:rotate(-45deg)}.crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem}.crop-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;max-width:360px;width:100%;text-align:center;box-shadow:0 12px 40px #00000080}.crop-modal h3{margin:0 0 .25rem;color:var(--text-primary);font-size:1.1rem}.crop-hint{color:var(--text-muted);font-size:.8rem;margin:0 0 1rem}.crop-canvas-wrap{display:flex;justify-content:center;margin-bottom:1rem}.crop-canvas{border-radius:50%;cursor:grab;touch-action:none;background:#111}.crop-canvas:active{cursor:grabbing}.crop-actions{display:flex;gap:.75rem;justify-content:center}.crop-cancel,.crop-save{padding:.5rem 1.5rem;border-radius:8px;border:none;font-weight:600;cursor:pointer;font-size:.9rem}.crop-cancel{background:transparent;color:var(--text-muted);border:1px solid var(--border-input)}.crop-cancel:hover{background:var(--bg-hover)}.crop-save{background:var(--accent);color:#fff}.crop-save:hover{background:var(--accent-hover)}.import-date-range,.following-date-range{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0}.import-date-label,.following-date-label{font-size:.85rem;color:var(--text-muted)}.import-date-toggle,.following-date-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.import-date-toggle input,.following-date-toggle input{accent-color:var(--accent)}.import-date-inputs,.following-date-inputs{display:flex;align-items:center;gap:.5rem}.import-date-inputs input,.following-date-inputs input{padding:.4rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-input);background:var(--bg-input);color:var(--text-primary);font-size:.85rem}.import-date-sep,.following-date-sep{color:var(--text-secondary);font-size:.85rem}.import-cancel-wrap{display:flex;justify-content:center;margin:-.5rem 0 1rem}.import-cancel-btn{padding:.4rem 1.2rem;border-radius:8px;border:1px solid #e53935;background:transparent;color:#e53935;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.import-cancel-btn:hover{background:#e53935;color:#fff}.import-bar{display:flex;align-items:center;gap:.6rem;padding:.45rem 2rem;font-size:.85rem;position:sticky;top:0;z-index:90}.import-bar-running{background:#e3f2fd;color:#1565c0;border-bottom:2px solid #90caf9}.import-bar-success{background:var(--accent-light);color:var(--accent);border-bottom:2px solid #a5d6a7}.import-bar-error{background:#fbe9e7;color:#c62828;border-bottom:2px solid #ef9a9a}.import-bar-info{background:#fff8e1;color:#f57f17;border-bottom:2px solid #ffe082}.import-bar-spinner{width:14px;height:14px;border:2px solid #90caf9;border-top-color:#1565c0;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.import-bar-text{flex:1}.import-bar-cancel,.import-bar-dismiss{background:none;border:1px solid currentColor;color:inherit;border-radius:4px;padding:.15rem .5rem;cursor:pointer;font-size:.8rem;opacity:.8;transition:opacity .12s}.import-bar-cancel:hover,.import-bar-dismiss:hover{opacity:1}.import-bar-dismiss{border:none;font-size:1.1rem;line-height:1;padding:0 .3rem}.import-warning,.following-warning{font-size:.8rem;color:var(--text-muted);font-style:italic;margin:.5rem 0 1rem;padding:.5rem .75rem;background:#ffc10714;border-left:3px solid #ffc107;border-radius:4px}.following-page{max-width:700px;margin:0 auto}.following-subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.following-search{position:relative;margin-bottom:.5rem}.following-search-input{width:100%;padding:.65rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-input);background:var(--bg-input);color:var(--text-primary);font-size:.95rem}.following-search-input:focus{outline:none;border-color:var(--accent)}.following-search-spinner{position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.following-results{border:1px solid var(--border-input);border-radius:var(--radius-md);overflow:hidden;margin-bottom:1rem;background:var(--bg-card)}.following-result{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-bottom:1px solid var(--border-light)}.following-result:last-child{border-bottom:none}.following-result-img{width:36px;height:36px;border-radius:50%;object-fit:cover}.following-result-info{display:flex;flex-direction:column;flex:1;min-width:0}.following-result-login{font-weight:600;color:var(--text-primary);font-size:.9rem}.following-result-name{font-size:.8rem;color:var(--text-muted)}.following-result-obs{font-size:.75rem;color:var(--text-secondary)}.following-badge{font-size:.75rem;color:var(--accent);font-weight:600;padding:.25rem .6rem;border:1px solid var(--accent);border-radius:12px}.following-follow-btn{padding:.3rem .8rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:.8rem;cursor:pointer}.following-follow-btn:hover{background:var(--accent-hover)}.following-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.following-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-card);border-radius:10px;border:1px solid var(--border-color)}.following-card-info{display:flex;flex-direction:column;flex:1;min-width:0}.following-card-login{font-weight:600;color:var(--text-primary);font-size:.95rem;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}.following-card-obs{font-size:.8rem;color:var(--text-muted)}.following-card-actions{display:flex;gap:.4rem;flex-shrink:0}.following-import-btn{padding:.35rem .75rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:.8rem;cursor:pointer}.following-import-btn:hover{background:var(--accent-hover)}.following-import-btn:disabled{opacity:.5;cursor:not-allowed}.following-unfollow-btn{padding:.35rem .6rem;border-radius:8px;border:1px solid var(--text-secondary);background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer}.following-unfollow-btn:hover{border-color:#e53935;color:#e53935}.following-view-btn{padding:.35rem .6rem;border-radius:8px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:.8rem;cursor:pointer}.following-view-btn:hover{background:var(--accent);color:#fff}.friends-private-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.65rem;font-weight:600;padding:.15rem .4rem;border-radius:4px;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-light)}.profile-feedback{margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--border-color)}.profile-feedback-btn{padding:.5rem 1.2rem;border-radius:6px;border:1px solid var(--border-input);background:transparent;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:border-color .15s,color .15s}.profile-feedback-btn:hover{border-color:var(--accent);color:var(--accent)}.profile-feedback-cancel{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem}.profile-feedback-cancel:hover{color:var(--text-secondary)}.feedback-form{display:flex;flex-direction:column;gap:.75rem}.feedback-textarea{width:100%;padding:.75rem;border-radius:6px;border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-primary);font-size:.95rem;font-family:inherit;resize:vertical}.feedback-textarea:focus{outline:none;border-color:var(--accent)}.feedback-footer{display:flex;align-items:center;justify-content:space-between}.feedback-chars{font-size:.8rem;color:var(--text-muted)}.feedback-actions{display:flex;gap:.5rem;align-items:center}.feedback-thanks{color:var(--accent);font-weight:600}.spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem}.spinner-orbit{position:relative;width:120px;height:120px;animation:spinner-rotate 8s linear infinite}.spinner-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;animation:spinner-pulse 2s ease-in-out infinite}.spinner-critter{position:absolute;top:50%;left:50%;font-size:1.4rem;transform:rotate(calc(360deg / var(--n) * var(--i))) translateY(-48px) rotate(calc(-360deg / var(--n) * var(--i)));transform-origin:0 0;animation:spinner-bob 2s ease-in-out infinite;animation-delay:calc(var(--i) * .3s)}.spinner-message{margin:0;font-size:.95rem;font-weight:600;color:var(--text-muted)}.spinner-quip{margin:0;font-size:.85rem;color:var(--text-muted);font-style:italic;min-height:1.2em;transition:opacity .3s ease;opacity:0}.spinner-quip.visible{opacity:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.15)}}@keyframes spinner-bob{0%,to{filter:brightness(1);transform:rotate(calc(360deg / var(--n) * var(--i))) translateY(-48px) rotate(calc(-360deg / var(--n) * var(--i)))}50%{filter:brightness(1.4);transform:rotate(calc(360deg / var(--n) * var(--i))) translateY(-54px) rotate(calc(-360deg / var(--n) * var(--i)))}}.spinner-sm{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;vertical-align:middle;position:relative}.spinner-orbit-sm{position:relative;width:100%;height:100%;animation:spinner-rotate 3s linear infinite}.spinner-dot-sm{position:absolute;top:50%;left:50%;font-size:.6em;transform:rotate(calc(360deg / var(--n) * var(--i))) translateY(-.6em) rotate(calc(-360deg / var(--n) * var(--i)));transform-origin:0 0}@media (max-width: 700px){header{padding:env(safe-area-inset-top,0px) .5rem .3rem}header h1{font-size:1rem}.nav-hamburger{display:block}header nav{display:none;position:fixed;top:0;right:0;width:220px;height:100vh;background:var(--accent-hover);flex-direction:column;align-items:stretch;padding:4rem 1rem 1.5rem;gap:.25rem;z-index:15;box-shadow:-4px 0 24px #00000040}header nav.nav-open{display:flex}header nav a{padding:.7rem .75rem;font-size:1rem;border-radius:8px}.nav-avatar{width:32px!important;height:32px!important}main{padding:1rem 1rem calc(1rem + 60px)}.sub-nav{margin:-1rem -1rem 1rem;padding:.5rem 1rem}.splash-hero{padding:2rem .5rem 1.5rem}.splash-hero h2{font-size:1.5rem}.splash-tagline{font-size:.95rem}.splash-icon-ring{width:140px;height:140px}.splash-critter{font-size:1.2rem;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-60px) rotate(calc(-1 * var(--angle)))}@keyframes bob{0%,to{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-60px) rotate(calc(-1 * var(--angle)))}50%{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-66px) rotate(calc(-1 * var(--angle)))}}.splash-tree-icon{font-size:2.5rem}.splash-features{grid-template-columns:1fr;gap:.75rem;padding:1.25rem 0}.splash-cta{padding:.75rem 1.5rem;font-size:1rem}main:has(>.home){display:flex;flex-direction:column;justify-content:center}.home{margin:0 auto;padding:1.25rem;width:100%}.toolbar{flex-wrap:wrap;margin-bottom:.5rem}.toolbar h2{font-size:1.1rem}.tree-stats-collapse{margin-bottom:.5rem}.progress-stats{gap:1rem;justify-content:center}.stat-value{font-size:1.15rem}.cladogram-wrap svg{height:60vh}.cladogram-controls{flex-wrap:wrap}.cladogram-search{width:100px}.tree-date-filter{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.photo-panel{width:100vw;max-width:100vw;max-height:100vh;border-radius:0;padding:1rem}.obs-detail-overlay{padding-top:env(safe-area-inset-top);background:#000000d9}.obs-detail{width:100vw;max-width:100vw;max-height:calc(100vh - env(safe-area-inset-top));border-radius:0}.obs-detail-fields{grid-template-columns:1fr}.obs-detail-photos{padding:.5rem 1rem 1rem}.obs-detail-inat-link{margin:1rem 1rem 1.25rem}.obs-page-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}.obs-page-header{flex-direction:column;align-items:flex-start}.obs-page-stats{gap:.75rem;font-size:.85rem}.ach-hero{padding:1.5rem 1rem}.ach-hero-content h2{font-size:1.3rem}.ach-ring-wrap{width:90px;height:90px}.ach-ring-num{font-size:1.3rem}.ach-next{flex-direction:column;text-align:center;gap:.5rem;padding:.75rem}.ach-grid{gap:.5rem}.ach-card{padding:.6rem}.ach-card-icon{font-size:1.4rem;min-width:36px}.ach-card-name{font-size:.85rem}.ach-card-desc{font-size:.7rem}.imports-list li{flex-direction:column;align-items:flex-start;gap:.5rem}.imports-list .import-actions{width:100%}.imports-list button{flex:1;text-align:center}.linked-account{flex-direction:column;align-items:flex-start}.linked-actions{width:100%}.linked-action-btn{flex:1;text-align:center}.profile-avatar-section{gap:.75rem}.profile-avatar-btn{width:60px;height:60px}.profile-avatar-initial{font-size:1.4rem}.profile-setting-row{flex-direction:column;align-items:stretch;gap:.5rem}.profile-theme-toggle{align-self:flex-start}.following-card{flex-wrap:wrap}.following-card-actions{width:100%}.following-import-btn,.following-unfollow-btn{flex:1;text-align:center}.import-date-inputs,.following-date-inputs{flex-direction:column;align-items:stretch}.import-date-sep,.following-date-sep{text-align:center}}.game-status{display:flex;align-items:center;gap:.75rem;padding:.35rem 2rem;background:linear-gradient(135deg,var(--text-primary) 0%,#2e4a2d 100%);color:#e0e8df;font-size:.8rem}.game-status-level{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);color:var(--bg-card);font-weight:800;font-size:.75rem;flex-shrink:0;box-shadow:0 0 0 2px #f59e0b4d}.game-status-level-num{line-height:1}.game-status-xp{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.game-status-xp-bar{width:100%;height:6px;background:#ffffff26;border-radius:3px;overflow:hidden}.game-status-xp-fill{height:100%;background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:3px;transition:width .4s ease}.game-status-xp-text{font-size:.65rem;opacity:.7;white-space:nowrap}.profile-game-status{background:linear-gradient(135deg,var(--text-primary) 0%,#2e4a2d 100%);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;color:#e0e8df}.profile-level-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.profile-level-badge{font-weight:800;font-size:1.1rem;color:#f59e0b}.profile-xp-bar{width:100%;height:8px;background:#ffffff26;border-radius:4px;overflow:hidden;margin-bottom:.35rem}.profile-xp-fill{height:100%;background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:4px;transition:width .4s ease}.profile-xp-text{font-size:.75rem;opacity:.7}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg-card);border-top:1px solid var(--border-color);z-index:50;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.65rem 0 .55rem;text-decoration:none;color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:color .15s}.bottom-nav-tab:after{display:none}.bottom-nav-tab:hover{color:var(--text-secondary);background:transparent}.bottom-nav-tab.active{color:var(--accent)}.bottom-nav-icon{font-size:1.6rem;line-height:1;position:relative}.bottom-nav-badge{position:absolute;top:-4px;right:-10px;background:#ef4444;color:var(--bg-card);font-size:.6rem;font-weight:700;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:8px;padding:0 4px;box-sizing:border-box}.bottom-nav-fab{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom,0px));right:16px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#34a853);color:#fff;display:flex;align-items:center;justify-content:center;border:none;box-shadow:0 4px 12px #2b7a3b66;z-index:51;cursor:pointer;transition:transform .15s,box-shadow .15s}.bottom-nav-fab:after{display:none}.bottom-nav-fab:active{transform:scale(.9)}.bottom-nav-fab-icon{font-size:1.5rem;line-height:1}.sub-nav{display:flex;gap:.25rem;margin:0 -2rem 1.5rem;padding:.6rem 2rem;background:var(--bg-card);border-bottom:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch}.sub-nav-link{padding:.4rem .85rem;font-size:.85rem;border-radius:20px;text-decoration:none;color:var(--text-secondary);white-space:nowrap;transition:all .12s}.sub-nav-link:after{display:none}.sub-nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sub-nav-link.active{background:var(--accent);color:#fff}.welcome-page{max-width:480px;margin:3rem auto;text-align:center}.welcome-header{margin-bottom:1.5rem}.welcome-page input{width:100%;padding:.6rem .75rem;font-size:1rem;border:1px solid var(--border-input);border-radius:6px;transition:border-color .2s,box-shadow .2s}.welcome-page input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.welcome-page h2{font-size:1.6rem;margin:0 0 .5rem;color:var(--text-primary)}.welcome-subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin:0}.welcome-skip{margin-top:1.5rem;padding:.6rem 1.5rem;background:transparent;color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;cursor:pointer;transition:color .15s,border-color .15s}.welcome-skip:hover{color:var(--text-secondary);border-color:var(--text-muted)}.welcome-modes{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}.welcome-mode-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1.25rem;border:2px solid var(--border-color);border-radius:12px;background:var(--bg-card);cursor:pointer;transition:border-color .15s,box-shadow .15s;flex:1;min-width:180px;max-width:220px;text-align:center}.welcome-mode-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.welcome-mode-icon{font-size:2rem}.welcome-mode-title{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.welcome-mode-desc{font-size:.82rem;color:var(--text-secondary);line-height:1.4}.welcome-confirm-btn{padding:.7rem 2rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.welcome-confirm-btn:hover{background:var(--accent-hover)}.welcome-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.profile-mode-section{margin:1.5rem 0;padding:1rem;border:1px solid #e5e7eb;border-radius:10px;background:var(--bg-elevated)}.profile-mode-section h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary)}.profile-mode-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.profile-mode-label{font-size:.9rem;color:var(--text-secondary)}.profile-mode-btn{padding:.4rem 1rem;border:1px solid #1b5e20;border-radius:6px;background:transparent;color:#1b5e20;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.profile-mode-btn:hover{background:#1b5e20;color:var(--bg-card)}.friends-add-section{position:relative;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.friends-add-input{flex:1;padding:.6rem .75rem;font-size:1rem;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-card)}.friends-add-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.friends-add-btn{padding:.6rem 1.2rem;font-size:.9rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap}.friends-add-btn:hover:not(:disabled){background:var(--accent-hover)}.friends-add-btn:disabled{background:var(--accent-dim);cursor:not-allowed}.friends-list{display:flex;flex-direction:column;gap:.5rem}.friends-accept-btn{padding:.35rem .75rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:.8rem;cursor:pointer}.friends-accept-btn:hover{background:var(--accent-hover)}.friends-pending-badge{font-size:.8rem;color:#f57f17;font-weight:600;padding:.25rem .6rem;border:1px solid #f57f17;border-radius:12px}.friends-search-spinner{font-size:.8rem;color:var(--text-muted);padding:.4rem 0}.friends-search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-input);border-radius:8px;box-shadow:0 4px 12px #0000001f;z-index:20;max-height:300px;overflow-y:auto}.dark .friends-search-dropdown{background:var(--bg-card);border-color:var(--border-input)}.friends-search-result{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .75rem;border:none;background:none;cursor:pointer;text-align:left;font-size:.95rem}.friends-search-result:hover,.dark .friends-search-result:hover{background:var(--bg-hover)}.friends-search-result-info{display:flex;flex-direction:column}.friends-search-result-name{font-weight:600}.friends-search-result-tag{font-size:.75rem;color:var(--text-muted);font-family:monospace}.friends-search-empty{padding:1rem;text-align:center;color:var(--text-muted);font-size:.9rem}.profile-user-tag{font-size:.8rem;color:var(--text-muted);font-family:monospace;margin-left:.35rem;font-weight:400}.lb-table{display:flex;flex-direction:column;gap:.35rem}.lb-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;border:2px solid transparent;background:var(--bg-elevated);transition:background .1s}.lb-row:hover{background:var(--bg-hover)}.lb-self{border-color:var(--accent);background:var(--accent-light)!important}.lb-rank{font-weight:700;color:var(--text-muted);min-width:2.5rem;text-align:center;font-size:.9rem}.lb-user{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.lb-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-hover)}.lb-avatar-img{width:100%;height:100%;object-fit:cover}.lb-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-score{font-weight:700;font-size:.95rem;color:var(--accent);min-width:3rem;text-align:right}.lb-my-rank{text-align:center;margin-top:1rem;padding:.75rem;background:var(--warning-bg);border:1px solid var(--secondary);border-radius:var(--radius-md);font-size:.9rem;color:var(--secondary)}@media (max-width: 400px){.obs-page-grid{grid-template-columns:1fr 1fr}.ach-hero{padding:1rem .75rem}.ach-bg-critter{font-size:1.2rem}.splash-features{padding:1rem 0}.progress-stats{gap:.6rem}.stat-value{font-size:1rem}.stat-label{font-size:.65rem}}.taxon-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-card);border:1px solid var(--border, var(--border-color));border-radius:8px;box-shadow:0 4px 12px #0000001f;max-height:260px;overflow-y:auto;margin-top:2px}.taxon-result{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;border:none;background:none;cursor:pointer;text-align:left;font-size:.9rem;color:inherit}.taxon-result:hover{background:var(--bg-hover)}.taxon-result-icon{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0}.taxon-result-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.taxon-result-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taxon-result-sci{font-style:italic;opacity:.7;font-size:.82rem}.taxon-result-rank{font-size:.75rem;opacity:.5;text-transform:capitalize}.taxon-selected{display:flex;align-items:flex-start;gap:.6rem;padding:.5rem .75rem;background:var(--bg-hover);border:1px solid var(--border, var(--border-color));border-radius:8px;font-size:.9rem}.taxon-selected em{font-style:italic}.taxon-selected-info{display:flex;flex-direction:column;gap:.3rem;min-width:0;flex:1}.taxon-selected-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.taxon-meta-tag{font-size:.75rem;padding:.1rem .45rem;border-radius:4px;background:var(--bg-hover);color:var(--accent-hover)}.taxon-conservation{background:#fff3e0;color:#e65100}.taxon-extinct{background:#fce4ec;color:#c62828}.taxon-extinct-badge{font-size:.7rem;margin-left:.4rem;padding:.05rem .35rem;border-radius:3px;background:#fce4ec;color:#c62828;font-weight:600;vertical-align:middle}.taxon-meta-link{font-size:.75rem;color:var(--accent);text-decoration:none}.taxon-meta-link:hover{text-decoration:underline}.taxon-clear-btn{margin-left:auto;background:none;border:none;font-size:1.2rem;cursor:pointer;opacity:.5;padding:0 .25rem;line-height:1}.taxon-clear-btn:hover{opacity:1}.taxon-searching{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.5}.create-obs{max-width:600px;margin:0 auto;padding-bottom:5rem}.create-obs h2{margin:0 0 1.5rem}.create-obs-section{margin-bottom:1.25rem;position:relative}.create-obs-section>label{display:block;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);margin-bottom:.4rem}.create-obs input[type=text],.create-obs input[type=number],.create-obs input[type=date],.create-obs textarea,.create-obs select{width:100%;padding:.6rem .75rem;font-size:1rem;border:1px solid var(--border-input);border-radius:6px;transition:border-color .2s,box-shadow .2s;font-family:inherit}.create-obs input:focus,.create-obs textarea:focus,.create-obs select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.create-obs-photos{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-start}.create-obs-photo-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.create-obs-photo-thumb{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color)}.create-obs-photo-thumb img{width:100%;height:100%;object-fit:cover}.create-obs-photo-remove{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.create-obs-photo-remove:hover{background:#000c}.create-obs-photo-buttons{display:flex;gap:.5rem}.create-obs-photo-buttons .btn{flex:1;padding:.75rem 1rem;font-size:.95rem;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background .15s}.create-obs-photo-buttons .btn-primary{background:var(--accent);color:#fff}.create-obs-photo-buttons .btn-primary:hover{background:var(--accent-hover)}.create-obs-photo-buttons .btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.create-obs-photo-buttons .btn-secondary:hover{background:var(--border-color)}.create-obs-taxon-dropdown{list-style:none;margin:.25rem 0 0;padding:0;background:var(--bg-card);border:1px solid var(--border-input);border-radius:6px;box-shadow:0 4px 12px #0000001a;max-height:250px;overflow-y:auto;position:absolute;left:0;right:0;z-index:20}.create-obs-taxon-dropdown li{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;cursor:pointer;transition:background .1s}.create-obs-taxon-dropdown li:hover{background:var(--bg-hover)}.create-obs-taxon-dropdown li+li{border-top:1px solid #f0f0f0}.create-obs-taxon-icon{width:36px;height:36px;border-radius:4px;object-fit:cover;flex-shrink:0}.create-obs-taxon-rank{font-size:.8rem;color:var(--text-muted);text-transform:capitalize}.create-obs-selected-taxon{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:var(--bg-hover);border-radius:6px;border:1px solid var(--border-input)}.create-obs-selected-taxon span{flex:1}.create-obs-taxon-row{display:flex;gap:.5rem;align-items:stretch}.create-obs-taxon-row input{flex:1}.create-obs-vision-btn{white-space:nowrap;font-size:.85rem;padding:.5rem .75rem}.create-obs-vision-hint{color:var(--text-muted);font-size:.85rem;margin:0}.create-obs-vision-sci{font-style:italic;color:var(--text-secondary);font-size:.85rem}.create-obs-vision-score{font-size:.8rem;color:var(--accent);font-weight:600}.create-obs-location{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-hover);border-radius:6px;border:1px solid var(--border-input);font-family:monospace;font-size:.9rem}.create-obs-location span{flex:1}.create-obs-location-inputs{display:flex;flex-direction:column;gap:.5rem}.create-obs-location-manual{display:flex;gap:.5rem}.create-obs-location-manual input{flex:1}.create-obs-locating{color:var(--text-secondary);font-size:.9rem;margin:0}.create-obs-location-error{color:#c62828;font-size:.8rem;margin:0}.btn-small,.create-obs .btn-small{padding:.3rem .6rem;font-size:.8rem;background:var(--bg-hover);color:var(--text-primary);border:none;border-radius:4px;cursor:pointer;transition:background .15s;flex-shrink:0}.btn-small:hover{background:var(--border-color)}.create-obs-submit{width:100%;padding:.75rem 1rem;font-size:1.05rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .1s;margin-top:.5rem}.create-obs-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.create-obs-submit:disabled{background:var(--accent-dim);cursor:not-allowed}.create-obs-error{color:var(--error);font-size:.9rem;margin:.5rem 0}.create-obs-progress{color:var(--accent);font-size:.9rem;margin:.5rem 0}.create-obs-success{text-align:center;padding:3rem 1.5rem;max-width:400px;margin:0 auto}.create-obs-success-icon{font-size:3rem;color:var(--accent);margin-bottom:.5rem}.create-obs-success h2{margin:0 0 1rem}.create-obs-xp{font-size:1.3rem;font-weight:700;color:var(--accent);margin:.5rem 0}.create-obs-levelup{font-size:1.1rem;font-weight:700;color:#f9a825;margin:.25rem 0 1rem}.create-obs-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.5rem}.create-obs-actions .btn{display:inline-block;padding:.6rem 1rem;font-size:.95rem;border:none;border-radius:6px;cursor:pointer;text-decoration:none;text-align:center;font-weight:500;transition:background .15s}.create-obs-actions .btn-primary{background:var(--accent);color:#fff}.create-obs-actions .btn-primary:hover{background:var(--accent-hover)}.create-obs-actions .btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.create-obs-actions .btn-secondary:hover{background:var(--border-color)}.obs-detail-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.obs-detail-actions button{flex:1;padding:.5rem .75rem;font-size:.85rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .15s}.obs-detail-edit-btn{background:var(--bg-hover);color:var(--text-primary)}.obs-detail-edit-btn:hover{background:var(--border-color)}.obs-detail-delete-btn{background:#fde8e8;color:var(--error)}.obs-detail-delete-btn:hover{background:#f9caca}.obs-detail-delete-confirm{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem;background:#fff5f5;border-radius:6px;border:1px solid #f9caca}.obs-detail-delete-confirm p{margin:0;font-size:.9rem;color:var(--error)}.obs-detail-delete-confirm-actions{display:flex;gap:.5rem}.obs-detail-delete-confirm-actions button{flex:1;padding:.45rem .75rem;font-size:.85rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .15s}.admin-page{max-width:800px;margin:0 auto;padding:16px}.admin-page h2{margin:0 0 4px}.admin-subtitle{color:var(--text-muted);font-size:13px;margin:0 0 20px}.admin-section{border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;overflow:hidden}.admin-section h3{margin:0;padding:12px 16px;background:var(--bg-elevated);font-size:14px;font-weight:600;-webkit-user-select:none;user-select:none}.admin-section-body{padding:16px}.admin-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-row input{padding:6px 10px;border:1px solid var(--border-input);border-radius:4px;font-size:13px}.admin-row button,.admin-section-body>button{padding:6px 12px;background:var(--accent);color:var(--bg-card);border:none;border-radius:4px;font-size:13px;cursor:pointer}.admin-row button:hover,.admin-section-body>button:hover{background:var(--accent-hover)}.admin-btn-danger{background:#c62828!important}.admin-btn-danger:hover{background:#8e0000!important}.admin-error{color:#c62828;font-size:13px;margin:8px 0 0}.admin-success{color:var(--accent);font-size:13px;margin:8px 0 0}.admin-result{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:4px;padding:12px;font-size:12px;overflow-x:auto;margin:8px 0 0}.admin-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:12px}.admin-table th,.admin-table td{padding:8px 10px;border-bottom:1px solid var(--border-light);text-align:left}.admin-table th{background:var(--bg-elevated);font-weight:600}.admin-mono{font-family:monospace;font-size:12px}.offline-banner{background:var(--warning-bg);color:var(--warning);text-align:center;padding:8px 16px;font-size:13px;font-weight:500;border-bottom:1px solid var(--warning)}.share-btn{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;margin-right:8px}.share-btn:active{background:var(--accent-dim)}html.dark .cladogram-wrap svg text{fill:var(--text-secondary)}html.dark .node circle{stroke:var(--accent-dim);fill:var(--bg-input)}html.dark .node text{fill:var(--text-secondary);stroke:var(--bg-card)}html.dark .link{stroke:var(--border-input)!important}html.dark .bottom-nav{background:var(--bg-card)!important;border-top-color:var(--border-color)}html.dark .status.error{background:var(--error-bg);color:var(--error-light);border-color:#3a1518}html.dark .status.success{background:var(--success-bg);color:var(--success);border-color:var(--accent-dim)}html.dark .status.info{background:var(--info-bg);color:var(--info);border-color:#1e3450}html.dark .obs-detail{box-shadow:var(--shadow-xl)}html.dark .offline-banner{background:var(--warning-bg);color:var(--warning);border-color:var(--secondary-hover)}html.dark .import-status-bar{background:var(--success-bg);border-color:var(--accent-dim)}html.dark .share-btn{background:var(--accent-light);color:var(--accent);border-color:var(--accent-dim)}html.dark .share-btn:active{background:var(--accent-dim)}html.dark .profile-logout-btn{color:var(--error);border-color:var(--error)}html.dark .profile-logout-btn:hover{background:var(--error-bg)}html.dark .profile-delete-btn{color:var(--error);border-color:#3a1518}html.dark .profile-delete-btn:hover{background:var(--error-bg);color:#fff}html.dark .profile-page .ui-tab.active{background:var(--bg-card);border-bottom-color:var(--bg-card)}html.dark .linked-account{background:var(--success-bg);border-color:var(--accent-dim)}html.dark .unlinked-account{background:var(--warning-bg);border-color:var(--secondary-hover)}html.dark .unlinked-account p{color:var(--warning)}html.dark ::-webkit-scrollbar{background:var(--bg-page)}html.dark ::-webkit-scrollbar-thumb{background:var(--border-input);border-radius:4px}html.dark .node.bounty-highlight circle{stroke:#fbbf24;fill:#78350f}html.dark .node.bounty-highlight text{fill:#fcd34d}html.dark path.link.bounty-highlight{stroke:#fbbf24;stroke-opacity:1}html.dark .node.bounty-highlight-0 circle{stroke:#fbbf24;fill:#78350f}html.dark .node.bounty-highlight-0 text{fill:#fcd34d}html.dark path.link.bounty-highlight-0{stroke:#fbbf24}html.dark .node.bounty-highlight-1 circle{stroke:#60a5fa;fill:#1e3a5f}html.dark .node.bounty-highlight-1 text{fill:#93c5fd}html.dark path.link.bounty-highlight-1{stroke:#60a5fa}html.dark .node.bounty-highlight-2 circle{stroke:#f87171;fill:#5f1e1e}html.dark .node.bounty-highlight-2 text{fill:#fca5a5}html.dark path.link.bounty-highlight-2{stroke:#f87171}html.dark .node.bounty-highlight-3 circle{stroke:#34d399;fill:#064e3b}html.dark .node.bounty-highlight-3 text{fill:#6ee7b7}html.dark path.link.bounty-highlight-3{stroke:#34d399}html.dark .node.bounty-highlight-4 circle{stroke:#a78bfa;fill:#3b1f7e}html.dark .node.bounty-highlight-4 text{fill:#c4b5fd}html.dark path.link.bounty-highlight-4{stroke:#a78bfa}html.dark .node.bounty-highlight-5 circle{stroke:#f472b6;fill:#5f1e3b}html.dark .node.bounty-highlight-5 text{fill:#f9a8d4}html.dark path.link.bounty-highlight-5{stroke:#f472b6}html.dark .node.bounty-phantom circle{fill:var(--secondary-light)}html.dark .node.bounty-phantom text{fill:var(--secondary)}html.dark .splash-hero h2{background:linear-gradient(135deg,#4ade80,#6ee7a0,#34d058);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}html.dark .following-unfollow-btn{color:var(--error);border-color:#3a1518}html.dark .subscriber-badge,html.dark .subscriber-badge-lg{background:linear-gradient(135deg,#d97706,#b45309)}.subscriber-badge{display:inline-block;font-size:.65rem;font-weight:700;color:var(--bg-card);background:linear-gradient(135deg,#f59e0b,#d97706);padding:.1rem .4rem;border-radius:.6rem;margin-left:.35rem;vertical-align:middle;text-transform:uppercase;letter-spacing:.03em}.subscriber-badge-lg{display:inline-block;font-size:.8rem;font-weight:700;color:var(--bg-card);background:linear-gradient(135deg,#f59e0b,#d97706);padding:.25rem .6rem;border-radius:.6rem;text-transform:uppercase;letter-spacing:.03em}.subscription-page{max-width:480px;margin:0 auto}.subscription-page h2{margin-bottom:.5rem}.subscription-active-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem;margin-bottom:1rem}.subscription-active-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.subscription-active-status{font-size:.85rem;color:#22c55e;font-weight:600}.subscription-expires,.subscription-since{font-size:.85rem;color:var(--text-muted);margin:.25rem 0}.subscription-perks{list-style:none;padding:0;margin:.75rem 0}.subscription-perks li{padding:.3rem 0;font-size:.9rem;color:var(--text-primary)}.subscription-perks li:before{content:"✓";color:var(--accent);font-weight:700}.subscription-manage-hint{font-size:.8rem;color:var(--text-muted);margin-top:.75rem}.subscription-status-card{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:.75rem;padding:.75rem 1rem;margin-bottom:1rem}.subscription-manage-link{font-size:.85rem;font-weight:600;color:#92400e;text-decoration:none;padding:.3rem .75rem;border:1px solid #d97706;border-radius:.5rem;flex-shrink:0}html.dark .subscription-manage-link{color:#fde68a;border-color:#b45309}html.dark .subscription-status-card{background:linear-gradient(135deg,#451a03,#78350f);border-color:#92400e}.subscription-cta-card{display:block;text-decoration:none;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:.75rem;padding:.75rem 1rem;margin-bottom:1rem;color:#92400e;cursor:pointer}.subscription-cta-card strong{display:block;margin-bottom:.15rem}.subscription-cta-card span{font-size:.85rem}html.dark .subscription-cta-card{background:linear-gradient(135deg,#451a03,#78350f);border-color:#92400e;color:#fde68a}.paywall-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:var(--bg-page);display:flex;flex-direction:column;overflow:hidden;animation:ui-fade-in .15s ease-out}.paywall-close{position:absolute;top:max(12px,env(safe-area-inset-top,12px));right:16px;z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast),border-color var(--duration-fast)}.paywall-close:hover{background:var(--bg-hover);border-color:var(--text-muted)}.paywall-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(56px,calc(env(safe-area-inset-top,12px) + 48px)) 20px calc(env(safe-area-inset-bottom,0px) + 20px);max-width:480px;margin:0 auto;width:100%;box-sizing:border-box}.paywall-hero{text-align:center;margin-bottom:1.25rem}.paywall-title{font-size:1.5rem;font-weight:800;color:var(--text-primary);margin:0 0 .5rem}.paywall-subtitle{font-size:.95rem;color:var(--text-secondary);line-height:1.45;margin:0}.paywall-features{margin-bottom:1.5rem}.paywall-features-heading{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 .6rem}.paywall-features-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.15rem}.paywall-feature-item{display:flex;align-items:center;gap:.65rem;padding:.5rem 0;font-size:.95rem;color:var(--text-primary)}.paywall-feature-icon{font-size:1.15rem;width:1.6rem;text-align:center;flex-shrink:0}.paywall-plans{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.paywall-plan{position:relative;display:flex;flex-direction:column;padding:.85rem 1rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);text-align:left;-webkit-appearance:none;font-family:inherit}.paywall-plan:hover{border-color:var(--accent-dim)}.paywall-plan--selected{border-color:var(--accent);border-width:2px;background:var(--accent-light)}.paywall-plan--disabled{opacity:.5;cursor:not-allowed}.paywall-plan--disabled:hover{border-color:var(--border)}.paywall-plan-badge{position:absolute;top:-9px;left:12px;background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:var(--radius-full);line-height:1.4}html.dark .paywall-plan-badge{color:#0c1410}.paywall-plan-body{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.paywall-plan-info{display:flex;flex-direction:column;gap:.1rem}.paywall-plan-name{font-size:1rem;font-weight:700;color:var(--text-primary)}.paywall-plan-name-sub{font-weight:400;color:var(--text-secondary)}.paywall-plan-sub{font-size:.8rem;color:var(--text-muted)}.paywall-plan-remaining{font-size:.78rem;font-weight:600;color:#d97706}html.dark .paywall-plan-remaining{color:#fbbf24}.paywall-plan-price{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.paywall-plan-amount{font-size:1.15rem;font-weight:800;color:var(--text-primary)}.paywall-plan-crossed{font-size:.75rem;color:var(--text-muted);text-decoration:line-through}.paywall-plan-onetime{font-size:.75rem;color:var(--text-muted)}.paywall-cta{width:100%;padding:.9rem;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.paywall-cta:active:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-xs)}.paywall-cta:disabled{opacity:.6;cursor:not-allowed}html.dark .paywall-cta{background:var(--accent);color:#0c1410}html.dark .paywall-cta:active:not(:disabled){background:var(--accent-hover)}.paywall-legal{font-size:.68rem;color:var(--text-muted);text-align:center;line-height:1.45;margin:.5rem 0 0;padding:0 .5rem}.paywall-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding-bottom:.5rem}.paywall-footer-link{background:none;border:none;padding:0;font-size:.78rem;color:var(--text-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px;font-family:inherit}.paywall-footer-link:disabled{opacity:.6;cursor:not-allowed}.paywall-footer-sep{color:var(--border-color);font-size:.7rem}.paywall-web-notice{text-align:center;padding:1.5rem 0;color:var(--text-muted);font-size:.9rem}.pro-gate-locked{position:relative;cursor:pointer;border:1px dashed var(--border-color);border-radius:var(--radius-md);padding:1rem;text-align:center;color:var(--text-muted);font-size:.9rem;transition:border-color var(--duration-fast) var(--ease-out)}.pro-gate-locked:hover{border-color:var(--accent-dim)}.pro-gate-lock-icon{display:block;font-size:1.2rem;margin-bottom:.25rem}.pro-gate-locked .pro-gate-label{font-weight:600;color:var(--text-secondary)}.pro-gate-locked .pro-gate-hint{font-size:.8rem;color:var(--accent);margin-top:.15rem}.pro-intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.pro-intro-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;max-width:340px;width:100%;text-align:center}.pro-intro-card h3{font-size:1.2rem;margin-bottom:.5rem}.pro-intro-card p{font-size:.9rem;color:var(--text-secondary);line-height:1.4;margin-bottom:.75rem}.pro-intro-features{list-style:none;padding:0;margin:0 0 1rem;text-align:left}.pro-intro-features li{padding:.3rem 0;font-size:.9rem;color:var(--text-primary)}.pro-intro-features li:before{content:"✓ ";color:var(--accent);font-weight:700}.pro-intro-buttons{display:flex;gap:.5rem}.pro-intro-buttons button{flex:1;padding:.7rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer}.pro-intro-learn{background:var(--accent);color:#fff;border:none}.pro-intro-dismiss{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.obs-detail-fave-row{display:flex;align-items:center;gap:.4rem}.obs-fave-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:.1rem .3rem;border-radius:4px;transition:transform .15s;color:var(--text-secondary)}.obs-fave-btn:hover{transform:scale(1.15)}.obs-fave-btn.faved{color:#e53e3e}.obs-fave-btn:disabled{opacity:.4;cursor:default;transform:none}.obs-comment-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.obs-comment-textarea{resize:vertical;min-height:3rem;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font:inherit;font-size:.9rem;background:var(--bg-input);color:var(--text-primary)}.obs-comment-form button[type=submit]{align-self:flex-end;padding:.4rem 1rem;border-radius:6px;font-size:.85rem}.obs-detail-comment-header{display:flex;align-items:center;gap:.4rem}.obs-comment-delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:0 .3rem;margin-left:auto;border-radius:4px;transition:color .15s}.obs-comment-delete-btn:hover{color:#e53e3e}.obs-ident-actions{display:inline-flex;gap:.4rem;margin-left:auto}.obs-ident-action-btn{background:none;border:1px solid var(--border-color);border-radius:4px;padding:.15rem .5rem;font-size:.75rem;cursor:pointer;color:var(--text-secondary);transition:background .15s,color .15s}.obs-ident-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.obs-ident-withdraw:hover{color:#e53e3e;border-color:#e53e3e}.obs-ident-edit-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.75rem;background:var(--bg-hover);border-radius:8px}.obs-ident-edit-input,.obs-ident-edit-textarea{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:6px;font:inherit;font-size:.85rem;background:var(--bg-input);color:var(--text-primary)}.obs-ident-taxon-dropdown{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:6px;max-height:200px;overflow-y:auto;background:var(--bg-card)}.obs-ident-taxon-result{display:flex;flex-direction:column;align-items:flex-start;padding:.5rem .6rem;border:none;background:none;cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text-primary)}.obs-ident-taxon-result:hover{background:var(--bg-hover)}.obs-ident-taxon-name{font-weight:600;font-size:.85rem}.obs-ident-taxon-sci{font-size:.75rem;color:var(--text-muted);font-style:italic}.obs-ident-edit-actions{display:flex;gap:.5rem}.obs-ident-edit-actions button{padding:.35rem .8rem;border-radius:6px;font-size:.8rem}.obs-ident-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem;background:var(--bg-hover);border-radius:8px}.obs-ident-taxon-input{width:100%;padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:6px;font:inherit;font-size:.85rem;background:var(--bg-input);color:var(--text-primary)}.obs-ident-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:6px;max-height:200px;overflow-y:auto;background:var(--bg-card);box-shadow:var(--shadow-md)}.obs-ident-dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .6rem;border:none;background:none;cursor:pointer;text-align:left;width:100%;font:inherit;font-size:.85rem;color:var(--text-primary)}.obs-ident-dropdown-item:hover{background:var(--bg-hover)}.obs-ident-rank{font-size:.75rem;color:var(--text-muted);font-style:italic}.obs-ident-form button{align-self:flex-end;padding:.4rem 1rem;border-radius:6px;font-size:.85rem}.obs-project-toggle-btn{padding:.4rem 1rem;border-radius:6px;font-size:.85rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.obs-project-toggle-btn:hover{background:var(--bg-hover)}.obs-project-search{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.obs-project-search-input{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:6px;font:inherit;font-size:.85rem;background:var(--bg-input);color:var(--text-primary)}.obs-project-results{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:6px;max-height:200px;overflow-y:auto;background:var(--bg-card)}.obs-project-result{display:flex;justify-content:space-between;align-items:center;padding:.5rem .6rem;border:none;background:none;cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text-primary)}.obs-project-result:hover{background:var(--bg-hover)}.obs-project-title{font-weight:600;font-size:.85rem}.obs-project-type{font-size:.75rem;color:var(--text-muted)}.linked-unlink-btn{color:#e53e3e!important;border-color:#e53e3e!important}.linked-unlink-btn:hover{background:#e53e3e14!important}.following-sync{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.following-sync-btn{padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .15s}.following-sync-btn:hover{background:var(--bg-hover)}.following-sync-btn:disabled{opacity:.5;cursor:default}.following-sync-result{font-size:.85rem;color:var(--text-secondary)}.friends-source-badge{display:inline-block;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:4px;margin-left:.4rem;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.friends-source-inat{background:#74ac00;color:#fff}.friends-source-natmap{background:var(--accent);color:#fff}.friends-import-section{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.friends-import-btn{padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .15s}.friends-import-btn:hover{background:var(--bg-hover)}.friends-import-btn:disabled{opacity:.5;cursor:default}.friends-import-result{font-size:.85rem;color:var(--text-secondary)}.region-picker{padding:1rem 0}.region-picker--compact{padding:.5rem 0}.region-picker-title{margin:0 0 .75rem;font-size:1.1rem}.region-picker-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.region-picker-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.region-picker-item-info{display:flex;align-items:center;gap:.5rem}.region-picker-item-name{font-size:.9rem;font-weight:500}.region-picker-badge{font-size:.7rem;font-weight:600;padding:2px 6px;background:var(--accent-light);color:var(--accent);border-radius:4px}.region-picker-remove{font-size:.8rem;color:var(--error);background:none;border:none;cursor:pointer}.region-picker-detect{width:100%;padding:.7rem;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem}.region-picker-detect:disabled{opacity:.5;cursor:default}.region-picker-results{margin-top:.75rem}.region-picker-results-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.region-picker-result{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-light)}.region-picker-result-info{display:flex;flex-direction:column}.region-picker-result-name{font-size:.9rem;font-weight:500}.region-picker-result-type{font-size:.75rem;color:var(--text-muted)}.region-picker-add{padding:.35rem .75rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer}.region-picker-add:hover{background:var(--accent-light)}.region-picker-added{font-size:.8rem;color:var(--text-muted)}.region-picker-current{font-size:.85rem;color:var(--text-secondary);margin-top:.5rem}.guide-progress{margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color)}.guide-progress-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.guide-progress-text{font-size:.95rem}.guide-stats-toggle{font-size:.8rem;padding:.2rem .6rem;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer}.guide-progress-sep{color:var(--text-muted)}.guide-progress-pct{color:var(--text-muted);margin-left:.25rem;font-size:.85rem}.guide-progress-bar{height:8px;background:var(--border-light);border-radius:4px;overflow:hidden}.guide-progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .4s ease}.guide-filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.guide-filter-group{display:flex;gap:.25rem}.guide-filter-btn{flex:1;padding:.4rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s}.guide-filter-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.guide-filter-select{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:.85rem}.guide-taxon-scroller{display:flex;gap:.25rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}.guide-taxon-scroller::-webkit-scrollbar{display:none}.guide-taxon-btn{white-space:nowrap;padding:.3rem .6rem;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-card);color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:all .15s}.guide-taxon-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.guide-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}.guide-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.guide-card--unfound{opacity:.75}.guide-card-img{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center}.guide-card-img img{width:100%;height:100%;object-fit:cover}.guide-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text-muted);background:var(--bg-elevated)}.guide-card-info{padding:.4rem .5rem}.guide-card-name{display:block;font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guide-card-rarity{font-size:.7rem;font-weight:600}.guide-card-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center}.guide-empty{text-align:center;padding:3rem 1rem}.guide-empty h2{margin-bottom:.5rem}.guide-empty-msg{text-align:center;color:var(--text-muted);padding:2rem 0}.guide-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem 0;font-size:.85rem}.guide-pagination button{padding:.35rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer}.guide-pagination button:disabled{opacity:.4;cursor:default}.species-detail-back{background:none;border:none;color:var(--accent);font-size:.9rem;cursor:pointer;padding:0;margin-bottom:.75rem}.species-detail-hero{width:100%;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-elevated);margin-bottom:1rem}.species-detail-photo{width:100%;height:100%;object-fit:cover}.species-detail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;color:var(--text-muted)}.species-detail-info{padding:0 .25rem}.species-detail-name{margin:0 0 .25rem;font-size:1.3rem}.species-detail-sciname{font-size:.9rem;color:var(--text-secondary);font-style:italic;margin-bottom:.25rem}.species-detail-rank{font-size:.85rem;color:var(--text-muted);text-transform:capitalize}.species-detail-rarity{display:flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;margin:.5rem 0}.species-detail-rarity-dot{width:10px;height:10px;border-radius:50%}.species-detail-found{color:var(--accent);font-size:.85rem}.species-detail-hint{color:var(--text-muted);font-size:.85rem;font-style:italic}.species-detail-stats{display:flex;gap:2rem;margin:1rem 0;padding:.75rem 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.species-detail-stat{display:flex;flex-direction:column}.species-detail-stat-value{font-size:1.1rem;font-weight:600}.species-detail-stat-label{font-size:.75rem;color:var(--text-muted)}.species-detail-season{margin-top:1rem}.species-detail-season h3{font-size:.95rem;margin:0 0 .25rem}.species-detail-season-summary{font-size:.85rem;color:var(--text-secondary);margin:0 0 .5rem}.species-detail-months{display:flex;gap:2px;height:60px;align-items:flex-end}.species-detail-month{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.species-detail-month-bar{width:100%;border-radius:2px 2px 0 0;transition:height .3s}.species-detail-month-label{font-size:.55rem;color:var(--text-muted);margin-top:2px}.species-detail-month--active .species-detail-month-label{color:var(--accent);font-weight:600}.species-detail-month--now .species-detail-month-bar{outline:2px solid var(--accent);outline-offset:-1px}.species-detail-hints{margin-top:1rem}.species-detail-hints h3{font-size:.95rem;margin:0 0 .5rem}.species-detail-hints-list{margin:0;padding-left:1.2rem;list-style:disc;font-size:.85rem;color:var(--text-secondary);line-height:1.6}.species-detail-hints-list li{margin-bottom:.25rem}.species-detail-map-section{margin-top:1.25rem}.species-detail-map-section h3{font-size:.95rem;margin:0 0 .5rem}.species-detail-inat-link{display:inline-block;margin-top:1rem;font-size:.9rem;color:var(--accent);text-decoration:none}.species-detail-inat-link:hover{text-decoration:underline}.observation-map{border-radius:12px;overflow:hidden;border:1px solid var(--border-light);position:relative;z-index:0}.observation-map-loading{height:300px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.85rem}.discovery-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:pointer;animation:discovery-fade-in .4s ease}.discovery-overlay--epic{background:#4b0082e0}.discovery-overlay--legendary{background:linear-gradient(135deg,#b45a00eb,#c8a000eb)}@keyframes discovery-fade-in{0%{opacity:0}to{opacity:1}}.discovery-content{text-align:center;color:#fff;padding:2rem;max-width:320px;width:100%}.discovery-counter{font-size:.75rem;opacity:.6}.discovery-label{font-size:.9rem;opacity:.8;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.1em}.discovery-photo{width:200px;height:200px;margin:0 auto 1rem;border-radius:50%;overflow:hidden;border:3px solid rgba(255,255,255,.3);transition:transform .6s ease,border-color .6s ease}.discovery-photo img,.discovery-photo-img{width:100%;height:100%;object-fit:cover;filter:brightness(0);transition:filter .6s ease}.discovery-photo--revealed{transform:scale(1.05);border-color:#fffc}.discovery-photo--revealed img,.discovery-photo--revealed .discovery-photo-img{filter:brightness(1)}.discovery-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;background:#ffffff1a}.discovery-name{font-size:1.4rem;margin:0 0 .25rem;transition:opacity .4s ease .3s}.discovery-rarity{font-size:1rem;font-weight:700;transition:opacity .4s ease .4s}.discovery-xp{margin-top:.75rem;font-size:1.1rem;font-weight:600;color:gold;animation:discovery-xp-pop .4s ease}@keyframes discovery-xp-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.discovery-upgrade-link{display:block;font-size:.8rem;color:#ffffffa6;background:none;border:none;text-decoration:underline;text-underline-offset:2px;cursor:pointer;margin-top:.75rem;padding:0}.discovery-tap{font-size:.75rem;opacity:.4;margin-top:1.5rem}.discovery-overlay--rare{background:#1e4078e0}.discovery-overlay--rare .discovery-photo,.discovery-overlay--epic .discovery-photo,.discovery-overlay--legendary .discovery-photo{position:relative;overflow:visible}.discovery-overlay--rare .discovery-photo:after,.discovery-overlay--epic .discovery-photo:after,.discovery-overlay--legendary .discovery-photo:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .6s ease .6s}.discovery-overlay--rare .discovery-photo--revealed:after,.discovery-overlay--epic .discovery-photo--revealed:after,.discovery-overlay--legendary .discovery-photo--revealed:after{opacity:1}.discovery-overlay--rare .discovery-photo:after{background:linear-gradient(135deg,transparent 20%,rgba(255,255,255,.35) 40%,rgba(255,255,255,.1) 50%,transparent 70%);background-size:200% 200%;animation:holo-shimmer 2.5s ease-in-out infinite}.discovery-overlay--epic .discovery-photo:after{background:linear-gradient(135deg,transparent 15%,rgba(180,120,255,.45) 35%,rgba(255,255,255,.25) 50%,transparent 65%);background-size:200% 200%;animation:holo-shimmer 2s ease-in-out infinite}.discovery-overlay--legendary .discovery-photo:after{background:linear-gradient(135deg,rgba(255,215,0,.3) 10%,rgba(255,100,0,.4) 30%,rgba(255,255,255,.5) 50%,rgba(255,215,0,.3) 70%,transparent 90%);background-size:200% 200%;animation:holo-shimmer 1.5s ease-in-out infinite}@keyframes holo-shimmer{0%{background-position:200% 200%}to{background-position:-200% -200%}}.discovery-counter{font-size:.75rem;opacity:.5}.inat-attribution{font-size:.75rem;color:var(--text-muted, #888);text-align:center;margin:1.5rem 0 .5rem}.inat-attribution a{color:var(--accent, #4caf50);text-decoration:underline}.privacy-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.privacy-prompt{background:var(--bg-card, #1e1e1e);border-radius:16px;padding:1.5rem;max-width:380px;width:100%;text-align:center}.privacy-prompt h3{margin:0 0 .5rem;font-size:1.2rem}.privacy-prompt-desc{font-size:.85rem;color:var(--text-secondary, #aaa);margin:0 0 1.25rem;line-height:1.4}.privacy-prompt-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.privacy-prompt-option{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;border:2px solid var(--border-light, #333);background:transparent;cursor:pointer;text-align:left;transition:border-color .15s}.privacy-prompt-option--active{border-color:var(--accent, #4caf50);background:#4caf5014}.privacy-prompt-option-icon{font-size:1.4rem;flex-shrink:0}.privacy-prompt-option-label{font-weight:600;font-size:.9rem;color:var(--text-primary, #fff)}.privacy-prompt-option-desc{font-size:.75rem;color:var(--text-muted, #888);margin-left:auto}.privacy-prompt-confirm{width:100%;padding:.75rem;border-radius:10px;border:none;background:var(--accent, #4caf50);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.privacy-prompt-confirm:hover{background:var(--accent-hover)}.pro-gate-placeholder{padding:1.25rem;text-align:center;border-radius:10px;background:var(--bg-secondary, #f3f4f6);border:1px dashed var(--border-light, #ddd);color:var(--text-secondary);font-size:.9rem;margin:.75rem 0}.region-picker-limit-notice{font-size:.8rem;color:var(--text-secondary);margin:.25rem 0 .75rem}.region-picker-add--locked{opacity:.6;font-style:italic}.ui-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:visible;background:var(--bg-hover);flex-shrink:0;vertical-align:middle}.ui-avatar-badge{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--bg-card)}.ui-avatar-badge--pro{background:#f59e0b}.ui-avatar-badge--upgrade{background:var(--accent)}.ui-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.ui-avatar-initial{font-weight:700;color:var(--text-secondary);line-height:1;text-transform:uppercase}.ui-avatar-sm .ui-avatar-initial{font-size:.65rem}.ui-avatar-md .ui-avatar-initial{font-size:.85rem}.ui-avatar-lg .ui-avatar-initial{font-size:1.1rem}.ui-empty{text-align:center;padding:3rem 1.5rem;color:var(--text-muted)}.ui-empty p{margin:0 0 .75rem;font-size:.95rem;line-height:1.6}.ui-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border-light);padding-bottom:.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{padding:.5rem 1rem;border:none;background:none;font-size:.9rem;font-weight:500;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-full);transition:background var(--duration-fast),color var(--duration-fast),box-shadow var(--duration-fast);white-space:nowrap}.ui-tab:hover{background:var(--bg-hover);color:var(--text-secondary)}.ui-tab.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:var(--shadow-sm)}.ui-tab-badge{display:inline-block;min-width:1.1em;margin-left:.3rem;padding:.05rem .35rem;font-size:.7rem;font-weight:700;line-height:1.3;background:var(--accent-light);color:var(--accent);border-radius:10px}.ui-tab.active .ui-tab-badge{background:#ffffff40;color:#fff}.ui-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;animation:ui-fade-in .15s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ui-modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:600px;width:92%;max-height:90dvh;overflow-y:auto;animation:ui-slide-up var(--duration-normal) var(--ease-out);border:1px solid var(--border-light)}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-light)}.ui-modal-header h3{margin:0;font-size:1.15rem;font-weight:700}.ui-modal-close{background:none;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.3rem .8rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.ui-modal-close:hover{background:var(--bg-hover);border-color:var(--text-muted)}.ui-progress{width:100%;border-radius:var(--radius-full);background:var(--border-light);overflow:hidden}.ui-progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent),#34d058);transition:width .4s var(--ease-out)}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-slide-up{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0009}.tutorial-spotlight{position:fixed;box-shadow:0 0 0 9999px #0009;z-index:10000;pointer-events:none}.tutorial-tooltip{position:fixed;z-index:10001;width:300px;background:var(--bg-card);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-lg),0 4px 24px #00000040;border:1px solid var(--border-light);animation:ui-fade-in .2s ease}.tutorial-arrow-down:after,.tutorial-arrow-up:before{content:"";position:absolute;left:50%;transform:translate(-50%);border:8px solid transparent}.tutorial-arrow-down:after{bottom:-16px;border-top-color:var(--bg-card)}.tutorial-arrow-up:before{top:-16px;border-bottom-color:var(--bg-card)}.tutorial-step-indicator{font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.tutorial-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.tutorial-body{margin:0 0 1rem;font-size:.9rem;line-height:1.5;color:var(--text-secondary)}.tutorial-actions{display:flex;justify-content:space-between;align-items:center}.tutorial-skip{background:none;border:none;color:var(--text-muted);font-size:.85rem;cursor:pointer;padding:.25rem .5rem}.tutorial-skip:hover{color:var(--text-secondary)}.tutorial-nav{display:flex;gap:.5rem}.tutorial-back,.tutorial-next{border:none;border-radius:var(--radius-sm);padding:.45rem 1.1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background var(--duration-fast),transform .1s}.tutorial-back{background:var(--bg-hover);color:var(--text-secondary)}.tutorial-back:hover{background:var(--border-light)}.tutorial-next{background:var(--accent);color:#fff}.tutorial-next:hover{background:var(--accent-hover);transform:translateY(-1px)}html.web main{max-width:1200px;margin:0 auto;padding-bottom:2rem}html.web .bottom-nav{display:none}.header-nav-links{display:flex;align-items:center;gap:.25rem;margin-left:1.5rem}.header-nav-link{color:#fffc;text-decoration:none;padding:.4rem .75rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:color var(--duration-fast),background var(--duration-fast)}.header-nav-link:hover{color:#fff;background:#ffffff1f}.header-nav-link.active{color:#fff;background:#ffffff2e}.header-nav-link:after{display:none}
