:root{--color-primary: #18B7A0;--color-primary-hover: #129B88;--color-primary-active: #0F7F71;--color-primary-light: #DDF7F2;--color-primary-soft: #F0FBF9;--color-secondary: #3F8FA3;--color-secondary-light: #E5F3F6;--color-bg: #F7F9FA;--color-bg-secondary: #F0F4F5;--color-surface: #ffffff;--color-surface-soft: #F5F8F8;--color-surface-hover: #F5F8F8;--color-border: #E4EAEC;--color-border-strong: #D4DDE0;--color-line: var(--color-border);--color-text: #162326;--color-muted: #59696D;--color-text-muted: #8A989B;--color-success: #19A974;--color-warning: #E6A23C;--color-danger: #E45C64;--color-info: #4C85E8;--color-income: #19A974;--color-income-bg: #E4F7EF;--color-expense: #E45C64;--color-expense-bg: #FCEBEC;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 12px;--shadow-sm: 0 1px 3px rgba(22, 35, 38, .06);--shadow-md: 0 8px 24px rgba(22, 35, 38, .08);--shadow-lg: 0 16px 40px rgba(22, 35, 38, .12);--shadow-float: 0 18px 45px rgba(22, 35, 38, .18);font-family:Golos Text,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--color-text);background:radial-gradient(circle at 16% -12%,rgba(24,183,160,.18),transparent 32%),radial-gradient(circle at 88% 2%,rgba(63,143,163,.12),transparent 28%),linear-gradient(180deg,#fbfdfd 0%,var(--color-bg) 42%,var(--color-bg-secondary) 100%);letter-spacing:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-panel{width:min(100%,420px);background:#ffffffe0;border:1px solid rgba(228,234,236,.86);border-radius:30px;padding:24px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.auth-brand-block{display:grid;justify-items:center;gap:8px;margin-bottom:6px;text-align:center}.auth-brand-block img{width:min(172px,70%);height:auto;margin-bottom:8px}.app-shell{min-height:100vh;padding-bottom:104px}.topbar{position:sticky;top:0;z-index:20;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#f7f9fabd;border-bottom:1px solid rgba(228,234,236,.74);-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5)}.brand{display:inline-flex;align-items:center;min-width:112px}.brand-logo{width:112px;height:auto;display:block}.brand-logo-dark{display:none}.topbar-actions,.row-actions{display:flex;align-items:center;gap:8px}.compact-actions{justify-content:flex-end}.content{width:min(100%,1120px);margin:0 auto;padding:18px 14px 26px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.page-head.compact{margin-bottom:12px}.page-title{margin:0;font-size:28px;line-height:1.08;font-weight:850}.page-subtitle{margin:6px 0 0;color:var(--color-muted);font-size:14px;line-height:1.42}.grid{display:grid;gap:12px;margin-bottom:12px}.grid.two,.grid.three{grid-template-columns:1fr}.card,.form-card,.filter-panel,.transaction-card,.category-card,.limit-card{background:#ffffffe6;border:1px solid rgba(228,234,236,.9);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.card:active,.transaction-card:active,.category-card:active,.limit-card:active,.project-card:active{transform:scale(.995)}.form-card,.filter-panel{margin-bottom:14px}.card-title{margin:0 0 6px;font-size:16px;line-height:1.2;font-weight:800}.metric{display:grid;gap:6px}.metric-label,.muted{color:var(--color-muted);font-size:13px}.metric-value{font-size:24px;font-weight:800;letter-spacing:0}.dashboard-balance{display:grid;justify-items:center;gap:7px;margin-bottom:12px;padding:24px 18px;border:1px solid rgba(24,183,160,.2);border-radius:24px;background:linear-gradient(145deg,var(--color-primary-soft),var(--color-surface));text-align:center}.dashboard-period-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;max-width:420px;margin:0 0 14px;padding:4px;border:1px solid var(--color-line);border-radius:16px;background:var(--color-bg-secondary)}.dashboard-period-switch button{min-height:38px;border:0;border-radius:12px;padding:6px 10px;color:var(--color-muted);background:transparent;cursor:pointer;font-size:13px;font-weight:750}.dashboard-period-switch button.active{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-sm)}.dashboard-period-switch button:disabled{cursor:wait}.dashboard-balance>span,.dashboard-balance>small{color:var(--color-muted);font-size:13px;font-weight:700}.dashboard-balance>strong{font-size:36px;line-height:1.05;font-weight:850}.dashboard-metrics{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:18px}.dashboard-metric{min-height:62px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--color-line);border-radius:17px;background:var(--color-surface)}.dashboard-metric>div{min-width:0;display:grid;gap:3px}.dashboard-metric small{color:var(--color-muted);font-size:11px}.dashboard-metric strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.metric-dot{width:10px;height:10px;border-radius:999px}.income-dot{background:var(--color-income)}.expense-dot{background:var(--color-expense)}.dashboard-columns{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}.dashboard-section{min-width:0;padding:16px 4px 18px;border-top:1px solid var(--color-line)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2,.section-heading p{margin:0}.section-heading h2{font-size:16px}.section-heading p{margin-top:3px;color:var(--color-muted);font-size:11px}.section-heading>a{min-height:34px;display:inline-flex;align-items:center;padding:0 4px;color:var(--color-primary-active);font-size:13px;font-weight:800}.dashboard-category-list,.dashboard-limit-list{display:grid;gap:15px}.dashboard-category-row,.dashboard-limit-row{min-width:0;display:grid;gap:8px}.dashboard-category-row .split,.dashboard-limit-row .split{min-width:0;flex-direction:row;align-items:center}.dashboard-limit-row .split>strong{max-width:48%;font-size:12px;text-align:right}.category-share{height:6px;overflow:hidden;border-radius:999px;background:var(--color-bg-secondary)}.category-share span{display:block;height:100%;border-radius:inherit}.progress-warning span{background:var(--color-warning)}.progress-danger span{background:var(--color-danger)}.dashboard-recent-list{display:grid}.dashboard-recent-row{min-width:0;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-recent-row+.dashboard-recent-row{border-top:1px solid var(--color-line)}.dashboard-recent-row .category-inline{min-width:0}.dashboard-recent-row .category-inline>div:last-child{min-width:0}.dashboard-recent-row .category-inline strong,.dashboard-recent-row .muted{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-recent-row>strong{flex:0 0 auto;white-space:nowrap;font-size:13px}.dashboard-balance-skeleton{height:130px;margin-bottom:12px;border-radius:24px}.dashboard-metric-skeleton{height:62px;border-radius:17px}.form{display:grid;gap:12px}.form-row{display:grid;gap:8px}.form-label{color:var(--color-muted);font-size:13px;font-weight:700}.input,.select,.textarea{width:100%;min-height:46px;border:1px solid transparent;border-radius:16px;padding:11px 13px;color:var(--color-text);background:var(--color-bg-secondary);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.input:focus,.select:focus,.textarea:focus{outline:3px solid rgba(24,183,160,.16);border-color:#18b7a09e}.textarea{min-height:86px;resize:vertical}.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:16px;padding:9px 14px;color:#fff;background:var(--color-primary);cursor:pointer;font-weight:800;box-shadow:0 8px 18px #18b7a029;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.button:active,.icon-button:active,.icon-link:active,.bottom-nav-plus:active{transform:scale(.97)}.button:hover{background:var(--color-primary-hover)}.button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button.secondary{color:var(--color-text);background:var(--color-primary-soft);box-shadow:none}.button.danger{background:var(--color-danger);box-shadow:0 8px 18px #e45c6429}.icon-button,.icon-link{width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid var(--color-line);border-radius:15px;color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:background .16s ease,transform .16s ease,border-color .16s ease}.icon-button:hover,.icon-link:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.icon-button.danger-soft{color:var(--color-danger);background:var(--color-expense-bg)}.list{display:grid;gap:12px}.list-item{display:grid;gap:8px}.split{display:flex;align-items:center;justify-content:space-between;gap:12px}.category-inline{display:inline-flex;align-items:center;gap:10px;min-width:0}.category-avatar{width:38px;height:38px;flex:0 0 auto;display:inline-grid;place-items:center;border-radius:15px;color:var(--category-color);background:color-mix(in srgb,var(--category-color) 13%,white);border:1px solid color-mix(in srgb,var(--category-color) 24%,white)}.badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;width:fit-content;padding:4px 10px;background:var(--color-primary-light);color:var(--color-primary-active);font-size:12px;font-weight:800}.badge.success{background:var(--color-income-bg);color:var(--color-income)}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:var(--color-expense-bg);color:var(--color-expense)}.error{border:1px solid rgba(228,92,100,.3);border-radius:var(--radius-md);padding:12px;color:var(--color-danger);background:var(--color-expense-bg)}.empty{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:22px;color:var(--color-muted);text-align:center}.filter-panel{display:grid;gap:12px}.transaction-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:12px}.search-field{min-width:0;min-height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--color-line);border-radius:17px;color:var(--color-muted);background:#ffffffe6;box-shadow:var(--shadow-sm);transition:border-color .16s ease,box-shadow .16s ease}.search-field:focus-within{border-color:#18b7a09e;box-shadow:0 0 0 3px #18b7a024}.search-field input{min-width:0;width:100%;border:0;outline:0;color:var(--color-text);background:transparent;font:inherit}.search-field input::placeholder{color:var(--color-muted)}.filter-trigger{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--color-line);border-radius:17px;color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;font-weight:750}.filter-trigger.active{border-color:#18b7a066;color:var(--color-primary-active);background:var(--color-primary-soft)}.filter-count{min-width:22px;height:22px;display:inline-grid;place-items:center;border-radius:999px;padding:0 6px;color:#fff;background:var(--color-primary);font-size:12px;font-weight:800}.active-filters{display:flex;align-items:center;gap:8px;margin:-2px 0 12px;overflow-x:auto;scrollbar-width:none}.active-filters::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;min-height:30px;display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;color:var(--color-primary-active);background:var(--color-primary-light);font-size:12px;font-weight:750}.clear-filters{flex:0 0 auto;border:0;padding:6px 4px;color:var(--color-muted);background:transparent;cursor:pointer;font-size:12px;font-weight:750}.transaction-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}.transaction-card,.project-card,.category-card,.limit-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.transaction-main{min-width:0}.transaction-description{margin-bottom:0}.transaction-groups{display:grid;gap:18px}.transaction-summary{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:0;margin-bottom:16px;overflow:hidden;border:1px solid var(--color-line);border-radius:17px;background:#ffffffc7;box-shadow:var(--shadow-sm)}.transaction-summary>div{min-width:0;display:grid;align-content:center;gap:4px;padding:10px 11px}.transaction-summary>div+div{border-left:1px solid var(--color-line)}.transaction-summary span{overflow:hidden;color:var(--color-muted);font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.transaction-summary strong{overflow:hidden;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.transaction-summary-main{background:var(--color-primary-soft)}.transaction-group{min-width:0}.transaction-group-header{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px 7px}.transaction-group-header h2{margin:0;color:var(--color-muted);font-size:13px;font-weight:800}.transaction-group-totals{display:flex;flex-wrap:wrap;justify-content:end;gap:8px;font-size:12px;font-weight:800}.transaction-group-list{overflow:hidden;border:1px solid var(--color-line);border-radius:18px;background:#ffffffeb;box-shadow:var(--shadow-sm)}.transaction-row{min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px 8px 9px 12px}.transaction-row+.transaction-row{border-top:1px solid var(--color-line)}.transaction-content{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;align-self:stretch;border:0;padding:0;color:var(--color-text);background:transparent;cursor:pointer;text-align:left}.transaction-copy{min-width:0;display:grid;gap:4px}.transaction-copy strong,.transaction-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-copy strong{font-size:15px}.transaction-copy small{color:var(--color-muted);font-size:12px}.transaction-content>strong{flex:0 0 auto;white-space:nowrap;font-size:14px}.transaction-menu-button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:14px;color:var(--color-muted);background:transparent;cursor:pointer}.transaction-menu-button:hover{color:var(--color-text);background:var(--color-bg-secondary)}.quick-periods{display:flex;gap:8px;margin:0 -18px 12px;padding:0 18px;overflow-x:auto;scrollbar-width:none}.quick-periods::-webkit-scrollbar{display:none}.quick-periods button{flex:0 0 auto;min-height:36px;border:1px solid var(--color-line);border-radius:999px;padding:6px 12px;color:var(--color-muted);background:var(--color-surface);cursor:pointer;font-weight:750}.quick-periods button.active{border-color:#18b7a061;color:var(--color-primary-active);background:var(--color-primary-light)}.action-sheet-list{display:grid;overflow:hidden;border:1px solid var(--color-line);border-radius:18px}.action-sheet-item{width:100%;min-height:64px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:0;padding:10px 14px;color:var(--color-text);background:var(--color-surface);cursor:pointer;text-align:left}.action-sheet-item+.action-sheet-item{border-top:1px solid var(--color-line)}.action-sheet-item>span{min-width:0;display:grid;gap:3px}.action-sheet-item small{overflow:hidden;color:var(--color-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.danger-text{color:var(--color-danger)}.empty-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px;border:1px dashed var(--color-border-strong);border-radius:20px;text-align:center}.empty-state-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:14px;border-radius:20px;color:var(--color-primary-active);background:var(--color-primary-light)}.empty-state h2{margin:0;font-size:18px}.empty-state p{max-width:360px;margin:7px 0 18px;color:var(--color-muted);font-size:14px;line-height:1.45}.skeleton{position:relative;overflow:hidden;border-radius:8px;background:var(--color-bg-secondary)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);animation:skeleton-shimmer 1.25s infinite}.skeleton-heading{width:120px;height:14px;margin:7px 4px 9px}.skeleton-row{grid-template-columns:auto minmax(0,1fr) auto}.skeleton-icon{width:38px;height:38px;border-radius:15px}.skeleton-copy{display:grid;gap:7px}.skeleton-line{width:42%;height:10px}.skeleton-line.wide{width:68%;height:13px}.skeleton-amount{width:82px;height:15px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.toast-region{position:fixed;right:12px;bottom:calc(98px + env(safe-area-inset-bottom));left:12px;z-index:120;display:grid;justify-items:center;gap:8px;pointer-events:none}.toast{width:min(100%,420px);min-height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 10px 10px 14px;border:1px solid var(--color-line);border-radius:17px;color:var(--color-text);background:#fffffff7;box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;font-size:14px;font-weight:750}.toast-success>svg{color:var(--color-income)}.toast-error>svg{color:var(--color-danger)}.toast button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:12px;color:var(--color-muted);background:transparent;cursor:pointer}.toast-list-enter-active,.toast-list-leave-active{transition:opacity .18s ease,transform .22s ease}.toast-list-enter-from,.toast-list-leave-to{opacity:0;transform:translateY(12px)}.money-income{color:var(--color-income)}.money-expense{color:var(--color-expense)}.category-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.limit-card{position:relative;display:grid;gap:12px}.limit-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:8px}.project-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;background:#ffffffe6;border:1px solid rgba(228,234,236,.9);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.project-card-main{min-width:0}.project-card-actions,.card-icon-actions{display:flex;flex-direction:column;gap:8px}.type-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:4px;border-radius:18px;background:var(--color-surface-soft)}.type-switch button{min-height:44px;border:0;border-radius:11px;color:var(--color-muted);background:transparent;cursor:pointer;font-weight:800;transition:color .16s ease,background .16s ease,box-shadow .16s ease}.type-switch button.active{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-sm)}.amount-input{min-height:58px;font-size:28px;font-weight:850}.color-row{display:grid;grid-template-columns:58px 1fr;gap:10px}.color-input{width:58px;min-height:46px;border:1px solid var(--color-line);border-radius:12px;padding:4px;background:var(--color-surface)}.icon-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.icon-picker button{aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--color-line);border-radius:14px;color:var(--color-muted);background:var(--color-surface);cursor:pointer}.icon-picker button.active{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.category-preview{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--color-surface-soft)}.inline-create-toggle{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px dashed rgba(24,183,160,.42);border-radius:16px;color:var(--color-primary);background:#18b7a014;cursor:pointer;font-weight:800}.inline-create-panel{display:grid;gap:12px;padding:14px;border:1px solid rgba(24,183,160,.18);border-radius:22px;background:var(--color-primary-soft)}.recent-categories{display:flex;gap:9px;margin:0 -16px;padding:0 16px 3px;overflow-x:auto;scrollbar-width:none}.recent-categories::-webkit-scrollbar{display:none}.recent-categories button{width:78px;min-height:82px;flex:0 0 auto;display:grid;justify-items:center;align-content:center;gap:7px;border:1px solid var(--color-line);border-radius:17px;padding:8px 5px;color:var(--color-muted);background:var(--color-surface);cursor:pointer;font-size:11px;font-weight:750}.recent-categories button.active{border-color:#18b7a06b;color:var(--color-primary-active);background:var(--color-primary-soft);box-shadow:0 0 0 2px #18b7a01a}.recent-categories button>span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-picker.compact{grid-template-columns:repeat(6,minmax(0,1fr))}.sticky-actions{position:sticky;bottom:92px;display:grid;grid-template-columns:1fr 1.4fr;gap:10px;padding-top:6px}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:end center;padding:16px;background:#0f172a6b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sheet-backdrop{position:fixed;inset:0;z-index:90;display:grid;align-items:end;background:#0f172a70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bottom-sheet{width:min(100%,620px);max-height:min(88dvh,760px);justify-self:center;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--color-line);border-bottom:0;border-radius:28px 28px 0 0;background:#fffffffa;box-shadow:var(--shadow-float)}.sheet-handle{width:38px;height:5px;justify-self:center;margin:9px 0 2px;border-radius:999px;background:var(--color-border-strong)}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px 14px;border-bottom:1px solid var(--color-line)}.sheet-title{margin:0;font-size:22px;line-height:1.15}.sheet-subtitle{margin:4px 0 0;color:var(--color-muted);font-size:13px}.sheet-close{flex:0 0 auto;border:0;background:var(--color-bg-secondary)}.sheet-content{min-height:0;overflow-y:auto;padding:18px}.sheet-filter-form{display:grid;gap:18px}.filter-group{min-width:0;margin:0;border:0;padding:0}.filter-group legend{margin-bottom:8px;color:var(--color-muted);font-size:13px;font-weight:700}.filter-group .grid{margin-bottom:0}.filter-segments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--color-bg-secondary)}.filter-segments button{min-width:0;min-height:38px;border:0;border-radius:12px;color:var(--color-muted);background:transparent;cursor:pointer;font-weight:750}.filter-segments button.active{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-sm)}.sheet-footer{display:grid;grid-template-columns:1fr 1.45fr;gap:10px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--color-line);background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sheet-fade-enter-active,.sheet-fade-leave-active,.sheet-slide-enter-active,.sheet-slide-leave-active{transition:opacity .22s ease,transform .26s cubic-bezier(.22,1,.36,1)}.sheet-fade-enter-from,.sheet-fade-leave-to{opacity:0}.sheet-slide-enter-from,.sheet-slide-leave-to{transform:translateY(100%)}.confirm-modal{width:min(100%,420px);display:grid;gap:14px;padding:18px;border:1px solid var(--color-line);border-radius:22px;background:#fffffff5;box-shadow:var(--shadow-float)}.confirm-title{margin:0;font-size:20px}.confirm-message{margin:0;color:var(--color-muted);line-height:1.45}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pwa-prompt{position:fixed;right:12px;bottom:96px;left:12px;z-index:70;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid rgba(203,213,225,.95);border-radius:20px;background:#fffffffa;box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pwa-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--color-primary)}.pwa-copy{min-width:0}.pwa-copy p{margin:3px 0 0;color:var(--color-muted);font-size:13px;line-height:1.35}.pwa-actions{display:flex;align-items:center;gap:8px}.bottom-nav{position:fixed;right:12px;bottom:14px;left:12px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;border:1px solid rgba(228,234,236,.92);border-radius:28px;background:#fffffff5;-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);box-shadow:var(--shadow-float)}.bottom-nav-item{height:68px;display:grid;place-items:center;align-content:center;gap:3px;color:var(--color-muted);font-size:11px;font-weight:700;transition:color .16s ease,transform .16s ease}.bottom-nav-plus{width:58px;height:58px;display:grid;place-self:center;place-items:center;border-radius:22px;color:#fff;background:var(--color-primary);box-shadow:0 16px 30px #18b7a057}.bottom-nav-plus.router-link-active{background:var(--color-primary-active)}.bottom-nav-item.router-link-active{color:var(--color-primary)}.progress{height:10px;overflow:hidden;border-radius:999px;background:#e5e7eb}.progress span{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}@media(min-width:760px){.content{padding:26px 24px 40px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three,.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{padding-bottom:0}.bottom-nav{right:24px;bottom:20px;left:auto;width:500px;overflow:hidden;border-radius:22px;box-shadow:var(--shadow-sm)}.sticky-actions{position:static}.modal-backdrop{place-items:center}.pwa-prompt{right:24px;bottom:104px;left:auto;width:480px}.project-card-actions,.card-icon-actions{flex-direction:row}}@media(prefers-color-scheme:dark){:root{--color-primary: #27C7AF;--color-primary-hover: #3CD2BC;--color-primary-active: #18B7A0;--color-primary-light: #153E39;--color-primary-soft: #102C29;--color-secondary: #55A7BA;--color-secondary-light: #17343B;--color-bg: #101617;--color-bg-secondary: #151D1F;--color-surface: #1A2325;--color-surface-soft: #202B2D;--color-surface-hover: #202B2D;--color-border: #293537;--color-border-strong: #364346;--color-line: var(--color-border);--color-text: #F4F7F7;--color-muted: #AEBABD;--color-text-muted: #748286;--color-income: #39C991;--color-income-bg: #143429;--color-expense: #F07379;--color-expense-bg: #3A2023;--color-danger: #F07379;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .18);--shadow-md: 0 8px 24px rgba(0, 0, 0, .24);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .32);--shadow-float: 0 18px 45px rgba(0, 0, 0, .34)}body{background:radial-gradient(circle at 16% -12%,rgba(39,199,175,.18),transparent 32%),radial-gradient(circle at 88% 2%,rgba(85,167,186,.12),transparent 28%),linear-gradient(180deg,#101617,#11191a 46%,#151d1f)}.auth-panel,.card,.form-card,.filter-panel,.transaction-card,.category-card,.limit-card,.project-card,.confirm-modal,.pwa-prompt,.bottom-nav,.dashboard-metric{background:#1a2325e6;border-color:#364346db}.dashboard-balance{background:linear-gradient(145deg,var(--color-primary-soft),var(--color-surface));border-color:#27c7af3d}.search-field,.transaction-summary,.transaction-group-list,.toast,.bottom-sheet,.sheet-footer{background:#1a2325f5;border-color:#364346db}.topbar{background:#101617b8;border-bottom-color:#364346b8}.brand-logo-light{display:none}.brand-logo-dark{display:block}.input,.select,.textarea,.icon-button,.icon-link,.icon-picker button{color:var(--color-text);background:var(--color-bg-secondary)}}@media(max-width:760px){.page-head{flex-direction:column}.split{flex-direction:column;align-items:start}.filter-trigger span:not(.filter-count){display:none}.filter-trigger{width:48px;padding:0}.filter-trigger:has(.filter-count){width:auto;padding:0 9px}.bottom-sheet{width:100%}.dashboard-balance>strong{font-size:32px}}@media(max-width:420px){.transaction-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-summary-main{grid-column:1 / -1;border-bottom:1px solid var(--color-line)}.transaction-summary-main+div{border-left:0}}@media(min-width:760px){.toast-region{right:24px;bottom:106px;left:auto;justify-items:end}}@media(prefers-reduced-motion:reduce){.sheet-fade-enter-active,.sheet-fade-leave-active,.sheet-slide-enter-active,.sheet-slide-leave-active{transition:none}.skeleton:after{animation:none}}
