/* ocean.css - 海洋水族箱 */
.tank{position:relative;height:340px;border-radius:22px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 0 40px rgba(0,40,70,.25);background:linear-gradient(180deg,#FBE3C8 0%,#9ED9E0 18%,#4FB0C6 60%,#2C7DA0 100%);transition:filter .6s}
.tank.compact{height:190px;margin:0 0 10px;border-radius:16px}
.tank-reef{background:linear-gradient(180deg,#FFD7BA 0%,#7FD1D8 15%,#2FA4B8 55%,#1C6E8C 100%)}
.tank-deep{background:linear-gradient(180deg,#3A6F9A 0%,#1D4E79 40%,#102E4F 75%,#0A1D33 100%)}
.tank.stage-0{filter:saturate(.45) sepia(.35) brightness(.9)}.tank.stage-1{filter:saturate(.7) sepia(.15)}
.rays{position:absolute;inset:0;background:repeating-linear-gradient(105deg,rgba(255,255,255,.13) 0 18px,transparent 18px 60px);animation:rays 8s ease-in-out infinite alternate;pointer-events:none}
.tank-deep .rays{opacity:.25}
@keyframes rays{to{transform:translateX(30px)}}
.sand{position:absolute;left:0;right:0;bottom:0;height:26px;background:radial-gradient(ellipse at 30% 0,#F6D9A8,#E8C08A);border-radius:50% 50% 0 0/30% 30% 0 0}
.tank-deep .sand{background:#2a3b4f}
.trash{position:absolute;font-size:20px;z-index:2;opacity:.85;filter:grayscale(.4)}
.weed{position:absolute;bottom:14px;width:7px;z-index:1;border-radius:6px 6px 0 0;background:linear-gradient(#7CC576,#3E8E41);transform-origin:bottom;animation:sway 3.5s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-8deg)}to{transform:rotate(8deg)}}
.coral{position:absolute;bottom:12px;width:30px;height:34px;z-index:1;background:var(--c);border-radius:50% 50% 8px 8px;-webkit-mask:radial-gradient(circle at 25% 30%,#000 7px,transparent 8px),radial-gradient(circle at 75% 25%,#000 8px,transparent 9px),radial-gradient(circle at 50% 55%,#000 11px,transparent 12px),linear-gradient(#000,#000) 50% 100%/8px 60% no-repeat;mask:radial-gradient(circle at 25% 30%,#000 7px,transparent 8px),radial-gradient(circle at 75% 25%,#000 8px,transparent 9px),radial-gradient(circle at 50% 55%,#000 11px,transparent 12px),linear-gradient(#000,#000) 50% 100%/8px 60% no-repeat}
.bubbles i{position:absolute;bottom:-10px;width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);animation:bub 7s linear infinite}
.bubbles i:nth-child(1){left:10%}.bubbles i:nth-child(2){left:25%;animation-delay:-2s}.bubbles i:nth-child(3){left:40%;animation-delay:-4s}.bubbles i:nth-child(4){left:55%;animation-delay:-1s}.bubbles i:nth-child(5){left:68%;animation-delay:-5s}.bubbles i:nth-child(6){left:80%;animation-delay:-3s}.bubbles i:nth-child(7){left:90%;animation-delay:-6s}.bubbles i:nth-child(8){left:33%;animation-delay:-3.5s}
@keyframes bub{to{transform:translateY(-360px);opacity:0}}
.fish{position:absolute;left:0;z-index:3;width:56px;animation:swim linear infinite}
.compact .fish{width:40px}
.fish-in{animation:bob 2.4s ease-in-out infinite}
.fsvg{width:100%;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15))}
.f-jelly{width:40px;animation-name:drift}.f-jelly .fish-in{animation:pulse 3s ease-in-out infinite}
.rare{width:auto}.emoji-fish{font-size:42px;line-height:1}.compact .emoji-fish{font-size:30px}
@keyframes swim{0%{transform:translateX(110vw)}100%{transform:translateX(-90px)}}
@keyframes drift{0%{transform:translate(105vw,20px)}50%{transform:translate(50vw,-20px)}100%{transform:translate(-60px,20px)}}
@keyframes bob{50%{transform:translateY(-6px) rotate(-3deg)}}
@keyframes pulse{50%{transform:scaleY(.85) translateY(-8px)}}
@media (min-width:600px){@keyframes swim{0%{transform:translateX(600px)}100%{transform:translateX(-90px)}}}
.tank-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.3);z-index:4}
.ocean-hero{padding:10px}.ocean-hero-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.btn-small{padding:6px 12px;font-size:13px;border-radius:999px;background:#2C7DA0;color:#fff;border:0}
.seg,.area-tabs{display:flex;gap:6px;margin-bottom:12px}
.seg button,.area-tabs button{flex:1;padding:9px 6px;border-radius:999px;border:1.5px solid #9ED9E0;background:#fff;color:#2C5F73;font-weight:600}
.seg button.on,.area-tabs button.on{background:#2C7DA0;color:#fff;border-color:#2C7DA0}
.area-tabs button:disabled{opacity:.5}
.progress{height:10px;border-radius:99px;background:#E6F3F5;overflow:hidden}.progress div{height:100%;background:linear-gradient(90deg,#4FB0C6,#C97B52)}
.dex{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dex-cell{background:#F2FAFB;border-radius:14px;padding:8px;text-align:center;display:flex;flex-direction:column;gap:2px}
.dex-cell small{color:#6b7b80;font-size:11px}.dex-pic{height:46px;display:flex;align-items:center;justify-content:center}.dex-pic .fsvg{height:42px;width:auto}
.dex-cell.locked{opacity:.45;filter:grayscale(1)}
.donate-box{background:#EAF6F8;border-radius:14px;padding:12px;margin:10px 0;text-align:left}
.org-link{display:block;padding:9px 12px;margin-top:6px;border-radius:12px;background:#fff;color:#1C6E8C;font-weight:700;text-decoration:none;border:1px solid #BFE3EA}
.org-link small{display:block;font-weight:400;color:#6b7b80}
.premium-card{position:relative}.soon{position:absolute;top:14px;right:14px;background:#C97B52;color:#fff;font-size:12px;padding:3px 10px;border-radius:99px}
.switch-row{display:flex;gap:8px;align-items:center;font-weight:600;padding:10px;background:#FFF6EC;border-radius:12px}
.switch-row input{width:22px;height:22px}
.birth{text-align:center}.birth-sea{position:relative;height:170px;border-radius:18px;overflow:hidden;background:linear-gradient(#9ED9E0,#2C7DA0);margin-bottom:12px}
.birth-item{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px;border-radius:16px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;font-size:44px;animation:shrink 1.4s ease-in forwards}
.birth-item img{width:100%;height:100%;object-fit:cover}
@keyframes shrink{60%{transform:scale(.6) rotate(200deg);border-radius:50%;opacity:1;filter:brightness(1.6)}100%{transform:scale(0) rotate(360deg);opacity:0}}
.birth-fish{position:absolute;left:50%;top:50%;width:90px;margin:-30px -45px;opacity:0;animation:emerge 2.6s 1.1s ease-out forwards}
@keyframes emerge{0%{opacity:0;transform:scale(.1)}30%{opacity:1;transform:scale(1.1)}100%{opacity:1;transform:translateX(-60px) scale(1)}}
.nav-ocean .nav-icon{font-size:1.35em}
.seg-life{overflow-x:auto}.seg-life button{flex:0 0 auto;padding:8px 12px;font-size:13px}
.life-list{list-style:none;padding:0;margin:0}.life-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #f0e6dc}
.life-list li:last-child{border:0}.life-list small{display:block;color:#8a7d72;font-size:12px}.life-list li.ready b{color:#C97B52}
.btn-mini{padding:5px 10px;font-size:12px}.search{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid #E8D9CA;border-radius:12px;font:inherit;margin:6px 0;background:#fff}
.warn{background:#FFF3E0;color:#B5532A;border-radius:10px;padding:8px 10px;margin:8px 0 0;font-size:14px}
.due-card{background:#FFF3E0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.due-card h3,.due-card ul{width:100%}
.tag-due{background:#C97B52;color:#fff;font-size:11px;padding:2px 8px;border-radius:99px}
.soon-inline{background:#C97B52;color:#fff;font-size:12px;padding:2px 8px;border-radius:99px;vertical-align:middle}
.pro-card{display:flex;gap:10px;align-items:center}.pro-card>div:nth-child(2){flex:1}.pro-card small{color:#8a7d72}.pro-av{font-size:30px;background:#EAF6F8;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center}
