:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--text-3xs:.6rem;--text-2xs:.65rem;--text-xs:.72rem;--text-sm:.78rem;--text-base:.85rem;--text-md:1rem;--text-lg:1.3rem;--text-xl:2rem;--text-muted:#cfe3f7;--text-primary:#f4f8fc;--danger:#d64545;font:16px/1.45 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{color:#f4f8fc;background:#2f74ab;margin:0;overflow-x:hidden}img{max-width:100%}h1,h2{font-weight:600}p{margin:0}input,textarea,select{color:#1a1a1a}@media (width<=600px){input,textarea,select{font-size:16px!important}}:focus-visible{outline:2px solid var(--accent,#4fa8dc);outline-offset:2px}.app-loading-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.app-loading-logo{filter:drop-shadow(0 8px 20px #0b254580);width:110px;height:auto;animation:.4s app-loading-fade}.app-loading-title{font-size:var(--text-lg);color:#fff;letter-spacing:.02em;margin:0;font-weight:700;animation:.4s 50ms backwards app-loading-fade}@keyframes app-loading-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.app-loading-logo,.app-loading-title{animation:none}}.sort-direction-btn{color:#9db4c9;width:36px;height:36px;font-size:var(--text-md);cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.sort-direction-btn:hover{background:#ffffff2e}.sort-direction-btn.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.sort-group{align-items:center;gap:6px;display:inline-flex}.toast-stack{top:max(12px, env(safe-area-inset-top));z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed;left:0;right:0}.toast-item{pointer-events:auto;cursor:pointer;width:100%;max-width:420px;color:var(--text-primary);font-size:var(--text-base);cursor:pointer;background:#0a1e37eb;border:1px solid #ffffff40;border-radius:12px;align-items:flex-start;gap:8px;padding:10px 14px;animation:.2s toast-in;display:flex;box-shadow:0 8px 24px #00000059}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toast-icon{font-size:var(--text-lg);flex-shrink:0}.toast-icon-img{flex-shrink:0;width:auto;height:22px}.toast-text{white-space:normal;word-break:break-word;flex:1;min-width:0}.toast-item--achievement{background:#3a2606f0;border-color:#ffcd50a6;position:relative;overflow:visible;box-shadow:0 8px 24px #ffb42859,0 0 0 1px #ffcd5040}.toast-item--achievement .toast-icon{font-size:var(--text-lg)}.toast-item--achievement:before,.toast-item--achievement:after{content:"";filter:drop-shadow(.045em 0 #1b1b1b)drop-shadow(-.045em 0 #1b1b1b)drop-shadow(0 .045em #1b1b1b)drop-shadow(0 -.045em #1b1b1b);width:1.15em;height:1.15em;font-size:var(--text-md);pointer-events:none;background:url(/emoji/2728.svg) 50%/contain no-repeat;animation:.9s ease-out firework-pop;position:absolute;top:-8px}.toast-item--achievement:before{animation-delay:50ms;left:14%}.toast-item--achievement:after{animation-delay:.2s;right:14%}@keyframes firework-pop{0%{opacity:0;transform:scale(.4)translateY(4px)}40%{opacity:1;transform:scale(1.3)translateY(-8px)}to{opacity:0;transform:scale(.8)translateY(-20px)}}.notif-inbox-item--achievement{background:#ffcd5024;border:1px solid #ffcd5066}.toast-item--frame{background:#20242af0;border-color:#ffffffb3;position:relative;overflow:visible;box-shadow:0 8px 24px #ffffff38,0 0 0 1px #ffffff4d}.toast-item--frame .toast-icon{font-size:var(--text-lg)}.toast-item--frame:before,.toast-item--frame:after{content:"";filter:drop-shadow(.045em 0 #1b1b1b)drop-shadow(-.045em 0 #1b1b1b)drop-shadow(0 .045em #1b1b1b)drop-shadow(0 -.045em #1b1b1b);width:1.15em;height:1.15em;font-size:var(--text-md);pointer-events:none;background:url(/emoji/2728.svg) 50%/contain no-repeat;animation:.9s ease-out firework-pop;position:absolute;top:-8px}.toast-item--frame:before{animation-delay:50ms;left:14%}.toast-item--frame:after{animation-delay:.2s;right:14%}.notif-inbox-item--frame{background:#ffffff24;border:1px solid #ffffff73}.notif-clear-all-btn{margin-bottom:12px}.notif-inbox-list{flex-direction:column;gap:6px;max-height:55vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.notif-inbox-item{cursor:pointer;font-size:var(--text-base);background:#ffffff14;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.notif-inbox-text{flex:1;min-width:0}.notif-inbox-time{font-size:var(--text-xs);opacity:.6;white-space:nowrap;flex-shrink:0}.notif-inbox-more{font-size:var(--text-xs);opacity:.85;white-space:nowrap;vertical-align:middle;background:#ffffff29;border-radius:999px;margin-left:6px;padding:1px 7px;display:inline-block}.notif-inbox-delete{color:#ffb3b3;font-size:var(--text-md);cursor:pointer;background:#ffb3b31f;border:1px solid #ffb3b359;border-radius:8px;flex-shrink:0;padding:6px 10px;line-height:1}.admin-reports-list{flex-direction:column;gap:8px;max-height:65vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.admin-report-item{background:#ffffff14;border-radius:8px;padding:10px 12px}.admin-report-head{font-size:var(--text-xs);color:var(--text-muted);justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.admin-report-type{text-transform:uppercase;letter-spacing:.03em;font-weight:700}.admin-report-preview{font-size:var(--text-base);margin:4px 0}.admin-report-author{font-size:var(--text-xs);font-style:italic}.admin-report-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.admin-report-actions button{flex:auto}.admin-theme{margin:0 0 12px}.admin-theme-summary{cursor:pointer;font-weight:700;font-size:var(--text-base);justify-content:space-between;align-items:center;gap:8px;padding:8px 4px;list-style:none;display:flex}.admin-theme-summary::-webkit-details-marker{display:none}.admin-theme-summary:before{content:"▾";opacity:.7;margin-right:6px}.admin-theme:not([open])>.admin-theme-summary:before{content:"▸"}.admin-theme-summary>span:first-of-type{flex:1}.admin-theme-summary .count-badge{font-size:var(--text-xs);padding:1px 8px;position:static}.admin-theme .admin-reports-list{max-height:none;overflow-y:visible}.admin-report-media-btn{cursor:zoom-in;background:0 0;border:none;width:100%;margin:6px 0;padding:0;display:block}.admin-report-media{object-fit:cover;border-radius:10px;width:100%;max-height:260px;margin:6px 0;display:block}.admin-report-media-btn .admin-report-media{margin:0}.admin-report-gone{font-size:var(--text-sm);color:var(--text-muted);margin:4px 0;font-style:italic}.admin-day-heading{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:6px 2px 0;font-weight:700}.admin-dex-chip,.admin-count-pill{font-size:var(--text-xs);background:#ffffff24;border-radius:999px;margin-right:6px;padding:2px 9px;font-weight:700;display:inline-block}.admin-count-pill.is-many{background:var(--danger);color:#fff}.admin-scan-usage{font-size:var(--text-sm);background:#ffffff0f;border:1px solid #ffffff24;border-radius:10px;margin-bottom:14px;padding:10px 12px}.admin-scan-usage p{margin:2px 0}.admin-scan-usage-title{font-weight:700}.admin-scan-usage--alert{background:#e07b2e1f;border-color:#e07b2e99}.admin-credit-title{margin-top:12px}.admin-credit-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:6px;display:flex}.admin-credit-input{width:130px;color:inherit;font-size:var(--text-base);text-align:center;background:#ffffff14;border:1px solid #ffffff40;border-radius:8px;padding:8px 10px}.admin-scan-usage-alert-text{color:#e0a35c;font-weight:600}.welcome-screen{background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex;position:relative}.welcome-language-switcher{max-width:360px}.language-switcher{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.language-switcher-btn{color:inherit;font:inherit;font-size:var(--text-sm);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:999px;padding:6px 12px}.language-switcher-btn.is-active{background:var(--accent,#4fa8dc);color:#fff;border-color:#0000;font-weight:600}.welcome-language-switcher .language-switcher-btn{color:#fff;text-shadow:0 1px 3px #00000073;background:#091c2a6b;border-color:#ffffff61}.welcome-language-switcher .language-switcher-btn.is-active{background:var(--accent,#4fa8dc);text-shadow:none;border-color:#0000}.welcome-content{text-align:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#fff;background:#06162b80;border:1px solid #ffffff40;border-radius:20px;max-width:360px;padding:36px 28px;box-shadow:0 20px 50px #00000059}.welcome-logo{filter:drop-shadow(0 6px 14px #00000059);width:140px;height:auto;margin-bottom:8px}.welcome-content h1{font-size:var(--text-xl);letter-spacing:.5px;margin:4px 0 2px;font-family:"Baloo 2",system-ui,sans-serif;font-weight:700}.welcome-content p{color:var(--text-muted);margin:0 0 22px}.welcome-cta{color:#0b2545;font-size:var(--text-md);cursor:pointer;background:#4fa8dc;border:none;border-radius:999px;padding:13px 28px;font-weight:700;transition:transform .15s;box-shadow:0 8px 20px #4fa8dc66}.welcome-cta:hover{transform:translateY(-2px)}.install-app-block{flex-direction:column;align-items:center;margin-top:16px;display:flex}.install-app-btn{color:#3a2a06;font-size:var(--text-md);cursor:pointer;background:#e8b93e;border:none;border-radius:999px;align-items:center;gap:8px;padding:12px 24px;font-weight:700;display:flex;box-shadow:0 8px 20px #e8b93e66}.install-app-hint{font-size:var(--text-sm);color:var(--text-muted);opacity:.85;text-align:center;max-width:260px;margin:0!important}.inapp-browser-banner{z-index:5;padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));color:#3a2a06;font-size:var(--text-sm);background:#e8b93e;align-items:center;gap:10px;font-weight:600;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #00000040}.inapp-browser-banner-text{flex:1}.inapp-browser-banner-close{color:#3a2a06;cursor:pointer;background:#3a2a061f;border:none;border-radius:50%;flex-shrink:0;width:26px;height:26px;font-size:18px;line-height:1}.app-shell{--accent:#4fa8dc;--accent-contrast:#0b2545;--panel:#2e6ba0;min-height:100vh;color:var(--text-primary);background-color:#2f74ab;background-image:radial-gradient(620px 480px at 12% 8%,#bee4fa4d,#0000 60%),radial-gradient(680px 560px at 90% 22%,#78c3eb47,#0000 62%),radial-gradient(760px 620px at 45% 100%,#0f2d4b4d,#0000 65%);background-repeat:no-repeat;background-attachment:fixed;padding:24px 16px 48px}.onboarding-tutorial{text-align:center;flex-direction:column;align-items:center;max-width:340px;display:flex}.onboarding-icon{width:88px;height:auto;margin-bottom:8px}.onboarding-emoji{height:88px;margin-bottom:8px;font-size:64px;line-height:88px}.onboarding-tutorial h2{margin:0 0 8px}.onboarding-dots{gap:6px;margin:18px 0;display:flex}.onboarding-dot{background:#ffffff4d;border-radius:50%;width:8px;height:8px}.onboarding-dot.is-active{background:var(--accent,#4fa8dc)}.onboarding-actions{align-items:center;gap:10px;display:flex}.onboarding-actions button:not(.catch-form-cancel),.avatar-choice-actions button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;padding:9px 16px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.language-confirm-dialog{text-align:center;max-width:340px}.changelog-dialog{max-width:380px}.changelog-dialog .onboarding-actions{justify-content:center;margin-top:20px}.changelog-dialog h2{margin:0 0 12px}.changelog-list{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.changelog-list li{line-height:1.4}.changelog-history{max-height:80vh;overflow-y:auto}.changelog-history-group+.changelog-history-group{margin-top:18px}.changelog-history-date{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);text-align:left;margin:0 0 8px}.changelog-new-badge{background:var(--accent);color:var(--accent-contrast);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;border-radius:6px;margin-right:8px;padding:1px 6px;font-weight:700;display:inline-block}.avatar-choice-dialog{text-align:center;max-width:300px}.avatar-choice-dialog h2{margin:0 0 16px}.avatar-choice-actions{justify-content:center;gap:10px;display:flex}.avatar-choice-actions button{flex:1}.language-confirm-dialog h2{margin:0 0 8px}.language-confirm-switcher{margin:16px 0 4px}.onboarding-never-again{color:var(--text-muted);cursor:pointer;font-size:var(--text-xs);opacity:.7;background:0 0;border:none;margin-top:14px;text-decoration:underline}.error-boundary-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.error-boundary-icon{margin-bottom:4px}.error-boundary-screen h1{font-size:var(--text-lg);max-width:320px;margin:0}.error-boundary-screen .dex-status{max-width:320px}.error-boundary-screen button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:8px;margin-top:10px;padding:10px 20px;font-weight:600}.app-shell.group-theme{--accent:#a866dc;--accent-contrast:#24123f;--panel:#6a3fac;background-color:#653f9e;background-image:radial-gradient(620px 480px at 12% 8%,#e0c3fa47,#0000 60%),radial-gradient(680px 560px at 90% 22%,#c48cf047,#0000 62%),radial-gradient(760px 620px at 45% 100%,#2812464d,#0000 65%)}.app-shell.dark-mode{--panel:#143a63;background-color:#0d2d52;background-image:radial-gradient(620px 480px at 12% 8%,#508cbe2e,#0000 60%),radial-gradient(680px 560px at 90% 22%,#3264a033,#0000 62%),radial-gradient(760px 620px at 45% 100%,#06122473,#0000 65%)}.app-shell.dark-mode.group-theme{--panel:#351a5c;background-color:#2a1550;background-image:radial-gradient(620px 480px at 12% 8%,#a06ed22e,#0000 60%),radial-gradient(680px 560px at 90% 22%,#7846b433,#0000 62%),radial-gradient(760px 620px at 45% 100%,#14082673,#0000 65%)}.app-header{text-align:center;border-bottom:1px solid #ffffff2e;max-width:1000px;margin-bottom:28px;margin-left:auto;margin-right:auto;padding-bottom:20px}.app-header h1{font-size:var(--text-xl);margin:0;font-family:"Baloo 2",system-ui,sans-serif;font-weight:700}.app-header p{color:var(--text-muted);margin:4px 0 0}.app-topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.app-topbar .app-title{font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.app-brand{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-shrink:1;align-items:center;gap:6px;padding:0;display:flex}.app-logo-icon{filter:drop-shadow(0 2px 5px #0000004d);flex-shrink:0;width:auto;height:26px}.app-brand-hint{font-size:var(--text-xs);opacity:.6;flex-shrink:0}.app-bell-icon{width:auto;height:20px;display:block}.app-topbar-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.dex-status{text-align:center;color:var(--text-muted)}.push-denied-help{text-align:left;font-size:var(--text-sm);flex-direction:column;gap:6px;display:flex}.dex-controls{flex-direction:column;gap:10px;max-width:1000px;margin:0 auto 16px;display:flex}.dex-controls-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.dex-search{min-width:90px;font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;flex:120px;padding:8px 12px}@media (width<=420px){.dex-controls-row{gap:6px}.dex-search{flex-basis:50px;min-width:50px;padding:8px}.dex-filter-group{gap:2px;padding:2px}.dex-filter-btn{padding:8px 6px}.sort-group{gap:4px}.grid-columns-icon{display:none}.grid-columns-btn{gap:0}.grid-columns-btn.dex-filter-btn{padding:8px}}.dex-filter-group{background:#ffffff14;border-radius:8px;gap:4px;padding:3px;display:flex}.dex-filter-btn{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:9px 10px}.dex-filter-btn.is-active{background:var(--accent);color:var(--accent-contrast);font-weight:600}.grid-columns-btn{align-items:center;gap:5px;display:inline-flex}.grid-columns-icon rect{fill:currentColor;opacity:.85}.dex-sort{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:8px 10px}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-width:1000px;margin:0 auto;display:grid}.dex-grid.dex-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dex-grid.dex-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dex-grid.dex-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.dex-grid--cols-3 .fish-card{padding:10px 6px 8px}.dex-grid--cols-4 .fish-card{padding:8px 5px 6px}.dex-grid--cols-2{--grid-scale:1}.dex-grid--cols-3{--grid-scale:.66}.dex-grid--cols-4{--grid-scale:.49}.dex-grid--cols-3 .fish-card-visual,.dex-grid--cols-4 .fish-card-visual{height:calc(56px * var(--grid-scale));margin-bottom:calc(10px * var(--grid-scale))}.dex-grid--cols-3 .fish-name{font-size:var(--text-sm);min-height:2.6em}.dex-grid--cols-4 .fish-name{font-size:var(--text-xs);min-height:2.5em}.dex-grid--cols-3 .fish-num-badge,.dex-grid--cols-3 .fish-count,.dex-grid--cols-4 .fish-num-badge,.dex-grid--cols-4 .fish-count{padding:calc(1px * var(--grid-scale)) calc(6px * var(--grid-scale));font-size:max(7.5px, calc(.65rem * var(--grid-scale)))}.dex-grid--cols-3 .fish-num-badge,.dex-grid--cols-4 .fish-num-badge{border-radius:calc(8px * var(--grid-scale))}.dex-grid--cols-3 .fish-count,.dex-grid--cols-4 .fish-count{border-radius:calc(10px * var(--grid-scale))}.dex-grid--cols-3 .fish-rarity,.dex-grid--cols-4 .fish-rarity{font-size:max(7.5px, calc(.65rem * var(--grid-scale)));padding:calc(2px * var(--grid-scale)) calc(10px * var(--grid-scale))}.dex-grid--cols-3 .fish-num-badge{left:-2px}.dex-grid--cols-3 .fish-medal-badge{right:-2px}.dex-grid--cols-3 .fish-count{right:0}.dex-grid--cols-4 .fish-num-badge{top:-5px;left:-3px}.dex-grid--cols-4 .fish-medal-badge{right:-3px}.dex-grid--cols-4 .fish-count{right:-1px}.fish-card{text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:inherit;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff21;border-radius:14px;flex-direction:column;padding:14px 10px 12px;transition:transform .15s,background .15s,border-color .15s;display:flex}.fish-card:hover{background:#ffffff1c;border-color:#ffffff40;transform:translateY(-2px)}.fish-card.is-caught{border-color:#ffffff38}.fish-card.is-endemic{background:#e2704a1a;border-color:#e2704a4d}.fish-card.is-endemic:hover{background:#e2704a29}.fish-card.is-challenge-counted{background:#58bd791f;border-color:#58bd7959}.fish-card.is-challenge-counted:hover{background:#58bd792e}.fish-card-visual{justify-content:center;align-items:center;height:56px;margin-bottom:10px;display:flex;position:relative}.fish-detail-visual{justify-content:center;align-items:center;margin:0 auto 14px;display:flex;position:relative}.fish-silhouette-box{flex-shrink:0;justify-content:center;align-items:center;display:flex}.fish-silhouette-img{object-fit:contain;filter:drop-shadow(0 3px 5px #00000040);width:auto;max-width:100%;height:auto;max-height:100%}.fish-num-badge{font-size:var(--text-2xs);letter-spacing:.02em;opacity:.85;z-index:2;background:#050f1e8c;border:1px solid #ffffff40;border-radius:8px;padding:1px 6px;font-weight:700;position:absolute;top:-6px;left:2px}.fish-detail-visual .fish-num-badge{top:4px;left:-6px}.fish-count{background:var(--accent-contrast);font-size:var(--text-2xs);z-index:2;border:1px solid #fff6;border-radius:10px;padding:1px 6px;font-weight:700;position:absolute;bottom:-2px;right:4px}.fish-plus-one{font-size:var(--text-xl);color:#7fd97f;text-shadow:0 0 8px #0009;z-index:5;pointer-events:none;justify-content:center;align-items:center;font-weight:800;animation:3s ease-out forwards fishPlusOne;display:flex;position:absolute;inset:0}@keyframes fishPlusOne{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.3)}30%{transform:scale(1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.fish-plus-one{animation:3s ease-out forwards fishPlusOneFadeOnly}}@keyframes fishPlusOneFadeOnly{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0}}.fish-medal-badge{filter:drop-shadow(0 1px 2px #0006);z-index:2;position:absolute;top:-6px;right:2px}.fish-detail-visual .fish-medal-badge--lg{top:58px;right:8px}.medal-icon{vertical-align:middle;display:inline-block}.catch-medal-inline{vertical-align:middle;margin-right:4px;display:inline-flex}.fish-personal-record{font-size:var(--text-sm);color:#e8b93e;margin:4px 0 10px;font-weight:700}.medal-thresholds{text-align:left;background:#ffffff0f;border-radius:10px;margin:10px 0;padding:10px 14px}.medal-thresholds-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px;font-weight:700;display:block}.medal-thresholds ul{font-size:var(--text-sm);flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.medal-stats-block{max-width:320px;margin:18px auto 16px}.medal-stats-list{flex-wrap:wrap;justify-content:center;gap:14px;margin:6px 0 0;padding:0;list-style:none;display:flex}.medal-stats-list li{font-size:var(--text-2xs);color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;display:flex}.medal-stats-count{font-size:var(--text-sm);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.fish-name-alt{opacity:.75;font-weight:500}.fish-name{font-size:var(--text-md);flex-wrap:wrap;place-content:center;min-height:2.9em;margin-bottom:4px;font-weight:700;line-height:1.45;display:flex}.fish-meta{font-size:var(--text-xs);color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;display:flex}.fish-rarity{text-transform:uppercase;letter-spacing:.03em;font-weight:700;font-size:var(--text-2xs);border:1px solid #0000;border-radius:999px;padding:2px 10px}.fish-rarity--commun{color:var(--text-muted);background:#cfe3f729;border-color:#cfe3f766}.fish-rarity--peu_commun{color:#7fd97f;background:#7fd97f29;border-color:#7fd97f73}.fish-rarity--rare{color:#7fd8ff;background:#7fd8ff29;border-color:#7fd8ff73}.fish-rarity--epique{color:#c793f7;background:#c793f72e;border-color:#c793f780}.fish-rarity--legendaire{color:#f4d54a;background:#f4d54a2e;border-color:#f4d54a80}.user-chip{color:var(--text-primary);cursor:pointer;min-width:0;max-width:84px;font-size:var(--text-sm);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;align-items:center;gap:7px;padding:4px 10px 4px 4px;font-weight:600;display:flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.icon-btn{color:var(--text-primary);cursor:pointer;width:40px;height:40px;font-size:var(--text-md);background:#ffffff1a;border:1px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn:hover,.user-chip:hover{background:#ffffff2e}.signout-btn{color:#ffb3b3;cursor:pointer;background:#d645451a;border:1px solid #d6454559;border-radius:8px;width:100%;margin-top:20px;padding:10px;font-weight:600}.signout-btn:hover{background:#d645452e}.auth-box{text-align:center;background:#ffffff14;border:1px solid #ffffff26;border-radius:12px;max-width:320px;margin:40px auto 0;padding:24px}.auth-box h2{margin:0 0 16px}.auth-box form{flex-direction:column;gap:10px;display:flex}.auth-box input{font-size:var(--text-md);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:10px 12px}.auth-box button[type=submit]{background:var(--accent);color:var(--accent-contrast);cursor:pointer;filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;margin-top:6px;padding:10px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.auth-switch{color:var(--text-muted);cursor:pointer;font-size:var(--text-base);background:0 0;border:none;margin-top:14px;text-decoration:underline}.auth-forgot-link{color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);opacity:.85;background:0 0;border:none;align-self:flex-end;margin-top:-4px;text-decoration:underline}.auth-error{color:#ffb3b3;font-size:var(--text-base);margin:0}.auth-info{color:#b3f0c0;font-size:var(--text-base);margin:0}.auth-captcha{justify-content:center;display:flex}.size-warning{color:#e0b34c;font-size:var(--text-sm);background:#e0b34c1f;border:1px solid #e0b34c4d;border-radius:8px;margin:-6px 0 0;padding:8px 10px;line-height:1.4}.fish-detail-overlay{z-index:10;background:#050f1eb3;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.fish-detail{background:var(--panel,#123363);text-align:center;border:1px solid #ffffff26;border-radius:16px;width:100%;max-width:420px;padding:28px 20px;position:relative}.fish-detail-dex-label{font-size:var(--text-xs);opacity:.6;text-overflow:ellipsis;white-space:nowrap;max-width:130px;position:absolute;top:14px;left:14px;overflow:hidden}.fish-detail-close{color:var(--text-primary);font-size:var(--text-lg);cursor:pointer;z-index:2;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;line-height:1;display:flex;position:absolute;top:8px;right:8px}.photo-lightbox-overlay{z-index:50;background:#000000e6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.photo-lightbox-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%}.photo-lightbox-close{color:var(--text-primary);font-size:var(--text-xl);cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:44px;height:44px;line-height:1;position:absolute;top:14px;right:14px}.photo-lightbox-download{color:var(--text-primary);cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;top:16px;left:16px}.report-btn{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.report-btn--lightbox{color:var(--text-primary);background:#ffffff26;border-radius:50%;width:40px;height:40px;position:absolute;top:16px;left:64px}.report-btn--inline{opacity:.55;vertical-align:middle;margin-left:6px}.report-btn--inline:hover{opacity:1}.photo-lightbox-nav{color:var(--text-primary);font-size:var(--text-xl);cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:48px;height:48px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.photo-lightbox-prev{left:12px}.photo-lightbox-next{right:12px}.photo-lightbox-counter{color:var(--text-primary);font-size:var(--text-sm);background:#ffffff26;border-radius:12px;padding:4px 12px;font-weight:600;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.public-dex-shell{text-align:center;max-width:720px;margin:0 auto;padding:20px}.public-dex-header{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}.public-dex-badge{font-size:var(--text-sm);opacity:.75;margin:0 0 18px}.public-dex-profile{flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;display:flex}.public-dex-avatar{object-fit:cover;border:2px solid #ffffff4d;border-radius:50%;width:72px;height:72px}.public-dex-cta{background:var(--accent);color:var(--accent-contrast);filter:brightness(1.45)saturate(1.15);border-radius:8px;margin:28px auto 0;padding:10px 20px;font-weight:600;text-decoration:none;display:inline-block;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.legal-notice{text-align:left;max-width:520px}.legal-notice--page{margin:24px auto 0}.legal-notice h3{font-size:var(--text-md);margin:18px 0 6px}.legal-notice p{font-size:var(--text-base);color:var(--text-muted);margin:0 0 4px;line-height:1.55}.legal-notice ul{font-size:var(--text-base);color:var(--text-muted);margin:0 0 4px;padding-left:20px;line-height:1.55}.legal-notice li{margin-bottom:6px}.camera-capture{max-width:480px}.camera-capture-stage{background:#000;border-radius:8px;justify-content:center;align-items:center;min-height:160px;margin:12px 0;display:flex;position:relative;overflow:hidden}.camera-capture-video{width:100%;max-height:55vh;display:block}.camera-capture-loading{background:#00000073;justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:0}.image-cropper{max-width:480px}.image-cropper-stage{touch-action:none;max-width:100%;margin:12px 0;display:inline-block;position:relative}.image-cropper-img{-webkit-user-select:none;user-select:none;max-width:100%;max-height:50vh;display:block}.image-cropper-box{border:2px solid var(--accent);cursor:move;touch-action:none;position:absolute;box-shadow:0 0 0 9999px #0000008c}.image-cropper-box.is-round{border-radius:50%}.image-cropper-handle{background:var(--accent);cursor:nwse-resize;touch-action:none;border:2px solid #fff;border-radius:50%;width:20px;height:20px;position:absolute;bottom:-9px;right:-9px}.fish-detail h2{margin:0 0 2px}.fish-sci{color:var(--text-muted);margin:0 0 8px;font-style:italic}.fish-detail .fish-meta{font-size:var(--text-base);flex-direction:row;justify-content:center;gap:10px;margin-bottom:10px}.fish-habitat,.fish-desc{font-size:var(--text-base);color:var(--text-muted);margin:6px 0}.physical-details{text-align:left;margin:10px 0}.physical-details-toggle{width:100%;color:var(--text);font-size:var(--text-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-weight:600;display:flex}.physical-details-chevron{transition:transform .15s;display:inline-block}.physical-details-chevron.is-open{transform:rotate(180deg)}.physical-details-content{font-size:var(--text-base);background:#ffffff0f;border-radius:10px;margin-top:8px;padding:10px 12px}.physical-details-content p{color:var(--text-muted);margin:0 0 8px}.fish-confusions h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:10px 0 4px}.confusion-compare{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:10px;display:flex}.confusion-compare-item{flex-direction:column;align-items:center;gap:4px;width:96px;display:flex}.confusion-compare-item span{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.fish-endemic-note{font-size:var(--text-sm);color:#e2704a;text-align:left;background:#e2704a1a;border:1px solid #e2704a4d;border-radius:10px;margin:10px 0;padding:8px 12px}.reg-status{border-left:4px solid var(--reg-color,#2e8b57);text-align:left;font-size:var(--text-base);background:#ffffff14;border-radius:10px;margin:16px 0;padding:10px 12px}.reg-status strong{color:var(--reg-color,#2e8b57)}.reg-status p{margin:4px 0 0}.reg-disclaimer{opacity:.7;font-size:var(--text-xs)}.reg-federation-link{font-size:var(--text-xs);color:var(--reg-color,#2e8b57);margin-top:6px;text-decoration:underline;display:inline-block}.catch-history{text-align:left;margin-top:16px}.catch-history h3{font-size:var(--text-md);margin:0 0 8px}.catch-history ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.catch-item{font-size:var(--text-sm);background:#ffffff0f;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.catch-notes{opacity:.85;margin:4px 0 0}.catch-photo-thumb{object-fit:cover;border-radius:6px;max-width:120px;max-height:120px;margin-top:6px;display:block}.public-catch-item{flex-direction:column;align-items:stretch}.public-catch-date{margin-bottom:6px}.public-catch-row{align-items:center;gap:12px;display:flex}.public-catch-row .catch-photo-thumb{flex-shrink:0;margin-top:0}.public-catch-info{flex-direction:column;justify-content:center;gap:4px;display:flex}.catch-form-photo-label{font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;gap:4px;display:flex}.catch-form-photo-label input{font-size:var(--text-sm)}.catch-form-group-option{flex-wrap:wrap}.catch-form-group-name{overflow-wrap:anywhere;min-width:0}.catch-contest-chip{color:#f4d54a;max-width:100%;font-size:var(--text-xs);background:#f4d54a24;border:1px solid #f4d54a8c;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:2px 9px;font-weight:700;display:inline-flex}.catch-contest-chip-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.catch-contest-chip-time{font-variant-numeric:tabular-nums;white-space:nowrap}.catch-contest-warning{color:#f4d54a;font-size:var(--text-sm);background:#f4d54a24;border:1px solid #f4d54a80;border-radius:10px;margin:4px 0 6px;padding:6px 10px;line-height:1.35}.catch-edit-groups-note{font-size:var(--text-sm);opacity:.8;margin:6px 0 0}.catch-form-uncheck-warning p{color:#f4d54a;font-size:var(--text-sm);background:#f4d54a24;border:1px solid #f4d54a80;border-radius:10px;margin:6px 0 0;padding:6px 10px;line-height:1.35}.catch-form-catalogs{background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.catch-form-catalog-option{font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;display:flex}.catch-form-catalog-option input[type=checkbox]{flex-shrink:0;width:16px;height:16px}.photo-pick-btn{border:1px solid var(--accent);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);background:#ffffff1a;border-radius:8px;align-self:flex-start;padding:7px 14px;font-weight:600}.catch-delete{color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;padding:8px 12px}.catch-delete--danger{color:#ffb3b3;background:#ffb3b31f;border:1px solid #ffb3b359}.catch-item-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.catch-item--editing{display:block}.add-catch-button{background:var(--accent);width:100%;color:var(--accent-contrast);cursor:pointer;filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;margin-top:16px;padding:10px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.add-catch-buttons{flex-direction:column;gap:10px;margin-top:16px;display:flex}.add-catch-buttons .add-catch-button{margin-top:0}.add-catch-button--multi{color:var(--text-primary);filter:none;box-shadow:none;border:1px solid var(--accent);background:#ffffff1a}.catch-group-count{color:var(--accent)}.catch-group--open{background:0 0;padding:0;display:block}.catch-group-toggle{color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;padding:8px 12px}.catch-group-items{flex-direction:column;gap:8px;display:flex}.invite-friend-btn{margin-top:0;margin-bottom:16px}.catch-form{text-align:left;flex-direction:column;gap:8px;margin-top:16px;display:flex}.catch-form input,.catch-form select,.catch-form textarea{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:8px 10px;font-family:inherit}.catch-form-method-other-row{gap:8px;display:flex}.catch-form-method-other-row input{flex:1;min-width:0}.catch-form-method-back{width:38px;color:var(--text-primary);font-size:var(--text-lg);cursor:pointer;background:#ffffff1f;border:1px solid #ffffff40;border-radius:8px;flex-shrink:0;line-height:1}.catch-form-actions{gap:8px;margin-top:4px;display:flex}.catch-form-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:9px;font-weight:600}.catch-form-actions button[type=submit]{background:var(--accent);color:var(--accent-contrast);filter:brightness(1.45)saturate(1.15);box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.catch-form-actions button[type=submit]:active{box-shadow:0 2px 6px #0000004d,inset 0 0 0 1.5px #fff6}.catch-form>button[type=submit]{cursor:pointer;background:var(--accent);color:var(--accent-contrast);filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;padding:10px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.catch-form-cancel{color:var(--text-primary)!important;background:#ffffff29!important;border:1.5px solid #ffffff80!important}.catch-form-cancel:hover{background:#ffffff42!important}.profile-label{font-size:var(--text-base);color:var(--text-muted)}.profile-id-row{justify-content:center;align-items:center;gap:8px;margin:12px 0 4px;display:flex}.profile-id-row .pdx-id{font-size:var(--text-md)}.profile-id-row button{color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);background:#ffffff1f;border:1px solid #ffffff40;border-radius:6px;padding:4px 10px}.section-nav{background:#00000029;border:1px solid #ffffff24;border-radius:28px;gap:4px;width:100%;max-width:440px;margin-top:18px;margin-left:auto;margin-right:auto;padding:5px;display:flex}.section-nav-btn{color:var(--text-primary);cursor:pointer;font-size:var(--text-base);white-space:nowrap;background:#ffffff14;border:1px solid #ffffff2e;border-radius:20px;flex:1;justify-content:center;align-items:center;gap:3px;padding:9px 5px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.section-nav-btn:hover{background:#ffffff24}.section-nav-btn.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000;font-weight:600}.section-nav-icon{flex-shrink:0;width:auto;height:18px;display:block}.section-nav .section-nav-icon{height:15px}.monthly-challenge-nav-btn{color:#6b3a12;cursor:pointer;width:100%;max-width:440px;font-size:var(--text-base);white-space:nowrap;background:#f7cea0;border:1px solid #e0a35c;border-radius:20px;justify-content:center;align-items:center;gap:6px;margin:14px auto 0;padding:8px 10px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.monthly-challenge-nav-btn:hover{background:#f5bd83}.monthly-challenge-nav-btn.is-active{color:#fff6ec;background:#e07b2e;border-color:#b85e1c}.notif-bell-wrap{display:inline-flex;position:relative}.avatar-badge-wrap{flex-shrink:0;display:inline-flex;position:relative}.invitations-badge,.count-badge{background:var(--danger);color:#fff;font-size:var(--text-2xs);border-radius:8px;padding:0 5px;font-weight:700;position:absolute;top:-6px;right:-6px}.invitation-list{text-align:left;flex-direction:column;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:flex}.invitation-item{font-size:var(--text-base);background:#ffffff14;border-radius:8px;padding:10px 12px}.invitation-actions{gap:8px;margin-top:8px;display:flex}.invitation-actions button{cursor:pointer;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:8px;flex:1;padding:7px;font-weight:600}.invitation-actions button:not(.catch-form-cancel){filter:brightness(1.45)saturate(1.15);box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.group-switcher{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:1000px;margin:0 auto 16px;display:flex}.group-pill{color:var(--text-primary);cursor:pointer;font-size:var(--text-base);background:#ffffff14;border:1px solid #ffffff2e;border-radius:20px;padding:6px 14px;position:relative}.group-pill:hover{background:#ffffff24}.group-pill.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000;font-weight:600}.group-pill--new{border-style:dashed}.group-create-form{align-items:center;gap:6px;display:flex}.group-create-form input{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:6px 10px}.group-create-form button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;padding:6px 10px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.group-title-block{flex-direction:column;align-items:center;gap:8px;margin-bottom:12px;display:flex}.group-avatar{cursor:pointer;border:2px solid #ffffff59}.group-avatar-wrap{display:inline-flex;position:relative}.group-avatar-edit-btn{background:var(--accent,#2b6f7f);color:#fff;border:2px solid var(--panel,#123363);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:11px;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px}.group-title{text-align:center;justify-content:center;align-items:center;gap:8px;margin:0;display:flex}.group-rename-btn{color:inherit;opacity:.7;cursor:pointer;font-size:var(--text-md);background:0 0;border:none;padding:8px;line-height:1}.group-rename-form{justify-content:center;gap:6px;margin-bottom:12px;display:flex}.group-rename-form input{font-size:var(--text-md);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:6px 10px}.group-rename-form button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:8px;padding:6px 10px}.group-rename-form button:not(.catch-form-cancel){filter:brightness(1.45)saturate(1.15);box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.group-tabs{border-bottom:1px solid #ffffff26;flex-wrap:wrap;justify-content:center;gap:4px;max-width:420px;margin-bottom:16px;margin-left:auto;margin-right:auto;display:flex}.group-tab-btn{color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;opacity:.85;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;margin-bottom:-1px;padding:8px 10px;display:inline-flex;position:relative}.group-tab-icon{opacity:.85;width:auto;height:14px}.group-tab-btn.is-active{color:var(--text-primary);border-bottom-color:var(--accent);opacity:1;font-weight:700}.group-tab-btn.is-active .group-tab-icon{opacity:1}.group-members{max-width:420px;margin:0 auto}.member-list{flex-direction:column;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.member-item{font-size:var(--text-base);background:#ffffff14;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.member-item--clickable{cursor:pointer}.member-avatar{width:28px;height:28px;font-size:var(--text-sm);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.member-avatar--sm{width:20px;height:20px;font-size:var(--text-2xs)}.member-avatar.avatar-frame-green{border:3px solid #3ecf8e;box-shadow:0 0 0 3px #3ecf8e40,0 0 14px #3ecf8e59}.member-avatar.avatar-frame-blue{border:3px solid #4fa8dc;box-shadow:0 0 0 3px #4fa8dc40,0 0 14px #4fa8dc59}.member-avatar.avatar-frame-purple{border:3px solid #a866dc;box-shadow:0 0 0 3px #a866dc40,0 0 14px #a866dc59}.member-avatar.avatar-frame-gold{border:3px solid #e8b93e;animation:2.2s ease-in-out infinite avatar-frame-gold-pulse}@keyframes avatar-frame-gold-pulse{0%,to{box-shadow:0 0 0 3px #e8b93e4d,0 0 10px #e8b93e66}50%{box-shadow:0 0 0 3px #e8b93e80,0 0 20px #e8b93eb3}}@media (prefers-reduced-motion:reduce){.member-avatar.avatar-frame-gold{animation:none;box-shadow:0 0 0 3px #e8b93e66,0 0 14px #e8b93e80}}.avatar-illustrated-frame-wrap{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.avatar-illustrated-frame-img{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.member-pseudo{flex:1;align-items:center;gap:6px;display:flex}.member-pseudo--compact{white-space:nowrap;flex:none}.conversation-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--text-muted);flex:1;align-items:center;gap:4px;display:inline-flex;overflow:hidden}.conversation-preview.is-unread{color:var(--text-primary);font-weight:700}.conversation-preview.is-read{opacity:.65;font-weight:400}.preview-check{color:#7fd8ff;flex-shrink:0}.member-name-col{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.member-name-col--compact{flex:none}.member-pseudo-row{align-items:center;gap:6px;min-width:0;display:flex}.name-level-tag{font-size:var(--text-xs);opacity:.75;white-space:nowrap;font-weight:600}.name-title-tag{font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;max-width:140px;font-weight:700;overflow:hidden}.chef-badge,.catalog-count-badge{font-size:var(--text-2xs);text-transform:uppercase;background:#fff3;border-radius:8px;padding:1px 6px}.member-remove{color:#ffb3b3;font-size:var(--text-xs);cursor:pointer;background:#ffb3b31f;border:1px solid #ffb3b359;border-radius:8px;padding:8px 12px}.friend-remove-btn{font-size:var(--text-base);flex-shrink:0;margin-left:auto;padding:2px 6px}.share-dex-link-preview{color:var(--accent);word-break:break-all;font-size:var(--text-sm)}.share-dex-revoke{color:var(--text-muted,inherit);opacity:.85;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin:18px auto 0;padding:6px 8px;text-decoration:underline;display:block}.share-send-btn{background:var(--accent);color:var(--accent-contrast);cursor:pointer;font-weight:600;font-size:var(--text-base);filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;padding:6px 14px;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.share-send-btn.is-sent{color:var(--text-primary);cursor:default;background:#ffffff26}.share-dex-icon-btn{cursor:pointer;width:40px;height:40px;font-size:var(--text-base);background:#ffffff1a;border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;padding:0;line-height:1}.share-dex-actions-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.share-dex-actions-row .add-friend-btn{margin-bottom:0}.add-friend-btn{background:var(--accent);color:var(--accent-contrast);cursor:pointer;font-weight:600;font-size:var(--text-base);filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;margin-bottom:10px;padding:8px 14px;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.invite-form{gap:8px;margin-top:14px;margin-bottom:6px;display:flex}.invite-form input{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;flex:1;padding:8px 10px}.invite-form button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;filter:brightness(1.45)saturate(1.15);border:none;border-radius:8px;padding:8px 14px;font-weight:600;box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.leave-group-button{width:100%;color:var(--text-primary);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;margin-top:16px;padding:9px}.dissolve-group-button{color:#ffb3b3;border-color:#d6454559;margin-top:8px}.block-user-btn{color:#ffb3b3;cursor:pointer;background:#d645451f;border:1px solid #d6454559;border-radius:8px;width:100%;margin-top:14px;padding:9px;font-weight:600}.catch-attribution{margin-bottom:2px}.catch-attribution-badge{font-size:var(--text-xs);opacity:.9;align-items:center;gap:5px;display:inline-flex}.group-chat{flex-direction:column;max-width:480px;height:60vh;margin:0 auto;display:flex}.chat-modal{text-align:left;max-width:480px}.chat-modal-header{font-size:var(--text-md);align-items:center;gap:8px;margin-bottom:14px;display:flex}.chat-modal-header--clickable{cursor:pointer;width:fit-content}.chat-seen{font-size:var(--text-2xs);opacity:.7;text-align:right;margin:2px 0 0}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:4px;display:flex;overflow-y:auto}.chat-message{align-items:flex-start;gap:8px;display:flex}.chat-message.is-own{flex-direction:row-reverse}.chat-bubble{max-width:75%;font-size:var(--text-base);background:#ffffff1a;border-radius:10px;padding:6px 10px}.chat-message.is-own .chat-bubble{background:var(--accent);color:var(--accent-contrast)}.chat-bubble p{white-space:pre-line;overflow-wrap:anywhere;margin:2px 0 0}.chat-bubble p a{color:inherit;text-decoration:underline}.chat-photo{object-fit:cover;border-radius:8px;max-width:160px;max-height:160px;margin-top:4px;display:block}.chat-bubble-meta{font-size:var(--text-2xs);opacity:.8;gap:6px;display:flex}.chat-reply-quote{text-align:left;width:100%;color:inherit;font:inherit;font-size:var(--text-2xs);cursor:pointer;opacity:.9;background:#ffffff1a;border:none;border-left:3px solid;border-radius:4px;margin-bottom:4px;padding:3px 8px;line-height:1.35;display:block}.chat-reply-quote:disabled{cursor:default}.chat-message.is-own .chat-reply-quote{background:#00000024}.chat-reply-quote-author{font-weight:700;display:block}.chat-reply-quote-text{text-overflow:ellipsis;white-space:nowrap;opacity:.85;display:block;overflow:hidden}.chat-reply-action{color:inherit;font:inherit;font-size:var(--text-2xs);cursor:pointer;background:#ffffff1f;border:1px solid #ffffff40;border-radius:999px;align-self:flex-start;margin-top:4px;padding:2px 10px;font-weight:700}.chat-reply-bar{border-left:3px solid var(--accent);font-size:var(--text-2xs);background:#ffffff14;border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:6px 10px;display:flex}.chat-reply-bar-label{white-space:nowrap;opacity:.85;font-weight:700}.chat-reply-quote--bar{cursor:default;opacity:.8;background:0 0;border:none;flex:1;min-width:0;margin:0;padding:0}.chat-reply-bar-cancel{width:22px;height:22px;color:inherit;cursor:pointer;background:#ffffff24;border:none;border-radius:50%;flex-shrink:0;font-size:1rem;line-height:1}.chat-input-row{gap:8px;margin-top:10px;display:flex}.chat-input-row input{min-width:0;font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;flex:1;padding:10px 12px}.chat-input-row button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:10px 16px;font-weight:600}.chat-input-row button:not(.chat-photo-btn):not(.chat-gif-btn){filter:brightness(1.45)saturate(1.15);box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.chat-photo-btn{color:inherit!important;background:#ffffff1f!important;padding:10px 12px!important}.chat-gif-btn{letter-spacing:.02em;color:inherit!important;font-size:var(--text-xs)!important;background:#ffffff1f!important;padding:10px!important;font-weight:800!important}.gif-picker{max-width:420px}.gif-search-input{width:100%;font-size:var(--text-md);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;margin:12px 0;padding:10px 12px}.gif-grid{grid-template-columns:repeat(2,1fr);gap:6px;max-height:60vh;display:grid;overflow-y:auto}.gif-grid-item{cursor:pointer;background:#ffffff14;border:none;border-radius:8px;align-items:center;padding:0;display:flex;overflow:hidden}.gif-grid-item img{width:100%;height:auto;display:block}.species-picker{flex-direction:column;max-width:420px;max-height:80vh;display:flex}.friend-dex-view{text-align:left;max-width:480px;max-height:88vh;overflow-y:auto}.friend-dex-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.friend-dex-header h2{font-size:var(--text-lg);margin:0}.species-picker-search{width:100%;font-size:var(--text-md);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;margin:12px 0;padding:10px 12px}.species-picker-list{flex-direction:column;gap:4px;max-height:55vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.species-picker-item{width:100%;color:inherit;cursor:pointer;font-size:var(--text-base);text-align:left;background:#ffffff0f;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;display:flex}.species-picker-item:hover{background:#ffffff24}.species-picker-item.is-selected{background:var(--accent);color:var(--accent-contrast);border-color:#0000;font-weight:700}.photo-album-species-btn{width:100%;color:inherit;cursor:pointer;font-size:var(--text-xs);text-align:left;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:6px;margin-top:6px;padding:6px 8px;font-weight:600;display:flex}.photo-album-species-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.inbox-tab{text-align:left;margin-top:16px}.reactions-row{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:6px;min-height:26px;margin-top:6px;display:flex}.reaction-pill{font-size:var(--text-base);cursor:pointer;color:inherit;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;align-items:center;gap:3px;padding:2px 8px;display:inline-flex}.reaction-pill.is-mine{background:var(--accent);border-color:#0000}.reaction-count{font-size:var(--text-xs);font-weight:700}.reaction-pill-wrap{display:inline-flex;position:relative}.reaction-who-popup{color:var(--text-primary);font-size:var(--text-xs);white-space:nowrap;z-index:20;background:#0a1e37f7;border:1px solid #ffffff40;border-radius:8px;padding:6px 10px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.activity-feed{flex-direction:column;gap:10px;max-width:560px;margin:0 auto;padding:0;list-style:none;display:flex}.activity-item{background:#ffffff14;border:1px solid #ffffff26;border-radius:12px;gap:12px;padding:12px;display:flex}.activity-thumb{flex-shrink:0;justify-content:center;align-items:center;display:flex}.activity-body{text-align:left;flex:1}.activity-headline{font-size:var(--text-base);align-items:center;gap:6px;margin:0;display:flex}.activity-sentence{flex:1;min-width:0}.activity-meta{font-size:var(--text-xs);opacity:.8;margin:4px 0 0}.dex-overall-progress{max-width:500px;font-size:var(--text-base);align-items:center;gap:10px;margin:0 auto 14px;font-weight:600;display:flex}.catalog-bar{max-width:1000px;margin:0 auto 12px;position:relative}.catalog-bar-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.catalog-bar-row>.catalog-picker{flex:220px}.catalog-bar-row>.catalog-picker>.catalog-picker-trigger{width:100%}.catalog-picker-trigger{color:#14202b;font-size:var(--text-base);cursor:pointer;background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:8px;min-width:160px;padding:8px 10px;display:inline-flex}.catalog-picker-trigger-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.catalog-picker-chevron{font-size:var(--text-2xs);opacity:.6}.catalog-picker-dot{border-radius:999px;width:10px;min-width:10px;height:10px}.catalog-picker-dot.is-france{background:#e8b93e;box-shadow:0 0 0 2px #e8b93e40}.catalog-picker-dot.is-country{background:#a866dc;box-shadow:0 0 0 2px #a866dc40}.catalog-picker-dot.is-region{background:#4fa8dc;box-shadow:0 0 0 2px #4fa8dc40}.catalog-picker-dot.is-user{background:#3ecf8e;box-shadow:0 0 0 2px #3ecf8e40}.catalog-picker-menu{z-index:20;background:#12283a;border:1px solid #fff3;border-radius:10px;flex-direction:column;gap:2px;min-width:260px;max-width:calc(100vw - 24px);max-height:320px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:50%;overflow:hidden auto;transform:translate(-50%);box-shadow:0 10px 28px #0006}.catalog-picker-group{border-top:1px solid #ffffff1f;flex-direction:column;gap:2px;margin-top:4px;padding-top:6px;display:flex}.catalog-picker-group-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:2px 8px 4px}.catalog-picker-option{width:100%;color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px;display:flex}.catalog-picker-option-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.catalog-picker-count{font-size:var(--text-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.catalog-picker-option:hover{background:#ffffff1a}.catalog-picker-submenu{border-left:1px solid #ffffff1f;flex-direction:column;gap:2px;margin-left:14px;padding-left:8px;display:flex}.catalog-picker-option.is-selected{background:#ffffff29;font-weight:600}.catalog-picker-option.is-add-dex{color:#3ecf8e;border:1px dashed #ffffff4d;font-weight:600}.catalog-picker-option.is-add-dex:hover{background:#ffffff14}.completion-star{color:var(--text-muted);font-size:var(--text-base);line-height:1}.completion-star.is-complete{color:#f4d54a;text-shadow:0 0 6px #f4d54a80}.catalog-manage-btn{color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:6px;margin-top:8px;padding:8px 12px;display:inline-flex}.catalog-form-actions{justify-content:center;gap:10px;margin-top:4px;display:flex}.catalog-form-actions button{font-weight:600;font-size:var(--text-base);cursor:pointer;border:none;border-radius:8px;padding:9px 18px}.catalog-form-actions button:not(.catch-form-cancel){background:var(--accent);color:var(--accent-contrast);filter:brightness(1.45)saturate(1.15);box-shadow:0 4px 14px #00000059,inset 0 0 0 1.5px #fff6}.catalog-form-actions button:not(.catch-form-cancel):active{box-shadow:0 2px 6px #0000004d,inset 0 0 0 1.5px #fff6}.catalog-form-actions button:disabled{opacity:.5;cursor:not-allowed}.confirm-dialog{text-align:center;max-width:380px}.catch-scope-dialog{text-align:left;max-width:380px}.catch-scope-dialog h2{text-align:center}.catch-scope-add-personal{background:#ffffff1f;border-radius:8px;margin:10px 0;padding:10px;font-weight:600}.catch-scope-delete-btn{width:100%;margin-top:10px}.catch-form-scope-block{border-top:1px solid #ffffff26;flex-direction:column;gap:6px;margin-top:8px;padding-top:12px;display:flex}.chat-photo-picker{text-align:center;max-width:380px}.confirm-danger-btn{background:var(--danger)!important;color:#fff!important}.catalog-progress-bar{background:#ffffff26;border-radius:4px;flex:1;height:8px;overflow:hidden}.catalog-progress-fill{background:var(--accent);height:100%;transition:width .3s}.catalog-manager{max-width:440px}.catalog-manager h2{align-items:center;gap:8px;display:flex}.species-checklist{max-height:220px;font-size:var(--text-base);background:#ffffff0f;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex;overflow-y:auto}.catalog-manager .member-item{flex-wrap:wrap}.catalog-item-actions{flex-wrap:wrap;gap:6px;display:flex}.catalog-item-actions button{color:inherit;cursor:pointer;font-size:var(--text-xs);background:#ffffff1f;border:1px solid #ffffff40;border-radius:6px;padding:4px 10px}.species-checklist-item{cursor:pointer;align-items:center;gap:8px;display:flex}.species-checklist-group{flex-direction:column;gap:4px;display:flex}.species-checklist-group+.species-checklist-group{border-top:1px dashed #ffffff1f;margin-top:6px;padding-top:6px}.species-checklist-group .catalog-picker-group-label{padding:2px 0}.notif-settings{text-align:left;margin-top:20px}.notif-settings h3{font-size:var(--text-md);margin:0 0 8px}.notif-toggle{font-size:var(--text-base);cursor:pointer;align-items:center;gap:8px;margin-bottom:6px;display:flex}.auth-cgu-label{text-align:left;align-items:flex-start}.auth-cgu-label input{flex-shrink:0;margin-top:3px}.notif-toggle--master{border-bottom:1px solid #ffffff26;margin-bottom:8px;padding-bottom:8px;font-weight:700}.notif-subgroup{border-left:2px solid #ffffff1f;margin-bottom:8px;padding-left:18px;transition:opacity .15s}.notif-subgroup.is-disabled{opacity:.4;pointer-events:none}.xp-info-text{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 10px;line-height:1.4}.catalog-manage-btn+.xp-info-text{margin-top:12px}.follow-links{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.follow-link{color:var(--text-primary);font-size:var(--text-sm);white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-weight:600;text-decoration:none;display:inline-flex}.follow-link.is-soon{color:var(--text-muted);cursor:default;border-color:#ffffff21}.follow-soon-badge{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.02em;background:#ffffff24;border-radius:999px;padding:2px 7px;font-weight:700}.xp-info-list{flex-direction:column;gap:8px;margin:0 0 10px;padding:0;list-style:none;display:flex}.xp-info-list li{justify-content:space-between;align-items:center;gap:10px;display:flex}.xp-info-value{font-size:var(--text-sm);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.notif-inbox-open-btn{margin-top:6px;margin-bottom:14px}.profile-avatar{cursor:pointer;border:2px solid #ffffff59;margin:0 auto}.avatar-illustrated-frame-wrap.profile-avatar{border:none}.user-profile-name{text-align:center;margin:10px 0 4px}.profile-modal h2{margin-bottom:12px}.profile-modal .group-avatar-wrap{margin-bottom:10px}.user-profile-title{justify-content:center;margin-bottom:8px;display:flex}.avatar-picker-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px;max-height:320px;margin-top:14px;display:grid;overflow-y:auto}.avatar-picker-item{cursor:pointer;background:#ffffff14;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:6px;display:flex}.avatar-picker-item img{object-fit:contain;width:100%;height:44px}.avatar-picker-item.is-selected{border-color:var(--accent);background:#ffffff29}.photo-id-section{text-align:center;max-width:560px;margin:0 auto}.photo-file-input{display:none}.photo-identify-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.photo-result-img{object-fit:cover;border-radius:8px;max-width:100%;max-height:260px;margin-bottom:10px}.poisson-scan-entry-btn{margin-bottom:18px;font-weight:700}.poisson-scan-secondary-btn{font-size:var(--text-sm);text-underline-offset:3px;margin-top:4px;font-weight:600;text-decoration:underline;box-shadow:none!important;color:var(--text-muted)!important;background:0 0!important;border:none!important;padding:6px 8px!important}.poisson-scan-secondary-btn:hover{color:var(--text-primary)!important;background:0 0!important}.poisson-scan-analyzing{text-align:center}.poisson-scan-scanner{border-radius:8px;max-width:100%;line-height:0;display:inline-block;position:relative;overflow:hidden}.poisson-scan-scanner:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(66% 50% at 50% 49%,#0000 60%,#050c166b 100%);position:absolute;inset:0}.poisson-scan-scanner img{border-radius:8px;max-width:100%;max-height:260px;display:block}.poisson-scan-scanner:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(#82e1ff00 0%,#82e1ff1f 55%,#a5f0ff80 90%,#dcfafff2 100%);height:45%;animation:1.9s ease-in-out infinite poisson-scan-sweep;position:absolute;top:-45%;left:0;right:0;box-shadow:0 0 20px 5px #8ce6ff73}@keyframes poisson-scan-sweep{0%{top:-46%}to{top:100%}}.poisson-scan-edges{z-index:3;object-fit:fill;pointer-events:none;filter:drop-shadow(0 0 3px #96e8ffbf);width:100%;height:100%;animation:1.9s ease-in-out infinite poisson-scan-edges-reveal;position:absolute;inset:0}@keyframes poisson-scan-edges-reveal{0%{opacity:0}45%{opacity:.92}72%{opacity:.92}to{opacity:0}}.poisson-scan-lockbox{z-index:4;border:2px solid #bef4fff5;border-radius:6px;animation:.55s cubic-bezier(.2,.9,.3,1) both poisson-scan-lock;position:absolute;box-shadow:0 0 16px 2px #8ce6ff8c,inset 0 0 12px #8ce6ff38}@keyframes poisson-scan-lock{0%{opacity:0;transform:scale(1.16)}60%{opacity:1}to{opacity:1;transform:scale(1)}}.poisson-scan-analyzing-text{font-weight:600}.poisson-scan-analyzing-text:after{content:"";animation:1.4s steps(4,end) infinite poisson-scan-dots}@keyframes poisson-scan-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.poisson-scan-result-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.poisson-scan-confidence-tag{font-size:var(--text-xs);opacity:.8;white-space:nowrap}.poisson-scan-quota{opacity:.75;font-weight:600}.poisson-scan-quota--low{color:#d98324;opacity:1}.poisson-scan-quota--out{color:var(--danger);opacity:1}.poisson-scan-why{font-size:var(--text-xs);margin:6px 0 2px}.poisson-scan-why>summary{cursor:pointer;color:var(--accent);font-weight:600;list-style:none}.poisson-scan-why>summary::-webkit-details-marker{display:none}.poisson-scan-why>summary:before{content:"▸ "}.poisson-scan-why[open]>summary:before{content:"▾ "}.poisson-scan-why>p{opacity:.85;margin:6px 0 0;line-height:1.5}@media (prefers-reduced-motion:reduce){.poisson-scan-analyzing-text:after,.poisson-scan-scanner:before,.poisson-scan-lockbox{animation:none}.poisson-scan-edges{opacity:.85;animation:none}.voice-catch-mic--active{animation:none}}.voice-catch-listening{text-align:center;padding:12px 0 4px}.voice-catch-mic{margin-bottom:10px;font-size:48px;line-height:1}.voice-catch-mic--active{animation:1.4s ease-in-out infinite voice-catch-pulse}@keyframes voice-catch-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.voice-catch-live-transcript{opacity:.85;min-height:1.4em;margin-top:10px;font-style:italic}.voice-catch-interim{opacity:.6}.voice-catch-heard{font-size:var(--text-sm);opacity:.85;margin:4px 0 12px;font-style:italic}.voice-catch-confirm-hint{font-size:var(--text-xs);opacity:.85;text-align:left;background:#ffffff0f;border-radius:8px;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;display:flex}.voice-catch-confirm-hint .voice-catch-mic{flex-shrink:0;margin-bottom:0;font-size:20px}.photo-album-sort{font-size:var(--text-base);justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.photo-album-sort select{color:#1a1a1a;background:#fff;border:1px solid #ffffff40;border-radius:6px;padding:4px 8px}.photo-album-sort select option{color:#1a1a1a;background:#fff}.photo-album-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:12px;display:grid}.photo-album-item{font-size:var(--text-sm);background:#ffffff14;border-radius:10px;padding:8px}.photo-album-item>img{object-fit:cover;border-radius:6px;width:100%;height:90px;margin-bottom:6px}.photo-album-date{font-size:var(--text-xs);opacity:.7;margin-bottom:4px;display:block}.photo-album-item button{width:100%;color:inherit;cursor:pointer;font-size:var(--text-xs);background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;margin-top:6px;padding:6px;font-weight:600}.photo-album-item button:disabled{opacity:.6;cursor:default}.photo-album-primary{background:var(--accent)!important;color:var(--accent-contrast)!important;border-color:#0000!important}.photo-album-view-dex{filter:brightness(1.45)saturate(1.15);font-weight:700;box-shadow:0 2px 8px #0000004d,inset 0 0 0 1.5px #fff6;background:var(--accent)!important;color:var(--accent-contrast)!important;border-color:#0000!important}.photo-album-delete{color:#ffb3b3!important;background:#d6454526!important;border-color:#d6454559!important}.share-section-title{font-size:var(--text-base);text-align:left;margin:14px 0 6px}.group-qr-section{border-top:1px solid #ffffff26;margin-top:18px;padding-top:14px}.group-qr-generate-btn{width:100%;margin-bottom:10px;display:block}.group-qr-code{justify-content:center;margin:10px 0;display:flex}.group-qr-code img{background:#fff;border-radius:10px;width:160px;height:160px;padding:8px}.group-qr-code-text{text-align:center;font-size:var(--text-lg);letter-spacing:3px;margin:0 0 10px;font-weight:700}.catalog-active-heading{flex-direction:column;align-items:center;gap:2px;max-width:fit-content;margin:4px auto 16px;display:flex}.catalog-hierarchy-hint{text-align:center;max-width:420px;font-size:var(--text-xs);opacity:.85;background:#ffffff0f;border-radius:8px;margin:0 auto 16px;padding:8px 14px;line-height:1.45}.voice-catch-fab{z-index:8;background:linear-gradient(180deg, #ffffff38, #ffffff14), var(--accent);width:56px;height:56px;color:var(--accent-contrast);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:1px solid #ffffff4d;border-radius:50%;font-size:24px;line-height:1;position:fixed;bottom:22px;right:18px;box-shadow:0 6px 18px #00000059}.voice-catch-fab.is-dragging{z-index:9;cursor:grabbing;transform:scale(1.12);box-shadow:0 10px 26px #00000080}.voice-catch-remove-zone{z-index:8;color:#fff;pointer-events:none;background:#0000008c;border:2px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-left:-32px;transition:transform .15s,background .15s;display:flex;position:fixed;bottom:24px;left:50%}.voice-catch-remove-zone.is-active{background:var(--danger,#d64545);border-color:#fff;transform:scale(1.25)}.voice-catch-remove-x{font-size:24px;line-height:1}.voice-catch-remove-label{text-align:center;width:220px;font-size:var(--text-xs);text-shadow:0 1px 4px #000c;margin-left:-110px;position:absolute;bottom:74px;left:50%}body:has(.fish-detail-overlay) .voice-catch-fab{display:none}.catalog-active-heading-eyebrow{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);opacity:.85;font-weight:700}.catalog-active-heading-main{font-size:var(--text-lg);background:linear-gradient(#ffffff29,#ffffff0f);border:1.5px solid #ffffff59;border-radius:14px;align-items:center;gap:10px;margin:0;padding:9px 20px;font-weight:800;display:flex;box-shadow:0 4px 16px #0000004d,inset 0 1px #ffffff40}.catalog-active-heading-main.is-clickable{cursor:pointer}.catalog-active-heading-main.is-country{color:#a866dc}.catalog-active-heading-main.is-region{color:#4fa8dc}.catalog-active-heading-main.is-user{color:#3ecf8e}.catalog-active-heading-main.is-france{color:#e8b93e}.catalog-icon{color:#fff;filter:drop-shadow(0 0 3px #ffffff59);width:22px;min-width:22px;height:22px}.title-badge{width:fit-content;font-size:var(--text-base);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:999px;margin:4px auto 0;padding:4px 14px;font-weight:700;display:flex}.title-badge--static{cursor:default;opacity:.9}.title-badge-edit-icon{opacity:.75;margin-left:6px;font-size:.85em}.title-badge.title-rainbow,.title-badge.title-gold-sparkle,.title-badge.title-divine,.title-badge.title-der{text-align:center;display:block}.title-rainbow,.title-gold-sparkle,.title-divine,.title-der{-webkit-text-fill-color:transparent;display:inline-block;color:#0000!important;-webkit-background-clip:text!important;background-clip:text!important}.title-rainbow{filter:drop-shadow(0 0 6px #ffffff8c);animation:6s linear infinite title-rainbow-shift;background-image:linear-gradient(90deg,#ff8a8a,#ffcf8a,#fff08a,#9ee9bb,#8ac4e8,#c3a3e8,#ff8a8a)!important;background-size:200%!important}@keyframes title-rainbow-shift{0%{background-position:0%}to{background-position:200%}}.title-gold-sparkle{filter:drop-shadow(0 0 6px #e8b93ea6);animation:10s linear infinite title-gold-shine;background-image:linear-gradient(100deg,#8a6a1e 0%,#ffe9a8 20%,#e8b93e 40%,#fff6d9 50%,#e8b93e 60%,#ffe9a8 80%,#8a6a1e 100%)!important;background-size:250%!important}@keyframes title-gold-shine{0%{background-position:0%}to{background-position:250%}}.title-divine{filter:drop-shadow(0 0 5px #ffffffe6)drop-shadow(0 0 12px #96c8ff80);animation:9s linear infinite title-divine-shimmer;background-image:linear-gradient(105deg,#fff 0%,#bfe4ff 12%,#fff 26%,#c7ffe4 40%,#fff 52%,#ffd6ec 66%,#fff 80%,#d7e6ff 100%)!important;background-size:300%!important}@keyframes title-divine-shimmer{0%{background-position:0%}to{background-position:300%}}.title-der{filter:drop-shadow(0 0 5px #7ec8f099);animation:9s linear infinite title-der-fade;background-image:linear-gradient(100deg,#12395f 0%,#2f6fa8 25%,#7ec8f0 42%,#fff 50%,#7ec8f0 58%,#2f6fa8 75%,#12395f 100%)!important;background-size:200%!important}@keyframes title-der-fade{0%{background-position:0%}to{background-position:200%}}@media (prefers-reduced-motion:reduce){.title-rainbow,.title-gold-sparkle,.title-divine,.title-der{animation:none}}.level-block{max-width:320px;margin:10px auto 16px}.level-label{font-size:var(--text-base);margin:0 0 4px;font-weight:600}.level-info-btn{color:var(--text-muted);font-size:var(--text-base);cursor:pointer;vertical-align:middle;background:0 0;border:none;padding:0 0 0 6px;line-height:1}.level-info-btn:hover{color:var(--text-primary)}.xp-info-inline{text-align:left;background:#ffffff0f;border-radius:10px;margin-top:10px;padding:12px 14px}.title-list{text-align:left;flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.title-option{text-align:left;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:8px;width:100%;padding:8px 12px;font-weight:600}.title-option.is-active{border-color:var(--title-color,var(--accent));background:#ffffff26}.title-list-separator{letter-spacing:.08em;text-transform:uppercase;opacity:.6;border-top:1px solid #ffffff2e;margin:10px 0 2px;padding-top:10px;font-size:.72rem;font-weight:700}.title-option--locked{opacity:.45;font-weight:400}.list-divider{border:none;border-top:1px solid #ffffff26;margin:4px 0}.title-option--locked.title-rainbow,.title-option--locked.title-gold-sparkle,.title-option--locked.title-divine,.title-option--locked.title-der{opacity:.85}.frame-list{text-align:left;flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.frame-option{text-align:left;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:10px;align-items:center;gap:12px;width:100%;padding:8px 12px;display:flex}.frame-option.is-active{border-color:var(--accent);background:#ffffff26}.frame-option--locked{opacity:.55;cursor:default}.frame-option-name{flex:1;font-weight:600}.frame-option-status{font-size:var(--text-xs);color:var(--text-muted)}.title-hint{font-size:var(--text-sm);opacity:.8;margin:4px 0 0 12px}.title-clear-btn{width:100%;margin-top:14px}.catch-history-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.catch-history-header h3{margin:0}.catch-sort{font-size:var(--text-xs);padding:4px 6px}.leaderboard-panel{max-width:420px;margin:0 auto}.leaderboard-list{text-align:left;flex-direction:column;gap:6px;margin:16px 0 0;padding:0;list-style:none;display:flex}.leaderboard-item{font-size:var(--text-base);background:#ffffff14;border-radius:8px;align-items:center;gap:6px 10px;padding:8px 12px;display:flex}.leaderboard-sort{font-size:var(--text-base);justify-content:center;align-items:center;gap:8px;display:flex}.leaderboard-sort .dex-sort{text-overflow:ellipsis;white-space:nowrap;max-width:170px;overflow:hidden}.leaderboard-item.is-self{border:1px solid var(--accent);background:#ffffff26}.leaderboard-rank{opacity:.8;width:28px;font-weight:700}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.leaderboard-stats{text-align:right;white-space:nowrap;font-size:var(--text-sm);color:var(--accent);opacity:1;flex:none;margin-left:auto;font-weight:700}.catalog-picker-option.is-legendary{color:#f4d68a;background:#e8b93e1f;border-bottom:1px solid #e8b93e4d;border-radius:6px 6px 0 0;margin-bottom:4px;font-weight:600}.catalog-picker-option.is-legendary:hover{background:#e8b93e33}.legendary-card{border-color:#e8b93e59}.legendary-card.is-caught{background:#e8b93e1a;border-color:#e8b93e99}.legendary-star-badge{color:#e8b93e;font-size:var(--text-2xs);background:#050f1e8c;border:1px solid #e8b93e8c;border-radius:8px;padding:1px 6px;line-height:1.4;position:absolute;top:-6px;right:2px}.fish-detail-visual .legendary-star-badge--lg{font-size:var(--text-base);padding:2px 8px;top:58px;left:auto;right:8px}.legendary-xp-chip{color:#f4d68a;font-size:var(--text-xs);letter-spacing:.02em;background:#e8b93e2e;border:1px solid #e8b93e80;border-radius:999px;padding:2px 10px;font-weight:700;display:inline-block}.legendary-dex{background:var(--panel,#123363);text-align:center;border:1px solid #e8b93e66;border-radius:16px;width:100%;max-width:900px;padding:28px 20px;position:relative}.legendary-dex-title{color:#f4d68a;margin-bottom:4px}.legendary-dex-intro{max-width:560px;font-size:var(--text-sm);opacity:.9;margin:0 auto 14px}.legendary-dex-progress{color:#f4d68a;margin-bottom:16px;font-weight:700}.legendary-fish-detail{border-color:#e8b93e66}.legendary-add-catch-button{color:#2b1f00;background:#e8b93e}.legendary-section-label{text-align:center;margin-top:20px;margin-bottom:8px!important}.legendary-checklist{border-top:1px dashed #e8b93e59;margin-top:10px;padding-top:10px}.legendary-checklist .catalog-picker-group-label{color:#f4d68a;font-size:var(--text-xs)}.monthly-challenge-intro{text-align:center;max-width:560px;font-size:var(--text-sm);background:#e07b2e24;border:1px solid #e07b2e4d;border-radius:10px;margin:4px auto 16px;padding:10px 14px;line-height:1.45}.monthly-challenge-reg-reminder{text-align:center;max-width:560px;font-size:var(--text-xs);opacity:.7;margin:-8px auto 16px;padding:0 14px}.monthly-challenge-card{background:#ffffff0d;border:1px solid #ffffff24;border-radius:14px;max-width:700px;margin:0 auto 20px;padding:14px 16px}.monthly-challenge-card.is-current{border-color:#e07b2e80;box-shadow:0 0 0 1px #e07b2e40}.monthly-challenge-card.is-challenge-complete{border-color:#58bd798c;box-shadow:0 0 0 1px #58bd7940}.monthly-challenge-card.is-challenge-failed{border-color:#d954548c;box-shadow:0 0 0 1px #d9545440}.monthly-challenge-card.is-past{filter:grayscale(.6);opacity:.75}.monthly-challenge-card-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.monthly-challenge-number{font-weight:800;font-size:var(--text-lg);color:#e0a35c}.monthly-challenge-month{color:var(--text-muted);font-size:var(--text-sm);text-transform:capitalize}.monthly-challenge-completed-note{color:#f4d54a;margin:0 0 10px;font-weight:600}.monthly-challenge-grid{grid-template-columns:repeat(2,minmax(120px,150px));justify-content:center;gap:12px;display:grid}.monthly-challenge-grid .fish-card:nth-child(3){grid-column:1/-1;justify-self:center;width:100%;max-width:150px}.year-wrapped-open-btn{width:100%;max-width:320px;margin:4px auto 16px;display:block}.rarity-breakdown-open-btn{width:100%;margin:0 0 10px;display:block}.rarity-donut{border-radius:50%;width:160px;height:160px;margin:8px auto 16px;position:relative}.rarity-donut-hole{background:var(--panel,#123363);text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:22%}.rarity-donut-total{font-size:var(--text-xl);font-weight:700;line-height:1.1}.rarity-donut-total-label{font-size:var(--text-2xs);opacity:.75}.rarity-legend{text-align:left;flex-direction:column;gap:6px;max-width:320px;margin:0 auto 16px;padding:0;list-style:none;display:flex}.rarity-legend li{font-size:var(--text-sm);align-items:center;gap:8px;display:flex}.rarity-legend-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.rarity-legend-label{flex:1}.rarity-legend-value{opacity:.9;font-weight:700}.year-wrapped-year-nav{justify-content:center;align-items:center;gap:14px;margin-bottom:6px;display:flex}.year-wrapped-year-nav h2{margin:0}.year-nav-btn{width:34px;height:34px;color:inherit;font-size:var(--text-lg);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff40;border-radius:50%;line-height:1}.year-nav-btn:disabled{opacity:.35;cursor:default}.year-wrapped-stats{flex-direction:column;gap:12px;margin:18px 0;padding:0;list-style:none;display:flex}.year-wrapped-stats li{font-size:var(--text-sm);text-align:left;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.year-wrapped-stat-icon{font-size:var(--text-lg);flex-shrink:0}.year-wrapped-download-btn{width:100%;max-width:320px;margin:4px auto 0;display:block}.emoji{vertical-align:-.22em;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(.045em 0 #1b1b1b)drop-shadow(-.045em 0 #1b1b1b)drop-shadow(0 .045em #1b1b1b)drop-shadow(0 -.045em #1b1b1b);width:1.15em;height:1.15em;margin:0 .05em;display:inline-block}.year-wrapped-stats li:has(>.year-wrapped-top-body){align-items:flex-start}.year-wrapped-top-body{flex-direction:column;gap:6px;min-width:0;display:flex}.year-wrapped-sub{opacity:.8}.quick-actions-row{gap:10px;width:100%;max-width:320px;margin:4px auto 16px;display:flex}.quick-actions-row .add-friend-btn{min-width:0;font-size:var(--text-sm);flex:1;margin:0;padding-left:6px;padding-right:6px}.records-modal,.sessions-modal{text-align:left;width:100%;max-width:520px;max-height:88vh;overflow-y:auto}.records-modal h2,.sessions-modal h2{text-align:center;margin:0 0 6px}.records-intro{text-align:center;opacity:.8;font-size:var(--text-sm);margin:0 0 14px}.records-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.records-count{font-size:var(--text-sm);opacity:.85;margin:0 0 10px}.records-toolbar .records-count{margin:0}.records-list,.sessions-list,.session-catches{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.record-card,.session-card{background:#ffffff12;border:1px solid #ffffff26;border-radius:14px;padding:12px}.record-card-head{align-items:center;gap:12px;display:flex}.record-card-title{flex-direction:column;gap:2px;min-width:0;display:flex}.record-card-num{opacity:.65;font-size:var(--text-xs)}.record-card-size{font-weight:700;font-size:var(--text-md);align-items:center;gap:6px;display:inline-flex}.record-card-details{font-size:var(--text-sm);flex-direction:column;gap:4px;margin:10px 0 0;display:flex}.record-card-details>div{gap:8px;display:flex}.record-card-details dt{opacity:.7;min-width:64px}.record-card-details dd{margin:0}.record-card-photo{object-fit:cover;cursor:pointer;border-radius:10px;width:100%;max-height:220px;margin-top:10px;display:block}.record-card-foot{font-size:var(--text-xs);opacity:.9;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.session-card{padding:0;overflow:hidden}.session-card-head{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 34px 12px 12px;display:flex;position:relative}.session-card-date{font-weight:700}.session-card-date:first-letter{text-transform:uppercase}.session-card-summary,.session-card-places{font-size:var(--text-sm);opacity:.85}.session-card-chevron{opacity:.7;position:absolute;top:14px;right:12px}.session-catches{gap:10px;padding:0 12px 12px}.session-catch{border-top:1px solid #ffffff1f;gap:10px;padding-top:10px;display:flex}.session-catch-body{min-width:0;font-size:var(--text-sm);flex-direction:column;gap:3px;display:flex}.session-catch-line{opacity:.9}.offline-banner{z-index:900;color:#1b1b1b;font-size:var(--text-sm);text-align:center;background:#f0b429;justify-content:center;align-items:center;gap:10px;padding:8px 14px;font-weight:600;display:flex;position:sticky;top:0}.offline-banner--ok{color:#06210f;background:#38b26f}.offline-banner--error{color:#fff;background:#e5484d}.offline-banner-btn{color:inherit;cursor:pointer;background:#ffffff8c;border:1px solid #00000073;border-radius:8px;padding:4px 10px;font-weight:700}.catch-pending{font-size:var(--text-xs);color:#f0b429;margin:4px 0 0;font-weight:700}.ambient-volume{align-items:center;gap:10px;margin:2px 0 6px 30px;display:flex}.ambient-volume input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.ambient-volume.is-disabled{opacity:.45}.ambient-volume-value{text-align:right;min-width:38px;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.profile-actions{flex-direction:column;gap:10px;width:100%;max-width:320px;margin:8px auto 16px;display:flex}.profile-actions>.add-friend-btn{width:100%;margin:0}.profile-actions .quick-actions-row{max-width:none;margin:0}.fish-silhouette-img.is-pending{filter:brightness(0)saturate()invert(21%)sepia(96%)saturate(5600%)hue-rotate(352deg)brightness(92%)contrast(110%)}.fish-pending-hourglass{pointer-events:none;font-size:13px;line-height:1;position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%)}.fish-detail-hourglass{text-align:center;margin-top:4px;font-size:22px}.catch-scope-nested{margin-left:1.6rem}.activity-item{position:relative}.catch-time{opacity:.55;font-variant-numeric:tabular-nums;pointer-events:none;font-size:.68rem;line-height:1;position:absolute;top:6px;right:10px}.voice-catch-examples{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.profile-group-stats-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;display:flex}.profile-group-stats-row .dex-status{margin:0}.group-rules-section .share-section-title{text-align:center}.public-catch-card{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:12px;display:flex}.public-catch-photo{object-fit:cover;cursor:pointer;border-radius:16px;width:100%;max-width:420px;max-height:420px}.public-catch-illustration{object-fit:contain;width:100%;max-width:320px}.public-catch-species{margin:8px 0 0}.public-catch-size{font-size:var(--text-lg,1.3rem);align-items:center;gap:8px;margin:0;font-weight:700;display:inline-flex}.catch-share-icon{width:30px;height:30px;color:inherit;opacity:.8;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.catch-share-icon:hover,.catch-share-icon:focus-visible{opacity:1;background:#ffffff1f}.catch-item:not(.catch-item--editing)>:first-child{flex:auto;min-width:0}.catch-item-share{flex:none;align-self:center;display:flex}.new-address-banner-link{color:#fff3cf;white-space:nowrap;background:#3a2a06;border-radius:8px;flex-shrink:0;padding:6px 10px;font-weight:700;text-decoration:none}.share-catch-actions{flex-direction:column;align-items:center;gap:14px;margin:16px 0 8px;display:flex}.share-catch-actions .add-friend-btn{width:100%;max-width:320px;margin-bottom:0}.share-catch-actions{width:100%}.vivier-button{color:#fff;width:100%;max-width:320px;font-size:var(--text-base);letter-spacing:.2px;text-shadow:0 1px 3px #001e3c99;cursor:pointer;background:linear-gradient(135deg,#22c3dc 0%,#1a86d6 55%,#1a4fb0 100%);border:2px solid #fff9;border-radius:999px;justify-content:center;align-items:center;gap:10px;margin:4px auto 14px;padding:12px 18px;font-weight:800;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 18px #1482d28c,inset 0 0 0 1px #ffffff40,inset 0 -8px 14px #00285a59}.vivier-button:after{content:"";background:linear-gradient(100deg,#0000,#ffffff73,#0000);width:40%;animation:4.2s ease-in-out infinite vivier-button-shine;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-20deg)}.vivier-button-fish{animation:3s ease-in-out infinite vivier-button-swim;display:inline-flex}.vivier-button-arrow{opacity:.9;font-size:22px;line-height:1}@keyframes vivier-button-shine{0%,55%{left:-60%}to{left:130%}}@keyframes vivier-button-swim{0%,to{transform:translate(-3px)rotate(-6deg)}50%{transform:translate(3px)rotate(6deg)}}@media (prefers-reduced-motion:reduce){.vivier-button:after,.vivier-button-fish{animation:none}}.add-species-btn{border:2px dashed var(--accent);min-width:220px;color:var(--accent);font-weight:700;font-size:var(--text-base);cursor:pointer;filter:brightness(1.35)saturate(1.1);background:0 0;border-radius:12px;margin:18px auto 8px;padding:11px 22px;display:block}.add-species-btn:active{transform:scale(.97)}.missing-species-btn{min-width:220px;color:var(--text-muted);font-weight:600;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1.5px dashed #fff6;border-radius:12px;margin:22px auto 8px;padding:9px 18px;display:block}.missing-species-btn:active{transform:scale(.97)}.missing-species-field{box-sizing:border-box;resize:vertical;background:#fffffff2;border:1px solid #00000026;border-radius:10px;width:100%;margin:0 0 10px;padding:9px 12px;font-family:inherit;display:block}.missing-species-btn:focus-visible,.add-species-btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.fish-card.is-custom .custom-fish-photo{object-fit:cover;border-radius:10px;margin:0 auto;display:block}.custom-fish-art{color:#6f8ea6;opacity:.55;margin:0 auto;display:block}.custom-fish-art.is-caught{color:#7fd0ff;opacity:1}.fish-rarity--custom{color:#5eead4;background:#2dd4bf33}.custom-detail-visual{justify-content:center;margin:8px 0;display:flex}.custom-detail-photo{object-fit:cover;cursor:pointer;border-radius:14px;max-width:100%;max-height:220px}.custom-detail-badge-line{text-align:center;margin:0 0 6px}.custom-detail-catches-title{text-align:center}.custom-detail-best{opacity:.85;font-weight:500}.custom-field{font-size:var(--text-sm,.9rem);flex-direction:column;gap:4px;display:flex}.custom-delete-species{color:#ff9b9b;cursor:pointer;background:0 0;border:1px solid #ff7878b3;border-radius:10px;margin:18px auto 4px;padding:8px 16px;display:block}.custom-create-btn{margin-top:4px}.add-catch-button.custom-add-catch-button{color:#032b2a;filter:none;background:#2dd4bf}.species-picker-scroll{border-radius:12px;max-height:52vh;margin:4px 0 10px;padding:4px 2px;overflow-y:auto}.species-picker-grid{padding:2px}.fish-card.picker-tile{background:#4fa8dc33;border-color:#4fa8dc8c;padding:10px 6px 8px;position:relative}.fish-card.picker-tile:hover{background:#4fa8dc4d;transform:none}.fish-card.picker-tile.is-selected{background:#58bd794d;border-color:#58bd79f2}.fish-card.picker-tile.is-selected:hover{background:#58bd7961}.fish-card.picker-tile.is-locked{cursor:default}.fish-card.picker-tile .fish-name{font-size:.78rem}.picker-check{color:#fff;text-align:center;background:#58bd79;border-radius:50%;width:20px;height:20px;font-size:13px;font-weight:800;line-height:20px;position:absolute;top:-4px;right:-2px;box-shadow:0 1px 4px #0006}.fish-card,.chat-bubble,.activity-item,.catch-item,.title-option,.member-item,.notif-inbox-item,.photo-album-item,.catalog-picker-option,.confirm-dialog,.confirm-dialog *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.action-menu{text-align:center;max-width:340px}.action-menu,.action-menu *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.action-menu-title{font-size:var(--text-base);overflow-wrap:anywhere;margin:0 0 10px}.action-menu-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.action-menu-btn{width:100%;color:var(--text-primary);font-weight:600;font-size:var(--text-base);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:10px;padding:12px 14px}.action-menu-btn:active{transform:scale(.98)}.action-menu-btn.is-danger{color:#ff9b9b;border-color:#ff6e6ecc}.action-menu-cancel{width:100%}.confirm-dialog input,.confirm-dialog textarea,.rename-dialog input,.rename-dialog textarea{-webkit-user-select:text;user-select:text}.chat-deleted{opacity:.7;margin:0;font-style:italic}.chat-edited{opacity:.7;font-size:.75em;font-style:italic}.chat-msg-actions{flex-wrap:wrap;gap:4px 12px;margin-top:4px;display:flex}.chat-msg-actions .chat-reply-action{margin-top:0}.chat-msg-delete{color:#ff9b9b}.reg-feedback-link{color:inherit;opacity:.75;font:inherit;cursor:pointer;background:0 0;border:none;margin:8px auto 0;padding:2px 6px;font-size:.85em;text-decoration:underline;display:block}.reg-feedback-link:hover,.reg-feedback-link:focus-visible{opacity:1}.lure-stats{text-align:left;background:#ffffff12;border-radius:10px;margin:8px 0 10px;padding:8px 12px;font-size:.9em}.lure-stats ul{margin:4px 0 0;padding-left:18px}.stats-modal{text-align:left;width:100%;max-width:520px;max-height:88vh;overflow-y:auto}.stats-modal h2{text-align:center;margin:0 0 6px}.stats-sections{flex-direction:column;gap:12px;display:flex}.stats-tiles{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.stats-tile{text-align:center;background:#ffffff12;border:1px solid #ffffff26;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:84px;padding:10px 8px;display:flex}.stats-tile-value{font-size:var(--text-xl,1.6rem);color:#4fc3f7;font-weight:800;line-height:1.1}.stats-tile-value.is-small{font-size:var(--text-md,1.05rem)}.stats-tile-sub{font-size:var(--text-sm);opacity:.85}.stats-tile-label{font-size:var(--text-sm);opacity:.75}.stats-card{background:#ffffff12;border:1px solid #ffffff26;border-radius:14px;padding:12px}.stats-card h3{font-size:var(--text-md,1.05rem);text-align:left;margin:0 0 4px}.stats-card-sub{font-size:var(--text-sm);opacity:.75;margin:0 0 10px}.stats-bars{grid-template-columns:repeat(12,1fr);align-items:end;gap:4px;height:140px;display:grid}.stats-bar-col{flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.stats-bar-value{opacity:.9;min-height:12px;font-size:10px}.stats-bar{background:linear-gradient(#4fc3f7,#2f74ab);border-radius:5px 5px 2px 2px;width:100%;max-height:calc(100% - 28px);display:block}.stats-bar-label{opacity:.75;margin-top:4px;font-size:10px}.stats-calendar-months,.stats-calendar{gap:2px;display:grid}.stats-calendar-months{opacity:.75;margin-bottom:3px;font-size:9px;line-height:1}.stats-calendar-months span{white-space:nowrap;overflow:visible}.stats-calendar{grid-template-rows:repeat(7,auto);grid-auto-flow:column}.stats-cal-cell{aspect-ratio:1;background:#ffffff14;border-radius:2px;display:block}.stats-cal-cell.is-future{background:0 0}.stats-cal-cell.is-l1{background:#4fc3f74d}.stats-cal-cell.is-l2{background:#4fc3f78c}.stats-cal-cell.is-l3{background:#4fc3f7cc}.stats-cal-cell.is-l4{background:#4fc3f7}.stats-calendar-legend{opacity:.8;justify-content:flex-end;align-items:center;gap:3px;margin-top:8px;font-size:10px;display:flex}.stats-calendar-legend .stats-cal-cell{aspect-ratio:auto;width:11px;height:11px}.stats-barlist{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.stats-barlist li{font-size:var(--text-sm);grid-template-columns:minmax(70px,34%) 1fr auto;align-items:center;gap:8px;display:grid}.stats-barlist-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats-barlist-track{background:#ffffff1a;border-radius:6px;height:10px;display:block;overflow:hidden}.stats-barlist-fill{background:linear-gradient(90deg,#2f74ab,#4fc3f7);border-radius:6px;height:100%;display:block}.stats-barlist-count{text-align:right;min-width:18px;font-weight:700}.stats-species-select{width:100%;margin:6px 0 8px}.stats-record-chart{width:100%;height:auto;display:block}.stats-chart-grid{stroke:#ffffff26;stroke-width:1px}.stats-chart-text{fill:currentColor;opacity:.7;font-size:9px}.stats-chart-line{fill:none;stroke:#4fc3f7;stroke-width:2.5px;stroke-linejoin:round}.stats-chart-dot{fill:#4fc3f7;stroke:#0b2545;stroke-width:1.5px}.contest-tab{flex-direction:column;gap:12px;display:flex}.contest-launch{justify-content:center;display:flex}.contest-launch .add-friend-btn{margin-bottom:0}.contest-current,.contest-block{text-align:left}.contest-current-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.contest-current-head h3{overflow-wrap:anywhere;flex:1;min-width:0}.contest-pill{font-size:var(--text-xs);background:#ffffff1f;border:1px solid #fff3;border-radius:999px;flex-shrink:0;padding:3px 10px;font-weight:700}.contest-pill.is-active{color:#4fc3f7;background:#4fc3f738;border-color:#4fc3f7}.contest-pill.is-scheduled{color:#f4d54a;background:#f4d54a2e;border-color:#f4d54a}.contest-countdown{font-size:var(--text-md,1.05rem);color:#4fc3f7;margin:0 0 4px;font-weight:700}.contest-rules{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.contest-rules li{flex-wrap:wrap;gap:6px;margin:0;display:flex}.contest-rules .stats-card-sub{margin:0}.contest-tag{font-size:var(--text-sm);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.contest-howto{margin:0 0 10px}.contest-live,.contest-standings{flex-direction:column;gap:12px;display:flex}.contest-hidden-note{margin:0}.contest-block h3{align-items:center;gap:6px;display:flex}.contest-participant-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#ffffff0f;border:0;border-radius:10px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.contest-participant-row:disabled{cursor:default;opacity:1}.contest-participant-row.is-open{background:#4fc3f729}.contest-moderation-switch small{opacity:.75;display:block}.contest-participant-list+.stats-card-sub,.contest-participant-list .contest-catch-list{margin-top:6px}.contest-catch-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.contest-catch-row{background:#ffffff0f;border-radius:10px;align-items:center;gap:8px;padding:5px 8px;display:flex}.contest-catch-thumb{object-fit:contain;flex:none;width:40px;height:28px}.contest-catch-info{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.contest-catch-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contest-catch-info small{opacity:.75;overflow-wrap:anywhere}.contest-catch-row .catalog-manage-btn{flex:none;min-width:34px;padding:4px 8px}.contest-catch-row .contest-catch-delete{color:#ff8a80}.contest-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.contest-row{background:#ffffff0f;border-radius:10px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.contest-row.is-mine{background:#4fc3f729;box-shadow:inset 0 0 0 1px #4fc3f78c}.contest-rank{opacity:.9;justify-content:center;align-items:center;font-weight:800;display:flex}.contest-pseudo{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.contest-value{color:#4fc3f7;white-space:nowrap;font-weight:800}.contest-mine-tiles{margin-top:8px}.contest-mine-ranks{flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.contest-mine-ranks li{font-size:var(--text-sm);justify-content:space-between;gap:10px;display:flex}.contest-mine-ranks strong{color:#4fc3f7;white-space:nowrap}.contest-mine-best{margin:10px 0 0}.contest-history{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.contest-history-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:#ffffff12;border:1px solid #ffffff26;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.contest-history-item.is-cancelled{opacity:.55;cursor:default}.contest-history-title{overflow-wrap:anywhere;font-weight:700}.contest-history-sub{font-size:var(--text-sm);opacity:.75}.contest-results,.contest-create{text-align:left;width:100%;max-width:520px;max-height:88vh;overflow-y:auto}.contest-results h2,.contest-create h2{text-align:center;margin:0 0 8px}.contest-results-dates{text-align:center}.contest-results .contest-rules{justify-content:center;align-items:center}.contest-results .contest-rules li{justify-content:center}.contest-results .catalog-form-actions{margin-top:14px}.contest-field{border:none;flex-direction:column;gap:8px;min-width:0;margin:0 0 14px;padding:0;display:flex}.contest-field legend{margin-bottom:4px;padding:0}.contest-field .stats-card-sub{margin:0}.contest-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.contest-chip{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:#ffffff12;border:1px solid #ffffff38;border-radius:999px;padding:7px 12px}.contest-chip.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000;font-weight:600}.contest-criterion-option,.contest-hide-option{align-items:flex-start}.contest-criterion-option input,.contest-hide-option input{margin-top:3px}.contest-criterion-option small,.contest-hide-option small{opacity:.7;font-size:var(--text-xs);display:block}.contest-hide-option{margin-bottom:14px}.contest-species-grid{max-height:260px;overflow-y:auto}.contest-custom-duration{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.contest-custom-duration input{text-align:center;width:80px}.spot-field{flex-direction:column;align-items:stretch;display:flex}.spot-field-btn{border:1px solid var(--accent);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);background:#ffffff1a;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-weight:600;display:inline-flex}.spot-field-photo-btn{color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);background:#4fc3f724;border:1px solid #4fc3f780;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:6px;padding:8px 14px;font-weight:600;display:inline-flex}.spot-field-note{font-size:var(--text-xs,12px);color:#fff9;text-align:center;margin:6px 2px 0;line-height:1.4}.spot-field-set{background:#4fc3f724;border:1px solid #4fc3f780;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.spot-field-coords{font-size:var(--text-sm);font-variant-numeric:tabular-nums;min-width:0;font-weight:600}.spot-field-links{flex-shrink:0;gap:12px;display:flex}.spot-field-links button{color:#4fc3f7;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:4px 0;font-weight:600}.spot-dialog,.map-modal{text-align:left;width:100%;max-width:520px}.spot-dialog h2,.map-modal h2{text-align:center;margin:0 0 6px}.spot-help,.map-sub{text-align:center;margin:0 0 10px}.spot-map-wrap,.map-stage{background:#ffffff0f;border:1px solid #fff3;border-radius:14px;position:relative;overflow:hidden}.spot-map{width:100%;height:300px}.map-canvas{width:100%;height:min(46vh,420px);min-height:300px}.spot-map-status{text-align:center;font-size:var(--text-sm);pointer-events:none;justify-content:center;align-items:center;margin:0;padding:16px;display:flex;position:absolute;inset:0}.map-pin{cursor:grab;background:#4fc3f7;border:3px solid #fff;border-radius:50%;width:26px;height:26px;box-shadow:0 2px 8px #00000073}.spot-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 8px;display:flex}.spot-chip-btn{color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.spot-chip-btn:disabled{opacity:.5;cursor:not-allowed}.spot-note{text-align:center;margin:0 0 8px}.spot-coords{align-items:center;gap:8px;margin-bottom:8px;display:flex}.spot-coords input{flex:1;min-width:0}.spot-readout{text-align:center;font-variant-numeric:tabular-nums;color:#4fc3f7;margin:10px 0 2px;font-weight:700}.spot-private{text-align:center;margin:0 0 14px}.spot-remove-btn{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin:12px auto 0;text-decoration:underline;display:block}.map-filter{width:100%;margin-bottom:10px}.map-empty{color:var(--text-primary);text-align:center;font-size:var(--text-sm);background:#0b2545eb;border:1px solid #fff3;border-radius:12px;padding:12px 14px;position:absolute;top:12px;left:12px;right:12px}.map-empty p{margin:6px 0 0}.map-spot-panel{color:var(--text-primary);background:#ffd1661a;border:1px solid #ffd16673;border-radius:14px;margin-top:12px;padding:10px 12px 6px}.map-spot-head{font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:8px;display:flex}.map-spot-close{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.map-spot-list{margin:8px 0 0;padding:0;list-style:none}.map-spot-item{border-top:1px solid #ffffff1f;align-items:center;gap:12px;padding:10px 0;display:flex}.map-spot-item:first-child{border-top:none}.map-spot-photo{cursor:pointer;background:#00000040;border:1px solid #ffffff4d;border-radius:10px;flex-shrink:0;width:76px;height:76px;padding:0;overflow:hidden}.map-spot-photo img{object-fit:cover;width:100%;height:100%;display:block}.map-card-fish{object-fit:contain;flex-shrink:0;width:76px;height:48px}.map-card-text{min-width:0;font-size:var(--text-sm);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.map-card-text strong{font-size:var(--text-base)}.map-card-rarity{margin:1px 0 2px}.map-card-place{opacity:.75;overflow-wrap:anywhere}.map-spot-remove{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;text-decoration:underline}.map-count{text-align:center;margin:10px 0 0}.contest-create input[type=text],.contest-create input[type=search],.contest-create input[type=datetime-local],.spot-dialog input[type=text],.map-filter{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:8px 10px;font-family:inherit}.session-card-title{font-size:var(--text-md,1.05rem);color:#4fc3f7;overflow-wrap:anywhere;font-weight:800}.session-diary{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.session-diary-note{font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.session-diary-btn{border:1px solid var(--accent);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;background:#ffffff1a;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}.session-note-editor{flex-direction:column;gap:8px;display:flex}.session-note-editor input,.session-note-editor textarea{font-size:var(--text-base);background:#fffffff2;border:1px solid #ffffff40;border-radius:8px;padding:8px 10px;font-family:inherit}.session-weather{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.session-weather-btn{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:#ffffff12;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:5px;padding:6px 11px;display:inline-flex}.session-weather-btn.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000;font-weight:600}.fishing-tips-list{font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;gap:8px;margin:0 0 6px;padding:0;list-style:none;display:flex}.fishing-tips-list strong{color:var(--text)}.fishing-tips .reg-disclaimer{margin:10px 0 0}.fishing-tips .fish-confusions p{font-size:var(--text-sm)}.session-day-text:first-letter{text-transform:uppercase}.fish-card{touch-action:manipulation}.quick-add-toast{width:fit-content;left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;color:#fff;background:#0a1828f0;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:14px;margin:0 auto;padding:10px 14px 10px 16px;font-size:14px;display:flex;position:fixed;box-shadow:0 6px 18px #0006}.quick-add-toast span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.quick-add-toast button{color:#ffd166;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:14px;font-weight:700}.double-tap-hint{left:16px;right:70px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;text-align:center;color:#ffffffd9;pointer-events:none;background:#08162899;border-radius:999px;width:fit-content;margin:0 auto;padding:6px 12px;font-size:12px;animation:5s both double-tap-hint-fade;position:fixed}@keyframes double-tap-hint-fade{0%,to{opacity:0}12%,85%{opacity:1}}@media (prefers-reduced-motion:reduce){.double-tap-hint{animation:none}}.contest-mine-tiles .stats-tile:last-child:nth-child(odd){grid-column:1/-1}.contest-bubble-wrap{z-index:8;flex-direction:column;align-items:center;gap:4px;display:flex;position:fixed}.contest-bubble{color:#4a3200;cursor:pointer;filter:drop-shadow(0 3px 5px #0006);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:none;width:64px;height:88px;padding:0;display:block;position:relative}.contest-trophy{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.contest-trophy-part{fill:url(#trophy-gold);stroke:#b97a00;stroke-width:1.6px;stroke-linejoin:round}.contest-trophy-handle{fill:none;stroke:#e0a21c;stroke-width:4.5px;stroke-linecap:round}.contest-trophy-photo{width:30px;height:30px;display:flex;position:absolute;top:6px;left:17px}.contest-trophy-photo .member-avatar{box-sizing:border-box;border:2px solid #fff;box-shadow:0 1px 3px #00000059}.contest-bubble-time{font-variant-numeric:tabular-nums;letter-spacing:-.3px;white-space:nowrap;justify-content:center;align-items:center;width:48px;height:27px;font-size:10px;font-weight:800;display:flex;position:absolute;top:59px;left:8px}.contest-bubble-count{color:#ffe08a;text-align:center;background:#4a3200;border:1px solid #ffffff80;border-radius:999px;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:800;line-height:20px;box-shadow:0 2px 6px #00000059}.contest-bubble-wrap.is-dragging{z-index:9;transform:scale(1.1)}body:has(.fish-detail-overlay) .contest-bubble-wrap{display:none}.contest-picker{max-width:380px}.contest-picker-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.contest-picker-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:#f7b7331f;border:1px solid #f7b73399;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.contest-picker-text{min-width:0;font-size:var(--text-sm);flex-direction:column;flex:1;display:flex}.contest-picker-text strong{font-size:var(--text-base);overflow-wrap:anywhere}.contest-picker-time{font-variant-numeric:tabular-nums;color:#ffd166;font-weight:800;font-size:var(--text-sm)}.contest-add-catch{margin-top:4px}.map-overlay{align-items:stretch;padding:0;overflow:hidden}.map-screen{width:100%;height:100%;position:relative}.map-screen .map-canvas{width:100%;height:100%;min-height:0;position:absolute;inset:0}.map-topbar{z-index:6;padding:calc(10px + env(safe-area-inset-top,0px)) 0 0 10px;pointer-events:none;align-items:flex-start;gap:10px;display:flex;position:absolute;top:0;left:0;right:56px}.map-topbar>*{pointer-events:auto}.map-close-btn{color:#fff;cursor:pointer;background:#0b2545e0;border:1px solid #ffffff59;border-radius:50%;flex-shrink:0;width:44px;height:44px;font-size:24px;line-height:1;box-shadow:0 3px 10px #00000059}.map-topbar-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.map-topbar-main h2{color:#fff;font-size:var(--text-md,1.05rem);background:#0b2545e0;border-radius:999px;align-self:flex-start;margin:0;padding:7px 14px;box-shadow:0 3px 10px #00000059}.map-private-note{color:#ffffffe6;font-size:var(--text-xs,12px);background:#0b2545cc;border-radius:999px;align-self:flex-start;margin:0;padding:4px 10px;line-height:1.3}.map-topbar-main .map-filter{width:auto;max-width:100%;margin:0;box-shadow:0 3px 10px #0000004d}.map-count-pill{z-index:5;left:50%;bottom:calc(40px + env(safe-area-inset-bottom,0px));color:#fff;font-size:var(--text-sm);white-space:nowrap;pointer-events:none;background:#0b2545e0;border-radius:999px;margin:0;padding:6px 14px;font-weight:600;position:absolute;transform:translate(-50%)}.map-screen .map-spot-panel{z-index:7;left:8px;right:8px;bottom:calc(34px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;background:#123363f7;max-height:min(46vh,380px);margin:0;position:absolute;overflow-y:auto;box-shadow:0 -4px 18px #0006}.map-screen .maplibregl-ctrl-top-right{top:calc(10px + env(safe-area-inset-top,0px))}.map-privacy-switch{color:#fff;font-size:var(--text-sm);cursor:pointer;background:#0b2545e0;border:1px solid #ffffff4d;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:5px 12px 5px 6px;font-weight:700;display:inline-flex;box-shadow:0 3px 10px #0000004d}.map-privacy-track{background:#3aa66a;border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.map-privacy-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:18px}.map-privacy-switch.is-shared .map-privacy-track{background:#f7b733}.map-privacy-switch.is-shared .map-privacy-thumb{left:2px}.map-share-error{color:#ffb4b4}.friend-map-btn{border:1px solid var(--accent);color:var(--text-primary);font-weight:700;font-size:var(--text-sm);cursor:pointer;background:#ffffff1a;border-radius:999px;margin:0 auto 10px;padding:8px 18px;display:block}.dex-progress-link{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.dex-progress-link .catalog-progress-bar{flex:1}.hub-tabs{background:#0000002e;border:1px solid #ffffff1f;border-radius:999px;gap:6px;margin:10px 0 14px;padding:4px;display:flex}.hub-tab-btn{min-width:0;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;flex:1;padding:8px 4px;font-weight:700}.hub-tab-btn.is-active{background:var(--accent);color:var(--accent-contrast,#0b2545)}.hub-tab-btn.is-highlight:not(.is-active){box-shadow:inset 0 0 0 1.5px #ffd166}.stats-hub{text-align:left;width:100%;max-width:460px}.stats-hub h2{text-align:center;margin:0}.hub-panel{text-align:left}.hub-panel h2{font-size:var(--text-md,1.05rem);text-align:center;margin:16px 0 6px}.stats-hub .medal-stats-block{margin-bottom:10px}.profile-pseudo-row{justify-content:center;align-items:center;gap:8px;margin:6px 0 10px;display:flex}.profile-pseudo-value{font-size:var(--text-md,1.05rem)}.profile-pseudo-edit{width:32px;height:32px;color:var(--text-primary);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%}.profile-season-spark{margin-left:4px}.about-modal{width:100%;max-width:420px}.about-logo{width:auto;height:56px;margin:0 auto 6px;display:block}.about-actions{flex-direction:column;gap:8px;margin:14px 0;display:flex}.dex-controls--compact{gap:8px}.dex-controls--compact .dex-controls-row{flex-wrap:nowrap;gap:6px}.dex-icon-btn{width:42px;height:42px;color:var(--text-primary);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;line-height:1;display:inline-flex}.dex-icon-btn.is-active{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.dex-filter-group--grow{flex:1;min-width:0}.dex-filter-group--grow .dex-filter-btn{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;padding:9px 4px;overflow:hidden}.dex-display-card{background:#ffffff1a;border:1px solid #fff3;border-radius:12px;flex-direction:column;align-items:stretch;gap:10px;padding:12px;display:flex}.dex-display-title{font-size:var(--text-sm);text-align:center;color:var(--text-muted);margin:0;font-weight:700}.dex-display-card .sort-group{justify-content:center;gap:8px;display:flex}.dex-display-columns{justify-content:center;align-items:center;gap:10px;display:flex}.dex-display-label{font-size:var(--text-sm);color:var(--text-muted)}.map-topbar{right:66px}.map-close-btn--corner{z-index:7;top:calc(10px + env(safe-area-inset-top,0px));position:absolute;right:10px}.map-screen .maplibregl-ctrl-top-right{top:calc(60px + env(safe-area-inset-top,0px));right:7px}.map-privacy-fab{z-index:6;top:calc(140px + env(safe-area-inset-top,0px));color:#fff;cursor:pointer;background:#0b2545e6;border:2px solid #3aa66a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex;position:absolute;right:10px;box-shadow:0 3px 10px #00000059}.map-privacy-fab.is-shared{border-color:#f7b733}.map-filters-btn{color:#fff;font-size:var(--text-sm);cursor:pointer;background:#0b2545e0;border:1px solid #ffffff4d;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:7px 14px;font-weight:700;display:inline-flex;box-shadow:0 3px 10px #0000004d}.map-filters-btn.is-active{border-color:#ffd166}.map-filters-badge{color:#0b2545;text-align:center;background:#ffd166;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:18px}.map-filters-card{background:#0b2545f0;border:1px solid #fff3;border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex;box-shadow:0 4px 14px #0006}.map-filters-card label{font-size:var(--text-xs,12px);color:#fffc;flex-direction:column;gap:3px;display:flex}.map-filters-card .map-filter{width:100%;margin:0}.map-filters-reset{color:#ffd166;font-weight:700;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;align-self:flex-end;text-decoration:underline}.map-count-wrap{z-index:5;left:50%;bottom:calc(40px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;gap:6px;max-width:calc(100% - 24px);display:flex;position:absolute;transform:translate(-50%)}.map-count-wrap .map-count-pill{pointer-events:auto;cursor:pointer;border:1px solid #ffffff59;position:static;transform:none}.map-species-list{overscroll-behavior:contain;background:#0b2545f5;border:1px solid #ffffff40;border-radius:14px;width:min(320px,100vw - 24px);max-height:min(42vh,320px);margin:0;padding:6px;list-style:none;overflow-y:auto;box-shadow:0 4px 16px #00000073}.map-species-list button{color:#fff;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:6px 8px;display:flex}.map-species-list button:active{background:#ffffff1f}.map-species-list img{object-fit:contain;flex-shrink:0;width:44px;height:28px}.map-species-name{min-width:0;font-size:var(--text-sm);flex:1;font-weight:600}.map-species-count{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:#ffd166;font-weight:700}.account-signout-btn{color:#ffb3b3;background:#d645451f;border-color:#d6454580;font-weight:700}.add-friend-btn.account-signout-btn.profile-signout{color:#ffb3b3;width:100%;max-width:320px;box-shadow:none;background:#d6454524;border:1px solid #d645458c;margin:0 auto 16px;display:block}.stats-hub .hub-panel{max-height:none;overflow:visible}.app-topbar-actions{gap:4px}.app-topbar-actions .icon-btn{width:36px;height:36px}.app-brand{gap:5px}.onboarding-actions--nav{justify-content:center;align-items:center;gap:14px;display:flex}.onboarding-arrow{width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;padding:0;font-size:26px;line-height:1}.onboarding-arrow:disabled{opacity:.25;cursor:default}.app-brand{flex-shrink:0}.app-topbar .app-title{text-overflow:clip;font-size:15px;overflow:visible}.app-logo-icon{height:24px}.user-chip{gap:6px;max-width:120px;padding:3px 9px 3px 3px}.contest-current{flex-direction:column;gap:18px;display:flex}.contest-current>*,.contest-current .contest-section>*,.contest-current .contest-howto,.contest-current .contest-countdown,.contest-current .contest-rules{margin:0}.contest-current .contest-section{flex-direction:column;gap:8px;display:flex}.contest-current .contest-timing{gap:2px}.contest-current .contest-live{gap:14px}.contest-current .contest-hidden-note{text-align:center;opacity:.8}.contest-participants{flex-direction:column;gap:12px;display:flex}.contest-current>.catalog-form-actions,.contest-current>.contest-participants>.catalog-form-actions,.contest-chef-actions{flex-direction:column;align-items:center;margin:0}.contest-current>.catalog-form-actions button,.contest-current>.contest-participants>.catalog-form-actions button,.contest-chef-actions button{width:100%;max-width:280px}.contest-chef-zone{border-top:1px solid #ffffff26;flex-direction:column;align-items:center;gap:10px;padding-top:16px;display:flex}.contest-chef-title{text-align:center;opacity:.75;margin:0}.catalog-form-actions button.contest-end-btn{color:#f4d54a;filter:none;box-shadow:none;background:0 0;border:1.5px solid #f4d54a}.catalog-form-actions button.contest-cancel-btn{color:#ff8a80;filter:none;box-shadow:none;background:0 0;border:1.5px solid #ff8a80b3}.contest-current .dex-status{font-size:var(--text-sm);text-align:center;opacity:.85;margin:0}.contest-moderation-switch{padding:0 6px}.contest-row.is-clickable{padding:0;display:block}.contest-row-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.contest-row-button .contest-pseudo{text-underline-offset:3px;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59}.contest-user-catches .contest-catch-info{text-align:left}.contest-history-row{align-items:center;gap:8px;display:flex}.contest-history-row .contest-history-item{flex:1;width:auto;min-width:0}.contest-history-remove{color:#ff8a80;cursor:pointer;background:#ffffff12;border:1px solid #ff8a8099;border-radius:50%;flex:none;width:36px;height:36px;font-size:16px}.activity-day-heading{letter-spacing:.02em;opacity:.85;margin:6px 2px -2px;font-size:.8rem;font-weight:700;list-style:none}.activity-day-heading:first-child{margin-top:0}
