:root{color:#edf4ff;background:#0b111a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #0b111a;--surface: #101a27;--surface-raised: #142133;--surface-soft: #1b2a3d;--border: #25374d;--border-strong: #3a536f;--text: #edf4ff;--muted: #96a6ba;--muted-strong: #c0ccda;--blue: #6aa8ff;--green: #55c27c;--red: #ef6b7a;--amber: #f2b84b;--shadow: 0 18px 42px rgba(2, 6, 12, .3);--ease: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.16, 1, .3, 1);--mobile-tabbar-offset: 0px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 18% -12%,rgba(106,168,255,.16),transparent 32%),linear-gradient(180deg,#0a1018 0%,var(--bg) 48%,#080d14 100%)}button,input,select{font:inherit}button{cursor:pointer;transition:background-color .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),color .18s var(--ease),opacity .18s var(--ease),transform .18s var(--ease),filter .18s var(--ease)}button:disabled{cursor:not-allowed;opacity:.48}button:disabled:hover{box-shadow:none;transform:none}.loading-page,.auth-page{align-items:center;display:flex;min-height:100vh;justify-content:center;padding:24px}.logo-loader{align-items:center;color:var(--muted-strong);display:grid;gap:14px;justify-items:center;min-height:160px;text-align:center}.logo-loader.compact{min-height:148px}.logo-loader-mark{align-items:center;animation:logo-spin 1.2s linear infinite,loader-breathe 2.2s var(--ease-soft) infinite;background:#0d1520b3;border:1px solid rgba(106,168,255,.2);border-radius:18px;box-shadow:0 18px 34px #02060c52,0 0 0 8px #6aa8ff0a;display:inline-flex;height:78px;justify-content:center;overflow:hidden;width:78px}.logo-loader.compact .logo-loader-mark{border-radius:14px;height:58px;width:58px}.logo-loader-mark img{display:block;height:100%;width:100%}.logo-loader>span:last-child{animation:loader-text 1.4s var(--ease-soft) infinite;font-weight:800}.auth-page{background:linear-gradient(#0b111aad,#0b111adb),url(https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1600&q=80) center/cover}.auth-panel{animation:panel-rise .52s var(--ease-soft) both;background:#111a27f0;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);max-width:420px;padding:32px;width:100%}.brand-mark{align-items:center;background:#0d1520;border:1px solid var(--border);border-radius:8px;display:flex;height:52px;justify-content:center;overflow:hidden;transition:background-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);width:52px}.brand-mark svg{display:none}.brand-mark:before{background:url(/icon-v2.svg) center/cover no-repeat;content:"";display:block;height:100%;width:100%}.brand-mark:hover,.sidebar-mark:hover{transform:translateY(-1px) scale(1.02)}.auth-panel h1,.topbar h1,.panel h2{margin:0}.auth-panel h1{font-size:2rem;margin-top:18px}.auth-panel p{color:var(--muted);margin:8px 0 0}.topbar>div{display:grid;gap:6px}.topbar p{color:var(--muted);margin:0}.segmented{background:#0d1520;border:1px solid var(--border);border-radius:8px;display:grid;gap:4px;grid-template-columns:1fr 1fr;margin:24px 0;padding:4px}.segmented button{background:transparent;border:0;border-radius:6px;color:var(--muted);padding:10px}.segmented button.active{background:var(--surface-soft);color:var(--text);font-weight:700}.auth-form,.card-form,.entry-form,.recurring-form,.category-form{display:grid;gap:12px}label{color:var(--muted-strong);display:grid;font-size:.92rem;font-weight:700;gap:6px}input,select{background:#0d1520;border:1px solid var(--border);border-radius:6px;color:var(--text);min-height:44px;padding:10px 12px;transition:background-color .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease);width:100%}input:focus,select:focus,button:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px #6aa8ff29;outline:none}select option{background:var(--surface);color:var(--text)}select option:checked{background:#2f73d6;color:#fff}input[type=color]{min-height:48px;padding:6px}.primary-button,.ghost-button,.icon-button,.danger-button,.link-button{align-items:center;border-radius:6px;display:inline-flex;gap:8px;justify-content:center;min-height:42px}.primary-button{background:var(--blue);border:1px solid var(--blue);color:#07111d;box-shadow:0 10px 22px #327cda2e;font-weight:800;padding:10px 16px}.primary-button:hover{filter:saturate(1.08);box-shadow:0 14px 28px #327cda3d;transform:translateY(-1px)}.primary-button:active,.ghost-button:active,.icon-button:active,.danger-button:active,.link-button:active,.sidebar-nav button:active,.sidebar-toggle:active,.mobile-tabbar button:active,.subtabbar button:active{transform:translateY(0) scale(.98)}.primary-button:disabled{cursor:not-allowed;opacity:.58}.ghost-button,.icon-button,.link-button{background:var(--surface-soft);border:1px solid var(--border);color:var(--text);padding:9px 12px}.ghost-button:hover,.icon-button:hover,.link-button:hover,.sidebar-nav button:hover,.sidebar-toggle:hover,.mobile-tabbar button:hover,.subtabbar button:hover{border-color:var(--border-strong);background:#203047;transform:translateY(-1px)}.icon-button{aspect-ratio:1;min-height:38px;padding:8px}.danger-button{background:#ef6b7a29;border:1px solid rgba(239,107,122,.44);color:#ffc3ca;font-weight:800;padding:10px 16px}.danger-button:hover{background:#ef6b7a38;transform:translateY(-1px)}.link-button{background:transparent;justify-self:center}.notice,.form-message{animation:notice-in .28s var(--ease) both;background:#f2b84b1f;border:1px solid rgba(242,184,75,.34);border-radius:8px;color:#ffe3a3;margin:14px 0;padding:12px}.notice.success,.form-message.success{background:#55c27c1f;border-color:#55c27c57;color:#a9e7bd}.notice.error,.form-message.error{background:#ef6b7a1f;border-color:#ef6b7a57;color:#ffc3ca}.notice.info,.form-message.info{background:#6aa8ff1f;border-color:#6aa8ff57;color:#c7ddff}.app-layout{animation:page-in .42s var(--ease-soft) both;display:grid;gap:24px;grid-template-columns:248px minmax(0,1fr);margin:0 auto;max-width:1540px;min-height:100vh;padding:22px;transition:grid-template-columns .22s var(--ease)}.app-layout.sidebar-collapsed{grid-template-columns:78px minmax(0,1fr)}.app-shell{margin:0 auto;max-width:1320px;min-width:0;padding:6px 6px 36px;width:100%}.sidebar{align-self:start;animation:panel-rise .42s var(--ease-soft) both;background:linear-gradient(180deg,#142133fa,#0d1520fa);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:20px;min-height:calc(100vh - 44px);padding:14px;position:sticky;top:22px;transition:padding .22s var(--ease),width .22s var(--ease)}.sidebar-brand{align-items:center;display:grid;gap:10px;grid-template-columns:42px minmax(0,1fr);min-height:48px}.sidebar-mark{align-items:center;background:#0d1520;border:1px solid var(--border);border-radius:8px;display:flex;box-shadow:inset 0 1px #ffffff0d;height:44px;justify-content:center;overflow:hidden;width:44px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.sidebar-mark img{display:block;height:100%;width:100%}.sidebar-copy{display:grid;min-width:0}.sidebar-copy strong{line-height:1.2}.sidebar-copy span{color:var(--muted);font-size:.82rem}.sidebar-nav{display:grid;gap:8px}.sidebar-nav button,.sidebar-toggle,.mobile-tabbar button{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);display:inline-flex;gap:10px;min-height:44px;overflow:hidden;padding:10px 12px;position:relative;text-align:left}.sidebar-nav button:after,.mobile-tabbar button:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);content:"";height:100%;left:-120%;position:absolute;top:0;transform:skew(-18deg);transition:left .42s var(--ease-soft);width:70%}.sidebar-nav button:hover:after,.mobile-tabbar button:hover:after{left:140%}.sidebar-nav button.active,.mobile-tabbar button.active{background:linear-gradient(180deg,#203047f0,#162334f0);border-color:#6aa8ff47;color:var(--text);font-weight:800;box-shadow:inset 3px 0 #6aa8ffbd}.sidebar-toggle{align-self:end;background:#0d1520;border-color:var(--border);color:var(--muted-strong);justify-content:flex-start}.sidebar-footer{display:grid;gap:8px;margin-top:auto}.sidebar-action{align-items:center;background:#0d1520;border:1px solid var(--border);border-radius:6px;color:var(--muted-strong);display:flex;gap:10px;min-height:44px;padding:10px 12px}.sidebar-action-mark{align-items:center;background:#6aa8ff1f;border:1px solid rgba(106,168,255,.22);border-radius:6px;color:var(--blue);display:inline-flex;height:24px;justify-content:center;width:24px}.sidebar-collapsed .sidebar{padding-inline:12px}.sidebar-collapsed .sidebar-brand,.sidebar-collapsed .sidebar-nav button,.sidebar-collapsed .sidebar-toggle,.sidebar-collapsed .sidebar-action{grid-template-columns:1fr;justify-content:center}.sidebar-collapsed .sidebar-copy,.sidebar-collapsed .sidebar-nav span,.sidebar-collapsed .sidebar-toggle span,.sidebar-collapsed .sidebar-action span:last-child{display:none}.sidebar-collapsed .sidebar-nav button,.sidebar-collapsed .sidebar-toggle,.sidebar-collapsed .sidebar-action{padding-inline:10px}.mobile-tabbar{display:none}.topbar{align-items:center;animation:panel-rise .42s var(--ease-soft) both;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px;min-height:56px}.topbar h1{font-size:1.85rem;line-height:1.1}.topbar-actions{align-items:center;display:flex;gap:10px;flex-wrap:nowrap}.month-nav{align-items:center;display:flex;gap:8px}.month-nav .icon-button{min-width:42px}.topbar-actions>.icon-button{flex:0 0 42px;min-width:42px;padding:0;width:42px}.month-picker{background:linear-gradient(180deg,#1a2636fa,#0d1520fa);border-color:var(--border-strong);box-shadow:inset 0 1px #ffffff0a;color:var(--text);font-weight:700;min-width:240px;padding-inline:16px 14px}.month-picker:hover{border-color:#6aa8ff85;background:linear-gradient(180deg,#203047fa,#111a27fa);transform:translateY(-1px)}.month-picker::-webkit-calendar-picker-indicator{background-color:#6aa8ff24;border:1px solid rgba(106,168,255,.24);border-radius:6px;cursor:pointer;filter:invert(86%) sepia(17%) saturate(677%) hue-rotate(177deg);height:18px;margin-left:12px;padding:5px;transition:background-color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease);width:18px}.month-picker::-webkit-calendar-picker-indicator:hover{background-color:#6aa8ff3d;border-color:#6aa8ff75;transform:scale(1.04)}.summary-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.summary-card,.panel{background:linear-gradient(180deg,#111a27fa,#0d1520fa);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);transition:background-color .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}.summary-card{animation:panel-rise .42s var(--ease-soft) both;min-height:126px;overflow:hidden;padding:20px;position:relative}.summary-card:after{background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 58%);content:"";height:80px;position:absolute;right:-28px;top:-36px;transform:rotate(16deg);width:120px}.summary-card:hover,.panel:hover{border-color:var(--border-strong)}.summary-card:hover{box-shadow:0 22px 48px #02060c57;transform:translateY(-3px)}.summary-card span{color:var(--muted);display:block;font-size:.86rem;margin-bottom:14px}.summary-card strong{display:block;font-size:1.78rem;line-height:1.15}.summary-card.income{border-top:3px solid var(--green)}.summary-card.expense{border-top:3px solid var(--red)}.summary-card.balance{border-top:3px solid var(--blue)}.summary-card.expected{border-top:4px solid #f08c00}.panel{padding:20px}.panel-header{align-items:center;display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 4px;text-transform:uppercase}.subtabbar{animation:panel-rise .34s var(--ease-soft) both;background:#0d1520;border:1px solid var(--border);border-radius:8px;display:inline-grid;gap:6px;grid-template-columns:repeat(2,minmax(120px,1fr));margin-bottom:16px;padding:6px}.subtabbar button{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);min-height:38px;padding:8px 12px}.subtabbar button.active{background:var(--surface-raised);border-color:var(--border);color:var(--text);font-weight:800}.tab-panel{animation:panel-in .34s var(--ease-soft)}.entry-form{animation:panel-rise .38s var(--ease-soft) both;background:#0d1520;border:1px solid var(--border);border-radius:8px;grid-template-columns:118px minmax(220px,1fr) 132px 146px 180px auto;margin-bottom:20px;padding:12px}.quick-entry-form{align-items:end;background:linear-gradient(180deg,#122032fa,#0c1622fa);grid-template-columns:118px minmax(220px,1fr) 132px 146px 180px auto;margin-bottom:14px}.quick-entry-form label{min-width:0}.quick-entry-form__description{min-width:220px}.quick-entry-form .primary-button{min-height:44px;padding-inline:18px}.recurring-form{animation:panel-rise .38s var(--ease-soft) both;background:#0d1520;border:1px solid var(--border);border-radius:8px;grid-template-columns:118px minmax(220px,1fr) 132px 104px 180px auto;margin-bottom:20px;padding:12px}.category-form{animation:panel-rise .38s var(--ease-soft) both;background:#0d1520;border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(180px,1fr) auto;margin-bottom:20px;padding:12px}.limit-form{animation:panel-rise .38s var(--ease-soft) both;background:#0d1520;border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(220px,1fr) 160px auto;margin-bottom:20px;padding:12px}.settings-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.settings-card{animation:card-in .42s var(--ease-soft) both;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:14px;padding:16px}.settings-card h3{margin:0}.settings-card p{color:var(--muted);margin:6px 0 0}.settings-card .primary-button{justify-self:start}.money-income{color:var(--green);font-weight:800}.money-expense{color:var(--red);font-weight:800}.empty-state{color:var(--muted);margin:24px 0;text-align:center}.card-grid,.category-grid,.limit-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.data-card,.category-card,.limit-card{animation:card-in .42s var(--ease-soft) both;background:linear-gradient(180deg,#152132fa,#101a27fa);border:1px solid var(--border);border-radius:8px;box-shadow:none;min-width:0;padding:14px;transition:background-color .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.data-card:hover,.category-card:hover,.limit-card:hover{border-color:var(--border-strong);box-shadow:0 18px 36px #02060c3d;transform:translateY(-3px)}.card-grid .data-card:nth-child(2),.card-grid .category-card:nth-child(2),.category-grid .category-card:nth-child(2),.summary-grid .summary-card:nth-child(2){animation-delay:.04s}.card-grid .data-card:nth-child(3),.card-grid .category-card:nth-child(3),.category-grid .category-card:nth-child(3),.summary-grid .summary-card:nth-child(3){animation-delay:.08s}.card-grid .data-card:nth-child(n+4),.card-grid .category-card:nth-child(n+4),.category-grid .category-card:nth-child(n+4){animation-delay:.12s}.data-card{border-left:3px solid var(--red);display:grid;gap:12px;min-height:168px}.data-card.entrada{border-left-color:var(--green)}.data-card.saida{border-left-color:var(--red)}.data-card h3{font-size:1rem;line-height:1.25;margin:0;overflow-wrap:anywhere}.data-card p{color:var(--muted);margin:0}.card-grid--expenses{display:grid;gap:12px;grid-auto-columns:minmax(180px,1fr);grid-auto-flow:column;overflow-x:hidden}.card-grid--expenses .data-card{min-height:152px;padding:12px}.card-grid--expenses .data-card h3{font-size:.94rem}.card-grid--expenses .data-card p,.card-grid--expenses .card-row span{font-size:.86rem}.card-grid--expenses .card-row strong{font-size:.95rem}.card-grid--expenses .card-actions .ghost-button,.card-grid--expenses .card-actions .icon-button{min-height:34px;padding:6px 10px}.card-grid--expenses .card-actions .icon-button{min-width:34px;padding:6px}.excel-table-wrap{border:1px solid var(--border);border-radius:8px;margin-top:8px;max-width:100%;overflow-x:auto}.excel-table{border-collapse:collapse;min-width:760px;width:100%}.excel-table th,.excel-table td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:middle;white-space:nowrap}.excel-table th{background:#152132fa;color:var(--muted-strong);font-size:.78rem;letter-spacing:0;position:sticky;text-transform:uppercase;top:0;z-index:1}.excel-table td{background:#0d1520eb;color:var(--text);font-size:.92rem}.excel-table tbody tr:nth-child(2n) td{background:#111a27f5}.excel-table tbody tr:hover td{background:#1a2c44fa}.excel-table__description{font-weight:800;min-width:220px;white-space:normal}.table-sort-button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:8px;justify-content:space-between;min-height:0;padding:0;text-align:left;text-transform:inherit;width:100%}.table-sort-button span{color:var(--blue);font-size:.95rem;font-weight:900;line-height:1}.table-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.table-actions .icon-button{min-height:34px;min-width:34px;padding:6px}.table-meter{background:#0d1520;border:1px solid var(--border);border-radius:999px;height:12px;min-width:140px;overflow:hidden}.table-meter span{background:var(--green);display:block;height:100%}.table-meter span.exceeded{background:var(--red)}.card-row{align-items:center;display:flex;justify-content:space-between;gap:12px}.card-row.footer{border-top:1px solid var(--border);padding-top:10px}.type-pill{background:#0d1520;border:1px solid var(--border);border-radius:999px;color:var(--muted-strong);font-size:.78rem;font-weight:800;padding:6px 10px;transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.status-pill{background:#0d1520;border:1px solid var(--border);border-radius:999px;color:var(--muted-strong);font-size:.78rem;font-weight:800;justify-self:start;padding:6px 10px;transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.type-pill,.status-pill,.limit-status-row span{animation:pill-pop .28s var(--ease-soft) both}.data-card:hover .status-pill{transform:translateY(-1px)}.status-pill.success{background:#55c27c1f;border-color:#55c27c57;color:#9ee3b6}.status-pill.pending{background:#f2b84b1f;border-color:#f2b84b57;color:#ffd98f}.card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.card-actions.compact{flex-wrap:wrap;justify-content:flex-end}.paid-action{color:#9ee3b6}.category-card{border-top:3px solid var(--blue);display:grid;gap:8px}.category-card span{color:var(--muted);font-size:.82rem}.category-card strong{overflow-wrap:anywhere}.limit-card{display:grid;gap:12px}.limit-card h3{margin:10px 0 0}.limit-values{display:grid;gap:4px}.limit-values span{color:var(--muted)}.limit-meter{background:#0d1520;border:1px solid var(--border);border-radius:999px;height:12px;overflow:hidden}.limit-meter span{background:var(--green);animation:meter-fill .72s var(--ease-soft) both;display:block;height:100%;transform-origin:left center;transition:width .28s var(--ease-soft)}.limit-meter span.exceeded{background:var(--red)}.limit-alert{color:var(--muted-strong);margin:0}.limit-alert.danger{color:#ffc3ca}.report-hero{align-items:center;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 260px;margin-bottom:16px}.report-hero h2{font-size:1.7rem;margin-bottom:8px}.report-hero p{color:var(--muted);margin:0;max-width:620px}.report-highlight{background:#0d1520;border:1px solid var(--border);border-radius:8px;display:grid;gap:6px;padding:16px}.report-highlight span,.report-highlight small{color:var(--muted)}.report-highlight strong{font-size:1.15rem;overflow-wrap:anywhere}.report-summary{margin-bottom:16px}.report-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)}.report-panel{min-height:280px}.report-panel.wide{min-width:0}.report-bars,.expense-ranking,.limit-status-list{display:grid;gap:12px}.report-bar-row{display:grid;gap:8px}.report-bar-label{align-items:center;display:flex;gap:12px;justify-content:space-between}.report-bar-label span{color:var(--muted-strong);font-weight:700;overflow-wrap:anywhere}.report-bar-label strong{color:var(--text)}.report-track{background:#0d1520;border:1px solid var(--border);border-radius:999px;height:13px;overflow:hidden}.report-track span{animation:meter-fill .72s var(--ease-soft) both;border-radius:inherit;display:block;height:100%;min-width:6px;transform-origin:left center;transition:width .28s var(--ease-soft)}.ranking-row,.limit-status-row{align-items:center;animation:card-in .42s var(--ease-soft) both;background:#0d1520b8;border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px}.ranking-row>span{align-items:center;background:var(--surface-soft);border-radius:999px;color:var(--blue);display:inline-flex;font-weight:800;height:30px;justify-content:center;width:30px}.ranking-row strong,.limit-status-row strong{display:block;overflow-wrap:anywhere}.ranking-row small,.limit-status-row small{color:var(--muted)}.ranking-row b{color:var(--red)}.limit-status-row{grid-template-columns:minmax(0,1fr) auto}.limit-status-row span{border:1px solid var(--border);border-radius:999px;font-size:.78rem;font-weight:800;padding:6px 10px}.limit-status-row span.success{background:#55c27c1f;border-color:#55c27c57;color:#9ee3b6}.limit-status-row span.warning{background:#f2b84b1f;border-color:#f2b84b57;color:#ffd98f}.limit-status-row span.danger{background:#ef6b7a1f;border-color:#ef6b7a57;color:#ffc3ca}.daily-chart{align-items:end;display:flex;gap:8px;min-height:210px;overflow-x:auto;padding:12px 2px 2px}.daily-column{align-items:center;display:grid;flex:0 0 28px;gap:8px;grid-template-rows:minmax(120px,1fr) auto;height:190px}.daily-column span{align-self:end;animation:bar-rise .7s var(--ease-soft) both;background:linear-gradient(180deg,var(--blue),#3a78d3);border-radius:999px 999px 4px 4px;box-shadow:0 10px 20px #3a78d32e;display:block;min-height:10px;width:100%}.daily-column small{color:var(--muted);font-size:.76rem}.modal-backdrop{align-items:center;animation:fade-in .18s var(--ease) both;background:#02060cb8;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:18px;position:fixed;z-index:20}.modal-card{animation:modal-in .24s var(--ease) both;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 72px #00000061;max-height:calc(100vh - 36px);max-width:520px;overflow:auto;padding:18px;width:100%}.modal-form{display:grid;gap:12px}.confirm-message{color:var(--muted-strong);margin:0 0 18px}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.checkbox-row{align-items:center;display:flex;gap:10px}.checkbox-row input{min-height:auto;width:auto}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loader-breathe{0%,to{box-shadow:0 18px 34px #02060c52,0 0 0 8px #6aa8ff0a}50%{box-shadow:0 24px 42px #02060c61,0 0 0 12px #55c27c0f}}@keyframes loader-text{0%,to{opacity:.62}50%{opacity:1}}@keyframes meter-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes bar-rise{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:scaleY(1)}}@keyframes pill-pop{0%{opacity:0;transform:translateY(3px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes page-in{0%{opacity:0}to{opacity:1}}@keyframes panel-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes notice-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1100px){.app-layout{grid-template-columns:218px minmax(0,1fr)}.app-layout.sidebar-collapsed{grid-template-columns:74px minmax(0,1fr)}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-form,.recurring-form,.category-form,.limit-form,.card-grid,.category-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-form,.recurring-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){body{padding-bottom:var(--mobile-tabbar-offset)}.app-layout{--mobile-tabbar-offset: calc(104px + env(safe-area-inset-bottom)) }.app-layout.mobile-input-focused{--mobile-tabbar-offset: calc(20px + env(safe-area-inset-bottom)) }.app-layout,.app-layout.sidebar-collapsed{display:block;padding:16px 14px calc(24px + env(safe-area-inset-bottom))}.app-shell{padding:0 0 calc(var(--mobile-tabbar-offset) + 12px);overflow-x:hidden;width:100%}.tab-panel{padding-bottom:calc(var(--mobile-tabbar-offset) + 12px);overflow-x:hidden}.tab-panel.panel{padding-bottom:calc(var(--mobile-tabbar-offset) + 24px)}.sidebar{display:none}.topbar,.panel-header{align-items:stretch;flex-direction:column}.topbar-actions{gap:8px;justify-content:space-between;width:100%}.month-nav{flex:1;min-width:0}.month-nav .icon-button{flex:0 0 42px}.month-nav .month-picker{flex:1;min-width:0}.topbar-actions,.summary-grid,.entry-form,.recurring-form,.category-form,.limit-form,.settings-grid,.card-grid,.category-grid,.limit-grid,.report-grid,.report-hero,.mobile-tabbar,.subtabbar{grid-template-columns:1fr}.summary-grid,.entry-form,.recurring-form,.category-form,.limit-form,.settings-grid,.card-grid,.category-grid,.limit-grid,.report-grid,.mobile-tabbar,.subtabbar{display:grid}.mobile-tabbar button,.subtabbar button{justify-content:flex-start}.mobile-tabbar{animation:panel-rise .28s var(--ease) both;background:#0d1520f5;border:1px solid var(--border);border-radius:14px 14px 0 0;bottom:0;box-shadow:0 -16px 34px #02060c57;display:flex;gap:8px;grid-template-columns:none;left:0;overflow-x:auto;overscroll-behavior-x:contain;padding:10px 12px calc(10px + env(safe-area-inset-bottom));position:fixed;right:0;scroll-padding-inline:12px;scroll-snap-type:x mandatory;scrollbar-width:none;transition:transform .24s var(--ease),opacity .24s var(--ease);z-index:15}.mobile-tabbar.is-collapsed{opacity:.2;transform:translateY(calc(100% - 28px - env(safe-area-inset-bottom)))}.mobile-tabbar::-webkit-scrollbar{display:none}.mobile-tabbar button{align-items:center;flex:0 0 108px;flex-direction:row;font-size:.78rem;gap:7px;justify-content:center;min-height:54px;padding:10px 12px;scroll-snap-align:center;text-align:center}.mobile-tabbar button.active{box-shadow:inset 0 3px #6aa8ffbd}.card-row{align-items:flex-start;flex-direction:column}.card-row.footer{align-items:stretch}.card-actions,.card-actions.compact{width:100%}.card-actions .ghost-button{flex:1}.report-hero{align-items:stretch}.ranking-row{grid-template-columns:auto minmax(0,1fr)}.ranking-row b{grid-column:2}.card-grid--expenses{display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.card-grid--expenses .data-card{flex:0 0 280px}.excel-table-wrap{overflow-x:hidden;border:none;border-radius:0;margin-top:0}.excel-table{min-width:unset;display:block}.excel-table thead{display:none}.excel-table tbody,.excel-table tr,.excel-table td{display:block;width:100%}.excel-table tbody tr{margin-bottom:12px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.excel-table td{border:none;border-bottom:1px solid var(--border);text-align:left;white-space:normal;position:relative;padding:10px 12px 10px 40%}.excel-table td:last-child{border-bottom:none}.excel-table td:before{content:attr(data-label);position:absolute;left:12px;width:35%;font-weight:700;color:var(--muted-strong);font-size:.78rem;text-transform:uppercase;letter-spacing:0}.excel-table__description{min-width:unset;font-size:1rem}.table-actions{justify-content:flex-start}.table-meter{min-width:unset}.filter-bar{flex-direction:column!important;gap:8px!important}.filter-bar input,.filter-bar select{width:100%;min-width:unset!important}.report-panel[style*=grid-template-columns]{grid-template-columns:1fr!important}.report-panel .recharts-wrapper{max-width:100%!important}.daily-chart{gap:4px;padding:8px 2px}.daily-column{flex:0 0 22px;gap:4px;height:160px}}@media(max-width:520px){.summary-card{min-height:auto}.summary-card strong{font-size:1.42rem}.data-card{min-height:auto}.card-actions.compact{justify-content:flex-start}.icon-button{min-width:42px}.mobile-tabbar{gap:8px;padding:9px 10px calc(9px + env(safe-area-inset-bottom))}.mobile-tabbar button{flex-basis:104px;font-size:.74rem;min-height:52px;padding-inline:10px}.report-highlight,.ranking-row,.limit-status-row{padding:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
