:root{--bg: #eef1ee;--paper: #ffffff;--ink: #1c2420;--muted: #6b746f;--line: #dfe4e0;--green: #157347;--green-soft: #dcf2e3;--amber: #8a5a00;--amber-soft: #fdf0cf;--red: #b3261e;--radius: 14px;font-size:16px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,system-ui,sans-serif}body{display:flex;justify-content:center;min-height:100vh}#app{width:100%;max-width:430px;min-height:100vh;background:var(--paper);display:flex;flex-direction:column}@media(min-width:480px){#app{margin:24px 0;min-height:calc(100vh - 48px);border-radius:28px;box-shadow:0 20px 60px #0000001f;overflow:hidden}}header{padding:18px 20px 12px;display:flex;align-items:baseline;justify-content:space-between}header h1{font-size:1.25rem;margin:0;font-weight:700}header .who{color:var(--muted);font-size:.9rem}header button{background:none;border:0;color:var(--muted);font-size:.9rem;padding:0;cursor:pointer}main{flex:1;padding:0 20px 24px}h2{font-size:1rem;margin:22px 0 10px;font-weight:700}p.hint{color:var(--muted);font-size:.9rem;margin:6px 0 0}.num{font-variant-numeric:tabular-nums}.receipt{background:var(--green-soft);border-radius:var(--radius);padding:16px 18px}.receipt .row{display:flex;justify-content:space-between;padding:5px 0;font-size:.95rem}.receipt .row.deduct{color:var(--muted)}.receipt .row.deduct .val:before{content:"−";margin-right:2px}.receipt .total{margin-top:8px;padding-top:12px;border-top:2px dashed rgba(21,115,71,.35);display:flex;justify-content:space-between;align-items:baseline}.receipt .total .big{font-size:2.4rem;font-weight:800;color:var(--green);letter-spacing:-.02em;line-height:1}.receipt .total .sub{color:var(--green);font-size:.85rem}.receipt.neg .big{color:var(--red)}.service{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.service:last-child{border-bottom:0}.service .body{flex:1;min-width:0}.service .name{font-weight:600}.service .meta{font-size:.82rem;color:var(--muted);margin-top:2px}.service .price{font-weight:600;white-space:nowrap}.tag{display:inline-block;font-size:.75rem;padding:2px 7px;border-radius:999px;background:#f0f2f0;color:var(--muted)}.tag.lock{background:var(--amber-soft);color:var(--amber)}.tag.end{background:#fde4e2;color:var(--red)}.switch{position:relative;width:46px;height:28px;flex:none}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{position:absolute;inset:0;background:#cfd5d1;border-radius:999px;transition:background .15s;cursor:pointer}.switch span:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{transform:translate(18px)}.switch input:focus-visible+span{outline:3px solid #9cd3b3}.outlook{display:flex;gap:8px;margin-top:10px}.outlook div{flex:1;background:#f3f5f3;border-radius:12px;padding:10px 8px;text-align:center}.outlook .m{font-size:.78rem;color:var(--muted)}.outlook .w{font-weight:700;margin-top:2px}.outlook .changed{background:var(--amber-soft)}.outlook .changed .w{color:var(--amber)}.log{font-size:.9rem}.log div{padding:8px 0;border-bottom:1px solid var(--line)}.log small{display:block;color:var(--muted);font-size:.78rem}input[type=text],input[type=number],input[type=email],select{width:100%;font:inherit;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:none;border-color:var(--green)}.field{margin-bottom:10px}.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.inline{display:flex;gap:8px}.inline>*{flex:1}.btn{font:inherit;font-weight:600;padding:13px 18px;border-radius:12px;border:0;background:var(--green);color:#fff;cursor:pointer;width:100%}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn.small{width:auto;padding:8px 12px;font-size:.85rem}.btn.danger{color:var(--red)}.btn:focus-visible{outline:3px solid #9cd3b3}nav.tabs{display:flex;border-top:1px solid var(--line);background:var(--paper)}nav.tabs button{flex:1;font:inherit;font-size:.85rem;padding:12px 0 14px;border:0;background:none;color:var(--muted);border-top:3px solid transparent;margin-top:-1px;cursor:pointer}nav.tabs button.active{color:var(--green);border-top-color:var(--green);font-weight:600}.child-card{border:1.5px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.child-card .head{display:flex;justify-content:space-between;align-items:baseline}.child-card .head .name{font-weight:700;font-size:1.05rem}.child-card .head .weekly{color:var(--green);font-weight:700}.child-card ul{margin:8px 0 0;padding:0;list-style:none;font-size:.9rem;color:var(--muted)}.child-card li{display:flex;justify-content:space-between;padding:3px 0}.login{padding-top:48px}.login .brand{font-size:2rem;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}.login .brand span{color:var(--green)}.sent{text-align:center;padding-top:60px}.sent .env{font-size:3rem}.empty{color:var(--muted);font-size:.9rem;padding:12px 0}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.hint.error{color:var(--red)}.receipt .total>.sub{white-space:nowrap;flex:none;margin-left:12px}.child-card li .num{white-space:nowrap;flex:none;margin-left:8px}.switch input:disabled+span{opacity:.5;cursor:default}.btn:disabled{opacity:.6;cursor:default}.child-card li .btn.small{padding:2px 8px;margin-left:6px;line-height:1}.savebar{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:10px 20px 14px;box-shadow:0 -8px 20px #0000000f}.savebar .hint{margin:0 0 8px}
