/* ═══════════════════════════════════════════════════════════════════
   HastyLabs — Sovereign Brand CSS (Build 018)
   Master brand file — link in <head> before page styles.
   Source of truth: /opt/stacks/site/brand_guidelines.txt
═══════════════════════════════════════════════════════════════════ */

/* ── Brand Tokens ───────────────────────────────────────────────── */
:root {
  /* Fonts */
  --font-sans:     'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:     'ui-monospace', 'SFMono-Regular', 'Cascadia Code', 'Segoe UI Mono', monospace;

  /* Font Weights */
  --weight-black:  800;
  --weight-bold:   700;
  --weight-medium: 500;
  --weight-reg:    400;

  /* Letter Spacing */
  --ls-hero:  -1px;
  --ls-logo:  -0.3px;
  --ls-ui:    1.2px;
  --ls-badge: 3px;

  /* Logo size */
  --logo-size: 1.6rem;

  /* ── Core Colours (from brand_guidelines.txt) ── */
  --hl-bg:            #0a0c0f;
  --hl-bg-secondary:  #121418;
  --hl-bg-tertiary:   #1a1e24;

  /* Brand‑standard green‑tinted borders */
  --hl-border:        rgba(144, 238, 144, 0.1);
  --hl-border-bright: rgba(144, 238, 144, 0.3);

  /* ── Colour Palette ── */
  --hl-green:    #90EE90;   /* Accent Green / Primary */
  --hl-white:    #FFFFFF;
  --hl-grey:     #666666;   /* Dull Grey */
  --hl-cyan:     #00d4ff;   /* Info / Links */
  --hl-cyan-dim: rgba(0, 212, 255, 0.15);
  --hl-amber:    #FFA500;   /* Warning / Orange */
  --hl-red:      #ff4455;   /* Danger / Critical */
  --hl-purple:   #d8b4fe;   /* Pastel Lavender */

  /* ── Text ── */
  --hl-text:       #ffffff;
  --hl-text-dim:   #afafaf;
  --hl-text-muted: #808080;

  /* ── Semantic Risk Colours ── */
  --hl-risk-low:    #90EE90;
  --hl-risk-medium: #FFA500;
  --hl-risk-high:   #ff4455;

  /* ── Semantic UI Colours ── */
  --hl-timeline:      #00d4ff;
  --hl-case-active:   #90EE90;
  --hl-case-archived: #666666;
  --hl-graph-node:    #00d4ff;
  --hl-graph-edge:    #444444;

  /* ── Audit / Premium Theme Derived ── */
  --hl-bg-panel:         #1e1e1e;
  --hl-bg-panel-hover:   #252525;
  --hl-header-highlight: rgba(144, 238, 144, 0.05);
  --hl-green-muted:      rgba(144, 238, 144, 0.08);
  --hl-green-glow:       rgba(144, 238, 144, 0.15);
  --hl-green-dim:        #00cc6a;

  /* ── Grid / Effects ── */
  --hl-grid-color:        rgba(144, 238, 144, 0.02);
  --hl-scanline-opacity:  0.08;
}

/* ── Google Fonts: Inter ────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;800&display=swap');

/* ── Logo ───────────────────────────────────────────────────────── */
/*
  Usage:
    <a href="/" class="hl-logo">
      <span class="hl-logo__hasty">Hasty</span><span class="hl-logo__labs">Labs</span>
      <span class="hl-logo__sep"> | </span><span class="hl-logo__tool">TOOL_NAME</span>
    </a>
*/
.hl-logo {
  display:         flex !important;
  align-items:     center !important;
  text-decoration: none !important;
  border-bottom:   none !important;
  box-shadow:      none !important;
  font-family:     var(--font-sans) !important;
  font-weight:     var(--weight-black) !important;
  font-size:       var(--logo-size) !important;
  letter-spacing:  var(--ls-logo) !important;
  line-height:     1 !important;
  transition:      opacity 0.2s;
}

.hl-logo:hover {
  opacity: 0.85 !important;
  text-decoration: none !important;
  border-bottom:   none !important;
  box-shadow:      none !important;
}

/* Hasty = Green */
.hl-logo__hasty {
  color:           var(--hl-green) !important;
  font-weight:     var(--weight-black) !important;
  text-decoration: none !important;
}

/* Labs = White */
.hl-logo__labs {
  color:           var(--hl-white) !important;
  font-weight:     var(--weight-black) !important;
  text-decoration: none !important;
}

/* Separator = Dull Grey / translucent */
.hl-logo__sep {
  color:           var(--hl-grey) !important;
  font-weight:     300 !important;
  font-size:       1.4rem !important;
  margin:          0 12px !important;
  opacity:         0.5 !important;
  text-decoration: none !important;
}

/* Tool Name = Dull Grey, monospace, uppercase */
.hl-logo__tool {
  color:           var(--hl-grey) !important;
  font-family:     var(--font-mono) !important;
  font-weight:     600 !important;
  font-size:       0.85rem !important;
  letter-spacing:  2px !important;
  text-transform:  uppercase !important;
  padding-top:     2px !important;
  text-decoration: none !important;
}

/* ── Body / Global ──────────────────────────────────────────────── */
body.hl-branded {
  background:  var(--hl-bg);
  color:       var(--hl-text);
  font-family: var(--font-mono);
  margin:  0;
  padding: 0;
}

/* ── Links ──────────────────────────────────────────────────────── */
/* Content links: Cyan */
.hl-link {
  color:           var(--hl-cyan);
  text-decoration: none;
  transition:      color 0.2s;
}
.hl-link:hover { color: var(--hl-white); }

/* Navigation links: Grey/White — no blue */
.hl-nav-link {
  color:           var(--hl-text-muted);
  text-decoration: none;
  transition:      color 0.2s;
}
.hl-nav-link:hover { color: var(--hl-text); }

/* Doc links */
.hl-doc-link {
  color:           var(--hl-cyan);
  font-family:     var(--font-mono);
  font-size:       0.65rem;
  text-decoration: none;
  letter-spacing:  0.5px;
  border-bottom:   1px dotted rgba(0, 212, 255, 0.4);
  white-space:     nowrap;
  transition:      all 0.2s;
  display:         inline-flex;
  align-items:     center;
  gap:             4px;
}
.hl-doc-link:hover { color: var(--hl-white); border-color: var(--hl-white); }

/* ── Priority / Badge ───────────────────────────────────────────── */
.hl-priority {
  font-family:    var(--font-mono);
  font-size:      0.65rem;
  letter-spacing: 1px;
  padding:        2px 8px;
  text-transform: uppercase;
  border:         1px solid;
  white-space:    nowrap;
  display:        inline-block;
}
.hl-priority--critical { border-color: rgba(255,68,85,0.5);   color: var(--hl-red);   background: rgba(255,68,85,0.08); }
.hl-priority--high     { border-color: rgba(255,165,0,0.5);   color: var(--hl-amber); background: rgba(255,165,0,0.08); }
.hl-priority--medium   { border-color: rgba(0,212,255,0.4);   color: var(--hl-cyan);  background: var(--hl-cyan-dim); }
.hl-priority--low      { border-color: var(--hl-border-bright); color: var(--hl-grey); }

/* ── Cards ──────────────────────────────────────────────────────── */
.hl-card {
  background:  var(--hl-bg-secondary);
  border:      1px solid var(--hl-border);
  padding:     24px;
  position:    relative;
  overflow:    hidden;
  transition:  all 0.2s ease;
}
.hl-card::before {
  content:    '';
  position:   absolute;
  top: 0; left: 0; right: 0;
  height:     2px;
  background: linear-gradient(90deg, transparent, var(--hl-green), transparent);
  opacity:    0.6;
  z-index:    1;
}
.hl-card:hover { border-color: var(--hl-border-bright); background: var(--hl-bg-tertiary); }
.hl-card:hover::before { opacity: 1; }

/* ── Hero ───────────────────────────────────────────────────────── */
.hl-hero {
  background:  var(--hl-bg-secondary);
  border:      1px solid var(--hl-border);
  padding:     2.5rem 3rem;
  margin-bottom: 2rem;
  position:    relative;
  overflow:    hidden;
  transition:  all 0.2s ease;
}
.hl-hero::before {
  content:    '';
  position:   absolute;
  top: 0; left: 0; right: 0;
  height:     2px;
  background: linear-gradient(90deg, transparent, var(--hl-green), transparent);
  opacity:    0.8;
  z-index:    1;
}
.hl-hero::after {
  content:        attr(data-label);
  position:       absolute;
  top: 1.2rem; right: 1.5rem;
  font-size:      0.65rem;
  color:          var(--hl-text-muted);
  letter-spacing: 2px;
}

/* ── Progress Bar ───────────────────────────────────────────────── */
.hl-progress {
  background:  var(--hl-bg-secondary);
  border:      1px solid var(--hl-border);
  padding:     1.5rem 2rem;
  display:     flex;
  gap:         3rem;
  align-items: center;
  flex-wrap:   wrap;
}

/* ── Terminal Block ─────────────────────────────────────────────── */
.hl-terminal {
  background:  #050505;
  border:      1px solid var(--hl-border);
  padding:     16px 20px;
  font-family: var(--font-mono);
  font-size:   0.82rem;
  color:       var(--hl-green);
  overflow-x:  auto;
  border-radius: 4px;
}
.hl-terminal .prompt { color: var(--hl-text-muted); padding-right: 8px; }

/* ── Footer ─────────────────────────────────────────────────────── */
.hl-footer {
  padding:          16px;
  border-top:       1px solid var(--hl-border);
  font-size:        0.78rem;
  color:            var(--hl-green);
  letter-spacing:   0.06em;
  display:          flex;
  justify-content:  center;
  align-items:      center;
  gap:              24px;
  flex-wrap:        wrap;
}
.hl-footer a {
  color:           var(--hl-green);
  text-decoration: none;
  opacity:         0.7;
  transition:      opacity 0.2s;
}
.hl-footer a:hover { opacity: 1; }

/* ── Scrollbar ──────────────────────────────────────────────────── */
::-webkit-scrollbar       { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--hl-bg); }
::-webkit-scrollbar-thumb { background: rgba(144, 238, 144, 0.2); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(144, 238, 144, 0.4); }
