.stat-card{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:center}.stat-icon{font-size:24px;margin-bottom:8px}.stat-value-wrapper{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:24px;font-weight:700;color:var(--tg-theme-button-color)}.stat-value.trend-up:before{content:"↑ ";color:#e53935}.stat-value.trend-up{color:#e53935}.stat-value.trend-down:before{content:"↓ ";color:#43a047}.stat-value.trend-down{color:#43a047}.stat-subvalue{font-size:12px;color:var(--tg-theme-hint-color)}.stat-label{font-size:12px;color:var(--tg-theme-hint-color);margin-top:4px}.subscription-card{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);padding:var(--spacing-md);border-left:4px solid var(--tg-theme-button-color);cursor:pointer;transition:transform .1s,opacity .2s}.subscription-card:active{transform:scale(.98);opacity:.9}.subscription-card.paused{opacity:.7;border-left-color:var(--tg-theme-hint-color)}.subscription-card.archived{opacity:.55;border-left-color:var(--tg-theme-hint-color);border-left-style:dashed}.subscription-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.subscription-title{font-size:16px;font-weight:600;flex:1}.badge{font-size:12px;padding:2px 6px;border-radius:4px;background:var(--tg-theme-bg-color)}.badge.trial{background:#e8f5e9;color:#2e7d32}.subscription-details{display:flex;flex-direction:column;gap:4px}.subscription-price{font-size:18px;font-weight:700;color:var(--tg-theme-button-color)}.subscription-period{font-size:12px;font-weight:400;color:var(--tg-theme-hint-color);margin-left:4px}.subscription-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--tg-theme-hint-color)}.subscription-category{background:var(--tg-theme-bg-color);padding:2px 8px;border-radius:4px}.subscription-next.soon{color:#e53935;font-weight:500}.home-page{padding-bottom:80px}.home-header{margin-bottom:var(--spacing-lg)}.home-header h1{font-size:28px;font-weight:700;margin-bottom:4px}.stats-section,.section{margin-bottom:var(--spacing-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.section-title{font-size:18px;font-weight:600}.link-button{background:none;border:none;color:var(--tg-theme-link-color);font-size:14px;cursor:pointer}.subscription-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.fab{position:fixed;bottom:90px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color);border:none;font-size:24px;cursor:pointer;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;transition:transform .2s;z-index:50}.fab:active{transform:scale(.95)}.subscriptions-page{padding-bottom:80px}.page-header{margin-bottom:var(--spacing-md)}.search-input{margin-top:var(--spacing-md)}.filters{margin-bottom:var(--spacing-md)}.filter-chips{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}.filter-chips::-webkit-scrollbar{height:4px}.filter-chips::-webkit-scrollbar-thumb{background:var(--tg-theme-hint-color);border-radius:4px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--tg-theme-hint-color)}.checkbox-label input{width:18px;height:18px}.fab{position:fixed;bottom:90px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color);border:none;font-size:24px;cursor:pointer;box-shadow:0 4px 12px #00000026;z-index:50}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--tg-theme-bg-color);border-radius:var(--radius-md);width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--tg-theme-secondary-bg-color)}.modal-title{font-size:18px;font-weight:600;margin:0}.modal-close{background:none;border:none;font-size:24px;color:var(--tg-theme-hint-color);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.modal-close:hover{background:var(--tg-theme-secondary-bg-color)}.modal-body{flex:1;overflow-y:auto;padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);border-top:1px solid var(--tg-theme-secondary-bg-color)}.price-history-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.price-history-item{padding:var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm)}.price-change{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.old-price{color:var(--tg-theme-hint-color);text-decoration:line-through;font-size:14px}.arrow{color:var(--tg-theme-hint-color);font-size:14px}.new-price{font-weight:600;font-size:16px}.new-price.increase{color:#e53935}.new-price.decrease{color:#43a047}.price-change-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px}.change-percent{font-weight:600;padding:2px 8px;border-radius:4px}.change-percent.increase{background:#ffebee;color:#e53935}.change-percent.decrease{background:#e8f5e9;color:#43a047}.change-date{color:var(--tg-theme-hint-color)}.change-notes{margin-top:var(--spacing-sm);font-size:13px;color:var(--tg-theme-text-color);padding:var(--spacing-xs);background:var(--tg-theme-bg-color);border-radius:4px}.price-comparison{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm)}.price-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.price-label{font-size:12px;color:var(--tg-theme-hint-color);text-transform:uppercase;font-weight:600}.price-value{font-size:24px;font-weight:700}.price-value.current{color:var(--tg-theme-text-color)}.price-value.new.increase{color:#e53935}.price-value.new.decrease{color:#43a047}.arrow-down{font-size:20px;color:var(--tg-theme-hint-color)}.change-summary{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:14px;font-weight:500;text-align:center;margin-bottom:var(--spacing-md);display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.change-summary.increase{background:#ffebee;color:#e53935}.change-summary.decrease{background:#e8f5e9;color:#43a047}.button-row{display:flex;gap:var(--spacing-sm)}.button-row .button{flex:1}.payment-info{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.payment-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0}.payment-row:not(:last-child){border-bottom:1px solid var(--tg-theme-bg-color);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.payment-label{color:var(--tg-theme-hint-color);font-size:14px}.payment-value{font-weight:600;font-size:16px}.price-check{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:500;margin-bottom:var(--spacing-xs)}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.animate-in{animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.price-diff{display:block;margin-top:var(--spacing-xs);font-size:12px;font-weight:600}.price-diff.increase{color:#e53935}.price-diff.decrease{color:#43a047}@media (prefers-color-scheme: dark){.change-percent.increase{background:#e5393533;color:#ff5252}.change-percent.decrease{background:#43a04733;color:#69f0ae}.change-summary.increase{background:#e5393533;color:#ff5252}.change-summary.decrease{background:#43a04733;color:#69f0ae}}.last-price-change{margin-bottom:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:4px solid}.last-price-change.increase{background:#ffebee;border-left-color:#e53935}.last-price-change.decrease{background:#e8f5e9;border-left-color:#43a047}.change-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.change-icon{font-size:16px}.change-title{font-size:14px;font-weight:600}.last-price-change.increase .change-title{color:#c62828}.last-price-change.decrease .change-title{color:#2e7d32}.change-details{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-xs)}.change-amounts{display:flex;align-items:center;gap:var(--spacing-xs);font-size:13px}.old-amount{color:#757575;text-decoration:line-through}.arrow{color:#9e9e9e}.new-amount{font-weight:600}.last-price-change.increase .new-amount{color:#c62828}.last-price-change.decrease .new-amount{color:#2e7d32}.change-badge{padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600}.last-price-change.increase .change-badge{background:#c62828;color:#fff}.last-price-change.decrease .change-badge{background:#2e7d32;color:#fff}.change-date{font-size:12px;color:#757575}@media (prefers-color-scheme: dark){.last-price-change.increase{background:#e5393526;border-left-color:#ff5252}.last-price-change.decrease{background:#43a04726;border-left-color:#69f0ae}.last-price-change.increase .change-title{color:#ff5252}.last-price-change.decrease .change-title{color:#69f0ae}.last-price-change.increase .new-amount{color:#ff5252}.last-price-change.decrease .new-amount{color:#69f0ae}.last-price-change.increase .change-badge{background:#ff5252}.last-price-change.decrease .change-badge{background:#69f0ae;color:#1b5e20}}.detail-page{padding-bottom:100px}.detail-header{background:var(--tg-theme-secondary-bg-color);margin:calc(var(--spacing-md) * -1);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);border-top:4px solid var(--tg-theme-button-color)}.detail-badges{display:flex;gap:8px;margin-bottom:12px}.detail-badges .badge{padding:4px 10px;font-size:12px;border-radius:6px;background:var(--tg-theme-bg-color)}.detail-badges .badge.trial{background:#e8f5e9;color:#2e7d32}.detail-badges .badge.archived{background:#fff3e0;color:#e65100}.detail-title{font-size:24px;font-weight:700;margin-bottom:8px}.detail-price{font-size:32px;font-weight:700;color:var(--tg-theme-button-color)}.detail-period{font-size:16px;font-weight:400;color:var(--tg-theme-hint-color)}.annual-info{margin-top:8px}.annual-cost{font-size:14px;color:var(--tg-theme-hint-color)}.annual-tip{font-size:12px;color:var(--tg-theme-hint-color);margin-top:4px}.price-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.link-button{background:none;border:none;color:var(--tg-theme-link-color);font-size:14px;font-weight:500;cursor:pointer;padding:0;text-decoration:none;transition:opacity .2s}.link-button:active{opacity:.7}.detail-section{margin-bottom:var(--spacing-lg)}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--tg-theme-secondary-bg-color)}.detail-label{color:var(--tg-theme-hint-color);font-size:14px}.detail-value{font-weight:500}.detail-value.soon{color:#e53935}.detail-link{color:var(--tg-theme-link-color);text-decoration:none}.detail-notes{margin-top:var(--spacing-md)}.detail-notes p{margin-top:8px;color:var(--tg-theme-text-color);line-height:1.5}.detail-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.action-row{display:flex;gap:var(--spacing-sm)}.action-row .button{flex:1}.button-danger{background:#ffebee;color:#c62828}.add-page{padding-bottom:100px}.mode-tabs{display:flex;gap:8px;margin-bottom:var(--spacing-lg)}.tab{flex:1;padding:12px;background:var(--tg-theme-secondary-bg-color);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.tab.active{background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color)}.add-form{display:flex;flex-direction:column}.input-row{display:flex;gap:var(--spacing-md)}.input-row .input-group,.flex-1{flex:1}.textarea{min-height:80px;resize:vertical}.templates-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.template-category-title{font-size:14px;font-weight:600;color:var(--tg-theme-hint-color);margin-bottom:var(--spacing-sm)}.template-items{display:flex;flex-direction:column;gap:var(--spacing-xs)}.template-item{display:flex;justify-content:space-between;align-items:center;padding:12px var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .2s}.template-item:active{opacity:.8}.template-title{font-weight:500}.template-price{color:var(--tg-theme-button-color);font-weight:600}.trials-page .page-header{margin-bottom:var(--spacing-lg)}.trials-page .subscription-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.period-filter{display:flex;gap:8px;justify-content:center;margin-bottom:16px}.period-button{padding:8px 16px;border:1px solid var(--tg-theme-hint-color, #999);background:var(--tg-theme-bg-color, #fff);color:var(--tg-theme-text-color, #000);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.period-button:hover{opacity:.8}.period-button.active{background:var(--tg-theme-button-color, #2196F3);color:var(--tg-theme-button-text-color, #fff);border-color:var(--tg-theme-button-color, #2196F3)}.custom-tooltip{background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #999);border-radius:8px;padding:12px;box-shadow:0 2px 8px #00000026}.tooltip-label{margin:0 0 4px;font-size:12px;color:var(--tg-theme-hint-color, #999);font-weight:500}.tooltip-value{margin:0;font-size:16px;color:var(--tg-theme-text-color, #000);font-weight:600}.tooltip-percentage{margin:4px 0 0;font-size:12px;color:var(--tg-theme-hint-color, #999)}.tooltip-category-item{margin:2px 0;font-size:13px;font-weight:500}.tooltip-total{margin:6px 0 0;padding-top:4px;border-top:1px solid var(--tg-theme-hint-color, #ccc);font-size:14px;font-weight:600;color:var(--tg-theme-text-color, #000)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--tg-theme-bg-color, #fff);border-radius:16px;max-width:500px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--tg-theme-hint-color, #ddd)}.modal-header h2{margin:0;font-size:20px;color:var(--tg-theme-text-color, #000)}.close-button{background:none;border:none;font-size:24px;color:var(--tg-theme-hint-color, #999);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.close-button:hover{background:var(--tg-theme-secondary-bg-color, #f0f0f0)}.modal-body{padding:20px;overflow-y:auto}.category-total{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:12px;margin-bottom:20px}.category-total .label{font-size:14px;color:var(--tg-theme-hint-color, #999);font-weight:500}.category-total .value{font-size:20px;color:var(--tg-theme-text-color, #000);font-weight:600}.subscriptions-list{display:flex;flex-direction:column;gap:12px}.subscription-item{padding:12px;border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:12px;transition:all .2s ease}.subscription-item.paused{opacity:.6}.subscription-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.subscription-title{font-size:16px;font-weight:600;color:var(--tg-theme-text-color, #000)}.paused-badge{font-size:11px;padding:4px 8px;background:var(--tg-theme-hint-color, #999);color:#fff;border-radius:6px;font-weight:500}.subscription-details{display:flex;justify-content:space-between;align-items:center}.billing-period{font-size:12px;color:var(--tg-theme-hint-color, #999)}.monthly-cost{font-size:14px;color:var(--tg-theme-text-color, #000);font-weight:500}.trends-chart{width:100%}.trends-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.trends-info{display:flex;flex-direction:column;gap:4px}.trends-label{font-size:12px;color:var(--tg-theme-hint-color, #999);font-weight:500}.trends-value{font-size:18px;color:var(--tg-theme-text-color, #000);font-weight:600}.trends-badge{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:4px}.trends-badge.up{background:#e91e631a;color:#e91e63}.trends-badge.down{background:#4caf501a;color:#4caf50}.trends-badge.stable{background:var(--tg-theme-secondary-bg-color, #f5f5f5);color:var(--tg-theme-hint-color, #999)}.trends-legend{display:flex;justify-content:center;gap:24px;margin-top:16px}.trends-legend .legend-item{display:flex;align-items:center;gap:8px}.legend-line{width:24px;height:2px;display:inline-block}.legend-line.actual{background:var(--tg-theme-button-color, #2196F3)}.legend-line.forecast{background:var(--tg-theme-hint-color, #999);background-image:repeating-linear-gradient(to right,var(--tg-theme-hint-color, #999) 0,var(--tg-theme-hint-color, #999) 4px,transparent 4px,transparent 8px)}.legend-text{font-size:12px;color:var(--tg-theme-hint-color, #999)}.stacked-bar-chart,.top-subscriptions-chart{width:100%}.savings-card{margin-top:16px}.savings-header{display:flex;align-items:center;gap:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.savings-info{flex:1}.section-title{margin:0 0 4px;font-size:16px;color:var(--tg-theme-text-color, #000)}.savings-description{margin:0;font-size:12px;color:var(--tg-theme-hint-color, #999)}.savings-amount{font-size:24px;font-weight:700;color:#4caf50}.expand-button{background:none;border:none;color:var(--tg-theme-hint-color, #999);cursor:pointer;font-size:14px;padding:8px}.savings-details{margin-top:16px;border-top:1px solid var(--tg-theme-hint-color, #ddd);padding-top:16px;display:flex;flex-direction:column;gap:12px}.savings-item{padding:12px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:8px}.savings-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.savings-item-title{font-size:14px;font-weight:600;color:var(--tg-theme-text-color, #000)}.savings-item-saved{font-size:16px;font-weight:700;color:#4caf50}.savings-item-details{display:flex;gap:12px;font-size:12px;color:var(--tg-theme-hint-color, #999)}.savings-item-monthly,.savings-item-months{font-size:12px}.react-calendar-heatmap text{font-size:10px;fill:#aaa}.react-calendar-heatmap .react-calendar-heatmap-small-text{font-size:5px}.react-calendar-heatmap rect:hover{stroke:#555;stroke-width:1px}.react-calendar-heatmap .color-empty{fill:#eee}.react-calendar-heatmap .color-filled{fill:#8cc665}.react-calendar-heatmap .color-github-0{fill:#eee}.react-calendar-heatmap .color-github-1{fill:#d6e685}.react-calendar-heatmap .color-github-2{fill:#8cc665}.react-calendar-heatmap .color-github-3{fill:#44a340}.react-calendar-heatmap .color-github-4{fill:#1e6823}.react-calendar-heatmap .color-gitlab-0{fill:#ededed}.react-calendar-heatmap .color-gitlab-1{fill:#acd5f2}.react-calendar-heatmap .color-gitlab-2{fill:#7fa8d1}.react-calendar-heatmap .color-gitlab-3{fill:#49729b}.react-calendar-heatmap .color-gitlab-4{fill:#254e77}.payment-heatmap{width:100%}.heatmap-header h3{margin:0 0 16px;font-size:16px;color:var(--tg-theme-text-color, #000)}.heatmap-container{overflow-x:auto;padding:8px 0}.react-calendar-heatmap{width:100%;min-width:600px}.react-calendar-heatmap text{font-size:10px;fill:var(--tg-theme-hint-color, #999)}.react-calendar-heatmap .color-empty{fill:var(--tg-theme-secondary-bg-color, #eee)}.react-calendar-heatmap .color-scale-1{fill:#2196f34d}.react-calendar-heatmap .color-scale-2{fill:#2196f380}.react-calendar-heatmap .color-scale-3{fill:#2196f3b3}.react-calendar-heatmap .color-scale-4{fill:#2196f3}.react-calendar-heatmap rect:hover{stroke:var(--tg-theme-text-color, #000);stroke-width:1px}.heatmap-legend{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.legend-label{font-size:12px;color:var(--tg-theme-hint-color, #999)}.legend-scale{display:flex;gap:4px}.legend-box{width:12px;height:12px;border-radius:2px}.legend-box.color-empty{background:var(--tg-theme-secondary-bg-color, #eee)}.legend-box.color-scale-1{background:#2196f34d}.legend-box.color-scale-2{background:#2196f380}.legend-box.color-scale-3{background:#2196f3b3}.legend-box.color-scale-4{background:#2196f3}[data-tip]{position:relative;cursor:pointer}@media (max-width: 768px){.heatmap-container{overflow-x:scroll;-webkit-overflow-scrolling:touch}}.upcoming-timeline{display:flex;flex-direction:column;gap:0}.upcoming-timeline-empty{text-align:center;padding:32px;color:var(--tg-theme-hint-color, #999)}.timeline-day{display:flex;gap:16px;position:relative}.timeline-connector{display:flex;flex-direction:column;align-items:center;position:relative;padding-top:8px}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--tg-theme-button-color, #2196F3);border:2px solid var(--tg-theme-bg-color, #fff);z-index:1;flex-shrink:0}.timeline-line{position:absolute;top:20px;width:2px;height:calc(100% + 16px);background:var(--tg-theme-hint-color, #ddd);opacity:.3}.timeline-content{flex:1;padding-bottom:16px}.timeline-header{display:flex;align-items:center;gap:12px;padding:12px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:12px;cursor:pointer;transition:all .2s ease}.timeline-header:hover{background:var(--tg-theme-hint-color, #e0e0e0)}.timeline-date-info{display:flex;flex-direction:column;gap:4px;min-width:100px}.timeline-date{font-size:14px;font-weight:600;color:var(--tg-theme-text-color, #000);text-transform:capitalize}.timeline-days-until{font-size:11px;color:var(--tg-theme-hint-color, #999)}.timeline-summary{display:flex;flex-direction:column;gap:4px;flex:1;align-items:flex-end}.timeline-count{font-size:12px;color:var(--tg-theme-hint-color, #999)}.timeline-total{font-size:16px;font-weight:700;color:var(--tg-theme-text-color, #000)}.timeline-expand-btn{background:none;border:none;color:var(--tg-theme-hint-color, #999);cursor:pointer;font-size:12px;padding:4px;flex-shrink:0}.timeline-payments{margin-top:12px;display:flex;flex-direction:column;gap:8px;padding:0 12px}.timeline-payment-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px}.payment-title{font-size:14px;color:var(--tg-theme-text-color, #000)}.payment-amount{font-size:14px;font-weight:600;color:var(--tg-theme-button-color, #2196F3)}.payment-history{display:flex;flex-direction:column;gap:0}.payment-history-empty{text-align:center;padding:32px;color:var(--tg-theme-hint-color, #999)}.payment-history-day{display:flex;gap:16px;position:relative}.payment-history-connector{display:flex;flex-direction:column;align-items:center;position:relative;padding-top:8px}.payment-history-dot{width:12px;height:12px;border-radius:50%;background:var(--tg-theme-button-color, #2196F3);border:2px solid var(--tg-theme-bg-color, #fff);z-index:1;flex-shrink:0}.payment-history-line{position:absolute;top:20px;width:2px;height:calc(100% + 16px);background:var(--tg-theme-hint-color, #ddd);opacity:.3}.payment-history-content{flex:1;padding-bottom:16px}.payment-history-header{display:flex;align-items:center;gap:12px;padding:12px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:12px;cursor:pointer;transition:all .2s ease}.payment-history-header:hover{background:var(--tg-theme-hint-color, #e0e0e0)}.payment-history-date-info{display:flex;flex-direction:column;gap:4px;min-width:100px}.payment-history-date{font-size:14px;font-weight:600;color:var(--tg-theme-text-color, #000);text-transform:capitalize}.payment-history-days-ago{font-size:11px;color:var(--tg-theme-hint-color, #999)}.payment-history-summary{display:flex;flex-direction:column;gap:4px;flex:1;align-items:flex-end}.payment-history-count{font-size:12px;color:var(--tg-theme-hint-color, #999)}.payment-history-total{font-size:16px;font-weight:700;color:var(--tg-theme-text-color, #000)}.payment-history-expand-btn{background:none;border:none;color:var(--tg-theme-hint-color, #999);cursor:pointer;font-size:12px;padding:4px;flex-shrink:0}.payment-history-payments{margin-top:12px;display:flex;flex-direction:column;gap:8px;padding:0 12px}.payment-history-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--tg-theme-bg-color, #fff);border:1px solid var(--tg-theme-hint-color, #ddd);border-radius:8px}.payment-history-item-title{font-size:14px;color:var(--tg-theme-text-color, #000)}.payment-history-item-amount{font-size:14px;font-weight:600;color:var(--tg-theme-button-color, #2196F3)}.payment-history-load-more{display:block;width:100%;padding:12px;margin-top:8px;background:var(--tg-theme-secondary-bg-color, #f5f5f5);border:none;border-radius:12px;color:var(--tg-theme-button-color, #2196F3);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease}.payment-history-load-more:hover{background:var(--tg-theme-hint-color, #e0e0e0)}.payment-history-load-more:disabled{opacity:.5;cursor:not-allowed}.payment-history-spent{text-align:center;padding:12px;margin-top:8px;font-size:13px;color:var(--tg-theme-hint-color, #999)}.payment-history-spent strong{color:var(--tg-theme-text-color, #000)}.share-modal .modal-body{padding:20px}.share-preview{background:var(--tg-theme-secondary-bg-color, #f5f5f5);border-radius:12px;padding:20px;margin-bottom:20px}.share-preview h3{margin:0 0 16px;font-size:16px;color:var(--tg-theme-text-color, #000)}.share-stats{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.share-stat-item{display:flex;justify-content:space-between;align-items:center}.share-label{font-size:14px;color:var(--tg-theme-hint-color, #999)}.share-value{font-size:16px;font-weight:600;color:var(--tg-theme-text-color, #000)}.share-footer{margin:16px 0 0;font-size:12px;color:var(--tg-theme-hint-color, #999);text-align:center;border-top:1px solid var(--tg-theme-hint-color, #ddd);padding-top:12px}.share-button{width:100%;padding:14px;background:var(--tg-theme-button-color, #2196F3);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.share-button:hover{opacity:.9;transform:translateY(-1px)}.share-button:active{transform:translateY(0)}.statistics-page{padding-bottom:80px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.share-header-button{background:var(--tg-theme-button-color, #2196F3);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:8px;padding:8px 12px;font-size:18px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.share-header-button:hover{transform:scale(1.05);box-shadow:0 4px 8px #00000026}.share-header-button:active{transform:scale(.95)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.forecast-section{text-align:center;margin-bottom:var(--spacing-lg)}.forecast-value{font-size:32px;font-weight:700;color:var(--tg-theme-button-color);margin-top:var(--spacing-md)}.chart-section{margin-bottom:var(--spacing-lg)}.section-title{font-size:16px;font-weight:600;margin-bottom:var(--spacing-md)}.chart-container{margin:var(--spacing-md) 0}.chart-legend{display:flex;flex-direction:column;gap:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px}.legend-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.legend-label{flex:1;color:var(--tg-theme-hint-color)}.legend-value{font-weight:500}.insights-section{margin-bottom:var(--spacing-lg)}.insights-list{display:flex;flex-direction:column;gap:8px}.insight-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4}.insight-icon{flex-shrink:0}.insight-text{color:var(--tg-theme-text-color)}.settings-page{padding-bottom:80px}.settings-section{margin-bottom:var(--spacing-lg)}.settings-section-title{font-size:14px;font-weight:600;color:var(--tg-theme-hint-color);text-transform:uppercase;margin-bottom:var(--spacing-md)}.settings-item{display:flex;justify-content:space-between;align-items:center;padding:14px var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs)}.settings-item:last-child{margin-bottom:0}.settings-item-info{display:flex;flex-direction:column;gap:2px}.settings-item-label{font-weight:500}.settings-item-hint{font-size:12px;color:var(--tg-theme-hint-color)}.settings-item-value{color:var(--tg-theme-hint-color)}.settings-select{padding:8px 12px;border:none;border-radius:var(--radius-sm);background:var(--tg-theme-bg-color);font-size:14px;color:var(--tg-theme-text-color)}.toggle{position:relative;display:inline-block;width:50px;height:28px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--tg-theme-hint-color);border-radius:28px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s}.toggle input:checked+.toggle-slider{background-color:var(--tg-theme-button-color)}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.category-list{margin-bottom:var(--spacing-md)}.category-item{display:flex;justify-content:space-between;align-items:center;padding:12px var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs)}.category-item:last-child{margin-bottom:0}.category-item-name{font-weight:500}.category-add-form{display:flex;gap:var(--spacing-sm)}.category-add-form .input{flex:1}.button-sm{padding:6px 12px;font-size:14px;min-width:auto}.button-danger{background:var(--color-error);color:#fff}.button-danger:hover:not(:disabled){background:#d32f2f}.button-danger:disabled{opacity:.5;cursor:not-allowed}.navigation{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--tg-theme-bg-color);border-top:1px solid var(--tg-theme-secondary-bg-color);padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:none;border:none;cursor:pointer;color:var(--tg-theme-hint-color);transition:color .2s}.nav-item.active{color:var(--tg-theme-button-color)}.nav-icon{font-size:20px}.nav-label{font-size:10px;font-weight:500}.toast-container{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #00000026;animation:toast-slide-in .3s ease-out;cursor:pointer;pointer-events:auto}.toast-icon{font-size:16px;flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.toast-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.toast-warning{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.toast-info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme: dark){.toast-success{background:#1e3a1e;color:#8fd19e;border-color:#2d5a2d}.toast-error{background:#3a1e1e;color:#f19e9e;border-color:#5a2d2d}.toast-warning{background:#3a3a1e;color:#f1d19e;border-color:#5a5a2d}.toast-info{background:#1e2a3a;color:#9ed1f1;border-color:#2d3a5a}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--tg-theme-bg-color, #ffffff)}.error-boundary-content{text-align:center;max-width:300px}.error-boundary-icon{font-size:48px;margin-bottom:16px}.error-boundary-content h2{font-size:20px;font-weight:600;color:var(--tg-theme-text-color, #000000);margin-bottom:8px}.error-boundary-message{font-size:14px;color:var(--tg-theme-hint-color, #999999);margin-bottom:24px;line-height:1.5}.error-boundary-button{display:inline-block;padding:12px 24px;background:var(--tg-theme-button-color, #007aff);color:var(--tg-theme-button-text-color, #ffffff);border:none;border-radius:12px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .2s}.error-boundary-button:hover{opacity:.9}.error-boundary-button:active{opacity:.8}*{margin:0;padding:0;box-sizing:border-box}:root{--tg-theme-bg-color: #ffffff;--tg-theme-text-color: #000000;--tg-theme-hint-color: #999999;--tg-theme-link-color: #2481cc;--tg-theme-button-color: #2481cc;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #f0f0f0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--tg-theme-bg-color);color:var(--tg-theme-text-color);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;min-height:100vh;padding-bottom:70px}.main-content{flex:1;padding:var(--spacing-md)}.page{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-title{font-size:24px;font-weight:700;margin-bottom:var(--spacing-lg)}.page-subtitle{font-size:14px;color:var(--tg-theme-hint-color);margin-bottom:var(--spacing-md)}.card{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.card-title{font-size:16px;font-weight:600;margin-bottom:var(--spacing-sm)}.button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:14px;font-weight:500;border:none;cursor:pointer;transition:opacity .2s,transform .1s}.button:active{transform:scale(.98)}.button-primary{background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color)}.button-secondary{background:var(--tg-theme-secondary-bg-color);color:var(--tg-theme-text-color)}.button-full{width:100%}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--tg-theme-hint-color);border-radius:var(--radius-sm);font-size:16px;background:var(--tg-theme-bg-color);color:var(--tg-theme-text-color)}.input:focus{outline:none;border-color:var(--tg-theme-button-color)}.input-group{margin-bottom:var(--spacing-md)}.input-label{display:block;font-size:14px;font-weight:500;margin-bottom:var(--spacing-xs)}.input-hint{display:block;font-size:12px;color:var(--tg-theme-hint-color);margin-top:var(--spacing-xs)}.input-with-clear{position:relative;display:flex;align-items:center}.input-with-clear .input{flex:1;padding-right:36px}.input-clear-button{position:absolute;right:8px;background:none;border:none;font-size:16px;color:var(--tg-theme-hint-color);cursor:pointer;padding:4px;line-height:1}.list{list-style:none}.list-item{padding:var(--spacing-md);background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);cursor:pointer;transition:opacity .2s}.list-item:active{opacity:.8}.stat-card{text-align:center;padding:var(--spacing-md)}.stat-value{font-size:28px;font-weight:700;color:var(--tg-theme-button-color)}.stat-label{font-size:12px;color:var(--tg-theme-hint-color);margin-top:var(--spacing-xs)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--tg-theme-hint-color)}.empty-state-icon{font-size:48px;margin-bottom:var(--spacing-md)}.spinner{display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl)}.spinner:after{content:"";width:32px;height:32px;border:3px solid var(--tg-theme-secondary-bg-color);border-top-color:var(--tg-theme-button-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{height:8px;background:var(--tg-theme-secondary-bg-color);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--tg-theme-button-color);border-radius:4px;transition:width .3s ease}.progress-bar-fill.warning{background:#f5a623}.progress-bar-fill.danger{background:#e53935}.chip{display:inline-flex;align-items:center;padding:4px 10px;background:var(--tg-theme-secondary-bg-color);border-radius:16px;font-size:12px;margin-right:var(--spacing-xs)}.chip.active{background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;min-height:200px}.error-state p{color:var(--tg-theme-hint-color);margin-bottom:var(--spacing-md)}.button-danger{background:#e53935;color:#fff}.button-danger:disabled{opacity:.5}.button:disabled{opacity:.5;cursor:not-allowed}.text-center{text-align:center}.text-hint{color:var(--tg-theme-hint-color)}.text-small{font-size:12px}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.flex{display:flex}.flex-between{justify-content:space-between}.flex-center{justify-content:center;align-items:center}.gap-sm{gap:var(--spacing-sm)}@media (prefers-color-scheme: dark){:root{--tg-theme-bg-color: #1c1c1e;--tg-theme-text-color: #ffffff;--tg-theme-hint-color: #8e8e93;--tg-theme-link-color: #0a84ff;--tg-theme-button-color: #0a84ff;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #2c2c2e}}
