/* R&D Division — economic-graph mode */
#rnd-header { display: flex; flex-wrap: wrap; align-items: center; gap: 18px;
  padding: 10px 14px; border-bottom: 1px solid #333; font-family: monospace; color: #ffb000; }
#rnd-header .rnd-stat { letter-spacing: 0.5px; font-size: 13px; color: #999; }
#rnd-header .rnd-stat b { color: #ffb000; margin-left: 4px; }
#rnd-header #rnd-convert { margin-left: auto; }
.rnd-content { padding: 8px 14px; font-family: monospace; }
.rnd-market { padding: 10px 0; border-bottom: 1px solid #1d1d1d; }
.rnd-market.locked { opacity: 0.7; }
.rnd-market .rnd-mname { color: #e8e8e8; font-size: 14px; margin-bottom: 6px; }
.rnd-market .rnd-mname small { color: #777; }
.rnd-cornered { color: #00cc44; border: 1px solid #00cc44; padding: 0 5px; font-size: 11px; margin-left: 6px; }
.rnd-bar { position: relative; height: 18px; background: #161616; border: 1px solid #2a2a2a; margin: 4px 0 8px; overflow: hidden; }
.rnd-bar-fill { position: absolute; top: 0; left: 0; height: 100%; background: linear-gradient(90deg, #5a4a00, #ffb000); opacity: 0.55; }
.rnd-bar-label { position: relative; z-index: 1; font-size: 11px; color: #ddd; line-height: 18px; padding-left: 6px; }
.rnd-market button { font-family: monospace; font-size: 12px; background: #1a1a1a; color: #ffb000;
  border: 1px solid #3a3a00; padding: 4px 9px; margin: 3px 6px 3px 0; cursor: pointer; }
.rnd-market button:hover:not([disabled]) { background: #2a2a00; }
.rnd-market button[disabled] { color: #555; border-color: #222; cursor: not-allowed; }
.rnd-market button.rnd-opt { border-color: #004a2a; color: #00cc66; }
.rnd-market button.rnd-wire { border-color: #2a2a4a; color: #6688ff; }
#rnd-convert { font-family: monospace; font-size: 12px; background: #2a1a00; color: #ffb000;
  border: 1px solid #5a3a00; padding: 4px 10px; cursor: pointer; }
.rnd-anchor { color: #774400; text-decoration: line-through; margin-right: 4px; }
#rnd-expedition { font-family: monospace; font-size: 12px; background: #1a0a2a; color: #c08bff;
  border: 1px solid #3a1a5a; padding: 4px 10px; margin-left: 8px; cursor: pointer; }
#rnd-expedition[disabled] { color: #555; border-color: #222; cursor: wait; }
.rnd-flash { flex-basis: 100%; color: #9d7bd8; font-size: 12px; min-height: 14px; margin-top: 4px; }

/* Economy v2 — tiered reveal + R&D pipeline cooldown (competitor/rival bars obviated by v3) */
.rnd-pipeline { font-size: 12px; opacity: 0.85; padding: 2px 6px; border-left: 2px solid #c8a13a; margin: 4px 0; }
.rnd-market.gate .rnd-mname { font-weight: 700; }

/* v3a lifecycle phase badges */
.rnd-phase { font-size: 10px; padding: 1px 5px; border-radius: 3px; margin-left: 6px; vertical-align: middle; }
.rnd-phase-emerging  { background: #1f3a5f; color: #8ec5ff; }
.rnd-phase-growing   { background: #1f5f3a; color: #8effb0; }
.rnd-phase-mature    { background: #5f5a1f; color: #ffe98e; }
.rnd-phase-declining { background: #5f1f2b; color: #ff9eb0; }

/* v3b: externality debt meter + technique toggle */
.rnd-debt { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; opacity: 0.9; }
.rnd-debt-bar { display: inline-block; width: 90px; height: 8px; background: #222; border: 1px solid #444; }
.rnd-debt-fill { display: block; height: 100%; background: #b5462b; transition: width 0.4s; }
.rnd-technique { font-size: 12px; margin-top: 4px; }

/* v3c — Format War board + technique-fit indicators */
#rnd-formatwar { margin: 6px 0; }
.fw-title { font-weight: 700; font-size: 13px; margin-bottom: 4px; }
.fw-row { display: flex; align-items: center; gap: 8px; margin: 3px 0; }
.fw-name { min-width: 160px; }
.fw-bar { position: relative; flex: 1; height: 16px; background: #1b1b1b; }
.fw-bar-fill { height: 100%; background: #2f6f4f; }
.fw-bar-label { position: absolute; left: 6px; top: 0; font-size: 11px; line-height: 16px; }
.rnd-fit { font-size: 11px; opacity: 0.75; }
.rnd-crash { font-size: 11px; color: #c8a13a; font-weight: 700; }

/* ============ Tiered-DAG graph view (EconGraphView) — the economy made visible ============ */
.rnd-graph-wrap { overflow-x: auto; overflow-y: hidden; padding: 4px 0 8px; background:
  radial-gradient(ellipse at 30% 0%, #10171a 0%, #0a0e0f 70%); border: 1px solid #1c2426; }
.gv-svg { display: block; font-family: monospace; }
.gv-tierlabel { fill: #5f7377; font-size: 10px; letter-spacing: 1.5px; }

/* edges */
.gv-edges .gv-edge { fill: none; opacity: 0.35; }
.gv-edge.gv-demand { stroke: #2f8f7a; }
.gv-edge.gv-unlock { stroke: #7a5f1a; stroke-dasharray: 3 3; }
.gv-edge.live { opacity: 0.9; filter: drop-shadow(0 0 2px currentColor); }
.gv-edge.gv-demand.live { stroke: #3ade7a; stroke-dasharray: 5 6; animation: gv-flow 1.2s linear infinite; }
.gv-arrowhead.gv-demand { fill: #2f8f7a; }
.gv-arrowhead.gv-unlock { fill: #7a5f1a; }
@keyframes gv-flow { to { stroke-dashoffset: -22; } }

/* nodes */
.gv-node { }
.gv-node .gv-box { fill: #12181a; stroke: #2a3538; stroke-width: 1; }
.gv-node.open .gv-box { fill: #16201f; }
.gv-node.locked { opacity: 0.55; }
.gv-node.locked .gv-box { stroke-dasharray: 4 3; }
.gv-node.gate .gv-box { stroke: #c8a13a; }
.gv-node.selected .gv-box { stroke: #ffb000; stroke-width: 2; }
.gv-node.cornered .gv-box { stroke: #3ade7a; stroke-width: 1.6; filter: url(#gv-glow); }
.gv-name { fill: #dfe8e6; font-size: 11px; }
.gv-fac  { fill: #6b7d80; font-size: 9px; }
.gv-hub  { fill: #c8a13a; font-size: 8px; letter-spacing: 1px; }
.gv-share { fill: #8fa0a2; font-size: 9px; }
.gv-badge { fill: #3ade7a; font-size: 8px; letter-spacing: 0.5px; }
.gv-locked { fill: #6f8386; font-size: 9px; }
.gv-gauge-bg { fill: #0c1112; }
.gv-node:hover .gv-box { stroke: #ffb000; }

/* action panel — the selected market's money moves */
.rnd-actions { margin-top: 10px; padding: 10px 12px; border: 1px solid #2a2a1a;
  background: #0e1210; font-family: monospace; }
.rnd-act-title { color: #ffb000; font-size: 14px; margin-bottom: 4px; }
.rnd-act-title small { color: #777; }
.rnd-act-stats { color: #bcd; font-size: 12px; margin-bottom: 8px; }
.rnd-actions button { font-family: monospace; font-size: 12px; background: #1a1a1a; color: #ffb000;
  border: 1px solid #3a3a00; padding: 5px 10px; margin: 3px 6px 3px 0; cursor: pointer; }
.rnd-actions button:hover:not([disabled]) { background: #2a2a00; }
.rnd-actions button[disabled] { color: #555; border-color: #222; cursor: not-allowed; }
.rnd-actions button.rnd-raise { border-color: #1a4a2a; color: #3ade7a; }
.rnd-actions button.rnd-wire { border-color: #2a2a4a; color: #6688ff; }
.rnd-actions .rnd-phase { font-size: 10px; padding: 0 4px; border: 1px solid #444; }
.rnd-crash { color: #ff6644; }
.rnd-fit { color: #7a9; }

/* ---- terminal control-panel skin (prototype C aesthetic) ---- */
.rnd-graph-wrap { position: relative; }
.rnd-graph-wrap::after {   /* CRT scanlines */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0) 0 2px, rgba(0,0,0,0.10) 2px 3px);
  mix-blend-mode: multiply; }
.gv-node .gv-box { transition: stroke 0.15s; }
.gv-node.open .gv-box { filter: drop-shadow(0 0 1px rgba(200,161,58,0.25)); }
.gv-node.cornered .gv-box { animation: gv-pulse 2.4s ease-in-out infinite; }
@keyframes gv-pulse { 0%,100% { stroke: #3ade7a; } 50% { stroke: #7affb0; } }
.gv-name { text-shadow: 0 0 2px rgba(223,232,230,0.15); }
.gv-hub { text-shadow: 0 0 3px rgba(200,161,58,0.5); }
.gv-tierlabel { text-transform: uppercase; }

/* Connected-loop: "choose your first venture" prompt (randomized start) */
.rnd-venture { padding: 24px 12px; max-width: 560px; }
.rnd-venture-title { color: #ffb000; font-weight: 700; letter-spacing: 2px; margin-bottom: 4px; }
.rnd-venture-sub { color: #c8a13a; opacity: 0.7; font-size: 12px; margin-bottom: 16px; }
.rnd-venture-opt { display: block; width: 100%; text-align: left; margin: 8px 0; padding: 12px 14px;
  background: #0f1416; border: 1px solid #c8a13a; color: #e8d8a8; cursor: pointer; font-family: inherit; }
.rnd-venture-opt:hover { background: #1a2226; border-color: #ffb000; }
.rnd-venture-opt b { color: #ffb000; }
.rnd-venture-opt small { display: block; opacity: 0.6; margin-top: 2px; }
