:root{--bg:#fff7ed;--surface:#fff;--surface-2:#fff1e3;--border:#f1dcc7;--text:#2b2118;--dim:#8a7563;--accent:#f97316;--accent-text:#c2410c;--plus:#059669;--minus:#dc2626;--warn-bg:#fef3c7;--ok-bg:#dcfce7;--sat:#2563eb;--sun:#dc2626;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#17120e;--surface:#221b15;--surface-2:#2c231b;--border:#3d3127;--text:#f3ebe3;--dim:#ab9886;--accent:#fb923c;--accent-text:#fdba74;--plus:#34d399;--minus:#f87171;--warn-bg:#3b2f12;--ok-bg:#12301f;--sat:#60a5fa;--sun:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--bg:#17120e;--surface:#221b15;--surface-2:#2c231b;--border:#3d3127;--text:#f3ebe3;--dim:#ab9886;--accent:#fb923c;--accent-text:#fdba74;--plus:#34d399;--minus:#f87171;--warn-bg:#3b2f12;--ok-bg:#12301f;--sat:#60a5fa;--sun:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,sans-serif;font-size:16px}button,input,select{font:inherit;color:inherit}input,select{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}.app{min-height:100dvh;padding-bottom:calc(72px + var(--safe-bottom))}.content{max-width:640px;margin:0 auto;padding:12px 14px}.topbar{z-index:10;padding:calc(8px + var(--safe-top)) 14px 8px;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar .title{flex:1;font-size:18px;font-weight:700}.kids{flex:1;gap:6px;display:flex;overflow-x:auto}.kid{border:2px solid var(--kid);color:var(--kid);background:0 0;border-radius:999px;flex:none;padding:7px 16px;font-weight:700}.kid.on{background:var(--kid);color:#fff}.sync-error{background:var(--warn-bg);border:0;border-radius:8px;padding:4px 8px;font-size:12px}.tabbar{background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--dim);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 10px;font-size:11px;display:flex}.tab.on{color:var(--accent-text);font-weight:700}.tab-icon{font-size:22px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;margin-top:8px;padding:12px;font-weight:600;display:block}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.small{width:auto;margin:0;padding:6px 12px;font-size:14px;display:inline-block}.btn.big{padding:18px;font-size:20px}.btn:disabled{opacity:.5}.btn.wide{margin-top:12px}.link{color:var(--accent-text);background:0 0;border:0;padding:8px 0;font-size:14px}.link.small{padding:0 0 0 8px;font-size:13px}.link.danger{color:var(--minus);margin-top:12px;display:block}.icon-btn{background:var(--surface-2);border:0;border-radius:50%;flex:none;width:36px;height:36px;font-size:18px}.icon-btn.small{width:28px;height:28px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:10px 0;padding:14px}.card.warn{background:var(--warn-bg)}.card.paid{opacity:.85}.row{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.link-row{text-align:left;background:0 0;border:0;width:100%;padding:0}.grow{flex:1}.dim{color:var(--dim);font-size:.9em;font-weight:400}.plus{color:var(--plus)}.minus{color:var(--minus)}.hint{color:var(--dim);font-size:13px;line-height:1.6}.center{text-align:center}.error{color:var(--minus);font-size:14px}.banner{background:var(--warn-bg);border-radius:10px;margin-bottom:10px;padding:10px 12px;font-size:14px}.banner.ok{background:var(--ok-bg)}.section-title{color:var(--dim);margin:18px 0 8px;font-size:14px;font-weight:700}.field{margin:10px 0;display:block}.field>span{color:var(--dim);margin-bottom:4px;font-size:13px;display:block}.seg{background:var(--surface-2);border-radius:12px;gap:3px;padding:3px;display:flex}.seg button{background:0 0;border:0;border-radius:9px;flex:1;padding:9px;font-weight:600}.seg button.on{background:var(--surface);color:var(--accent-text);box-shadow:0 1px 3px #0000001a}.seg.small{flex:none}.seg.small button{padding:6px 10px}.empty{text-align:center;color:var(--dim);padding:60px 20px}.setup{max-width:420px;padding:calc(40px + var(--safe-top)) 20px 40px;margin:0 auto}.setup h1{text-align:center;margin:8px 0 20px}.setup-logo{text-align:center;font-size:64px}.choice-row{gap:10px;display:flex}.month-nav{align-items:center;gap:10px;margin:4px 0 10px;display:flex}.month-title{text-align:center;flex:1;font-size:18px;font-weight:700}.summary{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.summary>div{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:10px 12px;display:flex}.summary .label{color:var(--dim);font-size:12px}.summary b{font-size:22px}.summary .sub{color:var(--dim);font-size:11px}.cal{grid-template-columns:repeat(7,1fr) 1.15fr;gap:3px;display:grid}.cal-head{text-align:center;color:var(--dim);padding:4px 0;font-size:12px}.cal-head.sat{color:var(--sat)}.cal-head.sun{color:var(--sun)}.cal-head.week{font-weight:700}.cal-day{aspect-ratio:1/1.15;border:1px solid var(--border);background:var(--surface);border-radius:9px;flex-direction:column;justify-content:space-between;align-items:center;min-width:0;padding:3px 2px;display:flex}.cal-day .num{font-size:13px}.cal-day.sat .num{color:var(--sat)}.cal-day.sun .num{color:var(--sun)}.cal-day .amt{font-size:12px;font-weight:700}.cal-day.other{opacity:.4}.cal-day.future{background:var(--surface-2)}.cal-day.today{border:2px solid var(--accent)}.cal-week{background:var(--surface-2);border-radius:9px;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex}.cal-week .amt{font-size:13px;font-weight:700}.cal-week .mark{color:var(--minus);font-size:10px}.cal-week.paid .mark{color:var(--plus)}.sheet-backdrop{z-index:50;background:#00000059;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:88dvh;padding:14px 14px calc(20px + var(--safe-bottom));border-radius:18px 18px 0 0;margin:0 auto;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;font-size:18px;display:flex}.item-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;display:grid}.item-btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;display:flex}.item-btn:active{transform:scale(.96)}.item-btn .emoji{font-size:26px}.item-btn .name{text-align:center;font-size:13px}.item-btn .amt{font-size:14px;font-weight:700}.item-btn.plus .amt{color:var(--plus)}.item-btn.minus .amt{color:var(--minus)}.custom{align-items:center;gap:6px;margin-top:10px;display:flex}.yen{text-align:right;flex:none;width:80px}.flash{left:50%;bottom:calc(40px + var(--safe-bottom));background:var(--text);color:var(--bg);z-index:60;white-space:nowrap;border-radius:999px;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.entries{margin:0;padding:0;list-style:none}.entries li{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.entries .name{flex:1;min-width:0}.entries .by{color:var(--dim);font-size:12px}.entries .amt{font-weight:700}.entries.compact li{padding:5px 0;font-size:14px}.week-line{text-align:right;margin-top:12px}.kid-name{font-size:18px}.big-yen{font-size:26px;font-weight:800}.breakdown{flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:13px;display:flex}.paid-line{background:var(--ok-bg);border-radius:10px;margin-top:10px;padding:10px;font-size:14px}.item-row{align-items:center;gap:6px;margin:6px 0;display:flex}.emoji-in{text-align:center;flex:none;width:48px;padding:10px 4px}.colors{gap:8px;margin:6px 0;display:flex}.color{border:3px solid #0000;border-radius:50%;width:30px;height:30px}.color.on{border-color:var(--text)}.update-bar{background:var(--accent);color:#fff;align-items:center;gap:8px;padding:8px 14px;font-size:14px;display:flex}.update-bar button{color:var(--accent-text);background:#fff;border:0;border-radius:8px;padding:5px 12px;font-weight:700}.print-view{z-index:100;background:var(--surface-2);padding:calc(10px + var(--safe-top)) 12px calc(30px + var(--safe-bottom));position:fixed;inset:0;overflow-y:auto}.print-toolbar{max-width:640px;margin:0 auto 12px}.check-label{align-items:center;gap:4px;margin-right:12px;font-size:15px;display:inline-flex}.check-label input{width:auto}.print-area{max-width:640px;margin:0 auto}.paper{color:#222;aspect-ratio:210/297;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border-radius:6px;flex-direction:column;margin-bottom:16px;padding:7% 7% 5%;font-size:clamp(9px,2.4vw,15px);display:flex;box-shadow:0 2px 10px #00000026}.paper-head{border-bottom:.3em solid var(--kid);margin-bottom:.6em;padding-bottom:.4em}.paper-name{color:var(--kid);font-size:2.6em;font-weight:800}.paper-title{font-size:1.6em;font-weight:700}.paper-week{text-align:right;margin-bottom:.4em;font-size:1.1em}.paper-sec{border-radius:.4em;margin:.8em 0 .4em;padding:.2em .6em;font-size:1.5em}.paper-sec.plus{color:#065f46;background:#dcfce7}.paper-sec.minus{color:#991b1b;background:#fee2e2}.paper-list{grid-template-columns:1fr 1fr;gap:.5em 1.2em;margin:0;padding:0;list-style:none;display:grid}.paper-list li{border-bottom:1px dashed #ccc;align-items:center;gap:.5em;padding:.4em 0;font-size:1.35em;display:flex}.p-emoji{margin-right:.2em;font-size:1.3em}.p-name{flex:1;font-weight:600}.p-amt{white-space:nowrap;font-weight:800}.paper-list.plus .p-amt{color:#047857}.paper-list.minus .p-amt{color:#b91c1c}.paper-empty{color:#888}.paper-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:1.1em}.paper-table th,.paper-table td{text-align:center;border:1px solid #999;padding:.35em .2em}.paper-table th{background:#f5f5f5}.paper-table .t-name{text-align:left;width:34%;padding-left:.4em;font-weight:600}.paper-table .t-amt{width:9%;font-weight:800}.paper-table.plus .t-amt{color:#047857}.paper-table.minus .t-amt{color:#b91c1c}.paper-table .sat{color:#1d4ed8}.paper-table .sun{color:#b91c1c}.paper-foot{text-align:right;margin-top:auto;padding-top:1em;font-size:1.3em;font-weight:700}@media print{@page{size:A4 portrait;margin:12mm}body.printing #root,.print-toolbar{display:none!important}html,body{background:#fff!important}.print-view{background:#fff;padding:0;position:static;overflow:visible}.print-area{max-width:none}.paper{box-shadow:none;aspect-ratio:auto;break-after:page;page-break-after:always;border-radius:0;width:186mm;height:270mm;margin:0;padding:0;font-size:15px}.paper:last-child{break-after:auto;page-break-after:auto}}.paper-list,.paper-table{color:#222}.paper-list li{padding:.55em 0;font-size:1.6em}.paper-table{font-size:1.25em}.paper-table .t-box{height:2.8em}.move{flex-direction:column;flex:none;gap:2px;display:flex}.move button{border:1px solid var(--border);background:var(--surface);width:30px;height:20px;color:var(--dim);border-radius:6px;padding:0;font-size:10px;line-height:1}.move button:disabled{opacity:.3}.item-group{border:1px solid var(--border);border-radius:12px;margin:12px 0 6px;padding:8px 10px 4px}.item-group.plus{background:color-mix(in srgb, var(--plus) 7%, var(--surface))}.item-group.minus{background:color-mix(in srgb, var(--minus) 7%, var(--surface))}.group-title{margin:2px 0 6px;font-size:14px;font-weight:700}.item-group.plus .group-title,.item-group.plus .sign{color:var(--plus)}.item-group.minus .group-title,.item-group.minus .sign{color:var(--minus)}.sign{flex:none;font-weight:800}.add-row{border-top:1px dashed var(--border);padding-top:8px}.add-row .yen,.item-group .yen{width:64px}.emoji-btn{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex:none;width:42px;height:42px;padding:0;font-size:22px}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;display:grid}.emoji-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:0;font-size:24px}.emoji-cell.on{border:2px solid var(--accent)}.current-emoji{margin-left:6px;font-size:24px}.item-group{color:var(--text)}.item-card{border-bottom:1px solid var(--border);grid-template-rows:auto auto;grid-template-columns:30px 44px 1fr;align-items:center;gap:6px 8px;padding:8px 0;display:grid}.item-card .move{grid-row:1/3}.item-card .emoji-btn{grid-row:1/3;width:44px;height:44px}.item-card .item-name{grid-column:3}.item-card .amount-line{grid-column:3;align-items:center;gap:6px;display:flex}.item-card .yen{width:72px;padding:6px 8px}.item-card.add-row{border-bottom:0}.link.inline{margin:0;padding:4px 6px;display:inline}.item-card .move{grid-column:1}.item-card .emoji-btn{grid-column:2}.cal-week .wk{font-size:10px;font-weight:600;line-height:1.2}.cal-week .amt{border-top:1px solid var(--border);margin-top:1px;padding-top:1px}.breakdown-detail{gap:8px;margin-top:4px;display:grid}.bd{border-radius:10px;padding:6px 10px}.bd.plus{background:color-mix(in srgb, var(--plus) 8%, var(--surface))}.bd.minus{background:color-mix(in srgb, var(--minus) 8%, var(--surface))}.bd-head{font-size:13px;font-weight:700;display:flex}.bd.plus .bd-head{color:var(--plus)}.bd.minus .bd-head{color:var(--minus)}.bd .entries li{color:var(--text)}.item-grid{grid-auto-rows:1fr}.item-btn .name{text-wrap:balance;line-break:strict;line-height:1.3}.item-grid.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.item-grid.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.item-grid.grid2 .item-btn{padding:12px 8px}.item-grid.grid2 .item-btn .name{font-size:15px}.item-grid.list{grid-template-columns:1fr;grid-auto-rows:auto;gap:6px}.item-grid.list .item-btn{text-align:left;flex-direction:row;justify-content:flex-start;gap:10px;padding:10px 14px}.item-grid.list .item-btn .emoji{font-size:24px}.item-grid.list .item-btn .name{text-align:left;text-wrap:wrap;flex:1;font-size:16px}.item-grid.list .item-btn .amt{font-size:16px}.item-grid.sample{pointer-events:none;margin-top:8px}.item-btn .name.phrased{word-break:keep-all;overflow-wrap:anywhere}
