*,:before,:after{box-sizing:border-box}html{width:100%;overflow-x:hidden}:root{--bg:#f2ede3;--bg2:#e9e3d8;--surface:#faf7f2;--surface2:#f0ebe0;--border:#503c1e1f;--border-s:#503c1e38;--text:#574f42;--text-h:#18140d;--muted:#968b7c;--accent:#b85c14;--accent-bg:#b85c1412;--green:#286845;--green-bg:#28684514;--red:#a83434;--red-bg:#a8343414;--ink:#18140d;--sh-sm:0 1px 4px #140e0412;--sh:0 3px 14px #140e0417, 0 1px 4px #140e040d;--sh-lg:0 10px 40px #140e041f, 0 3px 10px #140e040f;--r:5px;--r-md:10px;--r-lg:16px;--sans:"Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--serif:Georgia, "Times New Roman", serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace}body{background:var(--bg);min-width:320px;color:var(--text);font:15px/1.65 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}#root{background:var(--bg);flex-direction:column;width:100%;min-height:100svh;display:flex}button,input,select,textarea{font:inherit}input,textarea{cursor:text}button,.importBtn,select,input[type=date],label.importBtn,.calcToggle{cursor:pointer}h1,h2,h3{color:var(--text-h);line-height:1.15}h1{font-family:var(--serif);letter-spacing:-.025em;margin:0;font-size:clamp(34px,5.5vw,58px);font-weight:400}h2{font-family:var(--sans);letter-spacing:-.01em;margin:0 0 18px;font-size:17px;font-weight:600}h3{font-family:var(--sans);margin:0 0 4px;font-size:14px;font-weight:600}p{margin:0}.app{width:min(1300px,100%);margin:0 auto;padding:clamp(18px,4vw,52px) clamp(16px,4vw,52px)}.hero{border-bottom:2px solid var(--border-s);justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:36px;padding-bottom:28px;animation:.45s both fadeUp;display:flex}.hero>div:first-child{flex:1}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin:0 0 14px;font-size:10px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);border-radius:1px;width:18px;height:2px}.subtitle{color:var(--muted);max-width:380px;margin-top:10px;font-size:14px;line-height:1.75}.liveClock{background:var(--surface);border:1.5px solid var(--border-s);box-shadow:var(--sh-sm);border-radius:999px;align-items:center;gap:10px;margin-top:18px;padding:8px 14px 8px 12px;display:inline-flex}.liveClock span{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.liveClock strong{font-family:var(--mono);color:var(--text-h);font-variant-numeric:tabular-nums;letter-spacing:.05em;font-size:14px;font-weight:500}.heroActions{flex-direction:column;gap:8px;width:170px;display:flex}button,.importBtn{border:1.5px solid var(--border-s);background:var(--surface);height:42px;min-height:42px;color:var(--text-h);border-radius:var(--r-md);letter-spacing:.01em;box-shadow:var(--sh-sm);justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:13px;font-weight:500;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex}button:hover,.importBtn:hover{background:var(--bg2);border-color:var(--border-s);box-shadow:var(--sh);transform:translateY(-1px)}.importBtn input{display:none}.primaryBtn{background:var(--ink)!important;color:#faf7f2!important;border-color:var(--ink)!important}.primaryBtn:hover{background:#2e2518!important;border-color:#2e2518!important}.successBtn{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}.ghostBtn{color:var(--muted);box-shadow:none!important;background:0 0!important}.ghostBtn:hover{color:var(--text-h);background:var(--surface2)!important;box-shadow:none!important}.dangerBtn{color:var(--red)!important;border-color:#a8343447!important}.dangerBtn:hover{background:var(--red-bg)!important;border-color:var(--red)!important}.useBtn{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}.summaryGrid{border:2px solid var(--border-s);border-radius:var(--r-lg);background:var(--border-s);box-shadow:var(--sh);grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:36px;display:grid;overflow:hidden}.summaryCard{background:var(--surface);padding:26px 24px 22px}.summaryCard span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:10px;display:block}.summaryCard h2{font-family:var(--serif);letter-spacing:-.025em;color:var(--text-h);margin:0;font-size:clamp(22px,3vw,34px);font-weight:400}.income{color:var(--green)!important}.expense{color:var(--red)!important}.topLayout{grid-template-columns:360px minmax(0,1fr);align-items:stretch;gap:20px;margin-bottom:20px;display:grid}.leftStack{align-content:start;gap:20px;display:grid}.panel{background:var(--surface);border:2px solid var(--border-s);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:24px}.panel>h2{border-bottom:1.5px solid var(--border);margin-bottom:7px;padding-bottom:16px}.formPanel{flex-direction:column;gap:12px;display:flex;position:relative}input,select,textarea{border:1.5px solid var(--border-s);background:var(--bg);width:100%;color:var(--text-h);border-radius:var(--r-md);outline:none;min-height:46px;padding:0 14px;font-size:14px;transition:border-color .14s,box-shadow .14s,background .14s}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23968b7c' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;background-color:var(--bg);padding-right:34px}textarea{resize:vertical;min-height:86px;padding-top:12px;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-bg)}input::placeholder,textarea::placeholder{color:var(--muted)}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.amountBox{grid-template-columns:1fr 46px;align-items:stretch;gap:8px;display:grid;position:relative}.amountBox input,.amountBox .calcToggle{height:46px;min-height:46px}.calcToggle{background:var(--surface2);border-color:var(--border-s);padding:0;font-size:17px}.calculator{z-index:9998;border-radius:var(--r-lg);border:2px solid var(--border-s);background:var(--surface);width:268px;max-width:calc(100vw - 32px);box-shadow:var(--sh-lg);padding:12px;animation:.14s both popIn;position:absolute;top:56px;right:0}.calcScreen{border-radius:var(--r);background:var(--bg);border:1.5px solid var(--border);min-height:48px;color:var(--text-h);text-align:right;font-family:var(--mono);margin-bottom:10px;padding:10px 13px;font-size:17px;overflow-x:auto}.calcGrid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.calcGrid button{border-radius:var(--r);min-height:42px;padding:0;font-size:13px;font-weight:500}.statsPanel{z-index:1;position:relative}.statsGrid{gap:10px;display:grid}.statsGrid>div{border-radius:var(--r-md);background:var(--bg);border:1.5px solid var(--border);flex-direction:column;padding:16px;display:flex}.statsGrid span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px}.statsGrid strong{font-family:var(--serif);color:var(--text-h);font-size:26px;font-weight:400}.highlightStat{background:linear-gradient(135deg, var(--red-bg), transparent)!important;border-color:#a8343433!important}.highlightStat h3{font-size:19px;font-family:var(--serif);color:var(--text-h);margin:6px 0 4px;font-weight:400}.highlightStat strong{font-size:16px!important}.statsPanel.panel>h2{margin-bottom:17px}.transactionPanel{flex-direction:column;min-height:0;max-height:1053px;display:flex}.transactionHeaderCompact{margin-bottom:14px}.transactionHeaderCompact h2{margin-bottom:12px}.transactionTools{flex-direction:column;gap:8px;display:flex}.transactionSearch{height:46px;min-height:46px}.transactionControls{grid-template-columns:1fr 1fr auto auto;gap:8px;display:grid}.transactionControls>*{height:42px;min-height:42px}.transactionScrollArea{flex-direction:column;flex:1;gap:8px;min-height:0;max-height:875px;padding-right:4px;display:flex;overflow-y:auto}.transactionScrollArea .transaction{flex-shrink:0;width:100%}.transaction{border-radius:var(--r-md);background:var(--bg);border:1.5px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px 16px 14px 20px;transition:border-color .14s,background .14s,box-shadow .14s,transform .14s;animation:.25s both fadeUp;display:grid;position:relative;overflow:hidden}.transaction:before{content:"";background:var(--border);width:4px;transition:background .14s;position:absolute;top:0;bottom:0;left:0}.transaction.income-item:before{background:var(--green)}.transaction.expense-item:before{background:var(--red)}.transaction:hover{border-color:var(--border-s);background:var(--surface);box-shadow:var(--sh-sm);transform:translate(2px)}.transaction>div:first-child{min-width:0;padding-left:2px}.transaction h3{font-family:var(--sans);overflow-wrap:anywhere;color:var(--text-h);margin:0 0 3px;font-size:14px;font-weight:500}.transaction p{font-family:var(--mono);color:var(--muted);overflow-wrap:anywhere;letter-spacing:.04em;font-size:11px}.transaction small{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:12px;display:block}.noDescription{opacity:.5;font-style:italic}.transactionRight{text-align:right;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:8px;min-width:max-content;display:flex}.transactionRight strong{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(16px,2.5vw,22px);font-weight:400;line-height:1;display:block}.transaction .miniActions{gap:6px;display:flex}.transaction .miniActions button{border-radius:var(--r);width:66px;height:32px;min-height:32px;box-shadow:none;padding:0;font-size:12px}.emptyState{text-align:center;justify-items:center;gap:12px;padding:48px 20px;display:grid}.emptyIcon{background:var(--surface2);border:2px solid var(--border-s);border-radius:50%;place-items:center;width:52px;height:52px;font-size:22px;display:grid}.empty{color:var(--muted);font-size:13px}.chartPanel{background:var(--surface);border:2px solid var(--border-s);border-radius:var(--r-lg);box-shadow:var(--sh-sm);margin-bottom:0;padding:24px}.chartHeader{border-bottom:1.5px solid var(--border);justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;padding-bottom:18px;display:flex}.chartHeader h2{margin:0}.chartFilters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chartFilters input[type=date]{width:146px;height:40px;min-height:40px;font-size:13px}.chartFilters button{white-space:nowrap;height:40px;font-size:13px}.rangeArrow{color:var(--muted);-webkit-user-select:none;user-select:none;font-size:14px}.rangeSummary{border:2px solid var(--border);border-radius:var(--r-md);background:var(--border);grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:24px;display:grid;overflow:hidden}.rangeSummary>div{background:var(--bg);padding:14px 18px}.rangeSummary span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:10px;display:block}.rangeSummary strong{font-family:var(--serif);color:var(--text-h);font-size:20px;font-weight:400}.donutGrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chartBox{border-radius:var(--r-md);background:var(--bg);border:1.5px solid var(--border);padding:18px}.chartBox>h3{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-size:10px;font-weight:500}.donutBlock{grid-template-columns:190px minmax(0,1fr);align-items:center;gap:18px;display:grid}.donutChart{border-radius:50%;place-items:center;width:178px;height:178px;transition:transform .28s,box-shadow .28s;display:grid}.donutChart.expense{box-shadow:0 0 0 2px var(--border), 0 4px 14px #a834341f}.donutChart.income{box-shadow:0 0 0 2px var(--border), 0 4px 14px #2868451f}.donutCenter{background:var(--bg);border:2px solid var(--border);text-align:center;border-radius:50%;align-content:center;place-items:center;width:100px;height:100px;padding:10px;display:grid}.donutCenter span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:9px;display:block}.donutCenter strong{font-family:var(--serif);color:var(--text-h);font-size:17px;font-weight:400}.donutCenter small{color:var(--muted);margin-top:2px;font-size:10px;display:block}.donutHighlight{transform:scale(1.03)}.donutLegend{gap:5px;display:grid}.legendItem{border-radius:var(--r);cursor:default;border:1.5px solid #0000;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 10px;transition:all .13s;display:grid}.legendItem:hover{background:var(--surface);border-color:var(--border)}.legendDot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legendItem p{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:12px}.legendItem strong{font-family:var(--mono);color:var(--text-h);font-size:11px}.chartTooltip{z-index:9999;border-radius:var(--r-md);background:var(--surface);border:2px solid var(--border-s);min-width:148px;box-shadow:var(--sh-lg);pointer-events:none;padding:12px 14px;animation:.1s both tooltipShow;position:fixed}.chartTooltip span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:9px;display:block}.chartTooltip strong{color:var(--text-h);margin-bottom:2px;font-size:14px;display:block}.chartTooltip p{color:var(--text);margin:2px 0;font-size:13px}.chartTooltip small{color:var(--muted);font-size:11px}.popupOverlay{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#18140d80;place-items:center;padding:20px;animation:.14s both fadeIn;display:grid;position:fixed;inset:0}.customPopup{border-radius:var(--r-lg);text-align:center;background:var(--surface);border:2px solid var(--border-s);width:min(360px,100%);box-shadow:var(--sh-lg);padding:28px;animation:.18s both popupShow}.popupIcon{background:var(--surface2);border:2px solid var(--border-s);width:50px;height:50px;color:var(--text-h);border-radius:50%;place-items:center;margin:0 auto 14px;font-size:20px;font-weight:700;display:grid}.customPopup.error .popupIcon{color:var(--red);background:var(--red-bg);border-color:#a8343447}.customPopup.confirm .popupIcon{color:var(--accent);background:var(--accent-bg);border-color:#b85c1447}.customPopup h3{margin:0 0 8px;font-size:19px;font-weight:600}.customPopup p{color:var(--muted);font-size:14px;line-height:1.65}.popupActions{justify-content:center;gap:10px;margin-top:20px;display:flex}*{scrollbar-width:thin;scrollbar-color:var(--border-s) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-s);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupShow{0%{opacity:0;transform:scale(.95)translateY(5px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes tooltipShow{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.topLayout{grid-template-columns:1fr}.transactionPanel{max-height:600px}.donutGrid{grid-template-columns:1fr}}@media (width<=768px){.hero{flex-direction:column;align-items:stretch;gap:18px}.heroActions{flex-flow:wrap;width:100%}.heroActions>*{flex:1;min-width:110px}.summaryGrid{grid-template-columns:1fr;gap:1px}.chartHeader{flex-direction:column;align-items:stretch}.rangeSummary{grid-template-columns:1fr}.donutBlock{grid-template-columns:1fr;justify-items:center}.donutLegend{width:100%}}@media (width<=620px){.row,.transactionControls{grid-template-columns:1fr 1fr}.transaction{grid-template-columns:1fr}.transactionRight{text-align:left;flex-direction:row;justify-content:space-between;align-items:center;width:100%}.donutChart{width:160px;height:160px}.donutCenter{width:90px;height:90px}.popupActions{flex-direction:column}.popupActions button{width:100%}}@media (width<=380px){.app{padding-inline:12px}button,input,select,textarea{font-size:13px}}.datepicker{z-index:100;width:100%;position:relative}.datepickerTrigger{background:var(--bg);border:1.5px solid var(--border-s);border-radius:var(--r-md);width:100%;height:46px;min-height:46px;color:var(--text-h);box-shadow:none;justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:14px;transition:border-color .14s,box-shadow .14s,background .14s;display:flex;transform:none!important}.datepickerTrigger:hover{background:var(--surface);border-color:var(--border-s);box-shadow:none!important;transform:none!important}.datepickerTrigger.active{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-bg)!important}.datepickerTrigger svg{color:var(--muted);flex-shrink:0;transition:color .14s}.datepickerTrigger.active svg{color:var(--accent)}.datepickerTrigger .placeholder{color:var(--muted)}.datepickerPopup{z-index:999;border-radius:var(--r-lg);border:2px solid var(--border-s);background:var(--surface);width:272px;box-shadow:var(--sh-lg);padding:14px;animation:.14s both popIn;position:absolute;top:calc(100% + 6px);left:0}.dpHeader{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dpMonthYear{font-family:var(--sans);color:var(--text-h);letter-spacing:-.01em;font-size:14px;font-weight:600}.dpNav{border-radius:var(--r)!important;width:32px!important;height:32px!important;min-height:32px!important;color:var(--text-muted,var(--muted))!important;box-shadow:none!important;background:0 0!important;border-color:#0000!important;padding:0!important;font-size:18px!important;line-height:1!important;transform:none!important}.dpNav:hover{background:var(--surface2)!important;border-color:var(--border)!important;transform:none!important}.dpDayLabels{grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:6px;display:grid}.dpDayLabels span{text-align:center;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:4px 0;font-size:10px}.dpGrid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.dpCell{aspect-ratio:1;width:100%!important;min-height:unset!important;border-radius:var(--r)!important;height:auto!important;color:var(--text-h)!important;box-shadow:none!important;background:0 0!important;border-color:#0000!important;justify-content:center!important;align-items:center!important;padding:0!important;font-size:13px!important;font-weight:400!important;display:flex!important;transform:none!important}.dpCell:hover:not(:disabled):not(.selected){background:var(--surface2)!important;border-color:var(--border)!important;box-shadow:none!important;transform:none!important}.dpCell.empty{pointer-events:none;opacity:0}.dpCell.today{color:var(--accent)!important;border-color:var(--accent-border)!important;background:var(--accent-bg)!important;font-weight:600!important}.dpCell.selected{background:var(--ink)!important;color:var(--surface)!important;border-color:var(--ink)!important;font-weight:500!important}.dpFooter{border-top:1.5px solid var(--border);gap:8px;margin-top:10px;padding-top:10px;display:flex}.dpTodayBtn,.dpClearBtn{flex:1;border-radius:var(--r)!important;height:34px!important;min-height:34px!important;box-shadow:none!important;font-size:12px!important}.dpTodayBtn{background:var(--accent-bg)!important;color:var(--accent)!important;border-color:var(--accent-border)!important}.dpTodayBtn:hover{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;transform:none!important}.dpClearBtn{color:var(--muted)!important;border-color:var(--border-s)!important;background:0 0!important}.dpClearBtn:hover{background:var(--red-bg)!important;color:var(--red)!important;border-color:#a834344d!important;transform:none!important}.chartFilters .datepicker{width:148px}.chartFilters .datepickerTrigger{height:40px;min-height:40px;font-size:13px}.chartFilters .datepickerPopup{left:auto;right:0}.transactionControls .datepicker{width:100%}.transactionControls .datepickerTrigger{height:42px;min-height:42px;font-size:13px}:root[data-theme=dark]{--bg:#16140f;--bg2:#1e1b14;--surface:#1f1c16;--surface2:#2a2620;--border:#ffdca014;--border-s:#ffdca024;--text:#a89880;--text-h:#f0e8da;--muted:#6b5f50;--accent:#d4783a;--accent-bg:#d4783a1a;--accent-border:#d4783a4d;--green:#3a9462;--green-bg:#3a94621a;--red:#c05050;--red-bg:#c050501a;--ink:#f0e8da;--sh-sm:0 1px 4px #0000004d;--sh:0 3px 14px #00000059, 0 1px 4px #0003;--sh-lg:0 10px 40px #00000080, 0 3px 10px #0000004d}*,:before,:after{transition:background-color .25s,border-color .25s,color .2s,box-shadow .25s}.transaction,.calculator,.datepickerPopup,.customPopup,.chartTooltip{transition:background-color .25s,border-color .25s,box-shadow .25s}.amountInputWrap{flex:1;position:relative}.amountInputWrap input{width:100%;padding-right:32px}.amountArrows{flex-direction:column;gap:1px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.arrowBtn{all:unset;justify-content:center;align-items:center;display:flex;width:18px!important;height:16px!important;min-height:unset!important;color:var(--muted)!important;box-shadow:none!important;cursor:pointer!important;background:0 0!important;border:none!important;border-radius:3px!important;font-size:8px!important;line-height:1!important;transition:color .12s,background .12s!important;transform:none!important}.arrowBtn:hover{color:var(--accent)!important;background:var(--accent-bg)!important;box-shadow:none!important;transform:none!important}
