:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.2rem;--text-xl:1.44rem;--text-2xl:1.728rem;--text-3xl:2.074rem;--text-display-s:1.44rem;--text-display:1.728rem;--text-section:1.2rem;--text-title:1rem;--text-lead:1rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--color-error:oklch(52% .19 27);--color-success:oklch(50% .12 150);--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(98.6% .005 250);--color-paper-2:oklch(96.2% .008 252);--color-paper-3:oklch(93% .011 252);--color-ink:oklch(21% .028 262);--color-ink-2:oklch(36% .022 260);--color-muted:oklch(50% .018 258);--color-rule:oklch(90% .009 252);--color-rule-2:oklch(83% .012 252);--color-graphite:oklch(21% .024 262);--color-graphite-2:oklch(26.5% .026 262);--color-graphite-ink:oklch(93% .01 250);--color-graphite-muted:oklch(69% .022 256);--color-accent:oklch(52% .19 258);--color-accent-2:oklch(76% .13 254);--color-accent-wash:oklch(95% .028 256);--color-accent-ink:oklch(98.6% .005 250);--color-focus:oklch(52% .19 258);--color-accent-deep:oklch(43% .2 262);--color-accent-edge:oklch(39% .16 260);--color-glyph-1:oklch(89% .025 254);--color-glyph-2:oklch(81% .045 255);--color-glyph-3:oklch(70% .085 256);--color-glyph-4:oklch(60% .13 257);--color-graphite-glyph-1:oklch(33% .03 262);--color-graphite-glyph-2:oklch(41% .05 260);--color-graphite-glyph-3:oklch(53% .1 258);--color-key-face:oklch(99.4% .003 250);--color-key-edge:oklch(80% .016 254);--font-display:"Familjen Grotesk", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-outlier:"JetBrains Mono", ui-monospace, monospace;--radius-card:8px;--radius-input:6px;--radius-pill:999px;--cell-w:8px;--cell-h:16px;--cut:8px;--cut-l:16px;--rule-hair:1px;--shadow-card:0 1px 2px oklch(21% .028 262/.06);--shadow-key:0 3px 0 0 var(--color-key-edge), 0 6px 8px -4px oklch(21% .028 262/.28), inset 0 1px 0 oklch(100% 0 0/.9);--shadow-key-accent:0 3px 0 0 var(--color-accent-edge), 0 6px 8px -4px oklch(30% .12 260/.45), inset 0 1px 0 oklch(100% 0 0/.22);--shadow-key-press:inset 0 1px 2px oklch(21% .028 262/.14);--tracking-display:-.028em;--display-weight:600}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 22%, transparent);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]:has(>img){isolation:isolate;background:var(--color-paper);outline:1px solid color-mix(in oklab, var(--color-ink) 8%, transparent);outline-offset:-1px}[data-slot]>img{z-index:0;filter:grayscale()contrast(1.08);mix-blend-mode:multiply}[data-slot]:has(>img):before{content:"";z-index:1;background:var(--color-graphite);mix-blend-mode:lighten;pointer-events:none;position:absolute;inset:0}:root{--font-body:"BIZ UDPGothic", "Yu Gothic UI", "Hiragino Sans", system-ui, sans-serif;--font-display:"BIZ UDPGothic", "Yu Gothic UI", "Hiragino Sans", system-ui, sans-serif;--color-warn:oklch(80% .15 85);--color-warn-wash:oklch(96% .05 90);--color-warn-ink:oklch(42% .1 70);--color-over:oklch(56% .2 27);--color-over-wash:oklch(95.5% .03 25);--color-over-ink:oklch(45% .17 27);--bar-h:8px}body{font-size:15px}.app{flex-direction:column;min-height:100vh;display:flex}.bar{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--gutter);background:var(--color-accent);color:var(--color-accent-ink);display:flex}.bar h1{font-size:var(--text-lg);letter-spacing:0;max-width:none}.bar .month{font-size:var(--text-sm);color:var(--color-accent-wash)}.tabs{gap:var(--space-2xs);display:flex}.tabs a{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-input);color:var(--color-accent-wash);font-size:var(--text-sm);text-decoration:none}.tabs a[aria-current=page]{background:var(--color-accent-deep);color:var(--color-accent-ink)}.tabs a:hover{background:var(--color-accent-deep)}.tabs a:focus-visible{outline-color:var(--color-accent-ink)}.tabbar{background:var(--color-paper);border-top:1px solid var(--color-rule-2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:sticky;bottom:0}.tabbar a{min-height:52px;font-size:var(--text-xs);color:var(--color-muted);place-items:center;text-decoration:none;display:grid}.tabbar a[aria-current=page]{color:var(--color-accent);box-shadow:inset 0 3px 0 var(--color-accent);font-weight:700}.tabbar a:hover{color:var(--color-accent-deep)}main{padding:var(--space-lg) var(--gutter);gap:var(--space-lg);flex:1;align-content:start;display:grid}.total{gap:var(--space-2xs);display:grid}.total .label{font-size:var(--text-sm);color:var(--color-muted)}.total .value{font-size:var(--text-2xl);color:var(--color-ink);font-variant-numeric:tabular-nums;font-weight:700}.total .of{font-size:var(--text-sm);color:var(--color-ink-2);font-variant-numeric:tabular-nums}.ledger{border:1px solid var(--color-rule-2);border-radius:var(--radius-card);background:var(--color-key-face);margin:0;padding:0;list-style:none}.ledger li{gap:var(--space-xs) var(--space-sm);padding:var(--space-md) var(--space-md);border-top:1px solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.ledger li:first-child{border-top:0}.ledger .name{font-weight:700}.ledger .used{text-align:right;font-variant-numeric:tabular-nums}.ledger .used small{color:var(--color-muted);font-size:var(--text-xs)}.ledger .track{height:var(--bar-h);border-radius:var(--radius-pill);background:var(--color-paper-3);grid-column:1/-1;overflow:hidden}.ledger .fill{border-radius:inherit;background:var(--color-accent);transform-origin:0;height:100%}.ledger .rest{font-size:var(--text-sm);color:var(--color-ink-2);font-variant-numeric:tabular-nums;grid-column:1/-1}.ledger li[data-state=warn]{background:var(--color-warn-wash)}.ledger li[data-state=warn] .fill{background:var(--color-warn)}.ledger li[data-state=warn] .rest{color:var(--color-warn-ink)}.ledger li[data-state=over]{background:var(--color-over-wash)}.ledger li[data-state=over] .fill{background:var(--color-over)}.ledger li[data-state=over] .rest{color:var(--color-over-ink);font-weight:700}.btn{min-height:44px;padding:0 var(--space-lg);border-radius:var(--radius-input);border:1px solid var(--color-accent-edge);background:var(--color-accent);color:var(--color-accent-ink);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-accent-deep)}.btn:active{box-shadow:var(--shadow-key-press)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:var(--color-paper);color:var(--color-accent);border-color:var(--color-rule-2)}.btn.ghost:hover{background:var(--color-accent-wash)}.seg{border:1px solid var(--color-rule-2);border-radius:var(--radius-input);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.seg button{background:var(--color-paper);min-height:40px;color:var(--color-ink-2);cursor:pointer;border:0}.seg button+button{border-left:1px solid var(--color-rule-2)}.seg button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-ink);font-weight:700}.seg button:hover:not([aria-pressed=true]){background:var(--color-accent-wash)}.panel{border:1px solid var(--color-rule-2);border-radius:var(--radius-card);background:var(--color-key-face);padding:var(--space-md);gap:var(--space-sm);align-content:start;align-self:start;display:grid}.panel h2{font-size:var(--text-lg);letter-spacing:0;max-width:none}.note{font-size:var(--text-sm);color:var(--color-ink-2);background:var(--color-accent-wash);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-sm)}.field{gap:var(--space-2xs);display:grid}.field label{font-size:var(--text-sm);color:var(--color-ink-2)}.field input,.field select{width:100%;min-width:0;min-height:40px;padding:0 var(--space-sm);border:1px solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper);color:var(--color-ink)}.field input:hover,.field select:hover{border-color:var(--color-accent-2)}.row2{gap:var(--space-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.items{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.items td{padding:var(--space-xs) 0;border-top:1px solid var(--color-rule)}.items td.num{text-align:right}.suggest{font-size:var(--text-xs);color:var(--color-accent)}.layout{gap:var(--space-xl);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);width:100%;max-width:1200px;margin-inline:auto;display:grid}.filters{gap:var(--space-xs);flex-wrap:wrap;align-items:end;display:flex}.filters .field{min-width:140px}table.list{border-collapse:collapse;background:var(--color-key-face);border:1px solid var(--color-rule-2);border-radius:var(--radius-card);width:100%;font-size:var(--text-sm)}table.list th{text-align:left;color:var(--color-ink-2);background:var(--color-paper-2);padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-rule-2);font-weight:700}table.list td{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-rule)}table.list td.num,table.list th.num{text-align:right;font-variant-numeric:tabular-nums}table.list tr:hover td{background:var(--color-accent-wash)}.src{font-size:var(--text-xs);color:var(--color-muted)}.chart{gap:var(--space-sm);display:grid}.chart .r{gap:var(--space-xs);font-size:var(--text-sm);grid-template-columns:4.5em minmax(0,1fr);align-items:center;display:grid}.chart .bars{gap:var(--space-2xs);display:grid}.chart .b{background:var(--color-accent);border-radius:3px;height:10px}.chart .b.prev{background:var(--color-accent-2)}.legend{gap:var(--space-md);font-size:var(--text-xs);color:var(--color-ink-2);display:flex}.legend span:before{content:"";width:10px;height:10px;margin-right:var(--space-xs);vertical-align:-1px;background:var(--color-accent);border-radius:2px;display:inline-block}.legend span.prev:before{background:var(--color-accent-2)}@media (width<=60rem){.layout{grid-template-columns:minmax(0,1fr)}.tabs{display:none}}.tabbar{display:none}@media (width<=60rem){.tabbar{display:grid}}.stack{gap:var(--space-sm);align-content:start;display:grid}.empty,.error,.loading{border:1px dashed var(--color-rule-2);border-radius:var(--radius-card);padding:var(--space-lg);color:var(--color-ink-2);gap:var(--space-sm);justify-items:start;display:grid}.error{border-style:solid;border-color:var(--color-over);color:var(--color-over-ink);background:var(--color-over-wash)}.skeleton{border-radius:var(--radius-input);background:var(--color-paper-3);height:56px}.monthnav{gap:var(--space-xs);align-items:center;display:flex}.monthnav .btn{min-height:36px;padding:0 var(--space-sm)}.toast{background:var(--color-graphite);color:var(--color-graphite-ink);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);z-index:var(--z-toast);font-size:var(--text-sm);position:fixed;bottom:72px;left:50%;transform:translate(-50%)}.inline-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.btn.small{min-height:32px;padding:0 var(--space-sm);font-size:var(--text-sm);font-weight:400}.btn.danger{color:var(--color-over-ink);border-color:var(--color-over);background:var(--color-paper)}.btn.danger:hover{background:var(--color-over-wash)}.preview{overflow-x:auto}.preview table{border-collapse:collapse;font-size:var(--text-xs)}.preview td{border:1px solid var(--color-rule);padding:var(--space-3xs) var(--space-xs);white-space:nowrap}.wide{width:100%;max-width:1200px;margin-inline:auto}input[type=file]{font-size:var(--text-sm)}
