@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#0f766e;--color-primary-hover:#0d625b;--color-background:#f8fafc;--color-surface:#fff;--color-text:#172033;--color-text-secondary:#64748b;--color-border:#e2e8f0;--color-success:#16a34a;--color-error:#dc2626;--color-warning:#d97706;--color-primary-light:#ccfbf1;--color-success-light:#dcfce7;--color-error-light:#fee2e2;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a14;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px}body{background-color:var(--color-background);color:var(--color-text);min-height:100vh;font-family:Inter,sans-serif;font-size:16px;line-height:1.5}button,input,textarea,select{font:inherit}img{max-width:100%;display:block}button{cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s}button:focus-visible,a:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}a{color:inherit;text-decoration:none}.app{min-height:100vh}.header{padding:24px 40px}.logo{width:150px;height:auto;display:block}.welcome{padding:60px 40px}.welcome h1{color:#172033;margin-bottom:12px;font-family:Manrope,sans-serif;font-size:40px;font-weight:600}.welcome p{color:#64748b;font-size:18px}.register{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.register>img{width:280px;height:auto;margin-bottom:24px}.register-description{color:var(--color-text-secondary);text-align:center;margin-bottom:24px;font-size:16px}.register-title{color:var(--color-text);margin-bottom:16px;font-size:32px;font-weight:700}.register-form{flex-direction:column;gap:12px;width:100%;max-width:400px;display:flex}.register-form input{border:1px solid var(--color-border);border-radius:8px;width:100%;height:44px;padding:0 12px;font-family:inherit;font-size:15px}.register-form input:focus{border-color:var(--color-primary);outline:none}.register-form label{color:var(--color-text);font-size:14px;font-weight:500}.register-form>button{background-color:var(--color-primary);width:100%;height:44px;color:var(--color-surface);cursor:pointer;border:none;border-radius:8px;font-size:15px;font-weight:600}.register-form>button:hover{background-color:var(--color-primary-hover)}.register-form .form-error{color:var(--color-error);margin-top:4px;font-size:13px}.register-form .form-success{color:var(--color-success);text-align:center;margin-top:4px;font-size:13px}.register>p:last-child{color:var(--color-text-secondary);margin-top:16px;font-size:14px}.register>p:last-child button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:600}.register>p:last-child button:hover{color:var(--color-primary-hover)}.login{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.login>img{width:280px;height:auto;margin-bottom:24px}.login-description{color:var(--color-text-secondary);text-align:center;margin-bottom:24px;font-size:16px}.login-title{color:var(--color-text);margin-bottom:16px;font-size:32px;font-weight:700}.login-form{flex-direction:column;gap:12px;width:100%;max-width:400px;display:flex}.login-form label{color:var(--color-text);font-size:14px;font-weight:500}.login-form input{border:1px solid var(--color-border);background-color:var(--color-surface);width:100%;height:44px;color:var(--color-text);border-radius:8px;padding:0 12px;font-size:15px}.password-field{width:100%;position:relative}.password-field button{color:#000;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:0;right:0}.login-button{background-color:var(--color-primary);width:100%;height:44px;color:var(--color-surface);cursor:pointer;border:none;border-radius:8px;font-size:15px;font-weight:600}.login-button:hover{background-color:var(--color-primary-hover)}.forgot-password-button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500}.forgot-password-button:hover{color:var(--color-primary-hover)}.login-form input:focus{border-color:var(--color-primary);outline:none}.form-error{color:var(--color-error);margin-top:4px;font-size:13px}.form-success{color:var(--color-success);text-align:center;margin-top:4px;font-size:13px}.register-button{color:var(--color-text);cursor:pointer;background:0 0;border:none;margin-top:4px;font-size:14px;font-weight:600}.register-button:hover{color:var(--color-primary)}.recovery-button{background-color:var(--color-primary);width:100%;height:44px;color:var(--color-surface);cursor:pointer;border:none;border-radius:8px;font-size:15px;font-weight:600}.recovery-button:hover{background-color:var(--color-primary-hover)}.back-to-login-button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500}.back-to-login-button:hover{color:var(--color-primary-hover)}.dashboard-header{background-color:var(--color-surface);padding:var(--spacing-xl);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-lg)}.dashboard-header__title{color:var(--color-text);font-size:1.5rem;font-weight:600;line-height:1.4}.add-purchase{background-color:var(--color-surface);padding:var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.add-purchase__title{color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:1.5rem;font-weight:600}.add-purchase__form{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.add-purchase__field{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.add-purchase__field label{color:var(--color-text);font-size:.875rem;font-weight:500}.add-purchase__field input,.add-purchase__field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);outline:none;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.add-purchase__field input[type=date]{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.add-purchase__field input:focus-visible,.add-purchase__field select:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.add-purchase__field .form-error{color:var(--color-error);font-size:.875rem}.add-purchase__form-title{color:var(--color-text);grid-column:1/-1;margin:0;font-size:1.125rem;font-weight:600}.add-purchase__form button[type=submit]{border-radius:var(--radius-md);background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;grid-column:1/-1;min-height:46px;padding:12px 20px;font-size:.9375rem;font-weight:600;transition:background-color .2s,box-shadow .2s}.add-purchase__form button[type=submit]:hover{background-color:var(--color-primary-hover)}.add-purchase__form button[type=submit]:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.add-purchase .form-success{border:1px solid var(--color-success);border-radius:var(--radius-sm);background-color:var(--color-success-light);color:var(--color-success);padding:12px 16px;font-size:.875rem}.add-purchase .form-error{color:var(--color-error);font-size:.875rem;line-height:1.4}@media (width<=640px){.add-purchase{padding:var(--spacing-md)}.add-purchase__form{grid-template-columns:1fr}.add-purchase__form-title,.add-purchase__form button[type=submit]{grid-column:1}.add-purchase__field input[type=date]{box-sizing:border-box;appearance:none;width:100%;min-width:0;max-width:100%;margin:0;display:block}}.cards-section{margin-top:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.cards-section__title{color:var(--color-text);font-size:1.5rem;font-weight:600}.cards-section__panel{gap:var(--spacing-lg);padding:var(--spacing-xl);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.cards-section__form{gap:var(--spacing-md);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.cards-section__form label{color:var(--color-text);font-size:.875rem;font-weight:500}.cards-section__form input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);padding:10px 12px}.cards-section__form input:focus-visible{outline:3px solid var(--color-primary-light);border-color:var(--color-primary)}.cards-section__form button[type=submit]{border-radius:var(--radius-md);background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;grid-column:1/-1;min-height:46px;padding:12px 20px;font-size:.9375rem;font-weight:600;transition:background-color .2s}.cards-section__form button[type=submit]:hover{background-color:var(--color-primary-hover)}.cards-section__field{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.cards-section__field label{color:var(--color-text);font-size:.875rem;font-weight:500}.cards-section__field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);padding:10px 12px}.cards-section__field input:focus-visible{outline:3px solid var(--color-primary-light);border-color:var(--color-primary)}.card-item{gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.card-item h3{color:var(--color-text);font-size:1.125rem;font-weight:600}.card-item p{color:var(--color-text-secondary);font-size:.875rem}.card-actions{gap:var(--spacing-sm);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.card-actions button{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;min-height:40px;padding:8px 16px;font-weight:500}.card-actions button:first-child{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-light)}.card-actions button:last-child{background-color:var(--color-error-light);color:var(--color-error);border-color:var(--color-error-light)}.cards-section__list{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cards-section__list .card-item{margin-top:0}.card-actions button:first-child:hover{background-color:var(--color-primary);color:#fff}.card-actions button:last-child:hover{background-color:var(--color-error);color:#fff}@media (width<=768px){.cards-section__panel{padding:var(--spacing-md)}.cards-section__form{grid-template-columns:1fr}.cards-section__form button[type=submit]{grid-column:1}.cards-section__list{grid-template-columns:1fr}}.fixed-expenses{gap:var(--spacing-lg);margin-top:var(--spacing-lg);flex-direction:column;display:flex}.fixed-expenses__title,.fixed-expenses__list-title{color:var(--color-text);font-size:1.5rem;font-weight:600}.fixed-expenses__list-title{grid-column:1/-1;margin-bottom:0}.fixed-expenses__form{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.fixed-expenses__form label{color:var(--color-text);font-size:.875rem;font-weight:500}.fixed-expenses__form input,.fixed-expenses__form select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);padding:10px 12px}.fixed-expenses__form input:focus-visible,.fixed-expenses__form select:focus-visible{outline:3px solid var(--color-primary-light);border-color:var(--color-primary)}.fixed-expenses__form button[type=submit]{border-radius:var(--radius-md);background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;grid-column:1/-1;min-height:46px;padding:12px 20px;font-weight:600}.fixed-expenses__form button[type=submit]:hover{background-color:var(--color-primary-hover)}.fixed-expenses__field{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.fixed-expenses__field label{color:var(--color-text);font-size:.875rem;font-weight:500}.fixed-expenses__field input,.fixed-expenses__field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);padding:10px 12px}.fixed-expenses__panel{gap:var(--spacing-lg);padding:var(--spacing-xl);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.fixed-expenses__list{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.fixed-expenses__item p{overflow-wrap:anywhere}.fixed-expenses__item button:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.fixed-expenses__item{gap:var(--spacing-sm);padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.fixed-expenses__item p{color:var(--color-text-secondary);margin:0;font-size:.9375rem;line-height:1.5}.fixed-expenses__item p:first-child{color:var(--color-text);font-size:1.125rem;font-weight:600}.fixed-expenses__actions{gap:var(--spacing-sm);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.fixed-expenses__actions button{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;min-height:40px;padding:8px 16px;font-weight:500;transition:background-color .2s}.fixed-expenses__actions button:first-child{background-color:var(--color-primary-light);color:var(--color-primary)}.fixed-expenses__actions button:first-child:hover{background-color:var(--color-primary);color:#fff}.fixed-expenses__actions button:last-child{background-color:var(--color-error-light);color:var(--color-error)}.fixed-expenses__actions button:last-child:hover{background-color:var(--color-error);color:#fff}.fixed-expenses__list-title{color:var(--color-text);margin-bottom:var(--spacing-sm);font-size:1.25rem;font-weight:600}.fixed-expenses>p{border:1px solid var(--color-success);border-radius:var(--radius-sm);background-color:var(--color-success-light);color:var(--color-success);padding:12px 16px;font-size:.875rem}@media (width<=640px){.fixed-expenses__list{grid-template-columns:1fr}.fixed-expenses__panel{padding:var(--spacing-md)}.fixed-expenses__form{grid-template-columns:1fr}.fixed-expenses__form button[type=submit]{grid-column:1}}.financial-summary{gap:var(--spacing-lg);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.financial-summary__card{gap:var(--spacing-sm);padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.financial-summary__card h2{color:var(--color-text-secondary);font-size:1rem;font-weight:500}.financial-summary__card p{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}@media (width<=640px){.financial-summary{grid-template-columns:1fr}.financial-summary__card{padding:var(--spacing-md)}.financial-summary__card p{font-size:1.5rem}}.spending-control{gap:var(--spacing-lg);margin-top:var(--spacing-lg);flex-direction:column;display:flex}.spending-control__title{color:var(--color-text);font-size:1.5rem;font-weight:600}.spending-control__field{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.spending-control__form{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.spending-control__field label{color:var(--color-text);font-size:.875rem;font-weight:500}.spending-control__field input,.spending-control__field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);padding:10px 12px}.spending-control__submit{border-radius:var(--radius-md);background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;grid-column:1/-1;min-height:46px;padding:12px 20px;font-size:.9375rem;font-weight:600;transition:background-color .2s}.spending-control__submit:hover{background-color:var(--color-primary-hover)}.spending-control__submit:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.spending-control>p{border:1px solid var(--color-success);border-radius:var(--radius-sm);background-color:var(--color-success-light);color:var(--color-success);padding:12px 16px;font-size:.875rem}.spending-control__summary{gap:var(--spacing-sm);min-width:0;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.spending-control__summary h3{color:var(--color-text);font-size:1.125rem;font-weight:600}.spending-control__summary p{color:var(--color-text-secondary);margin:0;font-size:.9375rem;line-height:1.5}.spending-control__summaries{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.spending-control__panel{gap:var(--spacing-lg);padding:var(--spacing-xl);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.spending-control__field input:focus-visible,.spending-control__field select:focus-visible{outline:3px solid var(--color-primary-light);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}@media (width<=640px){.spending-control__panel{padding:var(--spacing-md)}.spending-control__form{grid-template-columns:1fr}.spending-control__submit{grid-column:1}.spending-control__summaries{grid-template-columns:1fr}}.spending-by-category{margin-top:var(--spacing-lg)}.spending-by-category__panel{gap:var(--spacing-lg);padding:var(--spacing-xl);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.spending-by-category__title{color:var(--color-text);font-size:1.5rem;font-weight:600}.spending-by-category__month-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;max-width:320px;min-height:44px;color:var(--color-text);padding:10px 12px}.spending-by-category__month-select:focus-visible{outline:3px solid var(--color-primary-light);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.spending-by-category__list{gap:var(--spacing-lg);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.spending-by-category__item{gap:var(--spacing-sm);min-width:0;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.spending-by-category__item h3{color:var(--color-text);font-size:1.125rem;font-weight:600}.spending-by-category__item p{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:0;font-size:.9375rem}.spending-by-category__item p:first-of-type{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}@media (width<=640px){.spending-by-category__panel{padding:var(--spacing-md)}.spending-by-category__list{grid-template-columns:1fr}.spending-by-category__item{padding:var(--spacing-md)}.spending-by-category__month-select{max-width:100%}}.dashboard{width:100%;max-width:1440px;padding:var(--spacing-lg);margin:0 auto}.dashboard__logout{border:1px solid var(--color-error);border-radius:var(--radius-md);background-color:var(--color-surface);min-height:44px;color:var(--color-error);cursor:pointer;padding:10px 20px;font-size:.9375rem;font-weight:600;transition:background-color .2s,color .2s}.dashboard__logout:hover{background-color:var(--color-error);color:#fff}.dashboard__logout:focus-visible{outline:3px solid var(--color-error-light);outline-offset:3px}.dashboard__logout{margin-top:var(--spacing-lg)}.reset-password{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.reset-password>img{width:280px;height:auto;margin-bottom:24px}.reset-password-description{color:var(--color-text-secondary);text-align:center;margin-bottom:24px;font-size:16px}.reset-password h1{color:var(--color-text);margin-bottom:16px;font-size:32px;font-weight:700}.reset-password form{flex-direction:column;gap:12px;width:100%;max-width:400px;display:flex}.reset-password form label{color:var(--color-text);font-size:14px;font-weight:500}.reset-password form input{border:1px solid var(--color-border);border-radius:8px;width:100%;height:44px;padding:0 12px;font-family:inherit;font-size:15px}.reset-password form input:focus{border-color:var(--color-primary);outline:none}.reset-password form>div{width:100%;position:relative}.reset-password form>div button{color:#000;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:0;right:0}.reset-password form>button{background-color:var(--color-primary);width:100%;height:44px;color:var(--color-surface);cursor:pointer;border:none;border-radius:8px;font-size:15px;font-weight:600}.reset-password form>button:hover{background-color:var(--color-primary-hover)}
