:root{--bg-primary:#f5f5f5;--bg-secondary:#fff;--bg-tertiary:#f9f9f9;--bg-hover:#f0f0f0;--text-primary:#333;--text-secondary:#666;--text-tertiary:#999;--border-color:#ddd;--shadow:#0000001a;--shadow-hover:#00000026}[data-theme=dark]{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#3a3a3a;--bg-hover:#404040;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-tertiary:gray;--border-color:#444;--shadow:#0000004d;--shadow-hover:#00000080}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background .3s,color .3s}#root{min-height:100vh}.loading{min-height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:18px;display:flex}.navbar{color:#fff;z-index:100;background:#667eea;align-items:center;width:100%;height:70px;padding:15px 0;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 4px #0000001a}.navbar-container{justify-content:space-between;align-items:center;width:100%;margin:0;padding:0 20px;display:flex}.navbar-logo{color:#fff;font-size:16px;font-weight:700;text-decoration:none}.navbar-user{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.theme-toggle{align-items:center;gap:5px;display:flex}.btn-theme{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:5px;justify-content:center;align-items:center;padding:6px 10px;font-size:16px;transition:background .3s;display:flex}.btn-theme:hover{background:#ffffff4d}.btn-logout{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:5px;padding:6px 12px;font-size:14px;transition:background .3s}.btn-logout:hover{background:#ffffff4d}.navbar-user span{font-size:14px}.theme-label{color:#fff;font-size:12px;font-weight:500}@media (width>=768px){.navbar-logo{font-size:20px}.navbar-user{gap:15px}.navbar-user span{font-size:16px}.theme-label{font-size:14px}.theme-toggle{gap:8px}.btn-theme{padding:8px 12px;font-size:18px}.btn-logout{padding:8px 16px;font-size:16px}}.burger-menu{z-index:101;cursor:pointer;background:#667eea;border:none;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;padding:10px;display:none;position:fixed;top:80px;left:20px}.burger-menu span{background:#fff;border-radius:2px;width:24px;height:3px;transition:all .3s;display:block}.burger-menu:hover{background:#5568d3}.sidebar-overlay{z-index:98;background:#00000080;display:none;position:fixed;inset:0}.close-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:5px;font-size:24px;line-height:1;display:none}.close-btn:hover{color:#667eea}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:50;width:250px;height:calc(100vh - 70px);transition:transform .3s;position:fixed;top:70px;left:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px;display:flex}.sidebar-header h2{color:var(--text-primary);margin:0;font-size:18px}.sidebar-nav{padding:20px 0}.sidebar-link{color:var(--text-secondary);border-left:3px solid #0000;align-items:center;gap:15px;padding:15px 20px;text-decoration:none;transition:all .3s;display:flex}.sidebar-link:hover{background:var(--bg-hover);color:#667eea}.sidebar-link.active{background:var(--bg-tertiary);color:#667eea;border-left-color:#667eea;font-weight:600}.sidebar-icon{text-align:center;width:24px;font-size:20px}@media (width<=768px){.burger-menu{display:flex}.sidebar{z-index:99;height:100vh;top:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay,.close-btn{display:block}}.footer{background:var(--bg-secondary);color:var(--text-primary);border-top:1px solid var(--border-color);margin-top:auto}.footer-container{grid-template-columns:1fr;gap:40px;max-width:1200px;margin:0 auto;padding:60px 20px 30px;display:grid}.footer-section h3{color:#667eea;margin-bottom:15px;font-size:24px}.footer-section h4{color:var(--text-secondary);margin-bottom:15px;font-size:18px}.footer-section p{color:var(--text-secondary);margin-bottom:10px;line-height:1.6}.footer-section ul{margin:0;padding:0;list-style:none}.footer-section ul li{margin-bottom:10px}.footer-section ul li a{color:var(--text-secondary);text-decoration:none;transition:color .3s}.footer-section ul li a:hover{color:#667eea}.footer-bottom{border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);padding:20px}@media (width>=768px){.footer-container{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.footer-container{grid-template-columns:repeat(4,1fr)}}.app-layout{flex-direction:column;width:100%;min-height:100vh;display:flex;overflow-x:hidden}.layout-container{flex:1;width:100%;display:flex;position:relative}.main-content{background:var(--bg-primary);flex-direction:column;flex:1;width:100%;min-height:calc(100vh - 70px);margin-top:70px;margin-left:0;display:flex}.main-content>:not(footer){flex:1}@media (width>=769px){.main-content{width:calc(100% - 250px);margin-left:250px}}.public-header{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);z-index:100;width:100%;position:fixed;top:0;left:0;right:0}.header-container{justify-content:flex-end;align-items:center;max-width:1200px;margin:0 auto;padding:20px;display:flex}.header-nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.header-nav a{color:var(--text-primary);white-space:nowrap;font-size:14px;font-weight:500;text-decoration:none;transition:color .3s}.header-nav a:hover,.nav-login{color:#667eea}.btn-theme-public{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:6px 10px;font-size:16px;transition:all .3s;display:flex}.btn-theme-public:hover{background:var(--bg-tertiary);transform:scale(1.1)}.nav-register{color:#fff;white-space:nowrap;background:#667eea;border-radius:6px;padding:8px 20px;font-size:14px;transition:background .3s}.nav-register:hover{color:#fff;background:#5568d3}@media (width>=768px){.header-nav{justify-content:flex-end;gap:30px}.header-nav a{font-size:16px}.btn-theme-public{padding:8px 12px;font-size:18px}.nav-register{padding:10px 25px;font-size:16px}}.home-page{flex-direction:column;width:100%;min-height:100vh;padding-top:70px;display:flex;overflow-x:hidden}.home-main{flex:1}.hero-section{background-blend-mode:overlay;color:#fff;text-align:center;background-color:#0000;background-image:linear-gradient(135deg,#667eea 0%,#764ba2 100%),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;padding:100px 20px;position:relative}.hero-content h1{margin-bottom:20px;font-size:48px;font-weight:700}.hero-content p{opacity:.9;margin-bottom:40px;font-size:20px}.hero-buttons{flex-direction:column;align-items:center;gap:20px;display:flex}.btn-primary,.btn-secondary{text-align:center;border-radius:8px;width:200px;padding:15px 40px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .3s,box-shadow .3s}.btn-primary{color:#667eea;background:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}.btn-secondary{color:#fff;background:0 0;border:2px solid #fff}.btn-secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.features-section{background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23667eea' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");background-color:var(--bg-primary);max-width:1200px;margin:0 auto;padding:80px 20px}.features-section h2{text-align:center;color:var(--text-primary);margin-bottom:60px;font-size:36px}.features-grid{grid-template-columns:1fr;gap:30px;display:grid}.feature-card{background:var(--bg-secondary);box-shadow:0 4px 6px var(--shadow);text-align:center;border:1px solid var(--border-color);border-radius:12px;padding:30px;transition:transform .3s,box-shadow .3s}.feature-card:hover{box-shadow:0 10px 20px var(--shadow-hover);transform:translateY(-5px)}.feature-icon{margin-bottom:20px;font-size:48px}.feature-card h3{color:#667eea;margin-bottom:15px;font-size:22px}.feature-card p{color:var(--text-secondary);line-height:1.6}@media (width>=768px){.hero-buttons{flex-direction:row;justify-content:center}.features-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.features-grid{grid-template-columns:repeat(3,1fr)}}.about-page{flex-direction:column;width:100%;min-height:100vh;padding-top:70px;display:flex;overflow-x:hidden}.about-main{flex:1}.about-hero{background-blend-mode:overlay;color:#fff;text-align:center;background-color:#0000;background-image:linear-gradient(135deg,#667eea 0%,#764ba2 100%),url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M50 50c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10zM10 10c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10S0 25.523 0 20s4.477-10 10-10zm10 8c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm40 40c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8z' /%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;padding:80px 20px;position:relative}.about-hero h1{margin-bottom:15px;font-size:42px}.about-hero p{opacity:.9;font-size:18px}.about-content{background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23667eea' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");background-color:var(--bg-primary);max-width:1000px;margin:0 auto;padding:60px 20px}.about-section{margin-bottom:60px}.about-section h2{color:var(--text-primary);margin-bottom:20px;font-size:32px}.about-section p{color:var(--text-secondary);font-size:16px;line-height:1.8}.offer-grid{grid-template-columns:1fr;gap:30px;margin-top:30px;display:grid}.offer-item{background:var(--bg-secondary);box-shadow:0 2px 4px var(--shadow);border-left:4px solid #667eea;border-radius:10px;padding:25px}.offer-item h3{color:#667eea;margin-bottom:10px;font-size:20px}.offer-item p{color:var(--text-secondary);font-size:14px}.steps{flex-direction:column;gap:30px;margin-top:40px;display:flex}.step{text-align:center;flex:1}.step-number{color:#fff;background:#667eea;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;font-size:24px;font-weight:700;display:flex}.step h3{color:var(--text-primary);margin-bottom:10px;font-size:20px}.step p{color:var(--text-secondary);font-size:14px}.cta-section{text-align:center;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;margin-top:80px;padding:60px 40px}.cta-section h2{color:#fff;margin-bottom:15px;font-size:36px}.cta-section p{color:#fff;opacity:.9;margin-bottom:30px;font-size:18px}.btn-cta{color:#667eea;background:#fff;border-radius:8px;padding:15px 40px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .3s,box-shadow .3s;display:inline-block}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}@media (width>=768px){.offer-grid{grid-template-columns:repeat(2,1fr)}.steps{flex-direction:row;justify-content:space-between}}@media (width>=1024px){.offer-grid{grid-template-columns:repeat(4,1fr)}}.auth-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:#fff;border-radius:10px;width:100%;max-width:400px;padding:40px;box-shadow:0 10px 25px #0003}.auth-card h1{text-align:center;color:#667eea;margin-bottom:10px;font-size:24px}.auth-card h2{text-align:center;color:var(--text-primary);margin-bottom:30px;font-size:20px}.form-group input{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:10px;font-size:14px;transition:border-color .3s}.form-group input:focus{border-color:#667eea;outline:none}.btn-primary{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:5px;width:100%;padding:12px;font-size:16px;font-weight:600;transition:background .3s}.btn-primary:hover{background:#5568d3}.btn-primary:disabled{cursor:not-allowed;background:#ccc}.auth-link{text-align:center;color:var(--text-secondary);margin-top:20px}.auth-link a{color:#667eea;font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.success-message{color:#2e7d32;text-align:center;background:#e8f5e9;border-radius:5px;margin-bottom:20px;padding:10px}.dashboard{max-width:1200px;margin:0 auto;padding:40px 20px}.dashboard h1{color:var(--text-primary);margin-bottom:30px}.stats-grid{grid-template-columns:1fr;gap:20px;margin-bottom:40px;display:grid}.stat-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);text-align:center;border-radius:10px;padding:30px}.stat-card.income{border-top:4px solid #4caf50}.stat-card.expense{border-top:4px solid #f44336}.stat-card.net{border-top:4px solid #667eea}.stat-card h3{color:var(--text-secondary);margin-bottom:15px;font-size:16px}.stat-value{color:var(--text-primary);margin:10px 0;font-size:32px;font-weight:700}.stat-count,.stat-label{color:var(--text-tertiary);font-size:14px}.quick-actions h2{color:var(--text-primary);margin-bottom:20px}.action-buttons{flex-direction:column;gap:15px;display:flex}.btn-action{color:#fff;border-radius:8px;padding:15px 30px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s}.btn-action:hover{box-shadow:0 4px 12px var(--shadow-hover);transform:translateY(-2px)}.btn-action.income{background:#4caf50}.btn-action.expense{background:#f44336}.btn-action.stats{background:#667eea}.loading{text-align:center;color:var(--text-secondary);padding:50px;font-size:18px}@media (width>=768px){.stats-grid{grid-template-columns:repeat(3,1fr)}.action-buttons{flex-flow:wrap}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border-radius:10px;width:90%;max-width:500px;max-height:90vh;padding:30px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{color:var(--text-primary);margin:0}.btn-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;width:32px;height:32px;padding:0;font-size:32px;line-height:1}.btn-close:hover{color:var(--text-secondary)}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);margin-bottom:5px;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:10px;font-family:inherit;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.form-group textarea{resize:vertical}.form-actions{gap:10px;margin-top:30px;display:flex}.btn-cancel,.btn-submit{cursor:pointer;border:none;border-radius:5px;flex:1;padding:12px;font-size:16px;font-weight:600;transition:background .3s}.btn-cancel{background:var(--bg-hover);color:var(--text-secondary)}.btn-cancel:hover{background:var(--bg-tertiary)}.btn-submit{color:#fff;background:#667eea}.btn-submit:hover{background:#5568d3}.btn-submit:disabled{cursor:not-allowed;background:#ccc}.error-message{color:#c33;text-align:center;background:#fee;border-radius:5px;margin-bottom:20px;padding:10px}.incomes-page{max-width:1200px;margin:0 auto;padding:40px 20px}.filters input,.filters select{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:5px;padding:10px;font-size:14px}.filters input[type=date],.filters select{min-width:150px}.filters input[type=text]{flex:1;min-width:200px}.btn-filter,.btn-clear{cursor:pointer;border:none;border-radius:5px;padding:10px 20px;font-weight:600;transition:background .3s}.btn-filter{color:#fff;background:#667eea}.btn-filter:hover{background:#5568d3}.btn-clear{background:var(--bg-hover);color:var(--text-secondary)}.btn-clear:hover{background:var(--bg-tertiary)}.incomes-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.income-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;padding:20px;transition:transform .2s,box-shadow .2s}.income-card:hover{box-shadow:0 4px 12px var(--shadow-hover);transform:translateY(-2px)}.income-header{border-bottom:2px solid var(--bg-hover);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.income-date{color:var(--text-secondary);font-size:14px}.income-amount{color:#4caf50;font-size:24px;font-weight:700}.income-body{margin-bottom:15px}.income-source{background:#4caf501a;border-radius:20px;margin-bottom:10px;padding:4px 12px;font-size:14px;font-weight:600;display:inline-block}.income-description{color:var(--text-secondary);margin-top:10px;font-size:14px}.income-actions{gap:10px;display:flex}.btn-edit,.btn-delete{cursor:pointer;border:none;border-radius:5px;flex:1;padding:8px;font-weight:600;transition:background .3s}.btn-edit{color:#fff;background:#667eea}.btn-edit:hover{background:#5568d3}.btn-delete{color:#fff;background:#f44336}.btn-delete:hover{background:#da190b}@media (width<=768px){.page-header{flex-direction:column;align-items:stretch;gap:15px}.filters{flex-direction:column}.filters input,.filters select{width:100%}.incomes-list{grid-template-columns:1fr}}@media (width<=600px){.pagination-container{gap:8px;padding:16px}.btn-pagination{min-width:90px;padding:8px 16px;font-size:14px}.page-indicator{min-width:60px;padding:8px 12px;font-size:14px}}.expenses-page{max-width:1200px;margin:0 auto;padding:40px 20px}.page-header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.page-header h1{color:var(--text-primary)}.input-method-tabs{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:8px;gap:10px;margin-bottom:30px;padding:5px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:5px;flex:1;padding:12px 24px;font-weight:600;transition:all .3s}.tab-btn:hover{background:var(--bg-hover)}.tab-btn.active{color:#fff;background:#667eea}.cash-header{justify-content:flex-end;margin-bottom:20px;display:flex}.btn-add{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:background .3s}.btn-add:hover{background:#da190b}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:30px;display:flex}.filter-group{align-items:center;gap:8px;display:flex}.filter-group label{color:var(--text-secondary);white-space:nowrap;font-size:14px;font-weight:600}.expenses-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.expense-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;padding:20px;transition:transform .2s,box-shadow .2s}.expense-card:hover{box-shadow:0 4px 12px var(--shadow-hover);transform:translateY(-2px)}.expense-header{border-bottom:2px solid var(--bg-hover);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.expense-date{color:var(--text-secondary);font-size:14px}.expense-amount{color:#f44336;font-size:24px;font-weight:700}.expense-body{margin-bottom:15px}.expense-category{background:#f443361a;border-radius:20px;margin-bottom:10px;padding:4px 12px;font-size:14px;font-weight:600;display:inline-block}.expense-description{color:var(--text-secondary);margin-top:10px;font-size:14px}.expense-actions{gap:10px;display:flex}@media (width<=768px){.expenses-list{grid-template-columns:1fr}}.sms-section{margin-top:20px}.pending-section h2{color:var(--text-primary);margin-bottom:20px;font-size:20px}.edit-mode input{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:10px;font-size:14px}.btn-pagination{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;min-width:120px;padding:10px 24px;font-size:15px;font-weight:500;transition:all .3s;box-shadow:0 4px 15px #667eea4d}.btn-pagination:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-pagination:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-pagination:active:not(:disabled){transform:translateY(0)}.page-indicator{color:#667eea;text-align:center;background:#667eea1a;border-radius:8px;min-width:80px;padding:10px 20px;font-weight:600}@media (width<=600px){.pagination-container{gap:8px;padding:16px}.btn-pagination{min-width:90px;padding:8px 16px;font-size:14px}.page-indicator{min-width:60px;padding:8px 12px;font-size:14px}}.settings-page{max-width:1200px;margin:0 auto;padding:40px 20px}.settings-page h1{color:var(--text-primary);margin-bottom:30px}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;display:grid}.settings-section{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;padding:30px}.settings-section h2{color:var(--text-primary);margin-bottom:20px;font-size:20px}.add-form{gap:10px;margin-bottom:20px;display:flex}.add-form input[type=text]{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:5px;flex:1;padding:10px;font-size:14px}.add-form input[type=color]{border:1px solid var(--border-color);cursor:pointer;border-radius:5px;width:50px;height:40px}.btn-add-small{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:5px;padding:10px 20px;font-weight:600;transition:background .3s}.btn-add-small:hover{background:#5568d3}.items-list{flex-direction:column;gap:10px;display:flex}.item{background:var(--bg-tertiary);border-radius:5px;justify-content:space-between;align-items:center;padding:12px;transition:background .2s;display:flex}.item:hover{background:var(--bg-hover)}.item-info{align-items:center;gap:10px;display:flex}.color-dot{border:2px solid var(--bg-secondary);width:20px;height:20px;box-shadow:0 0 0 1px var(--border-color);border-radius:50%}.item-name{color:var(--text-primary);font-weight:500}.btn-delete-small{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:5px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .3s}.btn-delete-small:hover{background:#da190b}.no-items{text-align:center;color:var(--text-tertiary);padding:20px;font-size:14px}@media (width<=768px){.settings-grid{grid-template-columns:1fr}.add-form{flex-direction:column}.add-form input[type=color]{width:100%}}.sms-gateway-section{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);border:2px solid #667eea;grid-column:1/-1}.section-description{color:var(--text-secondary);margin-bottom:20px;font-size:14px}.sms-form .form-group{margin-bottom:20px}.sms-form label{color:var(--text-primary);margin-bottom:8px;font-weight:600;display:block}.sms-form input,.sms-form select{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:12px;font-size:14px}.sms-form small{color:var(--text-tertiary);margin-top:5px;font-size:12px;display:block}.btn-enable-sms{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:8px;width:100%;margin-bottom:20px;padding:14px;font-size:16px;font-weight:600;transition:background .3s}.btn-enable-sms:hover{background:#5568d3}.sms-instructions{background:var(--bg-primary);border-left:4px solid #667eea;border-radius:8px;padding:20px}.sms-instructions h4{color:var(--text-primary);margin-bottom:15px;font-size:16px}.sms-instructions ol{color:var(--text-secondary);margin-left:20px;line-height:1.8}.sms-instructions ol li{margin-bottom:8px}.webhook-url{background:var(--bg-tertiary);color:var(--text-secondary);word-break:break-all;border-radius:5px;margin-top:15px;padding:12px;font-size:13px}.webhook-url strong{color:var(--text-primary)}.sms-status{padding:10px 0}.status-item{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.status-item:last-of-type{border-bottom:none;margin-bottom:20px}.status-label{color:var(--text-secondary);font-weight:600}.status-value{color:var(--text-primary);font-weight:500}.status-value.enabled{color:#4caf50;font-weight:700}.btn-disable-sms{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:8px;width:100%;margin-bottom:15px;padding:12px;font-weight:600;transition:background .3s}.btn-disable-sms:hover{background:#da190b}.sms-info{background:#4caf501a;border-left:4px solid #4caf50;border-radius:8px;padding:15px}.sms-info p{color:var(--text-secondary);margin-bottom:8px;font-size:14px;line-height:1.6}.sms-info p:last-child{margin-bottom:0}@media (width<=768px){.sms-gateway-section{grid-column:1}}.info-box{background:#667eea1a;border-left:4px solid #667eea;border-radius:8px;margin:15px 0;padding:15px}.info-box p{color:var(--text-secondary);margin-bottom:8px;font-size:14px;line-height:1.6}.info-box p:last-child{margin-bottom:0}.setup-guide{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:5px;margin-top:15px;padding:12px;font-size:14px}.setup-guide strong{color:var(--text-primary)}.info-box code{background:var(--bg-primary);color:var(--text-primary);word-wrap:break-word;border-radius:5px;margin-top:8px;padding:10px;font-family:Courier New,monospace;font-size:12px;display:block}.coming-soon-badge{background:var(--bg-tertiary);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.coming-soon-badge span{color:#667eea;font-size:22px;font-weight:700}.coming-soon-badge p{color:var(--text-secondary);margin:0;font-size:14px}.statistics-page{max-width:1200px;margin:0 auto;padding:90px 12px 20px}.stats-header{flex-direction:column;gap:15px;margin-bottom:24px;display:flex}.stats-header h1{color:var(--text-primary);margin:0;font-size:22px}.period-selector{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:8px;gap:6px;width:100%;padding:4px;display:flex}.period-selector button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:5px;flex:1;padding:8px 10px;font-size:13px;font-weight:600;transition:all .3s}.period-selector button:hover{background:var(--bg-hover)}.period-selector button.active{color:#fff;background:#667eea}.stats-summary{grid-template-columns:1fr;gap:14px;margin-bottom:24px;display:grid}.summary-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);text-align:center;border-radius:10px;padding:20px 16px}.summary-card.income{border-top:4px solid #4caf50}.summary-card.expense{border-top:4px solid #f44336}.summary-card.net{border-top:4px solid #667eea}.summary-card h3{color:var(--text-secondary);margin-bottom:10px;font-size:14px}.summary-card .amount{color:var(--text-primary);word-break:break-word;margin:0;font-size:22px;font-weight:700}.breakdown-section{grid-template-columns:1fr;gap:20px;display:grid}.breakdown-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;padding:20px 16px}.breakdown-card h2{color:var(--text-primary);margin-bottom:18px;font-size:18px}.breakdown-list{flex-direction:column;gap:16px;display:flex}.breakdown-item{background:var(--bg-tertiary);border-radius:8px;padding:12px}.item-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.item-amount{color:var(--text-primary);white-space:nowrap;font-size:14px;font-weight:700}.progress-bar{background:var(--bg-hover);border-radius:6px;width:100%;height:10px;margin-bottom:8px;overflow:hidden}.progress-fill{height:100%;transition:width .3s}.item-details{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.no-data{text-align:center;color:var(--text-tertiary);padding:30px 20px;font-size:15px}@media (width>=600px){.stats-summary{grid-template-columns:repeat(3,1fr)}}@media (width>=768px){.statistics-page{padding:110px 20px 40px}.stats-header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:30px}.stats-header h1{font-size:28px}.period-selector{width:auto}.period-selector button{flex:none;padding:10px 20px;font-size:14px}.stats-summary{gap:20px;margin-bottom:40px}.summary-card{padding:30px}.summary-card h3{margin-bottom:15px;font-size:16px}.summary-card .amount{font-size:32px}.breakdown-section{grid-template-columns:repeat(2,1fr);gap:30px}.breakdown-card{padding:30px}.breakdown-card h2{margin-bottom:25px;font-size:20px}.item-name,.item-amount{font-size:16px}.item-details{font-size:14px}}.transactions-page{max-width:1200px;margin:0 auto;padding:40px 20px}.transactions-page h1{color:var(--text-primary);margin-bottom:30px}.sms-parser{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;margin-bottom:40px;padding:30px}.sms-parser h2{color:var(--text-primary);margin-bottom:20px;font-size:20px}.sms-parser form{flex-direction:column;gap:15px;display:flex}.sms-parser textarea{border:1px solid var(--border-color);resize:vertical;background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:8px;padding:15px;font-family:inherit;font-size:14px}.sms-parser textarea:focus{border-color:#667eea;outline:none}.btn-parse{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:8px;align-self:flex-start;padding:12px 30px;font-weight:600;transition:background .3s}.btn-parse:hover{background:#5568d3}.pending-transactions h2{color:var(--text-primary);margin-bottom:20px;font-size:20px}.transactions-list{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;display:grid}.transaction-card{background:var(--bg-secondary);box-shadow:0 2px 8px var(--shadow);border-radius:10px;padding:20px;transition:transform .2s,box-shadow .2s}.transaction-card:hover{box-shadow:0 4px 12px var(--shadow-hover);transform:translateY(-2px)}.transaction-header{border-bottom:2px solid var(--bg-hover);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.transaction-type{text-transform:uppercase;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700}.transaction-type.income{color:#4caf50;background:#4caf5033}.transaction-type.expense{color:#f44336;background:#f4433633}.transaction-amount{color:var(--text-primary);font-size:20px;font-weight:700}.transaction-body{margin-bottom:15px}.sms-preview{background:var(--bg-tertiary);color:var(--text-secondary);word-wrap:break-word;border-radius:5px;margin-bottom:10px;padding:10px;font-size:13px}.transaction-date,.confidence{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.assignment{margin-top:15px}.assignment .form-group{margin-bottom:0}.assignment label{color:var(--text-secondary);margin-bottom:5px;font-size:14px;font-weight:600;display:block}.assignment select{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:10px;font-size:14px}.transaction-actions{gap:10px;margin-top:15px;display:flex}.btn-edit-trans,.btn-approve,.btn-reject{cursor:pointer;border:none;border-radius:5px;flex:1;padding:10px;font-weight:600;transition:background .3s}.btn-edit-trans{color:#fff;background:#667eea}.btn-edit-trans:hover{background:#5568d3}.btn-approve{color:#fff;background:#4caf50}.btn-approve:hover{background:#45a049}.btn-reject{color:#fff;background:#f44336}.btn-reject:hover{background:#da190b}.edit-mode{padding:10px 0}.edit-mode .form-group{margin-bottom:15px}.edit-mode label{color:var(--text-secondary);margin-bottom:5px;font-size:14px;font-weight:600;display:block}.edit-mode input,.edit-mode select{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:5px;padding:10px;font-size:14px}.edit-actions{gap:10px;margin-top:15px;display:flex}.btn-save,.btn-cancel-edit{cursor:pointer;border:none;border-radius:5px;flex:1;padding:10px;font-weight:600;transition:background .3s}.btn-save{color:#fff;background:#4caf50}.btn-save:hover{background:#45a049}.btn-cancel-edit{background:var(--bg-hover);color:var(--text-secondary)}.btn-cancel-edit:hover{background:var(--bg-tertiary)}.no-data{text-align:center;color:var(--text-tertiary);background:var(--bg-secondary);border-radius:10px;padding:40px;font-size:16px}@media (width<=768px){.transactions-list{grid-template-columns:1fr}.transaction-actions{flex-direction:column}}.pagination-container{justify-content:center;align-items:center;gap:20px;margin-top:30px;padding:20px 0;display:flex}.btn-pagination{cursor:pointer;background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 2px 4px var(--shadow);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .3s}.btn-pagination:hover:not(:disabled){color:#fff;box-shadow:0 4px 8px var(--shadow-hover);background:#667eea;transform:translateY(-2px)}.btn-pagination:disabled{opacity:.5;cursor:not-allowed}.btn-previous{padding-left:20px}.btn-next{padding-right:20px}.page-indicator{color:var(--text-primary);text-align:center;min-width:80px;font-size:16px;font-weight:600}@media (width<=768px){.pagination-container{gap:10px}.btn-pagination{padding:10px 16px;font-size:14px}.page-indicator{min-width:60px;font-size:14px}}.offline-banner{z-index:9999;text-align:center;padding:12px 20px;font-size:14px;font-weight:600;position:fixed;bottom:0;left:0;right:0}.offline-banner.offline{color:#fff;background:#f44336}.offline-banner.syncing{color:#fff;background:#667eea}*{box-sizing:border-box;margin:0;padding:0}body,#root{width:100%;overflow-x:hidden}
