/**
 * Aurrera Consulting — Auth & Portal styles
 * Requires: aurrera-tokens.css
 */

/* ── Login layout ──────────────────────────────────────── */
.auth-wrap {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.auth-aside {
  position: relative;
  background: var(--aurrera-grey-900);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--space-12);
  color: #fff;
}
.auth-aside::before {
  content: '';
  position: absolute;
  width: 520px; height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240,135,0,0.18) 0%, transparent 62%);
  top: -120px; right: -120px;
  filter: blur(30px);
  animation: blob-a 22s ease-in-out infinite alternate;
}
.auth-aside-sym {
  position: absolute;
  width: 340px; height: 340px;
  bottom: -60px; left: -60px;
  opacity: 0.05;
  filter: grayscale(1) brightness(12);
  pointer-events: none;
}

.auth-aside-logo img { height: 32px; width: auto; filter: brightness(0) invert(1); }

.auth-aside-body { position: relative; z-index: 1; max-width: 420px; }
.auth-aside-eyebrow {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-5);
  display: flex; align-items: center; gap: var(--space-3);
}
.auth-aside-eyebrow::before {
  content: ''; width: 28px; height: 2px; background: var(--color-accent); flex-shrink: 0;
}
.auth-aside-title {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 2.6vw, 2.6rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-5);
}
.auth-aside-title em { color: var(--color-accent); font-style: normal; }
.auth-aside-desc {
  font-size: var(--text-md);
  color: var(--aurrera-grey-400);
  line-height: 1.7;
}
.auth-aside-foot {
  position: relative; z-index: 1;
  font-size: var(--text-xs);
  color: var(--aurrera-grey-500);
  display: flex; gap: var(--space-5);
}
.auth-aside-foot a { color: var(--aurrera-grey-400); }
.auth-aside-foot a:hover { color: var(--color-accent); }

/* ── Login panel ───────────────────────────────────────── */
.auth-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-12);
  background: var(--color-bg);
}
.auth-card {
  width: 100%;
  max-width: 400px;
  animation: fade-up 0.6s var(--ease-out) both;
}
.auth-card-logo { display: none; margin-bottom: var(--space-8); }
.auth-card-logo img { height: 30px; }

.auth-heading {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-fg);
  margin-bottom: var(--space-2);
}
.auth-sub {
  font-size: var(--text-base);
  color: var(--color-fg-muted);
  margin-bottom: var(--space-8);
  line-height: 1.6;
}

/* Profile toggle */
.auth-profile {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  padding: 4px;
  margin-bottom: var(--space-6);
}
.auth-profile-btn {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  padding: 10px var(--space-4);
  cursor: pointer;
  transition: background var(--duration-fast), color var(--duration-fast), box-shadow var(--duration-fast);
  display: flex; align-items: center; justify-content: center; gap: var(--space-2);
}
.auth-profile-btn.is-active {
  background: var(--color-bg);
  color: var(--color-accent);
  box-shadow: var(--shadow-sm);
}

/* Microsoft SSO button */
.btn-ms {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--color-fg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 13px var(--space-5);
  cursor: pointer;
  transition: border-color var(--duration-fast), box-shadow var(--duration-fast), background var(--duration-fast);
}
.btn-ms:hover { border-color: var(--color-border-strong); box-shadow: var(--shadow-sm); }
.btn-ms svg { flex-shrink: 0; }

.auth-divider {
  display: flex; align-items: center; gap: var(--space-4);
  margin: var(--space-6) 0;
  color: var(--color-fg-subtle);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
}
.auth-divider::before, .auth-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--color-border-subtle);
}

.auth-form { display: flex; flex-direction: column; gap: var(--space-4); }
.auth-field { display: flex; flex-direction: column; gap: var(--space-1); }
.auth-field-row { display: flex; justify-content: space-between; align-items: baseline; }
.auth-forgot { font-size: var(--text-xs); color: var(--color-accent); font-weight: var(--weight-semibold); }
.auth-forgot:hover { color: var(--color-accent-hover); }

.auth-submit { width: 100%; margin-top: var(--space-2); justify-content: center; }

.auth-foot-note {
  margin-top: var(--space-6);
  font-size: var(--text-sm);
  color: var(--color-fg-muted);
  text-align: center;
}
.auth-foot-note a { color: var(--color-accent); font-weight: var(--weight-semibold); }

.auth-error {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: #fff2f2;
  border: 1px solid #fca5a5;
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  color: #b91c1c;
  line-height: 1.5;
}
.auth-error[hidden] { display: none; }

.auth-demo-hint {
  margin-top: var(--space-6);
  padding: var(--space-3) var(--space-4);
  background: var(--color-accent-soft);
  border: 1px solid var(--aurrera-orange-200);
  border-radius: var(--radius-md);
  font-size: var(--text-xs);
  color: var(--aurrera-orange-700);
  line-height: 1.6;
}
.auth-demo-hint strong { font-weight: var(--weight-bold); }

@media (max-width: 900px) {
  .auth-wrap { grid-template-columns: 1fr; }
  .auth-aside { display: none; }
  .auth-card-logo { display: block; }
  .auth-panel { padding: var(--space-8) var(--space-5); min-height: 100svh; }
}

/* ════════════════════════════════════════════════════════
   PORTAL
   ════════════════════════════════════════════════════════ */
.portal-body { background: var(--color-bg-subtle); min-height: 100vh; }

.portal-topbar {
  position: sticky; top: 0; z-index: var(--z-sticky);
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--color-border-subtle);
}
.portal-topbar-inner {
  display: flex; align-items: center; gap: var(--space-5);
  height: 64px; max-width: 1280px; margin: 0 auto;
  padding: 0 var(--space-8);
}
.portal-topbar-logo img { height: 28px; }
.portal-topbar-sep { width: 1px; height: 24px; background: var(--color-border); }
.portal-topbar-title {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-fg-muted);
}
.portal-topbar-spacer { flex: 1; }

.portal-user {
  display: flex; align-items: center; gap: var(--space-3);
}
.portal-user-meta { text-align: right; line-height: 1.2; }
.portal-user-name {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-fg);
}
.portal-user-role { font-size: var(--text-xs); color: var(--color-fg-subtle); }
.portal-avatar {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--color-accent);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: var(--weight-bold);
  font-size: var(--text-sm);
  flex-shrink: 0;
}
.portal-logout {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-fg-muted);
  background: none; border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 7px var(--space-4); cursor: pointer;
  transition: color var(--duration-fast), border-color var(--duration-fast);
}
.portal-logout:hover { color: var(--color-danger); border-color: var(--color-danger); }

.portal-main { max-width: 1280px; margin: 0 auto; padding: var(--space-12) var(--space-8) var(--space-24); }

.portal-welcome { margin-bottom: var(--space-10); }
.portal-welcome-eyebrow {
  font-family: var(--font-display); font-size: 11px; font-weight: var(--weight-semibold);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-accent);
  margin-bottom: var(--space-2);
}
.portal-welcome-title {
  font-family: var(--font-display);
  font-size: var(--text-2xl); font-weight: 800; letter-spacing: -0.01em;
  color: var(--color-fg); margin-bottom: var(--space-2);
}
.portal-welcome-desc { font-size: var(--text-md); color: var(--color-fg-muted); }

.portal-section-label {
  font-family: var(--font-display);
  font-size: var(--text-xs); font-weight: var(--weight-semibold);
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--color-fg-subtle);
  margin-bottom: var(--space-5);
  display: flex; align-items: center; gap: var(--space-3);
}
.portal-section-label::after { content: ''; flex: 1; height: 1px; background: var(--color-border-subtle); }

.portal-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  margin-bottom: var(--space-12);
}

.app-card {
  position: relative;
  background: var(--color-bg);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  display: flex; flex-direction: column;
  text-decoration: none;
  transition: transform var(--duration-base) var(--ease-out),
              box-shadow var(--duration-base) var(--ease-out),
              border-color var(--duration-base) var(--ease-out);
  animation: fade-up 0.5s var(--ease-out) both;
}
.app-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-border);
}
.app-card-icon {
  width: 48px; height: 48px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-5);
  background: var(--color-accent-soft);
  color: var(--color-accent);
}
.app-card-icon svg { width: 24px; height: 24px; }
.app-card-title {
  font-family: var(--font-display);
  font-size: var(--text-base); font-weight: 700;
  color: var(--color-fg); margin-bottom: var(--space-1);
}
.app-card-desc { font-size: var(--text-xs); color: var(--color-fg-muted); line-height: 1.55; flex: 1; }
.app-card-arrow {
  position: absolute; top: var(--space-5); right: var(--space-5);
  color: var(--color-fg-subtle);
  opacity: 0; transform: translate(-4px, 4px);
  transition: opacity var(--duration-base), transform var(--duration-base), color var(--duration-base);
}
.app-card:hover .app-card-arrow { opacity: 1; transform: translate(0,0); color: var(--color-accent); }

.app-card-badge {
  display: inline-flex; align-items: center;
  font-family: var(--font-display); font-size: 9px; font-weight: var(--weight-bold);
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 7px; border-radius: var(--radius-full);
  margin-top: var(--space-4); align-self: flex-start;
}
.badge-ms { background: var(--color-info-bg); color: var(--color-info); }
.badge-internal { background: var(--color-bg-muted); color: var(--color-fg-muted); }
.badge-new { background: var(--color-success-bg); color: var(--color-success); }

@media (max-width: 1024px) { .portal-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) {
  .portal-grid { grid-template-columns: repeat(2, 1fr); }
  .portal-topbar-title { display: none; }
  .portal-main { padding: var(--space-8) var(--space-5) var(--space-16); }
  .portal-user-meta { display: none; }
}
@media (max-width: 460px) { .portal-grid { grid-template-columns: 1fr; } }
