/* hal8000-cockpit.css — shared HAL-series cockpit theme (mirrors HAL 9000 / hal.html)
   Used by HAL 8000 Builder, HAL 8000 Monitor, and HAL 9000 Monitor. */
:root{
  --navy:#1B2A4A; --navy-soft:#243B60; --navy-deep:#0F1A30;
  --accent:#0D9373; --accent-light:#10B981; --accent-dark:#0B7A60;
  --hal-red:#B33A3A; --hal-glow:#34D399; --cyan:#0EA5E9;
  --bg-primary:#F0F5F3; --bg-secondary:#FFFFFF; --bg-card:#F7FAF9; --bg-hover:#E8F0ED;
  --text-primary:#1A2030; --text-secondary:#4A5568; --text-muted:#7A8A90;
  --border:#E0E6E3; --red:#EF4444; --amber:#F59E0B;
  --shadow-sm:0 1px 2px rgba(20,30,50,.04),0 2px 8px rgba(20,30,50,.04);
  --shadow-md:0 4px 12px rgba(20,30,50,.08),0 2px 4px rgba(20,30,50,.04);
  --shadow-lg:0 16px 40px rgba(20,30,50,.12),0 4px 12px rgba(20,30,50,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.55;min-height:100vh}
a{color:var(--accent-dark)}
.wrap{max-width:1200px;margin:0 auto;padding:18px}

/* ── Cinematic HAL banner with eye + video ── */
.hal-banner{position:relative;overflow:hidden;border-radius:16px;padding:22px 26px;color:#fff;
  background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 60%,var(--navy-soft) 100%);box-shadow:var(--shadow-lg)}
.hal-banner h1{font-size:26px;font-weight:800;letter-spacing:-0.01em}
.hal-banner h1 b{color:var(--hal-glow)}
.hal-banner .tag{margin-top:6px;font-size:13px;color:#CBD5E1;max-width:820px}
.hal-eye{position:absolute;right:24px;top:50%;transform:translateY(-50%);width:96px;height:96px;border-radius:14px;overflow:hidden;border:1px solid rgba(52,211,153,.4);box-shadow:0 0 26px rgba(52,211,153,.5)}
.hal-eye video{width:100%;height:100%;object-fit:cover;display:block}
.hal-eye-dot{position:absolute;right:42px;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff 0%,#C7F5DD 35%,var(--hal-glow) 75%,var(--accent-dark) 100%);
  box-shadow:0 0 24px rgba(52,211,153,.7);animation:halpulse 3s ease-in-out infinite}
@keyframes halpulse{0%,100%{box-shadow:0 0 18px rgba(52,211,153,.55)}50%{box-shadow:0 0 34px rgba(52,211,153,.95)}}
.badgebar{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.12);color:#E2E8F0;border:1px solid rgba(255,255,255,.18)}
.pill.glow{background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.5);color:#A7F3D0}

/* ── Dashboard strip (report links, like hal.html) ── */
.hal-dashboard-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 0;padding:11px 14px;
  background:linear-gradient(135deg,rgba(13,147,115,.10),rgba(14,165,233,.08));border:1px solid rgba(13,147,115,.4);border-radius:10px;font-size:12px}
.hal-dashboard-strip .strip-label{font-weight:800;color:var(--accent-dark);margin-right:4px}
.hal-dashboard-strip a{display:inline-flex;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;text-decoration:none;border-radius:6px;background:#fff;border:1px solid rgba(13,147,115,.45);color:var(--accent-dark);box-shadow:0 1px 2px rgba(13,147,115,.10);transition:filter .12s,transform .12s}
.hal-dashboard-strip a:hover{filter:brightness(1.04);transform:translateY(-1px)}

/* ── Panels & controls ── */
.panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:16px;box-shadow:var(--shadow-sm)}
.panel h2{margin:0 0 12px;font-size:15px;color:var(--navy);font-weight:800}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
label{display:block;font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:5px}
input,select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;font-size:14px;background:#fff;font-family:inherit}
.run{margin-top:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
button.go{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;border:0;border-radius:10px;padding:12px 22px;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(13,147,115,.3);font-family:inherit}
button.go:disabled{opacity:.55;cursor:not-allowed}
.hint{font-size:12px;color:var(--text-muted)}
.modetabs{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.modetabs button{background:#fff;border:0;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;color:var(--text-secondary);font-family:inherit}
.modetabs button.on{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff}

/* ── Loading HUD ── */
#status{display:none;margin-top:14px;align-items:center;gap:12px}
#status.show{display:flex}
.spin{width:22px;height:22px;border:3px solid #cbd5e1;border-top-color:var(--accent);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
#statusText{font-size:13px;color:var(--text-secondary);font-weight:600}

/* ── memo-section collapsibles (verbatim feel from hal.html) ── */
.memo-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow-sm)}
.memo-section summary{cursor:pointer;padding:14px 18px;list-style:none;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;color:var(--navy);transition:background .15s}
.memo-section summary::-webkit-details-marker{display:none}
.memo-section summary:hover{background:var(--bg-hover)}
.memo-section summary::after{content:'▾';margin-left:auto;color:var(--text-muted);transition:transform .15s}
.memo-section[open] summary::after{transform:rotate(180deg)}
.memo-section .sec-icon{width:28px;height:28px;background:rgba(13,147,115,.10);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.memo-section .sec-pill{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-dark);font-weight:700;background:rgba(13,147,115,.06);padding:3px 8px;border-radius:999px;margin-left:4px}
.memo-section .sec-body{padding:14px 18px 18px;font-size:13.5px;color:var(--text-secondary);line-height:1.6;border-top:1px solid var(--border)}
.memo-section .sec-body strong{color:var(--navy)}

/* ── KPIs ── */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:11px;padding:12px}
.kpi .l{font-size:11px;color:var(--text-secondary);font-weight:700;text-transform:uppercase}
.kpi .v{font-size:20px;font-weight:800;color:var(--navy);margin-top:3px}
.pos{color:#166534}.neg{color:#b91c1c}

/* ── cards ── */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:8px}
.card{border:1px solid var(--border);border-radius:13px;padding:15px;background:#fff;border-top:4px solid var(--cyan);box-shadow:var(--shadow-sm)}
.card.share{border-top-color:var(--accent)}
.card .sym{font-size:18px;font-weight:800;color:var(--navy)}
.card .sub{font-size:12px;color:var(--text-muted);margin-bottom:6px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;font-size:13px;margin:6px 0}
.kv span{color:var(--text-secondary)} .kv b{color:var(--text-primary)}
.greeks{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.greeks .g{font-size:11px;font-weight:700;background:#f1f5f9;border-radius:6px;padding:3px 7px;color:#334155}
.setrow{display:flex;gap:8px;margin-top:8px}
.setrow div{flex:1;text-align:center;border-radius:8px;padding:6px 4px;font-size:12px;font-weight:700}
.setrow .s{background:#fee2e2;color:#991b1b}.setrow .e{background:#e0e7ff;color:#3730a3}.setrow .t{background:#dcfce7;color:#166534}
.prog{background:#eef2f7;border-radius:6px;height:12px;overflow:hidden;margin:6px 0}
.prog .pf{height:100%;background:var(--accent-light)}
.sizenote{font-size:12px;color:var(--text-secondary);background:var(--bg-card);border:1px dashed var(--border);border-radius:8px;padding:7px 9px;margin-top:8px}
.sizenote.warn{background:#fffbeb;border-color:#fcd34d;color:#92400e}
.conv{font-size:12px;font-weight:700;border-radius:8px;padding:6px 9px;margin-top:8px;background:#f1f5f9;color:#334155}
.conv.long{background:#dcfce7;color:#166534}.conv.contra{background:#fee2e2;color:#991b1b}.conv.neutral{background:#fef3c7;color:#92400e}
.alert{font-size:12px;font-weight:700;border-radius:7px;padding:5px 8px;margin-top:5px}
.a-target{background:#dcfce7;color:#166534}.a-stop{background:#fee2e2;color:#991b1b}.a-expiry{background:#fef3c7;color:#92400e}.a-data{background:#f1f5f9;color:#475569}

/* ── macro + alloc ── */
.macro{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.chip{font-size:13px;font-weight:800;padding:6px 14px;border-radius:10px}
.r-on{background:#dcfce7;color:#166534}.r-neutral{background:#fef3c7;color:#92400e}.r-off{background:#fee2e2;color:#991b1b}
.alloc{display:flex;flex-direction:column;gap:6px}
.bar{display:flex;align-items:center;gap:8px;font-size:12px}
.bar .name{width:90px;color:var(--text-secondary);font-weight:700}
.bar .track{flex:1;background:#eef2f7;border-radius:6px;height:14px;overflow:hidden}
.bar .fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--accent))}
.bar .pct{width:48px;text-align:right;font-weight:700}

/* ── rails + misc ── */
.rails{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.rail{font-size:11px;font-weight:700;padding:3px 9px;border-radius:7px}
.rail.live{background:#dcfce7;color:#166534}.rail.proxy{background:#fef3c7;color:#92400e}.rail.off{background:#fee2e2;color:#991b1b}.rail.local{background:#e0f2fe;color:#075985}
.memo{white-space:pre-wrap;font-size:14px;line-height:1.65;color:#1e293b}
.disc{font-size:12px;color:var(--text-muted);margin-top:14px;border-top:1px solid var(--border);padding-top:10px}
.sectionhd{font-size:16px;font-weight:800;color:var(--navy);margin:18px 0 4px}
.empty{font-size:13px;color:var(--text-muted);padding:8px 0}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:6px;border-bottom:1px solid var(--border);text-align:left}
th{font-size:11px;color:var(--text-secondary);text-transform:uppercase}
td input,td select{padding:6px 7px}
.btn{border:1px solid var(--border);background:#fff;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;color:var(--text-secondary);font-family:inherit}
.btn.add{color:var(--accent);border-color:#86efac}
.xbtn{background:#fff;border:1px solid #fca5a5;color:#b91c1c;border-radius:7px;padding:4px 9px;cursor:pointer;font-weight:700}
@media(max-width:760px){.hal-eye{display:none}}
.news{font-size:12.5px;color:#334155;margin-top:6px;border-top:1px dashed var(--border);padding-top:6px}
.modetabs .on{}
#status{align-items:flex-start}
.progcol{flex:1;min-width:180px}
.progwrap{height:6px;background:#E5E9E7;border-radius:4px;margin-top:7px;overflow:hidden;max-width:420px}
.progbar{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--accent));transition:width .35s ease}
.progmeta{font-size:11px;color:var(--text-muted);margin-top:4px}
