*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);min-height:100vh;color:#e8e8f0;padding:20px}input,button,select{font-family:inherit}.container{max-width:1100px;margin:0 auto}header{text-align:center;padding:40px 0 30px}header h1{font-size:2.4rem;font-weight:700;background:linear-gradient(90deg,#a78bfa,#60a5fa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px}.month-tip{background:linear-gradient(135deg,#a78bfa26,#60a5fa26);border:1px solid rgba(167,139,250,.3);border-radius:12px;padding:12px 24px;font-size:.95rem;color:#c4b5fd;font-style:italic;display:inline-block;margin-top:8px}.month-selector{display:flex;justify-content:center;align-items:center;gap:16px;margin:30px 0;flex-wrap:wrap}.month-selector select{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#e8e8f0;padding:12px 20px;border-radius:12px;font-size:1rem;cursor:pointer;outline:none}.month-selector select option{background:#302b63}.save-btn{background:linear-gradient(135deg,#a78bfa,#60a5fa);border:none;color:#fff;padding:12px 28px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.save-btn:hover{opacity:.85}.save-btn:disabled{opacity:.5;cursor:not-allowed}.print-btn{background:linear-gradient(135deg,#34d399,#059669);border:none;color:#fff;padding:12px 28px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.print-btn:hover{opacity:.85}.logout-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#a0a0b8;padding:10px 20px;border-radius:12px;font-size:.9rem;cursor:pointer;transition:all .2s}.logout-btn:hover{border-color:#ef4444;color:#ef4444}.card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:28px;margin-bottom:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card h2{font-size:1.2rem;font-weight:600;margin-bottom:20px;color:#a78bfa;display:flex;align-items:center;gap:8px}.resources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.resource-item{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px}.resource-item input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.2);color:#e8e8f0;font-size:.9rem;padding:6px 0;margin-bottom:10px;outline:none}.resource-item input::placeholder{color:#a0a0b8}table{width:100%;border-collapse:collapse}thead th{text-align:left;padding:10px 12px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#a0a0b8;border-bottom:1px solid rgba(255,255,255,.1)}tbody td{padding:8px 12px}tbody tr:hover{background:#ffffff08}tbody input[type=text],tbody input[type=number]{background:transparent;border:1px solid transparent;border-radius:8px;color:#e8e8f0;font-size:.9rem;padding:6px 10px;width:100%;outline:none;transition:border .2s}tbody input[type=text]:focus,tbody input[type=number]:focus{border-color:#a78bfa80;background:#ffffff0d}.badge-echeance{background:#a78bfa33;border:1px solid rgba(167,139,250,.4);color:#c4b5fd;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500;white-space:nowrap;display:inline-block;margin-top:4px}.btn-icon{background:transparent;border:1px solid rgba(255,255,255,.1);color:#a0a0b8;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.75rem;transition:all .2s}.btn-icon:hover:not(:disabled){background:#ffffff1a;color:#e8e8f0}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-delete{background:transparent;border:1px solid rgba(239,68,68,.3);color:#ef4444;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-delete:hover{background:#ef444426}.add-row-btn{background:transparent;border:1px dashed rgba(255,255,255,.2);color:#a0a0b8;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;margin-top:12px;transition:all .2s}.add-row-btn:hover{border-color:#a78bfa;color:#a78bfa}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}@media (min-width: 700px){.summary-grid{grid-template-columns:repeat(4,1fr)}}.summary-card{border-radius:16px;padding:20px;text-align:center}.summary-card.purple{background:linear-gradient(135deg,#a78bfa33,#a78bfa0d);border:1px solid rgba(167,139,250,.3)}.summary-card.blue{background:linear-gradient(135deg,#60a5fa33,#60a5fa0d);border:1px solid rgba(96,165,250,.3)}.summary-card.pink{background:linear-gradient(135deg,#f472b633,#f472b60d);border:1px solid rgba(244,114,182,.3)}.summary-card.green{background:linear-gradient(135deg,#34d39933,#34d3990d);border:1px solid rgba(52,211,153,.3)}.summary-card.red{background:linear-gradient(135deg,#ef444433,#ef44440d);border:1px solid rgba(239,68,68,.3)}.summary-card .label{font-size:.78rem;color:#a0a0b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.summary-card .amount{font-size:1.5rem;font-weight:700}.summary-card.purple .amount{color:#a78bfa}.summary-card.blue .amount{color:#60a5fa}.summary-card.pink .amount{color:#f472b6}.summary-card.green .amount{color:#34d399}.summary-card.red .amount{color:#ef4444}.chart-wrap{display:flex;flex-direction:column;align-items:center}canvas{max-width:320px;max-height:320px}.chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85rem}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legend-label{color:#e8e8f0}.legend-pct{color:#a78bfa;font-weight:600}.legend-amount{color:#a0a0b8}footer{text-align:center;padding:30px 0 20px;color:#a0a0b8;font-size:.82rem;border-top:1px solid rgba(255,255,255,.08);margin-top:10px}footer span{background:linear-gradient(90deg,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600}.auth-wrap{max-width:420px;margin:80px auto;padding:40px 32px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-wrap h1{font-size:2rem;text-align:center;margin-bottom:8px;background:linear-gradient(90deg,#a78bfa,#60a5fa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-wrap p.subtitle{text-align:center;color:#a0a0b8;font-size:.9rem;margin-bottom:28px}.auth-wrap label{display:block;color:#a0a0b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.auth-wrap input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:12px 14px;border-radius:10px;font-size:.95rem;margin-bottom:16px;outline:none;transition:border .2s}.auth-wrap input:focus{border-color:#a78bfa99}.auth-wrap .auth-error{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fca5a5;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:.88rem}.auth-wrap .auth-success{background:#34d39926;border:1px solid rgba(52,211,153,.35);color:#6ee7b7;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:.88rem}.auth-wrap button.primary{width:100%;background:linear-gradient(135deg,#a78bfa,#60a5fa);border:none;color:#fff;padding:12px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:4px}.auth-wrap button.primary:hover:not(:disabled){opacity:.85}.auth-wrap button.primary:disabled{opacity:.5;cursor:not-allowed}.auth-wrap .toggle{text-align:center;margin-top:18px;color:#a0a0b8;font-size:.88rem}.auth-wrap .toggle button{background:none;border:none;color:#a78bfa;cursor:pointer;font-size:inherit;text-decoration:underline;padding:0}.loading{text-align:center;padding:80px 20px;color:#a0a0b8}@media print{body{background:#fff!important;color:#000!important}.month-selector,.add-row-btn,.btn-icon,.btn-delete,.print-btn,.save-btn,.logout-btn{display:none!important}.card{border:1px solid #ddd!important;background:#fff!important}header h1{-webkit-text-fill-color:#302b63!important}.month-tip{color:#555!important;border-color:#ccc!important;background:#f5f5f5!important}.summary-card{border:1px solid #ddd!important;background:#f9f9f9!important}.summary-card .amount{-webkit-text-fill-color:#302b63!important;color:#302b63!important}tbody input{color:#000!important}footer{color:#555!important}}@media (max-width: 600px){.resources-grid{grid-template-columns:1fr}header h1{font-size:1.8rem}}
