:root{--primary-color: #6366f1;--primary-dark: #4f46e5;--success-color: #10b981;--warning-color: #f59e0b;--danger-color: #ef4444;--text-primary: #1f2937;--text-secondary: #6b7280;--text-muted: #9ca3af;--background: #f9fafb;--surface: #ffffff;--border: #e5e7eb;--border-light: #f3f4f6;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius: 12px;--radius-sm: 8px;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.6}.app{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);position:relative}.dashboard{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--spacing-md);animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dashboard-header{text-align:center;margin-bottom:var(--spacing-xl);padding-top:var(--spacing-lg)}.header-content h1{color:#fff;font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-sm);text-shadow:0 2px 4px rgba(0,0,0,.3)}.header-subtitle{color:#ffffffe6;font-size:1.1rem;font-weight:400}.dashboard-main{max-width:1200px;margin:0 auto}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;color:#fff;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.error-subtitle{opacity:.8;font-size:.9rem}.summary-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);margin-bottom:var(--spacing-2xl);overflow:hidden}.summary-header{background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));color:#fff;padding:var(--spacing-lg);text-align:center}.summary-header h2{font-size:1.5rem;font-weight:600;margin:0}.summary-content{padding:var(--spacing-xl)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.summary-item{text-align:center;padding:var(--spacing-lg);border-radius:var(--radius-sm);background:var(--border-light);transition:transform .2s ease}.summary-item:hover{transform:translateY(-2px)}.balance-item{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid var(--border)}.summary-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-weight:500}.summary-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.summary-value.paid{color:var(--success-color)}.summary-value.balance.negative{color:var(--danger-color)}.summary-value.balance.positive{color:var(--success-color)}.balance-alert{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:linear-gradient(135deg,#fef3c7,#fed7aa);border:1px solid var(--warning-color);border-radius:var(--radius-sm);color:#92400e;font-weight:500;box-shadow:var(--shadow-sm)}.balance-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #3b82f6;border-radius:var(--radius-sm);color:#1d4ed8;font-weight:500;box-shadow:var(--shadow-sm)}.alert-icon,.info-icon{font-size:1.5rem;flex-shrink:0}.alert-content,.info-content{display:flex;flex-direction:column;gap:2px}.alert-title,.info-title{font-weight:700;font-size:1rem}.alert-message,.info-message{font-size:.9rem;opacity:.9}.statements-section{margin-bottom:var(--spacing-2xl)}.section-title{color:#fff;font-size:1.8rem;font-weight:600;margin-bottom:var(--spacing-lg);text-shadow:0 2px 4px rgba(0,0,0,.3)}.statement-category{margin-bottom:var(--spacing-2xl)}.category-title{color:#fff;font-size:1.3rem;font-weight:600;margin-bottom:var(--spacing-lg);text-shadow:0 2px 4px rgba(0,0,0,.3);padding:var(--spacing-md);background:#ffffff1a;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.statements-grid{display:grid;gap:var(--spacing-lg)}.statement-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.statement-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.statement-card.paid-statement{opacity:.8;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.statement-card.paid-statement:hover{opacity:1;transform:translateY(-2px)}.statement-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid var(--border)}.statement-date{text-align:left}.date-main{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:2px}.date-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.due-badge{text-align:right;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600}.due-badge.paid{background:#bbf7d0;color:#059669}.due-badge.overdue{background:#fecaca;color:#dc2626}.due-badge.due-soon{background:#fed7aa;color:#ea580c}.due-badge.upcoming{background:#bbf7d0;color:#059669}.due-text{font-weight:700;margin-bottom:2px}.due-date{font-size:.75rem;opacity:.8}.statement-summary{padding:var(--spacing-lg);background:#fff}.summary-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) 0}.summary-row:last-child{margin-bottom:0}.balance-row{border-top:2px solid var(--border-light);padding-top:var(--spacing-sm);margin-top:var(--spacing-sm)}.summary-label{font-weight:500;color:var(--text-secondary)}.summary-amount{font-weight:700;font-size:1.1rem}.summary-amount.paid{color:var(--success-color)}.summary-amount.balance.negative{color:var(--danger-color);font-size:1.3rem}.summary-amount.balance.positive{color:var(--success-color)}.expand-button{width:100%;display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--border-light);border:none;border-top:1px solid var(--border);color:var(--text-secondary);font-weight:500;cursor:pointer;transition:all .2s ease}.expand-button:hover{background:#e5e7eb;color:var(--text-primary)}.expand-icon{transition:transform .2s ease;font-size:.8rem}.expand-icon.expanded{transform:rotate(180deg)}.transactions-list{border-top:1px solid var(--border);background:#fff}.transactions-header{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);background:#f8fafc}.transactions-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.transactions-content{padding:0 var(--spacing-lg) var(--spacing-lg)}.transaction-item{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-md);margin-bottom:var(--spacing-sm);border-radius:var(--radius-sm);border-left:4px solid transparent;background:var(--border-light);transition:all .2s ease}.transaction-item:last-child{margin-bottom:0}.transaction-item:hover{background:#e5e7eb;transform:translate(4px)}.transaction-item.paid{border-left-color:var(--success-color);background:#f0f9ff}.transaction-item.partial{border-left-color:var(--warning-color);background:#fffbeb}.transaction-item.unpaid{border-left-color:var(--danger-color);background:#fef2f2}.transaction-main{flex:1}.transaction-name{font-weight:600;color:var(--text-primary);margin-bottom:4px;font-size:1rem}.transaction-date{font-size:.85rem;color:var(--text-muted)}.transaction-amounts{text-align:right;flex-shrink:0}.transaction-total{font-weight:700;font-size:1.1rem;color:var(--text-primary);margin-bottom:4px}.transaction-status{font-size:.85rem;font-weight:500}.status-text{display:flex;align-items:center;gap:4px}.transaction-status.paid .status-text{color:var(--success-color)}.transaction-status.partial .status-text{color:var(--warning-color)}.transaction-status.unpaid .status-text{color:var(--danger-color)}@media (max-width: 768px){.dashboard{padding:var(--spacing-sm)}.header-content h1{font-size:2rem}.header-subtitle{font-size:1rem}.summary-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.summary-value{font-size:1.8rem}.statement-header{flex-direction:column;gap:var(--spacing-md);text-align:center}.statement-date,.due-badge{text-align:center}.transaction-item{flex-direction:column;gap:var(--spacing-sm)}.transaction-amounts{text-align:left;width:100%}.transaction-status .status-text{justify-content:flex-start}}@media (max-width: 480px){.dashboard{padding:var(--spacing-xs)}.summary-content{padding:var(--spacing-md)}.statement-header,.statement-summary,.transactions-header,.transactions-content{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.header-content h1{font-size:1.8rem}.summary-value,.section-title{font-size:1.5rem}}
