:root{--ink:#6b4f2a;--paper:#fff8e7;--paper2:#f6e4b6;--accent:#e0503c;color:var(--ink);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif}*{box-sizing:border-box}html,body,#root{background:#bfe6fa;height:100%;margin:0;overflow:hidden}.app{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:100%;position:relative}.stage{cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}button{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);cursor:pointer;box-shadow:0 2px 0 var(--ink);border-radius:10px;padding:6px 12px}button:hover{background:var(--paper2)}button:active{box-shadow:none;transform:translateY(2px)}button:disabled{opacity:.5;cursor:default}button.on{background:#ffd23f}button.primary{background:#9ccc76}button.link{box-shadow:none;background:0 0;border:0;text-decoration:underline}.topbar{border:2px solid var(--ink);background:#fff8e7eb;border-radius:14px;align-items:center;gap:12px;padding:6px 10px;display:flex;position:absolute;top:8px;left:8px;right:8px}.brand{align-items:center;gap:8px;font-size:18px;display:flex}.brand img{width:32px;height:32px}.stats{opacity:.85;flex:1;font-size:13px}.account{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.account button{padding:4px 10px;font-size:13px}.sync{font-size:12px}.sync.error{color:var(--accent)}.tools{border:2px solid var(--ink);background:#fff8e7eb;border-radius:14px;flex-direction:column;gap:8px;padding:8px;display:flex;position:absolute;top:70px;left:8px}.dock{border:2px solid var(--ink);background:#fff8e7f0;border-radius:14px;padding:8px 10px;position:absolute;bottom:8px;left:8px;right:8px}.cats,.items{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.cats{margin-bottom:6px}.cats button{padding:3px 12px;font-size:13px}.items button{flex-direction:column;align-items:center;min-width:74px;padding:4px 8px;font-size:13px;display:flex}.items i{border:2px solid var(--ink);border-radius:3px 3px 0 0;width:22px;height:14px;margin-bottom:2px}.items small{opacity:.75;font-size:11px}.msg{min-height:18px;margin-top:6px;font-size:13px}.story{background:var(--paper);border:2px solid var(--ink);max-width:min(560px,90vw);box-shadow:0 4px 0 var(--ink);cursor:pointer;border-radius:14px;padding:12px 16px;line-height:1.7;position:absolute;top:80px;left:50%;transform:translate(-50%)}.story small{opacity:.6;margin-top:6px;display:block}.modal{background:#3c280a59;place-items:center;display:grid;position:absolute;inset:0}.card{background:var(--paper);border:3px solid var(--ink);border-radius:16px;flex-direction:column;gap:10px;width:min(340px,90vw);padding:18px;display:flex}.card h2{margin:0;font-size:20px}.card .hint{opacity:.75;margin:0;font-size:12px}.card input{font:inherit;border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px}.err{color:var(--accent);font-size:13px}@media (width<=640px){.brand b{display:none}}.login{background:#faf1df;border-radius:22px;flex-direction:column;gap:14px;width:min(460px,92vw);padding:22px 20px 20px;display:flex;box-shadow:0 10px 40px #3c280a4d}.login-title{text-align:center;letter-spacing:1px;color:#7a5a3a;font-size:15px}.login-row{align-items:center;gap:12px;display:flex}.login input{min-width:0;font:inherit;color:#5a3b24;background:#fdf7ea;border:2px solid #ead9bb;border-radius:18px;outline:none;flex:1;padding:14px 18px;font-size:17px}.login input::placeholder{color:#a8957c}.login input:focus{border-color:#6b3a2a}.login .pill{font:inherit;box-shadow:none;cursor:pointer;white-space:nowrap;border:2px solid #6b3a2a;border-radius:999px;padding:13px 22px;font-size:17px}.login .pill.ghost{color:#6b3a2a;background:0 0}.login .pill.solid{color:#fff6e6;background:#6b3a2a;align-self:flex-start;padding:16px 40px;font-size:20px}.login .pill:active{opacity:.85;transform:none}.login .pill:disabled{opacity:.6}.stats{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{border:2px solid var(--ink);background:#fdf7ea;border-radius:999px;padding:2px 10px;font-size:13px}.chip b{margin-left:2px}.chip.dim{opacity:.75;background:0 0;border-color:#0000}.speed{gap:4px;margin-left:6px;display:flex}.speed button{box-shadow:none;border-radius:8px;padding:2px 8px;font-size:12px}@media (width<=640px){.stats{display:flex}.chip.dim{display:none}}
