:root{--bg:#0f172a;--panel:#111c33;--line:#1e293b;--text:#f1f5f9;--muted:#94a3b8;--gold:#fbbf24;--good:#34d399;--bad:#fb7185}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;user-select:none;-webkit-user-select:none}
.hidden{display:none!important}
small,.muted{color:var(--muted)}
#app{height:100%;display:flex;flex-direction:column}
#top-bar{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 14px;background:#0b1220;border-bottom:1px solid var(--line);flex-wrap:wrap}
.grp{display:flex;align-items:center;gap:12px;font-size:13px;flex-wrap:wrap}
#title{font-weight:700;font-size:17px;color:var(--gold);cursor:pointer}
main{flex:1;display:flex;min-height:0}
#canvas-wrap{flex:1;position:relative;min-width:0;overflow:hidden}
#aquarium{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#side{width:380px;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.side-head{padding:10px 14px;border-bottom:1px solid var(--line)}
.side-head h2{margin:0;font-size:14px;color:var(--gold)}
#panel{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;font-size:13px}
#bottom-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:#0b1220;border-top:1px solid var(--line);flex-wrap:wrap}
nav{display:flex;gap:4px;flex-wrap:wrap}
.btn{background:#1e293b;color:var(--text);border:1px solid #334155;border-radius:8px;padding:6px 11px;font-size:12px;cursor:pointer;font-family:inherit}
.btn:hover{background:#334155}
.btn.primary{background:var(--gold);color:#1c1917;border-color:var(--gold);font-weight:700}
.btn.primary:hover{background:#f59e0b}
.btn.danger{background:#3b0f1a;color:#fda4af;border-color:#7f1d1d}
.btn.feed{background:#047857;border-color:#059669}
.btn.nav.active{background:rgba(251,191,36,.2);color:var(--gold);border-color:rgba(251,191,36,.5)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.card{background:#16223b;border:1px solid #243049;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}
.card.special{border-color:rgba(251,191,36,.55)}
.card.sel{border-color:var(--gold)}
.card.dim{opacity:.55}
.card.note{background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.35)}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:#243049;color:#cbd5e1}
.tag.gold{background:rgba(251,191,36,.2);color:var(--gold)}
.tag.good{background:rgba(52,211,153,.2);color:var(--good)}
.sec{font-weight:700;color:var(--gold);font-size:12px;margin-top:4px}
select{width:100%;background:#0b1220;color:var(--text);border:1px solid #334155;border-radius:6px;padding:7px;font-size:12px;font-family:inherit}
#toasts{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;pointer-events:none;z-index:5}
#toasts div{background:rgba(15,23,42,.94);color:#fde68a;border:1px solid rgba(251,191,36,.4);padding:6px 14px;border-radius:999px;font-size:12px}
#egg-banner{position:absolute;top:10px;left:10px;background:var(--gold);color:#1c1917;border:0;border-radius:999px;padding:6px 14px;font-weight:700;font-size:12px;cursor:pointer}
#edit-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(15,23,42,.9);border:1px solid var(--gold);padding:6px 14px;border-radius:999px;font-size:12px;pointer-events:none}
.floating{position:fixed;top:12px;right:12px;z-index:50}
#readonly-banner{background:#7f1d1d;color:#fecaca;text-align:center;padding:6px;font-size:12px}
body.zen #top-bar,body.zen #bottom-nav,body.zen #side{display:none!important}
body.mini #app{position:fixed;left:0;right:0;bottom:0;height:240px;border-top:2px solid rgba(251,191,36,.4);box-shadow:0 -10px 30px rgba(0,0,0,.7)}
body.mini #side,body.mini #bottom-nav{display:none!important}
@media (max-width:820px){main{flex-direction:column}#side{width:100%;height:42%;border-left:0;border-top:1px solid var(--line)}.hide-sm{display:none}}
