/* ═══════════════════════════════════════════════════════════════════════════
   Shared Design Tokens & Base Styles — HPE NetPilot / Mist Self-Driving Network
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Brand Palette ────────────────────────────────────────────────────────── */
:root {
  /* Primary — HPE Green */
  --hpe-green:     #01A982;
  --hpe-green-dark:#006c52;
  --hpe-green-light:#00C48C;
  --hpe-gradient:  linear-gradient(135deg, #01A982, #00C48C);

  /* Accent / Feedback */
  --color-ok:      #01A982;
  --color-err:     #DC3545;
  --color-warn:    #E07A2F;
  --color-info:    #4299E1;

  /* Neutral — Light theme */
  --bg-body:       #F8FAFB;
  --bg-surface:    #FFFFFF;
  --bg-muted:      #F1F5F8;
  --border-color:  #E2E8F0;
  --text-primary:  #1A202C;
  --text-secondary:#3D4F63;
  --text-muted:    #8899AA;

  /* Spacing & Radii */
  --radius:        12px;
  --radius-sm:     8px;
  --radius-xs:     6px;

  /* Shadows */
  --shadow-sm:     0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:     0 4px 24px rgba(0,0,0,.10);
  --shadow-lg:     0 8px 30px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);

  /* Focus ring */
  --focus-ring:    0 0 0 3px rgba(1,169,130,.15);
}

/* ── Global Reset ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}

/* ── Typography ───────────────────────────────────────────────────────────── */
.brand-name { font-weight: 700; letter-spacing: -.3px; }
.brand-sub  { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.label-upper {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .6px;
}

/* ── Form Controls ────────────────────────────────────────────────────────── */
.form-input {
  width: 100%; padding: 11px 14px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xs);
  font-size: 14px; font-family: inherit;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.form-input:focus {
  border-color: rgba(1,169,130,.6);
  box-shadow: var(--focus-ring);
}
.form-input::placeholder { opacity: .4; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 16px; border: none; border-radius: var(--radius-xs);
  font-size: 13px; font-weight: 700; font-family: inherit;
  cursor: pointer; letter-spacing: .2px;
  transition: opacity .15s, box-shadow .15s, transform .15s;
  white-space: nowrap;
}
.btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.btn-primary {
  background: var(--hpe-gradient);
  color: #fff;
  box-shadow: 0 4px 16px rgba(1,169,130,.35);
}
.btn-primary:hover:not(:disabled) {
  opacity: .92;
  box-shadow: 0 6px 22px rgba(1,169,130,.45);
  transform: translateY(-1px);
}
.btn-primary:active:not(:disabled) { transform: translateY(0); opacity: 1; }

.btn-secondary {
  background: var(--bg-muted);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
}
.btn-secondary:hover:not(:disabled) {
  background: #EEF0F4;
  border-color: var(--text-muted);
  color: var(--text-primary);
}

/* ── Alerts ───────────────────────────────────────────────────────────────── */
.alert {
  display: flex; align-items: flex-start; gap: 9px;
  border-radius: var(--radius-sm); padding: 10px 14px;
  font-size: 12px; font-weight: 500;
}
.alert svg { flex-shrink: 0; margin-top: 1px; }
.alert-err {
  background: rgba(217,64,64,.15);
  border: 1px solid rgba(217,64,64,.3);
  color: #F87171;
}
.alert-ok {
  background: rgba(1,169,130,.12);
  border: 1px solid rgba(1,169,130,.3);
  color: #2FD1A0;
}
.alert-info {
  background: rgba(1,169,130,.08);
  border: 1px solid rgba(1,169,130,.25);
  color: var(--hpe-green);
}

/* ── Card ─────────────────────────────────────────────────────────────────── */
.shared-card {
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

/* ── Utility: Glass / Backdrop ────────────────────────────────────────────── */
.glass {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ── Utility: Brand Gradient Background ───────────────────────────────────── */
.bg-hpe-gradient { background: var(--hpe-gradient); }

/* ── Utility: Text helpers ────────────────────────────────────────────────── */
.text-hpe-green { color: var(--hpe-green); }
.text-muted     { color: var(--text-muted); }

/* ── Link defaults ────────────────────────────────────────────────────────── */
a.link-green {
  color: rgba(1,169,130,.9);
  text-decoration: none;
  font-weight: 600;
  transition: color .15s;
}
a.link-green:hover { color: #2FD1A0; }

/* ── Footer line ──────────────────────────────────────────────────────────── */
.footer-brand {
  font-size: 10.5px;
  color: var(--text-muted);
  text-align: center;
}
