:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f6f9fd;--foreground:#0f1f3d;--muted:#66748a;--line:#d9e1ec;--surface:#ffffffe6;--surface-solid:#fff;--surface-alt:#f1f6ff;--accent:#005bea;--accent-strong:#0047c7;--accent-soft:#edf5ff;--blue-deep:#001b68;--blue-mid:#005bea;--blue-light:#a9cfff;--blue-pale:#edf5ff;--orange:#ff7a00;--orange-soft:#fff1e0;--danger:#b42318;--success:#137333;--warning:#9a5a00;--shadow:0 18px 45px #122a4e17;--shadow-soft:0 8px 22px #122a4e0f;--table-row-height:38px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:linear-gradient(180deg, #fff 0%, var(--background) 100%);color:var(--foreground);font-family:Arial,Hiragino Sans,Yu Gothic,sans-serif;font-size:14px}button,.buttonLink,input,select{border:1px solid var(--line);background:var(--surface-solid);min-height:36px;color:var(--foreground);font:inherit;border-radius:8px;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}button,.buttonLink{cursor:pointer;justify-content:center;align-items:center;padding:0 12px;font-weight:700;text-decoration:none;display:inline-flex}button:hover,.buttonLink:hover{border-color:var(--active-user-color,var(--accent));background:var(--active-user-soft,var(--accent-soft));color:var(--foreground);box-shadow:var(--shadow-soft);transform:translateY(-1px)}button:focus-visible,.buttonLink:focus-visible,input:focus,select:focus{border-color:var(--active-user-color,var(--accent));box-shadow:0 0 0 3px var(--active-user-focus,#005bea24);outline:none}button:disabled{cursor:not-allowed;opacity:.55}.dangerButton{color:var(--danger);background:#fff3f2;border-color:#f2b8b5}.dangerButton:hover{border-color:var(--danger);color:var(--danger);background:#ffe7e5}input,select{width:100%;height:36px;padding:0 10px}input[type=date]{box-sizing:border-box;appearance:none;text-align:center;inline-size:100%;max-inline-size:100%;font-size:16px;font-weight:800;line-height:34px;display:block;overflow:hidden}input[type=date]::-webkit-date-and-time-value{inline-size:100%;min-inline-size:0;max-inline-size:100%;font:inherit;text-align:center;font-size:16px;font-weight:800;line-height:34px;display:block;overflow:hidden}input[type=date]::-webkit-datetime-edit{inline-size:100%;min-inline-size:0;max-inline-size:100%;font:inherit;text-align:center;font-size:16px;font-weight:800;line-height:34px;display:block;overflow:hidden}input[type=date]::-webkit-datetime-edit-fields-wrapper{inline-size:100%;min-inline-size:0;max-inline-size:100%;font:inherit;text-align:center;font-size:16px;font-weight:800;line-height:34px;display:block;overflow:hidden}input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0}.page{width:min(1480px,100% - 28px);margin:0 auto;padding:10px 0 34px}.loginPage{align-content:center;width:min(520px,100% - 28px);min-height:100vh;margin:0 auto;padding:32px 0;display:grid}.loginPanel{box-shadow:var(--shadow);gap:16px;display:grid}.loginTitle{justify-content:center;align-items:flex-start;gap:16px;display:flex}.loginTitle h1{font-size:28px}.loginPanel .formGrid{grid-template-columns:1fr;margin-bottom:0}.loginPanel .toolbar{justify-content:stretch}.loginPanel .toolbar button{flex:180px}.adminLoginTools{background:var(--orange-soft);border:1px solid #ff7a0038;border-radius:8px;gap:12px;padding:14px;display:grid}.adminLoginTools h2{color:#8f4600;margin:0;font-size:15px}.appHeader{z-index:30;min-height:56px;box-shadow:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border:0;border-bottom:1px solid #d2d2d7db;border-radius:0;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:0;display:flex;position:sticky;top:0}.brand{white-space:nowrap;align-items:center;gap:10px;min-width:204px;display:inline-flex}.brand div{align-items:baseline;gap:7px;display:inline-flex}.brand h1{font-size:20px;font-weight:900}.brand span{color:var(--foreground);font-size:14px;font-weight:700}.brandIcon{object-fit:contain;width:26px;height:26px;display:inline-block}.eyebrow{color:var(--foreground);text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:800}h1,h2,h3,h4{letter-spacing:0;margin:0}h1{color:var(--foreground);font-size:19px}h2{color:var(--foreground);margin-bottom:14px;font-size:20px}h3{margin:22px 0 10px;font-size:16px}h4{margin:0 0 8px;font-size:14px}.statusBar,.tabs,.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tabs{box-shadow:none;background:0 0;border:0;border-radius:0;flex-wrap:nowrap;flex:auto;align-self:stretch;margin:0;padding:0;overflow-x:auto}.tabs button{min-width:88px;height:56px;min-height:56px;color:var(--foreground);background:0 0;border-color:#0000;border-radius:0;flex:none;box-shadow:inset 0 -2px #0000}.tabs button:hover:not(.active){background:var(--active-user-soft,var(--accent-soft));box-shadow:inset 0 -2px 0 var(--active-user-color,var(--accent));border-color:#0000}.tabs .active{background:var(--active-user-soft,var(--accent-soft));color:var(--foreground);box-shadow:inset 0 -3px 0 var(--active-user-color,var(--accent));border-color:#0000}.badge{background:var(--accent-soft);color:var(--foreground);white-space:nowrap;border:1px solid #005bea24;border-radius:999px;padding:7px 10px;font-weight:700}.badge.admin{color:var(--foreground);background:#f5f7fb;border-color:#0f1f3d24}.userButton{border-color:var(--active-user-focus,#005bea24);color:var(--foreground);white-space:nowrap;background:#fff;border-radius:999px;gap:4px;padding:7px 12px}.userName{font-weight:800}.panel{background:var(--surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #d2d2d7db;border-radius:8px;padding:18px}.message,.loading,.empty{border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:8px;margin:10px 0;padding:10px 12px}.message.success{color:var(--success);background:#eef8f1;border-color:#b7dfc2}.message.error{color:var(--danger);background:#fff3f2;border-color:#f2b8b5}.message.warning{border-color:var(--blue-light);background:var(--blue-pale);color:var(--foreground)}.formGrid{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:12px;margin-bottom:14px;display:grid}label{color:var(--foreground);gap:5px;font-size:12px;font-weight:700;display:grid}label.wide{grid-column:span 2}.entryForm{gap:12px;display:grid}.expenseEntryLayout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:16px;display:grid}.entrySection,.bulkPanel{background:#ffffffb8;border:1px solid #d2d2d7e6;border-radius:8px;padding:14px}.entrySection h3,.bulkPanel h3{margin:0 0 10px}.bulkPanel{gap:12px;display:grid}.bulkPanel p{color:var(--muted);margin:0;line-height:1.55}.dropZone{border:1px dashed var(--line);min-height:160px;color:var(--foreground);cursor:pointer;text-align:center;background:#fff;border-radius:8px;align-content:center;justify-items:center;padding:18px 14px;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:grid;position:relative}.dropZone:hover,.dropZone:focus-within,.dropZone.dragging{border-color:var(--active-user-color,var(--accent));background:var(--active-user-soft,var(--accent-soft));box-shadow:0 0 0 3px var(--active-user-focus,#005bea24);transform:translateY(-1px)}.dropZone.hasFile{background:var(--active-user-soft,var(--accent-soft));border-style:solid}.fileInput{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dropZoneTitle{width:100%;color:var(--foreground);overflow-wrap:anywhere;font-size:16px;font-weight:900;line-height:1.4}.dropZoneText{color:var(--foreground);margin-top:6px;font-size:12px;font-weight:700}.dropZoneMeta{color:var(--muted);background:#ffffffb8;border:1px solid #0f1f3d1f;border-radius:999px;margin-top:10px;padding:5px 9px;font-size:11px;font-weight:800}.entryGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.entryFooter{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.entryFooter button{min-width:132px}.field{gap:6px;display:grid}.field span{color:var(--foreground);font-size:12px;font-weight:800}.inline{width:min(240px,100%);margin-bottom:12px}.totalButton{background:var(--surface-alt);min-width:150px;color:var(--foreground);justify-content:flex-end}.filter{width:min(340px,100%);margin-bottom:12px}.tableWrap{background:#ffffffad;border:1px solid #d2d2d7db;border-radius:8px;max-width:100%;max-height:460px;margin:10px 0;overflow:auto;box-shadow:inset 0 1px #ffffffe6}table{border-collapse:separate;border-spacing:0;width:100%;min-width:820px}th,td{border-bottom:1px solid var(--line);height:var(--table-row-height);text-align:left;vertical-align:middle;white-space:nowrap;padding:4px 8px}th{z-index:5;color:var(--foreground);background:#f5f5f7;font-weight:700;position:sticky;top:0}td{background:#ffffffeb}tr.selected td{background:#f2f2f7}.loadMoreRow td{height:42px;color:var(--foreground);text-align:center;background:#fbfbfd;font-weight:800}tr.addRow td{background:#f7fbff}tr.addRow td:first-child{box-shadow:inset 3px 0 0 var(--active-user-color,var(--accent))}td input,td select{min-width:120px;height:30px;min-height:30px}td input[type=checkbox]{width:14px;min-width:14px;height:14px;min-height:14px;padding:0}.rowActions{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.negative{color:var(--danger);font-weight:700}.resultBox{border:1px solid var(--line);color:var(--foreground);background:#fff;border-radius:6px;max-height:260px;padding:12px;overflow:auto}.split,.categoryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.reportPanel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0}.reportTopbar{justify-content:flex-end;align-items:flex-start;gap:16px;margin:-2px 0 12px;display:flex}.reportTopbar h2{margin-bottom:0}.reportTopbar p,.sectionTitle p{color:var(--foreground);margin:4px 0 0;font-size:12px}.reportControls{align-items:center;gap:8px;display:flex}.monthControl{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:auto minmax(150px,1fr);align-items:center;gap:8px;min-width:180px;margin:0;padding:0 8px;display:grid}.monthControl select{box-shadow:none;background:0 0;border:0}.calendarIcon{object-fit:contain;width:18px;height:18px;display:inline-block}.iconButton{border-radius:6px;width:40px;min-width:40px;padding:0}.refreshButton img{object-fit:contain;width:19px;height:19px;display:block}.reportDashboard{display:block}.reportKpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:12px;display:grid}.reportKpi{background:#fff;border:1px solid #d2d2d7eb;border-radius:8px;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:16px;min-height:116px;padding:16px 22px;display:grid;box-shadow:0 10px 26px #122a4e0f}.reportKpi p{color:var(--foreground);margin:0 0 4px;font-size:15px;font-weight:800}.reportKpi strong{color:var(--foreground);font-size:34px;font-weight:900;line-height:1.08;display:block}.reportKpi span{color:var(--foreground);margin-top:6px;font-size:12px;font-weight:700;display:block}.kpiIconImage{object-fit:contain;border-radius:0;width:64px;height:64px;display:block}.reportBlock{background:#fff;border:1px solid #d2d2d7eb;border-radius:8px;padding:12px 14px 10px;box-shadow:0 10px 26px #122a4e0f}.reportChartBlock{margin-bottom:12px}.sectionTitle{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.sectionTitle h3{flex:0 auto;min-width:0;margin:0}.periodSwitch{border:1px solid var(--line);border-radius:6px;flex:none;grid-template-columns:repeat(3,72px);display:inline-grid;overflow:hidden}.periodSwitch button{height:30px;min-height:30px;color:var(--foreground);background:#fff;border:0;border-radius:0;font-size:12px}.periodSwitch button+button{border-left:1px solid var(--line)}.periodSwitch button:hover:not(.active){background:var(--active-user-soft,var(--accent-soft));box-shadow:none;transform:none}.periodSwitch .active{background:var(--active-user-color,var(--foreground));color:#fff}.chartFrame{background:#fff;border:0;border-radius:8px;padding:0;overflow-x:auto}.plotlyHost{min-width:1040px;min-height:360px}.categoryCard,.balanceCard{background:#fff;border:1px solid #d2d2d7db;border-radius:8px;padding:14px 16px;box-shadow:0 10px 26px #122a4e0f}.categoryGrid{margin-bottom:12px}.categorySummary{margin-bottom:8px;display:block}.categorySummary h4{font-size:16px;font-weight:700}.categorySummary p,.balanceCard p{color:var(--foreground);margin:4px 0 0}.categorySummary h4 span{color:var(--foreground);font-size:16px;font-weight:700}.categoryContent{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:center;gap:18px;display:grid}.plotlyPieHost{min-height:260px}.miniTable{gap:0;max-height:238px;padding-right:4px;display:grid;overflow-y:auto}.miniTable div{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:33px;padding:6px 0;display:grid}.miniTable .miniTableHeader{z-index:2;border-top:0;border-bottom:1px solid var(--line);min-height:28px;color:var(--foreground);background:#fff;font-size:12px;font-weight:800;position:sticky;top:0}.miniTable span{min-width:0;color:var(--foreground);align-items:center;gap:8px;display:inline-flex}.miniTable span i{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.miniTable strong{color:var(--foreground);text-align:right}.miniTable em{min-width:54px;color:var(--foreground);font-style:normal;font-weight:800;display:inline-block}.miniTable .totalRow{background:#fbfbfd;font-weight:900}.balanceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.accountForecast{padding:14px}.accountTableWrap{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%;overflow:auto}.accountForecastTable{min-width:1220px}.accountForecastTable th,.accountForecastTable td{text-align:right;height:58px;padding:7px 18px}.accountForecastTable th:first-child,.accountForecastTable td:first-child,.accountForecastTable th:last-child,.accountForecastTable td:last-child{text-align:left}.accountForecastTable th:first-child,.accountForecastTable td:first-child{width:210px;padding-left:12px;padding-right:10px}.accountForecastTable th{color:var(--foreground);background:#fbfbfd}.accountForecastTable td{color:var(--foreground)}.accountForecastTable td:last-child{width:290px;padding:4px 18px 4px 34px}.accountForecastTable th:last-child{width:290px;padding-left:34px}.accountForecastTable th:nth-last-child(2),.accountForecastTable td:nth-last-child(2){padding-right:34px}.accountNameCell{align-items:center;gap:10px;font-weight:800;display:inline-flex}.accountGlyph{object-fit:contain;flex:none;width:24px;height:24px;display:inline-block}.forecastValue{color:var(--foreground);font-size:16px;font-weight:900}.accountForecastTable .totalRow td{background:#fbfbfd;font-weight:900}.balanceSparkline,.sparklineEmpty{width:220px;height:48px;display:block}.balanceCard dl{gap:8px;margin:12px 0 0;display:grid}.balanceCard dl div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-top:8px;display:flex}.balanceCard dt{color:var(--foreground)}.balanceCard dd{margin:0;font-weight:800}@media (max-width:1100px){.categoryGrid,.categoryContent{grid-template-columns:1fr}.categoryContent{align-items:stretch}}@media (max-width:860px){.split{flex-direction:column;grid-template-columns:1fr;align-items:flex-start}.appHeader{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand status""tabs tabs";align-items:center;gap:8px 10px;min-height:0;padding-top:6px;display:grid}.brand{grid-area:brand;min-width:0}.statusBar{flex-wrap:nowrap;grid-area:status;justify-self:end}.userButton{min-height:36px;padding:6px 9px;font-size:12px}.tabs{grid-area:tabs;align-self:auto;width:100%}.tabs button{height:44px;min-height:44px}.formGrid,.expenseEntryLayout,.entryGrid,.entryFooter{grid-template-columns:1fr}label.wide{grid-column:auto}h1{font-size:24px}table{min-width:720px}.reportTopbar,.categorySummary,.categoryContent{flex-direction:column;grid-template-columns:1fr}.balanceGrid,.split,.categoryGrid,.reportKpis{grid-template-columns:1fr}.reportKpi{grid-template-columns:58px minmax(0,1fr);min-height:96px}.kpiIconImage{width:52px;height:52px}.reportDashboard{grid-template-columns:1fr}.reportChartBlock{padding:10px 10px 8px}.plotlyHost{min-width:760px;min-height:280px}.reportControls,.monthControl{width:100%}.accountForecast{padding:10px}.accountForecastTable{min-width:760px}.accountForecastTable th,.accountForecastTable td{height:48px;padding:5px 8px;font-size:12px}.accountForecastTable th:first-child,.accountForecastTable td:first-child{width:128px;padding-left:6px;padding-right:4px}.accountForecastTable th:nth-last-child(2),.accountForecastTable td:nth-last-child(2){padding-right:12px}.accountForecastTable th:last-child,.accountForecastTable td:last-child{width:164px;padding-left:12px;padding-right:8px}.accountNameCell{gap:4px}.accountNameCell>span{text-overflow:ellipsis;white-space:nowrap;max-width:100px;display:block;overflow:hidden}.accountGlyph{width:18px;height:18px}.forecastValue{font-size:13px}.balanceSparkline,.sparklineEmpty{width:144px;height:34px}}
