:root{--bg: #1d2021;--bg1: #282828;--bg2: #3c3836;--bg3: #504945;--fg: #ebdbb2;--fg-dim: #a89984;--red: #fb4934;--green: #b8bb26;--yellow: #fabd2f;--blue: #83a598;--purple: #d3869b;--aqua: #8ec07c;--orange: #fe8019}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:UDEV Gothic NF,Hack Nerd Font,JetBrains Mono,monospace;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.app{max-width:960px;margin:0 auto;padding:2rem 1rem 6rem}.app-header{margin-bottom:1.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.app-header h1{font-size:1.6rem;color:var(--yellow)}.app-subtitle{margin-top:.25rem;color:var(--fg-dim);font-size:.85rem}.period-switcher{display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--bg1);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem}.period-button{background:var(--bg2);color:var(--fg);border:none;border-radius:6px;padding:.4rem 1rem;font-size:1.1rem;transition:background .15s}.period-button:hover{background:var(--bg3)}.period-label{text-align:center;flex:1}.period-key{font-size:1.2rem;font-weight:700;color:var(--yellow)}.period-range{font-size:.8rem;color:var(--fg-dim);margin-top:.15rem}.top-row{display:grid;grid-template-columns:280px 1fr;gap:1rem;margin-bottom:1.5rem}@media(max-width:760px){.top-row{grid-template-columns:1fr}}.income-card{background:var(--bg1);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.income-header{display:flex;flex-direction:column;gap:.15rem}.income-total-label{font-size:.75rem;color:var(--fg-dim)}.income-total-value{font-size:1.4rem;font-weight:700;color:var(--green)}.income-list{list-style:none;display:flex;flex-direction:column;gap:.35rem}.income-row{display:flex;align-items:center;gap:.4rem}.yen-prefix{color:var(--fg-dim);font-size:1rem}.income-amount-input{flex:1;text-align:right;font-size:1rem;font-weight:700}.income-add-button{align-self:flex-start;background:var(--bg2);color:var(--green);font-size:.8rem;padding:.35rem .8rem}.income-add-button:hover{background:var(--bg3)}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:760px){.summary{grid-template-columns:repeat(2,1fr)}}.summary-card{background:var(--bg1);border-radius:8px;padding:.75rem .9rem}.summary-label{font-size:.75rem;color:var(--fg-dim);margin-bottom:.3rem}.summary-value{font-size:1.25rem;font-weight:700}.summary-due{color:var(--orange)}.summary-paid{color:var(--aqua)}.summary-remaining{color:var(--red)}.summary-positive{color:var(--green)}.summary-negative{color:var(--red)}.summary-deductible{color:var(--blue)}.summary-sub{font-size:.85rem;font-weight:400;color:var(--fg-dim)}.badge-deductible{background:var(--blue);color:var(--bg)}.section-title{font-size:1.1rem;color:var(--yellow);margin-bottom:.75rem}.subsection-title{font-size:.95rem;color:var(--aqua);margin-bottom:.5rem}.checklist{background:var(--bg1);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.checklist-items{list-style:none;display:flex;flex-direction:column;gap:.4rem}.checklist-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--bg2);border-radius:6px;padding:.6rem .8rem;border-left:3px solid var(--bg3);transition:opacity .15s,border-color .15s}.checklist-item.checked{opacity:.55;border-left-color:var(--green)}.checklist-item.checked .check-name{text-decoration:line-through}.check-area{display:flex;align-items:center;gap:.75rem;flex:1;cursor:pointer}.check-area input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--green);cursor:pointer}.check-text{display:flex;flex-direction:column;gap:.15rem}.check-name{font-size:.95rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.check-note{font-size:.75rem;color:var(--fg-dim)}.check-meta{display:flex;align-items:center;gap:.6rem}.due-day{font-size:.8rem;color:var(--fg-dim);background:var(--bg3);padding:.1rem .4rem;border-radius:4px}.check-amount{font-size:1rem;font-weight:700;color:var(--orange);min-width:5.5rem;text-align:right}.check-amount-button{background:transparent;border:1px dashed transparent;border-radius:4px;font-size:1rem;font-weight:700;color:var(--orange);min-width:5.5rem;text-align:right;padding:.15rem .4rem;transition:background .1s,border-color .1s}.check-amount-button:hover:not(:disabled){background:var(--bg3);border-color:var(--bg3)}.check-amount-button:disabled{cursor:default}.check-amount-button.overridden{color:var(--yellow);border-color:var(--yellow);border-style:solid}.amount-edit{display:flex;align-items:center;gap:.25rem}.amount-edit-input{background:var(--bg3);border:1px solid var(--yellow);border-radius:4px;color:var(--fg);font-size:.95rem;font-weight:700;padding:.2rem .4rem;width:6rem;text-align:right}.amount-edit-input:focus{outline:none}.amount-edit-button{background:var(--bg3);color:var(--fg);border:none;border-radius:4px;padding:.2rem .45rem;font-size:.9rem}.amount-edit-button.save{background:var(--green);color:var(--bg)}.amount-edit-button.cancel{background:var(--red);color:var(--bg)}.reset-button{background:transparent;color:var(--fg-dim);border:none;font-size:.95rem;padding:0 .2rem}.reset-button:hover{color:var(--yellow)}.badge-override{background:var(--yellow);color:var(--bg)}.data-actions{display:flex;gap:.4rem}.data-button{background:var(--bg2);color:var(--fg);border:1px solid var(--bg3);border-radius:6px;padding:.4rem .8rem;font-size:.8rem;transition:background .1s}.data-button:hover{background:var(--bg3)}.badge{font-size:.65rem;padding:.1rem .4rem;border-radius:4px;font-weight:400;color:var(--bg)}.badge-subscription{background:var(--blue)}.badge-utility{background:var(--aqua)}.badge-rent{background:var(--orange);color:var(--bg)}.badge-tax{background:var(--red)}.badge-auto{background:var(--bg3);color:var(--fg)}.badge-loan{background:var(--purple)}.badge-transfer{background:var(--yellow)}.badge-other{background:var(--fg-dim)}.badge-extra{background:var(--orange)}.form-toggles{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding-top:.25rem}.auto-paid-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--fg-dim);-webkit-user-select:none;user-select:none}.auto-paid-toggle input{margin:0}.muted{color:var(--fg-dim);font-size:.9rem}.extra-form,.fixed-editor{background:var(--bg1);border-radius:8px;padding:1rem;margin-bottom:1rem}.form-row{display:flex;gap:.5rem}@media(max-width:600px){.form-row{flex-direction:column}}.text-input{background:var(--bg2);color:var(--fg);border:1px solid var(--bg3);border-radius:4px;padding:.45rem .6rem;font-size:.9rem;flex:1}.text-input:focus{outline:none;border-color:var(--yellow)}.amount-input{flex:0 0 8rem}.add-button{background:var(--green);color:var(--bg);border:none;border-radius:4px;padding:.45rem 1.2rem;font-weight:700;font-size:.9rem;transition:filter .1s}.add-button:hover{filter:brightness(1.1)}.cancel-button{background:var(--bg3);color:var(--fg);border:none;border-radius:4px;padding:.45rem 1rem;font-size:.9rem}.collapse-button{background:transparent;color:var(--yellow);border:none;font-size:1rem;padding:0;display:flex;align-items:center;gap:.4rem}.fixed-editor-body{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.fixed-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.fixed-row{background:var(--bg2);border-radius:6px;padding:.5rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.fixed-row.editing{display:block}.fixed-row-info{flex:1}.fixed-row-name{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.9rem}.fixed-row-note{font-size:.7rem;color:var(--fg-dim);margin-top:.15rem}.fixed-row-meta{display:flex;align-items:center;gap:.5rem}.edit-button{background:var(--blue);color:var(--bg);border:none;border-radius:4px;padding:.25rem .6rem;font-size:.75rem;font-weight:700}.remove-button{background:transparent;color:var(--red);border:none;font-size:1.2rem;line-height:1;padding:0 .3rem}.remove-button:hover{color:var(--orange)}.form-grid{display:grid;grid-template-columns:1.4fr .8fr .7fr .9fr 1.4fr auto;gap:.4rem;align-items:center}@media(max-width:760px){.form-grid{grid-template-columns:1fr 1fr}.note-input,.edit-actions{grid-column:1 / -1}}.select-input{background:var(--bg2);color:var(--fg);border:1px solid var(--bg3);border-radius:4px;padding:.45rem .5rem;font-size:.9rem}.edit-actions{display:flex;gap:.4rem}.tax-settings{background:var(--bg1);border-radius:8px;padding:1rem;margin-bottom:1rem}.tax-settings-body{margin-top:1rem;display:flex;flex-direction:column;gap:1.25rem}.tax-group{background:var(--bg2);border-radius:6px;padding:.8rem .9rem}.tax-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}.tax-field{display:flex;flex-direction:column;gap:.25rem}.tax-field-check{flex-direction:row;align-items:center;gap:.5rem;font-size:.85rem;padding-top:1rem}.tax-field-check input{width:1.1rem;height:1.1rem;accent-color:var(--yellow)}.tax-field-label{font-size:.75rem;color:var(--fg-dim);display:flex;gap:.4rem;align-items:baseline}.tax-field-hint{font-size:.65rem;color:var(--bg3)}.tax-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem}.tax-result-item{background:var(--bg1);border-radius:6px;padding:.55rem .7rem;display:flex;flex-direction:column;gap:.2rem}.tax-result-item.highlight{background:var(--bg3);border:1px solid var(--yellow)}.tax-result-label{font-size:.7rem;color:var(--fg-dim)}.tax-result-value{font-size:1rem;font-weight:700;color:var(--orange)}.tax-result-item.highlight .tax-result-value{color:var(--yellow);font-size:1.15rem}.missing-alert{display:flex;gap:.75rem;align-items:flex-start;background:#fb49341f;border:1px solid var(--red);border-radius:8px;padding:.9rem 1rem;margin-bottom:1.25rem}.missing-alert-icon{flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--red);color:var(--bg);display:grid;place-items:center;font-weight:700;font-size:1rem}.missing-alert-body{flex:1;display:flex;flex-direction:column;gap:.4rem}.missing-alert-title{font-size:.95rem;font-weight:700;color:var(--red)}.missing-alert-desc{font-size:.8rem;color:var(--fg-dim)}.missing-alert-desc strong{color:var(--orange)}.missing-alert-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.missing-alert-button{background:var(--red);color:var(--bg);border:none;border-radius:4px;padding:.4rem .8rem;font-size:.8rem;font-weight:700}.missing-alert-button:hover{filter:brightness(1.1)}.tax-year-add{display:flex;gap:.5rem;margin-bottom:.5rem}.tax-year-add .text-input{flex:0 0 14rem}.tax-year-card{background:var(--bg2);border-radius:8px;padding:.9rem;display:flex;flex-direction:column;gap:.8rem;border:1px solid transparent;transition:border-color .3s,box-shadow .3s}.tax-year-card.highlight{border-color:var(--yellow);box-shadow:0 0 0 2px #fabd2f40}.tax-year-card-header{display:flex;align-items:center;gap:.75rem}.tax-year-card-title{font-size:1.1rem;font-weight:700;color:var(--yellow)}.tax-year-card-total{flex:1;font-size:.9rem;color:var(--orange);font-weight:700}.tax-year-card .tax-group{background:var(--bg1)}
