/* ═══════════════════════════════════════════════════════
   CLIP™ Core PRD — Shared Stylesheet
   Applies to both index.html and details.html
   ═══════════════════════════════════════════════════════ */

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Design Tokens ── */
:root {
  --bg:      #f4f6fb;
  --surface: #eaecf4;
  --card:    #ffffff;
  --border:  #d0d6e8;
  --accent1: #2563eb;
  --accent2: #7c3aed;
  --accent3: #0d9488;
  --accent4: #d97706;
  --accent5: #dc2626;
  --accent6: #16a34a;
  --text:    #1e2340;
  --muted:   #64748b;
  --radius:  12px;
  --shadow:  0 2px 16px rgba(30,35,64,.08);
  --font:    'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
  --mono:    'Fira Code', 'Consolas', monospace;
}

/* ── Base ── */
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.65;
}

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--surface); }
::-webkit-scrollbar-thumb { background: #c1c9dc; border-radius: 3px; }

/* ──────────────────────────────────────────
   NAV
   ────────────────────────────────────────── */
nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(244,246,251,.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  padding: 0 32px;
  display: flex; align-items: center; height: 56px; gap: 0;
  overflow-x: auto;
}

.nav-logo {
  font-size: 17px; font-weight: 800; color: var(--accent1);
  margin-right: 28px; letter-spacing: -.4px; white-space: nowrap;
  flex-shrink: 0;
}
.nav-logo span { color: var(--accent3); }

nav a {
  color: var(--muted); text-decoration: none; font-size: 12px; font-weight: 500;
  padding: 0 12px; height: 56px; display: flex; align-items: center; white-space: nowrap;
  border-bottom: 2px solid transparent; transition: color .15s, border-color .15s;
}
nav a:hover { color: var(--text); border-color: var(--accent1); }

/* Active nav link */
nav a.active { color: var(--accent1); border-color: var(--accent1); }

/* CTA button in nav — proper anchor button */
.nav-cta {
  margin-left: auto;
  flex-shrink: 0;
  height: 34px !important;
  padding: 0 16px !important;
  border-radius: 8px !important;
  border-bottom: none !important;
  background: var(--accent1) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: -.1px;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px;
  transition: background .15s, transform .12s !important;
  line-height: 1 !important;
}
.nav-cta:hover {
  background: #1d4ed8 !important;
  border-color: transparent !important;
  transform: none !important;
}
.nav-cta .icon {
  font-size: 13px; line-height: 1;
  display: inline-block; flex-shrink: 0;
}

/* Back button in nav */
.nav-back {
  flex-shrink: 0;
  margin-right: 8px;
  height: 32px !important;
  padding: 0 12px !important;
  border-radius: 8px !important;
  border-bottom: none !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px;
  transition: background .15s !important;
  line-height: 1 !important;
  border: 1px solid var(--border) !important;
}
.nav-back:hover {
  background: var(--border) !important;
  border-color: var(--border) !important;
}
.nav-back .icon {
  font-size: 13px; flex-shrink: 0;
}

/* ──────────────────────────────────────────
   LAYOUT
   ────────────────────────────────────────── */
main { max-width: 1240px; margin: 0 auto; padding: 48px 32px 120px; }
.section { margin-bottom: 76px; }

/* ── Section headings ── */
.section-title {
  font-size: 21px; font-weight: 800; margin-bottom: 6px;
  display: flex; align-items: center; gap: 12px; letter-spacing: -.3px;
}
.section-title .num {
  width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--accent1);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; flex-shrink: 0;
  color: var(--accent1); background: transparent;
  line-height: 1;
}
.section-sub {
  color: var(--muted); margin-bottom: 26px;
  font-size: 13px; font-weight: 400;
}

/* ── Generic card ── */
.card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow);
}
.card-grid { display: grid; gap: 16px; }
.card-grid.cols-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.card-grid.cols-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* ── Chips ── */
.chip {
  font-size: 10px; padding: 3px 8px; border-radius: 4px;
  background: rgba(100,116,139,.09); color: var(--muted); font-weight: 500;
}

/* ── Divider ── */
.divider { height: 1px; background: var(--border); margin: 36px 0; }

/* ── Page footer ── */
.page-footer {
  text-align: center; color: var(--muted); font-size: 11px;
  padding: 20px 0 40px;
}
.page-footer a {
  color: var(--accent1); text-decoration: none; font-weight: 600;
}
.page-footer strong { color: var(--accent1); font-weight: 700; }

/* ── Operator / generic table ── */
.op-table { width: 100%; border-collapse: collapse; }
.op-table th {
  background: var(--surface); padding: 8px 13px; text-align: left;
  font-size: 10px; text-transform: uppercase; letter-spacing: 1px;
  color: var(--muted); border-bottom: 1px solid var(--border);
}
.op-table td {
  padding: 9px 13px; border-bottom: 1px solid rgba(208,214,232,.75);
  font-size: 12px; vertical-align: middle;
}
.op-table tr:last-child td { border-bottom: none; }
.op-table tr:hover td { background: rgba(37,99,235,.03); }
.op-id   { font-weight: 800; color: var(--accent4); }
.op-name { font-family: var(--mono); color: var(--accent1); font-size: 11px; }
.op-sym  { font-size: 15px; color: var(--accent3); text-align: center; }
.op-badge {
  display: inline-block; font-size: 10px; padding: 2px 6px; border-radius: 4px;
  background: rgba(13,148,136,.09); color: var(--accent3); margin-right: 3px;
}
.op-badge.date-only { background: rgba(217,119,6,.09); color: var(--accent4); }

/* ── Rule tree ── */
.rule-tree {
  background: #f0f3fa; border: 1px solid var(--border); border-radius: 10px;
  padding: 18px 18px 14px; font-family: var(--mono); font-size: 12px;
  overflow-x: auto; line-height: 1.65;
}
.rt-and  { color: var(--accent1); font-weight: 700; }
.rt-or   { color: var(--accent2); font-weight: 700; }
.rt-leaf { color: var(--text); }
.rt-op   { color: var(--accent4); }
.rt-val  { color: var(--accent3); }
.rt-terr { color: var(--muted); font-size: 10.5px; }
.rt-line { display: flex; align-items: baseline; gap: 6px; margin: 2px 0; flex-wrap: wrap; }
.rt-indent1 { padding-left: 20px; }
.rt-indent2 { padding-left: 40px; }
.rt-indent3 { padding-left: 60px; }

/* ── JSON block ── */
.json-block {
  background: #f0f3fa; border: 1px solid var(--border); border-radius: 10px;
  padding: 14px; font-family: var(--mono); font-size: 11px;
  overflow-x: auto; line-height: 1.75;
}
.jk { color: var(--accent1); }
.jv { color: var(--accent3); }
.jn { color: var(--accent4); }
.js { color: var(--accent6); }
.jc { color: var(--muted); font-style: italic; }

/* ──────────────────────────────────────────
   LIFECYCLE PILLS
   ────────────────────────────────────────── */
.lifecycle { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.lc-pill {
  padding: 5px 13px; border-radius: 99px;
  font-size: 11px; font-weight: 700; letter-spacing: .4px;
}
.lc-arrow { color: var(--muted); font-size: 13px; }
.lc-p    { background: rgba(100,116,139,.11); color: var(--muted); }
.lc-proc { background: rgba(217,119,6,.11);   color: var(--accent4); }
.lc-done { background: rgba(37,99,235,.11);   color: var(--accent1); }
.lc-conf { background: rgba(13,148,136,.11);  color: var(--accent3); }
.lc-sub  { background: rgba(22,163,74,.11);   color: var(--accent6); }

/* ──────────────────────────────────────────
   TABS
   ────────────────────────────────────────── */
.tabs {
  display: flex; gap: 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 18px; overflow-x: auto;
}
.tab-btn {
  padding: 9px 16px; font-size: 12px; font-weight: 600;
  border: none; font-family: var(--font); background: none;
  color: var(--muted); cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  white-space: nowrap; transition: color .13s, border-color .13s;
}
.tab-btn.active { color: var(--accent1); border-color: var(--accent1); }
.tab-btn:hover:not(.active) { color: var(--text); }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* ──────────────────────────────────────────
   DATA MODEL
   ────────────────────────────────────────── */
.dm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); gap: 12px; }
.dm-entity { background: var(--card); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
.dm-head { padding: 9px 13px; font-size: 11.5px; font-weight: 700; border-bottom: 1px solid var(--border); }
.dm-head.contract { background: rgba(37,99,235,.07); color: var(--accent1); }
.dm-head.terms    { background: rgba(13,148,136,.07); color: var(--accent3); }
.dm-head.cats     { background: rgba(217,119,6,.07);  color: var(--accent4); }
.dm-head.qual     { background: rgba(37,99,235,.07);  color: var(--accent1); }
.dm-head.sd       { background: rgba(13,148,136,.07); color: var(--accent3); }
.dm-head.caps_e   { background: rgba(217,119,6,.07);  color: var(--accent4); }
.dm-head.rates    { background: rgba(124,58,237,.07); color: var(--accent2); }
.dm-head.audit    { background: rgba(220,38,38,.07);  color: var(--accent5); }
.dm-field {
  padding: 6px 13px; border-bottom: 1px solid rgba(208,214,232,.6);
  font-size: 11px; display: flex; justify-content: space-between;
}
.dm-field:last-child { border-bottom: none; }
.dm-fname { color: var(--text); font-family: var(--mono); }
.dm-ftype { color: var(--muted); font-size: 10px; }
.dm-pk { color: var(--accent4); }
.dm-fk { color: var(--accent3); }
.dm-fk::after { content: ' ↗'; }

/* ──────────────────────────────────────────
   NFR
   ────────────────────────────────────────── */
.nfr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.nfr-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 16px; box-shadow: var(--shadow); }
.nfr-cat  { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-bottom: 8px; font-weight: 600; }
.nfr-item { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid rgba(208,214,232,.6); font-size: 12px; }
.nfr-item:last-child { border-bottom: none; }
.nfr-target { color: var(--accent3); font-weight: 700; font-size: 11px; }

/* ──────────────────────────────────────────
   RESPONSIVE
   ────────────────────────────────────────── */
@media (max-width: 768px) {
  main { padding: 24px 16px 80px; }
  nav a:not(.nav-cta):not(.nav-back) { display: none; }
}
