* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

body {
    background-color: #f5f7fb;
    color: #333;
}

/* Contenedor */
.container {
    max-width: 400px;
    margin: 80px auto;
    background: #ffffff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
}

h2 {
    margin-bottom: 20px;
    text-align: center;
    color: #2c3e50;
}

/* Logo */
.logo {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}

.logo img {
    max-width: 120px;
}

/* Inputs */
input {
    width: 100%;
    height: 42px;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #dcdfe6;
    border-radius: 8px;
    background-color: #fafbfc;
}

input:focus {
    outline: none;
    border-color: #4a90e2;
    background-color: #fff;
}

/* Password container */
.password-container {
    position: relative;
}

.password-container input {
    width: 100%;
    padding: 12px 40px 12px 12px; /* derecha para el ojo */
    font-size: 16px;
    border: 1px solid #dcdfe6;
    border-radius: 8px;
    background-color: #fafbfc;
    line-height: 1.2;
}

/* 👁️ Ojo centrado verticalmente en la línea del texto */
.toggle-password {
    position: absolute;
    right: 12px;
    top: 0;
    bottom: 0;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    font-size: 18px;
    color: #888;
    user-select: none;
}

.toggle-password:hover {
    color: #333;
}

/* Botón */
button {
    width: 100%;
    padding: 12px;
    background: #4a90e2;
    border: none;
    color: white;
    font-weight: bold;
    border-radius: 8px;
    cursor: pointer;
}

button:hover {
    background: #357abd;
}

/* Links */
a {
    display: block;
    text-align: center;
    margin-top: 10px;
    color: #4a90e2;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Dashboard */
.dashboard {
    max-width: 800px;
    margin: 50px auto;
    background: white;
    padding: 30px;
    border-radius: 12px;
}

.dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logout {
    background: #e74c3c;
    padding: 8px 12px;
    border-radius: 6px;
    color: white;
}

/* Web selector (dashboard) */
.web-card .web-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #dcdfe6;
    border-radius: 8px;
    background-color: #fafbfc;
    font-size: 15px;
    color: #2c3e50;
}
.status-msg { margin-top: 8px; font-size: 13px; color: #4b5563; }
.status-msg.success { color: #16a34a; }
.status-msg.error { color: #ef4444; }
.web-card p#web-current { font-size: 18px; font-weight: 600; color: #111827; }

/* NAVBAR */
.navbar {
    width: 100%;
    background: #1f2937;
    color: #fff;
    padding: 15px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.navbar .logo img { height: 40px; }
.navbar .nav-links { display: flex; gap: 20px; }
.navbar .nav-links a {
    color: #fff;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
}
.navbar .nav-links a:hover { color: #4caf50; }
.navbar .user-info { font-weight: 500; }

/* TABLES: mejorar apariencia de números y IPs */
.container table th, .container table td {
    padding: 12px 15px;
    vertical-align: middle;
}

.container table td.numeric {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Roboto Mono', 'Courier New', monospace;
    color: #111827;
    font-weight: 600;
}

.container table td.mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Roboto Mono', 'Courier New', monospace;
    font-variant-numeric: tabular-nums;
    color: #111827;
}

/* Pagination number buttons clearer */
.pagination button {
.pagination button {
    padding: 8px 12px;
    border-radius: 6px;
    border: none;
    background: #f3f4f6;
    color: #374151;
}
.pagination button.active { background: #10b981; color: #fff; }

.pagination span { color: #6b7280; }
.pagination input[type="number"] { font-size: 14px; }
