:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --radius-sm: 0.5rem; --radius-md: 0.8rem; --radius-lg: 1.1rem; --radius-xl: 1.4rem;
  --color-surface: #071067;
  --color-surface-2: #0b1759;
  --color-surface-3: #101c73;
  --color-border: rgba(255,255,255,.12);
  --color-text: #f6f8ff;
  --color-text-muted: #b8c3ff;
  --color-text-faint: #7f8bd3;
  --color-primary: #d7ff00;
  --color-primary-hover: #eeff66;
  --color-danger: #ff5d7d;
  --color-success: #39d98a;
  --shadow-lg: 0 18px 50px rgba(0,0,0,.28);
  --shadow-sm: 0 6px 16px rgba(0,0,0,.18);
  --font-body: 'Satoshi', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; }
body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background:
    radial-gradient(circle at top right, rgba(215,255,0,.10), transparent 18%),
    radial-gradient(circle at bottom left, rgba(255,255,255,.08), transparent 15%),
    linear-gradient(135deg, #0213c9 0%, #041a8d 35%, #071067 100%);
  background-attachment: fixed;
}
a { color: inherit; text-decoration: none; }
.app { display: grid; grid-template-columns: 280px 1fr; grid-template-rows: 72px 1fr; height: 100dvh; }
.sidebar {
  grid-row: 1 / -1; background: rgba(5, 10, 48, .78); backdrop-filter: blur(18px);
  border-right: 1px solid var(--color-border); padding: var(--space-6); overflow-y: auto;
}
.logo { display: flex; align-items: center; gap: 12px; margin-bottom: var(--space-8); cursor: pointer; }
.logo-mark {
  width: 42px; height: 42px; border-radius: 12px;
  background: linear-gradient(135deg, var(--color-primary), #b4ff00);
  color: #071067; display: grid; place-items: center; font-weight: 800;
  box-shadow: 0 0 0 4px rgba(215,255,0,.12);
}
.logo-text strong { display:block; font-size: var(--text-sm); }
.logo-text span { color: var(--color-text-muted); font-size: var(--text-xs); }
.nav-section { margin-bottom: var(--space-6); }
.nav-title { color: var(--color-text-faint); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .14em; margin-bottom: var(--space-3); }
.nav-btn {
  width: 100%; text-align: left; border: 1px solid transparent; cursor: pointer;
  background: transparent; color: var(--color-text); padding: 12px 14px; border-radius: 14px;
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
  transition: .18s ease; text-decoration: none;
}
.nav-btn:hover, .nav-btn.active {
  background: rgba(215,255,0,.10);
  border-color: rgba(215,255,0,.32);
  box-shadow: inset 0 0 0 1px rgba(215,255,0,.08);
}
.nav-dot {
  width: 9px; height: 9px; border-radius: 999px; background: var(--color-primary);
  box-shadow: 0 0 14px rgba(215,255,0,.9);
}
.topbar {
  grid-column: 2; display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--space-6); border-bottom: 1px solid var(--color-border);
  background: rgba(6, 14, 70, .52); backdrop-filter: blur(18px);
}
.search {
  width: min(560px, 62%); background: rgba(255,255,255,.07); border: 1px solid var(--color-border);
  border-radius: 16px; padding: 8px 16px;
}
.search input {
  width: 100%; background: transparent; border: 0; outline: none;
  color: var(--color-text); font-family: var(--font-body); font-size: var(--text-sm); padding: 6px 0;
}
.search input::placeholder { color: var(--color-text-muted); }
.top-actions { display: flex; gap: 12px; align-items: center; }
.pill-btn, .cta {
  border: 0; cursor: pointer; border-radius: 14px; padding: 12px 16px; font-weight: 700;
  font-family: var(--font-body); font-size: var(--text-sm); display: inline-block; text-decoration: none;
}
.pill-btn { background: rgba(255,255,255,.08); color: var(--color-text); border: 1px solid var(--color-border); }
.pill-btn:hover { background: rgba(255,255,255,.14); }
.cta { background: var(--color-primary); color: #08114f; box-shadow: 0 10px 24px rgba(215,255,0,.28); }
.cta:hover { background: var(--color-primary-hover); }
.main { grid-column: 2; overflow-y: auto; padding: var(--space-6); }
h1 { font-size: var(--text-xl); margin: 0 0 8px 0; }
h2 { font-size: var(--text-lg); margin: 0 0 var(--space-4) 0; }
.subtitle { color: var(--color-text-muted); margin-bottom: var(--space-6); }
.kpi-grid, .card-grid, .triple-grid, .double-grid { display: grid; gap: var(--space-4); }
.kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.double-grid { grid-template-columns: 1.3fr .9fr; }
.triple-grid { grid-template-columns: 1.2fr 1fr 1fr; }
.card {
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: var(--space-5);
  box-shadow: var(--shadow-sm);
}
.card h3 { margin: 0 0 14px 0; font-size: var(--text-lg); }
.kpi-value { font-size: 2rem; font-weight: 800; margin-top: 10px; }
.accent { color: var(--color-primary); }
.muted { color: var(--color-text-muted); }
.tiny { font-size: var(--text-xs); color: var(--color-text-faint); }
.badge { display:inline-flex; align-items:center; gap:8px; padding: 6px 12px; border-radius: 999px; font-size: var(--text-xs); font-weight: 700; background: rgba(255,255,255,.08); color: var(--color-text); }
.badge.warn { background: rgba(215,255,0,.14); color: var(--color-primary); }
.badge.ok { background: rgba(57,217,138,.14); color: var(--color-success); }
.badge.danger { background: rgba(255,93,125,.14); color: var(--color-danger); }
.table-wrap { overflow: auto; border-radius: 18px; border: 1px solid var(--color-border); background: rgba(255,255,255,.02); }
table { width: 100%; border-collapse: collapse; min-width: 820px; }
th, td { padding: 14px 16px; text-align: left; border-bottom: 1px solid rgba(255,255,255,.08); vertical-align: top; }
th { font-size: var(--text-xs); color: var(--color-text-faint); text-transform: uppercase; letter-spacing: .08em; background: rgba(255,255,255,.03); }
tr:hover td { background: rgba(255,255,255,.035); }
td a { color: var(--color-primary); }
td a:hover { color: var(--color-primary-hover); }
.stepper { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: var(--space-5); }
.step { padding: 10px 14px; border-radius: 999px; border: 1px solid var(--color-border); background: rgba(255,255,255,.04); font-size: var(--text-sm); }
.step.active { background: rgba(215,255,0,.12); border-color: rgba(215,255,0,.35); color: var(--color-primary); }
.list { display: grid; gap: 12px; }
.list-item { padding: 14px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); }
.split { display:flex; align-items:center; justify-content:space-between; gap: 10px; }
.actions { display:flex; gap:10px; flex-wrap:wrap; margin-top: 16px; }
.mini { font-size: var(--text-sm); }
.highlight-box { border: 1px solid rgba(215,255,0,.36); background: rgba(215,255,0,.09); color: var(--color-text); }
.footer-note { margin-top: var(--space-6); padding: var(--space-4); border-radius: 16px; background: rgba(255,255,255,.04); color: var(--color-text-muted); }
.empty { padding: 40px 20px; text-align: center; color: var(--color-text-muted); }
.empty p { margin: 8px 0; }
.msg { padding: 12px 16px; border-radius: 12px; margin-bottom: 16px; background: rgba(57,217,138,.16); border: 1px solid rgba(57,217,138,.35); }
.msg-error { background: rgba(255,93,125,.16); border-color: rgba(255,93,125,.4); }
.msg-warning { background: rgba(215,255,0,.14); border-color: rgba(215,255,0,.4); }
/* LOGIN page reuse */
.login-page { display: grid; place-items: center; min-height: 100vh; padding: 20px; }
.login-card { width: min(420px, 100%); background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03)); border: 1px solid var(--color-border); border-radius: 22px; padding: 32px; box-shadow: var(--shadow-lg); }
.login-card h1 { text-align: center; margin-bottom: 24px; }
.login-card form { display: grid; gap: 14px; }
.login-card label { color: var(--color-text-muted); font-size: var(--text-sm); font-weight: 600; }
.login-card input[type=text], .login-card input[type=password] { width: 100%; background: rgba(255,255,255,.06); border: 1px solid var(--color-border); border-radius: 12px; padding: 12px 14px; color: var(--color-text); font-family: var(--font-body); font-size: var(--text-base); }
.login-card input:focus { outline: none; border-color: rgba(215,255,0,.55); box-shadow: 0 0 0 3px rgba(215,255,0,.18); }
.login-card button { background: var(--color-primary); color: #08114f; border: 0; border-radius: 12px; padding: 14px; font-weight: 800; cursor: pointer; font-family: var(--font-body); font-size: var(--text-base); box-shadow: 0 10px 24px rgba(215,255,0,.28); }
.login-card button:hover { background: var(--color-primary-hover); }
@media (max-width: 1100px) {
  .app { grid-template-columns: 88px 1fr; }
  .logo-text, .nav-btn span:last-child, .nav-title { display: none; }
  .nav-btn { justify-content: center; }
  .kpi-grid, .card-grid, .double-grid, .triple-grid { grid-template-columns: 1fr; }
  .search { width: 48%; }
}
@media (max-width: 760px) {
  html, body { overflow: auto; }
  .app { display: block; height: auto; }
  .sidebar { position: sticky; top: 0; z-index: 20; padding: 16px; }
  .topbar { position: sticky; top: 0; z-index: 19; }
  .search { display:none; }
  .main { padding: 16px; }
}

/* === GLOBAL SELECT/INPUT FIX === */
select, input[type=text], input[type=email], input[type=password], input[type=url],
input[type=number], input[type=date], input[type=datetime-local], input[type=time],
input[type=search], textarea {
  background-color: rgba(8,17,79,.85) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  caret-color: #d7ff00 !important;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  padding: 10px 12px;
  font-family: inherit;
}
input::placeholder, textarea::placeholder { color: rgba(255,255,255,.45) !important; }

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  height: 3rem;
  line-height: 1.2;
  padding-right: 34px;
  background-image: linear-gradient(45deg, transparent 50%, #d7ff00 50%), linear-gradient(135deg, #d7ff00 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
select option, select optgroup {
  background-color: #071067 !important;
  color: #ffffff !important;
}
select option:checked, select option:hover {
  background: #d7ff00 !important;
  color: #08114f !important;
}
/* Search pill keeps transparent input */
.search input { background: transparent !important; border: 0 !important; }

/* === GLOBAL SELECT/INPUT FIX === */
select, input[type=text], input[type=email], input[type=password], input[type=url],
input[type=number], input[type=date], input[type=datetime-local], input[type=time],
input[type=search], textarea {
  background-color: rgba(8,17,79,.85) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  caret-color: #d7ff00 !important;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  padding: 10px 12px;
  font-family: inherit;
}
input::placeholder, textarea::placeholder { color: rgba(255,255,255,.45) !important; }

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  height: 3rem;
  line-height: 1.2;
  padding-right: 34px;
  background-image: linear-gradient(45deg, transparent 50%, #d7ff00 50%), linear-gradient(135deg, #d7ff00 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
select option, select optgroup {
  background-color: #071067 !important;
  color: #ffffff !important;
}
select option:checked, select option:hover {
  background: #d7ff00 !important;
  color: #08114f !important;
}
/* Search pill keeps transparent input */
.search input { background: transparent !important; border: 0 !important; }
