@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--bg-primary: #0a0f1a;--bg-secondary: #111827;--bg-card: #1a2332;--bg-hover: #243044;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-primary: #3b82f6;--accent-secondary: #6366f1;--positive: #10b981;--positive-bg: rgba(16, 185, 129, .1);--negative: #ef4444;--negative-bg: rgba(239, 68, 68, .1);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .1);--border-color: #1e293b;--border-light: #334155;--font-sans: "Plus Jakarta Sans", -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 6px rgba(0,0,0,.4);--shadow-lg: 0 10px 25px rgba(0,0,0,.5)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--spacing-md)}.loading-spinner{font-size:3rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.25rem;color:var(--text-secondary)}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg);background:radial-gradient(ellipse at top,rgba(59,130,246,.1) 0%,transparent 50%),var(--bg-primary)}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-lg)}.auth-logo{font-size:3rem;text-align:center;margin-bottom:var(--spacing-md)}.auth-card h1{text-align:center;font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-xs)}.auth-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.auth-card form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-card input{width:100%;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:border-color .2s,box-shadow .2s}.auth-card input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f633}.auth-card button[type=submit]{width:100%;padding:var(--spacing-md);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.auth-card button[type=submit]:hover{background:#2563eb}.auth-card button[type=submit]:active{transform:scale(.98)}.auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-msg{color:var(--negative);text-align:center;font-size:.875rem;margin-top:var(--spacing-sm)}.success-msg{color:var(--positive);text-align:center;font-size:.875rem;margin-top:var(--spacing-sm)}.auth-toggle{text-align:center;margin-top:var(--spacing-lg);color:var(--text-secondary);font-size:.875rem}.auth-toggle button{background:none;border:none;color:var(--accent-primary);cursor:pointer;font-weight:600;margin-left:var(--spacing-xs)}.auth-toggle button:hover{text-decoration:underline}.dashboard{display:flex;flex-direction:column;height:100vh;overflow:hidden}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.header-left{display:flex;align-items:center;gap:var(--spacing-lg)}.header-left h1{font-size:1.5rem;font-weight:700}.header-date{color:var(--text-secondary);font-size:.875rem}.header-actions{display:flex;gap:var(--spacing-sm)}.header-actions button{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:all .2s}.header-actions button:hover{background:var(--bg-hover);border-color:var(--border-light)}.btn-logout{color:var(--text-secondary)!important}.summary-section{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.summary-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.card-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.card-value{font-size:1.5rem;font-weight:700;font-family:var(--font-mono)}.card-value.positive{color:var(--positive)}.card-value.negative{color:var(--negative)}.card-sub{font-size:.75rem;color:var(--text-secondary)}.projected-card.danger{border-color:var(--negative);background:var(--negative-bg)}.projected-card.danger .card-value{color:var(--negative)}.alerts-section{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);flex-shrink:0}.alert{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:.875rem}.alert-income{background:var(--positive-bg);border:1px solid var(--positive);color:var(--positive)}.alert-expense{background:var(--negative-bg);border:1px solid var(--negative);color:var(--negative)}.main-content{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--spacing-lg);padding:var(--spacing-lg) var(--spacing-xl);flex:1;overflow:hidden}.lists-panel{display:flex;flex-direction:column;gap:var(--spacing-md);overflow:hidden}.list-section{flex:1;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;min-height:0}.list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.list-header h2{font-size:1rem;font-weight:600}.btn-add{padding:var(--spacing-xs) var(--spacing-md);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-add:hover{background:#2563eb}.list-content{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.empty-state{text-align:center;color:var(--text-muted);padding:var(--spacing-xl)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--bg-card)}.data-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);vertical-align:middle}.data-table tr{cursor:pointer;transition:background .2s}.data-table tr:hover{background:var(--bg-hover)}.data-table .amount{font-family:var(--font-mono);font-weight:500}.sp-badge{display:inline-block;margin-left:var(--spacing-xs);padding:.125rem .375rem;background:var(--warning-bg);color:var(--warning);border-radius:3px;font-size:.625rem;font-weight:600}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.status-badge.received,.status-badge.paid{background:var(--positive-bg);color:var(--positive)}.status-badge.overdue{background:var(--negative-bg);color:var(--negative)}.status-badge.due-soon{background:var(--warning-bg);color:var(--warning)}.status-badge.invoiced,.status-badge.upcoming{background:#6366f11a;color:var(--accent-secondary)}.daily-panel{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.logic-note{font-size:.75rem;color:var(--text-muted)}.daily-content{flex:1;overflow-y:auto}.daily-table{width:100%;border-collapse:collapse;font-size:.875rem}.daily-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.daily-table th:last-child{text-align:right}.daily-row td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);vertical-align:top}.daily-row.today-row{background:#3b82f61a}.daily-row.past-row{opacity:.6}.date-cell{white-space:nowrap}.date-day{font-weight:500}.today-badge{display:inline-block;margin-left:var(--spacing-sm);padding:.125rem .5rem;background:var(--accent-primary);color:#fff;border-radius:3px;font-size:.625rem;font-weight:700;text-transform:uppercase}.income-cell,.expense-cell{cursor:pointer}.income-cell:hover,.expense-cell:hover{background:var(--bg-hover)}.income-cell .amount,.expense-cell .amount{display:block;font-family:var(--font-mono);font-weight:600}.income-cell .amount{color:var(--positive)}.expense-cell .amount{color:var(--negative)}.income-cell .details,.expense-cell .details{display:block;font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.net-cell{font-family:var(--font-mono);font-weight:500}.net-cell.positive{color:var(--positive)}.net-cell.negative{color:var(--negative)}.balance-cell{text-align:right;font-family:var(--font-mono);font-weight:600}.balance-good{color:var(--positive)}.balance-warning{color:var(--warning)}.balance-danger{color:var(--negative)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--spacing-lg)}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1;padding:var(--spacing-xs)}.modal-close:hover{color:var(--text-primary)}.entry-form{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary)}.form-group textarea{resize:vertical;min-height:60px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.checkbox-group{flex-direction:row;align-items:center;gap:var(--spacing-md)}.checkbox-group label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.sp-effective{font-family:var(--font-mono);font-size:.875rem;color:var(--warning)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.btn-cancel{padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-save{padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-weight:500;cursor:pointer;transition:background .2s}.btn-save:hover{background:#2563eb}.btn-delete{padding:var(--spacing-sm) var(--spacing-lg);background:var(--negative-bg);border:1px solid var(--negative);border-radius:var(--radius-sm);color:var(--negative);cursor:pointer;margin-right:auto;transition:all .2s}.btn-delete:hover{background:var(--negative);color:#fff}.items-detail{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.detail-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-sm)}.detail-name{flex:1;font-weight:500}.detail-amount{font-family:var(--font-mono);font-weight:600}@media (max-width: 1200px){.main-content{grid-template-columns:1fr}.lists-panel{flex-direction:row}.summary-section{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard-header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.header-actions{flex-wrap:wrap;justify-content:center}.summary-section{grid-template-columns:1fr;padding:var(--spacing-md)}.main-content{padding:var(--spacing-md)}.lists-panel{flex-direction:column}.form-row{grid-template-columns:1fr}}
