*{margin:0;padding:0;box-sizing:border-box}:root{--green: #22c55e;--yellow: #eab308;--red: #ef4444;--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--primary: #3b82f6;--primary-hover: #2563eb}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:1.5rem 0;flex-shrink:0}.sidebar h1{font-size:1.25rem;padding:0 1.5rem;margin-bottom:2rem;color:var(--primary)}.sidebar nav a{display:block;padding:.625rem 1.5rem;color:var(--text-muted);text-decoration:none;font-size:.875rem;font-weight:500;transition:all .15s}.sidebar nav a:hover,.sidebar nav a.active{color:var(--primary);background:#eff6ff}.sidebar .logout-btn{margin:2rem 1.5rem 0;padding:.5rem 1rem;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.8rem;width:calc(100% - 3rem)}.main{flex:1;padding:2rem;max-width:1200px}.main h2{font-size:1.5rem;margin-bottom:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.5rem}.card .big-number{font-size:1.75rem;font-weight:700}.card .sub-text{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.health-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.health-dot.green{background:var(--green)}.health-dot.yellow{background:var(--yellow)}.health-dot.red{background:var(--red)}.progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:visible;position:relative;margin-top:.5rem}.progress-bar .fill{height:100%;border-radius:4px;transition:width .3s;overflow:hidden}.progress-bar .fill.green{background:var(--green)}.progress-bar .fill.yellow{background:var(--yellow)}.progress-bar .fill.red{background:var(--red)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}td.amount{text-align:right;font-variant-numeric:tabular-nums}th.amount{text-align:right}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:.25rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.875rem;font-family:inherit}.form-group textarea{resize:vertical;min-height:60px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--red);color:#fff}.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn-outline{background:none;border:1px solid var(--border);color:var(--text-muted)}.btn-outline:hover{background:var(--bg)}.btn-group{display:flex;gap:.5rem;margin-top:1rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem;width:100%;max-width:380px;text-align:center}.login-card h1{font-size:1.5rem;margin-bottom:.5rem;color:var(--primary)}.login-card p{color:var(--text-muted);font-size:.875rem;margin-bottom:1.5rem}.login-card input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:8px;text-align:center;font-size:1.25rem;letter-spacing:.5em;margin-bottom:1rem}.login-card .btn{width:100%;padding:.75rem}.login-card .error{color:var(--red);font-size:.8rem;margin-bottom:.5rem}.group-section{margin-bottom:1.5rem}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.group-header h3{font-size:.9rem;font-weight:600;margin:0;text-transform:none;letter-spacing:0;color:var(--text)}.group-header .group-total{font-size:.8rem;color:var(--text-muted)}.account-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.8rem}.account-row .name{display:flex;align-items:center;gap:4px;color:var(--text-muted)}.account-row .amounts{font-variant-numeric:tabular-nums;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface);border-radius:12px;padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h3{font-size:1.1rem;margin-bottom:1rem;text-transform:none;letter-spacing:0;color:var(--text)}.proposal-card{border-left:4px solid var(--border)}.proposal-card.open{border-left-color:var(--primary)}.proposal-card.approved{border-left-color:var(--green)}.proposal-card.rejected{border-left-color:var(--red)}.proposal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.proposal-cost{font-size:1.25rem;font-weight:700}.status-badge{padding:.15rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-badge.open{background:#dbeafe;color:#1d4ed8}.status-badge.approved{background:#dcfce7;color:#166534}.status-badge.rejected{background:#fee2e2;color:#991b1b}.filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:end}.filters .form-group{margin-bottom:0}.filters select,.filters input{padding:.4rem .6rem;font-size:.8rem}@media(max-width:768px){.app{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border);padding:1rem 0}.sidebar h1{margin-bottom:.5rem}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav a{white-space:nowrap}.main{padding:1rem}.form-row{grid-template-columns:1fr}}
