@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--tg-theme-bg-color:#fff;--tg-theme-text-color:#1a1a2e;--tg-theme-hint-color:#8e8ea0;--tg-theme-link-color:#3b82f6;--tg-theme-button-color:#3b82f6;--tg-theme-button-text-color:#fff;--tg-theme-secondary-bg-color:#f0f2f5;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--transition:.2s cubic-bezier(.4, 0, .2, 1);--color-success:#22c55e;--color-warning:#f59e0b;--color-danger:#ef4444;--color-info:#3b82f6;--color-accent:#8b5cf6;--color-surface:var(--tg-theme-secondary-bg-color,#ffffffb3);--color-border:#0000000f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--tg-theme-bg-color);color:var(--tg-theme-text-color);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.fade-in{animation:.3s ease-out fadeIn}.slide-up{animation:.35s ease-out slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.app-header{background:var(--tg-theme-bg-color);z-index:50;border-bottom:1px solid var(--color-border);padding:16px 20px 12px;position:sticky;top:0}.app-header h1{align-items:center;gap:8px;font-size:1.5rem;font-weight:700;display:flex}.header-summary{gap:12px;margin-top:8px;display:flex}.summary-badge{background:var(--tg-theme-secondary-bg-color);border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.summary-badge.active{color:var(--color-info);background:#3b82f61f}.summary-badge.overdue{color:var(--color-danger);background:#ef44441f}.tabs{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);gap:4px;margin:12px 16px 0;padding:4px;display:flex}.tab-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--tg-theme-hint-color);transition:var(--transition);background:0 0;border:none;flex:1;padding:8px 4px;font-family:inherit;font-size:.82rem;font-weight:500}.tab-btn.active{background:var(--tg-theme-bg-color);color:var(--tg-theme-text-color);box-shadow:var(--shadow-sm);font-weight:600}.reminder-list{flex-direction:column;gap:8px;padding:12px 16px 100px;display:flex}.reminder-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:var(--transition);cursor:pointer;padding:14px 16px;position:relative;overflow:hidden}.reminder-card:before{content:"";background:var(--color-info);width:4px;transition:var(--transition);border-radius:4px 0 0 4px;position:absolute;top:0;bottom:0;left:0}.reminder-card.recurring:before{background:var(--color-accent)}.reminder-card.overdue:before{background:var(--color-danger)}.reminder-card.completed{opacity:.6}.reminder-card.completed:before{background:var(--color-success)}.reminder-card:active{transform:scale(.98)}.card-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-text{word-break:break-word;flex:1;font-size:.95rem;font-weight:500}.card-status-icon{flex-shrink:0;font-size:1.1rem}.card-meta{color:var(--tg-theme-hint-color);flex-wrap:wrap;gap:8px;margin-top:8px;font-size:.78rem;display:flex}.card-meta-item{align-items:center;gap:4px;display:flex}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state .icon{opacity:.4;font-size:3rem}.empty-state .title{color:var(--tg-theme-hint-color);font-size:1rem;font-weight:600}.empty-state .subtitle{color:var(--tg-theme-hint-color);opacity:.7;font-size:.85rem}.fab{background:var(--tg-theme-button-color);width:48px;height:48px;color:var(--tg-theme-button-text-color);cursor:pointer;box-shadow:var(--shadow-lg);transition:var(--transition);z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:1.4rem;display:flex;position:fixed;bottom:24px;right:20px}.fab:active{transform:scale(.92)}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--tg-theme-bg-color);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:500px;max-height:92vh;padding:8px 20px 24px;animation:.3s ease-out slideUp;overflow-y:auto}.modal-handle{background:var(--color-border);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.modal-title{align-items:center;gap:8px;margin-bottom:20px;font-size:1.15rem;font-weight:700;display:flex}.form-group{margin-bottom:16px}.form-label{color:var(--tg-theme-hint-color);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.form-input,.form-textarea,.form-select{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--tg-theme-secondary-bg-color);width:100%;color:var(--tg-theme-text-color);transition:var(--transition);outline:none;padding:12px 14px;font-family:inherit;font-size:.95rem}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--tg-theme-button-color);box-shadow:0 0 0 3px #3b82f61f}.form-textarea{resize:vertical;min-height:80px}.datetime-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calendar-container{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);margin-top:6px;padding:12px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 4px;display:flex}.calendar-header .month-label{font-size:.95rem;font-weight:600}.calendar-nav{cursor:pointer;border-radius:var(--radius-sm);color:var(--tg-theme-text-color);transition:var(--transition);background:0 0;border:none;padding:4px 8px;font-size:1.2rem}.calendar-nav:active{background:var(--color-border)}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{color:var(--tg-theme-hint-color);text-transform:uppercase;padding:4px 0;font-size:.72rem;font-weight:600}.calendar-day{aspect-ratio:1;cursor:pointer;color:var(--tg-theme-text-color);transition:var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:.85rem;font-weight:500;display:flex}.calendar-day:hover{background:var(--color-border)}.calendar-day.today{color:var(--color-info);font-weight:700}.calendar-day.selected{background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color);font-weight:700}.calendar-day.other-month{opacity:.3}.calendar-day.past{opacity:.35}.time-picker{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:8px;margin-top:6px;padding:12px;display:flex}.time-scroll{flex-direction:column;align-items:center;gap:2px;display:flex}.time-scroll button{cursor:pointer;border-radius:var(--radius-sm);color:var(--tg-theme-hint-color);transition:var(--transition);background:0 0;border:none;padding:4px;font-family:inherit;font-size:1.2rem}.time-scroll button:active{background:var(--color-border)}.time-value{text-align:center;min-width:50px;color:var(--tg-theme-text-color);font-size:1.8rem;font-weight:700}.time-sep{color:var(--tg-theme-hint-color);font-size:1.8rem;font-weight:700}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-family:inherit;font-size:.9rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color)}.btn-secondary{background:var(--tg-theme-secondary-bg-color);color:var(--tg-theme-text-color)}.btn-danger{color:var(--color-danger);background:#ef44441f}.btn-success{color:var(--color-success);background:#22c55e1f}.btn-row{gap:8px;margin-top:16px;display:flex}.recurrence-options{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.recurrence-option{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--tg-theme-secondary-bg-color);cursor:pointer;text-align:center;transition:var(--transition);padding:10px 12px;font-family:inherit;font-size:.85rem;font-weight:500}.action-buttons{flex-direction:column;gap:8px;padding:16px 0;display:flex}.swipe-hint{color:var(--tg-theme-hint-color);opacity:.6;justify-content:center;align-items:center;gap:6px;margin:8px 16px;padding:8px;font-size:.78rem;display:flex}.loading-skeleton{background:linear-gradient(90deg, var(--tg-theme-secondary-bg-color) 25%, var(--color-border) 50%, var(--tg-theme-secondary-bg-color) 75%);border-radius:var(--radius-md);background-size:200% 100%;height:72px;animation:1.5s infinite shimmer}.spinner{border:3px solid var(--color-border);border-top-color:var(--tg-theme-button-color);border-radius:50%;width:24px;height:24px;margin:0 auto;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--tg-theme-text-color);color:var(--tg-theme-bg-color);box-shadow:var(--shadow-lg);z-index:200;white-space:nowrap;border-radius:24px;padding:10px 20px;font-size:.85rem;font-weight:500;animation:.3s ease-out slideUp;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.confirm-overlay{z-index:150;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--tg-theme-bg-color);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:320px;padding:24px;animation:.3s ease-out slideUp}.confirm-dialog .icon{margin-bottom:12px;font-size:2.5rem}.confirm-dialog .title{margin-bottom:8px;font-size:1.05rem;font-weight:700}.confirm-dialog .message{color:var(--tg-theme-hint-color);margin-bottom:20px;font-size:.88rem}.toggle-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.toggle-label{font-size:.9rem;font-weight:500}.toggle{background:var(--color-border);cursor:pointer;width:48px;height:28px;transition:var(--transition);border:none;border-radius:14px;flex-shrink:0;position:relative}.toggle.active{background:var(--color-success)}.toggle:after{content:"";width:22px;height:22px;transition:var(--transition);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle.active:after{left:23px}.finance-dashboard{flex-direction:column;gap:16px;padding:16px 16px 100px;display:flex}.summary-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;padding:16px}.summary-card .label{color:var(--tg-theme-hint-color);margin-bottom:4px;font-size:.8rem}.summary-card .value{font-size:1.2rem;font-weight:700}.summary-card.income .value{color:var(--color-success)}.summary-card.expense .value{color:var(--color-danger)}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.chart-card h2{margin-bottom:12px;font-size:1rem;font-weight:600}.transaction-list{flex-direction:column;gap:8px;display:flex}.transaction-item{border:none;border-bottom:1px solid var(--color-border);background:0 0;border-radius:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.transaction-item:last-child{border-bottom:none}.transaction-item .info{flex-direction:column;display:flex}.transaction-item .title{font-size:.95rem;font-weight:600}.transaction-item .subtitle{color:var(--tg-theme-hint-color);font-size:.8rem}.transaction-item .amount{font-size:1rem;font-weight:700}.transaction-item.income .amount{color:var(--color-success)}.transaction-item.expense .amount{color:var(--color-danger)}.app-container{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:var(--tg-theme-bg-color);border-bottom:1px solid var(--color-border);z-index:40;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.top-bar .title{align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.menu-btn{cursor:pointer;color:var(--tg-theme-text-color);background:0 0;border:none;padding:4px;font-size:1.5rem}.title-area{pointer-events:auto;flex-direction:column;align-items:center;gap:3px;padding-bottom:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.workspace-selector{color:var(--tg-theme-hint-color);justify-content:center;align-items:center;font-size:.85rem;display:flex;position:relative}.workspace-selector span{margin-right:4px}.workspace-selector select{color:var(--tg-theme-text-color);font:inherit;cursor:pointer;text-align:center;text-overflow:ellipsis;appearance:none;background:0 0;border:none;width:auto;max-width:180px;padding-right:14px;font-weight:600}.sidebar-overlay{z-index:100;background:#00000080;animation:.2s ease-out fadeIn;position:fixed;inset:0}.sidebar{background:var(--tg-theme-bg-color);z-index:101;width:280px;box-shadow:var(--shadow-lg);flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px;display:flex}.sidebar-header h2{font-size:1.3rem;font-weight:700}.close-btn{cursor:pointer;color:var(--tg-theme-hint-color);background:0 0;border:none;font-size:1.2rem}.sidebar-nav{flex-direction:column;gap:4px;padding:12px;display:flex}.nav-item{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);align-items:center;gap:12px;padding:12px 16px;font-weight:500;display:flex}.nav-item:hover{background:var(--tg-theme-secondary-bg-color)}.nav-item.active{color:var(--color-info);background:#3b82f61a;font-weight:600}.nav-item .icon{font-size:1.2rem}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;width:100%;padding:10px 16px;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.btn-success{border-color:var(--color-success);color:var(--color-success);background:#22c55e1a}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--tg-theme-text-color)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:#ef44441a}.btn-row{gap:8px;width:100%;display:flex}.btn-row .btn{flex:1}.recurrence-options{gap:8px;width:100%;display:flex}.recurrence-option{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);flex:1;padding:10px;transition:all .2s}.recurrence-option.selected{border-color:var(--color-primary);color:var(--color-primary);background:#2481cc1a}@media (prefers-color-scheme:dark){:root{--color-border:#ffffff1f;--color-surface:#ffffff0d}.tabs{background:#ffffff0d!important}.tab-btn.active{color:var(--tg-theme-text-color,#fff)!important;background:#ffffff1a!important}}@media (width<=360px){.summary-cards{grid-template-columns:1fr}.tabs{margin:12px 8px 0}.finance-dashboard{padding:12px}}
