body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}:focus-visible{outline:2px solid #007aff;outline-offset:2px}::selection{background:#007aff33;color:inherit}.App{background:#f5f5f7;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;min-height:100vh}.App-header{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:#fffc;border-bottom:1px solid #0000001a;box-shadow:0 1px 0 #0000000d;padding:16px 0;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-content{justify-content:space-between;margin:0 auto;max-width:100%;padding:0 24px}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:16px}.menu-toggle{background:#0000;border:none;border-radius:8px;color:#1d1d1f;cursor:pointer;display:none;font-size:24px;padding:8px;transition:background .3s}.menu-toggle:hover{background:#0000000d}.App-header h1{color:#1d1d1f;font-size:24px;font-weight:600;letter-spacing:-.5px;margin:0}.header-right{align-items:center;display:flex;gap:16px}.username{color:#86868b;font-size:15px;font-weight:400}.logout-btn{background:#0000;border:1px solid #d2d2d7;border-radius:20px;color:#1d1d1f;cursor:pointer;font-size:14px;font-weight:400;padding:8px 16px;transition:all .3s ease}.logout-btn:hover{background:#f5f5f7;border-color:#86868b}.App-container{flex:1 1;overflow:hidden}.App-container,.App-sidebar{display:flex;position:relative}.App-sidebar{background:#fff;border-right:1px solid #0000001a;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:100}.sidebar-content{gap:32px;height:100%;overflow-y:auto;padding:24px}.sidebar-content,.sidebar-nav{display:flex;flex-direction:column}.sidebar-nav{gap:8px}.sidebar-nav button{align-items:center;background:#0000;border:none;border-radius:12px;color:#86868b;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:12px;padding:14px 16px;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.sidebar-nav button:hover{background:#f5f5f7;color:#1d1d1f}.sidebar-nav button.active{background:#1d1d1f;box-shadow:0 2px 8px #0000001a;color:#fff}.nav-icon{font-size:20px;text-align:center;width:24px}.nav-text{flex:1 1}.sidebar-stats{border-top:1px solid #f5f5f7;display:flex;flex-direction:column;gap:16px;margin-top:auto;padding-top:24px}.quick-stat{background:linear-gradient(135deg,#f5f5f7,#fff);border:1px solid #0000000d;border-radius:12px;padding:16px}.quick-stat-label{color:#86868b;font-size:13px;font-weight:500;margin-bottom:8px}.quick-stat-value{font-size:24px;font-weight:700;letter-spacing:-.5px}.quick-stat-value.income{color:#ff3b30}.quick-stat-value.expense{color:#34c759}.quick-stat-value.balance{color:#007aff}.show-asset-panel-btn{align-items:center;background:linear-gradient(135deg,#ff9500,#fc0);border:none;border-radius:12px;box-shadow:0 4px 12px #ff950033;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;margin-top:12px;padding:14px 20px;transition:all .3s;width:100%}.show-asset-panel-btn:hover{box-shadow:0 6px 16px #ff95004d;transform:translateY(-2px)}.show-asset-panel-btn:active{box-shadow:0 2px 8px #ff950033;transform:translateY(0)}.show-asset-panel-btn .nav-icon{font-size:20px}.show-asset-panel-btn .nav-text{flex:1 1;text-align:left}.sidebar-overlay{display:none}.asset-panel{background:#fff;border-radius:16px;bottom:24px;box-shadow:0 8px 32px #00000026;overflow:hidden;position:fixed;right:24px;touch-action:none;transition:transform .3s,box-shadow .3s,width .3s,height .3s;width:280px;z-index:999}.asset-panel,.asset-panel *{writing-mode:horizontal-tb}.asset-panel:hover:not(.dragging){box-shadow:0 12px 40px #0003;transform:translateY(-4px)}.asset-panel.dragging{box-shadow:0 12px 40px #0000004d;cursor:move;transition:none;z-index:10001}.asset-panel.collapsed{width:200px}.asset-panel.collapsed .asset-panel-header{padding:12px 16px}.asset-panel-header{align-items:center;background:linear-gradient(135deg,#ff9500,#fc0);color:#fff;display:flex;font-size:16px;font-weight:600;justify-content:space-between;padding:16px 20px;position:relative;transition:padding .3s;-webkit-user-select:none;user-select:none}.asset-panel-header:before{content:"⋮⋮";font-size:12px;left:8px;letter-spacing:-2px;line-height:1;opacity:.6;position:absolute;top:50%;transform:translateY(-50%)}.asset-header-left{align-items:center;display:flex;flex:1 1;gap:10px;margin-left:16px}.asset-header-right{align-items:center;display:flex;gap:8px}.asset-icon{font-size:20px}.asset-title{flex:1 1}.asset-toggle-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:24px;justify-content:center;position:relative;transition:background .2s;width:24px;z-index:1}.asset-toggle-btn:hover{background:#ffffff4d}.asset-toggle-btn:active{background:#fff6}.asset-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:28px;justify-content:center;pointer-events:auto;position:relative;transition:all .2s;width:28px;z-index:10}.asset-close-btn:hover{background:#ffffff59;transform:scale(1.1)}.asset-close-btn:active{background:#ffffff80;transform:scale(.95)}.asset-panel-content{animation:slideDown .3s ease-out}.asset-panel-collapsed{animation:fadeIn .3s ease-out;padding:8px 20px 12px;text-align:center}.asset-collapsed-value{color:#ff9500;font-size:18px;font-weight:700;letter-spacing:-.5px}@media (max-width:768px){.asset-panel.collapsed .asset-panel-header{padding:10px 14px}.asset-panel.collapsed .asset-panel-collapsed{padding:6px 14px 10px}.asset-panel.collapsed .asset-collapsed-value{font-size:16px}}.asset-panel-content{display:flex;flex-direction:column;gap:12px;padding:16px 20px}.asset-item{border-radius:10px;padding:12px;transition:background .2s}.asset-item.liquid{background:linear-gradient(135deg,#e3f2fd,#fff);border-left:4px solid #2196f3}.asset-item.non-liquid{background:linear-gradient(135deg,#fff9e6,#fff);border-left:4px solid #ff9500}.asset-item.income{background:linear-gradient(135deg,#e8f5e9,#fff);border-left:4px solid #4caf50}.asset-item.expense{background:linear-gradient(135deg,#ffebee,#fff);border-left:4px solid #f44336}.asset-item.balance{background:linear-gradient(135deg,#e3f2fd,#fff);border-left:4px solid #2196f3}.asset-item.initial{background:linear-gradient(135deg,#f5f5f7,#fff);border-left:4px solid #86868b}.asset-item.total{background:linear-gradient(135deg,#f3e5f5,#fff);border-left:4px solid #9c27b0;border-top:1px solid #e0e0e0;margin-top:4px;padding-top:16px}.asset-divider{background:linear-gradient(90deg,#0000,#e0e0e0,#0000);height:1px;margin:8px 0}.asset-item-label{color:#666;font-size:12px;font-weight:500;margin-bottom:6px}.asset-item-value{color:#1d1d1f;font-size:20px;font-weight:700;letter-spacing:-.5px}.asset-item.income .asset-item-value{color:#388e3c}.asset-item.expense .asset-item-value{color:#d32f2f}.asset-item.balance .asset-item-value{color:#1976d2}.asset-item.initial .asset-item-value{color:#424242}.asset-item.liquid .asset-item-value{color:#1976d2}.asset-item.non-liquid .asset-item-value{color:#f57c00}.asset-item.total .asset-item-value{color:#7b1fa2;font-size:22px}.App-main{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.App-nav-mobile{-webkit-overflow-scrolling:touch;background:#fff;border-bottom:1px solid #0000001a;display:none;overflow-x:auto;padding:12px 16px;scrollbar-width:none}.App-nav-mobile::-webkit-scrollbar{display:none}.App-nav-mobile{display:flex;gap:8px;justify-content:flex-start}.App-nav-mobile button{align-items:center;background:#f5f5f7;border:none;border-radius:20px;color:#86868b;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;font-weight:500;gap:6px;padding:10px 16px;transition:all .3s ease;white-space:nowrap}.App-nav-mobile button:hover{background:#e5e5e7}.App-nav-mobile button.active{background:#1d1d1f;color:#fff}.content-wrapper{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:24px;scroll-behavior:smooth}.content-wrapper::-webkit-scrollbar{width:8px}.content-wrapper::-webkit-scrollbar-track{background:#0000}.content-wrapper::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.content-wrapper::-webkit-scrollbar-thumb:hover{background:#0000004d}.content-section{margin:0 auto;max-width:1200px}.page-fade-in{animation:pageFadeIn .3s ease-out}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{border:1px solid #0000000a;border-radius:20px;box-shadow:0 2px 12px #0000000f,0 1px 3px #0000000a;margin-bottom:24px;overflow:hidden;padding:32px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:before{background:linear-gradient(135deg,#ffffff1a,#0000);bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease}.card:hover:before{opacity:1}.card:hover{border-color:#00000014;box-shadow:0 8px 30px #0000001a,0 4px 8px #0000000f;transform:translateY(-3px)}.card h2{color:#1d1d1f;font-size:28px;font-weight:600;letter-spacing:-.5px;margin-bottom:24px}.transaction-form{display:flex;flex-direction:column;gap:24px}.form-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.form-group{margin-bottom:0}.form-group label{font-size:15px;font-weight:500}.form-group input,.form-group select,.form-group textarea{background:#f5f5f7;border:1px solid #d2d2d7;border-radius:12px;color:#1d1d1f;font-size:17px;padding:14px 18px;transition:all .3s ease}.form-group input[type=date]{background:#f5f5f7 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") no-repeat right 16px center;background-size:20px;cursor:pointer;display:block;line-height:normal;padding-right:48px;position:relative}.form-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;height:100%;margin:0;opacity:0;padding:0;position:absolute;right:0;width:100%}.form-group input[type=date]::-webkit-date-and-time-value{margin:0;padding:0;text-align:left}.form-group input[type=date]::-webkit-datetime-edit{margin:0;padding:0}.form-group input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}.form-group input[type=date]:focus{background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23007aff' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E")}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff}.form-group input.error,.form-group select.error,.form-group textarea.error{background:#fff5f5;border-color:#ff3b30}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{border-color:#ff3b30;box-shadow:0 0 0 4px #ff3b301a}.error-message{animation:errorShake .3s ease-in-out;color:#ff3b30;display:block;font-size:13px;font-weight:500;margin-top:6px}@keyframes errorShake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.form-group textarea{font-family:inherit;min-height:100px}.filter-section{margin-bottom:24px}.filter-grid,.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-cards{margin-bottom:24px}.summary-card{border-radius:16px;transition:all .3s ease}.summary-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.summary-value{font-weight:600}.summary-value.income{color:#ff3b30}.summary-value.expense{color:#34c759}.summary-value.balance{color:#007aff}.summary-value.saving{color:#ff9500}.btn{border-radius:20px;font-family:inherit;font-size:15px;font-weight:500;padding:12px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary{box-shadow:0 2px 8px #007aff4d}.btn-primary:hover{box-shadow:0 4px 16px #007aff66;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;transform:none}.btn-primary:disabled:hover{box-shadow:0 2px 8px #007aff4d;transform:none}.btn-danger{background:#ff3b30;box-shadow:0 2px 8px #ff3b304d;color:#fff}.btn-danger:hover{background:#d70015;box-shadow:0 4px 16px #ff3b3066;transform:translateY(-2px)}.btn-danger:active{transform:translateY(0)}.btn-danger:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-danger:disabled:hover{background:#ff3b30;transform:none}.btn-secondary{background:#86868b;color:#fff}.btn-secondary:hover{background:#6e6e73}.table{border-collapse:initial;border-spacing:0;margin-top:24px}.table td,.table th{border-bottom:1px solid #f5f5f7;padding:16px;text-align:left}.table td:nth-child(5){word-wrap:break-word;max-width:250px;min-width:150px;white-space:normal;word-break:break-word}.table th{background:#f5f5f7;color:#1d1d1f}.table tr:last-child td{border-bottom:none}.table tr:hover{background:#f5f5f7}.table tbody tr{transition:background .2s ease}.badge{border-radius:12px;display:inline-block;font-size:13px;font-weight:500;padding:6px 12px}.badge-income{background:#d1f2eb;color:#064}.badge-expense{background:#ffe5e5;color:#d70015}.badge-saving{background:#fff9e6;color:#c70}.amount{font-size:17px;font-weight:600}.amount-income{color:#ff3b30}.amount-expense{color:#34c759}.amount-saving{color:#ff9500}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:32px}.chart-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;margin-bottom:24px;transition:transform .3s,box-shadow .3s}.chart-card:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-2px)}.chart-card h2{color:#2c3e50;font-size:1.5em}.chart-tabs{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-top:20px}.recharts-wrapper{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif}.recharts-text{font-size:13px}.recharts-legend-wrapper{padding-top:16px!important}.recharts-legend-item-text{color:#666!important;font-size:13px!important}.recharts-cartesian-axis-tick-value{fill:#86868b;font-size:12px}.recharts-legend-wrapper{padding-top:20px!important}.recharts-legend-item-text{color:#1d1d1f!important;font-size:14px!important}.recharts-tooltip-wrapper{outline:none}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 8px 24px #667eea4d;color:#fff;padding:32px;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:hover{box-shadow:0 12px 32px #667eea66;transform:translateY(-4px)}.stat-card h3{font-size:15px;font-weight:500;letter-spacing:.5px;margin-bottom:12px;opacity:.9;text-transform:uppercase}.stat-card .value{font-size:36px;font-weight:700;letter-spacing:-1px}.stat-card.balance{background:linear-gradient(135deg,#11998e,#38ef7d);box-shadow:0 8px 24px #11998e4d}.stat-card.expense{background:linear-gradient(135deg,#eb3349,#f45c43);box-shadow:0 8px 24px #eb33494d}.stat-card.saving{background:linear-gradient(135deg,#ff9500,#fc0);box-shadow:0 8px 24px #ff95004d}.empty-state{color:#86868b}.empty-state p{font-size:17px;margin-top:16px}@media (max-width:1024px){.App-sidebar{bottom:0;box-shadow:2px 0 20px #0000001a;height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);z-index:1001}.App-sidebar.open{transform:translateX(0)}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:1000}.menu-toggle{display:block}.App-main{width:100%}}@media (max-width:768px){.header-content{padding:0 16px}.App-header h1{font-size:20px}.App-header{padding:12px 0}.username{display:none}.logout-btn{font-size:13px;padding:6px 14px}.content-wrapper{padding:16px}.card{border-radius:16px;margin-bottom:16px;padding:20px}.card h2{font-size:22px;margin-bottom:20px}.stats-grid{gap:16px;grid-template-columns:1fr}.stat-card{padding:20px}.stat-card h3{font-size:14px}.stat-card .value{font-size:28px}.chart-card{border-radius:12px;margin-bottom:16px;padding:16px}.chart-card h2{font-size:1.2em;margin-bottom:16px}.chart-tabs{gap:16px;grid-template-columns:1fr}.recharts-text{font-size:11px!important}.recharts-legend-wrapper{padding-top:10px!important}.recharts-legend-item{margin-right:8px!important}.recharts-legend-item-text{font-size:11px!important}.recharts-pie-label-text{display:none!important}.recharts-tooltip-wrapper{z-index:100!important}.recharts-default-tooltip{font-size:12px!important;padding:8px!important}.table{-webkit-overflow-scrolling:touch;display:block;font-size:13px;overflow-x:auto}.table td,.table th{min-width:70px;padding:10px 8px;white-space:nowrap}.table td:nth-child(5){word-wrap:break-word;max-width:150px;min-width:100px;white-space:normal;word-break:break-word}.table td:first-child,.table th:first-child{background:#fff;box-shadow:2px 0 4px #0000000d;left:0;position:-webkit-sticky;position:sticky;z-index:1}.table th{font-size:11px}.table th,.table th:first-child{background:#f5f5f7}.badge{font-size:11px;padding:4px 8px}.amount{font-size:14px}.form-group label{font-size:14px;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border-radius:10px;font-size:16px;padding:12px 16px}.form-group input[type=date]{background-position:right 12px center;background-size:18px;padding:12px 40px 12px 14px}.form-group textarea{min-height:80px}.form-grid{gap:16px;grid-template-columns:1fr}.form-actions{justify-content:stretch;margin-top:16px}.form-actions .btn{font-size:16px;padding:14px 24px;width:100%}.filter-grid{gap:12px;grid-template-columns:1fr}.filter-section,.summary-cards{margin-bottom:16px}.summary-cards{gap:10px;grid-template-columns:repeat(2,1fr)}.summary-card{padding:14px}.summary-label{font-size:11px;margin-bottom:6px}.summary-value{font-size:18px}.btn{font-size:14px;min-height:44px;padding:12px 20px}.badge{font-size:12px;padding:4px 10px}.empty-state{padding:60px 20px}.empty-state p{font-size:15px}.asset-panel{bottom:16px;box-shadow:0 4px 20px #0003;left:16px;margin:0 auto;max-width:320px;right:16px;width:calc(100% - 32px)}.asset-panel.collapsed{left:auto;margin:0;max-width:180px;right:16px;width:auto}.asset-panel-header{font-size:15px;min-height:48px;padding:14px 18px}.asset-panel-content{padding:14px 18px}.asset-item{padding:10px}.asset-item-label{font-size:11px}.asset-item-value{font-size:18px}.asset-item.total .asset-item-value{font-size:20px}.asset-toggle-btn{font-size:14px;height:32px;width:32px}.asset-panel-collapsed{padding:10px 18px}.asset-collapsed-value{font-size:18px}}@media (max-width:480px){.header-content{padding:0 12px}.App-header{padding:10px 0}.App-header h1{font-size:18px}.logout-btn{font-size:12px;padding:5px 12px}.content-wrapper{padding:12px}.card{border-radius:12px;margin-bottom:12px;padding:16px}.card h2{font-size:20px;margin-bottom:16px}.sidebar-content{padding:16px}.sidebar-nav{gap:6px}.sidebar-nav button{font-size:14px;padding:12px 14px}.nav-icon{font-size:18px;width:22px}.sidebar-stats{gap:12px}.quick-stat{padding:12px}.quick-stat-label{font-size:11px}.quick-stat-value{font-size:20px}.show-asset-panel-btn{font-size:14px;margin-top:8px;padding:12px 16px}.stat-card{padding:16px}.stat-card h3{font-size:13px;margin-bottom:8px}.stat-card .value{font-size:24px}.asset-panel{bottom:12px;box-shadow:0 4px 16px #0003;left:12px;right:12px;width:calc(100% - 24px)}.asset-panel.collapsed{left:auto;margin:0;max-width:160px;right:12px;width:auto}.asset-panel-header{font-size:14px;min-height:44px;padding:12px 16px}.asset-panel-content{padding:12px 16px}.asset-item-value{font-size:16px}.asset-item.total .asset-item-value{font-size:18px}.asset-toggle-btn{font-size:14px;height:32px;width:32px}.asset-close-btn{font-size:18px;height:32px;width:32px}.asset-collapsed-value{font-size:16px}.table td,.table th{font-size:12px;min-width:65px;padding:8px 6px}.table td:nth-child(5){word-wrap:break-word;max-width:130px;min-width:90px;white-space:normal;word-break:break-word}.table th{font-size:10px}.table .btn{font-size:11px;min-height:30px;padding:5px 10px;white-space:nowrap}.form-group{margin-bottom:0}.form-group label{font-size:12px;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border-radius:8px;font-size:14px;padding:10px 12px}.form-group input[type=date]{background-size:16px;font-size:14px;padding:10px 36px 10px 12px}.form-grid{gap:12px}.form-actions .btn{font-size:14px;padding:12px 18px}.summary-card{border-radius:12px;padding:14px}.summary-label{font-size:11px;margin-bottom:6px}.summary-value{font-size:18px}.btn{border-radius:10px;font-size:14px;padding:10px 18px}.App-nav-mobile{gap:6px;padding:8px 10px}.App-nav-mobile button{font-size:12px;gap:4px;min-width:auto;padding:8px 10px}.App-nav-mobile button .nav-icon{font-size:16px}.App-nav-mobile button span:not(.nav-icon){font-size:11px}.empty-state{padding:40px 16px}.empty-state p{font-size:14px}}@media (min-width:769px) and (max-width:1024px){.App-sidebar{width:240px}.sidebar-content{padding:20px}}@media (min-width:1400px){.content-section{max-width:1400px}}@media (hover:none) and (pointer:coarse){.card:hover{box-shadow:0 4px 20px #00000014}.btn:hover,.card:hover{transform:none}.sidebar-nav button:hover{background:#0000;color:#86868b}.sidebar-nav button.active:hover{background:#1d1d1f;color:#fff}.table tr:hover{background:#fff}.summary-card:hover{box-shadow:0 4px 12px #0000001a;transform:none}.btn,button{min-width:44px}.btn,.form-group input,.form-group select,.form-group textarea,button{min-height:44px}.content-wrapper,.sidebar-content{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}}@media (max-width:896px) and (orientation:landscape){.App-header{padding:8px 0}.header-content{padding:0 16px}.App-header h1{font-size:18px}.content-wrapper{padding:12px 16px}.card{margin-bottom:12px;padding:16px}.card h2{font-size:20px;margin-bottom:16px}.stats-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px}.stat-card h3{font-size:13px}.stat-card .value{font-size:24px}.summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:360px){.App-header h1{font-size:15px}.header-right{gap:6px}.logout-btn{font-size:11px;padding:4px 8px}.content-wrapper{padding:8px}.card{border-radius:10px;padding:12px}.card h2{font-size:16px;margin-bottom:12px}.btn{font-size:13px;padding:9px 14px}.form-group input,.form-group select,.form-group textarea{font-size:14px;padding:9px 10px}.form-group input[type=date]{background-size:14px;font-size:13px;min-width:0;padding:9px 32px 9px 10px}.sidebar-content{padding:12px}.sidebar-nav button{font-size:12px;gap:10px;padding:10px}.App-nav-mobile{gap:5px;padding:6px 8px}.App-nav-mobile button{font-size:11px;gap:3px;padding:6px 8px}.App-nav-mobile button .nav-icon{font-size:14px}.App-nav-mobile button span:not(.nav-icon){font-size:10px}}@supports (padding-top:env(safe-area-inset-top)){.App-header{padding-top:max(16px,env(safe-area-inset-top))}.content-wrapper,.sidebar-content{padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media (prefers-contrast:high){.card{border:2px solid #1d1d1f}.btn-primary{border:2px solid #007aff}.sidebar-nav button.active{border:2px solid #1d1d1f}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.App-header,.App-nav-mobile,.App-sidebar,.btn,.form-actions,.sidebar-overlay{display:none}.App-container{display:block}.App-main{width:100%}.content-wrapper{padding:0}.card{border:1px solid #ddd;box-shadow:none;page-break-inside:avoid}}:root[data-theme=horseyear]{--primary-color:#d32f2f;--primary-light:#f44336;--primary-dark:#b71c1c;--gold:gold;--gold-light:#ffed4e;--gold-dark:#ffc107;--bg-primary:#fff8f0;--bg-secondary:#fff3e0;--bg-card:#fff;--text-primary:#1f1f1f;--text-secondary:#5d4037;--text-muted:#8d6e63;--gradient-primary:linear-gradient(135deg,#d32f2f,#f44336);--gradient-gold:linear-gradient(135deg,gold,#ffc107);--gradient-bg:linear-gradient(135deg,#fff8f0,#ffe4cc)}[data-theme=horseyear] .App{animation:bgColorShift 10s ease-in-out infinite;background:var(--gradient-bg);position:relative}@keyframes bgColorShift{0%,to{background:linear-gradient(135deg,#fff8f0,#ffe4cc)}50%{background:linear-gradient(135deg,#ffe4cc,#ffd4b2)}}[data-theme=horseyear] .App:before{animation:bgPulse 8s ease-in-out infinite;background-image:radial-gradient(circle at 10% 20%,#d32f2f14 0,#0000 30%),radial-gradient(circle at 90% 80%,#ffd70014 0,#0000 30%),radial-gradient(circle at 50% 50%,#ff57220d 0,#0000 40%),radial-gradient(circle at 30% 70%,#ffd7000f 0,#0000 25%),radial-gradient(circle at 70% 30%,#d32f2f0f 0,#0000 25%);bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}@keyframes bgPulse{0%,to{opacity:1}50%{opacity:.7}}[data-theme=horseyear] .App>*{position:relative;z-index:1}[data-theme=horseyear] .App-header{background:var(--gradient-primary);border-bottom:3px solid var(--gold);box-shadow:0 4px 20px #d32f2f4d,0 0 40px #ffd70033}[data-theme=horseyear] .App-header h1{color:#fff;position:relative;text-shadow:0 2px 8px #0000004d,0 0 20px #ffd70080}[data-theme=horseyear] .App-header h1:before{animation:bounce 2s ease-in-out infinite,horseGlow 3s ease-in-out infinite;content:"🐴";filter:drop-shadow(0 0 15px rgba(255,215,0,.8));font-size:1.2em;margin-right:12px}@keyframes horseGlow{0%,to{filter:drop-shadow(0 0 10px rgba(255,215,0,.6));transform:translateY(0)}50%{filter:drop-shadow(0 0 25px rgba(255,215,0,1));transform:translateY(-5px)}}[data-theme=horseyear] .App-header h1:after{animation:pulse 2s ease-in-out infinite;background:var(--gold);border-radius:20px;box-shadow:0 2px 8px #ffd70080;color:var(--primary-dark);content:"新年快乐";font-size:12px;font-weight:700;padding:4px 10px;position:absolute;right:-80px;top:-8px}[data-theme=horseyear] .card{background:var(--bg-card);border:2px solid var(--gold-dark);box-shadow:0 4px 20px #d32f2f26,0 0 0 1px #ffd7004d;overflow:visible;position:relative}[data-theme=horseyear] .card:before{background:var(--gradient-gold);border-radius:20px;bottom:-2px;content:"";left:-2px;opacity:0;pointer-events:none;position:absolute;right:-2px;top:-2px;transition:opacity .3s ease;z-index:-1}[data-theme=horseyear] .card:hover:before{opacity:.15}[data-theme=horseyear] .card:hover{box-shadow:0 8px 30px #d32f2f40,0 0 40px #ffd70066;transform:translateY(-5px)}[data-theme=horseyear] .dashboard-stat-card{background:linear-gradient(135deg,#fff,#fff8f0);border:2px solid var(--gold-dark);box-shadow:0 4px 15px #d32f2f33}[data-theme=horseyear] .dashboard-stat-card.income-card{background:linear-gradient(135deg,#ffebee,#fff);border-left:4px solid var(--primary-color);border-top:2px solid var(--gold-dark)}[data-theme=horseyear] .dashboard-stat-card.expense-card{background:linear-gradient(135deg,#fff3e0,#fff);border-left:4px solid #ff6f00;border-top:2px solid var(--gold-dark)}[data-theme=horseyear] .dashboard-stat-card.balance-card{background:linear-gradient(135deg,#fff8e1,#fff);border-left:4px solid var(--gold);border-top:2px solid var(--gold-dark)}[data-theme=horseyear] .dashboard-stat-card.saving-card{background:linear-gradient(135deg,#fce4ec,#fff);border-left:4px solid #c2185b;border-top:2px solid var(--gold-dark)}[data-theme=horseyear] .dashboard-stat-card.transaction-card{background:linear-gradient(135deg,#f3e5f5,#fff);border-left:4px solid #7b1fa2;border-top:2px solid var(--gold-dark)}[data-theme=horseyear] .chart-card:before{background:var(--gradient-gold);content:"";height:4px;left:0;opacity:1;position:absolute;right:0;top:0}[data-theme=horseyear] .chart-card h2{color:var(--primary-color);text-shadow:0 1px 2px #d32f2f1a}[data-theme=horseyear] .btn-primary{background:var(--gradient-primary);border:2px solid var(--gold);box-shadow:0 4px 15px #d32f2f4d,0 0 20px #ffd70033;color:#fff;overflow:hidden;position:relative}[data-theme=horseyear] .btn-primary:before{background:#ffd7004d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}[data-theme=horseyear] .btn-primary:hover:before{height:300px;width:300px}[data-theme=horseyear] .btn-primary:hover{box-shadow:0 6px 20px #d32f2f66,0 0 30px #ffd7004d;transform:translateY(-2px)}[data-theme=horseyear] .time-range-selector button{background:#fff;border:2px solid var(--gold-dark);color:var(--text-primary)}[data-theme=horseyear] .time-range-selector button:hover{background:var(--bg-secondary);border-color:var(--primary-color);box-shadow:0 2px 8px #d32f2f33;color:var(--primary-color)}[data-theme=horseyear] .time-range-selector button.active{background:var(--gradient-primary);border-color:var(--gold);box-shadow:0 4px 12px #d32f2f4d;color:#fff}[data-theme=horseyear] .App-sidebar{background:linear-gradient(180deg,#fff,#fff8f0);border-right:3px solid var(--gold-dark);box-shadow:4px 0 20px #d32f2f1a}[data-theme=horseyear] .sidebar-nav button{color:var(--text-primary);transition:all .3s ease}[data-theme=horseyear] .sidebar-nav button:hover{background:var(--bg-secondary);color:var(--primary-color);transform:translateX(5px)}[data-theme=horseyear] .sidebar-nav button.active{background:var(--gradient-primary);box-shadow:0 2px 10px #d32f2f4d;color:#fff}[data-theme=horseyear] .sidebar-nav button.active:before{content:"🎊";margin-right:8px}[data-theme=horseyear] .sidebar-stats{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:2px solid var(--gold-dark);border-radius:16px}[data-theme=horseyear] .quick-stat-value.income{color:var(--primary-color);text-shadow:0 1px 2px #d32f2f33}[data-theme=horseyear] .quick-stat-value.expense{color:#ff6f00;text-shadow:0 1px 2px #ff6f0033}[data-theme=horseyear] .quick-stat-value.balance{color:var(--gold-dark);text-shadow:0 1px 2px #ffc10733}[data-theme=horseyear] .asset-panel{background:linear-gradient(135deg,#fff,#fff8f0);border:3px solid var(--gold);box-shadow:0 8px 30px #d32f2f40,0 0 40px #ffd7004d}[data-theme=horseyear] .asset-panel,[data-theme=horseyear] .asset-panel *{writing-mode:horizontal-tb!important}[data-theme=horseyear] .asset-panel-header{background:var(--gradient-primary);border-bottom:2px solid var(--gold);color:#fff}[data-theme=horseyear] .asset-close-btn,[data-theme=horseyear] .asset-toggle-btn{background:var(--gold);border:2px solid #fff;color:var(--primary-dark);font-weight:700}[data-theme=horseyear] .show-asset-panel-btn{background:var(--gradient-primary);border:3px solid var(--gold);box-shadow:0 4px 12px #d32f2f33}[data-theme=horseyear] .show-asset-panel-btn:hover{box-shadow:0 6px 16px #d32f2f4d}[data-theme=horseyear] .recent-transaction-item{background:linear-gradient(135deg,#fff8f0,#fff);border:2px solid var(--gold-light);border-left:4px solid var(--primary-color)}[data-theme=horseyear] .recent-transaction-item:hover{background:var(--bg-secondary);box-shadow:0 4px 15px #d32f2f26;transform:translateX(8px)}[data-theme=horseyear] .transaction-icon{background:var(--gradient-gold);border:2px solid var(--primary-color);box-shadow:0 2px 8px #ffd7004d}[data-theme=horseyear] .form-group input,[data-theme=horseyear] .form-group select,[data-theme=horseyear] .form-group textarea{background:#fff;border:2px solid var(--gold-dark)}[data-theme=horseyear] .form-group input:focus,[data-theme=horseyear] .form-group select:focus,[data-theme=horseyear] .form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 4px #d32f2f1a,0 0 20px #ffd70033}[data-theme=horseyear] .App-nav-mobile{background:linear-gradient(90deg,#fff,#fff8f0);border-top:3px solid var(--gold);box-shadow:0 -4px 20px #d32f2f1a}[data-theme=horseyear] .App-nav-mobile button{color:var(--text-primary)}[data-theme=horseyear] .App-nav-mobile button.active{background:var(--bg-secondary);border-top:3px solid var(--primary-color);color:var(--primary-color)}[data-theme=horseyear] .App-nav-mobile button.active .nav-icon{animation:bounce 1s ease-in-out infinite}[data-theme=horseyear] .card h2:before{animation:glow 2s ease-in-out infinite;color:var(--primary-color);content:"🏮 "}@keyframes lanternSwing{0%,to{transform:rotate(-5deg) translateY(0)}25%{transform:rotate(5deg) translateY(-3px)}50%{transform:rotate(-5deg) translateY(0)}75%{transform:rotate(5deg) translateY(3px)}}@keyframes glow{0%,to{filter:drop-shadow(0 0 5px rgba(255,215,0,.8));transform:scale(1)}50%{filter:drop-shadow(0 0 15px rgba(255,215,0,1));transform:scale(1.1)}}[data-theme=horseyear] .dashboard:before{animation:lanternSwing 3s ease-in-out infinite;right:20px}[data-theme=horseyear] .dashboard:after,[data-theme=horseyear] .dashboard:before{content:"🏮";filter:drop-shadow(0 0 10px rgba(255,215,0,.6));font-size:60px;opacity:.8;pointer-events:none;position:fixed;top:80px;z-index:1000}[data-theme=horseyear] .dashboard:after{animation:lanternSwing 3s ease-in-out 1.5s infinite;left:20px}[data-theme=horseyear] .App-main:before{animation:lanternSwing 2.5s ease-in-out .5s infinite;pointer-events:none;position:fixed;right:80px}[data-theme=horseyear] .App-main:after,[data-theme=horseyear] .App-main:before{content:"🏮";filter:drop-shadow(0 0 8px rgba(255,215,0,.5));font-size:45px;opacity:.7;top:200px;z-index:999}[data-theme=horseyear] .App-main:after{animation:lanternSwing 2.5s ease-in-out 1s infinite;left:80px}[data-theme=horseyear] .App-header:after{animation:sparkle 2s ease-in-out infinite;content:"✨";filter:drop-shadow(0 0 10px rgba(255,215,0,.8));font-size:28px;position:absolute;right:100px;top:50%;transform:translateY(-50%)}@keyframes sparkle{0%,to{filter:drop-shadow(0 0 5px rgba(255,215,0,.5));opacity:.3;transform:translateY(-50%) scale(.8) rotate(0deg)}50%{filter:drop-shadow(0 0 20px rgba(255,215,0,1));opacity:1;transform:translateY(-50%) scale(1.3) rotate(180deg)}}[data-theme=horseyear] .card:after{animation:firework 4s ease-in-out infinite;content:"🎆";font-size:40px;opacity:0;pointer-events:none;position:absolute;right:-10px;top:-10px;z-index:10}@keyframes firework{0%{opacity:0;transform:scale(.3) translateY(0)}10%{opacity:1;transform:scale(1.2) translateY(-20px)}20%{opacity:0;transform:scale(1.5) translateY(-40px)}to{opacity:0;transform:scale(.3) translateY(0)}}[data-theme=horseyear] .dashboard-stat-card:after{animation:firecracker 3s ease-in-out infinite;bottom:-5px;content:"🧨";filter:drop-shadow(0 0 8px rgba(255,0,0,.6));font-size:30px;left:-5px;position:absolute}@keyframes firecracker{0%,90%,to{opacity:0;transform:scale(.8) rotate(-10deg)}92%,94%,96%,98%{opacity:1;transform:scale(1.2) rotate(10deg)}93%,95%,97%,99%{opacity:.5;transform:scale(1) rotate(-5deg)}}[data-theme=horseyear] .stat-value:after{animation:coinShine 3s ease-in-out infinite;content:"💰";font-size:24px;position:absolute;right:-35px;top:50%;transform:translateY(-50%)}@keyframes coinShine{0%,to{opacity:0;transform:translateY(-50%) scale(.5) rotate(0deg)}50%{filter:drop-shadow(0 0 15px rgba(255,215,0,1));opacity:1;transform:translateY(-50%) scale(1.2) rotate(1turn)}}[data-theme=horseyear] .card:nth-child(odd):before{display:none}[data-theme=horseyear] .content-wrapper:before{animation:bannerGlow 3s ease-in-out infinite;background:var(--gradient-gold);border-bottom:2px solid var(--primary-color);box-shadow:0 4px 15px #ffd70080,inset 0 1px 0 #ffffff80;color:var(--primary-dark);content:"🐴 马到成功 · 🧧 恭喜发财 · 🎊 万事如意 · 🏮 阖家欢乐 · 💰 财源广进 · ✨ 龙马精神 · 🎆 福星高照 · 🎁 吉祥如意 🐴";font-size:15px;font-weight:700;left:0;overflow:hidden;padding:10px 0;pointer-events:none;position:fixed!important;right:0;text-align:center;top:70px;white-space:nowrap;width:100%;z-index:1000}@keyframes bannerGlow{0%,to{box-shadow:0 4px 15px #ffd70080,inset 0 1px 0 #ffffff80}50%{box-shadow:0 6px 25px #ffd700cc,inset 0 1px 0 #fffc}}[data-theme=horseyear] body:before{animation:redEnvelopeDrop1 8s ease-in infinite;content:"🧧";font-size:30px;left:5%;opacity:.7;pointer-events:none;position:fixed;top:-50px;z-index:1}@keyframes redEnvelopeDrop1{0%{opacity:0;transform:translateY(-50px) rotate(0deg)}10%{opacity:.7}90%{opacity:.7}to{opacity:0;transform:translateY(100vh) rotate(1turn)}}[data-theme=horseyear] .App-sidebar:before{align-items:center;animation:fuRotate 4s ease-in-out infinite;background:var(--gold);border:4px solid var(--primary-color);border-radius:10px;box-shadow:0 4px 20px #d32f2f66,inset 0 2px 5px #ffffff80;color:var(--primary-color);content:"福";display:flex;font-size:50px;font-weight:900;height:70px;justify-content:center;position:absolute;right:20px;top:20px;width:70px;z-index:10}@keyframes fuRotate{0%,to{transform:rotate(0deg) scale(1)}25%{transform:rotate(-5deg) scale(1.05)}50%{transform:rotate(0deg) scale(1.1)}75%{transform:rotate(5deg) scale(1.05)}}[data-theme=horseyear] body:after{animation:particleFloat 30s linear infinite;background-image:radial-gradient(circle,#ffd7004d 1px,#0000 0),radial-gradient(circle,#ffc10733 1px,#0000 0),radial-gradient(circle,#ffd70066 2px,#0000 0);background-position:0 0,40px 40px,20px 20px;background-size:50px 50px,80px 80px,100px 100px;bottom:0;content:"";left:0;opacity:.6;pointer-events:none;position:fixed;right:0;top:0;z-index:1}@keyframes particleFloat{0%{background-position:0 0,40px 40px,20px 20px}to{background-position:50px 50px,90px 90px,70px 70px}}[data-theme=horseyear] .App-container:before{animation:coupletGlow 3s ease-in-out infinite;content:"福星高照";left:290px}[data-theme=horseyear] .App-container:after,[data-theme=horseyear] .App-container:before{background:var(--primary-color);border:4px solid var(--gold);border-radius:10px;box-shadow:0 4px 20px #d32f2f99,inset 0 2px 8px #ffd7004d;color:var(--gold);font-size:28px;font-weight:900;letter-spacing:8px;padding:20px 15px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;z-index:998}[data-theme=horseyear] .App-container:after{animation:coupletGlow 3s ease-in-out 1.5s infinite;content:"财源广进";position:fixed;right:10px}@keyframes coupletGlow{0%,to{box-shadow:0 4px 20px #d32f2f99,inset 0 2px 8px #ffd7004d;transform:translateY(-50%) scale(1)}50%{box-shadow:0 6px 30px #d32f2fe6,inset 0 2px 12px #ffd70099;transform:translateY(-50%) scale(1.02)}}[data-theme=horseyear] .dashboard-stat-card.saving-card:before{animation:yuanbaoFloat 3s ease-in-out infinite;background:linear-gradient(135deg,gold,orange);border-radius:50% 50% 0 0/60% 60% 0 0;box-shadow:0 2px 10px #ffd70099,inset 0 -2px 5px #8b45134d;content:"";height:30px;position:absolute;right:10px;top:10px;width:40px}@keyframes yuanbaoFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(5deg)}}[data-theme=horseyear] .btn-primary:active:after{animation:clickFirework .8s ease-out forwards;content:"🎆 🎇 ✨";font-size:30px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}@keyframes clickFirework{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(-50%,-150%) scale(2)}}[data-theme=horseyear] .card:hover:after{animation:firework 4s ease-in-out infinite,particleBurst 1s ease-out}@keyframes particleBurst{0%{box-shadow:0 0 0 0 #ffd700cc}to{box-shadow:0 0 30px 15px #ffd70000}}[data-theme=horseyear] .recent-transaction-item:hover .transaction-icon{animation:iconPulse .6s ease-in-out}@keyframes iconPulse{0%,to{transform:scale(1)}50%{box-shadow:0 0 20px #ffd700cc;transform:scale(1.15)}}[data-theme=horseyear] .stat-value{animation:numberJump 2s ease-in-out infinite;position:relative}@keyframes numberJump{0%,90%,to{transform:translateY(0)}95%{transform:translateY(-3px)}}@media (max-width:1024px) and (min-width:769px){[data-theme=horseyear] .App-container:before{font-size:24px;left:250px;padding:18px 12px}}@media (max-width:768px){[data-theme=horseyear] .App-header h1:before{animation:lanternSwing 2s ease-in-out infinite;content:"🏮";filter:drop-shadow(0 0 8px rgba(255,215,0,.6));font-size:30px;left:10px;position:absolute;top:50%;transform:translateY(-50%)}[data-theme=horseyear] .card:after{animation:starTwinkle 2s ease-in-out infinite;content:"⭐";font-size:18px;opacity:.7;position:absolute;right:8px;top:8px}@keyframes starTwinkle{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}}@media (max-width:768px){[data-theme=horseyear] .App-header h1:after{display:block;margin-top:4px;position:static}[data-theme=horseyear] .dashboard:after,[data-theme=horseyear] .dashboard:before{font-size:40px;top:70px}[data-theme=horseyear] .App-container:before{animation:coupletGlow 3s ease-in-out infinite;content:"福星高照";left:10px}[data-theme=horseyear] .App-container:after,[data-theme=horseyear] .App-container:before{font-size:14px;font-weight:700;letter-spacing:4px;padding:8px 12px;position:fixed;top:120px;transform:none;writing-mode:horizontal-tb;z-index:10}[data-theme=horseyear] .App-container:after{animation:coupletGlow 3s ease-in-out 1.5s infinite;content:"财源广进";right:10px}[data-theme=horseyear] .App-header:after{align-items:center;animation:fuRotate 4s ease-in-out infinite;background:var(--gold);border:3px solid var(--primary-color);border-radius:8px;box-shadow:0 4px 15px #d32f2f80,inset 0 2px 6px #ffd70066;color:var(--primary-color);content:"福";display:flex;font-size:40px;font-weight:900;height:55px;justify-content:center;position:fixed;right:10px;top:70px;width:55px;z-index:1001}[data-theme=horseyear] .App-main:after,[data-theme=horseyear] .App-main:before{font-size:35px}[data-theme=horseyear] .App-sidebar:before{font-size:35px;height:50px;width:50px}[data-theme=horseyear] .content-wrapper:before{font-size:13px;padding:8px 0;top:60px;z-index:1000!important}[data-theme=horseyear] body:before{font-size:20px;left:20%;opacity:.5}[data-theme=horseyear] .App-main:after{animation:horseJump 3s ease-in-out infinite;bottom:20px;content:"🐴";filter:drop-shadow(0 2px 8px rgba(255,215,0,.4));font-size:40px;opacity:.6;position:fixed;right:20px;z-index:10}@keyframes horseJump{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(5deg)}}}[data-theme=horseyear] .stat-value.income:before{animation:moneyRain 3s ease-in-out infinite;content:"💸";font-size:30px;left:-40px;position:absolute;top:50%;transform:translateY(-50%)}@keyframes moneyRain{0%,to{opacity:0;transform:translateY(-80%) scale(.5)}50%{filter:drop-shadow(0 0 15px rgba(255,215,0,1));opacity:1;transform:translateY(-50%) scale(1.2)}}[data-theme=horseyear] .time-range-selector:before{animation:chineseKnotSwing 4s ease-in-out infinite;content:"🎐";filter:drop-shadow(0 0 10px rgba(255,0,0,.5));font-size:40px;left:50%;position:absolute;top:-35px;transform:translateX(-50%)}@keyframes chineseKnotSwing{0%,to{transform:translateX(-50%) rotate(-10deg)}50%{transform:translateX(-50%) rotate(10deg)}}[data-theme=horseyear] .sidebar-nav:before{animation:dragonFly 20s linear infinite;content:"🐉";font-size:50px;left:0;opacity:.15;position:absolute;top:0;z-index:0}@keyframes dragonFly{0%{transform:translate(-100%,-100%) rotate(45deg)}to{transform:translate(500%,1000%) rotate(405deg)}}[data-theme=horseyear] .btn-primary:hover{animation:buttonFirecracker .5s ease-in-out}@keyframes buttonFirecracker{0%,to{box-shadow:0 4px 15px #d32f2f4d,0 0 20px #ffd70033}25%{box-shadow:0 6px 25px #d32f2f80,0 0 40px #ffd70099,0 0 60px #f006}50%{box-shadow:0 8px 35px #d32f2fb3,0 0 60px #ffd700cc,0 0 80px #f009}75%{box-shadow:0 6px 25px #d32f2f80,0 0 40px #ffd70099,0 0 60px #f006}}[data-theme=horseyear] .dashboard-stat-card:hover{animation:cardExplosion .6s ease-out}@keyframes cardExplosion{0%{box-shadow:0 4px 15px #d32f2f33}50%{box-shadow:0 8px 40px #ffd70099,0 0 60px #ffd70066,inset 0 0 20px #ffd70033}to{box-shadow:0 4px 15px #d32f2f33}}[data-theme=horseyear] .content-wrapper:after{animation:ribbonMove 5s linear infinite;background:repeating-linear-gradient(90deg,#d32f2f,gold 10px,#ff6f00 20px,#d32f2f 30px);box-shadow:0 2px 10px #0003;content:"";height:3px;left:0;position:fixed;right:0;top:100px;z-index:998}@keyframes ribbonMove{0%{background-position:0 0}to{background-position:30px 0}}[data-theme=horseyear] .chart-card:nth-child(2n):before{animation:yuanbaoRain 6s ease-in-out infinite;content:"💰";font-size:30px;pointer-events:none;position:absolute;right:20%;top:-40px;z-index:5}@keyframes yuanbaoRain{0%{opacity:0;transform:translateY(-40px) rotate(0deg)}20%{opacity:1;transform:translateY(0) rotate(90deg)}80%{opacity:1;transform:translateY(40px) rotate(180deg)}to{opacity:0;transform:translateY(80px) rotate(270deg)}}[data-theme=horseyear] .asset-panel:before{animation:giftBounce 2s ease-in-out infinite;content:"🎁";filter:drop-shadow(0 0 10px rgba(255,215,0,.6));font-size:35px;left:-15px;position:absolute;top:-15px}@keyframes giftBounce{0%,to{transform:translateY(0) rotate(-15deg) scale(1)}50%{transform:translateY(-10px) rotate(15deg) scale(1.1)}}[data-theme=horseyear] .App-header:before{animation:lanternChain 3s ease-in-out infinite;content:"🏮 🏮 🏮 🏮 🏮";filter:drop-shadow(0 0 15px rgba(255,215,0,.8));font-size:25px;left:50%;letter-spacing:20px;position:absolute;top:-20px;transform:translateX(-50%)}@keyframes lanternChain{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}[data-theme=horseyear] .card:nth-child(3n):after{animation:xiRotate 10s linear infinite;color:var(--primary-color);content:"囍";font-size:25px;font-weight:900;left:5px;opacity:.15;position:absolute;top:5px}@keyframes xiRotate{0%{opacity:.15;transform:rotate(0deg) scale(1)}50%{opacity:.25;transform:rotate(180deg) scale(1.2)}to{opacity:.15;transform:rotate(1turn) scale(1)}}[data-theme=horseyear] .stat-icon{position:relative}[data-theme=horseyear] .stat-icon:after{animation:starTwinkle 2s ease-in-out infinite;content:"⭐";font-size:20px;position:absolute;right:-10px;top:-10px}@keyframes starTwinkle{0%,to{opacity:0;transform:scale(.5) rotate(0deg)}50%{filter:drop-shadow(0 0 10px rgba(255,215,0,1));opacity:1;transform:scale(1.2) rotate(180deg)}}[data-theme=horseyear] .dashboard-charts:before{animation:chineseKnotDance 4s ease-in-out infinite;content:"🧧";filter:drop-shadow(0 0 15px rgba(255,215,0,.6));font-size:50px;left:10%;position:absolute;top:-30px;z-index:5}@keyframes chineseKnotDance{0%,to{transform:translateY(0) rotate(-15deg)}25%{transform:translateY(-15px) rotate(15deg)}50%{transform:translateY(-10px) rotate(0deg)}75%{transform:translateY(-5px) rotate(-10deg)}}[data-theme=horseyear] .card:active{animation:rippleEffect .6s ease-out}@keyframes rippleEffect{0%{box-shadow:0 0 0 0 #ffd700b3}to{box-shadow:0 0 0 30px #ffd70000}}[data-theme=horseyear] .theme-btn.horseyear.active{overflow:visible;position:relative}[data-theme=horseyear] .theme-btn.horseyear.active:before{animation:celebrationPop 2s ease-in-out infinite;content:"🎊";font-size:20px;left:50%;position:absolute;top:-25px;transform:translateX(-50%)}@keyframes celebrationPop{0%,to{opacity:0;transform:translateX(-50%) translateY(0) scale(.5)}50%{opacity:1;transform:translateX(-50%) translateY(-5px) scale(1.2)}}[data-theme=horseyear] .App-main:hover:before{animation:fireworkBurst 1s ease-out}@keyframes fireworkBurst{0%{box-shadow:0 0 0 0 #ffd700cc,0 0 0 0 #f00c}to{box-shadow:0 0 0 50px #ffd70000,0 0 0 80px #f000}}@keyframes pageLoadCelebration{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}[data-theme=horseyear] .dashboard{animation:pageLoadCelebration 1s ease-out}[data-theme=horseyear] .stat-trend.positive{animation:successFlash 2s ease-in-out infinite}@keyframes successFlash{0%,to{color:#34c759;text-shadow:0 0 0 #34c75900}50%{color:gold;text-shadow:0 0 10px #ffd700cc}}[data-theme=horseyear] .App-container{position:relative}[data-theme=horseyear] .App-container:before{animation:redPacketFall1 10s linear infinite;content:"🧧";filter:drop-shadow(0 0 8px rgba(255,0,0,.5));font-size:25px;left:10%;pointer-events:none;position:fixed;top:-50px;z-index:1}@keyframes redPacketFall1{0%{opacity:0;transform:translateY(-50px) rotate(0deg)}5%{opacity:.8}95%{opacity:.8}to{opacity:0;transform:translateY(calc(100vh + 50px)) rotate(1turn)}}[data-theme=horseyear] .App-main:after{animation:redPacketFall2 12s linear 3s infinite;content:"🧧";filter:drop-shadow(0 0 8px rgba(255,0,0,.5));font-size:28px;pointer-events:none;position:fixed;right:15%;top:-50px;z-index:1}@keyframes redPacketFall2{0%{opacity:0;transform:translateY(-50px) rotate(0deg) scale(1)}5%{opacity:.9}95%{opacity:.9}to{opacity:0;transform:translateY(calc(100vh + 50px)) rotate(-1turn) scale(1.1)}}[data-theme=horseyear] .content-section:before{animation:redPacketFall3 11s linear 6s infinite;content:"🧧";filter:drop-shadow(0 0 8px rgba(255,0,0,.5));font-size:22px;left:25%;pointer-events:none;position:fixed;top:-50px;z-index:1}@keyframes redPacketFall3{0%{opacity:0;transform:translateY(-50px) rotate(0deg)}5%{opacity:.7}95%{opacity:.7}to{opacity:0;transform:translateY(calc(100vh + 50px)) rotate(180deg)}}[data-theme=horseyear] .content-section:after{animation:redPacketFall4 13s linear 2s infinite;content:"🧧";filter:drop-shadow(0 0 8px rgba(255,0,0,.5));font-size:26px;pointer-events:none;position:fixed;right:25%;top:-50px;z-index:1}@keyframes redPacketFall4{0%{opacity:0;transform:translateY(-50px) rotate(0deg)}5%{opacity:.85}95%{opacity:.85}to{opacity:0;transform:translateY(calc(100vh + 50px)) rotate(-270deg)}}[data-theme=horseyear] .chart-card:nth-child(2n):before{display:none}[data-theme=horseyear] .card:after,[data-theme=horseyear] .dashboard-stat-card:after{z-index:1!important}@media (max-width:768px){[data-theme=horseyear] .content-section:after,[data-theme=horseyear] .content-section:before{display:none}}[data-theme=horseyear] table{background:#0000;border-collapse:initial;border-spacing:0;width:100%}[data-theme=horseyear] thead{background:linear-gradient(135deg,gold,orange);box-shadow:0 2px 10px #ffd7004d;position:-webkit-sticky;position:sticky;top:0;z-index:10}[data-theme=horseyear] thead th{border-bottom:3px solid #d32f2f;color:#d32f2f;font-size:15px;font-weight:700;padding:16px;text-align:left;text-shadow:0 1px 2px #ffffff80}[data-theme=horseyear] tbody tr{background:#fff;border-bottom:2px solid #ffe4cc;position:relative;transition:all .3s ease}[data-theme=horseyear] tbody tr:nth-child(2n){background:linear-gradient(135deg,#fff8f0,#fff)}[data-theme=horseyear] tbody tr:hover{background:linear-gradient(135deg,#ffe4cc,#ffd4b2);box-shadow:-4px 0 0 gold,0 2px 15px #ffd70066;transform:translateX(5px)}[data-theme=horseyear] tbody td{border-bottom:1px solid #ffe4cc;color:#1f1f1f;font-size:14px;padding:14px 16px}[data-theme=horseyear] tbody td .badge,[data-theme=horseyear] tbody td span[class*=type]{border:2px solid;border-radius:20px;display:inline-block;font-size:13px;font-weight:600;padding:6px 14px;text-shadow:0 1px 2px #0000001a;transition:all .3s ease}[data-theme=horseyear] tbody td .badge.income,[data-theme=horseyear] tbody td span.income{background:linear-gradient(135deg,#ffe5e5,#fff0f0);border-color:#ff6b6b;box-shadow:0 2px 8px #d32f2f33;color:#d32f2f}[data-theme=horseyear] tbody td .badge.income:hover,[data-theme=horseyear] tbody td span.income:hover{background:linear-gradient(135deg,#ff6b6b,#f44336);box-shadow:0 4px 12px #d32f2f66;color:#fff;transform:scale(1.05)}[data-theme=horseyear] tbody td .badge.expense,[data-theme=horseyear] tbody td span.expense{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-color:#66bb6a;box-shadow:0 2px 8px #2e7d3233;color:#2e7d32}[data-theme=horseyear] tbody td .badge.expense:hover,[data-theme=horseyear] tbody td span.expense:hover{background:linear-gradient(135deg,#66bb6a,#4caf50);box-shadow:0 4px 12px #2e7d3266;color:#fff;transform:scale(1.05)}[data-theme=horseyear] tbody td .badge.saving,[data-theme=horseyear] tbody td span.saving{background:linear-gradient(135deg,#fff3e0,#ffecb3);border-color:#ffb74d;box-shadow:0 2px 8px #f57c0033;color:#f57c00}[data-theme=horseyear] tbody td .badge.saving:hover,[data-theme=horseyear] tbody td span.saving:hover{background:linear-gradient(135deg,#ffb74d,#ffa726);box-shadow:0 4px 12px #f57c0066;color:#fff;transform:scale(1.05)}[data-theme=horseyear] tbody td .amount{font-family:Courier New,monospace;font-size:16px;font-weight:700}[data-theme=horseyear] tbody td .amount.income{color:#d32f2f;text-shadow:0 1px 2px #d32f2f33}[data-theme=horseyear] tbody td .amount.expense{color:#2e7d32;text-shadow:0 1px 2px #2e7d3233}[data-theme=horseyear] tbody td .amount.saving{color:#f57c00;text-shadow:0 1px 2px #f57c0033}[data-theme=horseyear] tbody td .btn,[data-theme=horseyear] tbody td button{background:linear-gradient(135deg,#d32f2f,#f44336);border:2px solid gold;border-radius:20px;box-shadow:0 2px 8px #d32f2f4d;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .3s ease}[data-theme=horseyear] tbody td .btn:hover,[data-theme=horseyear] tbody td button:hover{border-color:#ffe57f;box-shadow:0 4px 15px #d32f2f80,0 0 20px #ffd7004d;transform:translateY(-2px)}[data-theme=horseyear] tbody td .btn:active,[data-theme=horseyear] tbody td button:active{transform:translateY(0)}[data-theme=horseyear] tbody td .btn-danger,[data-theme=horseyear] tbody td button.delete{background:linear-gradient(135deg,#c62828,#e53935);border-color:#ffb74d}[data-theme=horseyear] tbody td .btn-danger:hover,[data-theme=horseyear] tbody td button.delete:hover{box-shadow:0 4px 15px #c6282899,0 0 20px #ffb74d66}[data-theme=horseyear] tbody tr{animation:rowSlideIn .4s ease-out}@keyframes rowSlideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}[data-theme=horseyear] .table-container,[data-theme=horseyear] .transaction-list{background:#fff;border:3px solid gold;border-radius:16px;box-shadow:0 4px 20px #ffd7004d,inset 0 1px 0 #ffffff80;overflow:hidden;position:relative}[data-theme=horseyear] .table-container:before,[data-theme=horseyear] .transaction-list:before{animation:borderShine 3s linear infinite;background:linear-gradient(90deg,#d32f2f,gold 25%,#d32f2f 50%,gold 75%,#d32f2f);content:"";height:4px;left:0;position:absolute;right:0;top:0}@keyframes borderShine{0%{background-position:0 0}to{background-position:200px 0}}[data-theme=horseyear] .empty-state{background:linear-gradient(135deg,#fff8f0,#ffe4cc);border:3px dashed gold;border-radius:16px;padding:60px 20px;text-align:center}[data-theme=horseyear] .empty-state:before{animation:emptyBounce 2s ease-in-out infinite;content:"🧧";display:block;font-size:80px;margin-bottom:20px}@keyframes emptyBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}[data-theme=horseyear] .empty-state p{color:#8d6e63;font-size:16px;font-weight:600}[data-theme=horseyear] .pagination .page-item,[data-theme=horseyear] .pagination button{background:linear-gradient(135deg,#fff8f0,#fff);border:2px solid gold;border-radius:12px;color:#d32f2f;font-weight:600;margin:0 5px;padding:8px 16px;transition:all .3s ease}[data-theme=horseyear] .pagination .page-item:hover,[data-theme=horseyear] .pagination button:hover{background:linear-gradient(135deg,gold,orange);box-shadow:0 4px 12px #ffd70066;color:#fff;transform:translateY(-2px)}[data-theme=horseyear] .pagination .page-item.active,[data-theme=horseyear] .pagination button.active{background:linear-gradient(135deg,#d32f2f,#f44336);border-color:gold;box-shadow:0 2px 10px #d32f2f66;color:#fff}@media (max-width:768px){[data-theme=horseyear] tbody td,[data-theme=horseyear] thead th{font-size:13px;padding:10px 8px}[data-theme=horseyear] tbody td .badge,[data-theme=horseyear] tbody td span[class*=type]{font-size:12px;padding:4px 10px}[data-theme=horseyear] tbody td .btn,[data-theme=horseyear] tbody td button{font-size:12px;padding:6px 12px}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.login-container:before{animation:float 20s linear infinite;background:radial-gradient(circle,#ffffff1a 1px,#0000 0);background-size:50px 50px;content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.login-card{animation:slideUp .6s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:48px 40px;position:relative;width:100%;z-index:1}.login-header{margin-bottom:40px;text-align:center}.logo{animation:bounce 2s infinite;font-size:64px;margin-bottom:16px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header h1{color:#1d1d1f;font-size:28px;font-weight:600;letter-spacing:-.5px;margin:0 0 8px}.subtitle{color:#86868b;font-size:15px;font-weight:400;margin:0}.login-tabs{background:#f5f5f7;border-radius:12px;display:flex;gap:8px;margin-bottom:32px;padding:4px}.login-tabs button{background:#0000;border:none;border-radius:8px;color:#86868b;cursor:pointer;flex:1 1;font-size:15px;font-weight:500;padding:12px;transition:all .3s ease}.login-tabs button.active{background:#fff;box-shadow:0 2px 8px #0000001a;color:#1d1d1f}.login-form{display:flex;flex-direction:column;gap:16px}.form-field{position:relative}.form-field input{background:#fff;border:1px solid #d2d2d7;border-radius:12px;box-sizing:border-box;color:#1d1d1f;font-size:17px;padding:16px 20px;transition:all .3s ease;width:100%}.form-field input:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}.form-field input::placeholder{color:#86868b}.error-message{animation:shake .5s;background:#ff3b30;border-radius:12px;color:#fff;font-size:14px;padding:12px 16px;text-align:center}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 16px #667eea66;color:#fff;cursor:pointer;font-size:17px;font-weight:600;margin-top:8px;padding:16px;transition:all .3s ease;width:100%}.login-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea80;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.login-container{padding:16px}.login-card{border-radius:20px;padding:32px 24px}.logo{font-size:52px}.login-header h1{font-size:24px}.subtitle{font-size:14px}.login-form{gap:14px}.form-field input{font-size:16px;padding:14px 18px}.login-button{font-size:16px;padding:14px}}@media (max-width:480px){.login-container{padding:12px}.login-card{border-radius:16px;padding:24px 20px}.logo{font-size:48px;margin-bottom:12px}.login-header h1{font-size:22px}.login-header{margin-bottom:30px}.login-form{gap:12px}}@media (max-height:600px) and (orientation:landscape){.login-container{align-items:flex-start;padding:16px}.login-card{margin:20px auto;padding:24px}.logo{font-size:40px;margin-bottom:8px}.login-header{margin-bottom:20px}.login-header h1{font-size:20px;margin-bottom:4px}.subtitle{font-size:13px}.login-form{gap:10px}.form-field input{padding:12px 16px}.login-button{padding:12px}}.dashboard{display:flex;flex-direction:column;gap:24px}.dashboard-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:8px}.dashboard-stat-card{align-items:center;background:#fff;border:1px solid #0000000d;border-radius:20px;box-shadow:0 4px 20px #00000014;display:flex;gap:16px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.dashboard-stat-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.dashboard-stat-card.income-card{background:linear-gradient(135deg,#ffe5e5,#fff);border-left:4px solid #ff3b30}.dashboard-stat-card.expense-card{background:linear-gradient(135deg,#d1f2eb,#fff);border-left:4px solid #34c759}.dashboard-stat-card.balance-card{background:linear-gradient(135deg,#e3f2fd,#fff);border-left:4px solid #007aff}.dashboard-stat-card.saving-card{background:linear-gradient(135deg,#fff9e6,#fff);border-left:4px solid #ff9500}.dashboard-stat-card.transaction-card{background:linear-gradient(135deg,#f3e5f5,#fff);border-left:4px solid #af52de}.stat-icon{font-size:48px;line-height:1}.stat-content{flex:1 1}.stat-label{color:#86868b;font-size:13px;font-weight:500;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.stat-value{color:#1d1d1f;font-size:28px;font-weight:700;letter-spacing:-1px;margin-bottom:4px}.stat-trend{font-size:13px;font-weight:600;margin-top:4px}.stat-trend.positive{color:#34c759}.stat-trend.negative{color:#ff3b30}.stat-subtitle{color:#86868b;font-size:13px;margin-top:4px}.card-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.time-range-selector-wrapper{align-items:flex-end;display:flex;flex-direction:column;gap:16px}.time-range-selector{display:flex;flex-wrap:wrap;gap:8px}.time-range-selector button{background:#fff;border:1px solid #d2d2d7;border-radius:20px;color:#86868b;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .3s ease;white-space:nowrap}.time-range-selector button:hover{background:#f0f7ff;border-color:#007aff;color:#007aff}.time-range-selector button.active{background:#007aff;border-color:#007aff;box-shadow:0 2px 8px #007aff4d;color:#fff}.custom-date-picker{align-items:flex-end;background:#f5f5f7;border:1px solid #e0e0e0;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;padding:16px}.date-input-group{display:flex;flex-direction:column;gap:6px}.date-input-group label{color:#86868b;font-size:13px}.date-input-group input{background:#fff;border:1px solid #d2d2d7;border-radius:8px;color:#1d1d1f;font-size:14px;min-width:150px;padding:10px 14px;transition:all .3s ease}.date-input-group input:focus{border-color:#007aff;box-shadow:0 0 0 4px #007aff1a;outline:none}.custom-date-picker .btn{height:-webkit-fit-content;height:fit-content;padding:10px 20px}.dashboard-charts{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,1fr);width:100%}.dashboard-charts>.chart-card{display:flex;flex-direction:column;width:100%}.chart-card{display:flex;flex-direction:column;height:100%;min-height:380px;overflow:hidden;position:relative}.chart-card:before{background:linear-gradient(90deg,#ff6b6b,#51cf66 25%,#3b82f6 50%,orange 75%,#a78bfa);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.chart-card:hover:before{opacity:1}.chart-card h2{align-items:center;color:#1f2937;display:flex;flex-shrink:0;font-size:18px;font-weight:600;gap:8px;margin-bottom:20px}.chart-card .empty-state{align-items:center;background:linear-gradient(135deg,#f5f7fa,#f0f0f3);border-radius:12px;display:flex;flex:1 1;font-size:15px;font-weight:500;justify-content:center;min-height:300px}.recent-transactions{display:flex;flex-direction:column;gap:12px}.recent-transaction-item{align-items:center;background:#f5f5f7;border-radius:12px;display:flex;gap:16px;padding:16px;transition:all .3s ease}.recent-transaction-item:hover{background:#e5e5e7;transform:translateX(4px)}.transaction-icon{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;font-size:32px;height:48px;justify-content:center;width:48px}.transaction-info{flex:1 1}.transaction-category{color:#1d1d1f;font-size:16px;font-weight:600;margin-bottom:4px}.transaction-date{color:#86868b;font-size:13px}.transaction-amount{font-size:18px;font-weight:700;letter-spacing:-.5px}.transaction-amount.income{color:#ff3b30}.transaction-amount.expense{color:#34c759}.transaction-amount.saving{color:#ff9500}@media (max-width:1024px){.dashboard-charts{grid-template-columns:1fr}}@media (max-width:768px){.dashboard-stats{gap:12px;grid-template-columns:repeat(2,1fr)}.dashboard-stat-card{gap:12px;padding:16px}.stat-icon{font-size:32px}.stat-value{font-size:20px}.stat-label,.stat-subtitle,.stat-trend{font-size:11px}.card-header{align-items:flex-start;flex-direction:column;gap:12px}.card-header h2{font-size:16px}.time-range-selector-wrapper{align-items:stretch;width:100%}.time-range-selector{gap:6px;width:100%}.time-range-selector button{flex:1 1;font-size:12px;min-height:36px;padding:8px 10px}.custom-date-picker{gap:8px;padding:12px;width:100%}.date-input-group{flex:1 1;min-width:120px}.date-input-group label{font-size:11px}.date-input-group input{font-size:13px;min-width:auto;padding:8px 10px}.custom-date-picker .btn{font-size:13px;padding:8px 16px;width:100%}.chart-card{min-height:320px;padding:16px}.dashboard .recharts-wrapper{font-size:11px}.dashboard .recharts-cartesian-axis-tick{font-size:10px}}@media (max-width:480px){.dashboard-stats{gap:10px;grid-template-columns:1fr}.dashboard-stat-card{gap:10px;padding:14px}.stat-icon{font-size:28px}.stat-value{font-size:18px}.stat-label{margin-bottom:6px}.stat-label,.stat-subtitle,.stat-trend{font-size:10px}.recent-transaction-item{gap:12px;padding:10px}.transaction-icon{font-size:20px;height:36px;width:36px}.transaction-category{font-size:13px}.transaction-amount{font-size:14px}.transaction-date{font-size:10px}.time-range-selector{flex-wrap:wrap}.time-range-selector button{flex-basis:calc(33.333% - 4px);flex-grow:0;flex-shrink:0;font-size:11px;min-height:32px;padding:6px 8px}.chart-card{min-height:280px;padding:14px}.chart-card h2{font-size:14px;margin-bottom:14px}.custom-date-picker{padding:10px}.date-input-group input{font-size:12px;padding:6px 8px}.custom-date-picker .btn{font-size:12px;padding:6px 12px}}@media (max-width:768px) and (orientation:landscape){.dashboard-stats{gap:12px;grid-template-columns:repeat(4,1fr)}.dashboard-stat-card{padding:16px 12px}.stat-icon{font-size:32px}.stat-value{font-size:20px}}@media (hover:none) and (pointer:coarse){.dashboard-stat-card:hover{transform:none}.recent-transaction-item,.time-range-selector button{min-height:44px}}.category-manager{width:100%}.category-manager-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.category-form{animation:slideDown .3s ease-out;background:#f8f9fa;border-radius:8px;margin-bottom:30px;padding:20px}.categories-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.category-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px}.category-section h3{align-items:center;display:flex;font-size:1.2em;gap:8px;margin-bottom:15px}.category-list{display:flex;flex-direction:column;gap:10px}.category-item{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .3s ease}.category-item:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db26;transform:translateY(-2px)}.category-item span{color:#333;font-weight:500}.category-item-expense{border-left:4px solid #dc3545}.category-item-income{border-left:4px solid #28a745}.category-item-saving{border-left:4px solid #3498db}.empty-category{color:#999;font-style:italic;padding:20px;text-align:center}@media (max-width:768px){.categories-grid{gap:16px;grid-template-columns:1fr}.category-manager-header{align-items:stretch;flex-direction:column;gap:12px}.category-manager-header button{min-height:44px;width:100%}.category-form,.category-section{padding:16px}.category-section h3{font-size:1.1em}.category-item{padding:10px 12px}.category-item span{font-size:14px}.category-item button{font-size:12px;min-height:36px;padding:6px 12px}}@media (max-width:480px){.category-manager-header h2{font-size:1.3em}.categories-grid{gap:12px}.category-form,.category-section{padding:14px}.category-section h3{font-size:1em}.category-item{padding:8px 10px}.category-item span{font-size:13px}.category-item button{font-size:11px;min-height:32px;padding:5px 10px}}.ai-analysis-container{margin:0 auto;max-width:1200px;padding:20px}.ai-analysis-header{margin-bottom:30px;text-align:center}.ai-analysis-header h2{color:#2c3e50;font-size:2em;margin-bottom:10px}.ai-subtitle{color:#7f8c8d;font-size:1.1em}.ai-analysis-controls{animation:slideDown .3s ease-out;background:#fff;border-radius:15px;box-shadow:0 2px 10px #00000014;margin-bottom:30px;overflow:hidden;padding:30px}@keyframes slideDown{0%{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0;transform:translateY(-20px)}to{margin-bottom:30px;max-height:500px;opacity:1;padding-bottom:30px;padding-top:30px;transform:translateY(0)}}.date-range-selector{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.date-input-group{flex:1 1;min-width:200px}.date-input-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.date-input{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:1em;padding:12px;transition:border-color .3s;width:100%}.date-input:focus{border-color:#3498db;outline:none}.quick-select-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.quick-btn{background:#fff;border:2px solid #3498db;border-radius:8px;color:#3498db;cursor:pointer;font-size:.95em;font-weight:500;padding:10px 20px;transition:all .3s}.quick-btn:hover{background:#3498db;color:#fff;transform:translateY(-2px)}.analyze-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.1em;font-weight:600;padding:15px;transition:all .3s;width:100%}.analyze-button:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.analyze-button:disabled{background:#ccc;cursor:not-allowed}.stop-button{background:linear-gradient(135deg,#e74c3c,#c0392b)!important}.stop-button:hover{background:linear-gradient(135deg,#c0392b,#a93226)!important}.ai-error-message{align-items:center;background:#fee;border:2px solid #f88;border-radius:10px;color:#c33;display:flex;gap:10px;margin-bottom:20px;padding:15px 20px}.error-icon{font-size:1.5em}.ai-loading{background:#fff;border-radius:15px;box-shadow:0 2px 10px #00000014;padding:60px 40px;text-align:center}.loading-spinner{border:5px solid #f3f3f3;border-top-color:#3498db;margin:0 auto 20px}.ai-loading p{color:#555;font-size:1.1em;margin:10px 0}.loading-hint{color:#999;font-size:.9em!important}.ai-analysis-results{animation:fadeIn .5s;background:#fff;border-radius:15px;box-shadow:0 2px 10px #00000014;padding:30px}.results-header{border-bottom:2px solid #f0f0f0;margin-bottom:30px;padding-bottom:20px}.results-header h3{color:#2c3e50;font-size:1.8em;margin-bottom:15px}.analysis-meta{display:flex;flex-wrap:wrap;gap:30px}.analysis-meta span{color:#7f8c8d;font-size:.95em}.monthly-summary{margin-bottom:30px}.monthly-summary h4{color:#2c3e50;font-size:1.3em;margin-bottom:15px}.monthly-cards{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.monthly-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:10px;padding:15px;transition:transform .3s}.monthly-card:hover{transform:translateY(-5px)}.month-label{color:#2c3e50;font-size:1.1em;font-weight:600;margin-bottom:10px;text-align:center}.month-stats{display:flex;flex-direction:column;gap:8px}.stat-row{border-radius:5px;display:flex;font-size:.9em;justify-content:space-between;padding:5px}.stat-row.income{background:#2ed57333;color:#27ae60}.stat-row.expense{background:#ff6b6b33;color:#e74c3c}.stat-row.balance{background:#3498db33;color:#2980b9;font-weight:600}.ai-analysis-content{background:#f9fafb;border-radius:10px;line-height:1.8;padding:30px;position:relative}.ai-analysis-content.streaming:after{animation:blink 1s infinite;color:#3498db;content:"▋";font-weight:700}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.ai-analysis-content h1,.ai-analysis-content h2,.ai-analysis-content h3{color:#2c3e50;margin-bottom:15px;margin-top:25px}.ai-analysis-content h1{border-bottom:3px solid #3498db;font-size:1.8em;padding-bottom:10px}.ai-analysis-content h2{color:#3498db;font-size:1.5em}.ai-analysis-content h3{font-size:1.2em}.ai-analysis-content p{color:#555;margin-bottom:15px}.ai-analysis-content ol,.ai-analysis-content ul{margin-bottom:15px;margin-left:25px}.ai-analysis-content li{color:#555;margin-bottom:10px}.ai-analysis-content strong{color:#2c3e50;font-weight:600}.ai-analysis-content code{background:#e8e8e8;border-radius:3px;font-family:Courier New,monospace;padding:2px 6px}.analysis-footer{border-top:2px solid #f0f0f0;margin-top:30px;padding-top:20px}.disclaimer{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;color:#856404;font-size:.95em;padding:15px;text-align:center}.ai-welcome{background:#fff;border-radius:15px;box-shadow:0 2px 10px #00000014;padding:60px 40px;text-align:center}.welcome-icon{font-size:5em;margin-bottom:20px}.ai-welcome h3{color:#2c3e50;font-size:1.8em;margin-bottom:15px}.ai-welcome>p{color:#7f8c8d;font-size:1.1em;margin-bottom:40px}.welcome-features{display:flex;flex-wrap:wrap;gap:40px;justify-content:center;margin-top:30px}.feature-item{flex-direction:column;gap:10px}.feature-icon,.feature-item{align-items:center;display:flex}.feature-icon{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;font-size:2.5em;height:80px;justify-content:center;width:80px}.feature-item span:last-child{color:#555;font-weight:500}@media (max-width:768px){.ai-analysis-container{padding:12px}.ai-analysis-header h2{font-size:1.6em}.ai-subtitle{font-size:1em}.ai-analysis-controls{border-radius:12px;padding:20px 16px}.date-range-selector{flex-direction:column;gap:16px}.date-input-group{min-width:100%}.quick-select-buttons{gap:8px}.quick-btn{flex:1 1;font-size:14px;min-width:calc(50% - 4px);padding:10px 16px}.monthly-cards{gap:12px;grid-template-columns:1fr}.monthly-card{padding:12px}.month-label{font-size:1em}.stat-row{font-size:.85em}.welcome-features{flex-direction:column;gap:20px}.feature-icon{font-size:2em;height:60px;width:60px}.ai-analysis-content{font-size:15px;padding:16px}.ai-analysis-content h1{font-size:1.5em}.ai-analysis-content h2{font-size:1.3em}.ai-analysis-content h3{font-size:1.1em}.analysis-meta{flex-direction:column;gap:8px}.results-header h3{font-size:1.5em}.ai-analysis-results{padding:20px 16px}.ai-loading{padding:40px 24px}.loading-spinner{height:50px;width:50px}.ai-welcome{padding:40px 24px}.welcome-icon{font-size:4em}.ai-welcome h3{font-size:1.5em}.analyze-button{font-size:1em;padding:14px}}@media (max-width:480px){.ai-analysis-container{padding:8px}.ai-analysis-header{margin-bottom:20px}.ai-analysis-header h2{font-size:1.4em}.ai-subtitle{font-size:.95em}.ai-analysis-controls{margin-bottom:20px;padding:16px 12px}.quick-select-buttons{flex-direction:column}.quick-btn{min-width:100%;width:100%}.date-input{font-size:16px;padding:10px}.ai-analysis-content{font-size:14px;padding:12px}.monthly-summary h4{font-size:1.1em}.monthly-card{padding:10px}.ai-loading,.ai-welcome{padding:30px 16px}.welcome-icon{font-size:3.5em;margin-bottom:16px}.ai-welcome h3{font-size:1.3em}.ai-welcome>p{font-size:1em}.disclaimer{font-size:.85em;padding:12px}}@media (max-width:768px) and (orientation:landscape){.ai-analysis-header{margin-bottom:16px}.ai-analysis-header h2{font-size:1.3em}.ai-subtitle{font-size:.9em}.ai-analysis-controls{padding:16px}.date-range-selector,.quick-select-buttons{flex-direction:row}.quick-btn{flex:1 1;font-size:13px;min-width:auto;padding:8px 12px}.monthly-cards{grid-template-columns:repeat(2,1fr)}.ai-loading{padding:30px 24px}.loading-spinner{height:40px;width:40px}.ai-welcome{padding:30px 24px}}.ai-chat-container{background:#fff;border-radius:15px;box-shadow:0 2px 10px #00000014;display:flex;flex-direction:column;height:calc(100vh - 300px);margin-top:20px;max-height:none;min-height:600px}.ai-analysis-container:has(.ai-chat-container):not(:has(.ai-analysis-controls)) .ai-chat-container{height:calc(100vh - 200px);margin-top:0}.summary-banner{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px 15px 0 0;color:#fff;display:flex;gap:15px;justify-content:space-between;padding:15px 20px}.summary-info{display:flex;flex:1 1;flex-wrap:wrap;font-size:.9em;gap:20px}.summary-info span{align-items:center;display:flex;gap:5px}.toggle-controls-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:20px;color:#fff;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:500;padding:8px 16px;transition:all .3s;white-space:nowrap}.toggle-controls-btn:hover{background:#ffffff4d;box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.toggle-controls-btn:active{transform:translateY(0)}.chat-messages{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:20px}.message{animation:fadeIn .3s ease-in;display:flex;gap:12px}.user-message{flex-direction:row-reverse}.message-avatar{align-items:center;background:#f0f0f0;border-radius:50%;display:flex;flex-shrink:0;font-size:20px;height:40px;justify-content:center;width:40px}.user-message .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2)}.ai-message .message-avatar{background:linear-gradient(135deg,#26de81,#20bf6b)}.message-content{flex:1 1;max-width:70%}.user-message .message-content{text-align:right}.message-text{word-wrap:break-word;border-radius:12px;line-height:1.6;padding:12px 16px}.user-message .message-text{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px;color:#fff}.ai-message .message-text{background:#f5f7fa;border-bottom-left-radius:4px;color:#333}.ai-text{font-size:14px}.ai-text h1,.ai-text h2,.ai-text h3{margin-bottom:10px;margin-top:0}.ai-text p{margin-bottom:10px}.ai-text ol,.ai-text ul{margin-bottom:10px;margin-left:20px}.ai-text code{background:#0000000d;border-radius:4px;font-size:.9em;padding:2px 6px}.streaming-cursor{animation:blink 1s infinite;color:#667eea;font-weight:700}.typing-indicator{display:flex;gap:5px;padding:10px 0}.typing-indicator span{animation:typing 1.4s infinite;background:#667eea;border-radius:50%;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chat-input-container{background:#fafafa;border-radius:0 0 15px 15px;border-top:1px solid #e0e0e0;padding:15px 20px}.chat-input-wrapper{align-items:center;display:flex;gap:10px}.chat-input{border:2px solid #e0e0e0;border-radius:24px;flex:1 1;font-size:14px;outline:none;padding:12px 16px;transition:border-color .3s}.chat-input:focus{border-color:#667eea}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.send-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:44px;justify-content:center;transition:transform .2s,box-shadow .2s;width:44px}.send-button:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:scale(1.05)}.send-button:disabled{cursor:not-allowed;opacity:.5}.chat-hints{align-items:center;color:#666;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-top:10px}.hint-button{background:#fff;border:1px solid #e0e0e0;border-radius:16px;color:#667eea;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s}.hint-button:hover{background:#f0f0f0;border-color:#667eea}@media (hover:none) and (pointer:coarse){.analyze-button,.date-input,.quick-btn,.toggle-controls-btn{min-height:44px}.monthly-card:hover{transform:none}.quick-btn:hover{background:#fff;color:#3498db}.chat-messages{padding:15px}.message-content{max-width:85%}.chat-input-container{padding:12px 15px}}@media (max-width:768px){.ai-chat-container{height:calc(100vh - 280px);margin-top:15px;max-height:none;min-height:500px}.ai-analysis-container:has(.ai-chat-container):not(:has(.ai-analysis-controls)) .ai-chat-container{height:calc(100vh - 180px);margin-top:0}.summary-banner{align-items:flex-start;flex-direction:column;gap:10px;padding:12px 15px}.summary-info{font-size:.8em;gap:10px;width:100%}.toggle-controls-btn{font-size:14px;padding:10px 16px;width:100%}.message-content{max-width:85%}.message-text{font-size:14px;padding:10px 14px}.message-avatar{font-size:18px;height:35px;width:35px}.chat-input{font-size:16px}.chat-hints,.hint-button{font-size:11px}.hint-button{padding:5px 10px}}.savings-goal-container{padding:0}.goal-header{justify-content:space-between;margin-bottom:24px}.goal-header,.year-selector{align-items:center;display:flex}.year-selector{gap:12px}.year-selector button{background:#f5f5f7;border:none;border-radius:8px;cursor:pointer;font-size:14px;padding:8px 12px;transition:background .2s}.year-selector button:hover{background:#e5e5e7}.year-selector span{font-size:18px;font-weight:600;min-width:80px;text-align:center}.goal-edit-form{display:flex;flex-direction:column;gap:24px}.form-group-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.monthly-targets-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.monthly-target-item{display:flex;flex-direction:column;gap:6px}.monthly-target-item label{color:#86868b;font-size:13px;font-weight:500}.monthly-target-item input{border:1px solid #d2d2d7;border-radius:8px;font-size:14px;padding:10px 12px;transition:border-color .2s}.monthly-target-item input:focus{border-color:#007aff;outline:none}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.goal-display{display:flex;flex-direction:column;gap:24px}.annual-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-card{background:linear-gradient(135deg,#f5f5f7,#fff);border:1px solid #0000000d;border-radius:12px;display:flex;flex-direction:column;justify-content:center;min-height:110px;padding:20px}.summary-label{color:#86868b;font-size:13px;font-weight:500;margin-bottom:8px;white-space:nowrap}.summary-value{word-wrap:break-word;color:#1d1d1f;font-size:28px;letter-spacing:-.5px;line-height:1.2;overflow-wrap:break-word}.summary-value.progress{color:#34c759}.summary-value.remaining{color:#ff9500}.summary-detail{color:#86868b;font-size:11px;font-weight:400;margin-top:4px}.annual-progress-bar{margin-top:8px}.progress-bar-label{color:#1d1d1f;display:flex;font-size:14px;font-weight:500;justify-content:space-between;margin-bottom:8px}.progress-bar-container{background:#f5f5f7;border-radius:12px;height:24px;overflow:hidden;position:relative;width:100%}.progress-bar-fill{background:linear-gradient(90deg,#34c759,#30d158);border-radius:12px;height:100%;transition:width .5s ease}.monthly-chart{margin-top:24px}.monthly-chart h3{color:#1d1d1f;font-size:20px;font-weight:600;margin-bottom:16px}.monthly-progress-table{margin-top:24px}.monthly-progress-table h3{color:#1d1d1f;font-size:20px;font-weight:600;margin-bottom:16px}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{background:#fff;border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.table thead{background:#f5f5f7}.table th{color:#86868b;font-size:13px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.table td{border-top:1px solid #f5f5f7;color:#1d1d1f;font-size:14px;padding:14px 16px}.table tbody tr:hover{background:#fafafa}.income-cell{color:#34c759;font-weight:500}.expense-cell{color:#ff3b30;font-weight:500}.balance-cell{font-weight:600}.balance-cell.positive{color:#34c759}.balance-cell.negative{color:#ff3b30}.remaining-cell{font-weight:500}.remaining-cell.complete{color:#34c759}.progress-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.progress-badge.complete{background:#d4edda;color:#155724}.progress-badge.good{background:#d1ecf1;color:#0c5460}.progress-badge.warning{background:#fff3cd;color:#856404}.progress-badge.danger{background:#f8d7da;color:#721c24}.empty-goal{color:#86868b;padding:60px 20px;text-align:center}.empty-goal p{font-size:16px;margin-bottom:24px}.goal-actions{display:flex;justify-content:flex-end;margin-top:8px}.btn-primary{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-primary:hover{background:#0051d5;box-shadow:0 4px 12px #007aff4d;transform:translateY(-1px)}.btn-secondary{background:#f5f5f7;border:none;border-radius:10px;color:#1d1d1f;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-secondary:hover{background:#e5e5e7}@media (max-width:768px){.goal-header{align-items:flex-start;flex-direction:column;gap:16px}.annual-summary{gap:12px}.annual-summary,.monthly-targets-grid{grid-template-columns:repeat(2,1fr)}.summary-card{padding:16px}.summary-value{font-size:22px}.summary-label{font-size:12px}.summary-detail{font-size:10px}.table{font-size:12px}.table td,.table th{padding:10px 8px}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media (max-width:480px){.annual-summary{gap:10px;grid-template-columns:repeat(2,1fr)}.summary-card{display:flex;flex-direction:column;justify-content:center;min-height:100px;padding:12px}.summary-label{font-size:11px;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-value{font-size:18px;line-height:1.2;word-break:break-all}.summary-detail{font-size:9px;margin-top:2px}}@media (max-width:375px){.annual-summary{gap:8px;grid-template-columns:repeat(2,1fr)}.summary-card{min-height:90px;padding:10px}.summary-label{font-size:10px;margin-bottom:4px}.summary-value{font-size:16px}.summary-detail{font-size:8px}}.transaction-template{margin:0 auto;max-width:1200px;padding:20px}.template-header{margin-bottom:30px}.template-header h2{color:#1d1d1f;font-size:28px;font-weight:700;margin-bottom:8px}.template-subtitle{color:#86868b;font-size:16px;margin:0}.template-actions{display:flex;gap:12px}.recommendation-section,.template-actions{margin-bottom:24px}.recommendation-section h3{color:#1d1d1f;font-size:20px;font-weight:600;margin-bottom:8px}.recommendation-subtitle{color:#86868b;font-size:14px;margin-bottom:16px}.recommendation-list{grid-gap:12px;display:grid;gap:12px}.recommendation-item{align-items:center;background:#f5f5f7;border-radius:12px;display:flex;gap:16px;padding:16px;transition:all .3s ease}.recommendation-item:hover{background:#e8e8ed;transform:translateY(-2px)}.rec-icon{align-items:center;background:#fff;border-radius:12px;display:flex;flex-shrink:0;font-size:32px;height:48px;justify-content:center;width:48px}.rec-info{flex:1 1;min-width:0}.rec-category{color:#1d1d1f;font-size:16px;font-weight:600;margin-bottom:4px}.rec-meta{color:#86868b;font-size:14px}.templates-section h3{color:#1d1d1f;font-size:20px;font-weight:600;margin-bottom:16px}.template-list{grid-gap:16px;display:grid;gap:16px}.template-item{align-items:flex-start;background:#fff;border:2px solid #e5e5ea;border-radius:16px;display:flex;gap:16px;padding:20px;transition:all .3s ease}.template-item:hover{border-color:#007aff;box-shadow:0 4px 12px #007aff26;transform:translateY(-2px)}.template-item.type-income{border-left:4px solid #34c759}.template-item.type-expense{border-left:4px solid #ff3b30}.template-item.type-saving{border-left:4px solid #ff9500}.template-icon{align-items:center;background:#f5f5f7;border-radius:14px;display:flex;flex-shrink:0;font-size:36px;height:56px;justify-content:center;width:56px}.template-info{flex:1 1;min-width:0}.template-name{color:#1d1d1f;font-size:18px;font-weight:600;margin-bottom:8px}.template-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;gap:12px;margin-bottom:4px}.template-category{color:#007aff;font-weight:500}.template-amount{color:#1d1d1f;font-weight:600}.template-usage{color:#86868b;font-size:13px}.template-description{color:#6e6e73;font-size:14px;line-height:1.5;margin-top:8px}.template-actions-group{display:flex;flex-shrink:0;gap:8px}.empty-icon{margin-bottom:16px}.empty-state p{margin:8px 0}.empty-hint{font-size:14px!important}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e5ea;display:flex;justify-content:space-between;padding:24px 24px 16px}.modal-header h3{color:#1d1d1f;font-size:20px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#86868b;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close:hover{background:#f5f5f7;color:#1d1d1f}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{color:#1d1d1f;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e5e5ea;border-radius:10px;font-family:inherit;font-size:16px;padding:12px 16px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007aff;box-shadow:0 0 0 4px #007aff1a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-hint{color:#86868b;display:block;font-size:12px;margin-top:6px}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px 24px}.template-preview{background:#f5f5f7;gap:16px;margin-bottom:24px;padding:16px}.preview-icon,.template-preview{align-items:center;border-radius:12px;display:flex}.preview-icon{background:#fff;font-size:36px;height:56px;justify-content:center;width:56px}.preview-info{flex:1 1}.preview-name{color:#1d1d1f;font-size:18px;font-weight:600;margin-bottom:4px}.preview-meta{color:#86868b;font-size:14px}.btn-outline{background:#fff;border:2px solid #007aff;color:#007aff}.btn-outline:hover{background:#f0f7ff}.btn-danger-outline{background:#fff;border:2px solid #ff3b30;color:#ff3b30}.btn-danger-outline:hover{background:#fff5f5}.btn-sm{font-size:13px;padding:6px 12px}.btn-icon{font-size:16px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.transaction-template{padding:16px}.template-header h2{font-size:24px}.template-actions{flex-direction:column}.template-actions .btn{width:100%}.recommendation-item{flex-direction:column;text-align:center}.template-item{align-items:stretch;flex-direction:column}.template-actions-group{flex-wrap:wrap}.template-actions-group .btn{flex:1 1}.modal-content{margin:0;max-height:95vh}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}.financial-health{margin:0 auto;max-width:1400px;padding:20px}.health-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.header-content h2{color:#1d1d1f;font-size:28px;font-weight:700;margin-bottom:8px}.health-subtitle{color:#86868b;font-size:16px;margin:0}.date-selector{align-items:center;display:flex;gap:12px}.date-selector select{background:#fff;border:2px solid #e5e5ea;border-radius:10px;color:#1d1d1f;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s}.date-selector select:hover{border-color:#007aff}.date-selector select:focus{border-color:#007aff;box-shadow:0 0 0 4px #007aff1a;outline:none}.score-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;overflow:hidden;padding:40px 20px;position:relative;text-align:center}.score-card:before{animation:pulse 3s ease-in-out infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;position:absolute;right:-50%;top:-50%;width:200%}.score-circle-container{display:inline-block;margin-bottom:20px;position:relative}.score-circle{height:200px;transform:rotate(0deg);width:200px}.score-content{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.score-number{font-size:56px;font-weight:700;line-height:1;margin-bottom:8px}.score-label{font-size:14px;margin-bottom:8px;opacity:.9}.score-level{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;display:inline-block;font-size:13px;font-weight:600;padding:6px 16px}.score-date{font-size:16px;opacity:.9}.dimensions-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:30px}.dimension-card{padding:24px;transition:all .3s ease}.dimension-card:hover{box-shadow:0 12px 24px #0000001a;transform:translateY(-4px)}.dimension-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.dimension-icon{align-items:center;background:#f5f5f7;border-radius:12px;display:flex;font-size:32px;height:48px;justify-content:center;width:48px}.dimension-header h3{color:#1d1d1f;font-size:18px;font-weight:600;margin:0}.dimension-score{margin-bottom:12px}.score-value{color:#1d1d1f;font-size:36px;font-weight:700}.score-max{color:#86868b;font-size:18px;margin-left:4px}.dimension-detail{color:#6e6e73;font-size:14px;margin-bottom:12px}.progress-bar{background:#e5e5ea;border-radius:4px;height:8px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .8s ease}.progress-fill.savings-rate{background:linear-gradient(90deg,#34c759,#30d158)}.progress-fill.debt-ratio{background:linear-gradient(90deg,#007aff,#0a84ff)}.progress-fill.asset-allocation{background:linear-gradient(90deg,#ff9500,#ff9f0a)}.progress-fill.risk-reserve{background:linear-gradient(90deg,#af52de,#bf5af2)}.progress-fill.income-stability{background:linear-gradient(90deg,#ff2d55,#ff375f)}.progress-fill.expense-control{background:linear-gradient(90deg,#5ac8fa,#64d2ff)}.charts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:30px}.chart-card{padding:24px}.chart-card h3{color:#1d1d1f;font-size:18px;font-weight:600;margin-bottom:20px}.suggestions-card{padding:24px}.suggestions-card h3{color:#1d1d1f;font-size:20px;font-weight:600;margin-bottom:20px}.suggestions-list{grid-gap:16px;display:grid;gap:16px}.suggestion-item{border-radius:12px;gap:16px;padding:20px;transition:all .3s ease}.suggestion-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.suggestion-item.level-high{background:#fff5f5;border-color:#ff3b30}.suggestion-item.level-medium{background:#fffbf0;border-color:#ff9500}.suggestion-item.level-low,.suggestion-item.level-success{background:#f0fdf4;border-color:#34c759}.suggestion-item.level-info{background:#f0f9ff;border-color:#007aff}.suggestion-item.level-warning{background:#fffbf0;border-color:#ff9500}.suggestion-icon{align-items:center;background:#fff;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.suggestion-category{color:#1d1d1f;font-size:16px;font-weight:600;margin-bottom:6px}.suggestion-message{color:#6e6e73;line-height:1.6}.empty-state{padding:80px 20px}.empty-icon{animation:float 3s ease-in-out infinite;font-size:80px;opacity:.5}.empty-state h3{color:#1d1d1f;font-size:24px;font-weight:600;margin-bottom:12px}.empty-state p{color:#86868b;margin-bottom:24px}.loading-state{padding:80px 20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e5e5ea;border-radius:50%;border-top-color:#007aff;height:48px;margin:0 auto 16px;width:48px}.loading-state p{color:#86868b;font-size:16px}.btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:6px;justify-content:center;padding:10px 20px;transition:all .2s}.btn-primary{background:#007aff;color:#fff}.btn-primary:hover:not(:disabled){background:#0051d5;box-shadow:0 4px 12px #007aff4d;transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-lg{font-size:16px;padding:14px 32px}@keyframes pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.financial-health{padding:16px}.health-header{align-items:stretch;flex-direction:column}.header-content h2{font-size:24px}.date-selector{flex-wrap:wrap}.date-selector .btn,.date-selector select{flex:1 1;min-width:100px}.score-circle{height:160px;width:160px}.score-number{font-size:48px}.charts-grid,.dimensions-grid{grid-template-columns:1fr}.chart-card{padding:16px}.suggestion-item{flex-direction:column;text-align:center}}@media (max-width:480px){.score-circle{height:140px;width:140px}.score-number{font-size:40px}.dimension-icon{font-size:24px;height:40px;width:40px}.dimension-header h3{font-size:16px}.score-value{font-size:28px}}.cashflow-prediction-container{margin:0 auto;max-width:1400px;padding:20px}.page-header{margin-bottom:30px;text-align:center}.page-header h2{color:#333;color:var(--text-primary,#333);font-size:28px;font-weight:600;margin-bottom:10px}.page-description{color:#666;color:var(--text-secondary,#666);font-size:14px}.tabs{border-bottom:2px solid #e5e5e5;border-bottom:2px solid var(--border-color,#e5e5e5);display:flex;gap:10px;margin-bottom:20px}.tab{background:#0000;border:none;border-bottom:3px solid #0000;bottom:-2px;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;position:relative;transition:all .3s ease}.tab.active,.tab:hover{color:#007aff;color:var(--primary-color,#007aff)}.tab.active{border-bottom-color:#007aff;border-bottom-color:var(--primary-color,#007aff)}.card{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:20px;padding:24px;transition:box-shadow .3s ease}.card:hover{box-shadow:0 4px 16px #0000001f}.card-header{margin-bottom:20px}.card-header h3{color:#333;color:var(--text-primary,#333);font-size:20px;font-weight:600;margin:0 0 5px}.card-subtitle{color:#666;color:var(--text-secondary,#666);font-size:14px;margin:0}.month-selector{display:flex;flex-wrap:wrap;gap:10px}.month-btn{background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);border:2px solid #e5e5e5;border:2px solid var(--border-color,#e5e5e5);border-radius:8px;color:#333;color:var(--text-primary,#333);cursor:pointer;flex:1 1;font-size:14px;font-weight:500;min-width:80px;padding:10px 20px;transition:all .3s ease}.month-btn:hover{color:#007aff;color:var(--primary-color,#007aff)}.month-btn.active,.month-btn:hover{border-color:#007aff;border-color:var(--primary-color,#007aff)}.month-btn.active{background:#007aff;background:var(--primary-color,#007aff);color:#fff}.overview-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.overview-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;display:flex;gap:15px;padding:20px;transition:transform .3s ease,box-shadow .3s ease}.overview-card:hover{box-shadow:0 8px 24px #667eea66;transform:translateY(-5px)}.overview-card:first-child{background:linear-gradient(135deg,#667eea,#764ba2)}.overview-card:nth-child(2){background:linear-gradient(135deg,#f093fb,#f5576c)}.overview-card:nth-child(3){background:linear-gradient(135deg,#4facfe,#00f2fe)}.overview-card:nth-child(4){background:linear-gradient(135deg,#43e97b,#38f9d7)}.overview-icon{font-size:40px}.overview-content{flex:1 1}.overview-label{font-size:14px;margin-bottom:5px;opacity:.9}.overview-value{font-size:24px;font-weight:700}.analysis-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.analysis-item{background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);border-radius:8px;padding:15px;text-align:center}.analysis-label{color:#666;color:var(--text-secondary,#666);font-size:14px;margin-bottom:8px}.analysis-value{color:#333;color:var(--text-primary,#333);font-size:20px;font-weight:600}.stability-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 12px}.stability-badge.stable{background:#d4edda;color:#155724}.stability-badge.moderate{background:#fff3cd;color:#856404}.stability-badge.unstable{background:#f8d7da;color:#721c24}.chart-container{margin-top:20px}.predictions-table{overflow-x:auto}.predictions-table table{border-collapse:collapse;width:100%}.predictions-table td,.predictions-table th{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--border-color,#e5e5e5);padding:12px;text-align:left}.predictions-table th{background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);color:#666;color:var(--text-secondary,#666);font-size:14px;font-weight:600}.predictions-table td{color:#333;color:var(--text-primary,#333);font-size:14px}.predictions-table .income{color:#34c759;font-weight:500}.predictions-table .expense{color:#ff3b30;font-weight:500}.predictions-table .balance{color:#007aff;font-weight:600}.risks-list{display:flex;flex-direction:column;gap:15px}.risk-item{border-left:4px solid;border-radius:8px;display:flex;gap:15px;padding:15px}.risk-item.risk-high{background:#fff5f5;border-left-color:#e53e3e}.risk-item.risk-medium{background:#fffbeb;border-left-color:#f59e0b}.risk-item.risk-low{background:#eff6ff;border-left-color:#3b82f6}.risk-icon{font-size:24px}.risk-content{flex:1 1}.risk-level{font-size:14px;font-weight:600;margin-bottom:5px}.risk-item.risk-high .risk-level{color:#e53e3e}.risk-item.risk-medium .risk-level{color:#f59e0b}.risk-item.risk-low .risk-level{color:#3b82f6}.risk-message{color:#333;color:var(--text-primary,#333);font-size:14px}.suggestions-list{display:flex;flex-direction:column;gap:15px}.suggestion-item{background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);border-left:4px solid;border-radius:8px;display:flex;gap:15px;padding:15px}.suggestion-item.priority-high{background:#fff5f5;border-left-color:#ff3b30}.suggestion-item.priority-medium{background:#fffbeb;border-left-color:#ff9500}.suggestion-item.priority-low{background:#eff6ff;border-left-color:#007aff}.suggestion-icon{font-size:24px}.suggestion-content{flex:1 1}.suggestion-priority{font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:5px;text-transform:uppercase}.suggestion-item.priority-high .suggestion-priority{color:#ff3b30}.suggestion-item.priority-medium .suggestion-priority{color:#ff9500}.suggestion-item.priority-low .suggestion-priority{color:#007aff}.suggestion-message{color:#333;color:var(--text-primary,#333);font-size:14px;margin-bottom:8px}.suggestion-action{background:#0000000d;border-radius:6px;color:#666;color:var(--text-secondary,#666);font-size:13px;margin-top:8px;padding:8px 12px}.expense-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);border-radius:8px;padding:20px;text-align:center}.summary-label{color:#666;color:var(--text-secondary,#666);font-size:14px;margin-bottom:10px}.summary-value{color:#333;color:var(--text-primary,#333);font-size:24px;font-weight:700;margin-bottom:5px}.summary-value.expense{color:#ff3b30}.summary-count{color:#666;color:var(--text-secondary,#666);font-size:12px}.expense-list{display:flex;flex-direction:column;gap:10px}.expense-item{border:1px solid #e5e5e5;border:1px solid var(--border-color,#e5e5e5);border-radius:8px;overflow:hidden;transition:box-shadow .3s ease}.expense-item:hover{box-shadow:0 2px 8px #00000014}.expense-item-header{align-items:center;background:#f8f8f8;background:var(--bg-secondary,#f8f8f8);cursor:pointer;display:flex;justify-content:space-between;padding:15px;transition:background .3s ease}.expense-item-header:hover{background:#f0f0f0;background:var(--bg-hover,#f0f0f0)}.expense-item-left{align-items:center;display:flex;gap:10px}.expense-category{color:#333;color:var(--text-primary,#333);font-size:16px;font-weight:500}.expense-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 10px}.expense-badge.fixed{background:#d4edda;color:#155724}.expense-badge.variable{background:#fff3cd;color:#856404}.expense-item-right{align-items:center;display:flex;gap:15px}.expense-amount{color:#ff3b30;font-size:18px;font-weight:600}.expand-icon{color:#666;color:var(--text-secondary,#666);font-size:12px;transition:transform .3s ease}.expand-icon.expanded{transform:rotate(180deg)}.expense-item-details{background:#fff;border-top:1px solid #e5e5e5;border-top:1px solid var(--border-color,#e5e5e5);padding:15px}.detail-row{display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.detail-label{color:#666;color:var(--text-secondary,#666)}.detail-value{color:#333;color:var(--text-primary,#333);font-weight:500}.info-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.info-card .card-header h3{color:#fff}.info-content{font-size:14px;line-height:1.8}.info-content p{margin:10px 0}.info-content ul{margin:10px 0;padding-left:20px}.info-content li{margin:5px 0}.empty-state{padding:60px 20px;text-align:center}.empty-icon{font-size:64px;margin-bottom:20px}.empty-state p{color:#666;color:var(--text-secondary,#666);font-size:16px;margin:10px 0}.empty-hint{color:#999;color:var(--text-tertiary,#999);font-size:14px}@media (max-width:768px){.cashflow-prediction-container{padding:15px}.page-header h2{font-size:24px}.tabs{flex-wrap:nowrap;overflow-x:auto}.tab{font-size:14px;padding:10px 16px;white-space:nowrap}.overview-cards{grid-template-columns:1fr}.overview-card{padding:15px}.overview-icon{font-size:32px}.overview-value{font-size:20px}.analysis-grid,.month-selector{grid-template-columns:repeat(2,1fr)}.chart-container{overflow-x:auto}.predictions-table{font-size:12px}.predictions-table td,.predictions-table th{padding:8px}.card{padding:15px}.expense-summary{grid-template-columns:1fr}}@media (max-width:480px){.analysis-grid{grid-template-columns:1fr}.overview-value{font-size:18px}.expense-amount{font-size:16px}}.card,.expense-item,.overview-card,.risk-item,.suggestion-item{animation:fadeIn .5s ease-out}@media print{.month-selector,.tabs{display:none}.card{border:1px solid #ddd;box-shadow:none;page-break-inside:avoid}}.loading-spinner-container{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:40px}.loading-spinner-container.small{padding:20px}.loading-spinner-container.large{min-height:300px;padding:60px}.loading-spinner{height:60px;position:relative;width:60px}.loading-spinner-container.small .loading-spinner{height:40px;width:40px}.loading-spinner-container.large .loading-spinner{height:80px;width:80px}.spinner-ring{animation:spinnerRotate 1.2s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top-color:#007aff;height:100%;position:absolute;width:100%}.spinner-ring:first-child{animation-delay:-.45s;border-top-color:#007aff}.spinner-ring:nth-child(2){animation-delay:-.3s;border-top-color:#34c759}.spinner-ring:nth-child(3){animation-delay:-.15s;border-top-color:#ff9500}@keyframes spinnerRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-text{animation:textPulse 1.5s ease-in-out infinite;color:#86868b;font-size:15px;font-weight:500;margin:0;text-align:center}@keyframes textPulse{0%,to{opacity:1}50%{opacity:.6}}.inline-loading{align-items:center;display:inline-flex;gap:8px}.inline-loading .loading-spinner{height:16px;width:16px}.inline-loading .spinner-ring{border-width:2px}.theme-switch{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:30px;gap:8px;padding:6px}.theme-btn,.theme-switch{align-items:center;display:flex}.theme-btn{background:#ffffff26;border:none;border-radius:24px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;gap:6px;padding:8px 14px;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.theme-btn:hover{background:#ffffff40;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.theme-btn.active{background:#fff;box-shadow:0 4px 15px #00000040;color:#007aff;transform:scale(1.05)}.theme-btn.horseyear.active{animation:festive 2s ease-in-out infinite;background:linear-gradient(135deg,gold,#ffc107);color:#d32f2f;font-weight:700}.theme-icon{align-items:center;display:inline-flex;font-size:18px;line-height:1}.theme-name{font-size:13px;font-weight:600}@keyframes festive{0%,to{box-shadow:0 4px 15px #ffd70066}50%{box-shadow:0 6px 25px #ffd70099}}.theme-btn.horseyear:hover{background:linear-gradient(135deg,#ffe57f,#ffd54f);box-shadow:0 4px 20px #ffd70066}.theme-btn.horseyear:hover .theme-icon{animation:bounce .6s ease-in-out}@media (max-width:768px){.theme-switch{gap:6px;padding:4px}.theme-btn{gap:4px;padding:6px 12px}.theme-icon{font-size:16px}.theme-name{font-size:12px}}@media (max-width:480px){.theme-name{display:none}.theme-btn{height:40px;justify-content:center;padding:8px;width:40px}.theme-icon{margin:0}}.toast-container{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:20px;top:80px;z-index:10000}.toast{align-items:center;animation:slideIn .3s cubic-bezier(.4,0,.2,1);background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 8px 32px #00000026,0 2px 8px #0000001a;display:flex;gap:12px;max-width:500px;min-width:300px;padding:16px 20px;pointer-events:auto}.toast-success{background:linear-gradient(135deg,#f0fff4,#fff);border-left-color:#34c759}.toast-error{background:linear-gradient(135deg,#fff5f5,#fff);border-left-color:#ff3b30}.toast-warning{background:linear-gradient(135deg,#fffbf0,#fff);border-left-color:#ff9500}.toast-info{background:linear-gradient(135deg,#f0f9ff,#fff);border-left-color:#007aff}.toast-icon{flex-shrink:0;font-size:20px}.toast-message{color:#1d1d1f;flex:1 1;font-size:15px;font-weight:500;line-height:1.4}.toast-close{align-items:center;background:#0000;border:none;border-radius:50%;color:#86868b;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;height:24px;justify-content:center;padding:0;transition:all .2s;width:24px}.toast-close:hover{background:#0000000d;color:#1d1d1f}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.toast-container{align-items:stretch;left:12px;right:12px;top:70px}.toast{font-size:14px;max-width:none;min-width:auto;padding:14px 16px}.toast-icon{font-size:18px}.toast-message{font-size:14px}}.confirm-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10001}.confirm-dialog{animation:scaleIn .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:32px;text-align:center;width:100%}.confirm-icon{align-items:center;border-radius:50%;display:flex;font-size:56px;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.confirm-icon-warning{background:linear-gradient(135deg,#fff9e6,#ffe5b4)}.confirm-icon-danger{background:linear-gradient(135deg,#ffe5e5,#fcc)}.confirm-icon-info{background:linear-gradient(135deg,#e6f3ff,#cce5ff)}.confirm-title{color:#1d1d1f;font-size:22px;font-weight:600;letter-spacing:-.5px;margin-bottom:12px}.confirm-message{color:#86868b;font-size:15px;line-height:1.6;margin-bottom:28px}.confirm-actions{display:flex;gap:12px}.confirm-btn{border:none;border-radius:12px;cursor:pointer;flex:1 1;font-family:inherit;font-size:16px;font-weight:500;padding:14px 24px;transition:all .2s}.confirm-btn-cancel{background:#f5f5f7;color:#1d1d1f}.confirm-btn-cancel:hover{background:#e5e5e7}.confirm-btn-warning{background:linear-gradient(135deg,#ff9500,#ffb340);box-shadow:0 4px 12px #ff95004d;color:#fff}.confirm-btn-warning:hover{box-shadow:0 6px 16px #ff950066;transform:translateY(-2px)}.confirm-btn-danger{background:linear-gradient(135deg,#ff3b30,#ff6659);box-shadow:0 4px 12px #ff3b304d;color:#fff}.confirm-btn-danger:hover{box-shadow:0 6px 16px #ff3b3066;transform:translateY(-2px)}.confirm-btn-info{background:linear-gradient(135deg,#007aff,#3395ff);box-shadow:0 4px 12px #007aff4d;color:#fff}.confirm-btn-info:hover{box-shadow:0 6px 16px #007aff66;transform:translateY(-2px)}.confirm-btn:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:768px){.confirm-overlay{padding:16px}.confirm-dialog{border-radius:16px;padding:24px 20px}.confirm-icon{font-size:48px;height:70px;margin-bottom:16px;width:70px}.confirm-title{font-size:20px;margin-bottom:10px}.confirm-message{font-size:14px;margin-bottom:24px}.confirm-actions{flex-direction:column-reverse;gap:10px}.confirm-btn{font-size:15px;padding:12px 20px;width:100%}}.back-to-top{align-items:center;background:linear-gradient(135deg,#007aff,#3395ff);border:none;border-radius:50%;bottom:100px;box-shadow:0 4px 16px #007aff4d;color:#fff;cursor:pointer;display:flex;font-size:24px;height:48px;justify-content:center;opacity:0;position:fixed;right:24px;transform:translateY(20px) scale(.8);transition:all .3s cubic-bezier(.4,0,.2,1);visibility:hidden;width:48px;z-index:998}.back-to-top.visible{opacity:1;transform:translateY(0) scale(1);visibility:visible}.back-to-top:hover{box-shadow:0 6px 24px #007aff66;transform:translateY(-4px) scale(1.05)}.back-to-top:active{transform:translateY(-2px) scale(1)}.back-to-top-icon{align-items:center;display:flex;font-weight:600;justify-content:center}@media (max-width:768px){.back-to-top{bottom:80px;bottom:calc(80px + env(safe-area-inset-bottom, 0px));font-size:20px;height:44px;right:16px;width:44px}}
/*# sourceMappingURL=main.b77aa087.css.map*/