.login{background:#f7f8fb;justify-content:center;align-items:center;min-height:100vh;display:flex}.login__container{width:100%;max-width:360px;padding:32px}.login__brand{text-align:center;margin-bottom:40px}.login__icon{color:#fff;background:#2563eb;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;font-size:24px;display:flex}.login__brand h1{color:#4d5461;margin:0;font-size:28px;font-weight:600}.login__brand p{color:#7b8494;margin:8px 0 0;font-size:13px}.login__form{flex-direction:column;gap:18px;display:flex}.login__field{flex-direction:column;gap:7px;display:flex}.login__field label{font-size:13px;font-weight:600}.login__field input{color:#2563eb;background:#fff;border:1px solid #d9dee8;border-radius:6px;outline:none;height:42px;padding:0 12px}.login__field input:focus{border-color:#2563eb}.login__form button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;height:42px;font-weight:600}.login__footer{text-align:center;color:#858c99;margin-top:28px;font-size:11px}.login__error{color:#c2410c;margin:0;font-size:12px}.payment-modal-overlay{z-index:10;background:#0f172a59;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.payment-modal{background:#fff;border-radius:12px;width:100%;max-width:520px;padding:28px;box-shadow:0 20px 50px #0f172a26}.payment-modal__header{justify-content:space-between;gap:24px;margin-bottom:28px;display:flex}.payment-modal__header h2{color:#172033;margin:0 0 6px;font-size:20px}.payment-modal__header p{color:#7b8494;margin:0;font-size:13px}.payment-modal__error{color:#b42318;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0;padding:10px 12px;font-size:13px}.payment-modal__hint{color:#7b8494;margin:0;font-size:13px;line-height:1.5}.payment-modal__close{color:#7b8494;cursor:pointer;background:0 0;border:none;width:32px;height:32px;font-size:24px}.payment-modal__form{flex-direction:column;gap:16px;display:flex}.payment-modal__field{flex-direction:column;gap:7px;display:flex}.payment-modal__field label,.payment-modal__field-label{color:#374151;font-size:13px;font-weight:600}.payment-modal__frequency-trigger{color:#374151;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:6px;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:0 12px;display:flex}.payment-modal__frequency-trigger:focus-visible,.payment-modal__frequency-option:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.payment-modal__frequency-trigger:disabled,.payment-modal__frequency-option:disabled{cursor:not-allowed;opacity:.65}.payment-modal__frequency-options{background:#fff;border:1px solid #d9dee8;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid;box-shadow:0 8px 20px #0f172a1a}.payment-modal__frequency-options[hidden]{display:none}.payment-modal__frequency-option{color:#374151;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:6px;min-height:44px;padding:8px 12px}.payment-modal__frequency-option[aria-pressed=true]{color:#1d4ed8;background:#eff6ff;border-color:#2563eb;font-weight:600}.payment-modal__field input,.payment-modal__field select{color:#374151;background:#fff;border:1px solid #d9dee8;border-radius:6px;outline:none;height:42px;padding:0 12px}.payment-modal__field input:focus,.payment-modal__field select:focus{border-color:#2563eb}.payment-modal__actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.payment-modal__actions button{cursor:pointer;border-radius:6px;height:40px;padding:0 16px}.payment-modal__actions button:first-child{color:#374151;background:#fff;border:1px solid #d9dee8}.payment-modal__actions button:last-child{color:#fff;background:#2563eb;border:none;font-weight:600}.payment-modal__actions button:disabled,.payment-modal__close:disabled{cursor:not-allowed;opacity:.65}@media (width<=768px){.payment-modal-overlay{align-items:flex-end;padding:16px}.payment-modal{border-radius:14px;max-width:none;max-height:calc(100vh - 32px);padding:22px 18px;overflow-y:auto}.payment-modal__header{margin-bottom:22px}.payment-modal__header h2{font-size:18px}.payment-modal__actions{flex-direction:column-reverse}.payment-modal__actions button{width:100%}}.dashboard{background:#f7f8fb;min-height:100vh;padding:32px 48px 48px}.dashboard__header{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto 40px;display:flex}.dashboard__header h1{color:#172033;margin:0 0 6px;font-family:Georgia,serif;font-size:30px;font-weight:400}.dashboard__header p{color:#667085;margin:0;font-size:14px}.dashboard__logout{color:#374151;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:6px;padding:9px 16px}.dashboard__logout:hover{color:#2563eb;border-color:#2563eb}.dashboard__error{color:#b42318;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;max-width:1200px;margin:-16px auto 24px;padding:12px 16px;font-size:13px}.dashboard__summary{grid-template-columns:repeat(4,1fr);gap:16px;max-width:1200px;margin:0 auto 24px;display:grid}.summary-card{background:#fff;border:1px solid #e4e8ef;border-radius:12px;min-width:0;padding:22px 24px;box-shadow:0 1px 2px #0f172a08}.summary-card__label{color:#7b8494;margin-bottom:10px;font-size:13px;display:block}.summary-card__value{color:#172033;font-size:24px;font-weight:600;display:block}.summary-card__count{color:#8a93a3;margin-top:8px;font-size:12px;display:block}.dashboard__charts{grid-template-columns:repeat(2,1fr);gap:16px;max-width:1200px;margin:0 auto 24px;display:grid}.dashboard__chart{background:#fff;border:1px solid #e4e8ef;border-radius:12px;padding:24px;box-shadow:0 1px 2px #0f172a08}.dashboard__chart h2{color:#172033;margin:0 0 22px;font-size:18px;font-weight:600}.category-list,.monthly-list{flex-direction:column;gap:18px;display:flex}.category-item{flex-direction:column;gap:8px;display:flex}.category-item__header{justify-content:space-between;align-items:center;gap:16px;display:flex}.category-item__header span{color:#475467;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.category-item__header strong{color:#172033;white-space:nowrap;font-size:13px}.category-item__bar{background:#edf2f7;border-radius:999px;height:8px;overflow:hidden}.category-item__progress{border-radius:inherit;background:#2563eb;height:100%;transition:width .3s}.monthly-item{flex-direction:column;gap:8px;display:flex}.monthly-item__header{justify-content:space-between;align-items:center;gap:16px;display:flex}.monthly-item__header span{color:#475467;font-size:13px}.monthly-item__header strong{color:#172033;font-size:13px}.dashboard__payments{background:#fff;border:1px solid #e4e8ef;border-radius:12px;max-width:1200px;margin:0 auto;overflow:hidden;box-shadow:0 1px 2px #0f172a08}.dashboard__payments-header{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.dashboard__payments-header h2{color:#172033;margin:0 0 5px;font-size:18px}.dashboard__payments-header span{color:#7b8494;font-size:13px}.dashboard__add-payment{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;min-height:38px;padding:0 14px;font-size:13px;font-weight:600}.dashboard__add-payment:hover{background:#1d4ed8}.dashboard__filters{border-bottom:1px solid #edf0f4;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 24px;display:flex}.dashboard__filters input,.dashboard__filters select{color:#374151;background:#fff;border:1px solid #d9dee8;border-radius:6px;outline:none;height:36px;padding:0 10px;font-size:12px}.dashboard__filters input[type=text]{min-width:210px}.dashboard__filters input[type=date]{min-width:140px}.dashboard__filters input:focus,.dashboard__filters select:focus{border-color:#2563eb}.dashboard__filters button{color:#667085;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:6px;height:36px;padding:0 12px;font-size:12px;font-weight:600}.dashboard__filters button:hover{color:#2563eb;border-color:#2563eb}.payment-list{flex-direction:column;display:flex}.payment-card{border-bottom:1px solid #edf0f4;padding:20px 24px}.payment-card:last-child{border-bottom:none}.payment-card__main{justify-content:space-between;align-items:center;gap:24px;margin-bottom:14px;display:flex}.payment-card__main h3{color:#172033;margin:0 0 5px;font-size:14px;font-weight:600}.payment-card__main>div>span{color:#8a93a3;font-size:12px}.payment-card__main>strong{color:#172033;white-space:nowrap;font-size:15px}.payment-card__details{flex-wrap:wrap;align-items:center;gap:10px 20px;display:flex}.payment-card__actions{gap:8px;margin-left:auto;display:flex}.payment-card__actions button{color:#374151;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:5px;padding:5px 9px;font-size:12px}.payment-card__actions button:hover{color:#2563eb;border-color:#2563eb}.payment-card__actions button:disabled{cursor:not-allowed;opacity:.6}.payment-card__actions .payment-card__delete:hover{color:#b42318;border-color:#dc2626}.payment-card__details>span:not(.payment-status){color:#667085;font-size:12px}.payment-status{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.payment-status--paid{color:#217a4b;background:#e8f5ee}.payment-status--pending{color:#a16207;background:#fff4df}.payment-status--overdue{color:#b42318;background:#fef2f2}.dashboard__loading,.dashboard__empty{text-align:center;color:#8a93a3;padding:56px 24px;font-size:13px}.dashboard__load-error{color:#b42318;text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;display:flex}.dashboard__load-error p{margin:0;font-size:13px}.dashboard__load-error button{color:#374151;cursor:pointer;background:#fff;border:1px solid #d9dee8;border-radius:6px;min-height:38px;padding:0 14px}.dashboard__load-error button:hover:not(:disabled){color:#2563eb;border-color:#2563eb}.dashboard__load-error button:disabled{cursor:not-allowed;opacity:.6}@media (width<=900px){.dashboard{padding:24px 20px 40px}.dashboard__summary{grid-template-columns:repeat(2,1fr)}.dashboard__charts{grid-template-columns:1fr}.dashboard__filters input[type=text]{flex:1;min-width:180px}}@media (width<=768px){.dashboard{padding:20px 16px 32px}.dashboard__header{align-items:flex-start;gap:16px;margin-bottom:24px}.dashboard__header h1{font-size:24px}.dashboard__logout{flex-shrink:0}.dashboard__summary{grid-template-columns:1fr;gap:10px}.summary-card{padding:18px}.summary-card__value{font-size:21px}.dashboard__chart{padding:18px 16px}.dashboard__payments-header{align-items:flex-start;padding:20px 16px}.dashboard__add-payment{flex-shrink:0}.dashboard__filters{padding:12px 16px}.dashboard__filters input,.dashboard__filters select,.dashboard__filters button{width:100%;min-width:0!important}.payment-card{padding:18px 16px}.payment-card__main{align-items:flex-start;gap:12px}.payment-card__main>strong{font-size:14px}.payment-card__details{flex-direction:column;align-items:flex-start;gap:8px}.payment-card__actions{margin-left:0}}.app-state{color:#475467;text-align:center;background:#f7f8fb;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.app-state p{margin:0}.app-state button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:6px;min-height:38px;padding:0 14px;font-weight:600}.app-state button:hover{background:#1d4ed8}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#1f2937;font-family:Arial,sans-serif}button,input{font:inherit}
