:root{--verde: #12895b;--verde-oscuro: #0d6b47;--verde-mas-oscuro: #0a4f35;--verde-claro: #50b797;--verde-suave: #e6f5ef;--texto: #1f2a27;--texto-suave: #64716d;--fondo: #f4f7f6;--borde: #e2e8e5;--sombra: 0 1px 2px rgba(16, 40, 32, .04), 0 8px 24px rgba(16, 40, 32, .06);--sombra-hover: 0 4px 10px rgba(16, 40, 32, .06), 0 16px 32px rgba(16, 40, 32, .1);--radio: 16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif;background:var(--fondo);color:var(--texto);-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:linear-gradient(120deg,var(--verde-mas-oscuro),var(--verde-oscuro) 60%,var(--verde));color:#fff;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;position:sticky;top:0;z-index:10;box-shadow:0 4px 16px #0a281e2e}.topbar .brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.2px;white-space:nowrap}.topbar .brand img{height:32px;width:auto;display:block}.topbar .brand-texto{display:flex;flex-direction:column;line-height:1.15}.topbar .brand-texto small{font-weight:500;font-size:11px;opacity:.75;letter-spacing:.4px}.topbar nav{display:flex;gap:4px;flex-wrap:wrap}.topbar nav a{color:#fff;text-decoration:none;padding:8px 14px;border-radius:999px;opacity:.85;font-size:14px;font-weight:500;transition:background .15s ease,opacity .15s ease}.topbar nav a:hover{background:#ffffff1a;opacity:1}.topbar nav a.active{opacity:1;background:#ffffff2e}.sesion-actual{display:flex;align-items:center;gap:12px;font-size:13px}.sesion-actual button{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);padding:7px 14px;border-radius:999px;cursor:pointer;font-weight:500;transition:background .15s ease,border-color .15s ease}.sesion-actual button:hover{background:#ffffff1f;border-color:#ffffffb3}.content{padding:28px 24px 48px;max-width:1000px;margin:0 auto;width:100%}.tarjeta-general{background:#fff;border-radius:var(--radio);padding:28px;text-align:center;box-shadow:var(--sombra);margin-bottom:24px;border:1px solid var(--borde)}.tarjeta-general h2{margin:0 0 4px;font-size:15px;color:var(--texto-suave);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pct-grande{font-size:52px;font-weight:800;background:linear-gradient(120deg,var(--verde-oscuro),var(--verde-claro));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}.barra-progreso{background:#e9efec;border-radius:999px;height:10px;margin-top:14px;overflow:hidden}.barra-progreso-fill{background:linear-gradient(90deg,var(--verde-oscuro),var(--verde-claro));height:100%;border-radius:999px;transition:width .6s cubic-bezier(.22,1,.36,1)}.grafico{background:#fff;border-radius:var(--radio);padding:20px 22px;margin-bottom:24px;box-shadow:var(--sombra);border:1px solid var(--borde)}.grafico h3{margin:0 0 14px;font-size:16px;color:var(--verde-mas-oscuro)}.grafico-tooltip{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:8px 12px;box-shadow:var(--sombra-hover);font-size:13px}.grafico-tooltip .tooltip-titulo{font-weight:700;color:var(--verde-mas-oscuro);margin-bottom:2px}.filtros{display:flex;gap:14px;align-items:end;margin-bottom:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:16px 18px;box-shadow:var(--sombra)}.filtros label{display:flex;flex-direction:column;font-size:12px;font-weight:600;color:var(--texto-suave);gap:5px}.filtros button{background:linear-gradient(120deg,var(--verde-oscuro),var(--verde));color:#fff;border:none;padding:10px 18px;border-radius:10px;cursor:pointer;height:fit-content;font-weight:600;font-size:13px;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;box-shadow:0 2px 6px #0d6b4740}.filtros button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0d6b474d}.filtros button:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-container{background:#fff;border-radius:var(--radio);padding:28px;box-shadow:var(--sombra);border:1px solid var(--borde)}.form-container h2{margin-top:0;color:var(--verde-mas-oscuro)}.form-container form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-container label{display:flex;flex-direction:column;font-size:13px;font-weight:600;color:var(--texto-suave);gap:6px}.form-container input,.form-container select{padding:10px 12px;border-radius:10px;border:1px solid var(--borde);font:inherit;color:var(--texto);background:#fbfdfc;transition:border-color .15s ease,box-shadow .15s ease}.form-container input:focus,.form-container select:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px #12895b26;background:#fff}.form-container button{grid-column:span 2;background:linear-gradient(120deg,var(--verde-oscuro),var(--verde));color:#fff;border:none;padding:13px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 4px 10px #0d6b4740}.form-container button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0d6b4752}.form-container button:disabled{opacity:.65;cursor:not-allowed;transform:none}.tabla-recientes-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--borde)}.tabla-recientes{width:100%;border-collapse:collapse;font-size:13px}.tabla-recientes th,.tabla-recientes td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--borde);white-space:nowrap}.tabla-recientes thead th{background:var(--verde-suave);color:var(--verde-mas-oscuro);font-weight:700;position:sticky;top:0}.tabla-recientes tbody tr{transition:background .1s ease}.tabla-recientes tbody tr:hover{background:var(--verde-suave)}.tabla-recientes tbody tr:last-child td{border-bottom:none}.tabla-recientes button{background:var(--verde);color:#fff;border:none;padding:7px 12px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;transition:transform .12s ease,background .12s ease}.tabla-recientes button:hover{background:var(--verde-oscuro);transform:translateY(-1px)}.tabla-recientes button:disabled{opacity:.6;cursor:not-allowed;transform:none}.cantidad-recursos{grid-column:span 2;max-width:280px}.recurso-card{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px;border:1px solid var(--borde);border-radius:14px;padding:18px;background:#fafcfb}.recurso-card h4{grid-column:span 2;margin:0 0 4px;color:var(--verde-oscuro)}.ayuda{color:var(--texto-suave);font-size:13px;line-height:1.5}.exito{color:var(--verde-oscuro);font-weight:600}.error{color:#b00020;font-weight:600}.login-container{max-width:380px;margin:60px auto 0;text-align:center}.login-container .login-logo{height:48px;width:auto;margin-bottom:18px}.login-container h2{margin-top:0}.login-container form{grid-template-columns:1fr;text-align:left}.login-container form button{grid-column:span 1}@media (max-width: 640px){.content{padding:20px 16px 40px}.form-container form,.recurso-card{grid-template-columns:1fr}.cantidad-recursos,.form-container button{grid-column:span 1}.topbar{padding:12px 16px}}
