:root{--bg: #F5F3FF;--bg-2: #EEEAFE;--card: #FFFFFF;--card-2: #F7F5FF;--ink: #1F1B2E;--muted: #7A7590;--line: #E8E4F5;--accent: #7C5CFF;--accent-2: #FF5FA2;--accent-3: #FF9F43;--accent-ink: #FFFFFF;--grad: linear-gradient(135deg, #7C5CFF 0%, #B15CFF 45%, #FF5FA2 100%);--grad-soft: linear-gradient(135deg, rgba(124, 92, 255, .12), rgba(255, 95, 162, .12));--ok: #22B07D;--warn: #F5A524;--bad: #EF5B4C;--shadow: 0 1px 2px rgba(60, 40, 120, .05), 0 6px 16px rgba(60, 40, 120, .07), 0 18px 40px rgba(60, 40, 120, .05);--radius: 22px;--ease: cubic-bezier(.2, .8, .2, 1);--header-h: 64px;color-scheme:light}:root[data-theme=dark]{--bg: #100E18;--bg-2: #171425;--card: #1C1930;--card-2: #242039;--ink: #F1EEFF;--muted: #9C96B8;--line: #2D2946;--accent: #9A80FF;--accent-2: #FF77B2;--grad-soft: linear-gradient(135deg, rgba(154, 128, 255, .18), rgba(255, 119, 178, .14));--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font:16px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;background-image:radial-gradient(1200px 500px at 100% -10%,rgba(255,95,162,.1),transparent 60%),radial-gradient(900px 500px at -10% -10%,rgba(124,92,255,.12),transparent 60%);background-attachment:fixed;transition:background-color .3s var(--ease),color .3s var(--ease)}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.header{position:sticky;top:0;z-index:30;padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line)}.header-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:12px;min-height:56px}.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px;letter-spacing:-.02em;border:0;background:none;cursor:pointer;padding:0}.brand img{width:30px;height:30px;border-radius:9px;image-rendering:pixelated}.brand b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1}.nav::-webkit-scrollbar{display:none}.nav button{border:0;background:none;padding:8px 14px;border-radius:999px;font-weight:600;font-size:15px;color:var(--muted);white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .18s var(--ease)}.nav button:hover{color:var(--ink);background:var(--card-2)}.nav button.on{color:#fff;background:var(--grad);box-shadow:0 4px 14px #7c5cff59}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;font-size:17px;flex:none}.avatar{width:38px;height:38px;border-radius:50%;border:0;display:grid;place-items:center;font-weight:700;color:#fff;cursor:pointer;flex:none;box-shadow:0 2px 8px #00000026}@media (max-width: 899px){.header-in{flex-wrap:wrap;row-gap:0}.header-in .spacer{flex:1}.nav{order:3;flex-basis:100%;padding:2px 0 10px}}@media (min-width: 900px){.header-in .spacer{display:none}}.app{max-width:1180px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 100px) max(16px,env(safe-area-inset-left))}@media (min-width: 900px){.app{padding-top:24px;padding-bottom:60px}}.page-head,.top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 12px;flex-wrap:wrap}.title{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0}.sub{color:var(--muted);font-size:14px}.home-grid{display:grid;gap:16px}.grid-2{display:grid;gap:0 16px}@media (min-width: 900px){.home-grid{grid-template-columns:1.15fr 1fr;align-items:start}.grid-2{grid-template-columns:1fr 1fr;align-items:start}.col{display:grid;gap:16px}.col .card{margin:0}.narrow{max-width:820px;margin:0 auto}}.row{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}.chip{border:1px solid var(--line);background:var(--card);padding:8px 14px;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .18s var(--ease)}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.month{display:inline-flex;align-items:center;gap:2px;font-weight:700;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:2px}.month button{border:0;background:none;padding:6px 12px;font-size:18px;color:var(--muted);cursor:pointer;border-radius:999px}.month button:hover{background:var(--card-2)}.month span{padding:0 4px;min-width:120px;text-align:center}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:14px 0;border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.card h3{margin:0 0 10px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.hero{background:var(--grad);color:#fff;border:0;position:relative;overflow:hidden;box-shadow:0 14px 40px #7c5cff59}.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:#ffffff1f}.hero h3,.hero .muted{color:#fffc}.hero .pill{background:#ffffff2e}.big{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.mid{font-size:20px;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--card-2)}.people{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.person{flex:1;min-width:120px;background:#ffffff24;border-radius:16px;padding:10px 12px}.debt{background:var(--grad-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.bar{height:10px;background:var(--card-2);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;border-radius:99px;transition:width .5s var(--ease)}.cat-row{display:grid;grid-template-columns:38px 1fr auto;gap:4px 12px;align-items:center;margin:12px 0}.cat-row .bar{grid-column:2 / 4}.cat-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:18px;grid-row:span 2}.list{list-style:none;margin:0;padding:0}.item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s}.item:last-child{border-bottom:0}.item:hover .d{color:var(--accent)}.emoji{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--card-2);font-size:19px}.item .d{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}.day{font-size:13px;color:var(--muted);margin:18px 0 6px;font-weight:700;text-transform:capitalize}.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:700;cursor:pointer;background:var(--card-2);transition:transform .12s var(--ease),opacity .2s,box-shadow .2s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--grad);color:#fff;box-shadow:0 6px 18px #7c5cff4d}.btn.ghost{background:none;color:var(--muted)}.btn.block{width:100%}.btn.small{padding:8px 12px;font-size:14px}.btn:disabled{opacity:.5}.link{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.seg{display:inline-flex;background:var(--card-2);border-radius:14px;padding:4px;gap:2px}.seg.wrap{flex-wrap:wrap}.seg button{border:0;background:none;padding:7px 12px;border-radius:10px;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .15s var(--ease)}.seg button.on{background:var(--card);color:var(--accent);box-shadow:0 2px 6px #00000014}.field{display:block;margin:12px 0}.field>span{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}.input{width:100%;border:1.5px solid var(--line);background:var(--card-2);border-radius:14px;padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.input.huge{font-size:22px;padding:16px}.color{width:100%;height:42px;border:1.5px solid var(--line);border-radius:12px;background:none;padding:2px;cursor:pointer}.swatch{width:34px;height:34px;border-radius:50%;border:3px solid var(--card);cursor:pointer;outline-offset:1px}.switch{position:relative;display:inline-block;width:50px;height:30px;flex:none}.switch input{opacity:0;width:0;height:0}.switch i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line);border-radius:99px;transition:.2s;cursor:pointer}.switch i:after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.2s var(--ease);box-shadow:0 1px 3px #0003}.switch input:checked+i{background:var(--accent)}.switch input:checked+i:after{transform:translate(20px)}.steps{padding-left:20px;line-height:1.6;font-size:14px}.steps li{margin:6px 0}.fab{position:fixed;z-index:25;right:max(20px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 20px);height:60px;min-width:60px;padding:0 22px;border-radius:999px;border:0;background:var(--grad);color:#fff;font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px;justify-content:center;cursor:pointer;box-shadow:0 10px 28px #7c5cff73;transition:transform .15s var(--ease)}.fab span{font-size:28px;line-height:1}.fab:active{transform:scale(.94)}@media (max-width: 899px){.fab .lbl{display:none}.fab{padding:0}}.veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a2866;z-index:40;animation:fade .2s var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-width:560px;margin:0 auto;background:var(--card);border-radius:26px 26px 0 0;padding:8px 18px calc(env(safe-area-inset-bottom) + 20px);max-height:92dvh;overflow-y:auto;animation:up .32s var(--ease)}.sheet .grab{width:40px;height:5px;background:var(--line);border-radius:9px;margin:4px auto 12px}@media (min-width: 900px){.sheet{bottom:auto;top:50%;left:50%;right:auto;width:540px;transform:translate(-50%,-50%);border-radius:26px;padding:20px 24px 24px;animation:pop .25s var(--ease)}.sheet .grab{display:none}}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes fade{0%{opacity:0}}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 96px);transform:translate(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:14px;font-size:14px;font-weight:600;z-index:60;animation:fade .2s var(--ease);max-width:90vw;box-shadow:var(--shadow)}.banner{border-radius:14px;padding:10px 12px;font-size:14px;margin:8px 0}.banner.ok{background:color-mix(in srgb,var(--ok) 15%,transparent)}.banner.warn{background:color-mix(in srgb,var(--warn) 18%,transparent)}.yard{position:relative;height:70px;margin:0 0 4px}.yard canvas{width:100%;height:100%;display:block;image-rendering:pixelated;cursor:pointer}.bubble{position:absolute;top:-8px;background:var(--card);box-shadow:var(--shadow);border-radius:14px;padding:6px 12px;font-size:13px;font-weight:600;white-space:nowrap;transform:translate(-50%);animation:fade .2s var(--ease);pointer-events:none;z-index:2}.pets-row{display:flex;gap:10px;flex-wrap:wrap}.pet-tile{border:1.5px solid var(--line);background:var(--card-2);border-radius:16px;padding:10px;display:grid;justify-items:center;gap:4px;min-width:96px;cursor:pointer;font-weight:600;font-size:13px}.pet-tile.add{border-style:dashed;color:var(--muted);align-content:center}.pet-stage{display:grid;place-items:center;padding:18px;background:var(--grad-soft);border-radius:18px;margin-bottom:4px}.empty{text-align:center;color:var(--muted);padding:28px 8px}.stmt-row{padding:12px 0;border-bottom:1px solid var(--line)}.stmt-row.dim{opacity:.45}.spin{display:inline-block;width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:rot .8s linear infinite;vertical-align:middle}@keyframes rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
