:root{--navy:#0b2545;--primary:#055c9d;--cyan:#17a9ba;--teal:#04896f;--bg:#f3f6fa;--line:#e3e9f0;--ink:#101c30;--muted:#64748b}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.muted{color:var(--muted);font-size:13px}.centro{min-height:100vh;display:grid;place-items:center;padding:16px}.topbar{background:linear-gradient(135deg,var(--navy),var(--primary));color:#fff;position:relative;overflow:hidden}.topbar:after{content:"";position:absolute;right:-80px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(23,169,186,.35),transparent 65%);pointer-events:none}.topbar-inner{max-width:1280px;margin:0 auto;padding:18px 20px 56px;position:relative;z-index:1}.bar{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#ffffff24;font-family:Space Grotesk,sans-serif;font-weight:700}.brand-title{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:16px;line-height:1.1}.brand-sub{font-size:11px;color:#fff9}.bar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.user-chip{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:999px;background:#ffffff1a}.user-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--primary);font-weight:800;font-size:12px}.user-name{font-size:12px;font-weight:700;line-height:1.1;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10px;color:#ffffffa6}.hbtn{font-size:12px;font-weight:700;padding:9px 12px;border-radius:12px;background:#ffffff1a;color:#fff;border:0}.hbtn:hover{background:#fff3}.hello{margin-top:26px;display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.hello h1{font-family:Space Grotesk,sans-serif;font-size:clamp(24px,3.2vw,32px);font-weight:700;line-height:1.1}.hello p{margin-top:6px;font-size:13px;color:#ffffffb3}.hello-date{margin-left:auto;font-size:12px;color:#ffffffbf;text-transform:capitalize}.contenido{max-width:1280px;margin:-28px auto 40px;padding:0 20px;position:relative;z-index:2}.sec-head{margin-bottom:12px}.sec-head h2{font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:700;color:var(--navy)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.modulo{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 16px 16px;box-shadow:0 1px 2px #0b25450a,0 8px 24px -12px #0b25451f;transition:transform .2s,box-shadow .2s}.modulo:hover{transform:translateY(-3px);box-shadow:0 4px 10px #0b25450f,0 20px 40px -16px #0b254538}.modulo-barra{position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 4px 4px 0;background:var(--c)}.module-title{font-family:Space Grotesk,sans-serif;font-size:14.5px;font-weight:700;margin-bottom:6px}.modulo p{font-size:12px;color:var(--muted);line-height:1.4}.etiqueta{display:inline-block;margin-top:10px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;background:#eef3f8;color:var(--muted)}.login-fondo{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,var(--navy),var(--primary))}.login-card{width:min(400px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 80px -20px #0b254599;display:flex;flex-direction:column;gap:12px}.login-card h1{font-family:Space Grotesk,sans-serif;font-size:24px;color:var(--navy)}.marca-logo{font-family:Space Grotesk,sans-serif;font-weight:800;font-size:26px;letter-spacing:.06em;color:var(--primary)}.login-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600}.login-card input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-weight:400}.btn-primario{background:var(--primary);color:#fff;border:0;border-radius:12px;padding:11px;font-weight:700}.btn-primario:hover{background:var(--navy)}.btn-primario:disabled{opacity:.6}.error{background:#fdecea;color:#c0392b;border-radius:10px;padding:9px 12px;font-size:12px}
