/* =====================================================================
   login.css  ·  Pantalla de login DCN  (usa variables de theme.css)
   Diseno original del usuario, adaptado al sistema de temas.
   ===================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap');

* {
  margin: 0; padding: 0; box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
  -webkit-user-select: none; user-select: none;
}

body {
  background-color: var(--bg);
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  color: var(--txt);
  opacity: 0;
  transition: opacity 0.9s ease-in-out;
}
body.loaded { opacity: 1; }

.container { width: 100%; max-width: 500px; padding: 20px; }

.login-box { padding: 30px; border-radius: 10px; text-align: center; transition: all 0.3s ease; }

h1 { font-size: 22px; font-weight: 700; }

.description { font-size: 14px; margin: 10px 0 20px; color: var(--txt-2); line-height: 1.5; }

.login-form { display: flex; flex-direction: column; gap: 20px; }
.login-form.hidden { display: none; }

.login-field { width: 100%; }
.input-container { position: relative; width: 100%; }

input {
  width: 100%;
  padding: 12px 45px 12px 15px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 14px;
  background: var(--surface);
  color: var(--txt);
  outline: none;
}
input::placeholder { color: var(--txt-3); }
input::selection { background: var(--txt-3); color: var(--bg); }

.input-container i {
  position: absolute; right: 15px; top: 50%; transform: translateY(-50%);
  font-size: 20px; color: var(--txt-3); cursor: pointer;
}

.form-footer { display: flex; flex-direction: column; gap: 12px; }
.form-footer p { font-size: 13px; color: var(--txt-3); }
.form-footer a {
  font-size: 13px; color: var(--txt-3); text-decoration: none; cursor: pointer;
}
.form-footer a:hover { text-decoration: underline; }

.login-button {
  width: 100%;
  background: var(--accent);
  color: #fff;
  border: none;
  padding: 12px;
  border-radius: var(--radius-pill);
  font-size: 14px; font-weight: 700;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.1s ease;
}
.login-button:hover { background: var(--accent-hover); }
.login-button:active { transform: scale(0.97); }
.login-button:disabled { opacity: 0.6; cursor: not-allowed; }

.alert-msg {
  font-size: 13px; padding: 10px 14px; border-radius: 10px; display: none; text-align: left;
}
.alert-error   { background: rgba(197,93,74,0.18);  color: #f0a594; display: block; }
.alert-success { background: rgba(46,139,87,0.18);   color: #8fd6ab; display: block; }

.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease; z-index: 10000;
}
.modal-overlay.active { opacity: 1; pointer-events: auto; }
.modal-box {
  background: var(--bg-2);
  padding: 24px; border-radius: 12px; text-align: center;
  transform: scale(0.85); transition: transform 0.3s ease;
  width: 100%; max-width: 420px;
}
.modal-overlay.active .modal-box { transform: scale(1); }
.modal-box i { font-size: 64px; color: var(--txt); }
.modal-box h2 { margin-top: 16px; font-size: 24px; font-weight: 600; }
.modal-box h3 { font-size: 16px; font-weight: 400; margin-top: 6px; color: var(--txt-2); }
.modal-box .buttons { display: flex; gap: 12px; margin-top: 20px; }
.modal-box button { flex: 1; font-size: 14px; padding: 11px; border-radius: 8px; border: none; cursor: pointer; color: #fff; }
.cancel-btn  { background: var(--danger); }
.cancel-btn:hover { background: var(--danger-hover); }
.confirm-btn { background: var(--ok); }
.confirm-btn:hover { background: var(--ok-hover); }

.hidden { display: none; }