@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap');

:root {
  --brand-navy: #062a5d;
  --brand-navy-dark: #031734;
  --brand-sky: #00b7f6;
  --brand-sky-dark: #0093c7;
  --brand-gray: #f4f6fb;
  --brand-gray-mid: #dae0ec;
  --brand-text: #2f3b52;
  --brand-muted: #6b7a99;
  --brand-shadow: 0 25px 45px rgba(6, 42, 93, 0.15);
  --brand-radius: 18px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body.brand-bg {
  min-height: 100vh;
  margin: 0;
  font-family: 'Open Sans', sans-serif;
  color: var(--brand-text);
  background: linear-gradient(135deg, rgba(0, 183, 246, 0.15), rgba(6, 42, 93, 0.05)), var(--brand-gray);
}

a {
  color: var(--brand-sky);
}

a:hover {
  color: var(--brand-sky-dark);
}

.brand-hero {
  text-align: center;
  margin-bottom: 2rem;
}

.brand-hero-logo {
  max-width: 180px;
  height: auto;
}

.brand-hero-title {
  font-weight: 700;
  color: var(--brand-navy);
  letter-spacing: 0.5px;
}

.brand-shell {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
}

.brand-card {
  background: #ffffff;
  border-radius: var(--brand-radius);
  box-shadow: var(--brand-shadow);
  padding: 2rem;
  border: 1px solid rgba(6, 42, 93, 0.08);
}

.brand-card + .brand-card {
  margin-top: 2rem;
}

.brand-section-heading {
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--brand-navy);
}

.brand-section-subtitle {
  color: var(--brand-muted);
  font-size: 0.95rem;
}

.btn-brand-primary {
  background: var(--brand-navy);
  border-color: var(--brand-navy);
  color: #fff;
}

.btn-brand-primary:hover {
  background: var(--brand-navy-dark);
  border-color: var(--brand-navy-dark);
  color: #fff;
}

.btn-brand-accent {
  background: var(--brand-sky);
  border-color: var(--brand-sky);
  color: #fff;
}

.btn-brand-accent:hover {
  background: var(--brand-sky-dark);
  border-color: var(--brand-sky-dark);
  color: #fff;
}

.brand-badge {
  background: rgba(0, 183, 246, 0.15);
  color: var(--brand-navy);
  font-weight: 600;
}

.brand-table thead {
  background: var(--brand-navy);
  color: #fff;
  border-color: var(--brand-navy);
}

.brand-table tbody tr {
  border-bottom: 1px solid rgba(6, 42, 93, 0.1);
}

.brand-table tbody tr:hover {
  background: rgba(0, 183, 246, 0.05);
}

.brand-nav {
  background: #fff;
  border-bottom: 1px solid rgba(6, 42, 93, 0.08);
  box-shadow: 0 20px 35px rgba(6, 42, 93, 0.08);
}

.brand-nav .nav-logo {
  height: 42px;
}

.brand-nav .nav-title {
  font-weight: 700;
  color: var(--brand-navy);
}

.brand-nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.brand-nav-links a {
  text-decoration: none;
}

.brand-progress .progress {
  height: 14px;
  border-radius: 999px;
  background: rgba(6, 42, 93, 0.08);
}

.brand-progress .progress-bar {
  background: linear-gradient(120deg, var(--brand-navy), var(--brand-sky));
  font-weight: 600;
}

.brand-input label {
  color: var(--brand-muted);
  font-size: 0.9rem;
  font-weight: 600;
}

.brand-input input,
.brand-input select,
.brand-input textarea {
  border-radius: 12px;
  border: 1px solid rgba(6, 42, 93, 0.2);
  padding: 0.75rem 1rem;
  color: var(--brand-text);
}

.brand-input input:focus,
.brand-input select:focus,
.brand-input textarea:focus {
  border-color: var(--brand-sky);
  box-shadow: 0 0 0 4px rgba(0, 183, 246, 0.2);
}

.brand-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  color: var(--brand-navy);
  text-decoration: none;
}

.brand-link-btn i {
  color: var(--brand-sky);
}

.brand-card-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.brand-iframe-wrapper {
  border-radius: var(--brand-radius);
  overflow: hidden;
  border: 2px solid rgba(6, 42, 93, 0.08);
  box-shadow: var(--brand-shadow);
  background: #1f2336;
}

.brand-iframe-wrapper iframe {
  width: 100%;
  height: 700px;
  border: none;
}

.brand-status-pill {
  border-radius: 999px;
  padding: 0.3rem 0.85rem;
  font-weight: 600;
  font-size: 0.85rem;
}

.brand-status-pill--vigente { background: #d4f8e8; color: #1f8f52; }
.brand-status-pill--vencido { background: #ffe2e2; color: #c62828; }
.brand-status-pill--firmado { background: #e2ecff; color: var(--brand-navy); }

.brand-alert {
  border-radius: var(--brand-radius);
  border: 1px solid rgba(198, 40, 40, 0.2);
  background: #fff6f6;
  color: #b33a3a;
}

.brand-form-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

@media (min-width: 768px) {
  .brand-form-actions {
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
  }
}

.brand-btn-ghost {
  color: var(--brand-navy);
  border: 1px solid rgba(6, 42, 93, 0.3);
  background: transparent;
}

.brand-btn-ghost:hover {
  border-color: var(--brand-navy);
  color: var(--brand-navy);
}

.brand-search-card {
  max-width: 460px;
  margin: 0 auto;
}

.brand-iframe-compact iframe {
  height: 600px;
}

.brand-shadow-sm {
  box-shadow: 0 15px 30px rgba(6, 42, 93, 0.12);
}

@media (max-width: 768px) {
  .brand-shell {
    padding: 1.5rem 0.75rem 2.5rem;
  }

  .brand-card {
    padding: 1.5rem;
  }
}

.brand-nav-links {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.brand-nav-links a {
  font-weight: 600;
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  border: 1px solid rgba(6, 42, 93, 0.15);
  color: var(--brand-navy);
  text-decoration: none;
}

.brand-nav-links a:hover {
  background: rgba(0, 183, 246, 0.1);
  border-color: rgba(0, 183, 246, 0.5);
}

.brand-card-menu {
  display: block;
  height: 100%;
  border-radius: var(--brand-radius);
  box-shadow: var(--brand-shadow);
  border: 1px solid rgba(6, 42, 93, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  color: inherit;
  text-decoration: none;
}

.brand-card-menu:hover {
  transform: translateY(-6px);
  box-shadow: 0 35px 45px rgba(6, 42, 93, 0.18);
  color: inherit;
}

.brand-card-menu-icon {
  font-size: 3.5rem;
  color: var(--brand-sky);
}

.brand-hidden {
  display: none !important;
}

.brand-loader {
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,0.9);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.brand-loader p {
  font-weight: 600;
  color: var(--brand-navy);
}

.brand-bg-navy {
  background: var(--brand-navy) !important;
}

.brand-input-readonly {
  background-color: #e9ecef !important;
  cursor: not-allowed;
}

.brand-text-white {
  color: #fff !important;
}

/* (modal overlay styles removidos; ya no se usan en esta vista) */
