:root{--bg: rgba(10, 22, 30, .58);--bg-strong: rgba(8, 18, 26, .82);--line: rgba(255, 255, 255, .13);--line-strong: rgba(255, 255, 255, .24);--text: #eaf6fb;--muted: #9fb8c4;--accent: #62d4ff;--accent-2: #9cf0d2;--ok: #4fd18b;--warn: #f3c34a;--bad: #ff6b6b;--radius: 16px;--blur: blur(18px) saturate(1.5);--shadow: 0 10px 40px rgba(0, 0, 0, .35);--font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--sb-thumb: rgba(98, 212, 255, .35);--sb-thumb-hover: rgba(98, 212, 255, .6);--sb-track: transparent;color-scheme:dark}body.cb{--ok: #3a9ad9;--warn: #f0a33a;--bad: #c45ab3}body.hc{--bg: rgba(4, 10, 14, .9);--bg-strong: rgba(2, 6, 9, .96);--line: rgba(255, 255, 255, .35);--muted: #cfe3ec;--sb-thumb: rgba(98, 212, 255, .75);--sb-thumb-hover: #62d4ff;--sb-track: rgba(255, 255, 255, .12)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--sb-thumb) var(--sb-track)}@supports not (scrollbar-color: auto){*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--sb-track);border-radius:8px}*::-webkit-scrollbar-thumb{background:var(--sb-thumb);border-radius:8px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--sb-thumb-hover);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}}html,body{margin:0;height:100%;overflow:hidden;background:#02090e;color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:none}#app{position:fixed;inset:0}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;cursor:default}#ui{position:absolute;inset:0;pointer-events:none}#ui>:is(.dock,.hud-tl,.hud-tr,.buildbar,.ctx,.photobar,.tutorial,.glass,.panel.open,.fishcard.open,.overlay.open){pointer-events:auto}#ui>:is(.panel,.fishcard,.overlay):not(.open),#ui>.faded,#ui>.tut-ring,#ui>.tool-cursor{pointer-events:none}#ui .passthrough{pointer-events:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.glass{background:var(--bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.dock{position:absolute;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;gap:4px;padding:6px;align-items:center;transition:opacity .6s ease,transform .6s ease;max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:none}.dock::-webkit-scrollbar{display:none}.dock.faded{opacity:0;transform:translate(-50%) translateY(16px);pointer-events:none}.fadeable{transition:opacity .6s ease}.fadeable.faded{opacity:0;pointer-events:none}.dock .sep{width:1px;height:30px;background:var(--line);margin:0 4px;flex:0 0 auto}.dbtn{position:relative;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:54px;padding:6px 6px 4px;border:0;background:transparent;border-radius:11px;color:var(--text);font-size:10.5px;letter-spacing:.02em;opacity:.9;transition:background .15s,opacity .15s}.dbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.dbtn:hover{background:#ffffff14;opacity:1}.dbtn.active{background:#62d4ff2e;color:#fff;box-shadow:inset 0 0 0 1px #62d4ff59}.dbtn[hidden]{display:none!important}.hud-tl{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));left:12px;display:flex;gap:8px;align-items:center;padding:6px 10px;transition:opacity .6s;font-size:12.5px}.hud-tl.faded,.hud-tr.faded{opacity:0;pointer-events:none}.hud-tr{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:12px;display:flex;gap:6px;align-items:center;transition:opacity .6s}.clock{font-variant-numeric:tabular-nums;font-weight:600;font-size:15px}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:#ffffff14;border:1px solid var(--line);font-size:11.5px;white-space:nowrap}.chip.ok{color:var(--ok)}.chip.warn{color:var(--warn)}.chip.bad{color:var(--bad)}.speed{display:flex;gap:2px}.speed button{border:0;background:transparent;padding:3px 7px;border-radius:7px;font-size:11.5px;color:var(--muted)}.speed button.on{background:#62d4ff38;color:#fff}.ibtn{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--line);background:var(--bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);color:var(--text)}.ibtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.panel{position:absolute;top:60px;right:12px;bottom:96px;width:min(420px,calc(100vw - 24px));display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translate(14px);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.panel.open{opacity:1;transform:none;pointer-events:auto}.panel.left{right:auto;left:12px;transform:translate(-14px)}.panel.left.open{transform:none}.panel.wide{width:min(760px,calc(100vw - 24px))}.panel header{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.panel header h2{margin:0;font-size:16px;font-weight:650;letter-spacing:.01em;flex:1}.panel header .sub{color:var(--muted);font-size:12px;font-weight:400}.panel .body{padding:12px 16px 16px;overflow-y:auto;flex:1;scrollbar-width:thin}.close{border:0;background:#ffffff14;width:28px;height:28px;border-radius:8px;color:var(--text);font-size:16px;line-height:1}.close:hover{background:#ffffff29}.section{margin:14px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.row{display:flex;align-items:center;gap:10px;margin:8px 0}.row>label,.row>.lbl{flex:1;color:var(--text)}.row .val{min-width:56px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px}.hint{color:var(--muted);font-size:12px;line-height:1.45}.btn{white-space:nowrap;border:1px solid var(--line-strong);background:#ffffff12;padding:8px 12px;border-radius:10px;font-size:13px;transition:background .15s,border-color .15s}.btn:hover{background:#ffffff24}.btn.primary{background:linear-gradient(180deg,#3cc4f5,#1a8fc4);border-color:transparent;color:#04131b;font-weight:650}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{border-color:#ff6b6b80;color:#ffb3b3}.btn.small{padding:5px 9px;font-size:12px;border-radius:8px}.btn:disabled{opacity:.45;cursor:not-allowed}.btns{display:flex;flex-wrap:wrap;gap:6px}input[type=range]{flex:1.3;accent-color:var(--accent);min-width:80px}select,input[type=text],input[type=number],textarea{background:#0000004d;border:1px solid var(--line-strong);border-radius:8px;padding:6px 8px;transition:border-color .15s,box-shadow .15s,background-color .15s}select:hover,input[type=text]:hover,input[type=number]:hover,textarea:hover{border-color:#ffffff6b}select:focus-visible,input[type=text]:focus-visible,input[type=number]:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);background-color:#0000006b;box-shadow:0 0 0 3px #62d4ff2e}.fishcard h3 input:focus-visible{box-shadow:none;background-color:transparent}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.65}select{-webkit-appearance:none;appearance:none;cursor:pointer;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239fb8c4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select:focus-visible{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2362d4ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}select option{background:#0b1820;color:var(--text)}textarea{resize:vertical}input[type=file]{color:var(--muted);font-size:12.5px}input[type=file]::file-selector-button{font:inherit;color:var(--text);background:#ffffff14;border:1px solid var(--line-strong);border-radius:8px;padding:5px 12px;margin-right:10px;cursor:pointer;transition:background .15s,border-color .15s}input[type=file]::file-selector-button:hover{background:#62d4ff29;border-color:var(--accent)}input[type=checkbox]:not(.toggle input){-webkit-appearance:none;appearance:none;width:18px;height:18px;flex:0 0 auto;margin:0;display:inline-grid;place-content:center;border:1.5px solid var(--line-strong);border-radius:5px;background:#0000004d;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}input[type=checkbox]:not(.toggle input):after{content:"";width:10px;height:10px;background:#04222e;transform:scale(0);transition:transform .12s ease-out;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}input[type=checkbox]:not(.toggle input):hover{border-color:var(--accent)}input[type=checkbox]:not(.toggle input):checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:not(.toggle input):checked:after{transform:scale(1)}input[type=checkbox]:not(.toggle input):focus-visible{outline:none;box-shadow:0 0 0 3px #62d4ff4d}label.row>input[type=checkbox]{align-self:flex-start;margin-top:1px}input[type=range]:not(.grad){-webkit-appearance:none;appearance:none;height:18px;background:transparent;cursor:pointer}input[type=range]:not(.grad)::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:#ffffff2e}input[type=range]:not(.grad)::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:var(--accent);border:2px solid #06222e;box-shadow:0 1px 4px #00000080;transition:transform .12s,box-shadow .12s}input[type=range]:not(.grad)::-moz-range-track{height:6px;border-radius:99px;background:#ffffff2e}input[type=range]:not(.grad)::-moz-range-progress{height:6px;border-radius:99px;background:var(--accent)}input[type=range]:not(.grad)::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid #06222e}input[type=range]:not(.grad):hover::-webkit-slider-thumb{transform:scale(1.15)}input[type=range]:not(.grad):focus-visible{outline:none}input[type=range]:not(.grad):focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #62d4ff4d}.toggle{position:relative;width:38px;height:22px;flex:0 0 auto}.toggle input{opacity:0;width:100%;height:100%;position:absolute;margin:0;cursor:pointer;z-index:1}.toggle span{position:absolute;inset:0;border-radius:999px;background:#ffffff2e;transition:background .2s}.toggle span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.toggle input:checked+span{background:var(--accent)}.toggle input:checked+span:after{transform:translate(16px)}.toggle input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.seg{display:inline-flex;background:#00000040;border:1px solid var(--line);border-radius:10px;padding:2px;gap:2px;flex-wrap:wrap}.seg button{border:0;background:transparent;padding:5px 10px;border-radius:8px;font-size:12.5px;color:var(--muted)}.seg button.on{background:#62d4ff3d;color:#fff}.tabs{display:flex;gap:4px;padding:8px 16px 0;flex-wrap:wrap}.tabs button{border:0;background:transparent;padding:7px 11px;border-radius:9px 9px 0 0;color:var(--muted);font-size:13px;border-bottom:2px solid transparent}.tabs button.on{color:#fff;border-bottom-color:var(--accent)}.tabs.icons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 16px 4px}.tabs.icons button{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 6px;border:1px solid var(--line);border-radius:10px;background:#0000002e;font-size:12.5px;line-height:1.2;transition:background .15s,border-color .15s,color .15s}.tabs.icons button:hover{background:#ffffff12;color:var(--text)}.tabs.icons button.on{color:#fff;border-color:var(--accent);background:#62d4ff1f;box-shadow:0 0 0 1px var(--accent) inset}.tabs.icons button svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tabs.icons button.on svg{stroke:var(--accent)}.search{width:100%;padding:8px 10px;margin-bottom:10px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.card{border:1px solid var(--line);border-radius:12px;background:#ffffff0a;padding:8px;display:flex;flex-direction:column;gap:4px;position:relative;text-align:left;transition:border-color .15s,background .15s}.card:hover{border-color:var(--line-strong);background:#ffffff12}.card.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.card.disabled{opacity:.42}.card img{width:100%;aspect-ratio:16/11;object-fit:contain;border-radius:8px;background:radial-gradient(ellipse at 50% 40%,#62d4ff29,#00000026 70%)}.card .t{font-weight:600;font-size:13px;line-height:1.2}.card .s{color:var(--muted);font-size:11px;font-style:italic}.card .m{color:var(--muted);font-size:11px;line-height:1.35}.compat{position:absolute;top:12px;right:12px;width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px #0006}.compat.ok{background:var(--ok)}.compat.warn{background:var(--warn)}.compat.bad{background:var(--bad)}.reason{font-size:11px;line-height:1.3}.reason.warn{color:var(--warn)}.reason.bad{color:var(--bad)}.reason.ok{color:var(--ok)}.qty{display:flex;align-items:center;gap:4px;margin-top:4px}.qty button{width:26px;height:26px;border-radius:7px;border:1px solid var(--line-strong);background:#ffffff0f}.qty input{width:44px;text-align:center;padding:3px}.qty button{flex:none}.card .qty{margin-top:auto;padding-top:4px;flex-wrap:wrap;justify-content:center;min-width:0}.card .qty>span{display:none}.card .qty .btn{flex:1 1 100%;justify-content:center;margin-top:2px}.meter{height:8px;border-radius:99px;background:#ffffff1a;overflow:hidden}.meter>i{display:block;height:100%;border-radius:99px;background:var(--ok);transition:width .3s,background .3s}.tag{display:inline-block;padding:1px 6px;border-radius:6px;background:#ffffff14;font-size:10.5px;color:var(--muted);margin:1px 2px 1px 0}.gauges{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.gauge{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#ffffff08}.gauge .gl{font-size:11px;color:var(--muted)}.gauge .gv{font-size:18px;font-weight:650;font-variant-numeric:tabular-nums}.gauge .gv small{font-size:11px;color:var(--muted);font-weight:400;margin-left:2px}.gauge.ok .gv{color:var(--ok)}.gauge.warn .gv{color:var(--warn)}.gauge.bad .gv{color:var(--bad)}.gauge canvas{width:100%;height:30px;display:block;margin-top:4px}.tubes{display:flex;gap:10px;justify-content:center;margin:10px 0}.tube{width:22px;height:70px;border-radius:4px 4px 11px 11px;border:1px solid rgba(255,255,255,.4);position:relative;overflow:hidden;background:#ffffff0f}.tube i{position:absolute;left:0;right:0;bottom:0;height:0;transition:height 1.2s ease,background 1.6s ease}.tube b{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:500;color:var(--muted);white-space:nowrap}.advisor{border-left:3px solid var(--accent);padding:8px 10px;margin:8px 0;background:#62d4ff12;border-radius:0 10px 10px 0;font-size:12.5px;line-height:1.45}.advisor.ok{border-color:var(--ok);background:#4fd18b12}.ntime{font-size:11px;color:var(--muted);margin-bottom:2px;letter-spacing:.02em}.dbtn .badge{position:absolute;top:2px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--accent);color:#04222e;font:700 10px/16px var(--font);font-style:normal;text-align:center;box-shadow:0 0 0 2px #08121ae6}.advisor.warn{border-color:var(--warn);background:#f3c34a14}.advisor.bad{border-color:var(--bad);background:#ff6b6b14}.fishcard{position:absolute;left:12px;bottom:96px;width:min(320px,calc(100vw - 24px));padding:12px 14px;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s;pointer-events:none}.fishcard.open{opacity:1;transform:none;pointer-events:auto}.fishcard .fc-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fishcard .fc-info{margin-top:6px;min-height:2.8em}.fishcard .fc-state{color:var(--accent)}.fishcard h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.fishcard h3 input{background:transparent;border:0;border-bottom:1px dashed var(--line-strong);border-radius:0;padding:0;font-weight:650;font-size:16px;width:60%}.bar{display:grid;grid-template-columns:70px 1fr 40px;align-items:center;gap:8px;margin:5px 0;font-size:12px;color:var(--muted)}.mood{font-size:22px}.toasts{position:absolute;top:58px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;z-index:30;width:min(560px,calc(100vw - 24px))}.toast{pointer-events:auto;padding:9px 14px;font-size:13px;line-height:1.4;border-left:3px solid var(--accent);animation:tin .35s ease;max-width:100%}.toast.good{border-left-color:var(--ok)}.toast.warn{border-left-color:var(--warn)}.toast.bad{border-left-color:var(--bad)}.toast.out{animation:tout .4s ease forwards}@keyframes tin{0%{opacity:0;transform:translateY(-8px)}}@keyframes tout{to{opacity:0;transform:translateY(-8px)}}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#020a106b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:40;opacity:0;pointer-events:none;transition:opacity .3s;padding:16px}.overlay.open{opacity:1;pointer-events:auto}.modal{width:min(880px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:22px 24px}.modal h1{font-size:30px;margin:0 0 4px;letter-spacing:-.01em;font-weight:700}.modal h1 span{background:linear-gradient(90deg,#8ee6ff,#9cf0d2);-webkit-background-clip:text;background-clip:text;color:transparent}.modal .lead{color:var(--muted);margin:0 0 16px}.overlay.side{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;place-items:stretch start;padding:12px}.overlay.side .modal{width:min(440px,100%);max-height:none;overflow:hidden;display:flex;flex-direction:column;padding:20px 20px 16px}.overlay.side .modal .wbody{flex:1;min-height:0;overflow-y:auto;padding-right:4px;margin-right:-4px}.overlay.side .wizard-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.overlay.side .choice-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}@media (max-width: 700px){.overlay.side{place-items:end stretch}.overlay.side .modal{width:100%;max-height:58vh}}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.choice{border:1px solid var(--line);border-radius:12px;background:#ffffff0a;padding:10px 12px;text-align:left}.choice b{display:block;font-size:14px;margin-bottom:2px}.choice small{color:var(--muted);font-size:11.5px;line-height:1.35;display:block}.choice.on{border-color:var(--accent);background:#62d4ff1f;box-shadow:0 0 0 1px var(--accent) inset}.wizard-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;flex-wrap:wrap}.steps{display:flex;gap:6px}.steps i{width:26px;height:4px;border-radius:99px;background:#ffffff2e}.steps i.on{background:var(--accent)}.kbd{display:inline-block;min-width:22px;padding:2px 6px;border-radius:6px;border:1px solid var(--line-strong);background:#ffffff14;font-size:12px;text-align:center;font-family:ui-monospace,monospace}.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px}.help-grid div{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}.buildbar{position:absolute;top:60px;left:50%;transform:translate(-50%);display:none;gap:6px;padding:6px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px)}.buildbar.open{display:flex}.ctx{position:absolute;display:none;padding:8px;gap:4px;flex-wrap:wrap;max-width:280px;z-index:5}.ctx.open{display:flex}.ctx .t{width:100%;font-weight:600;font-size:12.5px;padding:0 2px 4px}.fps{position:absolute;left:12px;top:56px;padding:4px 8px;font:12px ui-monospace,monospace;display:none}.fps.open{display:block}.progress{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);padding:14px 18px;min-width:240px;text-align:center;display:none;z-index:35}.progress.open{display:block}.progress .meter{margin-top:8px}.photobar{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:none;gap:8px;padding:8px 10px;align-items:center;flex-wrap:wrap;justify-content:center}.photobar.open{display:flex}.tap-ripple{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:2px solid rgba(255,255,255,.7);pointer-events:none;animation:ripple .7s ease-out forwards}@keyframes ripple{to{transform:scale(6);opacity:0}}.tool-cursor{position:absolute;left:0;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;pointer-events:none;display:none;z-index:20;border-radius:50%}.tool-cursor.scrub{display:block;background:radial-gradient(circle,rgba(140,220,160,.55),rgba(40,120,70,.3) 60%,transparent 70%);border:2px solid rgba(200,255,220,.7);border-radius:8px;width:46px;height:32px;margin:-16px 0 0 -23px}.tool-cursor.vacuum{display:block;border:3px solid rgba(220,240,255,.7);background:#ffffff14}.tool-cursor.net{display:block;border:2px dashed rgba(255,255,255,.8);width:50px;height:40px;margin:-20px 0 0 -25px;border-radius:50% 50% 46% 46%}.tool-cursor.finger{display:block;width:14px;height:14px;margin:-7px 0 0 -7px;background:#ff3a3a;box-shadow:0 0 14px 6px #ff282899}.tool-cursor.tap{display:block;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid rgba(255,255,255,.8)}.tool-cursor.feed,.tool-cursor.pipette{display:block;width:18px;height:18px;margin:-9px 0 0 -9px;background:radial-gradient(circle,rgba(255,190,90,.9),transparent 70%)}.tutorial{position:absolute;z-index:45;width:min(340px,calc(100vw - 24px));padding:14px 16px}.tutorial h3{margin:0 0 6px;font-size:15px}.tutorial p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.tut-ring{position:absolute;border:2px solid var(--accent);border-radius:14px;box-shadow:0 0 0 9999px #00000059;pointer-events:none;z-index:44;transition:all .3s}.ach{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.ach .ico{font-size:22px;filter:grayscale(1);opacity:.45}.ach.done .ico{filter:none;opacity:1}.nogl{position:fixed;inset:0;display:grid;place-items:center;text-align:center;padding:24px;background:radial-gradient(circle at 50% 30%,#0c3448,#02090e)}.list-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.list-item .grow{flex:1;min-width:0}.list-item .grow b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .grow small{color:var(--muted);font-size:11.5px}.species-group{border:1px solid var(--line);border-radius:12px;background:#ffffff0a;margin-bottom:10px;overflow:hidden}.sg-head{display:flex;gap:12px;padding:10px;align-items:center;background:#ffffff08}.sg-thumb{position:relative;flex:0 0 120px}.sg-img{width:120px;aspect-ratio:16/11;object-fit:contain;border-radius:8px;display:block;background:radial-gradient(ellipse at 50% 40%,#62d4ff29,#00000026 70%)}.sg-count{position:absolute;top:-4px;left:-4px;min-width:28px;padding:2px 8px;border-radius:999px;background:var(--accent);color:#031722;font-weight:700;font-size:13px;text-align:center;box-shadow:0 2px 6px #0006}.sg-info{min-width:0;flex:1}.sg-info .t{font-weight:600;font-size:14px;line-height:1.2}.sg-info .s{color:var(--muted);font-size:11px;font-style:italic}.sg-stats{font-size:11.5px;margin-top:4px;color:var(--muted)}.sg-stats.warn{color:var(--warn)}.sg-stats.bad{color:var(--bad)}.sg-list{display:flex;flex-direction:column}.tank-fish{display:flex;align-items:center;gap:10px;padding:6px 10px;border-top:1px solid rgba(255,255,255,.06)}.tank-fish.dead{opacity:.55}.tank-fish .tf-img{width:52px;aspect-ratio:16/11;object-fit:contain;border-radius:6px;background:#0003;flex:none}.tank-fish .grow{flex:1;min-width:0}.tank-fish .grow b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tank-fish .grow small{color:var(--muted);font-size:11.5px}.tf-btns{display:flex;gap:6px;flex:none}.hbar{height:4px;border-radius:2px;background:#ffffff1a;margin-top:4px;max-width:120px;overflow:hidden}.hbar i{display:block;height:100%;background:var(--ok)}.hbar.warn i{background:var(--warn)}.hbar.bad i{background:var(--bad)}@media (max-width: 520px){.sg-thumb{flex-basis:90px}.sg-img{width:90px}.tank-fish{flex-wrap:wrap}}.pedia{display:grid;grid-template-columns:260px 1fr;gap:14px;min-height:0;flex:1}.pedia .lst{overflow-y:auto;min-height:0;max-height:100%}.pedia .det{overflow-y:auto;min-height:0}.pedia canvas{width:100%;height:220px;border-radius:12px;background:radial-gradient(ellipse at 50% 40%,#62d4ff2e,#0003 70%);display:block}.pedia .lst button{display:flex;width:100%;gap:8px;align-items:center;text-align:left;padding:6px;border:0;border-radius:9px;background:transparent}.pedia .lst button:hover,.pedia .lst button.on{background:#ffffff14}.pedia .lst img{width:52px;height:36px;object-fit:contain}.kv{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font-size:12.5px;margin:10px 0}.kv div{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.05);padding:3px 0}.kv span{color:var(--muted)}body.wizard-open #ui>*:not(.toasts):not(.overlay){opacity:0!important;pointer-events:none!important}body.ui-hidden #ui>*:not(.toasts):not(.overlay){opacity:0!important;pointer-events:none!important}body.reduced *{transition:none!important;animation:none!important}@media (max-width: 720px){.panel,.panel.left,.panel.wide{inset:auto 8px 84px;width:auto;max-height:62vh;transform:translateY(14px)}.panel.open{transform:none}.fishcard{bottom:84px;left:8px}.dbtn{min-width:46px;font-size:9.5px}.dbtn span{display:none}.hud-tl{font-size:11px;flex-wrap:wrap;max-width:60vw}.pedia{grid-template-columns:1fr}.pedia .lst{max-height:180px}.gauges{grid-template-columns:1fr 1fr}.modal{padding:16px}.modal h1{font-size:24px}}.stabs{display:flex;gap:4px;padding:8px 10px 0;border-bottom:1px solid var(--line)}.stabs button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 7px;border:0;background:transparent;color:var(--muted);border-radius:9px 9px 0 0;border-bottom:2px solid transparent;font-size:10.5px}.stabs button:hover{color:#fff;background:#ffffff0d}.stabs button.on{color:#fff;border-bottom-color:var(--accent);background:#62d4ff14}.stabs .ti{font-size:18px;line-height:1}.stabs .tl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.stack{flex-direction:column;align-items:stretch;gap:6px}.srow-head{display:flex;align-items:center;gap:8px}.srow-head label{flex:1;color:var(--text)}.srow-head .val{min-width:0;color:var(--text);font-weight:600}.row.stack input[type=range]{width:100%;flex:none}input[type=range].grad{-webkit-appearance:none;appearance:none;height:12px;border-radius:6px;background:var(--track);border:1px solid rgba(255,255,255,.18);padding:0}input[type=range].grad::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.55);box-shadow:0 1px 4px #00000080;cursor:pointer}input[type=range].grad::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.55);cursor:pointer}input[type=range].grad::-moz-range-track{background:transparent}.swatch{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid var(--line-strong);box-shadow:0 0 8px currentColor}.chips{display:flex;flex-wrap:wrap;gap:6px}.lcard{border:1px solid var(--line);border-radius:12px;background:#ffffff09;padding:4px 12px 10px;margin-bottom:12px}.lcard .section{margin-top:10px}.panel header .hicon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#62d4ff24;color:var(--accent);flex:none}.panel header .hicon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.readout{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 4px}.readout>div{background:#00000038;border:1px solid var(--line);border-radius:10px;padding:7px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}.readout small{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em}.readout b{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.readout b.ok{color:var(--ok)}.readout b.warn{color:var(--warn)}.slots{display:flex;flex-direction:column;gap:8px;margin-top:6px}.slot{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#0000002e}.slot.current{border-color:var(--accent);background:#62d4ff14}.slot-ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:19px;background:#62d4ff1f;flex:none}.slot .grow{flex:1;min-width:0}.slot-name{display:flex;align-items:center;gap:8px}.slot-name b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-meta{margin:3px 0 2px}.slot small{color:var(--muted);font-size:11px}.slot-btns{display:flex;flex-direction:column;gap:5px;flex:none}.tag.cur{background:#62d4ff40;color:#fff}.row.stack>input[type=text],.row.stack>textarea{width:100%}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:4px}.tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;border:1px solid var(--line);border-radius:10px;background:#0000002e;color:var(--text)}.tile:hover{border-color:var(--line-strong);background:#ffffff0f}.tile.on{border-color:var(--accent);background:#62d4ff1a;box-shadow:0 0 0 1px var(--accent) inset}.tile .chip{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2)}.tile .chip.wide{width:100%;height:44px;border-radius:7px;background-size:cover;background-position:center}.tile .chip.auto{background:repeating-linear-gradient(135deg,#ffffff1a 0 6px,#ffffff0a 6px 12px)}.tile .tn{font-size:11.5px;text-align:center;line-height:1.2}.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 8px}.tool{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 4px;border:1px solid var(--line);border-radius:10px;background:#0000002e;color:var(--muted)}.tool:hover{color:#fff;border-color:var(--line-strong)}.tool.on{color:#fff;border-color:var(--accent);background:#62d4ff24}.tool .ti{font-size:18px;line-height:1.1}.tool .tl{font-size:11px}.ach-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.ach-total{flex:1;min-width:180px}.ach-total b{font-size:22px}.ach-total span{color:var(--muted)}.ach-tools{margin-bottom:8px}.ach-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.ach-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:#ffffff0a;color:var(--muted);font-size:12.5px}.ach-chip small{opacity:.75;font-size:11px}.ach-chip:hover{color:#fff}.ach-chip.on{color:#fff;border-color:var(--accent);background:#62d4ff24}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.ach-grid .ach{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#ffffff08;margin:0;position:relative}.ach-grid .ach.done{border-color:#4fd18b80;background:#4fd18b12}.ach-grid .ach .grow{flex:1;min-width:0}.ach-tick{color:var(--ok);font-weight:700}.ach-bar{height:5px;border-radius:3px;background:#ffffff1a;margin-top:6px;overflow:hidden}.ach-bar i{display:block;height:100%;background:var(--accent)}.ach-bar.big{height:8px;border-radius:4px;background:#ffffff1f;margin-top:6px}.ach-bar.big i{background:linear-gradient(90deg,var(--accent),var(--accent-2))}.hero-btn{display:flex;align-items:center;gap:18px;width:100%;padding:18px 22px;border-radius:16px;border:1px solid rgba(142,230,255,.55);text-align:left;color:#fff;background:linear-gradient(135deg,#2896c88c,#28bea066);box-shadow:0 0 0 1px #8ee6ff40 inset,0 8px 28px #1e96c847;transition:transform .15s,box-shadow .15s,filter .15s}.hero-btn:hover{transform:translateY(-1px);filter:brightness(1.1);box-shadow:0 0 0 1px #8ee6ff80 inset,0 12px 34px #1e96c866}.hero-btn .hb-play{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:24px;padding-left:4px;background:#fffffff2;color:#0a5f86;box-shadow:0 4px 14px #00000059}.hero-btn .hb-text{display:flex;flex-direction:column;gap:3px;min-width:0}.hero-btn b{font-size:22px;letter-spacing:.01em}.hero-btn .hb-name{font-size:15px;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-btn .hb-chips{margin-top:3px}.hero-btn .tag{background:#00000047;color:#e8f7ff;font-size:11.5px;padding:2px 8px}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.mini{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#ffffff0a;color:var(--text);text-align:left}.mini:hover{border-color:var(--line-strong);background:#ffffff14}.mini .mi{font-size:24px;line-height:1.1;margin-bottom:4px}.mini b{font-size:14px}.mini small{color:var(--muted);font-size:11.5px;line-height:1.3}@media (max-width: 560px){.mini-grid{grid-template-columns:1fr}.hero-btn{padding:14px;gap:12px}.hero-btn .hb-play{width:46px;height:46px}.hero-btn b{font-size:18px}}
