/* ================================================================
   Firme Portal — Dark / Light / System Theme
   Inter font, teal accent, fullscreen layout
   ================================================================ */

/* DEFAULT = DARK (clase pe <html>: data-theme="dark|light|system") */
:root, html[data-theme="dark"] {
  --bg: #0a0c10;
  --surface: #13151c;
  --surface-2: #1a1d28;
  --surface-hover: #1f2231;
  --border: #252836;
  --border-light: #353849;
  --text: #e8ecf4;
  --text-muted: #8b95a8;
  --text-dim: #5a6478;
  --accent: #0ea5e9;
  --accent-hover: #38bdf8;
  --accent-dim: rgba(14,165,233,0.12);
  --accent-glow: rgba(14,165,233,0.25);
  --success: #22c55e;
  --success-dim: rgba(34,197,94,0.12);
  --danger: #ef4444;
  --danger-dim: rgba(239,68,68,0.12);
  --warning: #f59e0b;
  --warning-dim: rgba(245,158,11,0.12);
  --radius: 10px;
  --radius-sm: 6px;
  --shadow: 0 4px 24px rgba(0,0,0,0.4);
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* LIGHT — cu contrast WCAG AA pe text */
html[data-theme="light"] {
  --bg: #f6f7fb;
  --surface: #ffffff;
  --surface-2: #f0f2f7;
  --surface-hover: #e8ecf3;
  --border: #d8dde6;
  --border-light: #c3c9d4;
  --text: #0f172a;          /* aproape negru — contrast 16:1 pe alb */
  --text-muted: #475569;    /* gri închis — contrast 7:1 */
  --text-dim: #64748b;      /* gri mediu — contrast 4.6:1 */
  --accent: #0369a1;        /* teal mai închis pentru contrast pe alb */
  --accent-hover: #0284c7;
  --accent-dim: rgba(3,105,161,0.10);
  --accent-glow: rgba(3,105,161,0.20);
  --success: #15803d;       /* verde închis pentru contrast */
  --success-dim: rgba(21,128,61,0.10);
  --danger: #b91c1c;        /* roșu închis */
  --danger-dim: rgba(185,28,28,0.10);
  --warning: #b45309;       /* galben/maro închis */
  --warning-dim: rgba(180,83,9,0.10);
  --shadow: 0 4px 24px rgba(15,23,42,0.08);
}

/* SYSTEM = urmează preferința sistem (default browser) */
@media (prefers-color-scheme: light) {
  html[data-theme="system"] {
    --bg: #f6f7fb;
    --surface: #ffffff;
    --surface-2: #f0f2f7;
    --surface-hover: #e8ecf3;
    --border: #d8dde6;
    --border-light: #c3c9d4;
    --text: #0f172a;
    --text-muted: #475569;
    --text-dim: #64748b;
    --accent: #0369a1;
    --accent-hover: #0284c7;
    --accent-dim: rgba(3,105,161,0.10);
    --accent-glow: rgba(3,105,161,0.20);
    --success: #15803d;
    --success-dim: rgba(21,128,61,0.10);
    --danger: #b91c1c;
    --danger-dim: rgba(185,28,28,0.10);
    --warning: #b45309;
    --warning-dim: rgba(180,83,9,0.10);
    --shadow: 0 4px 24px rgba(15,23,42,0.08);
  }
}

/* Theme switcher in nav */
.theme-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px;
  margin-right: 6px;
}
.theme-toggle button {
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  width: 28px; height: 24px;
  padding: 0;
  border-radius: 999px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.theme-toggle button:hover { color: var(--text-muted); }
.theme-toggle button.active {
  background: var(--accent);
  color: #fff;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

/* ---- NAV ---- */
#topnav {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 28px;
  height: 60px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(12px);
}
.nav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 17px;
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: -0.3px;
}
.nav-brand span { color: var(--accent); }
.nav-search {
  flex: 1;
  max-width: 600px;
  display: flex;
  gap: 8px;
}
.nav-search input {
  flex: 1;
  padding: 9px 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  font-size: 14px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.nav-search input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-dim); }
.nav-search button, .btn {
  padding: 9px 20px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  font-family: var(--font);
  cursor: pointer;
  transition: background 0.2s, transform 0.1s;
  white-space: nowrap;
}
.nav-search button:hover, .btn:hover { background: var(--accent-hover); }
.btn:active { transform: scale(0.97); }
.btn-secondary {
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text);
}
.btn-secondary:hover { background: var(--surface-hover); border-color: var(--border-light); }
.btn-sm { padding: 5px 12px; font-size: 12px; border-radius: var(--radius-sm); }
.btn-ghost { background:none; border:1px solid var(--border); color:var(--text-muted); }
.btn-ghost:hover { background:var(--surface-hover); color:var(--text); }
.nav-links { display:flex; gap:16px; margin-left:auto; }
.nav-links a { color: var(--text-dim); text-decoration:none; font-size:13px; font-weight:500; transition:color 0.2s; }
.nav-links a:hover { color: var(--text); }

/* ---- MAIN ---- */
#app { width:100%; max-width:1600px; margin:0 auto; padding:24px 32px; }

/* ---- LANDING ---- */
.landing {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 65vh;
  text-align: center;
}
.landing-logo { margin-bottom: 16px; }
.landing h1 { font-size: 48px; font-weight: 900; margin-bottom: 6px; letter-spacing: -1.5px; }
.landing h1 span { background: linear-gradient(135deg, var(--accent), #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.landing-sub { color: var(--text-muted); margin-bottom: 40px; font-size: 16px; }

/* Search box wrap — imitates Domain Check style */
.search-box-wrap {
  width: 100%;
  max-width: 800px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px 28px 20px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
.search-box {
  display: flex;
  gap: 12px;
  width: 100%;
}
.search-box input {
  flex: 1;
  padding: 16px 22px;
  background: var(--bg);
  border: 2px solid var(--border);
  border-radius: 12px;
  color: var(--text);
  font-size: 17px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.search-box input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-dim); }
.search-btn {
  padding: 16px 36px !important;
  font-size: 16px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, var(--accent), #06b6d4) !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px;
}
.search-btn:hover { filter: brightness(1.15); }

/* Search options — checkbox row */
.search-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  justify-content: center;
}
.search-opt {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-dim);
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid transparent;
  user-select: none;
}
.search-opt:hover { color: var(--text-muted); }
.search-opt.checked {
  color: var(--opt-color, var(--accent));
  border-color: color-mix(in srgb, var(--opt-color, var(--accent)) 30%, transparent);
  background: color-mix(in srgb, var(--opt-color, var(--accent)) 8%, transparent);
}
.search-opt input[type="checkbox"] {
  width: 15px; height: 15px;
  accent-color: var(--opt-color, var(--accent));
  cursor: pointer;
}
.opt-hint {
  font-size: 10px;
  color: var(--text-dim);
  font-weight: 400;
}

.search-hints { margin-top: 20px; color: var(--text-dim); font-size: 13px; }
.search-hints code { background: var(--surface-2); padding: 3px 8px; border-radius: 4px; font-size: 12px; color: var(--text-muted); }

/* ---- TABS ---- */
.results-tabs { display:flex; gap:4px; margin-bottom:20px; border-bottom:1px solid var(--border); }
.results-tabs button { padding:12px 22px; background:none; border:none; border-bottom:2px solid transparent; color:var(--text-dim); font-size:14px; font-weight:500; cursor:pointer; font-family:var(--font); transition:color 0.2s; }
.results-tabs button.active { color:var(--accent); border-bottom-color:var(--accent); }
.results-tabs button:hover { color:var(--text-muted); }
.tab-count { font-size:11px; background:var(--accent-dim); color:var(--accent); padding:2px 7px; border-radius:10px; margin-left:6px; font-weight:600; }

/* ---- CARDS ---- */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin-bottom: 10px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.card:hover { border-color: var(--border-light); }
.card-clickable { cursor:pointer; }
.card-clickable:hover { border-color:var(--accent); box-shadow: 0 0 0 1px var(--accent-dim); }
.card-header { display:flex; align-items:center; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.card-title { font-size:17px; font-weight:700; letter-spacing:-0.3px; }
.card-subtitle { color:var(--text-muted); font-size:13px; }

/* ---- FIRMA HEADER ---- */
.firma-header {
  background: linear-gradient(135deg, var(--surface) 0%, var(--surface-2) 100%);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 32px;
  margin-bottom: 20px;
}
.firma-header h1 { font-size: 32px; font-weight: 900; letter-spacing: -0.8px; margin-bottom: 6px; }
.firma-header .cui { color: var(--text-muted); font-size: 15px; font-family: 'SF Mono', 'Cascadia Code', monospace; }
.firma-meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }

/* ---- BADGES ---- */
.badge {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 12px; border-radius:20px;
  font-size:12px; font-weight:600; letter-spacing:0.2px;
}
.badge-success { background:var(--success-dim); color:var(--success); }
.badge-danger { background:var(--danger-dim); color:var(--danger); }
.badge-warning { background:var(--warning-dim); color:var(--warning); }
.badge-info { background:var(--accent-dim); color:var(--accent); }
.badge-neutral { background:rgba(148,163,184,0.1); color:var(--text-dim); }

/* ---- SECTIONS ---- */
.section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 10px;
  overflow: hidden;
}
.section-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; cursor:pointer; user-select:none;
  transition:background 0.15s;
}
.section-header:hover { background:var(--surface-hover); }
.section-header h3 { font-size:14px; font-weight:600; letter-spacing:-0.2px; }
.section-header .section-right { display:flex; align-items:center; gap:10px; }
.section-header .arrow { color:var(--text-dim); transition:transform 0.2s; font-size:10px; }
.section.open .section-header .arrow { transform:rotate(90deg); }
.section-body { display:none; padding:0 24px 24px; }
.section.open .section-body { display:block; }

/* ---- TABLES ---- */
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl th { text-align:left; padding:10px 14px; color:var(--text-dim); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:0.8px; border-bottom:1px solid var(--border); }
.tbl td { padding:10px 14px; border-bottom:1px solid var(--border); }
.tbl tr:hover td { background:var(--surface-hover); }
.tbl a, a.link { color:var(--accent); text-decoration:none; cursor:pointer; }
.tbl a:hover, a.link:hover { text-decoration:underline; }

/* ---- KEY-VALUE ---- */
.kv-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; }
.kv-item { padding:6px 0; }
.kv-label { font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:3px; font-weight:500; }
.kv-value { font-size:15px; color:var(--text); }

/* ---- GRAPH ---- */
.graph-container {
  width:100%; height:500px;
  background: var(--bg);
  border:1px solid var(--border);
  border-radius: var(--radius);
  overflow:hidden;
  position:relative;
}
.graph-toolbar {
  position:absolute; top:12px; right:12px; z-index:10;
  display:flex; gap:6px;
}
.graph-container.fullscreen {
  position:fixed; top:0; left:0; width:100vw; height:100vh;
  z-index:200; border-radius:0; border:none;
}

/* ---- CHARTS ---- */
.chart-wrap { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.chart-box {
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius); padding:20px;
}
.chart-box h4 { font-size:12px; color:var(--text-dim); margin-bottom:14px; text-transform:uppercase; letter-spacing:0.5px; font-weight:600; }
.chart-box canvas { max-height:260px; }

/* ---- LOADING / EMPTY ---- */
.loading { display:flex; align-items:center; justify-content:center; gap:10px; padding:48px; color:var(--text-muted); font-size:14px; }
.spinner { width:22px; height:22px; border:2px solid var(--border); border-top-color:var(--accent); border-radius:50%; animation:spin 0.6s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.empty { text-align:center; padding:48px; color:var(--text-dim); font-size:14px; }

/* ---- TOAST ---- */
#toast-container { position:fixed; bottom:24px; right:24px; z-index:1000; }
.toast { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 22px; margin-top:8px; font-size:14px; box-shadow:var(--shadow); animation:slideIn 0.3s ease; }
.toast-error { border-color:var(--danger); }
@keyframes slideIn { from{transform:translateX(100px);opacity:0} to{transform:translateX(0);opacity:1} }

/* ---- RESPONSIVE ---- */
@media (max-width:768px) {
  .chart-wrap { grid-template-columns:1fr; }
  .kv-grid { grid-template-columns:1fr; }
  .nav-search { display:none; }
  #app { padding:16px; }
}

/* ---- MODAL ---- */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.75);
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fadeIn 0.2s ease;
}
@keyframes fadeIn { from { opacity:0 } to { opacity:1 } }
.modal {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  max-width: 900px;
  width: 100%;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
  animation: slideUp 0.2s ease;
}
@keyframes slideUp { from { transform:translateY(20px);opacity:0 } to { transform:translateY(0);opacity:1 } }
.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 24px;
  border-bottom: 1px solid var(--border);
}
.modal-header h3 { font-size: 16px; font-weight: 700; }
.modal-header .close-btn {
  background: none; border: none;
  color: var(--text-dim); cursor: pointer;
  font-size: 22px; line-height: 1;
  padding: 4px 8px;
  transition: color 0.15s;
}
.modal-header .close-btn:hover { color: var(--text); }
.modal-body {
  padding: 22px 24px;
  overflow-y: auto;
  flex: 1;
}
.modal-meta {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin-bottom: 18px;
}
.modal-meta .kv-label { font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:3px; }
.modal-meta .kv-value { font-size:14px; color:var(--text); }
.modal-text {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  font-family: 'SF Mono', 'Cascadia Code', monospace;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
  color: var(--text-muted);
  max-height: 50vh;
  overflow-y: auto;
}
.modal-text strong { color: var(--accent); font-weight: 600; }
.modal-footer {
  padding: 16px 24px;
  border-top: 1px solid var(--border);
  display: flex; gap: 10px; justify-content: flex-end;
}

/* Scrollbars */
* { scrollbar-width: thin; scrollbar-color: var(--border-light) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--border-light); border-radius: 4px; }
*::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

/* Modal text - culoare contrast pe light */
html[data-theme="light"] .modal-text,
html[data-theme="system"] .modal-text {
  color: var(--text);
}
@media (prefers-color-scheme: light) {
  html[data-theme="system"] .modal-text { color: var(--text); }
}

/* Search hint code blocks */
html[data-theme="light"] .search-hints code,
html[data-theme="light"] code { background: var(--surface-2); color: var(--text); }
@media (prefers-color-scheme: light) {
  html[data-theme="system"] .search-hints code,
  html[data-theme="system"] code { background: var(--surface-2); color: var(--text); }
}
