/*
Copyright (c) 2026 Terry Packer.

This file is part of Terry Packer's Work.
See www.terrypacker.com for further info.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/* =============================================================
   CONTROL_HELP.CSS  —  Control Theory page help modal
   Load order:  base.css  →  theme-amber.css
                →  control-styles.css  →  control-help.css
   ============================================================= */

/* ── OVERLAY ── */
#helpOverlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(5, 7, 10, 0.82);
  backdrop-filter: blur(4px);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}
#helpOverlay.open { display: flex; }

/* ── MODAL SHELL ── */
#helpModal {
  background: var(--bg-panel);
  border: 1px solid var(--border-hi);
  border-radius: 8px;
  width: min(860px, 94vw);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(240, 165, 0, 0.06);
}

/* ── MODAL HEADER ── */
#helpModalHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--bg-panel2);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
#helpModalHeader .help-title {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--text-primary);
}
#helpModalHeader .help-subtitle {
  font-size: 11px;
  color: var(--text-dim);
  letter-spacing: 0.06em;
  margin-top: 1px;
}
#btnCloseHelp {
  background: transparent;
  border: 1px solid var(--border-hi);
  border-radius: var(--radius);
  color: var(--text-dim);
  font-size: 16px;
  width: 30px; height: 30px;
  cursor: pointer;
  line-height: 1;
  transition: all 0.15s;
  display: flex; align-items: center; justify-content: center;
}
#btnCloseHelp:hover { border-color: var(--red); color: var(--red); }

/* ── TAB BAR ── */
#helpTabs {
  display: flex;
  background: var(--bg-panel2);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
#helpTabs::-webkit-scrollbar { display: none; }

.help-tab {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  padding: 9px 18px;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--text-dim);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.help-tab:hover { color: var(--text-primary); }
.help-tab.active {
  color: var(--amber);
  border-bottom-color: var(--amber);
  background: rgba(240, 165, 0, 0.05);
}

/* ── CONTENT AREA ── */
#helpContent {
  flex: 1;
  overflow-y: auto;
  padding: 24px 28px;
  min-height: 0;
}

/* ── HELP PAGES ── */
.help-page        { display: none; }
.help-page.active { display: block; }

/* ── TYPOGRAPHY INSIDE HELP ── */
.help-page h2 {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.help-page .help-lead {
  color: var(--text-dim);
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 20px;
  max-width: 640px;
}
.help-page h3 {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--amber);
  text-transform: uppercase;
  margin: 22px 0 8px;
}
.help-page h3:first-of-type { margin-top: 0; }
.help-page p {
  color: var(--text-dim);
  font-size: 13px;
  line-height: 1.65;
  margin-bottom: 10px;
  max-width: 680px;
}

/* ── SIGNAL FLOW DIAGRAM ── */
.signal-flow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin: 18px 0 22px;
}
.flow-block {
  background: var(--bg-panel2);
  border: 1px solid var(--border-hi);
  border-radius: 4px;
  padding: 8px 14px;
  text-align: center;
}
.flow-block .fb-tag  { font-size: 9px; color: var(--amber); letter-spacing: 0.1em; font-family: var(--font-mono); display: block; margin-bottom: 2px; }
.flow-block .fb-name { font-family: var(--font-head); font-size: 13px; font-weight: 700; color: var(--text-primary); letter-spacing: 0.06em; }
.flow-arrow          { color: var(--text-muted); font-size: 16px; padding: 0 2px; flex-shrink: 0; }
.flow-arrow.feedback { color: var(--cyan-dim); }
.flow-label          { font-family: var(--font-mono); font-size: 9px; color: var(--text-muted); display: block; margin-top: 2px; }

/* ── INFO TABLE ── */
.help-table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0 18px;
  font-size: 12.5px;
}
.help-table th {
  font-family: var(--font-head);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: left;
  padding: 5px 12px 5px 0;
  border-bottom: 1px solid var(--border);
}
.help-table td {
  padding: 7px 12px 7px 0;
  border-bottom: 1px solid var(--border);
  color: var(--text-dim);
  vertical-align: top;
  line-height: 1.5;
}
.help-table td:first-child {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--cyan);
  white-space: nowrap;
  padding-right: 20px;
}
.help-table tr:last-child td { border-bottom: none; }

/* ── CODE BLOCK ── */
.help-code {
  background: #080b10;
  border: 1px solid var(--border-hi);
  border-radius: 4px;
  padding: 12px 14px;
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: #abb2c0;
  line-height: 1.6;
  margin: 10px 0 16px;
  overflow-x: auto;
  white-space: pre;
}
.help-code .cm-comment { color: #5a6680; }
.help-code .cm-kw      { color: #c678dd; }
.help-code .cm-str     { color: #98c379; }
.help-code .cm-num     { color: #d19a66; }
.help-code .cm-fn      { color: #61afef; }
.help-code .cm-var     { color: #e06c75; }

/* ── CALLOUT / TIP BOX ── */
.help-tip {
  background: var(--amber-glow);
  border: 1px solid var(--amber-dim);
  border-left: 3px solid var(--amber);
  border-radius: 4px;
  padding: 10px 14px;
  margin: 14px 0;
  font-size: 12.5px;
  color: var(--text-dim);
  line-height: 1.55;
}
.help-tip strong { color: var(--amber); font-weight: 600; }

.help-tip-cyan {
  background: rgba(0, 212, 232, 0.07);
  border: 1px solid var(--cyan-dim);
  border-left: 3px solid var(--cyan);
}
.help-tip-cyan strong { color: var(--cyan); }

/* ── QUICK-START STEPS ── */
.qs-steps {
  counter-reset: qs;
  list-style: none;
  padding: 0;
  margin: 12px 0 20px;
}
.qs-steps li {
  counter-increment: qs;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.qs-steps li::before {
  content: counter(qs);
  flex-shrink: 0;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--amber-glow);
  border: 1px solid var(--amber-dim);
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 11px;
  display: flex; align-items: center; justify-content: center;
}
.qs-steps li .qs-text         { padding-top: 3px; color: var(--text-dim); font-size: 13px; line-height: 1.55; }
.qs-steps li .qs-text strong  { color: var(--text-primary); }
