/* TIGRIS product theme. Load after base, components, growth and entry CSS. */
:root {
  color-scheme: light;
  --brand-blue: #008CFF;
  --brand-ink: #0A1B26;
  --brand-sky: #96DCFF;
  --brand-link: #005A9C;
  --brand-hover: #004779;
  --brand-pale: #EAF6FF;
  --brand-orange: #FF9146;
  --brand-warning: #8A3900;
  --brand-warning-pale: #FFF2E8;
  --g10: #F5F7FA;
  --g20: #E1E6F0;
  --g30: #B8C5D2;
  --g40: #617180;
  --g50: #596978;
  --g60: #526372;
  --g70: #425563;
  --g80: #294150;
  --g90: #18303F;
  --g100: #0A1B26;
  --ink: var(--brand-ink);
  --ink-soft: var(--g70);
  --muted: var(--g60);
  --muted-2: var(--g50);
  --bg: #F5F7FA;
  --card: #FFFFFF;
  --line: #E1E6F0;
  --line-strong: #889AA9;
  --shell: #FFFFFF;
  --shell-2: #FFFFFF;
  --shell-line: var(--line);
  --shell-text: var(--ink);
  --shell-muted: var(--ink-soft);
  --accent: var(--brand-link);
  --accent-soft: var(--brand-pale);
  /* Legacy red tokens denote warnings, not the brand's primary action. */
  --red: var(--brand-warning);
  --red-soft: var(--brand-warning-pale);
  --red-line: var(--brand-orange);
  --radius: 8px;
  --radius-pill: 8px;
  --shadow-sm: 0 1px 2px rgb(10 27 38 / 4%);
  --shadow-md: 0 4px 16px rgb(10 27 38 / 8%);
}

/* Existing component selectors set tracking individually; this is invariant. */
body, body *, body *::before, body *::after { letter-spacing: 0 !important; }
input, select, textarea, button { font-family: inherit; }
input, select, textarea { accent-color: var(--brand-link); caret-color: var(--brand-link); }
select option { background: var(--card); color: var(--ink); }
body ::placeholder { color: var(--muted); opacity: 1; }
body ::selection, .gr-workspace ::selection, .jdc-entry ::selection {
  background: var(--brand-sky); color: var(--ink);
}
body :focus-visible, .gr-workspace :focus-visible, .gr-assistant :focus-visible,
.jdc-entry .jdc-role-card:focus-visible {
  outline: 2px solid var(--brand-blue); outline-offset: 3px;
}
.jdc-filter input:focus, .jdc-filter select:focus,
.jdc-formfield input:focus, .jdc-formfield select:focus, .jdc-formfield textarea:focus,
.jdc-ai-askbar input:focus, .jdc-search input:focus {
  outline: 2px solid var(--brand-blue); outline-offset: -2px;
}

/* White shell: explicitly replace the old hardcoded white foregrounds. */
.jdc-header, .jdc-gnb, .jdc-side { background: var(--card); color: var(--ink); }
.jdc-header { border-bottom: 1px solid var(--line); }
.jdc-logo, .jdc-icon-btn, .jdc-ai-close { color: var(--ink); }
.jdc-logo span { color: var(--muted); }
.jdc-icon-btn { opacity: 1; }
.jdc-icon-btn:hover, .jdc-icon-btn.active { color: var(--brand-link); background: var(--brand-pale); }
.jdc-sys-tab, .jdc-gnb-item, .jdc-ai-tab { color: var(--ink-soft); }
.jdc-sys-tab:hover, .jdc-gnb-item:hover, .jdc-ai-tab:hover { color: var(--brand-link); }
.jdc-sys-tab.active, .jdc-sys-tab.admin.active {
  background: var(--brand-pale); color: var(--brand-link);
  border-color: transparent; border-bottom-color: var(--brand-blue);
}
.jdc-sys-tab.admin.active::before { background: var(--brand-blue); }
.jdc-gnb-item.active, .jdc-ai-tab.active {
  color: var(--brand-link); border-bottom-color: var(--brand-blue);
}
.jdc-search input, .jdc-search input:focus, .jdc-role select {
  background: var(--bg); color: var(--ink); border-color: var(--line-strong);
}
.jdc-search input::placeholder { color: var(--muted); }
.jdc-search button { background: var(--brand-link); color: var(--card); }
.jdc-search button:hover { background: var(--brand-hover); }
.jdc-badge { background: var(--brand-orange); color: var(--ink); }
.jdc-badge.light { background: var(--brand-pale); color: var(--brand-link); }
.jdc-pop { background: var(--card); color: var(--ink); border-radius: 8px; }
.jdc-pop-head, .jdc-pop-foot { background: var(--bg); color: var(--ink); }
.jdc-pop-row:hover { background: var(--brand-pale); }
.jdc-pop-x { color: var(--muted); }
.jdc-side-item.active, .jdc-treenode.active {
  background: var(--brand-pale); color: var(--brand-link); border-left-color: var(--brand-blue);
}
.jdc-side-item.active .jdc-chip { color: var(--brand-link); border-color: var(--brand-sky); }

.jdc-product-brand {
  display: inline-flex; align-items: center; gap: 8px; min-width: 0;
  color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.4;
}
.jdc-product-brand img { display: block; height: 24px; width: auto; flex-shrink: 0; object-fit: contain; }
.jdc-product-brand span { overflow-wrap: anywhere; }
.jdc-header-left { gap: 16px; }
.jdc-header-right { flex-shrink: 0; }

/* Official blue marks selection; darker blue carries small white labels. */
.jdc-link, .jdc-ai-next, .gr-link, .gr-network-links button { color: var(--brand-link); }
.jdc-link:hover, .gr-link:hover, .gr-network-links button:hover { color: var(--brand-hover); }
.jdc-btn.primary, .jdc-ai-fab, .jdc-ai-mini.dark, .jdc-ai-askbar button,
.jdc-paging-nav b, .jdc-tag.id {
  background: var(--brand-link); border-color: var(--brand-link); color: var(--card);
}
.jdc-btn.primary:hover, .jdc-ai-fab.active, .jdc-ai-mini.dark:hover,
.jdc-ai-askbar button:hover, .jdc-btn.ai:hover, .jdc-ai-sug:hover {
  background: var(--brand-hover); border-color: var(--brand-hover); color: var(--card);
}
.jdc-ai-fab, .jdc-ai-bubble { border-radius: 8px; }
.jdc-ai-head, .jdc-ai-tabs { background: var(--card); color: var(--ink); border-bottom: 1px solid var(--line); }
.jdc-ai-context { color: var(--muted); }
.jdc-ai-badge-rfp, .jdc-ai-tab b, .jdc-ai-bot-tile, .jdc-ai-pill.on,
.jdc-ai-bubble.q, .jdc-ai-q.expanded .jdc-ai-pat {
  background: var(--brand-pale); color: var(--brand-link); border-color: var(--brand-sky);
}
.jdc-ai-bot.open, .jdc-ai-userq, .jdc-table td .jdc-changed { border-color: var(--brand-blue); }
.jdc-progress-bar, .jdc-minibar i.ok, .jdc-bartrack i.ok, .jdc-trendbar,
.jdc-step.done .jdc-step-dot { background: var(--brand-blue); border-color: var(--brand-blue); }
.jdc-step.active .jdc-step-dot { border-color: var(--brand-blue); box-shadow: none; }
.jdc-minibar i.warn, .jdc-minibar i.bad, .jdc-bartrack i.warn, .jdc-bartrack i.bad { background: var(--brand-orange); }
.jdc-status.ok { background: var(--brand-pale); color: var(--brand-link); border-color: var(--brand-sky); }
.jdc-status.warn { background: var(--brand-warning-pale); color: var(--brand-warning); border-color: var(--brand-orange); }
.jdc-statbox.warn .jdc-statbox-value { color: var(--brand-warning); }
.jdc-demobar, .jdc-toast { background: var(--brand-pale); color: var(--ink); }
.jdc-demobar-tag { background: var(--card); color: var(--brand-link); }
.jdc-demobar-msg { color: var(--ink-soft); }
.jdc-demobar .jdc-btn { background: var(--card); color: var(--brand-link); border-color: var(--brand-link); }
.jdc-demobar .jdc-btn:hover { background: var(--brand-pale); }
.jdc-table th, .gr-table th { background: var(--bg); color: var(--ink-soft); }
.jdc-table td, .gr-table td { color: var(--ink-soft); border-bottom-color: var(--line); }
.jdc-table tbody tr:hover, .gr-table tbody tr:hover td { background: var(--brand-pale); }

/* Growth uses literal colors, so retain its geometry and replace those states. */
.gr-workspace { --gr-green: var(--brand-link); --gr-amber: var(--brand-warning); }
.gr-workspace small, .gr-intro p, .gr-relations span, .gr-facts dt,
.gr-empty, .gr-muted, .gr-note, .gr-diff p, .gr-evidence summary span,
.gr-network-links li > span, .gr-plan-status > span:last-child { color: var(--muted); }
.gr-metrics span, .gr-next p, .gr-legend { color: var(--ink-soft); }
.gr-context, .gr-metrics, .gr-metrics > div, .gr-flow, .gr-next,
.gr-relations, .gr-relations > div, .gr-facts, .gr-facts > div,
.gr-log-compact li, .gr-empty, .gr-table th, .gr-change, .gr-evidence,
.gr-graph-row, .gr-graph-row > div, .gr-network-scroll,
.gr-network-links li, .gr-activity, .gr-expert { border-color: var(--line); }
.gr-flow { background: var(--line); }
.gr-badge, .gr-notice { background: var(--bg); color: var(--ink-soft); border-color: var(--line); }
.gr-badge.good, .gr-feedback {
  background: var(--brand-pale); color: var(--brand-link); border-color: var(--brand-sky);
}
.gr-badge.warn, .gr-notice.error, .gr-feedback.error {
  background: var(--brand-warning-pale); color: var(--brand-warning); border-color: var(--brand-orange);
}
.gr-step-number { border-color: var(--line-strong); border-radius: 8px; }
.gr-flow .done .gr-step-number { background: var(--brand-pale); color: var(--brand-link); border-color: var(--brand-blue); }
.gr-flow a:hover { background: var(--brand-pale); }
.gr-button { background: var(--card); color: var(--ink); border-color: var(--line-strong); }
.gr-button:hover:not(:disabled) { background: var(--brand-pale); border-color: var(--brand-link); }
.gr-button.primary, .gr-assistant-toggle { background: var(--brand-link); color: var(--card); border-color: var(--brand-link); }
.gr-button.primary:hover:not(:disabled), .gr-assistant-toggle:hover {
  background: var(--brand-hover); color: var(--card); border-color: var(--brand-hover);
}
.gr-button:disabled, .gr-button.primary:disabled, .gr-field :disabled { background: var(--bg); color: var(--muted); border-color: var(--line); }
.gr-workspace input, .gr-workspace textarea { accent-color: var(--brand-link); caret-color: var(--brand-link); }
.gr-field input, .gr-field textarea, .gr-network-toolbar select {
  background: var(--card); color: var(--ink); border-color: var(--line-strong);
}
.gr-field textarea::placeholder, .gr-field input::placeholder { color: var(--muted); }
.gr-table-scroll { scrollbar-color: var(--line-strong) var(--bg); }
.gr-evidence blockquote { border-left-color: var(--brand-blue); }
.gr-bars .held, .gr-legend .held { background: var(--brand-blue); color: var(--ink); }
.gr-bars .required, .gr-legend .required { background: var(--line); color: var(--ink); }
.gr-edge { border-color: var(--line-strong); color: var(--muted); }
.gr-network path { stroke: var(--line-strong); }
.gr-network g.active path { stroke: var(--brand-blue); }
.gr-network text { fill: var(--brand-link); stroke: var(--card); }
.gr-network-node { background: var(--card); color: var(--ink); border-color: var(--line-strong); }
.gr-network-node.related { border-color: var(--brand-link); background: var(--card); }
.gr-network-node.muted { background: var(--bg); border-color: var(--line); }
.gr-network-node:hover { border-color: var(--brand-link); }
.gr-network-node.selected { border-color: var(--brand-blue); background: var(--brand-pale); }
.gr-assistant section { border-color: var(--line); }

/* Entry keeps its existing role-selection layout, including small screens. */
.jdc-landing, .jdc-entry { background: var(--bg); color: var(--ink); }
.jdc-entry .jdc-landing { background: var(--card); color: var(--ink); }
.jdc-landing h1 em { border-bottom-color: var(--brand-blue); }
.jdc-entry-badge { background: var(--brand-pale); color: var(--brand-link); border-radius: 4px; }
.jdc-landing p.sub, .jdc-entry .jdc-landing p.sub,
.jdc-role-card span, .jdc-entry .jdc-role-card span { color: var(--ink-soft); }
.jdc-role-card, .jdc-entry .jdc-role-card {
  background: var(--card); color: var(--ink); border-color: var(--line); border-radius: 8px;
}
.jdc-role-card:hover, .jdc-entry .jdc-role-card:hover {
  background: var(--brand-pale); border-color: var(--brand-blue);
}
.jdc-entry .jdc-role-card strong { color: var(--brand-link); }

/* Only the header may wrap: preserve all existing page and graph layouts. */
@media (max-width: 1200px) {
  .jdc-header-inner { height: auto; min-height: 56px; flex-wrap: wrap; padding-block: 10px; gap: 10px; }
  .jdc-header-left { flex-wrap: wrap; gap: 10px 14px; }
  .jdc-header-right { margin-left: auto; }
}

/* Unified module navigation: one workspace, one navigation level. */
.jdc-unified-header .jdc-header-inner { display:flex; flex-wrap:nowrap; gap:20px; height:68px; padding-block:0; }
.jdc-unified-header .jdc-header-left { flex:0 0 auto; width:auto; flex-wrap:nowrap; }
.jdc-unified-header .jdc-product-brand { white-space:nowrap; gap:8px; font-size:17px; }
.jdc-unified-header .jdc-module-nav { display:flex; align-self:stretch; align-items:center; gap:2px; flex:1; min-width:0; overflow-x:auto; scrollbar-width:thin; }
.jdc-unified-header .jdc-module-link { display:flex; align-items:center; align-self:stretch; flex:0 0 auto; padding:0 10px; color:var(--ink-soft); font-size:14px; font-weight:600; white-space:nowrap; text-decoration:none; border-bottom:2px solid transparent; }
.jdc-unified-header .jdc-module-link:hover { color:var(--brand-link); background:var(--brand-pale); }
.jdc-unified-header .jdc-module-link.active { color:var(--brand-link); border-bottom-color:var(--brand-blue); }
.jdc-unified-header .jdc-header-right { flex:0 0 auto; gap:10px; flex-wrap:nowrap; margin-left:0; }
.jdc-unified-header .jdc-search input { width:130px; }
.jdc-profile { position:relative; }
.jdc-home-shortcuts { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0 24px; }
.jdc-home-shortcuts a { padding:12px 20px; background:var(--card); border:1px solid var(--line); border-radius:6px; color:var(--brand-link); text-decoration:none; font-weight:600; }
.jdc-home-shortcuts a:hover { background:var(--brand-pale); border-color:var(--brand-blue); }
.jdc-home-shortcuts a[aria-current="page"] { background:var(--brand-pale); border-color:var(--brand-blue); }
.jdc-profile-trigger { display:flex; align-items:center; gap:7px; list-style:none; }
.jdc-profile-trigger::-webkit-details-marker { display:none; }
.jdc-profile-name { display:block; padding-bottom:8px; }
.jdc-side { background:transparent; border:0; }
.jdc-side-section { background:var(--card); }
.jdc-side-section .jdc-side-group { margin:0; padding:20px 20px 8px; font-size:11px; font-weight:600; color:var(--muted); letter-spacing:.02em; }
.jdc-side-section .jdc-side-item { font-size:15px; font-weight:500; padding:12px 20px; }
.jdc-side-section .jdc-side-item.active { font-weight:700; }
.jdc-side-management { margin-top:28px; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.jdc-side-management .jdc-side-group { padding:16px 20px; font-size:13px; color:var(--ink); background:var(--brand-pale); }
.jdc-profile > summary { cursor:pointer; padding:9px 12px; border:1px solid var(--line); border-radius:6px; font-size:13px; white-space:nowrap; }
.jdc-profile-menu { position:absolute; right:0; top:calc(100% + 8px); z-index:100; min-width:230px; padding:16px; background:var(--card); border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px #0a1b2614; }
.jdc-profile-menu > a { display:block; padding:10px 0; color:var(--ink); text-decoration:none; }
.jdc-profile-menu .jdc-role { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.jdc-profile-menu select { width:100%; }
.jdc-module-link:focus-visible, .jdc-profile summary:focus-visible { outline:2px solid var(--brand-blue); outline-offset:-3px; }
@media(max-width:1100px) {
  .jdc-unified-header .jdc-header-inner { gap:12px; }
  .jdc-unified-header .jdc-module-link { padding-inline:8px; }
  .jdc-unified-header .jdc-search input { width:85px; }
}
@media(max-width:700px) {
  .jdc-unified-header .jdc-header-inner { flex-wrap:wrap; height:auto; min-height:64px; padding-top:12px; gap:8px; }
  .jdc-unified-header .jdc-header-left { width:auto; }
  .jdc-unified-header .jdc-header-right { margin-left:auto; max-width:100%; }
  .jdc-unified-header .jdc-header-right .jdc-search { display:none; }
  .jdc-unified-header .jdc-module-nav { order:3; flex-basis:100%; height:44px; }
  .jdc-unified-header .jdc-module-link { padding-inline:12px; }
}
@media (max-width: 700px) {
  .jdc-header-inner, body.gr-page .jdc-header-inner { padding-inline: 14px; }
  .jdc-header-left, body.gr-page .jdc-header-left { width: 100%; flex-wrap: wrap; gap: 10px 12px; }
  .jdc-logo { font-size: 15px; }
  .jdc-product-brand { font-size: 13px; gap: 6px; }
  .jdc-sys-switch { flex-wrap: wrap; }
  .jdc-sys-tab { padding: 5px 9px; font-size: 12px; }
  .jdc-header-right { max-width: 100%; flex-wrap: wrap; }
  .jdc-role { min-width: 0; }
  .jdc-role select { min-width: 0; max-width: 100%; }
}
