@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;700;800&display=swap";:root{--coffee:#6f4e37;--ivory:#fff8e7;--blush:#f7dad9;--lemon:#fbf2c0;--rose:#ffd0cd;--mint:#cfebd8;--bg:var(--ivory);--card:#fffdf8;--ink:var(--coffee);--text:var(--coffee);--muted:#8c6c5a;--accent:var(--rose);--accent-soft:var(--mint);--danger:#c95d68;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{min-height:100%;color:var(--text);background-color:var(--bg);background-image:radial-gradient(circle,#6f4e3729 1.5px,#0000 1.6px),radial-gradient(circle,#6f4e3729 1.5px,#0000 1.6px);background-position:0 0,24px 24px;background-size:48px 48px;margin:0}#root{width:100%;max-width:480px;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top,0px)) 16px 24px;margin:0 auto}.page{padding-bottom:120px}.card{background:var(--card);border:2px solid var(--coffee);box-shadow:5px 5px 0 var(--mint);border-radius:20px;padding:20px}.card+.card{margin-top:16px}h1,h2{margin-top:0;font-weight:800}form{flex-direction:column;gap:10px;margin:12px 0;display:flex}.row{gap:8px;display:flex}.row>*{flex:1;min-width:0}.between{justify-content:space-between;align-items:center;gap:8px;display:flex}.balance{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-weight:700;display:flex}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:700}.small-text{font-size:13px}.grow{flex:1;min-width:0}.code{background:var(--accent-soft);letter-spacing:3px;text-align:center;border-radius:12px;padding:10px;font-size:28px;font-weight:800}.mascot{object-fit:contain;width:96px;height:96px;margin:0 auto 8px;display:block}input,select{width:100%;color:var(--coffee);background:var(--card);border:2px solid var(--coffee);font:inherit;border-radius:12px;padding:12px;font-size:16px}input:focus,select:focus{outline:3px solid var(--rose);outline-offset:1px}button{width:100%;color:var(--coffee);background:var(--rose);border:2px solid var(--coffee);box-shadow:3px 3px 0 var(--coffee);cursor:pointer;font:inherit;border-radius:12px;padding:12px;font-size:16px;font-weight:800}button:active{box-shadow:1px 1px 0 var(--coffee);transform:translate(2px,2px)}button:disabled{opacity:.6;cursor:not-allowed}button.link{width:auto;color:var(--coffee);box-shadow:none;background:0 0;border:0;padding:0;text-decoration:underline}button.link:active{transform:none}button.small{width:auto;box-shadow:2px 2px 0 var(--coffee);padding:6px 12px;font-size:14px}button.x{background:var(--card);width:36px;box-shadow:none;padding:4px 0}button.secondary,button.danger{background:var(--card)}button.danger{color:var(--danger)}.back{margin-bottom:12px;font-weight:800}.tiles{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:46px 0 8px;display:grid}.tile{border:2px solid var(--coffee);border-radius:16px;min-height:88px;padding:12px;position:relative}button.tile{width:100%;color:inherit;box-shadow:none;text-align:left;font-weight:400;display:block}button.tile:active{box-shadow:none;transform:none}.tile.mine{background:var(--blush)}.tile.theirs{background:var(--lemon)}.tile-total{margin-top:4px;font-size:20px;font-weight:800}.peek{pointer-events:none;-webkit-user-select:none;user-select:none;width:60px;height:auto;position:absolute;bottom:calc(100% - 8px);right:12px}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px dashed #6f4e3740;align-items:center;gap:12px;padding:10px 0;display:flex}.list li:first-child{border-top:0}.list .icon{font-size:24px}button.entry{width:100%;color:inherit;box-shadow:none;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:0;font-weight:400;display:flex}button.entry:active{box-shadow:none;transform:none}.recent-empty{justify-content:center;align-items:flex-end;min-height:150px;padding:8px 0 0;display:flex;overflow:visible}.recent-empty-image{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:min(250px,95%);max-height:165px;display:block}.tabbar{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:10;background:var(--card);border:2px solid var(--coffee);width:auto;max-width:452px;height:76px;box-shadow:4px 4px 0 var(--mint);border-radius:24px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;margin:0 auto;padding:7px;display:grid;position:fixed;left:14px}.tabbar button{width:100%;min-width:0;height:58px;box-shadow:none;background:0 0;border:2px solid #0000;border-radius:17px;justify-content:center;align-items:center;padding:3px 10px;display:flex;overflow:hidden}.tabbar button.active{background:var(--lemon);border-color:var(--coffee)}.tabbar button:active{box-shadow:none;transform:scale(.96)}.tab-icon{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;max-width:100%;height:50px;display:block}.tab-icon-home{width:76px}.tab-icon-spending{width:96px}button.fab{right:calc(max(0px,50vw - 240px) + 20px);bottom:calc(102px + env(safe-area-inset-bottom,0px));z-index:20;background:var(--card);border:2px solid var(--coffee);width:68px;height:68px;box-shadow:4px 4px 0 var(--mint);border-radius:50%;padding:6px;font-size:30px;line-height:1;position:fixed}button.fab:active{box-shadow:2px 2px 0 var(--mint);transform:scale(.94)}.fab-img img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.fab-plus{width:26px;height:26px;color:var(--coffee);background:var(--rose);border:2px solid var(--coffee);text-align:center;border-radius:50%;place-items:center;font-size:18px;font-weight:800;line-height:1;display:grid;position:absolute;top:-4px;right:-4px}.overlay{z-index:50;background:#6f4e3761;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:480px;max-height:90dvh;padding:20px 16px calc(24px + env(safe-area-inset-bottom,0px));background:var(--ivory);border:2px solid var(--coffee);border-bottom:0;border-radius:24px 24px 0 0;overflow-y:auto}.monthbar{justify-content:space-between;align-items:center;margin:8px 0 12px;display:flex}button.chip{background:var(--card);width:auto;box-shadow:none;padding:6px 16px;font-size:18px}button.chip:disabled{opacity:.4}.big-total{margin-bottom:6px;font-size:28px;font-weight:800}.cat-row{margin:12px 0}.bar{background:var(--card);border:2px solid var(--coffee);border-radius:8px;height:12px;margin-top:4px;overflow:hidden}.bar-fill{background:var(--rose);height:100%}@media (width<=380px){#root{padding-left:12px;padding-right:12px}.card{padding:16px}.tiles{gap:8px}.tile{padding:10px}.tile-total{font-size:18px}.tabbar{left:10px;right:10px}.tab-icon-home{width:68px}.tab-icon-spending{width:86px}}.tab-icon-game{width:80px}.menu{gap:12px;margin:0;padding:0;list-style:none;display:grid}button.menu-item{background:var(--ivory);text-align:left;align-items:center;gap:14px;font-weight:400;display:flex}button.menu-item .icon{font-size:30px}button.chip.on{background:var(--rose)}.chips{gap:6px;display:flex}.wheel-tabs{flex-wrap:wrap;gap:8px;margin:8px 0 14px;display:flex}.wheel-wrap{aspect-ratio:1;width:min(300px,100%);margin:22px auto 14px;position:relative}.wheel{will-change:transform;width:100%;height:100%}.wheel svg{width:100%;height:100%;display:block}.wheel-slice{stroke:var(--coffee);stroke-width:1px}.wheel-label{fill:var(--coffee);pointer-events:none;font-weight:800}.wheel-ring{fill:none;stroke:var(--coffee);stroke-width:2.5px}.wheel-hub{fill:var(--card);stroke:var(--coffee);stroke-width:2px}.wheel-pointer{z-index:2;border-left:12px solid #0000;border-right:12px solid #0000;border-top:22px solid var(--coffee);width:0;height:0;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.wheel-result{text-align:center;min-height:34px;margin:4px 0 8px;font-size:22px;font-weight:800}form.row{flex-direction:row;align-items:center}form.row>button{flex:none;width:auto;padding:12px 18px}.chip-row{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}button.chip.tiny{padding:4px 12px;font-size:14px}.badge{color:var(--coffee);border:2px solid var(--coffee);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-block}.badge.bad{background:#f4a6ad}.badge.soon{background:#ffd9a8}.badge.warn{background:var(--lemon)}.badge.ok{background:var(--mint)}
