body{overflow:hidden;background:rgb(var(--bg))}.is-hidden{display:none!important}.ledger-loading,.ledger-denied{position:fixed;z-index:50;inset:0;min-height:100vh;display:grid;place-content:center;padding:32px;text-align:center;color:rgb(var(--text-muted));background:rgb(var(--bg))}.ledger-denied h1{margin:0 0 8px;color:rgb(var(--text));font:500 28px Fraunces,"Noto Serif SC",serif}.ledger-denied p{margin:0}.ledger-denied a{color:rgb(var(--primary))}.ledger-shell{position:fixed;z-index:50;inset:0;width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;color:rgb(var(--text));background:rgb(var(--bg))}.ledger-topbar{position:relative;z-index:30;flex:none;padding:18px 28px 14px;border-bottom:1px solid rgb(var(--border-faint));background:rgb(var(--bg))}.topbar-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.topbar-head{position:relative;min-width:0;flex:1}.title-tool-btn{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0;border:0;background:transparent;color:rgb(var(--text));cursor:pointer}.title-tool-btn:hover{opacity:.78}.title-tool-btn:focus-visible{outline:2px solid rgb(var(--primary)/.4);outline-offset:4px}.title-tool-btn h1{margin:0;font:500 28px/1.15 Fraunces,"Noto Serif SC",serif}.title-chevron{flex:none;color:rgb(var(--text-muted));transition:transform .2s,color .2s}.tool-switch[data-open="1"] .title-chevron{color:rgb(var(--primary));transform:rotate(180deg)}.topbar-head>p{margin:4px 0 0;color:rgb(var(--text-muted));font:italic 13px Fraunces,"Noto Serif SC",serif}.topbar-head em{color:rgb(var(--text));font-style:normal;border-bottom:1px dotted rgb(var(--border))}.topbar-actions,.sheet-foot>div{display:flex;align-items:center;gap:10px}.topbar-theme{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgb(var(--border-faint));border-radius:6px;background:transparent;color:rgb(var(--text-muted));cursor:pointer}.topbar-theme:hover,.topbar-theme:focus-visible,.topbar-back:hover{color:rgb(var(--primary));border-color:rgb(var(--primary)/.4)}.topbar-theme .theme-sun{display:block}.topbar-theme .theme-moon,html.dark .topbar-theme .theme-sun{display:none}html.dark .topbar-theme .theme-moon{display:block}.topbar-back{padding-bottom:1px;border-bottom:1px solid transparent;color:rgb(var(--text-muted));font-size:13px;text-decoration:none}.primary-btn,.secondary-btn,.danger-btn,.icon-btn,.text-btn{font:inherit;cursor:pointer;transition:.15s}.primary-btn,.secondary-btn,.danger-btn{min-height:38px;border-radius:7px;border:1px solid transparent;padding:8px 14px;font-size:13px;font-weight:600}.primary-btn{background:rgb(var(--primary));color:#fff;box-shadow:0 5px 16px -10px rgb(var(--primary))}.primary-btn:hover{background:rgb(var(--primary)/.9);transform:translateY(-1px)}.secondary-btn{color:rgb(var(--text));border-color:rgb(var(--border));background:rgb(var(--bg-elevated))}.danger-btn{color:#a9564b;border-color:rgb(var(--accent)/.3);background:rgb(var(--accent)/.1)}.primary-btn:disabled,.secondary-btn:disabled{opacity:.55;cursor:wait;transform:none}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgb(var(--border-faint));border-radius:7px;background:transparent;color:rgb(var(--text-muted));font-size:22px}.icon-btn:hover{color:rgb(var(--primary));border-color:rgb(var(--primary)/.4)}.text-btn{padding:0;border:0;background:transparent;color:rgb(var(--primary));font-size:12px}.ledger-main-wrap{flex:1;min-height:0;overflow-y:auto;padding:18px 28px 80px}.ledger-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.ledger-month-nav,.ledger-control-actions{display:flex;align-items:center;gap:9px}.ledger-month-nav h2{min-width:132px;margin:0;text-align:center;font:600 18px Fraunces,"Noto Serif SC",serif}.privacy-field{display:flex;align-items:center;gap:8px;color:rgb(var(--text-muted));font-size:12px}.privacy-field select{height:38px;padding:0 30px 0 10px;border:1px solid rgb(var(--border));border-radius:7px;background:rgb(var(--bg-elevated));color:rgb(var(--text));outline:0}.privacy-field select:focus{border-color:rgb(var(--primary)/.6);box-shadow:0 0 0 3px rgb(var(--primary)/.07)}.ledger-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:16px}.summary-card{min-width:0;padding:14px 16px;border:1px solid rgb(var(--border-faint));border-radius:10px;background:rgb(var(--bg-elevated));box-shadow:0 5px 18px #00000006}.summary-card span,.summary-card small{display:block;color:rgb(var(--text-muted));font-size:12px}.summary-card strong{display:block;margin:5px 0 3px;overflow:hidden;color:rgb(var(--text));font:600 22px/1.1 Fraunces,"Noto Serif SC",serif;text-overflow:ellipsis;white-space:nowrap}.summary-card small.special-note{color:#497fa4}.ledger-workspace{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(290px,.75fr);gap:15px;align-items:start}.ledger-calendar-panel,.ledger-day-detail{border:1px solid rgb(var(--border-faint));border-radius:11px;background:rgb(var(--bg-elevated));box-shadow:0 5px 18px #00000006}.ledger-weekdays,.ledger-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.ledger-weekdays{border-bottom:1px solid rgb(var(--border-faint));color:rgb(var(--text-muted));font-size:11px;text-align:center}.ledger-weekdays span{padding:8px 2px}.ledger-weekdays span:nth-child(n+6){color:rgb(var(--primary))}.calendar-day{position:relative;min-width:0;min-height:96px;display:flex;flex-direction:column;gap:4px;padding:7px;border:0;border-right:1px solid rgb(var(--border-faint));border-bottom:1px solid rgb(var(--border-faint));background:transparent;color:rgb(var(--text));text-align:left;cursor:pointer}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day:hover{background:rgb(var(--primary)/.035)}.calendar-day.is-outside{opacity:.38}.calendar-day.is-selected{background:rgb(var(--primary)/.075);box-shadow:inset 0 0 0 2px rgb(var(--primary)/.72)}.calendar-day:focus-visible{z-index:1;outline:2px solid rgb(var(--primary));outline-offset:-2px}.calendar-date{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:600}.calendar-day.is-today .calendar-date{background:rgb(var(--primary));color:#fff}.calendar-line{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:1px 3px;border-radius:4px;font-size:10.5px;line-height:1.35;white-space:nowrap}.calendar-line span:last-child{overflow:hidden;text-overflow:ellipsis}.calendar-line.expense{color:#b66543;background:#d6704114}.calendar-line.income{color:#408864;background:#42916514}.calendar-line.covered{color:#477fa2;background:#417ea614}.ledger-day-detail{min-height:420px;padding:16px}.day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgb(var(--border-faint))}.day-head span{color:rgb(var(--primary));font-size:10px;font-weight:700;letter-spacing:.08em}.day-head h2{margin:4px 0 0;font:600 20px Fraunces,"Noto Serif SC",serif}.day-count{padding:4px 8px;border-radius:999px;background:rgb(var(--bg-soft));color:rgb(var(--text-muted));font-size:11px}.day-totals{display:grid;gap:7px;padding:12px 0;border-bottom:1px solid rgb(var(--border-faint))}.day-total{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.day-total strong{font-size:13px}.amount-expense{color:#b66543}.amount-income{color:#408864}.amount-covered{color:#477fa2}.day-list{display:grid}.day-entry{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;border:0;border-bottom:1px solid rgb(var(--border-faint));background:transparent;color:rgb(var(--text));text-align:left;cursor:pointer}.day-entry:hover{background:rgb(var(--primary)/.025)}.entry-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgb(var(--bg-soft));font-size:17px}.entry-copy{min-width:0}.entry-copy strong,.entry-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-copy strong{font-size:13px}.entry-copy small{margin-top:3px;color:rgb(var(--text-muted));font-size:10.5px}.entry-amount{font-size:13px;font-weight:600;white-space:nowrap}.day-empty{padding:32px 8px;text-align:center;color:rgb(var(--text-muted));font-size:12px}.day-add{width:100%;margin-top:12px}.ledger-analytics{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.35fr) minmax(0,.9fr);gap:15px;margin-top:16px}.ledger-analysis-block{min-width:0;padding:15px;border:1px solid rgb(var(--border-faint));border-radius:10px;background:rgb(var(--bg-elevated));box-shadow:0 5px 18px #00000006}.ledger-analysis-block header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.ledger-analysis-block h2{margin:0;font:600 15px Fraunces,"Noto Serif SC",serif}.ledger-analysis-block header p{margin:3px 0 0;color:rgb(var(--text-muted));font-size:10.5px}.category-stats{display:grid;gap:10px}.category-row{display:grid;grid-template-columns:minmax(65px,auto) minmax(60px,1fr) auto;align-items:center;gap:8px;font-size:11px}.category-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-track{height:7px;overflow:hidden;border-radius:999px;background:rgb(var(--border-faint))}.category-fill{height:100%;border-radius:inherit;background:rgb(var(--primary)/.75)}.category-value{text-align:right;white-space:nowrap}.week-trend{height:150px;display:flex;align-items:end;gap:7px;padding-top:14px;border-bottom:1px solid rgb(var(--border-faint))}.week-column{height:132px;flex:1;display:grid;grid-template-rows:1fr auto;align-items:end;gap:5px;text-align:center}.week-bar{width:100%;min-height:4px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,rgb(var(--primary)/.85),rgb(var(--primary)/.35));transition:height .2s}.week-column span{color:rgb(var(--text-muted));font-size:10px}.comparison-list{display:grid}.comparison-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgb(var(--border-faint));font-size:11.5px}.comparison-row:last-child{border-bottom:0}.comparison-row strong{font-size:12px;text-align:right}.comparison-good{color:#408864}.comparison-warn{color:#b66543}.ledger-modal{position:fixed;z-index:140;inset:0;display:flex;align-items:center;justify-content:center;padding:20px}.modal-backdrop{position:absolute;inset:0;border:0;background:#09121e85;cursor:pointer}.ledger-sheet{position:relative;z-index:1;width:min(620px,100%);max-height:min(90vh,760px);overflow:hidden;border:1px solid rgb(var(--border));border-radius:16px;background:rgb(var(--bg-elevated));box-shadow:0 24px 70px #00000040}.ledger-sheet form{display:flex;max-height:inherit;flex-direction:column}.sheet-head,.sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 19px;border-bottom:1px solid rgb(var(--border-faint))}.sheet-foot{border-top:1px solid rgb(var(--border-faint));border-bottom:0}.eyebrow{color:rgb(var(--primary));font-size:10px;font-weight:700;letter-spacing:.08em}.sheet-head h2{margin:3px 0 0;font:600 21px Fraunces,"Noto Serif SC",serif}.close-btn{width:34px;height:34px;border:1px solid rgb(var(--border));border-radius:50%;background:rgb(var(--bg));color:rgb(var(--text-muted));font-size:21px;cursor:pointer}.sheet-body{min-height:0;overflow-y:auto;padding:18px 19px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px;padding:4px;border-radius:9px;background:rgb(var(--bg-soft))}.type-switch label{cursor:pointer}.type-switch input{position:absolute;opacity:0;pointer-events:none}.type-switch span{display:block;padding:8px;border-radius:7px;text-align:center;color:rgb(var(--text-muted));font-size:13px}.type-switch input:checked+span{background:rgb(var(--bg-elevated));color:rgb(var(--primary));box-shadow:0 2px 10px #0000000f}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field{display:grid;gap:6px;min-width:0}.field>span{color:rgb(var(--text-muted));font-size:12px}.field input,.field select{width:100%;height:41px;padding:0 11px;border:1px solid rgb(var(--border));border-radius:7px;background:rgb(var(--bg));color:rgb(var(--text));font:inherit;outline:0}.field input:focus,.field select:focus{border-color:rgb(var(--primary)/.6);box-shadow:0 0 0 3px rgb(var(--primary)/.07)}.field small{color:rgb(var(--text-muted));font-size:10.5px}.span-2,.amount-field{grid-column:span 2}.money-input{display:flex;align-items:center;height:52px;border:1px solid rgb(var(--border));border-radius:9px;background:rgb(var(--bg))}.money-input:focus-within{border-color:rgb(var(--primary)/.6);box-shadow:0 0 0 3px rgb(var(--primary)/.07)}.money-input b{padding-left:13px;color:rgb(var(--text-muted));font:500 20px Fraunces,"Noto Serif SC",serif}.money-input input{height:50px;border:0;background:transparent;font:600 24px Fraunces,"Noto Serif SC",serif;box-shadow:none!important}.category-create{align-content:end}.category-create .text-btn{height:41px;border:1px dashed rgb(var(--border));border-radius:7px}.ledger-toast{position:fixed;z-index:170;left:50%;bottom:30px;transform:translate(-50%);max-width:calc(100vw - 28px);padding:10px 16px;border-radius:999px;background:#111f33eb;color:#fff;font-size:13px;box-shadow:0 12px 30px #0003}.ledger-mobile-add{position:fixed;z-index:90;right:18px;bottom:20px;width:52px;height:52px;border:0;border-radius:50%;background:rgb(var(--primary));color:#fff;font-size:27px;box-shadow:0 12px 28px rgb(var(--primary)/.35);cursor:pointer}@media (max-width:980px){.ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-workspace{grid-template-columns:1fr}.ledger-day-detail{min-height:0}.ledger-analytics{grid-template-columns:1fr 1fr}.ledger-analysis-block:last-child{grid-column:span 2}}@media (max-width:700px){.ledger-topbar{padding:16px}.title-tool-btn h1{font-size:25px}.topbar-head>p{display:none}.ledger-main-wrap{padding:12px 11px 84px}.ledger-controls{align-items:stretch;flex-direction:column}.ledger-month-nav,.ledger-control-actions{justify-content:space-between}.ledger-control-actions .primary-btn{display:none}.privacy-field{flex:1}.privacy-field select{width:100%;min-width:0}.ledger-summary{gap:8px}.summary-card{padding:12px}.summary-card strong{font-size:18px}.ledger-calendar-panel{overflow:hidden}.calendar-day{min-height:67px;padding:4px 3px}.calendar-date{width:22px;height:22px;font-size:10.5px}.calendar-line{justify-content:flex-start;padding:0 2px;font-size:9px}.calendar-line span:first-child,.calendar-line.covered{display:none}.ledger-weekdays span{padding:6px 2px}.ledger-day-detail{padding:13px}.ledger-mobile-add{display:block!important}.ledger-analytics{grid-template-columns:1fr}.ledger-analysis-block:last-child{grid-column:auto}.ledger-modal{align-items:end;padding:0}.ledger-sheet{width:100%;max-height:94vh;border-radius:18px 18px 0 0}.form-grid{grid-template-columns:1fr}.span-2,.amount-field{grid-column:span 1}.sheet-head,.sheet-foot{padding:14px 15px}.sheet-body{padding:15px}}@media (max-width:430px){.ledger-month-nav h2{min-width:110px;font-size:16px}.ledger-control-actions{gap:7px}.privacy-field span{display:none}.ledger-summary{grid-template-columns:1fr 1fr}.calendar-day{min-height:61px}.calendar-line{font-size:8.5px}.day-entry{grid-template-columns:34px minmax(0,1fr) auto;gap:8px}.entry-amount{font-size:12px}}.tool-switch-current{background:rgb(var(--primary)/.08);color:rgb(var(--primary));cursor:default}.tool-switch-current .tsi-icon{border-color:rgb(var(--primary)/.4)}.ledger-pending{margin-bottom:16px;padding:16px;border:1px solid rgb(var(--primary)/.27);border-radius:11px;background:rgb(var(--bg-elevated));box-shadow:0 5px 18px #00000006}.pending-head h2{margin:3px 0;font:600 17px Fraunces,"Noto Serif SC",serif}.pending-head h2 span{color:rgb(var(--primary));font:600 13px sans-serif}.pending-head p,.editor-hint{margin:3px 0 0;color:rgb(var(--text-muted));font-size:12px}.pending-list{display:grid;margin-top:12px;border-top:1px solid rgb(var(--border-faint))}.pending-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid rgb(var(--border-faint))}.pending-entry:last-child{border-bottom:0}.pending-entry-copy{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}.pending-entry-copy strong{color:rgb(var(--text));font-size:16px}.pending-entry-copy span,.pending-entry-copy small{color:rgb(var(--text-muted));font-size:12px}.pending-actions{display:flex;align-items:center;gap:12px;flex:none}.pending-actions .primary-btn{min-height:34px}.ledger-modal.is-pending .type-switch{display:none}@media (max-width:700px){.ledger-pending{padding:13px}.pending-entry{align-items:flex-start}.pending-entry-copy{display:grid;gap:2px}.pending-actions{gap:8px}.pending-actions .primary-btn{padding:7px 10px}}
