[data-theme=green]{--primary-color:#10b981;--primary-rgb:16,185,129;--primary-color-light:rgba(16,185,129,.1);--primary-color-dark:#059669;--primary-hover:#059669;--primary-active:#047857}[data-theme=purple]{--primary-color:#8b5cf6;--primary-rgb:139,92,246;--primary-color-light:rgba(139,92,246,.1);--primary-color-dark:#7c3aed;--primary-hover:#7c3aed;--primary-active:#6d28d9}[data-theme=orange]{--primary-color:#f59e0b;--primary-rgb:245,158,11;--primary-color-light:rgba(245,158,11,.1);--primary-color-dark:#d97706;--primary-hover:#d97706;--primary-active:#b45309}[data-theme=red]{--primary-color:#ef4444;--primary-rgb:239,68,68;--primary-color-light:rgba(239,68,68,.1);--primary-color-dark:#dc2626;--primary-hover:#dc2626;--primary-active:#b91c1c}.btn-primary,.primary-button{background-color:var(--primary-color)!important;border-color:var(--primary-color)!important}.btn-primary:hover,.primary-button:hover{background-color:var(--primary-hover,var(--primary-color-dark))!important;border-color:var(--primary-hover,var(--primary-color-dark))!important}.btn-primary:active,.primary-button:active{background-color:var(--primary-active,var(--primary-color-dark))!important;border-color:var(--primary-active,var(--primary-color-dark))!important}.header .icon-button{background:none!important;border:none!important;color:var(--primary-color)!important}.header .icon-button:hover{background-color:var(--primary-color-light)!important;color:var(--primary-color)!important}.header .icon-button:active{background-color:var(--primary-color-light)!important;color:var(--primary-hover,var(--primary-color-dark))!important}.link-primary,.text-primary-color{color:var(--primary-color)!important}.border-primary{border-color:var(--primary-color)!important}.bg-primary-light{background-color:var(--primary-color-light)!important}.category-icon{color:var(--category-icon-color,#333)!important}.category-icon i{color:inherit!important}.category-grid-item.active .category-icon,.category-item.active .category-icon{background-color:var(--primary-color)!important;color:#fff!important}.category-grid-item:hover .category-icon,.category-item:hover .category-icon{background-color:var(--primary-color-light)!important;border-color:var(--primary-color)!important}.bottom-nav .nav-item.active,.bottom-nav .nav-item.active i{color:var(--primary-color)!important}.page-container .btn-primary,.page-container .primary-button{background-color:var(--primary-color)!important;border-color:var(--primary-color)!important}.page-container .btn-primary:hover,.page-container .primary-button:hover{background-color:var(--primary-hover,var(--primary-color-dark))!important}.page-container .header .icon-button{background:none!important;border:none!important;color:var(--primary-color)!important}.page-container .header .icon-button:hover{background-color:var(--primary-color-light)!important;color:var(--primary-color)!important}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-color)!important;box-shadow:0 0 0 3px var(--primary-color-light)!important}.badge-primary,.budget-progress,.progress,.switch.active,.tag-primary,.toggle.active{background-color:var(--primary-color)!important}.badge-primary,.tag-primary{color:#fff!important}.link:hover,a:hover{color:var(--primary-color)!important}.bottom-nav{height:56px;background-color:var(--card-background);position:fixed;bottom:0;left:0;right:0;justify-content:space-around;box-shadow:0 -2px 8px rgba(0,0,0,.05);z-index:40;max-width:480px;margin:0 auto}.bottom-nav,.nav-item{display:flex;align-items:center}.nav-item{flex-direction:column;justify-content:center;color:var(--text-secondary);text-decoration:none;font-size:12px;flex:1;height:100%}.nav-item i{font-size:20px;margin-bottom:4px}.nav-item.active{color:var(--primary-color)}.bottom-nav .nav-item.add-button{margin-top:-20px;position:relative;width:auto;height:auto;border-radius:0;background-color:transparent}.bottom-nav .add-icon{width:48px;height:48px;border-radius:50%;background-color:var(--primary-color,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.2)}.bottom-nav .add-icon i{font-size:20px;margin-bottom:0}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.5}.safe-area-inset{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.ios-app .safe-area-inset,body.ios-app .safe-area-inset,html.ios-app .safe-area-inset{padding-top:max(env(safe-area-inset-top),44px);padding-bottom:max(env(safe-area-inset-bottom),20px);min-height:100vh;min-height:-webkit-fill-available}.admin-login-container{min-height:100vh;min-height:-webkit-fill-available;padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,16px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,16px)}.ios-app .admin-login-container,body.ios-app .admin-login-container,html.ios-app .admin-login-container{padding-top:max(env(safe-area-inset-top),44px);padding-bottom:max(env(safe-area-inset-bottom),20px)}input,select,textarea{width:100%;padding:.75rem;border:1px solid var(--border-color,#e5e7eb);border-radius:.5rem;background-color:var(--card-background,#fff);color:var(--text-primary,#1f2937)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 2px rgba(var(--primary-rgb,59,130,246),.2)}button{cursor:pointer;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;transition:all .2s ease}.btn-primary{background-color:var(--primary-color,#3b82f6);color:#fff;border:none}.btn-primary:hover{background-color:rgba(var(--primary-rgb,59,130,246),.9)}.btn-secondary{background-color:var(--secondary,#f3f4f6);color:var(--text-primary,#1f2937);border:1px solid var(--border-color,#e5e7eb)}.btn-secondary:hover{background-color:var(--background-hover,#e5e7eb)}.card{background-color:var(--card-background,#fff);border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:1rem}.text-primary{color:var(--text-primary,#1f2937)}.text-secondary{color:var(--text-secondary,#6b7280)}.text-success{color:var(--success-color,#22c55e)}.text-error{color:var(--error-color,#ef4444)}.container{max-width:480px;margin:0 auto;padding:1rem}.page-container{padding-bottom:72px}.app-container{max-width:480px;margin:0 auto;position:relative;min-height:100vh;height:auto;display:flex;flex-direction:column;overflow:visible}.header{height:56px;background-color:var(--card-background,#fff);display:flex;justify-content:space-between;align-items:center;padding:0 16px;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px rgba(0,0,0,.05)}.ios-app .header,body.ios-app .header,html.ios-app .header{margin-top:calc(env(safe-area-inset-top, 44px) - 10px);padding-top:12px;padding-bottom:12px;min-height:56px;z-index:1000}.header-title{font-size:18px;font-weight:600;color:var(--text-primary,#1f2937)}.header-actions{display:flex;gap:12px}.icon-button{background:none;border:none;color:var(--text-primary,#1f2937);font-size:18px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.icon-button:hover{background-color:var(--hover-background,rgba(0,0,0,.05))}.main-content{flex:1;overflow-y:visible;display:flex;flex-direction:column;gap:10px;padding:12px 12px 20px;height:auto;min-height:100%;max-height:none}.main-content.dashboard-content{gap:8px;padding-bottom:20px}.main-content.no-bottom-nav{padding-bottom:20px!important}@media (min-width:640px){.main-content{gap:12px;padding:16px 16px 30px}.main-content.dashboard-content{gap:10px;padding-bottom:25px}}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-form{width:100%;max-width:360px}.login-logo{margin-bottom:2rem;text-align:center}.login-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem}.login-button{width:100%;margin-top:1rem}.login-error{color:var(--error-color,#ef4444);margin-top:1rem;text-align:center}.auth-container{display:flex;flex-direction:column;min-height:100vh;height:100vh;padding:24px;max-width:480px;margin:0 auto;box-sizing:border-box;overflow-y:auto;overflow-x:hidden}.auth-header{text-align:center;margin-bottom:48px;margin-top:48px}.app-logo{font-size:32px;font-weight:700;color:var(--primary-color,#3b82f6);margin-bottom:8px}.app-slogan{font-size:16px;color:var(--text-secondary,#6b7280)}.auth-form{gap:20px;width:100%;max-width:360px;margin:0 auto;background-color:var(--card-background,#fff);padding:24px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-label{font-size:14px;font-weight:500}.form-input,.form-label{color:var(--text-primary,#1f2937)}.form-input{padding:12px 16px;border:1px solid var(--border-color,#e5e7eb);border-radius:var(--radius,.5rem);font-size:16px;background-color:var(--card-background,#fff)}.form-input.full-width{width:100%}.form-input:focus{outline:none;border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 2px rgba(59,130,246,.2)}.password-input-wrapper{position:relative}.password-toggle{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary,#6b7280);cursor:pointer;padding:0}.btn-primary,.submit-button{background-color:var(--primary-color,#3b82f6);color:#fff;border:none;border-radius:var(--radius,.5rem);padding:16px 24px;min-height:48px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(59,130,246,.2)}.btn-primary:hover,.submit-button:hover{background-color:var(--primary-hover,rgba(59,130,246,.9));transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.btn-primary:active,.submit-button:active{transform:translateY(0);box-shadow:0 2px 8px rgba(59,130,246,.2)}.btn-primary:disabled,.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 2px 8px rgba(59,130,246,.1)}.auth-links{display:flex;justify-content:space-between;margin-top:16px}.auth-link{color:var(--primary-color,#3b82f6);text-decoration:none;font-size:14px}.auth-link:hover{text-decoration:underline}.auth-footer{margin-top:auto;text-align:center;padding:24px 0;color:var(--text-secondary,#6b7280);font-size:12px}@media (max-height:667px){.app-slogan,.theme-switcher{display:none!important}.auth-header{margin-bottom:12px;margin-top:12px}.logo-container{margin-top:8px;margin-bottom:8px}}@media (min-height:668px) and (max-height:735px){.app-slogan{display:block!important;font-size:14px}.theme-switcher{display:none!important}.auth-header{margin-bottom:20px;margin-top:20px}}@media (min-height:736px){.app-slogan{display:block!important;font-size:16px}.theme-switcher{display:flex!important}.auth-header{margin-bottom:24px;margin-top:24px}}@media (max-width:374px){.auth-container{padding:12px;min-height:100vh}.auth-header{margin-bottom:16px;margin-top:16px}.auth-form{padding:16px;gap:16px}.app-logo{font-size:24px}.btn-primary,.submit-button{min-height:48px;font-size:16px;padding:16px 20px;border-radius:10px}.form-input{min-height:42px;font-size:16px;padding:12px 14px;border-radius:10px}.logo-container{margin-top:8px;margin-bottom:8px}}@media (min-width:375px) and (max-width:413px){.auth-container{padding:14px}.auth-header{margin-bottom:20px;margin-top:20px}.auth-form{padding:18px;gap:18px}.app-logo{font-size:26px}.btn-primary,.submit-button{min-height:50px;font-size:17px;padding:18px 24px;border-radius:12px}.form-input{min-height:44px;font-size:16px;padding:14px 16px;border-radius:12px}.logo-container{margin-top:12px;margin-bottom:12px}}@media (min-width:414px) and (max-width:479px){.auth-container{padding:16px}.auth-header{margin-bottom:24px;margin-top:24px}.auth-form{padding:20px;gap:20px}.app-logo{font-size:28px}.btn-primary,.submit-button{min-height:50px;font-size:17px;padding:18px 24px;border-radius:12px}.form-input{min-height:44px;font-size:16px;padding:14px 16px;border-radius:12px}.logo-container{margin-top:16px;margin-bottom:16px}}@media (min-width:480px) and (max-width:639px){.auth-container{padding:16px}.auth-header{margin-bottom:24px;margin-top:24px}.auth-form{padding:20px;gap:20px}.app-logo{font-size:28px}.btn-primary,.submit-button{min-height:50px;font-size:17px;padding:18px 24px;border-radius:12px}.form-input{min-height:44px;font-size:16px;padding:14px 16px;border-radius:12px}.logo-container{margin-top:16px;margin-bottom:16px}}@media (min-width:640px){.auth-container{padding:24px}.auth-header{margin-bottom:48px;margin-top:48px}.auth-form{padding:24px;gap:20px}.app-logo{font-size:32px}.logo-container{margin-top:32px;margin-bottom:32px}}.auth-form{min-height:-moz-fit-content;min-height:fit-content;max-height:none}.auth-links{margin-top:12px}.auth-container>*,.auth-links{flex-shrink:0}.auth-container>.flex-1{flex-shrink:1;min-height:0}@media (hover:none) and (pointer:coarse){.btn-primary,.submit-button{min-height:50px;font-size:17px;padding:18px 24px;border-radius:12px;-webkit-tap-highlight-color:transparent}.btn-primary:hover,.submit-button:hover{transform:none;background-color:var(--primary-color,#3b82f6);box-shadow:0 2px 8px rgba(59,130,246,.2)}.btn-primary:active,.submit-button:active{background-color:var(--primary-active,rgba(59,130,246,.8));transform:scale(.98)}}.theme-switcher{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}:root[data-theme=blue]{--primary-color:#3b82f6;--primary-rgb:59,130,246}:root[data-theme=green]{--primary-color:#10b981;--primary-rgb:16,185,129}:root[data-theme=purple]{--primary-color:#8b5cf6;--primary-rgb:139,92,246}.logo-container{display:flex;justify-content:center;margin:2rem 0}.logo{width:80px;height:80px}@media (min-width:640px){.logo{width:100px;height:100px}}.hexagon-logo{position:relative;width:80px;height:92px;background-color:var(--primary-color,#3b82f6);margin:0 auto;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.25rem}@media (min-width:640px){.hexagon-logo{width:100px;height:115px;font-size:1.5rem}}