* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; user-select:none; }
html, body, #app { width:100%; height:100%; }
body { background:#151a24; color:#eef2f7; font-family:"Pretendard","Apple SD Gothic Neo",sans-serif; overflow:hidden; }
#app { display:flex; flex-direction:column; max-width:520px; margin:0 auto; padding:10px; gap:10px; }
.hud { background:#1e2533; border-radius:12px; padding:12px; display:flex; flex-direction:column; gap:6px; font-size:14px; }
.row { display:flex; justify-content:space-between; }
.debt { font-size:22px; font-weight:800; color:#ff6b6b; text-align:center; }
.bar { height:8px; background:#2c3648; border-radius:4px; overflow:hidden; }
#cycleBar { height:100%; width:0%; background:#ffb347; }
.stage { flex:1; display:flex; align-items:center; justify-content:center; position:relative; min-height:120px; }
#work { width:150px; height:150px; border-radius:50%; border:none; background:#3b82f6; color:#fff; font-size:26px; font-weight:800; cursor:pointer; box-shadow:0 6px 0 #1e4fa3; }
#work:active { transform:translateY(4px) scale(.97); box-shadow:0 2px 0 #1e4fa3; }
#floats { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.float { position:absolute; left:50%; top:30%; transform:translateX(-50%); color:#7dff9e; font-weight:800; font-size:20px; animation:rise .7s forwards; }
@keyframes rise { to { transform:translateX(-50%) translateY(-60px); opacity:0; } }
.actions { display:flex; gap:8px; }
.actions button { flex:1; padding:12px 4px; border:none; border-radius:10px; font-size:15px; font-weight:700; cursor:pointer; color:#fff; line-height:1.3; }
.actions small { font-weight:400; font-size:11px; opacity:.85; }
#pay { background:#22c55e; } #upg { background:#a855f7; } #loan { background:#ef4444; }
.actions button:active { transform:scale(.96); }
#toasts { position:fixed; top:12px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; gap:6px; z-index:10; width:90%; max-width:420px; pointer-events:none; }
.toast { background:rgba(0,0,0,.8); padding:8px 14px; border-radius:8px; font-size:13px; animation:pop .2s; }
@keyframes pop { from { transform:scale(.8); opacity:0; } }
#over { position:fixed; inset:0; background:rgba(0,0,0,.8); display:flex; align-items:center; justify-content:center; z-index:20; }
#over.hidden { display:none; }
.panel { background:#1e2533; padding:28px; border-radius:16px; text-align:center; display:flex; flex-direction:column; gap:14px; }
.big { font-size:26px; font-weight:800; color:#ff6b6b; }
#restart { padding:12px 28px; border:none; border-radius:10px; background:#3b82f6; color:#fff; font-size:17px; font-weight:800; cursor:pointer; }