*{margin:0;padding:0;box-sizing:border-box}[hidden]{display:none!important}html,body{width:100%;height:100%;overflow:hidden}body{opacity:0;transition:opacity .3s ease-in}body.loaded{opacity:1}body{display:flex;flex-direction:column;position:fixed;inset:0;font-family:Open Sans,Arial,sans-serif;background-color:var(--bg-body)}body *{text-align:center;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}button{outline:none;box-shadow:none;user-select:none}.no-outline{outline:none;box-shadow:none}.underline{text-decoration:underline}.dev-overlay{position:fixed;bottom:0;right:0;background-color:var(--overlay-black-30);color:var(--overlay-white-70);padding:2px 6px;font-size:var(--font-size-xs);font-family:monospace;pointer-events:none;user-select:none;z-index:var(--z-drag-ghost)}.hoverable,.btn-hover,.btn-hover:hover,.icon-hover,.icon-hover:hover,.scale-hover,.scale-hover:hover{transition:var(--hover-transition)}.form-hover,.form-hover:hover{transition:var(--hover-transition),border-color .3s ease}.interactive-base{transition:var(--hover-transition);cursor:pointer}@media (hover: hover){.hoverable:hover{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale))}.hoverable-scale:hover{transform:scale(var(--hover-scale))}.hoverable-brightness:hover{filter:brightness(var(--hover-brightness))}.interactive-hover:hover{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale));opacity:var(--state-hover-opacity)}.hover-parent:hover .hover-child{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale))}.btn-hover:hover{filter:brightness(var(--hover-brightness))}.icon-hover:hover{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale));opacity:var(--state-hover-opacity)}.form-hover:hover{filter:brightness(var(--hover-brightness))}.scale-hover:hover{transform:scale(var(--hover-scale))}}.no-hover-scale:hover{transform:none!important}.no-hover-brightness:hover{filter:none!important}.no-hover:hover,.disabled-hover:hover{filter:none!important;transform:none!important;opacity:inherit!important}@keyframes dropAnimation{0%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes swipeOutLeft{to{transform:rotate(-5deg) translate(-100%);opacity:0}}@keyframes incorrectAnswer{0%,to{background-color:var(--color-primary)}50%{background-color:var(--color-feedback-error)}}@keyframes pulse-shadow{0%,to{box-shadow:0 0 #ac0028b3}50%{box-shadow:0 0 0 8px #ac002800}}.name-pulse-effect{animation:pulse-shadow .5s cubic-bezier(.4,0,.6,1) 3}.drop-animation{animation:dropAnimation .3s ease-out forwards}.swipe-out-left{animation:swipeOutLeft .5s ease-out forwards}@keyframes nameWiggle{0%{transform:rotate(0)}15%{transform:rotate(3deg)}30%{transform:rotate(-4deg)}45%{transform:rotate(2deg)}60%{transform:rotate(-3deg)}75%{transform:rotate(1deg)}90%{transform:rotate(-1deg)}to{transform:rotate(0)}}.name-wiggle-animation{animation:nameWiggle 1.2s ease-in-out}.dust-layer-container{position:fixed;pointer-events:none;z-index:var(--z-dust)}.dust-layer{position:absolute;top:0;left:0;transform-origin:center;will-change:transform,opacity,filter}.name-pair__item--reform{animation:dustReform .28s ease-out}@keyframes dustReform{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.dust-layer{animation-duration:1ms!important}.name-pair__item--reform{animation-duration:1ms}}.name-pair__item--correct{animation:correctSettle .5s ease-out}.name-pair__item--correct:after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;animation:correctGlow .6s ease-out}.name-pair__item--correct:before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:var(--z-base);pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.38) 50%,transparent 62%);background-size:250% 100%;background-position:150% 0;animation:correctSheen .6s ease-out}@keyframes correctSettle{0%{transform:scale(1)}35%{transform:scale(1.045)}65%{transform:scale(.99)}to{transform:scale(1)}}@keyframes correctGlow{0%{box-shadow:0 0 #4caf50a6}to{box-shadow:0 0 0 16px #4caf5000}}@keyframes correctSheen{0%{background-position:150% 0}to{background-position:-150% 0}}@media (prefers-reduced-motion: reduce){.name-pair__item--correct,.name-pair__item--correct:before,.name-pair__item--correct:after{animation:none}}:root{--color-brand-primary: #74ac00;--color-brand-primary-rgb: 116, 172, 0;--color-brand-secondary: #ac0028;--color-neutral-100: #ffffff;--color-neutral-200: #f4f1ea;--color-neutral-300: #e7e2d6;--color-neutral-400: #e0e0e0;--color-neutral-500: #c0c0c0;--color-neutral-500-rgb: 192, 192, 192;--color-neutral-600: #909090;--color-neutral-700: #606060;--color-neutral-800: #424242;--color-neutral-900: #282828;--color-neutral-900-rgb: 40, 40, 40;--color-brand-bg-light: #efece4;--color-brand-bg-transparent: rgba(116, 172, 0, .2);--color-feedback-error: #F44336;--color-feedback-error-rgb: 244, 67, 54;--color-feedback-error-dark: #d32f2f;--color-feedback-success: #4CAF50;--color-feedback-info: #2196F3;--color-feedback-warning: #FFC107;--color-filter-accent: #2196F3;--color-filter-accent-rgb: 33, 150, 243;--color-brand-secondary-dark: #8a0020;--color-google-blue: #4285f4;--color-google-blue-rgb: 66, 133, 244;--color-pin-active-surface: #ffffff;--color-pin-active-accent: #74ac00;--color-range-continent-hover: #80afd4;--color-location-pin-core: #f77268;--overlay-white-05: rgba(255, 255, 255, .05);--overlay-white-10: rgba(255, 255, 255, .1);--overlay-white-15: rgba(255, 255, 255, .15);--overlay-white-20: rgba(255, 255, 255, .2);--overlay-white-40: rgba(255, 255, 255, .4);--overlay-white-50: rgba(255, 255, 255, .5);--overlay-white-60: rgba(255, 255, 255, .6);--overlay-white-70: rgba(255, 255, 255, .7);--overlay-white-72: rgba(255, 255, 255, .72);--overlay-white-78: rgba(255, 255, 255, .78);--overlay-white-80: rgba(255, 255, 255, .8);--overlay-white-85: rgba(255, 255, 255, .85);--overlay-white-88: rgba(255, 255, 255, .88);--overlay-white-90: rgba(255, 255, 255, .9);--overlay-white-95: rgba(255, 255, 255, .95);--overlay-black-05: rgba(0, 0, 0, .05);--overlay-black-10: rgba(0, 0, 0, .1);--overlay-black-20: rgba(0, 0, 0, .2);--overlay-black-30: rgba(0, 0, 0, .3);--overlay-black-40: rgba(0, 0, 0, .4);--overlay-black-50: rgba(0, 0, 0, .5);--overlay-black-62: rgba(0, 0, 0, .62);--overlay-black-70: rgba(0, 0, 0, .7);--overlay-black-90: rgba(0, 0, 0, .9);--color-glass-surface: rgba(250, 249, 244, .66);--color-glass-border: rgba(255, 255, 255, .55);--glass-blur: blur(14px) saturate(1.4);--color-background-primary: var(--color-brand-bg-light);--color-background-secondary: var(--color-neutral-200);--color-background-tertiary: var(--color-neutral-100);--color-surface-primary: var(--color-neutral-100);--color-surface-secondary: var(--color-brand-bg-transparent);--color-surface-tertiary: var(--color-neutral-200);--color-text-primary: var(--color-neutral-900);--color-text-primary-rgb: var(--color-neutral-900-rgb);--color-text-secondary: var(--color-neutral-800);--color-text-tertiary: var(--color-neutral-700);--color-text-on-brand: var(--color-neutral-100);--color-text-highlight: var(--color-brand-secondary);--color-action-primary: var(--color-brand-primary);--color-action-secondary: var(--color-brand-secondary);--color-action-tertiary: var(--color-neutral-500);--color-action-disabled: var(--color-neutral-500);--color-action-primary-hover: #0056b3;--color-background-muted: #6c757d;--color-text-muted: #adb5bd;--color-border-light: var(--color-neutral-300);--color-border-medium: var(--color-neutral-500);--color-border-medium-rgb: var(--color-neutral-500-rgb);--color-border-dark: var(--color-neutral-700);--space-xxs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-xxl: 3rem;--font-family-primary: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--font-size-display: 2.5rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-compact: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-pill: 9999px;--border-width-thin: 1px;--border-width-medium: 2px;--border-width-thick: 4px;--shadow-color: rgba(28, 30, 22, .1);--shadow-color-medium: rgba(28, 30, 22, .14);--shadow-color-strong: rgba(28, 30, 22, .2);--elevation-1: 0 1px 2px var(--shadow-color), 0 1px 3px var(--shadow-color);--elevation-2: 0 2px 6px var(--shadow-color), 0 6px 14px var(--shadow-color);--elevation-3: 0 8px 20px var(--shadow-color-medium), 0 2px 6px var(--shadow-color);--elevation-4: 0 16px 40px var(--shadow-color-strong), 0 4px 12px var(--shadow-color-medium);--elevation-dialog: var(--elevation-4);--z-base: 1;--z-raised: 2;--z-content: 10;--z-overlay: 1000;--z-dust: 1100;--z-modal-backdrop: 2000;--z-modal-content: 2001;--z-dialog: 5000;--z-drag-ghost: 9999;--z-popover: 10000;--z-tutorial: 10001;--z-toast: 1000000;--duration-instant: .1s;--duration-quick: .2s;--duration-standard: .3s;--duration-slow: .5s;--easing-standard: cubic-bezier(.4, 0, .2, 1);--easing-accelerate: cubic-bezier(.4, 0, 1, 1);--easing-decelerate: cubic-bezier(0, 0, .2, 1);--transition-standard: all var(--duration-standard) var(--easing-standard);--transition-quick: all var(--duration-quick) var(--easing-standard);--state-hover-opacity: .8;--state-active-scale: .95;--state-active-transform: scale(.95);--state-focus-ring: 0 0 0 2px var(--color-action-primary);--hover-brightness: 1.1;--hover-scale: 1.05;--hover-transition: all var(--duration-quick) var(--easing-standard);--dialog-background: var(--color-surface-tertiary);--dialog-title-color: var(--color-text-primary);--dialog-text-color: var(--color-text-primary);--dialog-shadow: var(--elevation-dialog);--dialog-item-background: var(--color-surface-primary);--dialog-item-background-hover: var(--color-surface-tertiary);--dialog-item-shadow: var(--elevation-1);--dialog-border-radius: var(--border-radius-lg);--dialog-padding: var(--space-sm);--dialog-surface: var(--dialog-background);--dialog-control-size: var(--tap-target-min);--dialog-header-slot: var(--tap-target-min);--dialog-divider: rgba(var(--color-text-primary-rgb), .12);--dialog-width-xs: 22rem;--dialog-width-sm: 25rem;--dialog-width-md: 32rem;--dialog-width-lg: 40rem;--dialog-width-xl: 48rem;--dialog-width-max: 75rem;--dialog-width-full: 95vw;--dialog-max-height: 95dvh;--button-border-radius: var(--border-radius-md);--button-padding-small: var(--space-xs) var(--space-sm);--button-padding-medium: var(--space-sm) var(--space-md);--button-padding-large: var(--space-md) var(--space-lg);--card-background: var(--color-surface-secondary);--card-border-radius: var(--border-radius-md);--card-padding: var(--space-md);--card-shadow: var(--elevation-1);--name-tile-sheen: linear-gradient(180deg, rgba(255, 255, 255, .22) 0%, rgba(255, 255, 255, .04) 42%, rgba(0, 0, 0, .14) 100%);--color-streak-flame: #ff7a18;--color-streak-freeze: #2196f3;--color-mastery-leaf: #5cb85c;--color-mastery-leaf-rgb: 92, 184, 92;--color-mastery-complete: #f4c02c;--color-mastery-complete-rgb: 244, 192, 44;--color-mastery-complete-text: #3a2f00;--color-mastery-complete-text-rgb: 58, 47, 0;--color-mastery-leaf-tile: #5cb85c;--color-mastery-leaf-tile-rgb: 92, 184, 92;--color-mastery-silver: #b4c0cc;--color-mastery-silver-rgb: 180, 192, 204;--color-mastery-tint-to-silver: #adbfc3;--color-mastery-tint-to-gold: #dec064;--color-mastery-leaf-text: #0e2b0e;--color-mastery-silver-text: #17222e;--color-mastery-silver-text-rgb: 23, 34, 46;--color-mastery-flash: #fffdf2;--color-mastery-complete-lit: #f6cb52;--color-mastery-gold-rim: #fef7e6;--color-mastery-gold-rim-soft: #fcedc5;--color-mastery-flash-rgb: 255, 253, 242;--toggle-bg-color: #e5f0d8;--toggle-slider-color: #d8e0cc;--toggle-text-color: var(--color-text-primary);--max-image-width: 480px;--center-min-height: 96px;--name-tile-font-size: 22px;--drag-tile-width: 300px;--ls-dock-min: calc(var(--center-min-height) + var(--space-sm));--ls-edge: var(--space-sm);--ls-gap: var(--space-xs);--ls-photo-max-aspect: 1.35;--ls-photo-min-aspect: .8;--ls-photo-band: calc(100dvh - var(--ls-dock-min) - var(--safe-area-top) - var(--safe-area-bottom) - 2 * var(--ls-edge) - var(--ls-gap));--ls-photo-half: calc((100vw - var(--safe-area-left) - var(--safe-area-right) - 2 * var(--ls-edge) - var(--ls-gap)) / 2);--image-overlay-button-size: var(--space-xxl);--image-overlay-globe-left: 75px;--image-overlay-map-width: 130px;--image-overlay-map-height: 78px;--tap-target-min: 44px;--color-primary: var(--color-brand-primary);--color-accent: var(--color-brand-secondary);--color-neutral-dark: var(--color-neutral-800);--color-neutral-darker: var(--color-neutral-900);--color-white: var(--color-neutral-100);--color-black: var(--color-neutral-900);--bg-body: var(--color-background-primary);--bg-cards: var(--color-surface-secondary);--bg-interactive: var(--color-action-primary);--bg-interactive-hover: rgba(255, 255, 255, .1);--bg-interactive-active: rgba(0, 0, 0, .1);--bg-dialog: var(--dialog-background);--bg-dialog-item: var(--dialog-item-background);--text-on-primary: var(--color-text-on-brand);--text-on-light: var(--color-text-primary);--text-secondary: rgba(255, 255, 255, .8);--effect-overlay: rgba(0, 0, 0, .3);--light-green: var(--color-surface-secondary);--light-green-not-transparent: var(--color-background-primary);--background-color: var(--color-surface-primary);--text-color: var(--color-text-on-brand);--counter-text-color: var(--color-text-primary);--vh: 1vh;--app-height: 100vh;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--toast-enter-offset: 20px;--toast-tile-gap: 12px;--action-bar-clearance: calc( var(--tap-target-min) + (2 * var(--space-sm)) + var(--safe-area-bottom) + var(--toast-tile-gap) );--safe-area-right: env(safe-area-inset-right, 0px)}@media (min-width: 768px){:root{--max-image-width: 560px;--center-min-height: 112px;--name-tile-font-size: 26px}}@media (min-width: 1024px){:root{--max-image-width: 640px;--center-min-height: 120px;--name-tile-font-size: 28px}}@media (min-width: 1280px){:root{--name-tile-font-size: 30px}}@media (min-width: 1920px){:root{--center-min-height: 140px;--name-tile-font-size: 34px}}@media (min-width: 2560px){:root{--center-min-height: 168px;--name-tile-font-size: 42px}}@media (max-width: 480px){:root{--image-overlay-map-width: 110px;--image-overlay-map-height: 66px}}@media (orientation: landscape) and (max-height: 460px){:root{--center-min-height: 64px;--name-tile-font-size: 17px}}body.is-swiping{--glass-blur: none}.dark-theme,.android-dark-theme,html.android-dark-theme,html.android-dark-theme body{--color-brand-primary: #3e7300;--color-brand-primary-rgb: 62, 115, 0;--color-brand-secondary: #d00;--color-neutral-900: #e0e0e0;--color-neutral-900-rgb: 224, 224, 224;--color-neutral-800: #cccccc;--color-neutral-700: #999999;--color-neutral-600: #777777;--color-neutral-500: #555555;--color-neutral-500-rgb: 85, 85, 85;--color-neutral-400: #444840;--color-neutral-300: #2b2e27;--color-neutral-200: #232620;--color-neutral-100: #1a1c19;--color-brand-bg-light: #232620;--color-brand-bg-transparent: rgba(62, 115, 0, .15);--color-background-primary: var(--color-neutral-100);--color-background-secondary: var(--color-neutral-200);--color-background-tertiary: var(--color-neutral-300);--color-surface-primary: var(--color-neutral-300);--color-surface-secondary: #262a22;--color-surface-tertiary: var(--color-neutral-200);--color-text-primary: var(--color-neutral-900);--color-text-primary-rgb: var(--color-neutral-900-rgb);--color-text-secondary: var(--color-neutral-800);--color-text-tertiary: var(--color-neutral-700);--color-text-on-brand: #ffffff;--shadow-color: rgba(0, 0, 0, .5);--shadow-color-medium: rgba(0, 0, 0, .6);--shadow-color-strong: rgba(0, 0, 0, .7);--color-primary: var(--color-brand-primary);--color-accent: var(--color-brand-secondary);--color-neutral-dark: var(--color-neutral-900);--color-neutral-darker: var(--color-neutral-800);--bg-body: var(--color-brand-bg-light);--bg-cards: #262a22;--bg-interactive: var(--color-brand-primary);--bg-dialog: var(--color-neutral-200);--bg-dialog-item: var(--color-neutral-300);--bg-toggle: #333;--text-on-light: var(--color-neutral-900);--text-secondary: rgba(220, 220, 220, .8);--effect-overlay: rgba(0, 0, 0, .5);--light-green: rgba(62, 115, 0, .2);--light-green-not-transparent: var(--color-brand-bg-light);--background-color: var(--color-neutral-100);--text-color: var(--color-neutral-100);--counter-text-color: var(--color-neutral-900);--color-white: #ffffff;--color-filter-accent: #4aa3f0;--color-filter-accent-rgb: 74, 163, 240;--color-range-continent-hover: #517493;--color-location-pin-core: #be3a2f;--dialog-background: var(--color-neutral-200);--dialog-title-color: var(--color-text-primary);--dialog-text-color: var(--color-neutral-900);--dialog-shadow: 0 4px 20px rgba(0, 0, 0, .3);--dialog-item-background: var(--color-neutral-300);--dialog-item-background-hover: #363a30;--dialog-item-shadow: 0 2px 10px rgba(0, 0, 0, .2);--toggle-slider-color: #444;--toggle-text-color: #fff;--color-glass-surface: rgba(30, 33, 27, .52);--color-glass-border: rgba(255, 255, 255, .12);--name-tile-sheen: linear-gradient(180deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .02) 42%, rgba(0, 0, 0, .2) 100%)}.chip{display:inline-flex;align-items:center;gap:var(--space-xxs);max-width:100%;padding:var(--space-xxs) var(--space-sm);border-radius:999px;background-color:var(--overlay-black-05);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark-theme .chip{background-color:var(--overlay-white-10)}.chip--clade{background-color:rgba(var(--color-mastery-leaf-rgb),.2)}.dark-theme .chip--clade{background-color:rgba(var(--color-mastery-leaf-rgb),.28)}.chip--muted{background-color:transparent;color:var(--color-text-tertiary);padding-inline:var(--space-xxs);font-weight:var(--font-weight-regular)}.btn-base{outline:none;box-shadow:none;user-select:none;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:var(--hover-transition)}.btn-icon-base{width:40px;height:40px;border-radius:50%;background-color:var(--color-glass-surface);border:1px solid var(--color-glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--elevation-1)}.btn-dialog-base{background-color:var(--bg-interactive);color:var(--text-on-primary);padding:10px 15px;border-radius:var(--border-radius-md);font-size:larger;font-weight:700}.btn-disabled{opacity:.5;cursor:not-allowed}.btn-icon-small{width:36px;height:36px;margin-bottom:10px}@media (max-width: 480px){.btn-icon-responsive{width:32px;height:32px}}.btn-form-base{width:100%;padding:8px;border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--background-color);color:var(--counter-text-color)}.btn-level-indicator{height:40px;border-radius:var(--border-radius-pill);margin-left:10px;padding-left:4px;padding-right:8px;background-color:var(--color-glass-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--elevation-1);z-index:var(--z-modal-backdrop)}.btn-next-pair{height:2em;z-index:var(--z-content);background-color:var(--bg-interactive);color:var(--text-on-primary)}.icon-button{outline:none;box-shadow:none;user-select:none;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:var(--hover-transition);width:var(--tap-target-min);height:var(--tap-target-min);border-radius:50%;background-color:var(--color-glass-surface);border:1px solid var(--color-glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--elevation-1)}@media (hover: hover){.icon-button:hover{filter:brightness(var(--hover-brightness));transform:translateY(-2px);box-shadow:var(--elevation-2)}}.icon-button:active{transform:var(--state-active-transform)}.dialog-button{outline:none;box-shadow:none;user-select:none;border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:var(--hover-transition);background-color:var(--bg-interactive);color:var(--text-on-primary);padding:10px 15px;border-radius:var(--border-radius-md);font-size:larger;font-weight:700}.dialog-button:hover{filter:brightness(var(--hover-brightness))}.icon-button.disabled,.dialog-button.disabled{opacity:.5;cursor:not-allowed}.icon-button.disabled:hover,.dialog-button.disabled:hover{filter:none;transform:none}.form-control{width:100%;padding:var(--space-xs);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--color-surface-primary);color:var(--color-text-primary);transition:var(--hover-transition),border-color var(--duration-standard) var(--easing-standard)}.form-control:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:var(--state-focus-ring)}.icon{width:24px;height:24px;fill:var(--color-neutral-darker);transition:var(--hover-transition)}.icon:hover{transform:scale(var(--hover-scale));filter:brightness(var(--hover-brightness))}.icon:active{transform:var(--state-active-transform)}.loading-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--dialog-background);color:var(--dialog-text-color);padding:20px;border-radius:var(--border-radius-md);box-shadow:var(--dialog-shadow);text-align:center;z-index:var(--z-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-indicator.hidden{display:none}.loading-indicator-logo{width:80px;height:80px;margin-bottom:15px}.loading-indicator .loading-spinner{border:5px solid var(--bg-dialog);border-top:5px solid var(--bg-interactive);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 15px}.loading-indicator p{margin:0;color:var(--text-on-light);font-size:var(--font-size-lg);font-weight:700}.loading-indicator--name-pair{position:fixed;transform:none;flex-direction:row;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);box-shadow:none;border-radius:var(--border-radius-md)}.loading-indicator--name-pair .loading-spinner{width:22px;height:22px;border-width:3px;margin:0}.loading-indicator__text{display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs)}.loading-indicator .loading-indicator__hint{font-size:var(--font-size-md);font-weight:400}.main-menu{z-index:var(--z-overlay)}.main-menu{position:relative}.main-menu__dropdown{display:none;position:absolute;right:0;top:var(--space-xxl);padding-right:0}.main-menu__dropdown.show{display:flex;flex-direction:column;align-items:flex-end;margin-top:8px}.main-menu__item{display:flex;align-items:center;justify-content:flex-end;margin-bottom:var(--space-xs);cursor:pointer}.main-menu__item--help-overflow,.main-menu__item--share-overflow{display:none}.top-bar-help-overflow .main-menu__item--help-overflow,.top-bar-share-overflow .main-menu__item--share-overflow{display:flex}.top-bar-help-overflow #help-button,.top-bar-share-overflow #share-button{display:none}.main-menu__label{display:flex;align-items:center;color:var(--text-on-light);background-color:var(--background-color);height:fit-content;padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);margin-right:var(--space-xs);opacity:0;transition:var(--hover-transition),opacity .3s ease;white-space:nowrap}.main-menu__dropdown.show .main-menu__label{opacity:.6}.main-menu__dropdown--top{top:calc(var(--space-xxl) + var(--space-md))}.main-menu__dropdown--bottom{position:absolute;top:0;right:0}@media (min-width: 768px){.main-menu__dropdown--bottom{bottom:auto;top:var(--space-xxl);right:0}}.toggle-container{display:flex;align-items:center;background-color:var(--bg-toggle);padding:0 var(--space-xxs) 0 0;border-radius:var(--border-radius-lg);justify-content:flex-start;width:100%;margin:var(--space-xs) 0}.toggle-switch{display:flex;align-items:center;background-color:var(--bg-toggle);border-radius:var(--border-radius-pill);padding:var(--space-xxs) 10px var(--space-xxs) var(--space-xxs);height:40px;width:auto}.dark-theme .toggle-switch{background-color:var(--bg-dialog)}.toggle-switch__label{position:relative;display:inline-block;width:50px;height:24px;margin:0 8px}.toggle-switch__checkbox{opacity:0;width:0;height:0}.toggle-switch__slider{position:absolute;cursor:pointer;inset:0;background-color:var(--toggle-slider-color);border-radius:34px;transition:var(--hover-transition)}.toggle-switch__slider:hover{filter:brightness(var(--hover-brightness))}.toggle-switch__slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background-color:var(--color-white);border-radius:50%;transition:.3s}.toggle-switch__checkbox:checked+.toggle-switch__slider{background-color:var(--bg-interactive)}.toggle-switch__checkbox:checked+.toggle-switch__slider:before{transform:translate(26px)}.toggle-switch__text{color:var(--text-on-light);font-size:var(--font-size-md);margin-left:8px;white-space:nowrap}.view-toggle-container{display:inline-block}.view-toggle__checkbox{display:none}.view-toggle__label{display:flex;align-items:center;cursor:pointer;width:160px;padding:1px 0;border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--bg-toggle);position:relative;transition:var(--hover-transition),background-color .3s ease}.view-toggle__label:hover{filter:brightness(var(--hover-brightness))}.view-toggle__option{z-index:var(--z-base);flex:1;text-align:center;padding:3px 0;font-weight:700;color:var(--text-on-light);transition:var(--hover-transition),color .3s ease;user-select:none}.view-toggle__option:hover{filter:brightness(var(--hover-brightness))}.view-toggle__slider{position:absolute;width:50%;height:100%;border-radius:var(--border-radius-md);background-color:var(--bg-interactive);transition:transform .3s ease}.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__slider{transform:translate(100%)}.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--taxa,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--common,.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--full,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--simple,.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--graph,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--tree{color:var(--text-on-primary)}.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--common,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--taxa,.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--simple,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--full,.view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--tree,.view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--graph{color:var(--text-on-light)}.dark-theme .view-toggle__label{background-color:var(--bg-dialog)}.dark-theme .view-toggle__option{color:var(--text-on-light)}.dark-theme .view-toggle__slider{background-color:var(--bg-interactive)}.view-toggle__label.loading .view-toggle__slider{animation:toggle-loading 1s ease-in-out infinite}@keyframes toggle-loading{0%,to{opacity:1}50%{opacity:.45}}.view-toggle__label.loading{pointer-events:none}.phylogeny-dialog__viewtabs .view-toggle__label.loading{pointer-events:auto}.panel-handle{display:none}.landscape-layout .panel-handle{display:flex;align-items:center;justify-content:center;min-height:var(--tap-target-min);flex:0 0 auto;cursor:grab;position:sticky;top:0;z-index:calc(var(--z-base) + 1);background-color:var(--dialog-surface);margin-inline:calc(-1 * var(--space-md));border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md)}.landscape-layout .panel-handle:before{content:"";width:3rem;height:4px;border-radius:var(--border-radius-sm);background-color:var(--color-border-medium)}.landscape-layout .panel-handle:active{cursor:grabbing}.landscape-layout .is-dragging{will-change:transform;contain:layout paint;box-shadow:var(--elevation-4)}.tooltip{position:absolute;background-color:var(--bg-interactive);color:var(--text-on-primary);padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);z-index:var(--z-overlay);pointer-events:none;opacity:0;transition:opacity .4s}.tooltip.visible{opacity:1}#toast-container{position:fixed;bottom:var(--toast-anchor-bottom, calc(20px + var(--safe-area-bottom)));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast{background-color:var(--bg-dialog);color:var(--text-on-light);padding:12px 22px;border-radius:20px;box-shadow:0 2px 8px #0003;font-size:var(--font-size-md);font-weight:700;opacity:0;transform:translateY(var(--toast-enter-offset));transition:opacity .3s,transform .3s;max-width:80vw;text-align:center;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.toast--actionable{pointer-events:auto;cursor:pointer}.toast__action{background:none;border:none;padding:0;font:inherit;color:var(--color-action-primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer}@media (hover: hover){.toast--actionable:hover .toast__action{text-decoration-thickness:2px}}.toast__action:focus-visible{outline:none;box-shadow:var(--state-focus-ring);border-radius:var(--border-radius-sm)}.dark-theme .toast{background-color:var(--bg-dialog-item);color:var(--text-on-light)}.update-prompt,.session-prompt,.location-switch-prompt,.action-bar{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);padding-bottom:max(var(--space-sm),var(--safe-area-bottom));background-color:var(--bg-dialog);color:var(--text-on-light);box-shadow:0 -2px 8px var(--overlay-black-20);transform:translateY(100%);transition:transform var(--duration-standard) ease}.update-prompt--show,.session-prompt--show,.location-switch-prompt--show,.action-bar--show{transform:translateY(0)}.update-prompt__message,.session-prompt__message,.location-switch-prompt__message,.action-bar__message{font-weight:var(--font-weight-bold)}.update-prompt__actions,.session-prompt__actions,.location-switch-prompt__actions,.action-bar__actions{display:flex;align-items:center;gap:var(--space-sm)}.update-prompt__button,.session-prompt__button,.location-switch-prompt__button,.action-bar__button{border:none;border-radius:var(--border-radius-md);padding:var(--space-xs) var(--space-md);min-height:var(--tap-target-min);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer}.update-prompt__button--reload,.session-prompt__button--resume,.location-switch-prompt__button--confirm,.action-bar__button--primary{background-color:var(--color-action-primary);color:var(--color-text-on-brand)}.update-prompt__button--dismiss,.session-prompt__button--dismiss,.location-switch-prompt__button--dismiss,.action-bar__button--dismiss{background-color:transparent;color:var(--text-on-light);text-decoration:underline}.update-prompt__button:disabled,.action-bar__button:disabled{opacity:.6;cursor:default}.dark-theme .update-prompt,.dark-theme .session-prompt,.dark-theme .location-switch-prompt,.dark-theme .action-bar{background-color:var(--bg-dialog-item);color:var(--text-on-light)}.action-bar__text{display:flex;flex-direction:column;gap:var(--space-xxs);min-width:0}.action-bar__detail{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.relax-banner{position:fixed;left:50%;bottom:var(--space-sm);top:auto;right:auto;transform:translate(-50%);z-index:var(--z-toast);box-sizing:border-box;width:calc(100% - 2 * var(--space-md));max-width:520px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"body  close" "actions actions";column-gap:var(--space-sm);row-gap:var(--space-sm);align-items:start;padding:var(--space-sm) var(--space-md);text-align:left;background-color:var(--bg-dialog);color:var(--text-on-light);border:none;border-top:3px solid var(--color-action-primary);border-radius:var(--border-radius-md);box-shadow:0 4px 18px #00000059;overflow:visible;animation:relax-banner-in .22s ease-out}.relax-banner:popover-open{display:grid}.relax-banner__title,.relax-banner__changes,.relax-banner__changes li{text-align:left}@keyframes relax-banner-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.relax-banner__body{grid-area:body;min-width:0}.relax-banner__title{margin:0;font-weight:var(--font-weight-bold);font-size:var(--font-size-md);line-height:1.25}.relax-banner__changes{margin:var(--space-xs) 0 0;padding:0;list-style:none;font-size:var(--font-size-sm);line-height:1.3;opacity:.92}.relax-banner__changes li+li{margin-top:2px}.relax-banner__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end;align-items:center}.relax-banner__btn{border:none;border-radius:var(--border-radius-md);padding:var(--space-xs) var(--space-lg);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);cursor:pointer}.relax-banner__btn--undo{background-color:var(--color-action-primary);color:var(--color-text-on-brand)}.relax-banner__btn--adjust{background-color:transparent;color:inherit;text-decoration:underline}.relax-banner__close{grid-area:close;align-self:start;background:transparent;border:none;color:inherit;font-size:var(--font-size-xl);line-height:1;cursor:pointer;padding:0 var(--space-xs);opacity:.6}.relax-banner__close:hover{opacity:1}.dark-theme .relax-banner{background-color:var(--bg-dialog-item);color:var(--text-on-light)}.custom-dropdown{position:relative;width:100%}.custom-dropdown__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 10px;border:var(--border-width-thin) solid var(--color-action-primary);border-radius:var(--border-radius-md);background-color:var(--dialog-item-background);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);cursor:pointer;transition:var(--hover-transition);min-height:36px;white-space:nowrap}.custom-dropdown__trigger:focus{outline:none;box-shadow:var(--state-focus-shadow)}.custom-dropdown__text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--space-xs)}.custom-dropdown__arrow{width:12px;height:12px;fill:var(--color-text-primary);transition:var(--transition-quick);flex-shrink:0;opacity:.6}.custom-dropdown__arrow--open{transform:rotate(180deg)}.custom-dropdown__list{position:absolute;top:100%;left:0;right:0;z-index:var(--z-popover);background-color:var(--dialog-item-background);border:1px solid var(--color-action-primary);border-top:none;border-radius:0 0 var(--border-radius-md) var(--border-radius-md);box-shadow:var(--elevation-3);max-height:none;overflow-y:visible;opacity:0;transform:translateY(-4px);pointer-events:none;transition:var(--transition-quick),transform var(--duration-quick) var(--easing-standard);list-style:none;margin:0;padding:0}.custom-dropdown--open .custom-dropdown__list{opacity:1;transform:translateY(0);pointer-events:auto}.custom-dropdown__option{padding:var(--space-xs) var(--space-sm);color:var(--color-text-primary);background-color:var(--dialog-item-background);cursor:pointer;transition:var(--transition-quick);border-bottom:var(--border-width-thin) solid var(--color-border-light);font-size:var(--font-size-md)}.custom-dropdown__option:last-child{border-bottom:none}.custom-dropdown__option:hover{background-color:var(--bg-interactive);color:var(--color-text-on-brand)}.custom-dropdown__option--selected{background-color:var(--bg-interactive);color:var(--color-text-on-brand);font-weight:var(--font-weight-bold)}.custom-dropdown__option--selected:hover{background-color:var(--bg-interactive);filter:brightness(var(--hover-brightness))}.level-dropdown{position:relative;width:100%}.level-dropdown__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border:2px solid var(--color-action-primary);border-radius:var(--border-radius-md);background-color:var(--dialog-item-background);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:700;cursor:pointer;transition:var(--hover-transition);min-height:40px;white-space:nowrap;box-shadow:0 1px 3px #0000001a;box-sizing:border-box}.level-dropdown__trigger:hover{filter:brightness(var(--hover-brightness));border-color:var(--bg-interactive)}.level-dropdown__trigger:focus{outline:none;box-shadow:0 0 0 2px var(--bg-interactive),0 1px 3px #0000001a;border-color:var(--bg-interactive)}.level-dropdown__text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:12px}.level-dropdown__arrow{width:14px;height:14px;fill:var(--color-text-primary);transition:transform .3s ease;flex-shrink:0;opacity:.7}.level-dropdown__arrow--open{transform:rotate(180deg)}.level-dropdown__list{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:var(--z-popover);background-color:var(--dialog-item-background);border:2px solid var(--color-action-primary);border-radius:var(--border-radius-md);box-shadow:0 8px 24px #00000026;max-height:none;overflow-y:visible;opacity:0;transform:translateY(-8px) scale(.95);pointer-events:none;transition:opacity .25s ease,transform .25s ease;list-style:none;margin:0;padding:6px 0;min-width:160px;width:max-content}.level-dropdown--open .level-dropdown__list{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.level-dropdown__option{padding:10px 16px;color:var(--color-text-primary);background-color:transparent;cursor:pointer;transition:background-color .2s ease,color .2s ease;font-size:var(--font-size-md);font-weight:500;margin:2px 6px;border-radius:calc(var(--border-radius-md) - 2px);white-space:nowrap}.level-dropdown__option:hover{background-color:rgba(var(--color-brand-primary-rgb),.15);color:var(--color-text-primary)}.level-dropdown__option--selected{background-color:rgba(var(--color-brand-primary-rgb),.25);color:var(--color-text-primary);font-weight:700}.level-dropdown__option--selected:hover{background-color:rgba(var(--color-brand-primary-rgb),.35);color:var(--color-text-primary)}.dark-theme .custom-dropdown__list,.dark-theme .level-dropdown__list{background-color:var(--dialog-item-background);box-shadow:0 4px 12px #00000080}.dark-theme .custom-dropdown__option{background-color:var(--dialog-item-background);border-bottom-color:var(--overlay-white-10)}.dark-theme .level-dropdown__list{box-shadow:0 8px 24px #0006;border-color:var(--color-action-primary)}.dark-theme .level-dropdown__option{background-color:transparent}.dark-theme .level-dropdown__option:hover{background-color:var(--overlay-white-10)}.dark-theme .level-dropdown__option--selected{background-color:var(--overlay-white-15)}.dark-theme .level-dropdown__option--selected:hover{background-color:var(--overlay-white-20)}.dark-theme .level-dropdown__trigger{box-shadow:0 1px 3px #0003}@media (max-width: 768px){.custom-dropdown__list,.level-dropdown__list{max-height:none;font-size:var(--font-size-md)}.custom-dropdown__option,.level-dropdown__option{padding:12px;min-height:44px;display:flex;align-items:center}}.streak-indicator{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;height:var(--tap-target-min);min-width:var(--tap-target-min);padding:0 6px;border:none;border-radius:var(--border-radius-pill);background-color:var(--bg-dialog-item);box-shadow:0 2px 5px var(--shadow-color);opacity:.6;color:var(--color-text-on-brand);cursor:pointer;line-height:1;-webkit-tap-highlight-color:transparent;transition:var(--hover-transition)}.streak-indicator:hover{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale));opacity:var(--state-hover-opacity)}.streak-indicator:active{transform:var(--state-active-transform)}.streak-indicator__flame-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px}.streak-indicator__flame{position:absolute;inset:0;margin:auto;width:30px;height:30px;color:var(--color-streak-flame);fill:currentColor;filter:drop-shadow(0 0 2px rgba(255,122,24,.7))}.streak-indicator--at-risk .streak-indicator__flame{color:var(--color-neutral-500);filter:none;animation:streak-at-risk-pulse 1.8s ease-in-out infinite}@keyframes streak-at-risk-pulse{0%,to{opacity:.55}50%{opacity:1}}.streak-indicator--frozen .streak-indicator__flame{color:var(--color-streak-freeze);filter:none;animation:streak-at-risk-pulse 1.8s ease-in-out infinite}.streak-indicator--broken .streak-indicator__flame{color:var(--color-neutral-500);filter:none;opacity:.55}.streak-indicator--pop{animation:streak-pop .48s cubic-bezier(.18,.89,.32,1.28)}@keyframes streak-pop{0%{transform:scale(1)}35%{transform:scale(1.35)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.streak-indicator--pop,.streak-indicator--at-risk .streak-indicator__flame,.streak-indicator--frozen .streak-indicator__flame{animation:none}}.streak-indicator__network-status{display:none;align-items:center;justify-content:center;font-size:var(--font-size-lg);line-height:1}.streak-indicator--network-offline .streak-indicator__flame,.streak-indicator--network-online .streak-indicator__flame{display:none}.streak-indicator--network-offline .streak-indicator__network-status,.streak-indicator--network-online .streak-indicator__network-status{display:flex}.streak-indicator--network-offline .streak-indicator__network-status{color:var(--color-feedback-error)}.streak-indicator--network-online .streak-indicator__network-status{color:var(--color-feedback-success)}.mastery-indicator{position:relative;display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;height:var(--tap-target-min);padding:0 12px 0 6px;border:none;border-radius:calc(var(--tap-target-min) / 2);background-color:var(--bg-dialog-item);box-shadow:0 2px 5px var(--shadow-color);opacity:.6;color:var(--color-text-primary);cursor:pointer;line-height:1;-webkit-tap-highlight-color:transparent;transition:var(--hover-transition)}.mastery-indicator:hover{filter:brightness(var(--hover-brightness));transform:scale(var(--hover-scale));opacity:var(--state-hover-opacity)}.mastery-indicator:active{transform:var(--state-active-transform)}.mastery-indicator__leaf-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px}.mastery-indicator__leaf{width:1.5rem;height:1.5rem;color:var(--color-mastery-leaf);fill:currentColor;transition:color .35s ease,filter .35s ease}.mastery-indicator__count{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;white-space:nowrap}.mastery-indicator--stage-green{color:var(--color-mastery-leaf-text);background-color:var(--color-mastery-leaf);background-image:linear-gradient(150deg,color-mix(in srgb,var(--color-mastery-leaf) 82%,white) 0%,var(--color-mastery-leaf) 55%,color-mix(in srgb,var(--color-mastery-leaf) 88%,black) 100%);opacity:1}.mastery-indicator--stage-green .mastery-indicator__leaf{color:var(--color-mastery-silver);fill:url(#mastery-grad-silver)}.mastery-indicator--stage-green .mastery-indicator__leaf,.mastery-indicator--stage-silver .mastery-indicator__leaf{filter:drop-shadow(.7px 0 0 var(--overlay-black-62)) drop-shadow(-.7px 0 0 var(--overlay-black-62)) drop-shadow(0 .7px 0 var(--overlay-black-62)) drop-shadow(0 -.7px 0 var(--overlay-black-62)) drop-shadow(-.5px -.5px .4px var(--overlay-white-40)) drop-shadow(0 1px 1px var(--overlay-black-40)) drop-shadow(0 0 calc(var(--mastery-next-strength, 0) * 7px) var(--mastery-next-glow, transparent));filter:drop-shadow(.7px 0 0 var(--overlay-black-62)) drop-shadow(-.7px 0 0 var(--overlay-black-62)) drop-shadow(0 .7px 0 var(--overlay-black-62)) drop-shadow(0 -.7px 0 var(--overlay-black-62)) drop-shadow(-.5px -.5px .4px var(--overlay-white-40)) drop-shadow(0 1px 1px var(--overlay-black-40)) drop-shadow(0 0 3px color-mix(in srgb,currentColor 45%,transparent)) drop-shadow(0 0 calc(var(--mastery-next-strength, 0) * 7px) var(--mastery-next-glow, transparent))}.mastery-indicator--stage-silver{color:var(--color-mastery-silver-text);background-color:var(--color-mastery-silver);background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-mastery-silver) 70%,white) 0%,var(--color-mastery-silver) 45%,color-mix(in srgb,var(--color-mastery-silver) 82%,black) 100%);opacity:1}.mastery-indicator--stage-silver .mastery-indicator__leaf{color:var(--color-mastery-complete);fill:url(#mastery-grad-gold)}.mastery-indicator--complete{color:var(--color-mastery-complete-text);background-color:var(--color-mastery-complete);background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-mastery-complete) 78%,white) 0%,var(--color-mastery-complete) 46%,color-mix(in srgb,var(--color-mastery-complete) 82%,black) 100%);opacity:1;box-shadow:0 2px 5px var(--shadow-color),0 0 14px rgba(var(--color-mastery-complete-rgb),.55);animation:mastery-gold-glow 3.2s ease-in-out infinite}@keyframes mastery-gold-glow{0%,to{box-shadow:0 2px 5px var(--shadow-color),0 0 9px rgba(var(--color-mastery-complete-rgb),.42)}50%{box-shadow:0 2px 5px var(--shadow-color),0 0 22px rgba(var(--color-mastery-complete-rgb),.78)}}@media (prefers-reduced-motion: reduce){.mastery-indicator--complete{animation:none}}.mastery-indicator--complete .mastery-indicator__leaf{color:var(--color-mastery-complete-lit);fill:url(#mastery-grad-gold-contra);filter:drop-shadow(-.5px -.5px 0 var(--color-mastery-gold-rim)) drop-shadow(.6px .8px .7px rgba(var(--color-mastery-complete-text-rgb),.62)) drop-shadow(0 1px 2px rgba(var(--color-mastery-complete-text-rgb),.4))}.mastery-indicator--stage-silver:after,.mastery-indicator--complete:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background-image:linear-gradient(115deg,transparent 34%,var(--overlay-white-80) 50%,transparent 66%);background-repeat:no-repeat;background-size:220% 100%;background-position:200% 0;opacity:0;animation:mastery-shimmer 4.8s ease-in-out infinite}.mastery-indicator--complete:after{background-image:linear-gradient(115deg,transparent 32%,var(--overlay-white-88) 50%,transparent 68%)}@keyframes mastery-shimmer{0%{background-position:200% 0;opacity:0}8%{opacity:1}20%{opacity:1}34%{background-position:-80% 0;opacity:0}to{background-position:-80% 0;opacity:0}}@media (prefers-reduced-motion: reduce){.mastery-indicator--stage-silver:after,.mastery-indicator--complete:after{animation:none}}body.is-swiping .mastery-indicator,body.is-swiping .mastery-indicator:after{animation-play-state:paused}.mastery-indicator--celebrating .mastery-indicator__leaf{color:var(--color-mastery-flash);fill:currentColor}.mastery-indicator--celebrating{box-shadow:0 2px 5px var(--shadow-color),0 0 18px rgba(var(--color-mastery-flash-rgb),.75)}.mastery-breakout{position:fixed;z-index:var(--z-dust);pointer-events:none;will-change:transform,opacity;opacity:0;transform:translate(-50%)}.mastery-breakout__chip{cursor:default}.mastery-breakout__chip.mastery-indicator--stage-green,.mastery-breakout__chip.mastery-indicator--stage-silver{background-image:none;background-color:var(--bg-dialog-item);color:var(--color-text-primary);box-shadow:0 2px 5px var(--shadow-color);opacity:1}.mastery-breakout__chip.mastery-indicator--stage-silver:after{display:none}.mastery-indicator--pop{animation:mastery-pop .48s cubic-bezier(.18,.89,.32,1.28)}@keyframes mastery-pop{0%{transform:scale(1)}35%{transform:scale(1.28)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.mastery-indicator--pop{animation:none}}.onboarding-coach{position:fixed;z-index:calc(var(--z-overlay) + 200);width:max-content;max-width:min(20rem,calc(100vw - 2rem));padding:var(--space-xs, .5rem) var(--space-sm, .75rem);border-radius:var(--border-radius-md, 8px);background-color:var(--bg-dialog);color:var(--text-on-light);font-size:var(--font-size-md);font-weight:600;line-height:1.35;text-align:center;pointer-events:none;box-shadow:0 6px 20px #00000052;opacity:0;transform:translateY(4px);transition:opacity .22s ease,transform .22s ease}.onboarding-coach.is-visible{opacity:1;transform:translateY(0)}.dark-theme .onboarding-coach{background-color:var(--bg-dialog-item);color:var(--text-on-light)}@media (prefers-reduced-motion: reduce){.onboarding-coach{transition:opacity .22s ease;transform:none}.onboarding-coach.is-visible{transform:none}}.history-gallery{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;align-items:flex-end;justify-content:center;background-color:var(--effect-overlay);opacity:0;visibility:hidden;transition:opacity var(--duration-quick) var(--easing-standard),visibility var(--duration-quick) var(--easing-standard)}.history-gallery--open{opacity:1;visibility:visible}.history-gallery__panel{width:100%;max-width:600px;max-height:85dvh;display:flex;flex-direction:column;background-color:var(--dialog-background);color:var(--color-text-primary);border-top-left-radius:var(--border-radius-lg);border-top-right-radius:var(--border-radius-lg);box-shadow:0 -4px 20px var(--shadow-color-strong);padding-bottom:var(--safe-area-bottom);transform:translateY(100%);transition:transform var(--duration-standard) var(--easing-decelerate)}.history-gallery--open .history-gallery__panel{transform:translateY(0)}.history-gallery__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.history-gallery__title{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--dialog-title-color)}.history-gallery__close{background:none;border:none;font-size:var(--font-size-xxl);line-height:1;cursor:pointer;color:var(--color-text-secondary);padding:0 var(--space-xs);display:flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min)}.history-gallery__list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-xs)}.history-gallery__row{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm);margin-bottom:var(--space-xs);border:var(--border-width-medium) solid transparent;border-radius:var(--border-radius-md);background:none;color:inherit;cursor:pointer;text-align:left}@media (hover: hover){.history-gallery__row:hover{background-color:var(--color-surface-secondary)}}.history-gallery__row--current{border-color:var(--color-brand-primary);background-color:var(--color-surface-secondary);cursor:default}.history-gallery__thumbs{display:flex;gap:var(--space-xs);flex:0 0 auto}.history-gallery__thumb-cell{position:relative;flex:0 0 auto;line-height:0}.history-gallery__thumb{width:7rem;height:7rem;object-fit:cover;border-radius:var(--border-radius-sm);background-color:var(--color-surface-tertiary)}.history-gallery__labels{display:flex;flex-direction:column;gap:var(--space-xxs);min-width:0;flex:1 1 auto}.history-gallery__name{font-size:var(--font-size-lg);font-style:italic;line-height:var(--line-height-compact);color:var(--color-text-primary);word-break:keep-all;overflow-wrap:break-word;word-wrap:break-word;hyphens:manual;-webkit-hyphens:manual}.history-gallery__morph{position:absolute;top:var(--space-xxs);left:var(--space-xxs);width:1.6rem;height:1.6rem;padding:3px;border-radius:999px;background:var(--bg-dialog-item);color:var(--color-neutral-darker);fill:var(--color-neutral-darker);box-shadow:0 1px 3px var(--shadow-color)}.history-gallery__empty{padding:var(--space-lg);text-align:center;font-size:var(--font-size-md);color:var(--color-text-tertiary)}.filter-history-gallery{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;align-items:flex-start;justify-content:center;background-color:var(--effect-overlay);opacity:0;visibility:hidden;transition:opacity var(--duration-quick) var(--easing-standard),visibility var(--duration-quick) var(--easing-standard)}.filter-history-gallery--open{opacity:1;visibility:visible}.filter-history-gallery__panel{width:100%;max-width:600px;max-height:85dvh;display:flex;flex-direction:column;background-color:var(--dialog-background);color:var(--color-text-primary);border-bottom-left-radius:var(--border-radius-lg);border-bottom-right-radius:var(--border-radius-lg);box-shadow:0 4px 20px var(--shadow-color-strong);padding-top:var(--safe-area-top);transform:translateY(-100%);transition:transform var(--duration-standard) var(--easing-decelerate)}.filter-history-gallery--open .filter-history-gallery__panel{transform:translateY(0)}.filter-history-gallery__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.filter-history-gallery__title{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--dialog-title-color)}.filter-history-gallery__close{background:none;border:none;font-size:var(--font-size-xxl);line-height:1;cursor:pointer;color:var(--color-text-secondary);padding:0 var(--space-xs);display:flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min)}.filter-history-gallery__list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-sm) var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.filter-history-gallery__grip{flex:0 0 auto;display:flex;justify-content:center;padding:var(--space-xs) 0 var(--space-sm);cursor:pointer}.filter-history-gallery__grip span{width:44px;height:4px;border-radius:999px;background-color:var(--color-text-tertiary);opacity:.45}.filter-history-gallery__row{position:relative;display:flex;align-items:stretch;gap:var(--space-xs);width:100%;padding:var(--space-xs) var(--space-xs) calc(var(--space-xs) + 4px);border:var(--border-width-medium) solid transparent;border-radius:var(--border-radius-md);background:var(--color-surface-secondary);--fhg-tier-ink: color-mix(in srgb, var(--fhg-tier-color, var(--color-mastery-leaf)) 58%, var(--color-text-primary));color:inherit;cursor:pointer;text-align:left;user-select:none}@supports not (color: color-mix(in srgb,white 50%,black)){.filter-history-gallery__row{--fhg-tier-ink: var(--fhg-tier-color, var(--color-mastery-leaf))}}.dark-theme .filter-history-gallery__row{--fhg-tier-ink: var(--fhg-tier-color, var(--color-mastery-leaf))}@media (hover: hover){.filter-history-gallery__row:not(.filter-history-gallery__row--current):hover{border-color:var(--color-border-light);background-color:var(--color-surface-tertiary, var(--color-surface-secondary))}}.filter-history-gallery__row--current{border-color:var(--color-brand-primary);cursor:default}.filter-history-gallery__row--dragging{opacity:.4}.filter-history-gallery__row.fhg-drag-above{border-top-color:var(--color-brand-primary)}.filter-history-gallery__row.fhg-drag-below{border-bottom-color:var(--color-brand-primary)}.filter-history-gallery__handle{flex:0 0 auto;align-self:stretch;display:flex;align-items:center;padding:0 var(--space-xxs);margin:calc(-1 * var(--space-xs)) 0;cursor:grab;color:var(--color-text-tertiary);opacity:.4;touch-action:none}.filter-history-gallery__handle:before{content:"⠿";font-size:var(--font-size-lg)}.filter-history-gallery__row--current .filter-history-gallery__handle{cursor:default;opacity:.12}.filter-history-gallery__content{flex:1 1 auto;min-width:0;align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs);text-align:center}.filter-history-gallery__name{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary);overflow-wrap:anywhere}.filter-history-gallery__name--empty{display:none}.filter-history-gallery__levels{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.filter-history-gallery__level-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center}.filter-history-gallery__level-row .filter-history-gallery__chili+.filter-history-gallery__chili{margin-left:-4px}.filter-history-gallery__geo{flex:0 0 auto;width:128px;align-self:center}.filter-history-gallery__location,.filter-history-gallery__rank{font-size:var(--font-size-xs);line-height:1.25;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.filter-history-gallery__map{position:relative;width:100%;aspect-ratio:1800 / 857}.filter-history-gallery__map svg{display:block;width:100%;height:100%}.world-map--snapshot path{fill:var(--color-text-tertiary);opacity:.35;stroke:none}.world-map--snapshot path.selected{fill:var(--color-accent);opacity:.85}.filter-history-gallery__chili{flex:0 0 auto;width:12px;height:12px;fill:var(--color-text-tertiary);opacity:.35}.filter-history-gallery__chili--on{fill:var(--color-brand-secondary);opacity:1}.filter-history-gallery__name-input{width:100%;max-width:260px;padding:var(--space-xxs) var(--space-xs);border:var(--border-width-thin) solid var(--color-brand-primary);border-radius:var(--border-radius-sm);background:var(--dialog-background);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);outline:none}.filter-history-gallery__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xxs);width:100%;margin-top:auto}.filter-history-gallery__chip{padding:2px var(--space-xs);font-size:var(--font-size-xs);line-height:1.25}.filter-history-gallery__chip.chip--clade{font-weight:var(--font-weight-bold)}.filter-history-gallery__meta{display:flex;align-items:baseline;justify-content:center;flex-wrap:nowrap;gap:var(--space-sm);width:100%;margin-top:auto;padding-top:var(--space-xxs);min-height:var(--font-size-lg)}.filter-history-gallery__count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.filter-history-gallery__mastery{display:inline-flex;align-items:center;gap:var(--space-xxs)}.filter-history-gallery__mastery:not([hidden]){animation:fhg-stat-fade-in var(--duration-standard) var(--easing-decelerate)}@keyframes fhg-stat-fade-in{0%{opacity:0}to{opacity:1}}.filter-history-gallery__mastery-count{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--fhg-tier-ink, var(--color-mastery-leaf));font-variant-numeric:tabular-nums;white-space:nowrap}.filter-history-gallery__mastery-leaf{width:1em;height:1em;flex:0 0 auto;fill:var(--fhg-tier-ink, var(--color-mastery-leaf))}.filter-history-gallery__actions{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-xxs);align-self:stretch}.filter-history-gallery__action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:var(--border-radius-sm);line-height:1;color:var(--color-text-tertiary);cursor:pointer;opacity:.65;transition:opacity var(--duration-quick) var(--easing-standard),background-color var(--duration-quick) var(--easing-standard),color var(--duration-quick) var(--easing-standard)}.filter-history-gallery__action:hover{opacity:1;background-color:var(--overlay-black-05)}.dark-theme .filter-history-gallery__action:hover{background-color:var(--overlay-white-10)}.filter-history-gallery__rename{margin-top:auto}.filter-history-gallery__rename .icon{width:16px;height:16px;fill:currentColor}.filter-history-gallery__remove{font-size:var(--font-size-xl)}.filter-history-gallery__remove:hover{background-color:rgba(var(--color-feedback-error-rgb),.1);color:var(--color-feedback-error)}.filter-history-gallery__remove--armed,.filter-history-gallery__remove--armed:hover{opacity:1;background-color:var(--color-feedback-error);color:var(--color-text-on-brand);animation:fhg-remove-arm var(--duration-quick) var(--easing-standard)}.filter-history-gallery__remove--armed .icon{width:15px;height:15px;fill:currentColor}@keyframes fhg-remove-arm{0%{transform:scale(.7)}to{transform:scale(1)}}.filter-history-gallery__mastery-track{position:absolute;left:0;right:0;bottom:0;height:3px;overflow:hidden;border-bottom-left-radius:var(--border-radius-md);border-bottom-right-radius:var(--border-radius-md);background:var(--overlay-black-10);background:color-mix(in srgb,var(--fhg-tier-ink, var(--color-mastery-leaf)) 15%,transparent)}.filter-history-gallery__mastery-fill{height:100%;width:0%;background:var(--fhg-tier-ink, var(--color-mastery-leaf));transition:width .32s ease-out;opacity:.85}.filter-history-gallery__empty{padding:var(--space-lg);text-align:center;font-size:var(--font-size-md);color:var(--color-text-tertiary)}@media (max-width: 380px){.filter-history-gallery__geo{width:104px}.filter-history-gallery__chili{width:10px;height:10px}}.tutorial-highlight{position:fixed;box-sizing:border-box;pointer-events:none;border-radius:var(--border-radius-md);z-index:var(--z-popover);animation:pulse-highlight 1s;animation-iteration-count:1}body:has(dialog[open])>.tutorial-highlight,body:has(dialog[open])>.onboarding-coach{visibility:hidden}.tutorial-close-button{position:fixed;bottom:20px;right:20px;background-color:var(--color-accent);color:var(--color-white);border:2px solid var(--color-white);padding:10px 15px;border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-md);font-weight:700;z-index:var(--z-tutorial);pointer-events:auto!important;box-shadow:0 0 10px var(--shadow-color-strong);transition:all .3s ease}.tutorial-close-button:hover{background-color:var(--color-brand-secondary-dark);transform:scale(1.01)}.dialog-tutorial-overlay{position:absolute;display:flex;justify-content:center;align-items:center;z-index:var(--z-popover);border-radius:var(--border-radius-md);overflow:hidden}#info-dialog-tutorial-overlay{height:80px;box-shadow:0 0 0 3px #74ac0080}.dialog-tutorial-overlay__message{font-size:var(--font-size-xl);font-weight:700;color:var(--text-on-primary);text-shadow:1px 1px 2px var(--shadow-color);background-color:var(--bg-interactive);padding:10px;width:100%;min-height:80px;height:100%;display:flex;justify-content:center;align-items:center;text-align:center;transition:opacity .3s ease-in-out}#filter-dialog>.tutorial-close-button{position:absolute;background-color:var(--color-accent);color:#fff;border:2px solid white;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-md);font-weight:700;z-index:var(--z-overlay);top:0;left:0;width:100%;height:100%}@keyframes pulse-highlight{0%,to{box-shadow:0 0 0 2px #ac002800,0 0 0 4px #fff0}50%{box-shadow:0 0 0 4px #ac0028b3,0 0 0 6px #ffffffb3}}@keyframes pulse{0%{box-shadow:0 0 #74ac00b3}70%{box-shadow:0 0 0 15px #74ac0000}to{box-shadow:0 0 #74ac0000}}.game-container{display:flex;flex:none;justify-content:space-between;align-items:center;position:relative;overflow:hidden;width:100%;height:100%;min-height:100%;padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right);z-index:var(--z-base);transform-origin:center center;transition:transform .3s ease-out,opacity .3s ease-out}.portrait-layout .game-container{flex-direction:column}.landscape-layout .game-container{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(var(--ls-dock-min),1fr);align-items:start;gap:var(--ls-gap);padding-top:calc(var(--safe-area-top) + var(--ls-edge));padding-bottom:calc(var(--safe-area-bottom) + var(--ls-edge));padding-left:calc(var(--safe-area-left) + var(--ls-edge));padding-right:calc(var(--safe-area-right) + var(--ls-edge))}.landscape-layout #image-container-1{grid-area:1 / 1;justify-self:end}.landscape-layout #image-container-2{grid-area:1 / 2;justify-self:start}.landscape-layout .name-pair{grid-area:2 / 1 / 3 / 3}.image-container,.name-pair,.name-pair__overlay{width:98vw}.portrait-layout .image-container,.portrait-layout .name-pair,.portrait-layout .name-pair__overlay{width:min(98vw,var(--max-image-width))}.image-container{position:relative;flex:1 1 300px;margin:0;padding:4px;aspect-ratio:1/1;background-color:var(--bg-body);box-shadow:0 0 8px var(--shadow-color);border-radius:var(--border-radius-md);box-sizing:border-box;overflow:hidden;z-index:var(--z-base);cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.landscape-layout .image-container{aspect-ratio:auto;margin:0;width:100%;height:min(var(--ls-photo-band),calc(var(--ls-photo-half) / var(--ls-photo-min-aspect)));max-width:calc(var(--ls-photo-band) * var(--ls-photo-max-aspect))}.portrait-layout #image-container-1{margin-top:4px}.portrait-layout #image-container-2{margin-bottom:4px}.image-container__image{position:absolute;display:flex;justify-content:center;align-items:center;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;object-fit:cover;object-position:center;background-color:var(--bg-dialog);color:var(--bg-interactive);font-size:var(--font-size-display);font-weight:700;border-radius:var(--border-radius-md);transition:opacity .3s ease-in-out;opacity:1;pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.image-container__image--temp{z-index:var(--z-raised)}.image-container__image--fade{opacity:0;transition:opacity .3s ease-in-out}.image-container__image--fade-out{opacity:0}.image-container__image--fade-in{opacity:1}.image-container__image--loading{opacity:0!important}.image-container__image--load-failed,.taxon-image--load-failed{object-fit:contain;background-color:var(--color-neutral-700)}.image-container--framed{box-shadow:0 0 0 var(--border-width-medium) var(--color-brand-primary),0 6px 22px rgba(var(--color-brand-primary-rgb),.34);transition:box-shadow .3s ease;z-index:var(--z-overlay)}body.photos-pending .image-container:after{content:"";position:absolute;inset:0;z-index:var(--z-base);background-color:var(--color-neutral-700);overflow:hidden}body.photos-pending .image-container:before{content:"";position:absolute;top:0;bottom:0;left:0;width:60%;z-index:calc(var(--z-base) + 1);background-image:linear-gradient(90deg,transparent,var(--overlay-white-10),transparent);animation:photo-pending-sweep 1.4s ease-in-out infinite;pointer-events:none}@keyframes photo-pending-sweep{0%{transform:translate(-100%)}to{transform:translate(266%)}}@media (prefers-reduced-motion: reduce){body.photos-pending .image-container:before{animation:none}}body.photos-pending .name-pair__item--draggable{pointer-events:none;opacity:.55}body.photos-pending .onboarding-coach{display:none}.image-container__drop-zone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.9;z-index:var(--z-content);width:var(--drag-tile-width);height:80px;transition:all .3s ease-out;pointer-events:none;display:flex;align-items:center;justify-content:center}.image-container--drag-over{cursor:copy}.image-container__drop-zone .name-pair__item--draggable{min-height:var(--center-min-height);height:auto;outline:var(--border-width-medium) solid var(--overlay-white-70);outline-offset:0}.image-container__world-map{position:absolute;left:var(--image-overlay-globe-left);bottom:5px;width:var(--image-overlay-map-width);height:var(--image-overlay-map-height);border-radius:var(--border-radius-md);opacity:.6;z-index:var(--z-content);transform-origin:bottom left;transition:opacity var(--duration-standard) var(--easing-standard),transform var(--duration-standard) var(--easing-standard)}.image-container__world-map--hidden{opacity:0;transform:scale(.32);pointer-events:none}@media (prefers-reduced-motion: reduce){.image-container__world-map{transition:opacity var(--duration-instant) var(--easing-standard)}.image-container__world-map--hidden{transform:none}}.filter-summary__map{position:relative}.image-container__world-map svg{position:absolute;bottom:5px;left:5px;width:var(--image-overlay-map-width);height:var(--image-overlay-map-height);padding:4px;background:var(--background-color);transition:var(--transition-standard);cursor:pointer;border-radius:var(--border-radius-md)}.image-container__world-map svg:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:2px}.world-map__location-pin{pointer-events:none}.world-map__location-pin-ring{fill:var(--color-feedback-error);stroke:var(--color-neutral-100);filter:drop-shadow(0 0 6px var(--overlay-black-70))}.world-map__location-pin-core{fill:var(--color-location-pin-core)}.image-container__morph{--morph-anchor: var(--image-overlay-globe-left);--morph-size: var(--image-overlay-button-size);--morph-map-width: var(--image-overlay-map-width);--morph-gap: calc(var(--morph-anchor) - var(--space-xs) - var(--morph-size));position:absolute;bottom:calc(var(--space-xs) * 2);left:calc(var(--morph-anchor) + var(--morph-map-width) + var(--morph-gap));z-index:var(--z-overlay);box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:var(--morph-size);height:var(--morph-size);border-radius:999px;background:var(--bg-dialog-item);color:var(--color-neutral-darker);opacity:.6;box-shadow:0 2px 5px var(--shadow-color);pointer-events:none;user-select:none;transition:left .3s ease-in-out}.image-container__morph-icon{width:26px;height:26px;color:var(--color-neutral-darker);fill:var(--color-neutral-darker);display:block}.image-container:has(.image-container__button--globe--visible) .image-container__morph{left:calc(var(--morph-anchor) + var(--morph-size) + var(--morph-gap))}.image-container__morph[data-interactive]{pointer-events:auto;cursor:pointer;opacity:.85}.image-container__morph[data-interactive]:hover,.image-container__morph[data-open]{opacity:1}.image-container__morph-switcher{position:absolute;bottom:calc(100% + var(--space-xs));left:0;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:var(--space-xs);z-index:calc(var(--z-overlay) + 1)}.image-container__morph-option{display:flex;align-items:center;gap:var(--space-xs);padding:0;border:none;background:none;cursor:pointer;animation:morph-bubble-rise .18s ease-out both}.image-container__morph-bubble{box-sizing:border-box;flex:none;width:var(--morph-size);height:var(--morph-size);display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--bg-dialog-item);color:var(--color-neutral-darker);box-shadow:0 2px 5px var(--shadow-color);opacity:.85;transition:opacity .15s,transform .15s}.image-container__morph-option-label{padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-lg);background-color:var(--background-color);color:var(--text-on-light);font-size:var(--font-size-sm);white-space:nowrap;opacity:.85;transition:opacity .15s}.image-container__morph-option:hover .image-container__morph-bubble{opacity:1;transform:scale(1.08)}.image-container__morph-option:hover .image-container__morph-option-label{opacity:1}.image-container__morph-current-label{position:absolute;left:calc(100% + var(--space-xs));top:50%;transform:translateY(-50%);opacity:1;animation:morph-label-appear .18s ease-out both}@keyframes morph-label-appear{0%{opacity:0}to{opacity:1}}.image-container__morph[data-hint=pulse]{animation:morph-badge-hint 1.1s ease-in-out 2}@keyframes morph-badge-hint{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@media (prefers-reduced-motion: reduce){.image-container__morph[data-hint=pulse]{animation:none}}@keyframes morph-bubble-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:.85;transform:translateY(0)}}@media (max-width: 480px){.image-container__morph-icon{width:22px;height:22px}}.name-pair{position:relative;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:stretch;background-color:transparent;margin:var(--space-xxs) auto;gap:var(--space-xxs);width:98%;min-height:var(--center-min-height)}.portrait-layout .name-pair{display:grid;grid-template-columns:1fr 1fr}.landscape-layout .name-pair{display:grid;grid-template-columns:1fr 1fr;align-self:start;width:100%;margin:0;padding:0;gap:var(--ls-gap);max-width:calc(2 * (var(--ls-photo-band) * var(--ls-photo-max-aspect)) + var(--ls-gap));justify-self:center;z-index:var(--z-content)}.name-pair.name-pair--hidden{display:none!important}.name-pair__container{position:relative;display:flex;flex:1;min-width:0;margin:0;min-height:var(--center-min-height)}.pin-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:calc(var(--z-content) + 2);display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background-color:var(--bg-interactive);color:var(--overlay-white-90);box-shadow:0 2px 6px var(--shadow-color, rgba(0, 0, 0, .4)),0 0 0 2px var(--color-neutral-200, rgba(255, 255, 255, .5));cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform .28s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,box-shadow .2s ease}.pin-knob:hover{color:var(--color-text-on-brand)}.pin-knob.is-grabbing{cursor:grabbing;transition:background-color .2s ease}.pin-knob.is-pinned{background-color:var(--color-pin-active-surface);color:var(--color-pin-active-accent);box-shadow:0 2px 8px var(--shadow-color, rgba(0, 0, 0, .4)),0 0 0 2px var(--color-pin-active-accent),0 0 16px 1px #74ac00cc}.pin-knob__icon{width:1.4rem;height:1.4rem;fill:currentColor;pointer-events:none;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.pin-knob.is-pinned .pin-knob__icon{transform:rotate(-32deg)}.name-pair__item--pinned{filter:brightness(1.12) saturate(1.15)}.name-pair__item--pinned:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #fff,0 0 16px 3px #74ac00d9;opacity:1;transition:opacity var(--duration-quick) ease}.name-pair--overlay-active .name-pair__item--pinned{filter:none}.name-pair--overlay-active .name-pair__item--pinned:after{opacity:0;transition:none}.name-pair__learned-badge{--badge-uprung-scale: 1.28;position:absolute;top:.3rem;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;z-index:calc(var(--z-content) + 1);pointer-events:none}.name-pair__container--x .name-pair__learned-badge{right:.35rem}.name-pair__container--y .name-pair__learned-badge{left:.35rem}.name-pair__learned-badge svg{width:100%;height:100%;--leaf-base-fill: var(--color-mastery-leaf-tile);fill:var(--leaf-base-fill);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.name-pair__learned-badge--ghost svg{fill:var(--color-mastery-leaf-tile);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45)) drop-shadow(0 0 4px rgba(var(--color-mastery-leaf-tile-rgb),.55));animation:learned-badge-ghost 2.8s ease-in-out infinite;transform-origin:center}@keyframes learned-badge-ghost{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(var(--badge-uprung-scale, 1.28))}}@media (prefers-reduced-motion: reduce){.name-pair__learned-badge--ghost svg{animation:none;opacity:.4}}.name-pair__learned-badge--silver svg{--leaf-base-fill: var(--color-mastery-silver);fill:url(#mastery-grad-silver);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45)) drop-shadow(-.6px -.6px .4px var(--overlay-white-78)) drop-shadow(.7px .8px .5px rgba(var(--color-mastery-silver-text-rgb),.62)) drop-shadow(0 0 5px rgba(var(--color-mastery-silver-rgb),.68))}.name-pair__learned-badge--gold svg{fill:url(#mastery-grad-gold);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45)) drop-shadow(-.6px -.6px .4px var(--color-mastery-gold-rim-soft)) drop-shadow(.7px .8px .5px rgba(var(--color-mastery-complete-text-rgb),.7)) drop-shadow(0 0 8px rgba(var(--color-mastery-complete-rgb),.72))}.name-pair__learned-badge--climbable svg{animation:learned-badge-climb-crossfade var(--badge-uprung-duration, 2.8s) ease-in-out infinite;transform-origin:center}@keyframes learned-badge-climb-crossfade{0%,to{fill:var(--leaf-base-fill);transform:scale(1)}50%{fill:var(--badge-uprung-peak, var(--color-mastery-tint-to-silver));transform:scale(var(--badge-uprung-scale, 1.28))}}@media (prefers-reduced-motion: reduce){.name-pair__learned-badge--climbable svg{animation:none;fill:var(--badge-uprung-peak, var(--color-mastery-tint-to-silver))}}.name-pair__learned-badge--pop{animation:learned-badge-pop .48s cubic-bezier(.18,.89,.32,1.28)}@keyframes learned-badge-pop{0%{transform:scale(1)}35%{transform:scale(1.4)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.name-pair__learned-badge--pop{animation:none}}.name-pair__item--dragging .name-pair__learned-badge,.name-pair__item--landing .name-pair__learned-badge,.name-pair:has(.name-pair__item--dragging) .name-pair__learned-badge,.image-container__drop-zone .name-pair__learned-badge{opacity:0}body.is-swiping .name-pair__learned-badge svg{animation-play-state:paused}.name-pair__container--x .name-pair__item--draggable{padding-right:var(--pin-knob-clearance, 1.5rem)}.name-pair__container--y .name-pair__item--draggable{padding-left:var(--pin-knob-clearance, 1.5rem)}.name-pair__item--draggable.name-pair__item--dragging,.name-pair__item--draggable.name-pair__item--mirroring,.name-pair__item--draggable.name-pair__item--landing{padding-left:var(--space-xs);padding-right:var(--space-xs)}body:has(.name-pair__item--dragging) .pin-knob,body:has(.name-pair__item--landing) .pin-knob,body:has(.image-container__drop-zone .name-pair__item--draggable) .pin-knob{opacity:0;pointer-events:none}body:has(.name-pair__item--engaged) .pin-knob{opacity:0;pointer-events:none}.pin-hint{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translate(-50%) translateY(4px);z-index:calc(var(--z-overlay) + 200);width:max-content;max-width:min(20rem,calc(100vw - 2rem));padding:var(--space-xs, .5rem) var(--space-sm, .75rem);border-radius:var(--border-radius-md, 8px);background-color:var(--bg-dialog);color:var(--text-on-light);font-size:var(--font-size-md);font-weight:600;line-height:1.35;text-align:center;white-space:pre-line;pointer-events:none;box-shadow:0 6px 20px #00000052;opacity:0;transition:opacity .22s ease,transform .22s ease}.pin-hint.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.dark-theme .pin-hint{background-color:var(--bg-dialog-item);color:var(--text-on-light)}@media (prefers-reduced-motion: reduce){.pin-hint{transition:opacity .22s ease;transform:translate(-50%)}.pin-hint.is-visible{transform:translate(-50%)}}.name-pair__primary-name,.name-pair__secondary-name{width:100%;display:block;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;line-height:var(--line-height-compact);margin:var(--space-xxs) 0;text-align:center}.name-pair__name--de-hyphenated{hyphens:manual;-webkit-hyphens:manual}.name-pair__primary-name:lang(zh-Hant),.name-pair__secondary-name:lang(zh-Hant),.name-pair__primary-name:lang(zh-Hans),.name-pair__secondary-name:lang(zh-Hans){word-break:normal;word-break:auto-phrase}.name-pair__primary-name{font-size:1em;font-weight:700;color:#fff}.name-pair__secondary-name{font-size:.95em;color:var(--overlay-white-85)}.name-pair__name--shrink{font-size:.85em}.name-pair__name--shrink-more{font-size:.7em}.name-pair__name--taxon{font-style:italic;hyphens:manual;-webkit-hyphens:manual}.name-pair__item--single-name .name-pair__primary-name{margin:var(--space-xxs) 0}.name-pair__item--draggable{position:relative;box-sizing:border-box;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:var(--border-radius-md);padding:var(--space-xs) var(--space-xs);width:300px;min-width:0;height:auto;min-height:var(--center-min-height);color:var(--text-on-primary);background-color:var(--bg-interactive);background-image:var(--name-tile-sheen);opacity:1;font-size:var(--name-tile-font-size);letter-spacing:.01em;text-shadow:0 1px 2px var(--shadow-color);box-shadow:0 0 0 var(--border-width-medium) var(--overlay-white-70),var(--elevation-2);touch-action:none;overflow:visible;text-overflow:clip;white-space:normal;word-break:keep-all;overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;word-wrap:break-word;cursor:grab;z-index:var(--z-content);-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important;transition:var(--hover-transition),left .1s ease-out,top .1s ease-out}body:not(.ui-ready) .name-pair__item--draggable{transition:none}.name-pair__item--touched{transform:scale(1.02)}.landscape-layout .name-pair__item--draggable{position:relative;width:100%;max-width:none}.portrait-layout .name-pair__item--draggable{box-shadow:0 0 0 var(--border-width-thin) var(--overlay-white-20),var(--elevation-2)}.name-pair__item--landing{will-change:translate}.name-pair__taxon-name,.name-pair__vernacular-name{width:100%;display:block;overflow:visible;word-break:keep-all;overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;text-overflow:clip;white-space:normal;word-wrap:break-word}.name-pair__taxon-name{font-style:italic;font-weight:700;margin-bottom:2px;font-size:.95em}.name-pair__vernacular-name{font-size:.85em;color:var(--text-secondary)}.name-pair__item--dragging,.name-pair__item--mirroring{outline:var(--border-width-medium) solid var(--overlay-white-70);outline-offset:0}.name-pair__item--dragging{opacity:.9;box-shadow:var(--elevation-4)!important;-webkit-box-shadow:var(--elevation-4)!important;transform:translateZ(0);-webkit-backface-visibility:hidden;-webkit-perspective:1000;cursor:grabbing}.name-pair__item--incorrect{animation:incorrectAnswer .6s ease-in-out}@keyframes incorrectAnswer{0%,to{background-color:var(--bg-interactive)}50%{background-color:var(--color-feedback-error)}}.name-pair__overlay{position:absolute;inset:auto;margin:0;padding:0;border:var(--border-width-thin) solid var(--overlay-white-20);border-radius:var(--border-radius-md);height:100%;background-color:var(--overlay-accent, var(--effect-overlay));display:flex;justify-content:center;align-items:center;overflow:hidden;z-index:var(--z-modal-backdrop);opacity:0;pointer-events:none;transition:opacity var(--duration-standard) ease,background-color var(--duration-standard) ease}.name-pair__overlay:popover-open{display:flex}.name-pair__overlay.show{opacity:1}.portrait-layout .name-pair__overlay{width:100%}.landscape-layout .name-pair__overlay{width:100%;background-color:transparent;overflow:visible}.name-pair__overlay-message{font-size:var(--font-size-xxl);font-weight:700;color:var(--text-on-primary);text-shadow:1px 1px 2px var(--shadow-color-medium);padding:15px;max-width:95%;line-height:1.4;text-align:center;overflow-wrap:break-word;word-break:break-word;transition:opacity .3s ease-in-out}.name-pair__overlay-message--long{font-size:var(--font-size-xl)}.landscape-layout .name-pair__overlay-message{font-size:var(--font-size-xxl);padding:var(--space-sm) var(--space-xl);max-width:min(92%,34rem);border-radius:var(--border-radius-pill);background-color:var(--overlay-accent, var(--effect-overlay));background-color:color-mix(in srgb,var(--overlay-accent, var(--effect-overlay)) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:var(--elevation-3);text-shadow:none}.landscape-layout .name-pair__overlay-message--long{font-size:var(--font-size-xl)}.swipe-info-message{position:absolute;top:calc(var(--space-xxl) + var(--space-sm));left:50%;transform:translate(-50%);background-color:var(--bg-dialog-item);color:var(--text-on-light);height:fit-content;width:auto;max-width:80%;padding:var(--space-xxs) var(--space-lg);border-radius:var(--border-radius-lg);font-size:larger;white-space:nowrap;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:var(--z-overlay)}.swipe-info-message--armed{background-color:var(--color-primary);color:var(--color-text-on-brand);transform:translate(-50%) scale(1.06)}.game-container--swipe-armed,.game-container--swiping{will-change:transform}.game-container--swiping{background-color:var(--bg-body);border-radius:var(--border-radius-lg);box-shadow:0 8px 32px #00000059}.swipe-preview{position:fixed;inset:0;display:none;flex-direction:column;align-items:center;justify-content:space-between;background-color:var(--bg-body);pointer-events:none}.swipe-preview--active{display:flex;will-change:transform,opacity}.swipe-preview__pane{flex:1;width:98vw;min-height:0;border-radius:var(--border-radius-lg);background-color:transparent;background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;overflow:hidden}.swipe-preview__spacer{flex:none;width:98vw;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:var(--space-xxs);min-height:var(--center-min-height);margin:var(--space-xxs) 0}.swipe-preview__tile{min-width:0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:var(--center-min-height);padding:var(--space-xs) var(--space-xs);border-radius:var(--border-radius-md);color:var(--text-on-primary);background-color:var(--bg-interactive);background-image:var(--name-tile-sheen);font-size:22px;text-shadow:1px 1px 2px var(--shadow-color);box-shadow:0 0 0 2px var(--color-neutral-200);overflow:visible}.swipe-preview__tile:first-child{padding-right:var(--pin-knob-clearance, 1.5rem)}.swipe-preview__tile:last-child{padding-left:var(--pin-knob-clearance, 1.5rem)}.swipe-preview--skeleton .swipe-preview__pane{background-color:var(--bg-dialog-item);position:relative;overflow:hidden}.swipe-preview--skeleton .swipe-preview__pane:after{content:"";position:absolute;top:0;bottom:0;left:0;width:250%;background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);pointer-events:none;animation:swipe-preview-shimmer 1.4s ease-in-out infinite}.swipe-preview--skeleton .swipe-preview__glyph{width:34%;max-width:180px;aspect-ratio:1;height:auto;fill:var(--color-neutral-dark);opacity:.22;pointer-events:none}@keyframes swipe-preview-shimmer{0%{transform:translate(-78%)}to{transform:translate(42%)}}.ui-container{position:absolute;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding-top:var(--safe-area-top);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right);z-index:var(--z-overlay)}.portrait-layout .ui-container{top:8px;left:50%;transform:translate(-50%);width:min(98vw,calc(100vw - var(--safe-area-left) - var(--safe-area-right)));max-width:var(--max-image-width)}.landscape-layout .ui-container{top:calc(var(--ls-edge) + var(--ls-gap));left:0;right:0;width:100%;max-width:none;transform:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:0;padding-left:calc(var(--safe-area-left) + var(--ls-edge) + var(--ls-gap));padding-right:calc(var(--safe-area-right) + var(--ls-edge) + var(--ls-gap))}.ui-left-zone,.ui-center-group,.ui-right-group{display:contents}.landscape-layout .ui-left-zone{grid-column:1;display:flex;align-items:center;min-width:0}.landscape-layout .ui-left-group{flex:0 0 auto}.landscape-layout .level-indicator{margin-left:0}.landscape-layout .history-buttons{margin-inline:auto}.landscape-layout .ui-center-group{grid-column:2;display:flex;align-items:center;gap:calc(3 * var(--ls-gap))}.landscape-layout .ui-right-group{grid-column:3;justify-self:end;display:flex;align-items:center;gap:var(--space-xs)}.ui-left-group{display:flex;align-items:center;gap:10px;flex:0 0 auto}.ui-buttons{display:flex;gap:10px;padding-right:8px;flex:0 0 auto}.level-indicator{position:static;height:var(--tap-target-min);border-radius:var(--border-radius-pill);margin-left:10px;padding-left:4px;padding-right:8px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:var(--color-glass-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--elevation-1);border:2px solid var(--color-feedback-info);z-index:var(--z-modal-backdrop);transition:var(--hover-transition)}@media (hover: hover){.level-indicator:hover{filter:brightness(var(--hover-brightness))}}.dark-theme .level-indicator{background-color:var(--color-glass-surface)}.level-indicator:focus{outline:none}.level-indicator .icon-chili{width:22px;height:22px;margin-right:0}.level-indicator .icon-chili:last-child{margin-right:0}.image-container__buttons{position:absolute;left:var(--space-xs);display:flex;flex-direction:column;align-items:flex-start;bottom:var(--space-xs)}.image-container__button{margin-bottom:var(--space-xs);width:var(--image-overlay-button-size);height:var(--image-overlay-button-size)}.image-container__button--globe{position:absolute;bottom:var(--space-xs);left:var(--image-overlay-globe-left);display:flex;opacity:0;transform:scale(.4);transform-origin:bottom left;pointer-events:none;transition:opacity var(--duration-standard) var(--easing-standard),transform var(--duration-standard) var(--easing-decelerate)}.image-container__button--globe--visible{opacity:1;transform:scale(1);pointer-events:auto}@media (prefers-reduced-motion: reduce){.image-container__button--globe{transition:opacity var(--duration-instant) var(--easing-standard);transform:none}.image-container__button--globe--visible{transform:none}}.portrait-layout .next-pair-button,.portrait-layout .prev-pair-button,.portrait-layout .history-buttons{display:none}.history-buttons{display:flex;align-items:center;gap:var(--space-xxs)}.prev-pair-button:disabled{opacity:.4;cursor:default;pointer-events:none}.game-container:has(.name-pair--hidden) .history-buttons,.game-container:has(.name-pair--hidden) .prev-pair-button,.game-container:has(.name-pair--hidden) .next-pair-button{display:none}.history-button{opacity:.8}@media (hover: hover){.history-button:hover{opacity:1}}#install-banner,#ios-install-prompt,#android-app-banner{position:fixed;bottom:0;left:0;right:0;background-color:var(--bg-dialog);padding:10px;padding-bottom:max(10px,var(--safe-area-bottom));padding-left:max(10px,var(--safe-area-left));padding-right:max(10px,var(--safe-area-right));text-align:center;box-shadow:0 -2px 5px var(--shadow-color);z-index:var(--z-overlay)}#install-banner button,#ios-install-prompt button,#android-app-banner button{margin:5px;padding:5px 10px;min-height:var(--tap-target-min);min-width:var(--tap-target-min);background-color:var(--bg-interactive);color:var(--text-on-primary);border:none;border-radius:3px;cursor:pointer}#install-banner button:hover,#ios-install-prompt button:hover,#android-app-banner button:hover{background-color:var(--bg-interactive-hover)}dialog{position:fixed;top:50%;left:50%;margin:0;opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity .3s ease,transform .3s ease;-webkit-overflow-scrolling:touch;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}dialog input,dialog textarea,dialog select,dialog [contenteditable=true],dialog .is-selectable{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}dialog[open]{opacity:1;display:flex;flex-direction:column}@supports (-webkit-touch-callout: none){.ios-device dialog{position:absolute;height:-webkit-fill-available}}.standard-dialog{background-color:var(--dialog-surface);border-radius:var(--dialog-border-radius);border:none;box-shadow:var(--dialog-shadow);width:95%;max-width:var(--dialog-width-sm);max-height:var(--dialog-max-height);overflow-y:auto;padding:var(--dialog-padding);z-index:var(--z-dialog)}#filter-dialog,#rank-dialog,#range-dialog,#phylogeny-dialog{border:1.5px solid var(--color-filter-accent);box-shadow:0 0 0 4px rgba(var(--color-filter-accent-rgb),.12),var(--dialog-shadow)}.dialog-content{display:flex;flex-direction:column;gap:var(--space-xs);align-items:center;width:100%;flex:1 1 auto;min-height:0;overflow-y:auto}.dialog-header{display:grid;grid-template-columns:minmax(var(--dialog-header-slot),auto) 1fr minmax(var(--dialog-header-slot),auto);align-items:center;gap:var(--space-xxs);min-height:var(--dialog-control-size);margin:calc(-1 * var(--dialog-padding)) calc(-1 * var(--dialog-padding)) var(--space-sm);padding:var(--space-xxs) var(--dialog-padding);border-bottom:1px solid var(--dialog-divider);background-color:var(--dialog-surface);flex:0 0 auto;align-self:stretch}.dialog-header-buttons{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-xxs)}.dialog-header>.dialog-close-button{grid-column:3;justify-self:end}.dialog-header>.dialog-help-button{grid-column:1;justify-self:start}.dialog-title{grid-column:2;color:var(--dialog-title-color);text-align:center;font-size:var(--font-size-xl);font-weight:600;line-height:1.2;overflow-wrap:anywhere;margin:0}.dialog-close-button,.dialog-help-button{background:none;border:none;padding:0;min-width:var(--dialog-control-size);min-height:var(--dialog-control-size);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);border-radius:var(--border-radius-sm);transition:color var(--duration-quick) var(--easing-standard),background-color var(--duration-quick) var(--easing-standard)}.dialog-close-button{font-size:var(--font-size-xl);line-height:1}.dialog-help-button svg{fill:currentColor;width:24px;height:24px}@media (hover: hover){.dialog-close-button:hover,.dialog-help-button:hover{color:var(--color-text-primary);background-color:rgba(var(--color-text-primary-rgb),.08)}}@media (max-height: 500px){.dialog-title{font-size:var(--font-size-lg)}.dialog-header{margin-bottom:var(--space-xs)}}.standard-text{color:var(--color-neutral-dark)}dialog::backdrop{background-color:var(--overlay-black-50);backdrop-filter:blur(6px) saturate(1.2);-webkit-backdrop-filter:blur(6px) saturate(1.2)}#info-dialog::backdrop{background-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.keyboard-shortcuts-dialog{max-width:var(--dialog-width-sm)}#keyboard-shortcuts-button-container{width:100%}.keyboard-shortcuts-dialog .dialog-content{max-width:var(--dialog-width-sm)}.keyboard-shortcuts__list{display:grid;gap:var(--space-xs);justify-items:center}.keyboard-shortcuts__group{padding:var(--space-xs)}.keyboard-shortcuts__title{font-size:var(--font-size-lg);padding:var(--space-xs);color:var(--color-action-primary)}.keyboard-shortcuts__item{display:flex;align-items:center}.keyboard-shortcuts__key{background-color:var(--dialog-item-background);border:var(--border-width-thin) solid var(--toggle-slider-color);border-radius:var(--border-radius-sm);padding:var(--space-xxs) var(--space-sm);font-size:var(--font-size-lg);font-family:monospace;margin-right:var(--space-xs);min-width:20px;text-align:center;color:var(--dialog-text-color)}.keyboard-shortcuts__description{flex-grow:1;font-size:var(--font-size-lg);text-align:left;color:var(--dialog-text-color)}.help-dialog{max-width:var(--dialog-width-sm)}.help-dialog_content{gap:var(--space-xs);overflow:auto}.help-dialog__logo{position:relative;width:80px;height:80px;margin-top:-20px;overflow:hidden;opacity:.8}.help-dialog__title{font-size:var(--font-size-xl);margin-top:-16px}.help-dialog__title-duo{color:var(--color-brand-secondary)}.help-dialog__title-nat{color:var(--color-action-primary)}.help-dialog__subtitle{color:var(--dialog-text-color);font-size:var(--font-size-sm)}.help-dialog__items{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:var(--space-xs)}.help-dialog__item{display:flex;align-items:center;gap:var(--space-md);background-color:var(--dialog-item-background);padding:var(--space-md);border-radius:var(--border-radius-md);box-shadow:var(--dialog-item-shadow)}.help-dialog__item-text{margin:0;font-size:var(--font-size-lg);line-height:var(--line-height-normal);color:var(--dialog-text-color);text-align:left}.help-dialog__shortcuts{width:100%}.help-dialog__shortcuts-title{margin-bottom:var(--space-xs);color:var(--color-action-primary)}.help-dialog__shortcuts-list{list-style-type:none;padding-left:0}.help-dialog__shortcuts-item{margin-bottom:var(--space-xxs);text-align:left}.help-dialog__shortcut-key{display:inline-block;width:20px;text-align:center;margin-right:var(--space-xs);background-color:var(--color-action-primary);color:var(--color-text-on-brand);border-radius:var(--border-radius-sm);padding:var(--space-xxs)}.help-dialog__button{width:100%}.help-dialog__button-row{display:grid;grid-template-columns:1fr;gap:var(--space-xs);width:100%}@media (min-width: 30rem){.help-dialog__button-row:has(#keyboard-shortcuts-button){grid-template-columns:1fr 1fr}}#keyboard-shortcuts-button-container{display:grid;align-items:stretch}.help-dialog__version-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);width:100%}.help-dialog__version{font-size:var(--font-size-xs);color:var(--dialog-text-color);opacity:.7;font-style:italic;word-wrap:break-word;flex:1;text-align:left;padding:0 var(--space-xs)}.help-dialog__version--link{cursor:pointer;text-decoration:underline;text-underline-offset:2px}@media (hover: hover){.help-dialog__version--link:hover{opacity:1}}.help-dialog__action-buttons{display:flex;gap:var(--space-xs);align-items:center}.help-dialog__action-button{font-size:var(--font-size-xs);padding:var(--space-xxs) var(--space-sm);background-color:var(--color-action-primary);color:var(--color-text-on-brand);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:var(--transition-quick);white-space:nowrap;flex-shrink:0}.help-dialog__action-button:hover{filter:brightness(var(--hover-brightness))}.help-dialog__update-button{font-size:var(--font-size-xs);padding:var(--space-xxs) var(--space-sm);background-color:var(--color-action-primary);color:var(--color-text-on-brand);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:var(--transition-quick);white-space:nowrap;flex-shrink:0}.help-dialog__update-button:hover{filter:brightness(var(--hover-brightness))}.tag-dialog__container{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-xxs);margin:var(--space-xs) 0;width:100%}.tag-dialog__item{background-color:var(--color-surface-secondary);color:var(--dialog-text-color);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-pill);cursor:pointer;transition:var(--transition-standard);border:var(--border-width-medium) solid transparent;display:inline-flex;align-items:center;margin:var(--space-xxs);line-height:var(--line-height-compact)}.tag-dialog__item:hover{background-color:var(--toggle-bg-color)}.tag-dialog__item--single{font-size:var(--font-size-sm)!important}.tag-dialog__item.active{background-color:var(--color-action-primary);color:var(--color-text-on-brand);border-color:var(--color-action-primary)}.tag-dialog__untagged{width:100%;text-align:center;margin-top:var(--space-xs);font-style:italic;color:var(--dialog-text-color)}.tag-dialog__counter{margin-top:var(--space-xs);color:var(--dialog-text-color);font-style:italic}.tag-dialog__done-button{width:100%;margin-top:var(--space-md)}.dark-theme .tag-dialog__item{background-color:var(--dialog-background)}.dark-theme .tag-dialog__item:hover{background-color:var(--dialog-item-background)}.dark-theme .tag-dialog__item.active{background-color:var(--color-action-primary)}.qr-dialog{max-width:var(--dialog-width-lg)}.qr-dialog__qr-container{margin:var(--space-xs) auto;background-color:#fff;padding:var(--space-lg);border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;min-width:calc(256px + 2 * var(--space-lg));min-height:calc(256px + 2 * var(--space-lg));box-sizing:border-box}.qr-dialog__qr-error{font-size:var(--font-size-sm);color:#333;text-align:center;margin:0;padding:var(--space-sm)}.qr-dialog__qr-spinner{border:var(--border-width-thick) solid var(--color-neutral-200);border-top:var(--border-width-thick) solid var(--color-action-primary);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}.qr-dialog__qr-container canvas{display:block!important;width:256px!important;height:256px!important;margin:0 auto!important}.qr-dialog__qr-container img{display:none!important}.qr-dialog__qr-container img{display:block;width:256px;height:256px}.qr-dialog__message{font-weight:var(--font-weight-bold);color:var(--color-action-primary);margin:var(--space-xxs) 0;opacity:0}.qr-dialog__link-container{display:flex;flex-direction:column;margin-top:var(--space-xs);width:100%}.qr-dialog__url{width:100%;padding:var(--space-xs);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--border-radius-md) var(--border-radius-md) 0 0;font-size:var(--font-size-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;background-color:var(--color-background-tertiary);color:var(--color-text-primary);transition:border-color var(--duration-standard) ease;min-height:60px;word-break:break-all;white-space:pre-wrap;user-select:all;cursor:text}.qr-dialog__url:hover{filter:brightness(var(--hover-brightness))}.qr-dialog__url:focus{outline:none;border-color:var(--color-action-primary);box-shadow:var(--state-focus-ring)}.qr-dialog__url-base{color:var(--color-text-secondary)}.qr-dialog__url-key{color:var(--color-action-primary);font-weight:var(--font-weight-bold)}.qr-dialog__url-value{color:var(--color-feedback-info)}.qr-dialog__url-punct{color:var(--color-text-tertiary)}.qr-dialog__copy-button{background-color:var(--color-action-primary);color:var(--color-text-on-brand);border:none;padding:var(--space-xs) var(--space-lg);border-radius:0 0 var(--border-radius-md) var(--border-radius-md);cursor:pointer;transition:var(--transition-quick);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);width:100%;margin-top:-1px}.qr-dialog__copy-button:hover,.qr-dialog__copy-button:focus{filter:brightness(var(--hover-brightness))}.qr-dialog__screenshot-container{margin-top:var(--space-lg)}.qr-dialog__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-xs);font-weight:var(--font-weight-bold)}.dark-theme .qr-dialog__subtitle{color:var(--color-neutral-400)}.qr-dialog__options-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:center;margin-bottom:var(--space-xxs)}.report-dialog{max-width:var(--dialog-width-md);min-height:450px}.report-dialog:has(.report-dialog__confirmation){min-height:auto}.report-dialog__options{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.report-dialog__option{display:flex;align-items:flex-start;gap:var(--space-sm);cursor:pointer;color:var(--dialog-text-color);padding:var(--space-sm) var(--space-xs);border-radius:var(--border-radius-sm);transition:background-color var(--duration-quick) ease}.report-dialog__option:hover{background-color:var(--dialog-item-background)}.report-dialog__option input[type=checkbox]{cursor:pointer;accent-color:var(--color-action-primary);margin-top:var(--space-xxs);flex-shrink:0}.report-dialog__options label{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;color:var(--dialog-text-color)}#report-dialog__details{width:100%;height:100px;padding:var(--space-xs);border:var(--border-width-thin) solid var(--toggle-slider-color);border-radius:var(--border-radius-sm);resize:vertical;background-color:var(--dialog-item-background);color:var(--dialog-text-color)}.report-dialog__submit{background-color:var(--color-action-primary);color:var(--color-text-on-brand);border:none;padding:var(--space-xs) var(--space-lg);border-radius:var(--border-radius-md);cursor:pointer;transition:background-color var(--duration-standard) ease}.report-dialog__submit:hover:not(:disabled){background-color:var(--color-action-primary-hover)}.report-dialog__submit:disabled,.report-dialog__submit.disabled{background-color:var(--color-background-muted);color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.report-dialog__confirmation{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-xl);text-align:center;color:var(--dialog-text-color)}.report-dialog__confirmation p{margin:0;font-size:var(--font-size-md);line-height:var(--line-height-normal)}.report-dialog__confirmation p:first-of-type{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-action-primary)}.report-dialog__confirmation pre{background-color:var(--dialog-item-background);padding:var(--space-xs);border-radius:var(--border-radius-sm);white-space:pre-wrap;word-wrap:break-word;color:var(--dialog-text-color);border:var(--border-width-thin) solid var(--toggle-slider-color)}.report-dialog__close-button{margin-top:0;padding:var(--space-sm) var(--space-xl);font-size:var(--font-size-md)}.report-dialog__privacy-text{color:var(--dialog-text-color);margin:0}.report-dialog__privacy-option{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xs);border-radius:var(--border-radius-sm);transition:background-color var(--duration-quick) ease}.report-dialog__privacy-option:hover{background-color:var(--overlay-white-05)}.report-dialog__privacy-option input[type=checkbox]{cursor:pointer;accent-color:var(--color-action-primary);margin-top:var(--space-xxs);flex-shrink:0}.ancestry-dialog{display:none;flex-direction:column;gap:var(--space-xs);width:95%;max-width:var(--dialog-width-full);height:95%;margin:0}.ancestry-dialog__panel{display:flex;flex-direction:column;gap:var(--space-xs);flex:0 0 auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.ancestry-dialog__controls--toggles{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:16px;margin:8px;flex-wrap:wrap}@media (max-width: 480px){.ancestry-dialog__controls--toggles{flex-direction:column;gap:12px}}.ancestry-dialog__hint{color:var(--text-on-light);font-size:var(--font-size-md);opacity:.75;margin:8px}.ancestry-dialog__hint--touch{display:none}@media (hover: none) and (pointer: coarse){.ancestry-dialog__hint--mouse{display:none}.ancestry-dialog__hint--touch{display:block}}.ancestry-dialog__tmrca{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;padding:4px 6px;background-color:var(--color-surface-primary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-sm);font-size:var(--font-size-md);color:var(--color-text-primary);box-shadow:var(--elevation-1);flex-shrink:0}.ancestry-dialog__tmrca--pending{visibility:hidden}.ancestry-dialog__tmrca--absent{display:none}.ancestry-dialog__tmrca-label{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:4px;text-align:center}.ancestry-dialog__tmrca-value-row{display:flex;align-items:center;justify-content:center;min-height:calc(var(--font-size-lg) * 1.3)}.ancestry-dialog__tmrca-value{font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:var(--font-size-lg);margin-right:8px}.ancestry-dialog__tmrca-help{background:var(--color-surface-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-medium);border-radius:50%;width:20px;height:20px;font-size:var(--font-size-xs);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color var(--duration-quick, .2s) ease;flex-shrink:0}.ancestry-dialog__tmrca-help:hover{background:var(--color-action-tertiary);color:var(--color-text-on-brand);transform:scale(1.05);transition:all var(--duration-quick, .2s) ease}@media screen and (-webkit-min-device-pixel-ratio: 0){.ancestry-dialog__tmrca-help{-webkit-appearance:none;-webkit-tap-highlight-color:transparent}}.ancestry-dialog__graph{display:flex;flex-grow:1;overflow:hidden;position:relative;width:100%;height:100%;margin:0;padding:0;border:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ancestry-dialog__graph svg{margin:0!important;padding:0!important;border:0!important;display:block;width:100%!important;height:100%!important;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.ancestry-dialog__graph svg g{margin:0!important;padding:0!important}#ancestry-dialog.hidden .ancestry-dialog__graph{display:none;visibility:hidden}.landscape-layout .ancestry-dialog__panel{position:absolute;left:var(--dialog-padding);bottom:var(--dialog-padding);z-index:calc(var(--z-base) + 1);width:max-content;max-width:min(30rem,60%);padding:0 var(--space-md) var(--space-md);gap:var(--space-md);background-color:var(--dialog-surface);border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);box-shadow:var(--elevation-3);touch-action:none}.landscape-layout .ancestry-dialog__controls--toggles{flex-direction:row;flex-wrap:nowrap;gap:var(--space-md);margin:0}.landscape-layout .ancestry-dialog__hint{margin:0;text-align:center}.landscape-layout .ancestry-dialog__tmrca{padding:var(--space-xs) var(--space-sm)}.ancestry-tree__node-text,.ancestry-tree__node-text tspan{-webkit-text-size-adjust:none;text-size-adjust:none}.ancestry-tree__link{fill:none;stroke:var(--color-border-medium);stroke-width:2px}.ancestry-tree__node-rect{stroke:var(--color-white);stroke-width:2px;fill:var(--bg-interactive);box-shadow:0 2px 4px #0000001a}.ancestry-tree__node-rect--common-ancestor{fill:var(--color-accent);stroke-width:3px}.ancestry-tree__node-rect--endpoint{fill:var(--color-primary);stroke-width:3px}.ancestry-tree__node-rect.ancestry-tree__node-rect--filter-node{stroke:var(--color-feedback-info);stroke-width:4px}.ancestry-tree__filter-badge-pill{fill:var(--color-feedback-info)}.ancestry-tree__filter-badge-text{fill:var(--color-white);font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.ancestry-tree__filter-badge-icon{fill:var(--color-white)}.ancestry-tree__node-text tspan[style*=italic]{font-style:italic}.ancestry-tree__node:hover{cursor:pointer}.dark-theme .ancestry-tree__link{stroke:var(--text-on-light)}.dark-theme .ancestry-tree__node-rect{stroke:var(--bg-dialog)}.dark-theme .ancestry-tree__node-rect.ancestry-tree__node-rect--filter-node{stroke:var(--color-feedback-info)}.ancestry-tree__node-text--rank{font-size:var(--font-size-lg);font-weight:400;fill:var(--color-white);opacity:.8}.ancestry-tree__node-text--taxon{font-size:var(--font-size-lg);font-weight:700;fill:var(--color-white)}.ancestry-tree__node-text--taxon tspan[style*=italic]{font-style:italic;font-weight:600}.ancestry-popup{max-width:var(--dialog-width-xs)!important;overflow:hidden}.ancestry-popup__container{display:flex;flex-direction:column;gap:8px}.ancestry-popup__taxon{font-size:larger;font-weight:700;color:var(--dialog-title-color)}.ancestry-popup__vernacular{font-size:larger;margin:8px 0;color:var(--dialog-text-color)}.ancestry-popup__buttons{display:flex;flex-direction:column;align-items:stretch;gap:8px}.ancestry-popup__buttons .dialog-button{width:100%;background-color:var(--color-primary);color:var(--color-text-on-brand);transition:background-color var(--duration-standard) ease}#ancestry-popup-filter{background-color:var(--color-feedback-info)}#ancestry-popup-filter{height:60px;font-size:x-large}.ancestry-popup__button--inactive{opacity:.5;cursor:not-allowed}.tmrca-popup{max-width:var(--dialog-width-xs)!important;overflow:hidden}.tmrca-popup__title{font-size:var(--font-size-lg)}.tmrca-popup__container{display:flex;flex-direction:column;padding:var(--space-md)}.tmrca-popup__explanation{margin-bottom:var(--space-lg)}.tmrca-popup__description{font-size:var(--font-size-md);color:var(--dialog-text-color);line-height:var(--line-height-normal);margin-bottom:var(--space-md);text-align:left}.tmrca-popup__abbreviation{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;margin-bottom:0;text-align:center}.tmrca-popup__buttons{display:flex;flex-direction:column;align-items:stretch}.tmrca-popup__button{width:100%;background-color:var(--color-primary);color:var(--color-text-on-brand);padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--border-radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color var(--duration-quick) ease;box-shadow:var(--elevation-1)}.tmrca-popup__button-icon{margin-right:var(--space-xs);font-size:var(--font-size-lg)}.dark-theme .tmrca-popup__description{color:var(--dialog-text-color)}.dark-theme .tmrca-popup__abbreviation{color:var(--color-text-secondary)}@media (max-width: 480px){.tmrca-popup{max-width:90vw!important}.tmrca-popup__container{padding:var(--space-sm)}.tmrca-popup__button{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}}.auth-dialog__form{display:flex;flex-direction:column;width:100%}.auth-dialog__input-group{display:flex;flex-direction:column}.auth-dialog__label{color:var(--dialog-text-color);text-align:left;font-weight:700;font-size:var(--font-size-sm)}.auth-dialog__input{width:100%;padding:8px;margin:5px 0 15px;border:1px solid var(--toggle-slider-color);border-radius:var(--border-radius-md);background-color:var(--dialog-item-background);color:var(--dialog-text-color)}.auth-dialog__error{color:var(--color-accent);font-size:var(--font-size-sm);margin-top:5px;text-align:left;display:none}.auth-dialog__error.visible{display:block}.auth-dialog.visible{display:flex}.auth-dialog__button-group{display:flex;gap:10px;margin-top:20px}.auth-dialog__button-group button{flex:1;padding:8px 16px}.auth-dialog__divider{display:flex;align-items:center;text-align:center;margin:15px 0;color:var(--dialog-text-color)}.auth-dialog__divider:before,.auth-dialog__divider:after{content:"";flex:1;border-bottom:1px solid var(--toggle-slider-color)}.auth-dialog__divider span{padding:0 10px}.auth-dialog__google-button{width:100%;padding:8px 16px;background-color:var(--dialog-item-background);border:1px solid var(--toggle-slider-color);border-radius:var(--border-radius-md);font-size:var(--normal-font-size);color:var(--dialog-text-color);cursor:pointer;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px;transition:background-color .2s}.auth-dialog__google-button:hover{background-color:rgba(var(--color-google-blue-rgb),.2)}.auth-dialog__google-button:focus{outline:none}.auth-dialog__google-button:active{background-color:var(--bg-dialog)}.auth-dialog__google-button svg{width:18px;height:18px}.auth-dialog__recommended{text-align:center;margin-bottom:12px;color:var(--dialog-text-color);font-size:var(--font-size-sm)}.auth-dialog__google-button--primary{background:var(--color-google-blue);color:var(--color-white);font-weight:500;padding:12px 16px}.auth-dialog__google-subtitle{display:block;font-size:var(--font-size-sm);opacity:.9}.filter-dialog__inner{display:flex;flex-direction:column;height:100%;overflow:hidden}.filter-dialog__top-section{display:flex;flex-direction:column;align-items:flex-start}.filter-dialog__list{flex-grow:1;width:100%;max-height:calc(90dvh - 140px);overflow-y:auto;overflow-x:hidden;margin-bottom:0;scrollbar-width:none;scroll-behavior:smooth}.filter-dialog__list::-webkit-scrollbar{display:none}.filter-dialog__button-group{display:flex;flex-direction:row;align-items:stretch;gap:var(--space-xs);width:100%;margin-bottom:var(--space-xxs)}.filter-dialog__select-buttons{width:118px;flex-shrink:0;background-color:var(--bg-interactive);color:var(--color-text-on-brand);border:var(--border-width-medium) solid var(--color-action-primary);border-radius:var(--border-radius-md);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:1.125rem;font-weight:var(--font-weight-bold);height:53px;box-shadow:var(--elevation-1)}.filter-dialog__level-filter{flex:1;display:flex;align-items:stretch;min-width:0;margin:0}.filter-dialog__level-filter>*{width:100%;flex:1;min-width:0}.filter-dialog__level-filter button,.filter-dialog__level-filter .level-dropdown__trigger,.filter-dialog__level-filter .level-filter-dropdown{width:100%!important;min-width:0!important;box-sizing:border-box;border:var(--border-width-medium) solid var(--color-action-primary);border-radius:var(--border-radius-md);background-color:var(--dialog-item-background);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-sm);cursor:pointer;transition:var(--hover-transition);height:53px;box-shadow:var(--elevation-1);display:flex;align-items:center;justify-content:space-between}.filter-dialog__level-filter .level-dropdown__text,.filter-dialog__level-filter button>span:first-child{flex:1;min-width:0;margin-right:4px;text-align:center;white-space:normal;overflow:hidden;word-break:keep-all;overflow-wrap:break-word;line-height:1.1;font-size:calc(1.05em - (var(--char-count, 4) - 4) * .012em)}@media (max-width: 400px){.filter-dialog__level-filter .level-dropdown__text,.filter-dialog__level-filter button>span:first-child{font-size:calc(.9em - (var(--char-count, 4) - 4) * .015em)}}.filter-dialog__level-filter .level-dropdown__arrow,.filter-dialog__level-filter button svg{width:16px;height:16px;flex-shrink:0;opacity:.7}.filter-dialog__action-buttons{display:flex;flex-direction:row;align-items:center;gap:var(--space-xs);width:100%;margin:var(--space-xxs) 0}.filter-dialog__action-button{background-color:var(--bg-interactive);color:var(--color-text-on-brand);border:var(--border-width-medium) solid var(--color-action-primary);border-radius:var(--border-radius-md);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);box-shadow:var(--elevation-1);text-align:center;display:flex;align-items:center;justify-content:center}.filter-dialog__action-button--clear{background-color:var(--color-action-secondary);border-color:var(--color-action-secondary);flex:1;height:53px}.filter-dialog__action-button--disabled{background-color:var(--bg-dialog-item);color:var(--color-text-secondary);border-color:var(--color-border-light);cursor:not-allowed;opacity:.6}.filter-dialog__action-button--disabled:hover{filter:none;transform:none}.filter-dialog__action-button--fixed{width:118px;height:53px;flex-shrink:0}.filter-summary__map--standalone{width:118px;height:53px;flex-shrink:0;background-color:var(--bg-interactive);border:var(--border-width-medium) solid var(--color-action-primary);border-radius:var(--border-radius-md);padding:var(--space-xxs);cursor:pointer;box-shadow:var(--elevation-1);display:flex;justify-content:center;align-items:center}.filter-summary__map--standalone svg{width:100%;height:auto;max-height:45px}.filter-dialog__done-button{position:relative;flex-grow:1;max-height:80px;height:80px;width:100%;font-size:200%;color:var(--color-text-on-brand)}.filter-dialog__done-button--disabled{background-color:var(--bg-dialog-item);color:var(--color-text-secondary);border-color:var(--color-border-light);cursor:not-allowed;opacity:.6}.filter-dialog__done-button--disabled:hover{filter:none;transform:none}.filter-dialog__view-button{width:100%;margin:var(--space-xs) 0;background-color:var(--bg-interactive);color:var(--color-text-on-brand);font-size:var(--font-size-lg);text-align:center}.filter-dialog__view-count{position:relative}.filter-dialog__view-count--pending{opacity:.55}.filter-dialog__view-count--pending:after{content:"";position:absolute;left:100%;top:50%;margin-left:var(--space-xs);margin-top:-.35em;width:.7em;height:.7em;border:2px solid var(--overlay-white-20);border-top-color:var(--color-text-on-brand);border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 480px){.filter-dialog__button-group,.filter-dialog__action-buttons{gap:var(--space-xxs)}.filter-dialog__select-buttons{padding:var(--space-xs) 10px}.filter-dialog__level-filter button,.filter-dialog__level-filter .level-dropdown__trigger{padding:var(--space-xs) 6px var(--space-xs) 10px}.filter-dialog__level-filter .level-dropdown__arrow,.filter-dialog__level-filter button svg{width:12px;height:12px}}@media (max-width: 350px){.filter-dialog__button-group,.filter-dialog__action-buttons{gap:2px}.filter-dialog__select-buttons{font-size:var(--font-size-md);padding:6px 8px}.filter-dialog__level-filter button,.filter-dialog__level-filter .level-dropdown__trigger{padding:6px 4px 6px 8px}.filter-dialog__level-filter .level-dropdown__arrow,.filter-dialog__level-filter button svg{width:10px;height:10px}}.phylogeny-icon-container{display:flex;flex-direction:column;align-items:center;width:100%}.phylogeny-icon-row{display:flex;justify-content:center;width:100%;gap:4px}.phylogeny-icon{flex-grow:1;flex-basis:0;min-width:36px;max-width:80px;height:auto;background-color:var(--bg-dialog-item);border-radius:var(--border-radius-md);width:57px;height:57px;margin:4px 0;cursor:pointer;fill:var(--color-neutral-dark);transition:transform .2s ease,fill .2s ease,background-color var(--duration-standard) ease}.phylogeny-icon.active{fill:var(--color-primary)}.phylogeny-icon:hover{transform:scale(1.05);filter:brightness(var(--hover-brightness))}.phylogeny-taxon{font-weight:700;font-style:italic;color:var(--text-on-light)}.phylogeny-vernacular{color:var(--text-on-light)}.filter-summary__map .continent-path.selected{fill:var(--color-filter-accent)}.filter-summary{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;background-color:var(--dialog-item-background);border-radius:var(--border-radius-md);padding:4px;width:100%;height:100%;min-height:50px;cursor:auto}.filter-summary:hover{filter:brightness(var(--hover-brightness))}.filter-summary__phylogeny{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin:2px;color:var(--color-text-primary)}@media (max-width: 480px){.filter-summary__phylogeny{flex-direction:column;gap:0px}}.filter-summary__tags{display:flex;flex-wrap:wrap;gap:5px;flex-grow:1;justify-content:space-evenly;align-items:center}.filter-summary__tag{background-color:var(--bg-interactive);color:var(--color-text-on-brand);padding:2px 8px;border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);user-select:none}.filter-summary__location:empty{display:none}.filter-summary__location-item{color:var(--color-text-primary)}.filter-dialog__active-filters-section{margin:2px 0;padding:var(--space-sm) var(--space-xs);background-color:var(--dialog-item-background);border-radius:var(--border-radius-md);border:1px solid var(--color-border-light);width:100%}.filter-dialog__section-label{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-align:center}.filter-dialog__active-filters{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;width:100%;position:relative}.filter-summary{position:relative;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;background-color:transparent;border-radius:var(--border-radius-md);padding:8px;width:100%;min-height:50px;cursor:auto}.filter-summary__phylogeny{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin:2px 0;min-height:1.2em;color:var(--color-text-primary);font-size:var(--font-size-md)}.filter-summary__rank{min-height:1.2em}.dark-theme .filter-summary__phylogeny{color:var(--color-neutral-900)}@media (max-width: 480px){.filter-summary__phylogeny{flex-direction:column;gap:0px;min-height:2.4em}}.filter-summary__tags{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;align-items:center;margin-top:8px}.filter-summary__tag{background-color:var(--bg-interactive);color:var(--color-text-on-brand);padding:4px 12px;border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);user-select:none}.filter-summary__no-tags{color:var(--color-text-secondary);font-style:italic}.dark-theme .filter-dialog__active-filters-section{background-color:var(--bg-dialog)}.dark-theme .filter-dialog__section-label{color:var(--color-text-tertiary)}.filter-dialog__active-tags{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:var(--space-xxs);margin-bottom:var(--space-xxs);width:100%;position:relative}.filter-dialog__tags-list{display:flex;flex-wrap:wrap;align-content:center;justify-content:flex-start;gap:5px;margin:0 var(--space-xxs);flex-grow:1}.active-tag{background-color:var(--color-action-primary);color:var(--color-text-on-brand);padding:2px var(--space-xs);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm)}.filter-dialog__clear-tags{background-color:var(--color-action-secondary);color:var(--color-text-on-brand);border:none;padding:5px 10px;border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-sm)}.filter-dialog__clear-filters{background-color:var(--color-action-secondary);color:var(--color-text-on-brand);border:none;padding:5px 10px;margin:var(--space-xxs);border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);width:100px;flex-shrink:0}.filter-dialog__search{position:relative;margin-bottom:8px}.filter-dialog__search-input{width:100%;padding:10px 15px 10px 40px;border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);font-size:var(--font-size-md);transition:border-color var(--duration-standard) var(--easing-standard);background-color:var(--dialog-item-background);color:var(--color-text-primary)}.filter-dialog__search-input:focus{outline:none;border-color:var(--color-action-primary);box-shadow:var(--state-focus-ring)}.filter-dialog__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--color-text-tertiary)}.filter-dialog__clear-search{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;width:20px;height:20px;color:var(--color-text-tertiary);display:none}.filter-dialog__clear-search:hover{color:var(--color-action-primary)}.no-results-message{text-align:center;padding:20px;font-size:var(--font-size-lg);color:var(--color-text-secondary)}.filter-warning{display:block;margin-top:10px;font-size:var(--font-size-sm);color:var(--color-feedback-error);font-style:italic}.collection-viewer.standard-dialog{width:min(94vw,var(--dialog-width-xl));max-width:min(94vw,var(--dialog-width-xl));--cv-photo-band: 8rem}@media (min-width: 64rem){.collection-viewer.standard-dialog{width:min(94vw,var(--dialog-width-max));max-width:min(94vw,var(--dialog-width-max))}}.collection-viewer__toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);width:100%;flex:0 0 auto;margin-bottom:var(--space-xs)}.collection-viewer__toolbar .search-container{flex:1 1 12rem;min-width:0;margin-bottom:0}.collection-viewer__toolbar .taxon-info-toggle-container{flex:0 0 auto;margin-bottom:0;margin-left:auto}.collection-viewer__toolbar .view-toggle__label{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;width:auto;min-width:10rem}.collection-viewer__toolbar .view-toggle__option{padding:3px var(--space-sm);white-space:nowrap}.collection-viewer__list{flex:1 1 auto;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:smooth;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;gap:var(--space-xs);align-content:start;padding:2px;scrollbar-width:thin;scrollbar-color:rgba(var(--color-border-medium-rgb),.6) transparent}.collection-viewer__list::-webkit-scrollbar{width:8px}.collection-viewer__list::-webkit-scrollbar-thumb{background-color:rgba(var(--color-border-medium-rgb),.6);border-radius:var(--border-radius-pill)}.collection-viewer__list::-webkit-scrollbar-track{background:transparent}.collection-viewer__list>.load-more-button,.collection-viewer__list>.no-results-message{grid-column:1 / -1}.collection-viewer__empty{align-self:center}.collection-card{--cv-dir: row;--cv-align: center;--cv-gap: var(--space-sm);--cv-pad: var(--space-xs);--cv-duo-width: auto;--cv-duo-height: auto;--cv-duo-radius: var(--border-radius-sm);--cv-half-flex: 0 0 auto;--cv-half-width: 3.25rem;--cv-half-height: 3.25rem;--cv-body-pad: 0;--cv-taxa-cols: minmax(0, 1fr);display:flex;flex-direction:var(--cv-dir);align-items:var(--cv-align);gap:var(--cv-gap);width:100%;min-height:var(--tap-target-min);padding:var(--cv-pad);box-sizing:border-box;overflow:hidden;font:inherit;text-align:left;color:var(--color-text-primary);background-color:var(--dialog-item-background);border:1px solid rgba(var(--color-border-medium-rgb),.35);border-radius:var(--border-radius-md);cursor:pointer;appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-quick) var(--easing-standard),border-color var(--duration-quick) var(--easing-standard),box-shadow var(--duration-quick) var(--easing-standard),transform var(--duration-quick) var(--easing-standard)}@media (hover: hover){.collection-card:hover{background-color:var(--dialog-item-background-hover);border-color:rgba(var(--color-border-medium-rgb),.6);box-shadow:var(--elevation-2);transform:translateY(-1px)}}.collection-card:active{transform:translateY(0) scale(.99);box-shadow:none}.collection-card:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:2px}.collection-card--current{border-color:var(--color-action-primary);box-shadow:0 0 0 2px rgba(var(--color-brand-primary-rgb),.3)}.collection-card__photos{display:flex;flex:0 0 auto;gap:2px;width:var(--cv-duo-width);height:var(--cv-duo-height);border-radius:var(--cv-duo-radius);overflow:hidden}.collection-card__photo{flex:var(--cv-half-flex);width:var(--cv-half-width);height:var(--cv-half-height);min-width:0;background-color:rgba(var(--color-neutral-500-rgb),.2)}.collection-card__photo img{width:100%;height:100%;object-fit:cover;display:block}.collection-card__body{display:flex;flex-direction:column;gap:var(--space-xxs);flex:1 1 auto;min-width:0;padding:var(--cv-body-pad);text-align:left}.collection-card__title{text-align:left;overflow-wrap:anywhere;font-size:var(--font-size-md);font-weight:600;line-height:1.25;color:var(--color-text-primary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.collection-card__taxa{display:grid;grid-template-columns:var(--cv-taxa-cols);gap:var(--space-xxs);column-gap:var(--space-xs)}.collection-viewer__list--compact .collection-card__taxa{display:none}.collection-card__taxon{display:flex;flex-direction:column;justify-content:flex-end;min-width:0}.collection-card__common,.collection-card__sci{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.collection-card__common{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.collection-card__sci{font-size:var(--font-size-xs);font-style:italic;color:var(--color-text-tertiary)}.collection-card__sci--lead{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.collection-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);min-width:0}.collection-card__level{display:inline-flex;align-items:center;flex:0 0 auto}.collection-card__chili{width:14px;height:14px;flex:0 0 auto;fill:var(--color-text-tertiary);opacity:.35}.collection-card__chili+.collection-card__chili{margin-left:-3px}.collection-card__chili--on{fill:var(--color-brand-secondary);opacity:1}.collection-card__tags{display:inline-flex;flex-wrap:wrap;gap:var(--space-xxs);min-width:0}.collection-card__tag{max-width:8rem;padding:1px var(--space-xs);font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text-secondary);background-color:rgba(var(--color-text-primary-rgb),.08);border-radius:var(--border-radius-pill);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.collection-card__tag--more{color:var(--color-text-tertiary)}@media (min-width: 40rem){.collection-viewer__list{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:var(--space-sm)}}@media (min-width: 40rem) and (min-height: 32rem){.collection-viewer__list{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))}.collection-viewer__list:not(.collection-viewer__list--compact){grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}.collection-card{--cv-dir: column;--cv-align: stretch;--cv-gap: 0;--cv-pad: 0;--cv-duo-width: 100%;--cv-duo-height: var(--cv-photo-band);--cv-duo-radius: 0;--cv-half-flex: 1 1 0;--cv-half-width: auto;--cv-half-height: 100%;--cv-body-pad: var(--space-xs) var(--space-sm) var(--space-sm);--cv-taxa-cols: minmax(0, 1fr) minmax(0, 1fr)}}@media (min-height: 32rem){.collection-viewer__list:not(.collection-viewer__list--compact) .collection-card{--cv-dir: column;--cv-align: stretch;--cv-gap: 0;--cv-pad: 0;--cv-duo-width: 100%;--cv-duo-height: var(--cv-photo-band);--cv-duo-radius: 0;--cv-half-flex: 1 1 0;--cv-half-width: auto;--cv-half-height: 100%;--cv-body-pad: var(--space-xs) var(--space-sm) var(--space-sm);--cv-taxa-cols: minmax(0, 1fr) minmax(0, 1fr)}}.load-more-button{justify-self:center;min-height:var(--tap-target-min);max-width:300px;margin:var(--space-xs) auto;padding:var(--space-xs) var(--space-md);background-color:var(--color-action-primary);color:var(--color-text-on-brand);border:none;border-radius:var(--border-radius-pill);font-size:var(--font-size-sm);cursor:pointer;transition:filter var(--duration-standard) var(--easing-standard),transform var(--duration-quick) var(--easing-standard)}@media (hover: hover){.load-more-button:hover{filter:brightness(var(--hover-brightness));transform:translateY(-2px)}}.load-more-button:active{transform:translateY(0)}.load-more-button:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:2px}.collection-card--skeleton{cursor:default;pointer-events:none}.skeleton-block{display:block;height:1rem;border-radius:var(--border-radius-sm);background-color:var(--overlay-black-10);position:relative;overflow:hidden}.skeleton-block--title{width:70%;height:1.1rem}.skeleton-block--line{width:45%;height:.8rem}.skeleton-block:after,.collection-card--skeleton .collection-card__photo:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--overlay-white-20),transparent);animation:collection-skeleton-shimmer 1.4s ease-in-out infinite}.collection-card--skeleton .collection-card__photo{position:relative;overflow:hidden}@keyframes collection-skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skeleton-block:after,.collection-card--skeleton .collection-card__photo:after{animation:none}.collection-card,.load-more-button{transition:none}}.search-container{width:100%}.search-input-wrapper{position:relative;width:100%}.collection-viewer__search{width:100%;box-sizing:border-box;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--color-surface-primary);color:var(--color-text-primary);text-align:left;transition:border-color var(--duration-standard) var(--easing-standard),box-shadow var(--duration-standard) var(--easing-standard)}.collection-viewer__search:focus{outline:none;border-color:var(--color-action-primary);box-shadow:0 0 0 2px rgba(var(--color-brand-primary-rgb),.25)}.collection-viewer__search::placeholder{color:var(--color-text-secondary);opacity:.7}.search-clear-button{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:none;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:background-color var(--duration-quick) var(--easing-standard),color var(--duration-quick) var(--easing-standard);opacity:0;visibility:hidden}.search-clear-button:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--tap-target-min);height:var(--tap-target-min)}@media (hover: hover){.search-clear-button:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary)}}.search-clear-button:focus-visible{outline:2px solid var(--color-action-primary);outline-offset:1px}.search-clear-button:active{background-color:var(--color-surface-tertiary);transform:translateY(-50%) scale(.95)}.search-clear-icon{fill:currentColor;pointer-events:none}.search-input-wrapper.has-content .search-clear-button{opacity:1;visibility:visible}.search-input-wrapper.has-content .collection-viewer__search{padding-right:68px}.search-loading-indicator{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:24px;height:24px}.search-loading-indicator.show{display:flex}.search-spinner{width:16px;height:16px;border:2px solid var(--color-border-light);border-top:2px solid var(--color-action-primary);border-radius:50%;animation:spin 1s linear infinite}.collection-viewer__tabs{display:flex;flex:0 0 auto;gap:var(--space-xs);margin-bottom:var(--space-xs);border-bottom:1px solid rgba(var(--color-neutral-500-rgb),.25)}.collection-viewer__tab{display:flex;align-items:center;gap:var(--space-xxs);min-height:var(--tap-target-min);padding:var(--space-xs) var(--space-sm);border:none;background:none;cursor:pointer;font-size:var(--font-size-md);color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px}.collection-viewer__tab[aria-selected=true]{color:var(--color-text-primary);border-bottom-color:var(--color-action-primary);font-weight:600}@media (hover: hover){.collection-viewer__tab:not([aria-selected=true]):hover{color:var(--color-text-primary)}}.collection-viewer__tab-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:400}.collection-viewer__tab-count:empty{display:none}.collection-viewer__list .collection-card--taxon,.collection-viewer__list:not(.collection-viewer__list--compact) .collection-card--taxon{--cv-dir: row;--cv-align: center;--cv-gap: var(--space-sm);--cv-pad: var(--space-xs);--cv-body-pad: 0;--cv-taxa-cols: minmax(0, 1fr)}.collection-card--taxon .collection-card__photos{flex:0 0 auto;width:var(--cv-taxon-photo, 3.25rem);height:var(--cv-taxon-photo, 3.25rem);border-radius:var(--border-radius-sm)}.collection-card--taxon .collection-card__photo{flex:1 1 auto;width:100%;height:100%}.collection-viewer__list:not(.collection-viewer__list--compact) .collection-card--taxon{--cv-taxon-photo: 4.5rem;--cv-pad: var(--space-sm)}.collection-card__sci--taxon{font-style:italic;font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-card__range{display:inline-flex;flex:0 1 auto;flex-wrap:wrap;gap:3px;min-width:0}.collection-card__range-chip{padding:1px var(--space-xxs);min-width:1.75rem;font-size:var(--font-size-xs);line-height:1.5;text-align:center;color:var(--color-text-secondary);background-color:rgba(var(--color-text-primary-rgb),.08);border-radius:var(--border-radius-sm);white-space:nowrap}.collection-card__pair-count{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.collection-viewer__list--compact .collection-card__range,.collection-viewer__list--compact .collection-card__pair-count,.collection-viewer__list--compact .collection-card--taxon .collection-card__meta{display:none}body:has(#info-dialog[open]) .ui-container,body:has(#info-dialog[open]) #name-pair,body:has(#info-dialog[open]) .image-container__buttons{opacity:0;pointer-events:none;transition:opacity .2s ease}.info-dialog{display:none;position:fixed;flex-direction:column;padding:var(--dialog-padding)!important;--dialog-surface: var(--bg-body);width:100%!important;max-width:100%;transition:top .3s ease-out,bottom .3s ease-out,left .3s ease-out,right .3s ease-out,height .3s ease-out}.info-dialog[open]{display:flex;transform:translate(-50%)}.portrait-layout .info-dialog[open]{transform:translate(-50%)}.landscape-layout .info-dialog[open]{max-width:none!important;width:auto!important;height:auto!important;transform:none}.info-dialog__header{text-align:center;margin-bottom:15px}.info-dialog__taxon{font-style:italic}.info-dialog__vernacular{font-size:var(--font-size-lg);margin:5px 0 0;color:var(--text-on-light);text-shadow:1px 1px 2px var(--shadow-color)}.info-dialog__facts{flex-grow:1;padding:15px;background-color:var(--bg-cards);border-radius:8px;box-shadow:0 2px 4px var(--shadow-color);overflow-y:auto}.info-dialog__facts h3{color:var(--bg-interactive);font-size:var(--font-size-lg);margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--bg-interactive)}.info-dialog__facts ul{list-style-type:none;padding-left:0;margin:0}.info-dialog__facts li{position:relative;padding-left:24px;margin-bottom:8px;text-align:left;font-size:var(--font-size-lg);line-height:1.4;color:var(--text-on-light);word-break:normal;overflow-wrap:break-word;hyphens:auto}.info-dialog__facts li:before{content:"•";position:absolute;left:8px;top:-.18em;color:var(--bg-interactive);font-size:var(--font-size-lg)}.info-dialog__fact-source{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);margin:calc(var(--tap-target-min) / -2) 0;vertical-align:middle;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-decoration:none}.info-dialog__fact-source-icon{width:16px;height:16px;fill:currentColor;flex:none}@media (hover: hover){.info-dialog__fact-source:hover{color:var(--bg-interactive)}}.info-dialog__facts-placeholder{text-align:left;font-size:var(--font-size-md);line-height:1.4;color:var(--text-on-light);opacity:.6;font-style:italic;margin:0}.info-dialog__buttons{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding:15px 5px 5px;position:relative}.info-dialog__buttons:before{content:"";position:absolute;top:10px;bottom:0;left:50%;transform:translate(-50%);width:calc(50% + 24px);background-color:var(--overlay-white-60);border-radius:var(--border-radius-lg);z-index:0}.dark-theme .info-dialog__buttons:before{background-color:var(--overlay-black-20)}.info-dialog__button{position:relative;opacity:.8}.info-dialog__button--inactive{opacity:.5;cursor:not-allowed}.info-dialog__inat-buttons{display:flex;justify-content:space-between;position:relative;flex:0 0 auto;width:140px}.info-dialog__inat-buttons:before{content:"";position:absolute;inset:-5px -10px;background-color:var(--overlay-black-10);border-radius:var(--border-radius-lg);z-index:0}.dark-theme .info-dialog__inat-buttons:before{background-color:var(--overlay-white-10)}#location-picker-dialog{gap:var(--space-xs);max-width:var(--dialog-width-full);height:var(--dialog-max-height)}#selected-location{font-weight:700;margin-top:10px}.location-picker__map{position:relative;border-radius:var(--border-radius-md);flex-grow:1}.location-picker__search{position:relative}.location-picker__search-input{width:100%;box-sizing:border-box;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-md);border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);background:var(--color-surface-primary);color:var(--color-text-primary)}.location-picker__results{position:absolute;top:100%;left:0;right:0;z-index:calc(var(--z-dialog) + 1);max-height:220px;overflow-y:auto;background:var(--color-surface-primary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);box-shadow:var(--elevation-2);display:none}.location-picker__results.location-picker__results--visible{display:block}.location-picker__result{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;border-bottom:1px solid var(--color-border-default)}.location-picker__result:last-child{border-bottom:none}@media (hover: hover){.location-picker__result:hover{background:var(--color-surface-secondary)}}.location-picker__result-section{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);background:var(--color-surface-secondary);position:sticky;top:0}.location-picker__result{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);min-height:var(--tap-target-min)}.location-picker__result-name{text-align:left}.location-picker__result-meta{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.location-picker__result--empty{color:var(--color-text-secondary);cursor:default}.location-picker__result--empty:hover{background:none}.location-picker__place-box{stroke:var(--color-brand-primary);fill:var(--color-brand-primary);fill-opacity:.12}.location-picker__radius{display:flex;flex-direction:column;align-items:center}.location-picker__radius label{margin-bottom:8px}.location-picker__radius input{width:90%;max-width:400px}.location-picker__info{text-align:center}.location-picker__buttons{display:flex;justify-content:center;gap:15px;margin-top:10px}.location-picker__button{min-width:120px}.location-picker__button--secondary{background-color:var(--bg-dialog-item);color:var(--text-primary)}.phylogeny-dialog{width:var(--dialog-width-full)!important;max-width:var(--dialog-width-full)!important;height:var(--dialog-max-height)!important;padding-top:var(--dialog-padding)!important}.phylogeny-dialog__content{display:flex;flex-direction:column;height:100%;width:100%;padding:0;gap:4px}.phylogeny-dialog__body{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;min-width:0;gap:4px;position:relative}.landscape-layout .phylogeny-dialog__content{flex-direction:column;align-items:stretch}.phylogeny-dialog__graph-container{flex-grow:1;min-width:0;overflow:auto;display:flex;justify-content:center;align-items:center;height:100%;width:100%;position:relative;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.phylogeny-dialog__graph-container svg{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.phylogeny-dialog__graph-container:active{cursor:grabbing}.phylogeny-dialog__active-taxon{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;box-sizing:border-box;padding:6px 10px;background-color:var(--color-surface-tertiary);border-left:3px solid var(--color-filter-accent);border-radius:var(--border-radius-md);font-weight:700;font-size:var(--font-size-md);color:var(--color-filter-accent);text-align:center;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}.phylogeny-dialog__active-taxon #active-taxon-vernacular{font-weight:400;color:var(--color-text-secondary)}.phylogeny-dialog__active-taxon-count{font-weight:400;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dark-theme .phylogeny-dialog__active-taxon{color:var(--color-filter-accent);border-left-color:var(--color-filter-accent)}.dark-theme .phylogeny-dialog__graph-container{background-color:var(--dialog-background)}.phylogeny-dialog{--phylo-dock-w: 18rem}.phylogeny-dialog__controls{display:flex;flex-direction:column;justify-content:center;gap:var(--space-xs);margin:var(--space-xs);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.phylogeny-dialog__search-input{user-select:text;-webkit-user-select:text}.phylogeny-dialog__viewtabs{flex:0 0 auto;align-self:stretch;margin:0 calc(-1 * var(--dialog-padding)) var(--space-xs);padding:0 var(--dialog-padding);border-bottom:1px solid var(--dialog-divider)}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__label{width:100%;padding:0;border-radius:0;background-color:transparent}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__option{font-size:var(--font-size-md);padding:var(--space-xxs) var(--space-sm)}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__slider{top:auto;bottom:0;height:3px;border-radius:var(--border-radius-sm) var(--border-radius-sm) 0 0;background-color:var(--color-text-primary)}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--graph,.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--tree{color:var(--color-text-primary);font-weight:700}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__checkbox:checked+.view-toggle__label .view-toggle__option--tree,.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__checkbox:not(:checked)+.view-toggle__label .view-toggle__option--graph{color:var(--color-text-secondary);font-weight:500}.landscape-layout .phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__label{max-width:var(--phylo-dock-w)}@media (max-height: 500px){.phylogeny-dialog__viewtabs{margin-bottom:0}.phylogeny-dialog .phylogeny-dialog__viewtabs .view-toggle__option{min-height:32px;font-size:var(--font-size-sm);padding:0 var(--space-sm)}}.phylogeny-dialog__find{display:flex;align-items:center;gap:var(--space-xs)}.phylogeny-dialog__find>.phylogeny-dialog__search{flex:1 1 auto;min-width:0}.phylogeny-dialog__find .phylogeny-dialog__search-input,.phylogeny-dialog__find>.phylogeny-dialog__top-level{min-height:var(--tap-target-min)}.phylogeny-dialog__name-switch{align-self:stretch}.phylogeny-dialog .view-toggle-container{min-width:0;max-width:100%}.phylogeny-dialog .view-toggle__label{display:grid;grid-template-columns:repeat(2,1fr);width:100%;padding:2px;background-color:var(--color-surface-tertiary)}.phylogeny-dialog .view-toggle__option{white-space:nowrap;min-width:0;overflow:hidden;font-size:var(--font-size-sm);padding:var(--space-xxs) var(--space-sm);min-height:var(--tap-target-min);display:flex;align-items:center;justify-content:center}.phylogeny-dialog .view-toggle__slider{border-radius:var(--border-radius-sm)}.phylogeny-dialog__commit{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);border-top:1px solid var(--color-border-light);background-color:var(--dialog-surface);position:relative;z-index:calc(var(--z-base) + 2)}.phylogeny-dialog__commit>.phylogeny-dialog__active-taxon{flex:1 1 auto;min-width:0;width:auto;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;text-align:left;column-gap:var(--space-xxs)}.phylogeny-dialog__commit>#phylogeny-done-button{flex:0 0 auto;width:auto;min-width:9rem}.landscape-layout .phylogeny-dialog__commit{justify-content:flex-end;flex-wrap:nowrap}.landscape-layout .phylogeny-dialog__commit>.phylogeny-dialog__active-taxon{flex:0 1 auto}.landscape-layout .phylogeny-dialog__commit>.phylogeny-dialog__active-taxon{flex-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landscape-layout .phylogeny-dialog__commit>#phylogeny-done-button{flex:0 1 auto;max-width:22rem}.phylogeny-dialog__hints{flex:0 0 auto;text-align:center}.phylogeny-dialog--tree .phylogeny-dialog__hints{display:none}.landscape-layout .phylogeny-dialog__hints{position:absolute;right:var(--space-sm);bottom:var(--space-xs);text-align:right;pointer-events:none}@media (min-width: 1024px){.phylogeny-dialog__controls{gap:var(--space-sm)}}.landscape-layout .phylogeny-dialog__controls{flex:0 0 auto;width:var(--phylo-dock-w);max-width:40%;max-height:100%;margin:0;padding:var(--space-xs) var(--space-sm) var(--space-sm);gap:var(--space-sm);justify-content:flex-end;border-right:1px solid var(--color-border-light);overflow-y:auto}@media (min-width: 1024px){.landscape-layout .phylogeny-dialog__controls{gap:var(--space-md);padding-bottom:var(--space-lg)}}#phylogeny-done-button{width:100%;min-height:2.4em;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);font-weight:700;padding:.5em .9em;background-color:var(--color-action-primary);color:var(--color-text-on-brand)}.phylogeny-dialog__pin-button{flex:0 0 auto;width:var(--tap-target-min);min-height:var(--tap-target-min);display:grid;place-items:center;padding:0;background-color:var(--color-surface-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);cursor:pointer}.phylogeny-dialog__pin-button svg{width:1.15rem;height:1.15rem;fill:currentColor;pointer-events:none}.phylogeny-dialog__pin-button:focus-visible{outline:2px solid var(--color-filter-accent);outline-offset:1px}@media (hover: hover){.phylogeny-dialog__pin-button:hover{color:var(--color-filter-accent);border-color:var(--color-filter-accent)}}.phylogeny-dialog__pin-button--primary{background-color:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-text-on-brand)}@media (hover: hover){.phylogeny-dialog__pin-button--primary:hover{color:var(--color-text-on-brand);border-color:var(--color-action-primary)}}#phylogeny-done-button:disabled{background-color:var(--color-surface-tertiary);color:var(--color-text-tertiary);cursor:default}.phylogeny-dialog__top-level{flex:0 0 auto;align-self:center;white-space:nowrap;min-height:var(--tap-target-min);padding:0 var(--space-sm);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer}@media (hover: hover){.phylogeny-dialog__top-level:hover{color:var(--color-filter-accent);border-color:var(--color-filter-accent)}}.phylogeny-dialog__top-level:focus-visible{outline:2px solid var(--color-filter-accent);outline-offset:1px}.phylogeny-dialog__message{color:var(--color-neutral-dark);font-weight:700}.phylogeny-dialog__hint--mouse,.phylogeny-dialog__hint--touch{font-size:var(--font-size-md)}.phylogeny-dialog__hint--touch{display:none}@media (hover: none) and (pointer: coarse){.phylogeny-dialog__hint--mouse{display:none}.phylogeny-dialog__hint--touch{display:block}}.phylogeny-dialog .link{fill:none;stroke:var(--color-neutral-dark);stroke-width:1.5px}.phylogeny-dialog .node circle{fill:var(--color-surface-primary);stroke:var(--color-primary);stroke-width:1.5px}.phylogeny-dialog .node text{font:36px sans-serif;fill:var(--color-neutral-dark);paint-order:stroke;stroke:var(--background-color);stroke-width:3px;stroke-linecap:butt;stroke-linejoin:miter;pointer-events:auto;cursor:pointer}.phylogeny-dialog .node--active circle{fill:var(--color-filter-accent);stroke:var(--color-filter-accent);stroke-width:2px}.phylogeny-dialog .node--active text{fill:var(--color-filter-accent)}.phylogeny-dialog .node--central circle{fill:var(--color-accent);stroke:var(--color-accent)}.phylogeny-dialog .node--central text{fill:var(--color-accent)}.dark-theme .phylogeny-dialog__graph-container>svg{background:var(--dialog-background)}.phylogeny-dialog__search{position:relative;width:100%;max-width:600px;box-sizing:border-box}.phylogeny-dialog__search-input{width:100%;padding:.5rem 2rem;text-align:left;border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--color-surface-primary);color:var(--color-text-primary)}.phylogeny-dialog__search-icon{position:absolute;left:.5rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--color-text-tertiary)}.phylogeny-dialog__clear-search{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0}.phylogeny-dialog__clear-search svg{width:1rem;height:1rem;color:var(--color-text-tertiary)}.phylogeny-dialog__search-results{position:absolute;top:100%;left:0;right:0;background-color:var(--color-surface-primary);border:1px solid var(--color-border-medium);border-top:none;max-height:200px;overflow-y:auto;z-index:var(--z-overlay)}.phylogeny-dialog__search-result{padding:8px;cursor:pointer;color:var(--color-text-primary)}.phylogeny-dialog__search-result:hover{background-color:var(--color-surface-secondary)}.phylogeny-dialog__tree-container{flex-grow:1;min-height:0;width:100%;display:flex;position:relative;overflow:hidden}.phylogeny-tree{display:flex;flex:1 1 auto;min-width:0;min-height:0;--phylo-rule-w: 6px;--phylo-twist-w: 30px;--phylo-thumb-w: 28px}.phylogeny-tree__outline{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}.phylogeny-tree__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-xxs) var(--space-xxs) var(--space-xs)}.phylogeny-tree__rows{display:flex;flex-direction:column;gap:2px}.phylogeny-tree__head{flex:0 0 auto;display:flex;align-items:stretch;gap:var(--space-xxs);padding:0 var(--space-xs) 0 var(--space-xxs);border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.phylogeny-tree__head-cell{display:flex;align-items:center;min-height:var(--tap-target-min);padding:0;border:none;background:transparent;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.phylogeny-tree__head-cell[aria-pressed=true]{color:var(--color-text-primary)}.phylogeny-tree__sort-mark{display:inline-block;width:.85em;margin-left:.15em;text-align:center}.phylogeny-tree__head-cell:focus-visible{outline:2px solid var(--color-filter-accent);outline-offset:-2px}.phylogeny-tree__head-name{flex:1 1 auto;min-width:0;justify-content:flex-start;text-align:left}.phylogeny-tree__head-count{flex:0 0 auto;justify-content:flex-end}.phylogeny-tree__empty,.phylogeny-tree__matches{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;margin:0;padding:var(--space-xs)}.phylogeny-tree__matches{text-align:left;padding:var(--space-xxs) var(--space-xs)}.phylogeny-tree__scope{display:flex;align-items:center;gap:2px;flex:0 0 auto;min-height:var(--tap-target-min);padding:0 var(--space-xs);border-bottom:1px solid var(--color-border-light);background-color:var(--dialog-surface);position:relative;z-index:var(--z-base)}.phylogeny-tree__up{flex:0 0 auto;width:calc(var(--phylo-rule-w) + var(--phylo-twist-w));align-self:stretch;min-height:var(--tap-target-min);display:grid;place-items:center;padding:0;border:none;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-md);cursor:pointer}.phylogeny-tree__thumb-gap{flex:0 0 auto;width:var(--phylo-thumb-w)}.phylogeny-tree__up:disabled{color:var(--color-border-medium);cursor:default}.phylogeny-tree__trail{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:2px;overflow:hidden}.phylogeny-tree__crumb{flex:0 8 auto;min-width:2rem;max-width:9rem;border:none;background:transparent;font-family:inherit;font-size:var(--font-size-sm);text-align:left;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xxs) 2px;border-radius:var(--border-radius-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__crumb-more{flex:0 0 auto;display:grid;place-items:center;min-width:1.6rem;min-height:1.4rem;border:none;background-color:rgba(var(--color-filter-accent-rgb),.12);color:var(--color-filter-accent);font-family:inherit;font-size:var(--font-size-sm);font-weight:700;line-height:1;cursor:pointer;border-radius:var(--border-radius-pill);padding:0 var(--space-xxs)}.phylogeny-tree__crumb-more[aria-expanded=true]{background-color:rgba(var(--color-filter-accent-rgb),.28)}.phylogeny-tree__sep{flex:0 0 auto;color:var(--color-text-tertiary);font-size:var(--font-size-xs);opacity:.55}.phylogeny-tree__here{flex:0 1 auto;min-width:4rem;font-size:var(--font-size-sm);font-weight:700;text-align:left;color:var(--color-filter-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__trail-pop{position:absolute;top:100%;left:var(--tap-target-min);z-index:calc(var(--z-base) + 2);min-width:12rem;max-height:14rem;overflow-y:auto;padding:var(--space-xxs);background-color:var(--color-surface-primary);border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);box-shadow:var(--elevation-3)}.phylogeny-tree__trail-pop button{display:flex;width:100%;align-items:baseline;gap:var(--space-xs);min-height:var(--tap-target-min);border:none;background:transparent;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;text-align:left;padding:var(--space-xxs) var(--space-xs);border-radius:var(--border-radius-sm)}.phylogeny-tree__trail-rank{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.phylogeny-tree__row{display:flex;align-items:center;gap:var(--space-xxs);width:100%;min-height:var(--tap-target-min);padding:2px var(--space-xs) 2px 0;border:none;border-left:var(--phylo-rule-w) solid transparent;border-radius:var(--border-radius-sm);background:transparent;color:inherit;text-align:left;cursor:pointer;position:relative}.phylogeny-tree__row[data-step="0"]{border-left-color:var(--color-border-light)}.phylogeny-tree__row[data-step="1"]{border-left-color:rgba(var(--color-text-primary-rgb),.16)}.phylogeny-tree__row[data-step="2"]{border-left-color:rgba(var(--color-text-primary-rgb),.32)}.phylogeny-tree__row[data-step="3"]{border-left-color:rgba(var(--color-text-primary-rgb),.52)}.phylogeny-tree__row[data-step="4"]{border-left-color:rgba(var(--color-text-primary-rgb),.78)}@media (hover: hover){.phylogeny-tree__row:hover,.phylogeny-tree__kid:hover,.phylogeny-tree__ln:hover{background-color:rgba(var(--color-filter-accent-rgb),.14)}.phylogeny-tree__crumb:hover{text-decoration:underline}.phylogeny-tree__up:not(:disabled):hover{color:var(--color-filter-accent)}.phylogeny-tree__trail-pop button:hover{background-color:rgba(var(--color-filter-accent-rgb),.14)}}.phylogeny-tree__row:focus-visible,.phylogeny-tree__kid:focus-visible,.phylogeny-tree__ln:focus-visible{outline:2px solid var(--color-filter-accent);outline-offset:-2px}.phylogeny-tree__row[aria-selected=true]{background-color:rgba(var(--color-filter-accent-rgb),.22)}.phylogeny-tree__row[aria-selected=true] .phylogeny-tree__name{color:var(--color-filter-accent)}.phylogeny-tree__row--current{border-bottom:1px solid var(--color-border-light);border-radius:0;margin-bottom:var(--space-xxs)}.phylogeny-tree__row--current .phylogeny-tree__name,.phylogeny-tree__row--hit .phylogeny-tree__name{font-weight:700}.phylogeny-tree__row--dead{opacity:.45;cursor:default}.phylogeny-tree__twist{flex:0 0 auto;width:var(--phylo-twist-w);align-self:stretch;display:grid;place-items:center;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;padding:0}.phylogeny-tree__twist svg{width:11px;height:11px;transition:transform var(--duration-instant) var(--easing-standard)}.phylogeny-tree__row[aria-expanded=true]>.phylogeny-tree__twist svg{transform:rotate(90deg)}.phylogeny-tree__twist--leaf{cursor:default}.phylogeny-tree__twist--leaf:after{content:"";width:4px;height:4px;border-radius:var(--border-radius-pill);background-color:var(--color-border-medium)}.phylogeny-tree__thumb{flex:0 0 auto;width:var(--phylo-thumb-w);height:var(--phylo-thumb-w);border-radius:var(--border-radius-sm);background-color:var(--color-surface-tertiary);background-size:cover;background-position:center}.phylogeny-tree__thumb--empty{opacity:.5}.phylogeny-tree__name{flex:1 1 auto;min-width:0;text-align:left;font-size:var(--font-size-md);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__name em{font-style:italic}.phylogeny-tree__rank,.phylogeny-tree__head-rank{flex:0 0 auto;width:5rem;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.phylogeny-tree__head-rank{display:flex;align-items:center;justify-content:center}.phylogeny-tree__count,.phylogeny-tree__head-count{min-width:3.2em;text-align:right;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.phylogeny-tree__count{flex:0 0 auto;font-weight:700;color:var(--color-text-secondary)}.phylogeny-tree__pin-slot{flex:0 0 auto;width:1.1rem;display:flex;align-items:center;justify-content:center}.phylogeny-tree__pin{flex:0 0 auto;width:.9rem;height:.9rem;fill:currentColor;color:var(--color-filter-accent);vertical-align:middle}.phylogeny-tree__preview-count .phylogeny-tree__pin,.phylogeny-tree__kid-count .phylogeny-tree__pin{width:1.1rem;height:1.1rem}.phylogeny-tree__preview{display:none}.phylogeny-tree__preview-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-sm) var(--space-md)}.phylogeny-tree__preview-head{display:flex;align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-xs)}.phylogeny-tree__preview-head>div:first-child{flex:1 1 auto;min-width:0}.phylogeny-tree__preview-name{font-size:var(--font-size-xl);font-weight:700;line-height:1.15;color:var(--color-text-primary)}.phylogeny-tree__preview-alt{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic}.phylogeny-tree__preview-rank{display:inline-block;margin-top:var(--space-xxs);padding:0 var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);background-color:var(--color-surface-tertiary);border-radius:var(--border-radius-pill)}.phylogeny-tree__preview-taxa{display:inline-block;margin-top:var(--space-xxs);margin-left:var(--space-xxs);font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.phylogeny-tree__preview-badge{flex:0 0 auto;text-align:right}.phylogeny-tree__preview-count{font-size:var(--font-size-xl);font-weight:700;line-height:1.1;color:var(--color-filter-accent);font-variant-numeric:tabular-nums}.phylogeny-tree__preview-count-label,.phylogeny-tree__preview-note{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0}.phylogeny-tree__preview-note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.phylogeny-tree__section{margin:var(--space-md) 0 var(--space-xs);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary)}.phylogeny-tree__photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--space-xxs)}.phylogeny-tree__photo{aspect-ratio:1 / 1;position:relative;overflow:hidden;border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);background-color:var(--color-surface-tertiary);background-size:cover;background-position:center}.phylogeny-tree__photo span{position:absolute;inset:auto 0 0;padding:1px var(--space-xxs);font-size:var(--font-size-xs);color:var(--color-text-on-brand);background-color:var(--overlay-black-50);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__photo--empty span{background-color:transparent;color:var(--color-text-tertiary)}.phylogeny-tree__kids{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px}.phylogeny-tree__kid{display:flex;align-items:center;gap:var(--space-xxs);min-height:var(--tap-target-min);padding:var(--space-xxs) var(--space-xs);border:none;border-left:5px solid transparent;border-radius:var(--border-radius-sm);background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.phylogeny-tree__kid[data-step="0"]{border-left-color:var(--color-border-medium)}.phylogeny-tree__kid[data-step="1"]{border-left-color:rgba(var(--color-filter-accent-rgb),.22)}.phylogeny-tree__kid[data-step="2"]{border-left-color:rgba(var(--color-filter-accent-rgb),.45)}.phylogeny-tree__kid[data-step="3"]{border-left-color:rgba(var(--color-filter-accent-rgb),.68)}.phylogeny-tree__kid[data-step="4"]{border-left-color:rgba(var(--color-filter-accent-rgb),.95)}.phylogeny-tree__kid-name{flex:1 1 auto;min-width:0;font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__kid-count{flex:0 0 auto;font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.phylogeny-tree__lineage{display:flex;flex-direction:column;gap:1px}.phylogeny-tree__ln{display:flex;align-items:baseline;gap:var(--space-xxs);min-height:30px;padding:2px var(--space-xxs);border:none;border-radius:var(--border-radius-sm);background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.phylogeny-tree__ln[aria-current=true]{color:var(--color-filter-accent);font-weight:700;background-color:rgba(var(--color-filter-accent-rgb),.1);cursor:default}.phylogeny-tree__ln-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phylogeny-tree__ln-rank{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.phylogeny-tree__ln-count{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.landscape-layout .phylogeny-dialog__body{flex-direction:row;align-items:stretch}@media (min-width: 1024px){.landscape-layout .phylogeny-dialog--tree .phylogeny-tree__outline{flex:0 0 26rem;border-right:1px solid var(--color-border-light)}.landscape-layout .phylogeny-dialog--tree .phylogeny-tree__preview{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;background-color:var(--color-surface-primary)}}.range-dialog{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:90vw;max-width:var(--dialog-width-max);max-height:95dvh;box-sizing:border-box;overflow-y:auto}.range-dialog *{-webkit-tap-highlight-color:transparent;box-sizing:border-box;max-width:100%}.range-map-container{width:100%;padding:8px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;aspect-ratio:1800 / 857}.range-map-container svg{width:100%;height:auto;max-width:100%;display:block;box-sizing:border-box}.range-map-container .continent-path{fill:var(--color-neutral-500);opacity:1;transition:fill var(--duration-standard) var(--easing-standard),opacity var(--duration-standard) var(--easing-standard),stroke-width var(--duration-quick) var(--easing-standard)}.range-map-container .continent-path--clickable{cursor:pointer}@media (hover: hover){.range-map-container .continent-path--clickable:not(.selected):hover{fill:var(--color-range-continent-hover)}}.range-map-container .continent-path.selected{fill:var(--color-filter-accent);opacity:1;stroke-width:1}.dialog-content.range-dialog{gap:8px;padding:0;height:auto;overflow-y:auto}.range-dialog .standard-text{margin:0;padding:0 10px;text-align:center;font-size:var(--font-size-sm)}.range-dialog .location-button-container{margin:4px 0}.range-dialog__done-button{margin-top:4px;background-color:var(--bg-interactive);color:var(--text-on-primary);border:none;padding:8px 15px;border-radius:var(--border-radius-md);cursor:pointer;font-size:larger;font-weight:700;transition:background-color var(--duration-standard) ease}.location-filter{display:flex;flex-direction:column;gap:8px;width:100%;align-items:center}.location-filter__title{margin-bottom:15px;font-size:var(--font-size-lg);color:var(--text-primary)}.location-filter__toggle-container{display:flex;justify-content:center}.location-filter__radius-container{display:flex;flex-direction:column;align-items:center}.location-filter__radius-label{margin-bottom:10px;font-size:var(--font-size-md);color:var(--text-secondary)}.location-filter__radius-slider{width:90%;max-width:300px}.location-filter__loading{display:flex;align-items:center;justify-content:center;margin:10px 0;color:var(--text-secondary)}.location-filter__loading .loader{width:20px;height:20px;border:3px solid var(--border-color);border-top:3px solid var(--color-primary);border-radius:50%;margin-right:10px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.location-button-container{display:flex;justify-content:center;margin:10px 0;background-color:var(--color-brand-primary);border-radius:calc(var(--border-radius-md) + 2px);border:1px solid #5a8000;padding:4px;box-shadow:inset 0 1px 2px #0000001a}.location-button{flex:1;max-width:150px;padding:10px 16px;font-size:var(--font-size-md);font-weight:500;border-radius:var(--border-radius-md);border:none;background-color:transparent;color:var(--overlay-white-80);cursor:pointer;transition:all .15s ease-out;position:relative;white-space:nowrap}.location-button:hover:not(.selected):not(.active){background-color:var(--overlay-white-10);color:var(--overlay-white-95)}.location-button:active:not(.selected):not(.active){background-color:var(--overlay-white-15)}.location-button.selected,.location-button.active{background-color:var(--color-surface-primary);color:var(--color-neutral-900);font-weight:600;box-shadow:0 2px 4px #00000026,0 1px 2px #00000014}.location-button.selected:hover,.location-button.active:hover{background-color:var(--color-neutral-200);box-shadow:0 3px 6px #0000002e,0 1px 3px #0000001a;transform:none}.location-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.location-button:disabled:hover{background-color:transparent;color:var(--overlay-white-80);box-shadow:none}.location-button.selected:disabled,.location-button.active:disabled{background-color:var(--color-surface-primary);color:var(--color-neutral-900);opacity:.5}@media (max-width: 480px){.location-button-container{flex-direction:column;align-items:stretch;gap:6px;margin:15px auto;padding:6px;max-width:280px}.location-button{flex:none;width:100%;max-width:none;padding:12px 20px;font-size:var(--font-size-md);border-radius:var(--border-radius-md)}}@media (min-width: 481px) and (max-width: 768px){.location-button-container{max-width:320px;margin:15px auto}.location-button{max-width:160px;padding:10px 14px}}.location-button.loading{pointer-events:none;opacity:.7}.location-button.loading:after{content:"";position:absolute;top:50%;right:8px;width:12px;height:12px;border:2px solid var(--overlay-white-20);border-top:2px solid var(--color-neutral-100);border-radius:50%;transform:translateY(-50%);animation:spin .8s linear infinite}.location-button.loading.selected:after,.location-button.loading.active:after{border-color:rgba(var(--color-neutral-900-rgb),.3);border-top-color:var(--color-brand-primary)}.calibration-sliders{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.calibration-slider label{display:block;margin-bottom:5px;font-size:var(--font-size-sm)}.calibration-slider input{width:100%}.calibration-info{font-size:var(--font-size-sm);padding-top:8px;border-top:1px solid var(--border-color)}.map-calibration-panel{margin:10px 0;width:100%}.map-calibration-controls{margin-top:10px;padding:10px;border:1px solid var(--border-color);border-radius:var(--border-radius-md);background-color:var(--overlay-black-90);display:flex;flex-direction:column;gap:15px}.dialog-button--small{padding:5px 10px;font-size:var(--font-size-sm);margin:5px 0}.calibration-marker{position:absolute;width:10px;height:10px;background-color:red;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%);z-index:var(--z-overlay);pointer-events:none}.calibration-marker-label{position:absolute;white-space:nowrap;background-color:var(--overlay-black-70);color:#fff;font-size:var(--font-size-xs);padding:2px 4px;border-radius:3px}.range-dialog__active-location{margin:var(--space-xs) 0;text-align:center;font-size:var(--font-size-md);color:var(--color-text-primary)}#rank-dialog{max-width:var(--dialog-width-md)}.rank-dialog__content{padding:20px;min-width:300px;max-width:100%;width:100%;max-height:var(--dialog-max-height);display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.rank-dialog__ranks-list{flex:1;display:flex;flex-direction:column;margin-bottom:15px;min-height:0}.rank-dialog__instruction-text{margin-bottom:8px;text-align:center;font-size:var(--font-size-md);flex-shrink:0}.rank-dialog__controls{display:flex;align-items:stretch;border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);background-color:var(--bg-dialog-item);overflow:hidden;height:fit-content;max-height:calc(95dvh - 200px);position:relative;width:100%;box-sizing:border-box}#rank-done-button{flex-shrink:0;margin-top:auto}.rank-dialog__toggles-row{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-shrink:0}.rank-toggle{display:flex;align-items:center;background-color:var(--bg-toggle);border-radius:var(--border-radius-lg);padding:0 var(--space-sm) 0 0;height:40px;width:100%;cursor:pointer}.rank-toggle__checkbox{display:none}.rank-toggle__label{display:inline-block;flex-shrink:0;width:50px;height:24px;background-color:var(--toggle-slider-color);border-radius:34px;position:relative;margin:0 var(--space-xs);cursor:pointer;transition:var(--transition-standard)}.rank-toggle__label:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:.3s}.rank-toggle__checkbox:checked+.rank-toggle__label{background-color:var(--bg-interactive)}.rank-toggle__checkbox:checked+.rank-toggle__label:after{left:calc(100% - 22px)}.rank-toggle__text{font-size:var(--font-size-sm);color:var(--text-on-light);cursor:pointer;line-height:var(--line-height-compact)}.rank-dialog__ranks-column{flex:1;position:relative;cursor:pointer;user-select:none;touch-action:pan-y;padding-right:0;box-sizing:border-box;height:fit-content;max-height:calc(95dvh - 200px);overflow-y:auto}.rank-dialog__rank-item{padding:8px 16px;border-bottom:1px solid var(--color-border-light);transition:background-color .2s ease,transform .1s ease;display:flex;align-items:center;min-height:36px;position:relative;margin-right:0;width:100%;box-sizing:border-box}.rank-dialog__rank-item:first-child{border-top-left-radius:calc(var(--border-radius-md) - 1px);border-top-right-radius:calc(var(--border-radius-md) - 1px)}.rank-dialog__rank-item:last-child{border-bottom:none;border-bottom-left-radius:calc(var(--border-radius-md) - 1px);border-bottom-right-radius:calc(var(--border-radius-md) - 1px)}.rank-dialog__rank-content{display:flex;align-items:center;justify-content:space-between;width:100%;margin-left:20px;transition:margin-left .2s ease;gap:12px;padding-right:4px;white-space:nowrap;overflow:hidden;box-sizing:border-box}.rank-dialog__rank-example{font-size:var(--font-size-xs);color:var(--color-text-secondary);opacity:.75;line-height:1.2;text-align:right;flex-shrink:1;display:flex;flex-direction:column;align-items:flex-end;min-width:80px;max-width:140px;overflow:hidden}.rank-dialog__rank-example-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.rank-dialog__rank-example-vs{font-size:var(--font-size-xs);font-weight:500;opacity:.8;white-space:nowrap}.rank-dialog__rank-item:hover:not(.rank-dialog__rank-item--selected){background-color:rgba(var(--color-filter-accent-rgb),.05)}.rank-dialog__rank-item--selected{background-color:rgba(var(--color-filter-accent-rgb),.1);border-left:4px solid var(--color-filter-accent)}.rank-dialog__rank-item--selected .rank-dialog__rank-content{margin-left:16px}.rank-dialog__rank-item--selected .rank-dialog__rank-name{font-weight:700}.rank-dialog__rank-item--lower-bound{background-color:rgba(var(--color-filter-accent-rgb),.15);position:relative;border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md)}.rank-dialog__rank-item--lower-bound:before{content:"▲";color:var(--color-filter-accent);font-weight:700;position:absolute;left:8px;font-size:var(--font-size-xs);z-index:var(--z-base)}.rank-dialog__rank-item--upper-bound{background-color:rgba(var(--color-filter-accent-rgb),.2);position:relative;border-bottom-left-radius:var(--border-radius-md);border-bottom-right-radius:var(--border-radius-md)}.rank-dialog__rank-item--upper-bound:before{content:"▼";color:var(--color-filter-accent);font-weight:700;position:absolute;left:8px;font-size:var(--font-size-xs);z-index:var(--z-base)}.rank-dialog__rank-item--lower-bound.rank-dialog__rank-item--upper-bound{background:linear-gradient(180deg,rgba(var(--color-filter-accent-rgb),.15),rgba(var(--color-filter-accent-rgb),.25),rgba(var(--color-filter-accent-rgb),.2));border-radius:var(--border-radius-md)}.rank-dialog__rank-item--lower-bound.rank-dialog__rank-item--upper-bound:before{content:"▲▼";color:var(--color-filter-accent);font-size:var(--font-size-xs);line-height:1}.rank-dialog__rank-item--dragging{background-color:rgba(var(--color-filter-accent-rgb),.3)!important;transform:scale(1.02);z-index:var(--z-base);position:relative}.rank-dialog__ranks-column--disabled{opacity:.5;cursor:pointer}.rank-dialog__ranks-column--dragging{cursor:grabbing}.rank-dialog__ranks-column--dragging .rank-dialog__rank-item{pointer-events:none}.rank-dialog__ranks-column--dragging .rank-dialog__rank-item--selected{transform:none}.rank-dialog__ranks-column--dragging .rank-dialog__rank-item--lower-bound,.rank-dialog__ranks-column--dragging .rank-dialog__rank-item--upper-bound{border-left-width:6px}.rank-dialog__ranks-column{scrollbar-width:thick;scrollbar-color:var(--bg-interactive) transparent}.rank-dialog__ranks-column::-webkit-scrollbar{width:16px}.rank-dialog__ranks-column::-webkit-scrollbar-track{background:var(--overlay-black-10);border-radius:12px;margin:4px}.rank-dialog__ranks-column::-webkit-scrollbar-thumb{background-color:var(--bg-interactive);border-radius:12px;border:2px solid transparent;background-clip:content-box;transition:background-color .3s ease;min-height:40px}.rank-dialog__ranks-column::-webkit-scrollbar-thumb:hover{background-color:var(--color-primary)}.rank-dialog__ranks-column::-webkit-scrollbar-corner{background:transparent}.dark-theme .rank-dialog__controls{background-color:var(--dialog-background);border-color:var(--color-border-light)}.dark-theme .rank-dialog__rank-item{border-bottom-color:var(--color-border-light)}.dark-theme .rank-dialog__rank-item:hover:not(.rank-dialog__rank-item--selected){background-color:var(--color-surface-secondary)}.dark-theme .rank-dialog__rank-example{color:var(--color-text-tertiary)}.dark-theme .rank-dialog__ranks-column{scrollbar-color:var(--color-neutral-600) transparent}.dark-theme .rank-dialog__ranks-column::-webkit-scrollbar-thumb{background-color:var(--color-neutral-600)}.dark-theme .rank-dialog__ranks-column::-webkit-scrollbar-thumb:hover{background-color:var(--color-neutral-700)}@media (prefers-reduced-motion: reduce){.rank-dialog__rank-item,.rank-dialog__rank-content{transition:none}.rank-dialog__ranks-column::-webkit-scrollbar-thumb{transition:none}}@media (prefers-contrast: high){.rank-dialog__rank-item--selected{border-left-width:6px}.rank-dialog__rank-item--lower-bound:before,.rank-dialog__rank-item--upper-bound:before{font-size:var(--font-size-sm);font-weight:900}.rank-dialog__ranks-column::-webkit-scrollbar-thumb{background-color:var(--color-text-primary);border:2px solid var(--bg-dialog-item)}}@media (max-width: 768px){#rank-dialog.standard-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding:4px}.rank-dialog__content{min-width:280px;max-width:100%;width:100%;padding:12px}.rank-dialog__toggles-row{gap:8px}.rank-toggle__text{font-size:var(--font-size-md)}.rank-dialog__controls{max-height:calc(90dvh - 180px);margin:0}.rank-dialog__ranks-column{padding-right:16px;max-height:calc(90dvh - 180px);overflow-x:hidden}.rank-dialog__rank-content{gap:6px;padding-right:4px;max-width:calc(100% - 24px)}.rank-dialog__rank-name{flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis}.rank-dialog__rank-example{min-width:50px;max-width:90px;font-size:var(--font-size-xs)}.rank-dialog__rank-example-line{font-size:var(--font-size-xs);max-width:90px}.rank-dialog__rank-example-vs{font-size:var(--font-size-xs)}.rank-dialog__rank-item{padding:10px 8px;min-height:44px;overflow:hidden}.dark-theme .rank-dialog__ranks-column::-webkit-scrollbar-track{background:var(--overlay-white-20)}.dark-theme .rank-dialog__ranks-column::-webkit-scrollbar-thumb{background-color:var(--overlay-white-50)}.dark-theme .rank-dialog__ranks-column::-webkit-scrollbar-thumb:active{background-color:var(--overlay-white-70)}}@media (max-width: 400px){#rank-dialog.standard-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);padding:2px}.rank-dialog__content{min-width:260px;max-width:100%;width:100%;padding:8px}.rank-dialog__toggles-row{gap:6px}.rank-toggle__text{font-size:var(--font-size-sm)}.rank-dialog__rank-content{gap:4px;margin-left:12px;padding-right:2px}.rank-dialog__rank-example{min-width:45px;max-width:75px;font-size:var(--font-size-xs)}.rank-dialog__rank-example-line,.rank-dialog__rank-example-vs{font-size:var(--font-size-xs)}.rank-dialog__rank-item{padding:10px 6px}}.settings-dialog{max-width:var(--dialog-width-lg);width:90vw;height:90vh;height:90dvh;overflow:hidden}.settings-toggle,.settings-group{background:var(--bg-dialog-item);border:1px solid var(--color-border-light);border-radius:var(--border-radius-lg);padding:var(--space-md);margin-bottom:var(--space-sm);box-shadow:var(--elevation-1)}#filter-content .settings-group{background:transparent;border:none;box-shadow:none;padding:0}#filter-content .settings-group>.filter-explanation{margin-bottom:var(--space-sm)}.settings-toggle h4,.settings-group h4{color:var(--color-text-tertiary);margin:0 0 8px;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;font-weight:600}#settings-options{max-width:256px}.android-only{display:none}body.android .android-only{display:flex}.dev-tab{display:none}.dev-tab.show{display:block}.tabs{display:flex;justify-content:space-around;gap:4px;margin:0 4px;padding:4px 4px 8px;border-bottom:1px solid var(--color-border-light)}.tab-btn{padding:8px 16px;background:var(--color-surface-tertiary);border:none;border-radius:var(--border-radius-md);color:var(--color-text-secondary);cursor:pointer;transition:var(--hover-transition)}.tab-btn:hover{filter:brightness(var(--hover-brightness))}.tab-btn.active{background:var(--color-action-primary);color:var(--color-text-on-brand)}.tab-content-container{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:5px;display:flex;flex-direction:column}.tab-content{display:none;padding:16px;flex-grow:1;overflow-y:auto}.tab-content.active{display:block}@media (max-width: 480px){.tab-content{padding:12px 0}}.settings-toggle__label-container{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;background:var(--color-surface-primary);border:1px solid var(--color-border-light);padding:8px 16px;border-radius:var(--border-radius-pill);margin:8px 0;height:40px;box-sizing:border-box}.settings-toggle-container.disabled{opacity:.5;cursor:not-allowed}.settings-toggle-container.disabled .settings-toggle__label{cursor:not-allowed}.settings-toggle-container.disabled .settings-toggle__text{color:var(--color-neutral-200)}.dark-theme .settings-toggle-container.disabled .settings-toggle__text{color:var(--color-neutral-600)}.settings-toggle__label-container .settings-toggle__text{font-size:var(--font-size-sm);white-space:nowrap;color:var(--color-neutral-dark);font-weight:700;text-align:center;flex:1;min-width:0}.settings-toggle__label-container .settings-toggle__text:first-child{text-align:center}.settings-toggle__label-container .settings-toggle__text:last-child{text-align:center}.settings-toggle__label-container .settings-toggle__label{width:50px;height:24px;margin:0;background-color:var(--toggle-slider-color);border-radius:12px;position:relative;cursor:pointer;transition:background-color .3s;flex-shrink:0}.settings-toggle__label-container .settings-toggle__label:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:.3s;box-shadow:0 1px 3px #0000001a}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label{background-color:var(--color-primary)}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label:after{left:calc(100% - 22px)}.dark-theme .settings-toggle__label-container{background:var(--bg-dialog);border-color:var(--color-border-medium)}.dark-theme .settings-toggle__label-container .settings-toggle__text{color:var(--text-on-light)}.dark-theme .settings-toggle__label-container .settings-toggle__label{background-color:var(--color-neutral-500)}.dark-theme .settings-toggle__checkbox:checked+.settings-toggle__label-container .settings-toggle__label{background-color:var(--color-primary)}.filter-explanation{font-size:var(--font-size-sm);color:var(--color-neutral-dark);text-align:center}.filter-description{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 12px;font-size:var(--font-size-sm);line-height:1.4}.filter-description__column{display:flex;align-items:center;text-align:center;padding:8px 12px;background:rgba(var(--color-brand-primary-rgb),.1);border-radius:var(--border-radius-md);color:var(--color-text-primary)}.filter-description__column--either{border-left:3px solid var(--color-primary)}.filter-description__column--both{border-right:3px solid var(--color-primary)}.filter-description--disabled .filter-description__column{background:var(--overlay-black-05);border-color:var(--color-neutral-200);color:var(--color-neutral-200)}.filter-description--disabled em{font-style:italic;color:var(--color-neutral-200);font-size:var(--font-size-sm)}.dark-theme .filter-description__column{background:rgba(var(--color-brand-primary-rgb),.15);color:var(--color-neutral-900)}.dark-theme .filter-description--disabled .filter-description__column{background:var(--overlay-white-05);border-color:var(--color-neutral-600);color:var(--color-neutral-600)}.dark-theme .filter-description--disabled em{color:var(--color-neutral-600)}@media (min-width: 481px) and (max-width: 768px){.settings-toggle__label-container{padding:8px 20px;gap:16px}.settings-toggle__label-container .settings-toggle__text{font-size:var(--font-size-md)}.settings-toggle__label-container .settings-toggle__label{width:55px;height:26px;border-radius:13px}.settings-toggle__label-container .settings-toggle__label:after{width:22px;height:22px;top:2px}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label:after{left:calc(100% - 24px)}}@media (min-width: 769px){.settings-toggle__label-container{padding:10px 24px;gap:20px;height:45px}.settings-toggle__label-container .settings-toggle__text{font-size:var(--font-size-md)}.settings-toggle__label-container .settings-toggle__label{width:60px;height:28px;border-radius:14px}.settings-toggle__label-container .settings-toggle__label:after{width:24px;height:24px;top:2px}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label:after{left:calc(100% - 26px)}}@media (max-width: 480px){.filter-description{font-size:var(--font-size-sm);gap:12px;margin:6px 0 10px}.filter-description__column{padding:6px 8px}.settings-toggle__label-container{gap:8px;padding:6px 12px;height:36px}.settings-toggle__label-container .settings-toggle__text{font-size:var(--font-size-sm)}.settings-toggle__label-container .settings-toggle__label{width:44px;height:22px;border-radius:11px}.settings-toggle__label-container .settings-toggle__label:after{width:18px;height:18px;top:2px}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label:after{left:calc(100% - 20px)}}@media (max-width: 360px){.settings-toggle__label-container{gap:6px;padding:6px 10px;height:34px}.settings-toggle__label-container .settings-toggle__text{font-size:var(--font-size-sm)}.settings-toggle__label-container .settings-toggle__label{width:40px;height:20px;border-radius:10px}.settings-toggle__label-container .settings-toggle__label:after{width:16px;height:16px;top:2px}.settings-toggle__checkbox:checked~.settings-toggle__label-container .settings-toggle__label:after{left:calc(100% - 18px)}}.settings-toggle-container{display:flex;align-items:center;background:var(--toggle-bg-color);padding:0 var(--space-xxs) 0 0;border-radius:var(--border-radius-lg);justify-content:flex-start;width:100%;margin:var(--space-xs) 0;height:40px;transition:var(--transition-quick)}.settings-toggle-container .toggle-checkbox__text{margin-left:var(--space-xs)}.settings-toggle__checkbox{display:none}.settings-toggle__label{display:inline-block;width:50px;height:24px;background-color:var(--toggle-slider-color);border-radius:var(--border-radius-lg);position:relative;margin:0 var(--space-xs);cursor:pointer;transition:var(--transition-standard)}.settings-toggle__label:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:.3s;box-shadow:var(--elevation-1)}.settings-toggle__checkbox:checked+.settings-toggle__label{background-color:var(--color-brand-primary)}.settings-toggle__checkbox:checked+.settings-toggle__label:after{left:calc(100% - 22px)}.settings-toggle__text{margin-left:var(--space-xxs);color:var(--color-text-primary);margin:0 var(--space-xxs);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.settings-dialog__radio-group{background:var(--toggle-bg-color);border-radius:var(--border-radius-lg);padding:var(--space-xxs);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs);padding:var(--space-xs)}.settings-dialog__radio-option{padding:var(--space-xs);margin:0;border-radius:var(--border-radius-lg)}.settings-dialog__radio-input{position:absolute;opacity:0}.settings-dialog__radio-label{position:relative;padding-left:32px;margin:2px 0;cursor:pointer;display:block;color:var(--color-text-secondary);text-align:left;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.settings-dialog__radio-label:before{content:"";position:absolute;left:-4px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:var(--border-width-medium) solid var(--color-brand-primary);border-radius:50%;transition:var(--transition-quick)}.settings-dialog__radio-label:after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;background:var(--color-brand-primary);opacity:0;transition:var(--transition-quick)}.settings-dialog__radio-input:checked+.settings-dialog__radio-label:after{opacity:1}.settings-dialog__select{width:100%;padding:var(--space-xs) var(--space-sm);padding-right:var(--space-md);background:var(--toggle-bg-color);border:none;border-radius:var(--border-radius-lg);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;transition:var(--transition-quick);appearance:auto}.settings-dialog__select:focus{outline:none;box-shadow:var(--state-focus-ring)}.settings-dialog__theme-icon{position:absolute;right:var(--space-xs);top:50%;transform:translateY(-50%)}@media (max-width: 320px){.settings-dialog__radio-group{grid-template-columns:1fr}}.dark-theme .tab-content{background-color:var(--color-surface-tertiary)}.dark-theme .settings-toggle,.dark-theme .settings-group{background:var(--color-surface-primary);box-shadow:var(--elevation-2)}.dark-theme .settings-toggle h4,.dark-theme .settings-group h4{color:var(--color-text-tertiary)}.dark-theme .settings-toggle-container,.dark-theme .settings-dialog__radio-group{background:var(--color-surface-secondary)}.dark-theme .settings-dialog__radio-option:hover{background:var(--color-neutral-400);filter:brightness(var(--hover-brightness))}.dark-theme .settings-dialog__radio-label{color:var(--color-text-primary)}.dark-theme .settings-dialog__select{background:var(--color-surface-secondary);color:var(--color-text-primary);color-scheme:dark}.dark-theme .settings-dialog__radio-label:before{border-color:var(--color-brand-primary)}.dark-theme .settings-dialog__radio-label:after{background:var(--color-brand-primary)}.dark-theme .tab-btn{background:var(--color-surface-secondary);color:var(--color-text-primary)}.dark-theme .tab-btn:hover{background:var(--color-neutral-400);filter:brightness(var(--hover-brightness))}.dark-theme .tab-btn.active{background:var(--color-brand-primary);color:var(--color-text-on-brand)}.dark-theme .tabs{border-bottom-color:var(--color-border-medium)}.dark-theme .settings-toggle__label{background-color:var(--color-neutral-400)}.dark-theme .settings-toggle__checkbox:checked+.settings-toggle__label{background-color:var(--color-brand-primary)}.dark-theme .settings-toggle__label:after{background-color:var(--color-text-primary)}.user-info{margin-bottom:1.5rem}.user-email{font-size:var(--font-size-sm);margin-bottom:.5rem;word-break:break-all}.settings-actions{display:flex;flex-direction:column;gap:.75rem}.danger-button{background-color:var(--color-feedback-error)}.danger-button:hover{background-color:var(--color-feedback-error-dark)}.warning-text{color:var(--color-feedback-error);font-weight:500;margin-top:1rem}.confirmation-dialog .dialog-body{padding:1rem;margin-bottom:1rem}.confirmation-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:0 1rem 1rem}.streak-dialog{max-width:var(--dialog-width-sm);width:90vw}.streak-dialog__content{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:var(--space-lg, 1.5rem)}.streak-hero{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center;margin-top:var(--space-sm, .75rem)}.streak-hero__flame{width:100%;height:100%;color:var(--color-streak-flame);fill:currentColor;filter:drop-shadow(0 4px 12px rgba(255,90,0,.45));animation:streak-flicker 2.6s ease-in-out infinite}.streak-hero--cold .streak-hero__flame{color:var(--color-neutral-500);filter:none;animation:none}.streak-hero__count{position:absolute;bottom:26%;left:0;right:0;font-size:var(--font-size-display);font-weight:var(--font-weight-bold, 700);color:var(--color-text-on-brand);text-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none}.streak-hero__label{margin:0 0 var(--space-xs, .5rem) 0;font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary)}@keyframes streak-flicker{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.04,1.06) rotate(-1deg)}60%{transform:scale(.98,1.02) rotate(1deg)}}.streak-dialog__message{margin:0 0 var(--space-md, 1rem) 0;font-size:var(--font-size-md, 1rem);color:var(--color-text-secondary)}.streak-week{display:flex;gap:var(--space-xs, .5rem);justify-content:center;margin-bottom:var(--space-lg, 1.5rem);width:100%}.streak-day{flex:1 1 0;max-width:44px;display:flex;flex-direction:column;align-items:center;gap:4px}.streak-day__dow{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary)}.streak-day__mark{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--font-size-md);background:var(--color-surface-secondary);color:var(--color-text-tertiary)}.streak-day__icon{width:18px;height:18px;color:var(--color-text-on-brand);fill:currentColor}.streak-day--active .streak-day__mark{background:linear-gradient(160deg,#ffb300,#ff5a00);color:var(--color-text-on-brand);box-shadow:0 2px 6px #ff5a0059}.streak-day--frozen .streak-day__mark{background:linear-gradient(160deg,#6fc8ff,#2196f3);color:var(--color-text-on-brand)}.streak-day--frozen-pending .streak-day__mark{opacity:.65}.streak-day--today .streak-day__mark{outline:2px solid var(--color-action-primary);outline-offset:2px}.streak-day--today-pending .streak-day__mark{border:2px dashed var(--color-border-medium);background:transparent}.streak-stats{display:flex;gap:var(--space-xl, 2rem);margin-bottom:var(--space-md, 1rem)}.streak-stat{display:flex;flex-direction:column;align-items:center}.streak-stat__value{font-size:var(--font-size-xl, 1.5rem);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary)}.streak-stat__label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.streak-dialog__hint{margin:0;padding:0 var(--space-md, 1rem);font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary);line-height:var(--line-height-normal, 1.5)}@media (prefers-reduced-motion: reduce){.streak-hero__flame{animation:none}}.mastery-dialog{max-width:var(--dialog-width-sm);width:90vw;max-height:88dvh;top:6vh;transform:translate(-50%)}.mastery-dialog[open]{flex-direction:column}.mastery-dialog__content{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:var(--space-lg, 1.5rem);color:var(--color-text-primary);flex:1 1 auto;min-height:0}.mastery-mode{display:inline-flex;gap:2px;padding:2px;margin-top:var(--space-xs, .4rem);border-radius:var(--border-radius-lg, 20px);background-color:var(--overlay-black-10);flex:0 0 auto}.mastery-mode__tab{border:none;background:transparent;color:var(--color-text-primary);padding:var(--space-xs) var(--space-md);border-radius:var(--border-radius-lg, 20px);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium, 500);cursor:pointer;opacity:.7;transition:var(--hover-transition)}.mastery-mode__tab--active{background-color:var(--color-mastery-leaf);color:var(--color-text-on-brand);opacity:1}.mastery-stages{width:100%;max-width:300px;margin-top:var(--space-md, 1rem);text-align:left;flex:0 0 auto}.mastery-stages__head{margin-bottom:var(--space-xs, .4rem)}.mastery-stages__title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;opacity:.7}.mastery-stages__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm, .75rem)}.mastery-stage__head{display:flex;align-items:center;gap:var(--space-xs, .4rem);margin-bottom:var(--space-xs, .3rem)}.mastery-stage__leaf{flex:0 0 auto;width:1.5rem;height:1.5rem;fill:currentColor;color:var(--color-mastery-leaf)}.mastery-stage--silver .mastery-stage__leaf{fill:url(#mastery-grad-silver);filter:drop-shadow(0 0 3px rgba(var(--color-mastery-silver-rgb),.55))}.mastery-stage--gold .mastery-stage__leaf{fill:url(#mastery-grad-gold);filter:drop-shadow(0 0 4px rgba(var(--color-mastery-complete-rgb),.62))}.mastery-stage__label{font-size:var(--font-size-md);opacity:.85}.mastery-stage__value{margin-left:auto}.mastery-stage__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;opacity:.85}.mastery-stage__track{height:8px;border-radius:4px;background-color:var(--overlay-black-10)}.mastery-stage__fill{position:relative;height:100%;width:0%;border-radius:4px;transition:width .48s cubic-bezier(.18,.89,.32,1.1);background-color:var(--color-mastery-silver);overflow:hidden}.mastery-stage--green .mastery-stage__fill{background-color:var(--color-mastery-leaf)}.mastery-stage--gold .mastery-stage__fill{background-color:var(--color-mastery-complete)}.mastery-stage--silver .mastery-stage__fill{box-shadow:0 0 6px rgba(var(--color-mastery-silver-rgb),.6)}.mastery-stage--gold .mastery-stage__fill{box-shadow:0 0 6px rgba(var(--color-mastery-complete-rgb),.65)}.mastery-stage--silver .mastery-stage__fill:after,.mastery-stage--gold .mastery-stage__fill:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(115deg,transparent 42%,var(--overlay-white-60) 50%,transparent 58%);background-repeat:no-repeat;background-size:220% 100%;background-position:200% 0;animation:mastery-bar-shine 4.5s ease-in-out infinite}.mastery-stage--gold .mastery-stage__fill:after{background-image:linear-gradient(115deg,transparent 40%,var(--overlay-white-72) 50%,transparent 60%)}@keyframes mastery-bar-shine{0%{background-position:200% 0}28%{background-position:-80% 0}to{background-position:-80% 0}}@media (prefers-reduced-motion: reduce){.mastery-stage--silver .mastery-stage__fill:after,.mastery-stage--gold .mastery-stage__fill:after{animation:none}}.mastery-stage--complete .mastery-stage__label{font-weight:var(--font-weight-bold);opacity:1}.mastery-taxa{width:100%;max-width:300px;margin-top:var(--space-sm, .75rem);text-align:left;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.mastery-taxa__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs, .4rem)}.mastery-taxa__title{font-size:var(--font-size-md);opacity:.8}.mastery-taxa__list{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:0;max-height:65vh;overflow-y:auto;border-radius:var(--border-radius, 8px);background-color:var(--overlay-black-05);contain:paint}.mastery-taxa__item{display:flex;align-items:center;gap:var(--space-xs, .5rem);padding:.4rem var(--space-sm, .75rem);font-size:var(--font-size-md);content-visibility:auto;contain-intrinsic-size:0 2rem}.mastery-taxa__item+.mastery-taxa__item{border-top:1px solid var(--overlay-black-10)}.mastery-taxa__leaf{flex:0 0 auto;width:1.5rem;height:1.5rem;fill:currentColor;color:var(--color-text-primary);opacity:.22}.mastery-taxa__name{font-style:italic;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-taxa__item--learned .mastery-taxa__leaf{color:var(--color-mastery-leaf);opacity:1}.mastery-taxa__item--silver .mastery-taxa__leaf{color:var(--color-mastery-silver);fill:url(#mastery-grad-silver);filter:drop-shadow(0 0 3px rgba(var(--color-mastery-silver-rgb),.55))}.mastery-taxa__item--gold .mastery-taxa__leaf{color:var(--color-mastery-complete);fill:url(#mastery-grad-gold);filter:drop-shadow(0 0 4px rgba(var(--color-mastery-complete-rgb),.62))}.mastery-taxa__item--learned .mastery-taxa__name{opacity:1;font-weight:var(--font-weight-medium, 500)}.mastery-global{width:100%;max-width:300px;margin-top:var(--space-sm, .75rem);flex:0 0 auto}.mastery-global__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm, .75rem)}.mastery-global__item{display:flex;align-items:center;gap:var(--space-sm, .6rem);padding:var(--space-sm, .6rem) var(--space-md, 1rem);border-radius:var(--border-radius, 8px);background-color:var(--overlay-black-05)}.mastery-global__leaf{flex:0 0 auto;width:1.75rem;height:1.75rem;fill:currentColor;color:var(--color-mastery-leaf)}.mastery-global__item--silver .mastery-global__leaf{color:var(--color-mastery-silver);fill:url(#mastery-grad-silver);filter:drop-shadow(0 0 4px rgba(var(--color-mastery-silver-rgb),.55))}.mastery-global__item--gold .mastery-global__leaf{color:var(--color-mastery-complete);fill:url(#mastery-grad-gold);filter:drop-shadow(0 0 5px rgba(var(--color-mastery-complete-rgb),.62))}.mastery-global__label{font-size:var(--font-size-md);opacity:.85}.mastery-global__value{margin-left:auto;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums}.mastery-dialog__history{display:flex;flex-direction:column;align-items:center;margin-top:var(--space-sm, .75rem);width:100%;flex:0 0 auto}.mastery-dialog__history-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:none;border-radius:var(--border-radius-lg, 20px);background-color:var(--bg-dialog-item);color:var(--color-text-primary);font-size:var(--font-size-md);cursor:pointer;transition:var(--hover-transition)}.mastery-dialog__history-button:hover{filter:brightness(var(--hover-brightness))}.mastery-dialog__history-button .icon{width:18px;height:18px}.mastery-dialog__history-hint{margin-top:var(--space-xs);font-size:var(--font-size-sm);opacity:.7}.mastery-skeleton{position:relative;overflow:hidden;background-color:var(--overlay-black-10);border-radius:var(--border-radius-sm, 4px)}.mastery-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--overlay-white-10),transparent);animation:mastery-skeleton-shimmer 1.2s ease-in-out infinite}@keyframes mastery-skeleton-shimmer{to{transform:translate(100%)}}.mastery-skeleton--leaf{flex:0 0 auto;width:1.05rem;height:1.05rem;border-radius:50%}.mastery-skeleton--name{height:.8rem}.mastery-skeleton--value{width:3rem;height:.9rem;margin-left:auto}.mastery-global__item .mastery-skeleton--value{height:var(--font-size-lg)}.mastery-taxa__item--skeleton{pointer-events:none}@media (prefers-reduced-motion: reduce){.mastery-stage__fill{transition:none}.mastery-skeleton:after{animation:none}}.pin-search-dialog.standard-dialog{width:min(94vw,var(--dialog-width-xl));max-width:min(94vw,var(--dialog-width-xl));user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.pin-search-dialog__content{display:flex;flex-direction:column;gap:var(--space-sm, .5rem);min-width:min(90vw,22rem);max-width:100%;align-items:stretch}.pin-search-dialog__intro{margin:0;padding-left:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:left;list-style:disc outside}.pin-search-dialog__intro li{text-align:left}.pin-search-dialog__intro li+li{margin-top:var(--space-xxs)}.pin-search-dialog__search{position:relative;width:100%}.pin-search-dialog__search-input{width:100%;padding:var(--space-xs) var(--space-xl) var(--space-xs) var(--space-xl);min-height:var(--tap-target-min);border:1px solid var(--color-border-medium);border-radius:var(--border-radius-md);font-size:var(--font-size-md);background-color:var(--color-surface-primary);color:var(--color-text-primary);text-align:left;user-select:text;-webkit-user-select:text}.pin-search-dialog__search-input::placeholder{color:var(--color-text-tertiary)}.pin-search-dialog__search-input:focus-visible{outline:none;border-color:var(--color-brand-primary);box-shadow:0 0 0 2px rgba(var(--color-brand-primary-rgb),.45)}.pin-search-dialog__search-icon{position:absolute;left:var(--space-sm);top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--color-text-tertiary);pointer-events:none}.pin-search-dialog__clear-search{position:absolute;right:var(--space-xs);top:0;bottom:0;display:flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);background:none;border:none;cursor:pointer;padding:0;color:var(--color-text-tertiary)}.pin-search-dialog__clear-search svg{width:1rem;height:1rem}.pin-search-dialog__status{min-height:1.25rem;padding:var(--space-xxs) 0;font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center}.pin-search-dialog__results{display:flex;flex-direction:column;max-height:min(50vh,22rem);overflow-y:auto;mask-image:linear-gradient(to bottom,#000 calc(100% - 1.5rem),transparent 100%);scrollbar-width:thin;scrollbar-color:var(--color-border-medium) transparent}.pin-search-dialog__results::-webkit-scrollbar{width:4px}.pin-search-dialog__results::-webkit-scrollbar-thumb{background-color:var(--color-border-medium);border-radius:var(--border-radius-sm)}.pin-search-dialog__result{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:3.5rem;padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-sm);border-left:3px solid transparent;cursor:pointer;color:var(--color-text-primary);text-align:left;transition:background-color var(--duration-instant) var(--easing-standard),border-color var(--duration-instant) var(--easing-standard)}.pin-search-dialog__result+.pin-search-dialog__result{border-top:1px solid rgba(var(--color-border-medium-rgb),.4)}.pin-search-dialog__result--active{background-color:rgba(var(--color-brand-primary-rgb),.14);border-left-color:var(--color-brand-primary)}@media (hover: hover){.pin-search-dialog__result:hover{background-color:rgba(var(--color-brand-primary-rgb),.14);border-left-color:var(--color-brand-primary)}}.pin-search-dialog__result-names{display:flex;flex-direction:column;gap:.1rem;min-width:0}.pin-search-dialog__result-sci{font-style:italic;font-size:var(--font-size-md);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-search-dialog__result-vernacular{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-search-dialog__result-count{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.pin-search-dialog__body{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);min-height:0}.pin-search-dialog__detail{display:none}@media (min-width: 40rem) and (min-height: 32rem){.pin-search-dialog__body{grid-template-columns:minmax(0,1fr) 15rem}.pin-search-dialog__detail{display:block;min-width:0;padding-left:var(--space-md);border-left:1px solid rgba(var(--color-border-medium-rgb),.4);text-align:left}.pin-search-dialog__intro:not(.pin-search-dialog__intro--pane){display:none}}.pin-search-dialog__detail-title{font-size:var(--font-size-lg);color:var(--color-text-primary);text-align:left;line-height:1.2}.pin-search-dialog__detail-title--sci{font-style:italic}.pin-search-dialog__detail-sci{font-style:italic;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left}.pin-search-dialog__chip{display:inline-block;margin-top:var(--space-xs);padding:.1rem var(--space-xs);border:1px solid rgba(var(--color-border-medium-rgb),.6);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:left}.pin-search-dialog__detail-stat{margin-top:var(--space-md)}.pin-search-dialog__detail-count{font-size:var(--font-size-md);color:var(--color-text-primary);text-align:left;font-variant-numeric:tabular-nums}.pin-search-dialog__detail-label{margin-top:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;text-align:left}.pin-search-dialog__detail-partners{margin-top:var(--space-xxs);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left;line-height:1.5}.pin-search-dialog__thumb{flex:0 0 auto;width:2.75rem;height:2.75rem;border-radius:var(--border-radius-sm);background-color:rgba(var(--color-neutral-500-rgb),.2);overflow:hidden}.pin-search-dialog__thumb img{width:100%;height:100%;object-fit:cover;display:block}.pin-search-dialog__thumb--detail{width:min(100%,8rem);aspect-ratio:1;height:auto;border-radius:var(--border-radius-md);margin-bottom:var(--space-sm)}.pin-search-dialog__result-names{flex:1 1 auto}.dev-pair-form{display:flex;flex-direction:column;gap:.85rem;padding:1rem;color:var(--color-text-primary)}.dev-pair-taxa{margin:0;font-style:italic;opacity:.85}.dev-pair-field{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.dev-pair-field small{font-weight:400;opacity:.7}.dev-pair-field input[type=text]{padding:.5rem .6rem;border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--border-radius-md);font:inherit;font-weight:400;background-color:var(--color-surface-primary);color:var(--color-text-primary)}.dev-pair-field input[type=text]:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:var(--state-focus-ring)}.dev-pair-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.dev-pair-row__label{font-weight:600}.dev-pair-enabled{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;color:var(--color-text-primary)}.dev-pair-level-group{display:inline-flex;border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--border-radius-md);overflow:hidden}.dev-pair-level{min-width:2.5rem;padding:.4rem 0;border:none;border-left:var(--border-width-thin) solid var(--color-border-medium);background-color:var(--color-surface-primary);color:var(--color-text-primary);font:inherit;cursor:pointer}.dev-pair-level:first-child{border-left:none}@media (hover: hover){.dev-pair-level:hover:not(.dev-pair-level--active){background-color:var(--color-surface-secondary)}}.dev-pair-level--active{background-color:var(--color-brand-primary);color:var(--color-text-on-brand);font-weight:700}.dev-pair-enabled{margin-left:auto;font-weight:600}.dev-pair-warning{margin:0;font-size:var(--font-size-sm)}.dev-pair-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:0 1rem 1rem}.dev-pair-dialog .dialog-button--secondary{background-color:transparent;color:var(--color-text-primary);border:var(--border-width-thin) solid var(--color-border-medium)}#dev-pair-save{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-width:5rem}.dev-pair-spinner{width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}#dev-pair-save.is-saving .dev-pair-save__label{display:none}#dev-pair-save:not(.is-saving) .dev-pair-spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}.dev-facts-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);color:var(--color-text-primary)}.dev-facts-meta,.dev-facts-note{margin:0;font-size:var(--font-size-sm);opacity:.75}.dev-facts-rows{display:flex;flex-direction:column;gap:var(--space-sm)}.dev-facts-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-xs);align-items:center}.dev-facts-text,.dev-facts-url{padding:.5rem .6rem;border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--border-radius-md);font:inherit;background-color:var(--color-surface-primary);color:var(--color-text-primary);min-width:0}.dev-facts-url{grid-column:1 / 2;font-size:var(--font-size-sm);opacity:.75}.dev-facts-url:focus{opacity:1}.dev-facts-remove{grid-column:2 / 3;grid-row:1 / 2;min-width:var(--tap-target-min);min-height:var(--tap-target-min);border:none;border-radius:var(--border-radius-md);background:none;color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1;cursor:pointer}@media (hover: hover){.dev-facts-remove:hover{color:var(--color-feedback-error);background-color:var(--overlay-black-05)}}.dev-facts-add{align-self:flex-start;min-height:var(--tap-target-min);padding:0 var(--space-sm);border:var(--border-width-thin) dashed var(--color-border-medium);border-radius:var(--border-radius-md);background:none;color:var(--color-text-primary);font:inherit;cursor:pointer}@media (hover: hover){.dev-facts-add:hover{border-style:solid;background-color:var(--overlay-black-05)}}@media (orientation: landscape) and (max-height: 460px){.portrait-layout .image-container{padding:2px}}@media (max-height: 699px) and (pointer: coarse){.landscape-layout .history-buttons,.landscape-layout .prev-pair-button,.landscape-layout .next-pair-button{display:none}}.image-container__button:focus-visible,.icon-button:focus-visible,.dialog-close-button:focus-visible,.dialog-help-button:focus-visible{outline:var(--border-width-medium) solid var(--color-feedback-info);outline-offset:2px}
