/* === Coinmania Market Control SCADA === */
* { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --bg: #040b08;
    --grid: rgba(61, 245, 138, 0.045);
    --surface: rgba(255, 255, 255, 0.02);
    --line: #1e3a2e;
    --line-strong: #345a48;
    --text: #d9f2e3;
    --muted: #6a8478;
    --dim: #475c52;
    --green: #3df58a;
    --green-soft: #87f5b6;
    --amber: #ffaa1c;
    --red: #ff5560;
    --src-1: #3df58a;
    --src-2: #ff5560;
    --src-3: #52a2ff;
    --src-4: #b18cff;
    --src-5: #5ce5ff;
    --src-6: #ffd24a;
    --src-7: #ff6cb0;
    --src-8: #e07cff;
}

body {
    min-height: 100vh;
    color: var(--text);
    font-family: "Inter", system-ui, -apple-system, sans-serif;
    background:
        linear-gradient(90deg, var(--grid) 1px, transparent 1px),
        linear-gradient(0deg, var(--grid) 1px, transparent 1px),
        radial-gradient(circle at 16% 8%, rgba(61, 245, 138, 0.1), transparent 36%),
        radial-gradient(circle at 84% 12%, rgba(82, 162, 255, 0.06), transparent 38%),
        var(--bg);
    background-size: 32px 32px, 32px 32px, auto, auto, auto;
    overflow-x: auto;
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(0deg, rgba(255,255,255,0.022), rgba(255,255,255,0.022) 1px, transparent 1px, transparent 4px);
    opacity: 0.4;
    z-index: 100;
}

.mono, .tag, .ts, .gauge-val, .clock-val, .stat-val, .source-val, .agent-val {
    font-family: "JetBrains Mono", "IBM Plex Mono", Menlo, Consolas, monospace;
}

.screen { width: 1700px; margin: 0 auto; padding: 14px; }

/* === ALARM BANNER === */
.banner { display: grid; grid-template-columns: auto 1fr auto auto; grid-template-rows: auto auto; column-gap: 18px; row-gap: 8px; align-items: center; padding: 12px 16px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(20,38,30,0.98), rgba(10,22,18,0.98)); }
.banner-brand { display: flex; align-items: center; gap: 14px; grid-column: 1; grid-row: 1; }
.banner-brand img { width: 128px; filter: brightness(1.4); }
.banner-brand-meta { border-left: 1px solid var(--line); padding-left: 14px; }
.banner-brand-meta strong { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--green-soft); }
.banner-brand-meta span { color: var(--muted); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; }
.banner-controls { grid-column: 4; grid-row: 1; display: flex; gap: 8px; align-items: center; }
.banner-btn { padding: 8px 14px; border: 1px solid var(--line-strong); background: rgba(4,14,10,0.85); color: var(--green-soft); font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: all 0.15s; }
.banner-btn:hover { background: rgba(61,245,138,0.15); border-color: var(--green); }
.banner-btn.active { background: rgba(82,162,255,0.18); border-color: #52a2ff; color: #87caff; }
.banner-ticker { position: relative; overflow: hidden; height: 32px; padding: 0 12px; border-top: 1px solid var(--line); background: rgba(4,14,10,0.6); display: flex; align-items: center; grid-column: 1 / -1; grid-row: 2; }
.ticker-list { display: flex; gap: 36px; animation: tickerScroll 60s linear infinite; white-space: nowrap; will-change: transform; }
.ticker-item { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.04em; }
.ticker-item .ts { color: var(--muted); font-size: 10px; }
.ticker-item.warn { color: var(--amber); }
.ticker-item.crit { color: var(--red); }
.ticker-item.ok { color: var(--green); }
.ticker-item.info { color: #52a2ff; }
.ticker-dot { width: 8px; height: 8px; background: currentColor; box-shadow: 0 0 8px currentColor; }
@keyframes tickerScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.banner-clock { text-align: right; grid-column: 3; grid-row: 1; align-self: center; }
.banner-clock strong { display: block; font-size: 22px; letter-spacing: 0.04em; color: var(--green-soft); }
.banner-clock span { color: var(--muted); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; }

/* === CANVAS === */
.canvas { position: relative; margin-top: 12px; width: 1680px; height: 1160px; border: 1px solid var(--line); background: linear-gradient(90deg, var(--grid) 1px, transparent 1px), linear-gradient(0deg, var(--grid) 1px, transparent 1px), var(--bg); background-size: 24px 24px; overflow: hidden; }
.pipes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.pipe { fill: none; stroke-linecap: square; stroke-linejoin: miter; }
.pipe-archive { stroke: #2c4a3d; stroke-width: 1; opacity: 0.75; stroke-dasharray: 3 4; }
.pipe-live { stroke-width: 2; stroke-dasharray: 7 5; animation: flow 1.4s linear infinite; filter: drop-shadow(0 0 4px currentColor); }
.pipe-out { stroke: var(--green); stroke-width: 2; stroke-dasharray: 6 4; animation: flow 1.6s linear infinite; filter: drop-shadow(0 0 5px var(--green)); }
.pipe.s1 { stroke: var(--src-1); color: var(--src-1); }
.pipe.s2 { stroke: var(--src-2); color: var(--src-2); }
.pipe.s3 { stroke: var(--src-3); color: var(--src-3); }
.pipe.s4 { stroke: var(--src-4); color: var(--src-4); }
.pipe.s5 { stroke: var(--src-5); color: var(--src-5); }
.pipe.s6 { stroke: var(--src-6); color: var(--src-6); }
.pipe.s7 { stroke: var(--src-7); color: var(--src-7); }
.pipe.s8 { stroke: var(--src-8); color: var(--src-8); }
@keyframes flow { to { stroke-dashoffset: -24; } }
.node { position: absolute; z-index: 3; }

/* === SOURCE === */
.source { width: 180px; height: 124px; padding: 8px 10px; border: 1px solid var(--line); background: var(--surface); }
.source.s1 { border-color: rgba(61,245,138,0.4); }
.source.s2 { border-color: rgba(255,85,96,0.4); }
.source.s3 { border-color: rgba(82,162,255,0.4); }
.source.s4 { border-color: rgba(177,140,255,0.4); }
.source.s5 { border-color: rgba(92,229,255,0.4); }
.source.s6 { border-color: rgba(255,210,74,0.4); }
.source.s7 { border-color: rgba(255,108,176,0.4); }
.source.s8 { border-color: rgba(224,124,255,0.4); }
.node-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.tag { font-size: 10px; letter-spacing: 0.08em; color: var(--dim); }
.led { width: 7px; height: 7px; background: var(--green); box-shadow: 0 0 5px var(--green); border-radius: 50%; animation: blink 2s ease-in-out infinite; }
.led.amber { background: var(--amber); box-shadow: 0 0 5px var(--amber); animation-duration: 1.2s; }
.led.red { background: var(--red); box-shadow: 0 0 5px var(--red); animation-duration: 0.7s; }
.led.off { background: var(--dim); box-shadow: none; opacity: 0.5; animation: none; }
@keyframes blink { 0%, 75%, 100% { opacity: 1; } 40% { opacity: 0.45; } }
.source-icon { display: grid; place-items: center; height: 40px; margin: 2px 0 4px; }
.source-icon svg { width: 30px; height: 30px; fill: none; stroke-width: 1.6; }
.source.s1 .source-icon svg { stroke: var(--src-1); }
.source.s2 .source-icon svg { stroke: var(--src-2); }
.source.s3 .source-icon svg { stroke: var(--src-3); }
.source.s4 .source-icon svg { stroke: var(--src-4); }
.source.s5 .source-icon svg { stroke: var(--src-5); }
.source.s6 .source-icon svg { stroke: var(--src-6); }
.source.s7 .source-icon svg { stroke: var(--src-7); }
.source.s8 .source-icon svg { stroke: var(--src-8); }
.source-name { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-align: center; }
.source-val { display: block; margin-top: 3px; text-align: center; font-size: 11px; color: var(--muted); }

/* === RESERVOIR === */
.reservoir { position: absolute; width: 90px; height: 100px; filter: drop-shadow(0 0 14px rgba(61,245,138,0.12)); }
.reservoir svg.cyl { width: 100%; height: 100%; display: block; overflow: visible; }
.reservoir-tag { position: absolute; left: 50%; transform: translateX(-50%); bottom: -18px; font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--green-soft); letter-spacing: 0.08em; white-space: nowrap; text-shadow: 0 0 4px rgba(61,245,138,0.4); }
.reservoir.idle .reservoir-tag { color: var(--amber); text-shadow: 0 0 4px rgba(255,170,28,0.45); }
.res-gear { position: absolute; bottom: 6px; right: -10px; width: 22px; height: 22px; animation: spin 4.5s linear infinite; z-index: 5; filter: drop-shadow(0 0 4px rgba(61,245,138,0.5)); }
.res-gear-2 { position: absolute; top: 22px; left: -12px; width: 18px; height: 18px; animation: spin 6.5s linear infinite reverse; z-index: 5; filter: drop-shadow(0 0 4px rgba(61,245,138,0.4)); }
.res-gear svg, .res-gear-2 svg { width: 100%; height: 100%; fill: none; stroke: #87f5b6; stroke-width: 1.6; }
.reservoir.idle .res-gear, .reservoir.idle .res-gear-2 { animation: none; opacity: 0.45; }
.reservoir.idle .res-gear svg, .reservoir.idle .res-gear-2 svg { stroke: var(--amber); }
@keyframes spin { to { transform: rotate(360deg); } }

/* === TANK CYLINDER (T-301) === */
.tank-cyl { position: absolute; filter: drop-shadow(0 0 14px rgba(61,245,138,0.18)); }
.tank-cyl svg.cyl { width: 100%; height: 100%; display: block; overflow: visible; }
.tank-cyl-label { position: absolute; top: 18px; left: 8px; right: 8px; text-align: center; pointer-events: none; z-index: 4; }
.tank-cyl-label strong { display: block; font-size: 14px; font-weight: 800; letter-spacing: 0.14em; color: var(--green-soft); text-shadow: 0 0 4px rgba(61,245,138,0.5); }
.tank-cyl-label small { display: block; margin-top: 4px; font-family: "JetBrains Mono", monospace; font-size: 9px; color: var(--muted); letter-spacing: 0.06em; }
.tank-cyl-gears { position: absolute; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; animation: spin 5s linear infinite; z-index: 5; filter: drop-shadow(0 0 4px rgba(61,245,138,0.5)); }
.tank-cyl-gears.left { left: -14px; animation-direction: reverse; }
.tank-cyl-gears.right { right: -14px; }
.tank-cyl-gears svg { width: 100%; height: 100%; fill: none; stroke: #87f5b6; stroke-width: 1.6; }

/* === AGENT === */
.agent { width: 240px; height: 220px; padding: 10px 12px; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; }
.agent-leds { display: flex; gap: 4px; }
.agent-leds .led { width: 5px; height: 5px; }
.agent-core { position: relative; width: 100%; height: 122px; margin: 4px 0 6px; border: 1px solid var(--line-strong); background: rgba(4,14,10,0.55); overflow: hidden; }
.agent-core::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.022), rgba(255,255,255,0.022) 1px, transparent 1px, transparent 5px); opacity: 0.55; pointer-events: none; z-index: 0; }
.agent-core svg.char { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: 1; }
.char-body { animation: bob 4.4s ease-in-out infinite; transform-origin: 110px 60px; }
.char-screen { animation: screenFlicker 2.6s ease-in-out infinite; }
.agent.idle .char-body, .agent.idle .char-screen { animation: none; }
.agent .eye-closed, .agent .z-symbol { display: none; }
.agent.idle .eye-open { display: none; }
.agent.idle .eye-closed { display: unset; }
.agent.idle .z-symbol { display: unset; }
.agent.idle .char-body { opacity: 0.65; }
.agent.idle .char-screen { fill: #ffaa1c; opacity: 0.3; }
.agent.idle .laptop { opacity: 0.55; stroke: #5a8478; }
.agent.idle .cup { opacity: 0.55; stroke: #5a8478; }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.5px); } }
@keyframes screenFlicker { 0%, 88%, 100% { opacity: 1; } 92% { opacity: 0.45; } }
.agent-name { display: block; text-align: center; font-size: 14px; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.agent-scope { display: block; text-align: center; margin-top: 3px; font-size: 10px; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }
.agent-bottom { margin-top: auto; padding-top: 8px; display: flex; justify-content: space-between; align-items: center; font-size: 10px; border-top: 1px solid var(--line); }
.agent-val { color: var(--green); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.agent-val.warn { color: var(--amber); }
.agent-val.crit { color: var(--red); }
.agent-val.off { color: var(--dim); }

/* === GAUGE === LED-segment bar (industrial SCADA style) */
.gauge { position: absolute; width: 280px; height: 96px; padding: 10px 12px 8px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(61,245,138,0.05), transparent 40%), var(--surface); }
.gauge-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.gauge-name { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.gauge-bar { display: flex; gap: 2px; height: 22px; padding: 3px; border: 1px solid var(--line); background: rgba(4, 14, 10, 0.7); margin-bottom: 6px; }
.gauge-bar .seg { flex: 1; height: 100%; transition: all 0.3s ease-out; }
.gauge-bar .seg.z-r { background: rgba(255, 85, 96, 0.10); }
.gauge-bar .seg.z-a { background: rgba(255, 170, 28, 0.10); }
.gauge-bar .seg.z-g { background: rgba(61, 245, 138, 0.10); }
.gauge-bar .seg.lit.z-r { background: #ff5560; box-shadow: 0 0 6px rgba(255, 85, 96, 0.7), inset 0 0 4px rgba(255,255,255,0.15); }
.gauge-bar .seg.lit.z-a { background: #ffaa1c; box-shadow: 0 0 6px rgba(255, 170, 28, 0.7), inset 0 0 4px rgba(255,255,255,0.15); }
.gauge-bar .seg.lit.z-g { background: #3df58a; box-shadow: 0 0 6px rgba(61, 245, 138, 0.7), inset 0 0 4px rgba(255,255,255,0.2); }
.gauge-readout { display: flex; justify-content: space-between; align-items: baseline; padding: 0 4px; }
.gauge-val { font-family: "JetBrains Mono", monospace; font-size: 22px; font-weight: 900; color: var(--green-soft); letter-spacing: 0.02em; text-shadow: 0 0 6px rgba(61,245,138,0.4); }
.gauge-status { font-family: "Inter", sans-serif; font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.gauge-status.warn { color: var(--amber); }
.gauge-status.crit { color: var(--red); }
.gauge-status.ok { color: var(--green-soft); }
.needle { transform-origin: 100px 90px; transition: transform 0.8s ease-out; filter: drop-shadow(0 0 5px rgba(135, 245, 182, 0.85)); }
.needle line { stroke-width: 4 !important; stroke: #d9f7ed !important; }
.needle circle { r: 7; fill: #3df58a; stroke: #040b08; stroke-width: 2.5; }

/* === PROFESSOR === */
.professor { position: absolute; padding: 16px 18px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(61,245,138,0.06), transparent 70%), var(--surface); }
.prof-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.prof-tag-block strong { display: block; font-size: 16px; letter-spacing: 0.12em; color: var(--green-soft); text-transform: uppercase; }
.prof-tag-block span { color: var(--muted); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
.prof-leds { display: flex; gap: 5px; align-items: center; }
.prof-leds .led { width: 6px; height: 6px; }
.prof-body { display: grid; grid-template-columns: 110px 1fr; gap: 16px; }
.prof-avatar { width: 110px; height: 130px; border: 1px solid var(--line-strong); background: radial-gradient(circle at 50% 38%, rgba(61,245,138,0.2), transparent 60%), linear-gradient(180deg, #1a342a, #06150f); display: grid; place-items: center; padding: 0; overflow: hidden; }
.prof-avatar svg.char-prof { width: 100%; height: 100%; display: block; animation: bob 4.4s ease-in-out infinite; }
.prof-output { padding: 12px 14px; border: 1px dashed var(--line-strong); background: rgba(4,14,10,0.45); }
.prof-output .label { display: block; font-size: 10px; letter-spacing: 0.1em; color: var(--muted); text-transform: uppercase; margin-bottom: 6px; }
.prof-output h2 { font-size: 17px; letter-spacing: 0.02em; margin-bottom: 8px; color: var(--green-soft); }
.prof-output p { font-size: 13px; line-height: 1.55; color: var(--text); }
.prof-meta { margin-top: 12px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; font-size: 11px; }
.prof-meta > div { padding: 8px 10px; border: 1px solid var(--line); background: rgba(4,14,10,0.4); }
.prof-meta span { display: block; color: var(--muted); letter-spacing: 0.08em; text-transform: uppercase; font-size: 9px; margin-bottom: 4px; }
.prof-meta strong { color: var(--green-soft); font-size: 14px; font-family: "JetBrains Mono", monospace; }
.conf-bar { height: 4px; margin-top: 6px; background: rgba(4,14,10,0.7); border: 1px solid var(--line); }
.conf-bar > span { display: block; height: 100%; background: linear-gradient(90deg, var(--green), var(--green-soft)); }

/* === STATUS BAR === */
.status { margin-top: 12px; padding: 10px 16px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; border: 1px solid var(--line); background: rgba(10,22,18,0.65); font-size: 11px; }
.stat { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 0 6px; }
.stat-name { color: var(--muted); letter-spacing: 0.08em; text-transform: uppercase; font-size: 10px; }
.stat-val { color: var(--green-soft); font-weight: 800; }

/* === TOOLTIP (Phase 1 hover layer) === */
.tooltip { position: fixed; max-width: 280px; padding: 10px 12px; border: 1px solid var(--line-strong); background: rgba(6, 18, 14, 0.96); color: var(--text); font-size: 12px; line-height: 1.45; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); pointer-events: none; z-index: 200; opacity: 0; transition: opacity 0.15s ease-out; filter: drop-shadow(0 0 8px rgba(61,245,138,0.18)); }
.tooltip.show { opacity: 1; }
.tooltip strong { display: block; color: var(--green-soft); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 6px; }
.tooltip em { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; font-style: normal; }
[data-tip] { cursor: help; }

/* === TOUR (Phase 2 guided walkthrough) === */
.tour-overlay { position: fixed; left: 16px; right: 16px; bottom: 16px; padding: 18px 22px; background: linear-gradient(180deg, rgba(10, 26, 20, 0.97), rgba(4, 14, 10, 0.98)); border: 1px solid var(--green); box-shadow: 0 -12px 36px rgba(0, 0, 0, 0.5), 0 0 18px rgba(61, 245, 138, 0.18); z-index: 220; display: grid; grid-template-columns: 110px 1fr 220px; gap: 22px; align-items: center; transform: translateY(160%); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.tour-overlay.active { transform: translateY(0); }
.tour-avatar { width: 110px; height: 110px; border: 1px solid var(--line-strong); background: radial-gradient(circle at 50% 38%, rgba(61, 245, 138, 0.2), transparent 60%), linear-gradient(180deg, #1a342a, #06150f); display: grid; place-items: center; }
.tour-avatar svg { width: 70px; height: 90px; animation: bob 4.4s ease-in-out infinite; }
.tour-content { min-width: 0; }
.tour-step-label { display: block; font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--muted); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 6px; }
.tour-title { font-size: 16px; font-weight: 800; color: var(--green-soft); margin-bottom: 6px; letter-spacing: 0.04em; }
.tour-body { font-size: 13px; line-height: 1.55; color: var(--text); }
.tour-controls { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.tour-progress-row { display: flex; align-items: center; gap: 10px; }
.tour-dots { display: flex; gap: 4px; flex: 1; }
.tour-dot { flex: 1; height: 3px; background: var(--line); }
.tour-dot.done { background: var(--green-soft); }
.tour-dot.current { background: var(--green); box-shadow: 0 0 6px var(--green); }
.tour-skip { font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--muted); background: none; border: none; cursor: pointer; letter-spacing: 0.08em; text-transform: uppercase; padding: 0; }
.tour-skip:hover { color: var(--green-soft); }
.tour-buttons { display: flex; gap: 8px; }
.tour-btn { flex: 1; padding: 8px 14px; border: 1px solid var(--line-strong); background: rgba(4, 14, 10, 0.6); color: var(--green-soft); font-family: "Inter", sans-serif; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background 0.15s; }
.tour-btn:hover { background: rgba(61, 245, 138, 0.12); }
.tour-btn.primary { background: rgba(61, 245, 138, 0.18); border-color: var(--green); color: var(--green-soft); }
.tour-btn.primary:hover { background: rgba(61, 245, 138, 0.28); }
.tour-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.tour-highlight { position: relative; z-index: 50; outline: 2px solid var(--green); outline-offset: 4px; box-shadow: 0 0 0 8px rgba(61, 245, 138, 0.18), 0 0 36px rgba(61, 245, 138, 0.45); animation: tourPulse 1.6s ease-in-out infinite; }
@keyframes tourPulse {
    0%, 100% { box-shadow: 0 0 0 8px rgba(61, 245, 138, 0.18), 0 0 32px rgba(61, 245, 138, 0.4); }
    50% { box-shadow: 0 0 0 12px rgba(61, 245, 138, 0.25), 0 0 48px rgba(61, 245, 138, 0.6); }
}

/* tour-replay and sandbox-toggle are now inline banner-btn elements */

.tour-backdrop { position: fixed; inset: 0; background: rgba(4, 14, 10, 0.55); backdrop-filter: blur(1px); z-index: 210; opacity: 0; pointer-events: none; transition: opacity 0.3s ease-out; }
.tour-backdrop.active { opacity: 1; }

/* === CONTEXT STRIP (Phase 3 Coinmania messaging) === */
.context-strip { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin-top: 10px; padding: 12px 18px; border: 1px solid var(--line); background: linear-gradient(90deg, rgba(61,245,138,0.07), rgba(82,162,255,0.05) 50%, rgba(255,170,28,0.07)); }
.context-strip-item { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 1.4; }
.context-strip-item .ic { font-size: 18px; line-height: 1; flex-shrink: 0; }
.context-strip-item strong { font-weight: 800; letter-spacing: 0.04em; }
.context-strip-item span { color: var(--muted); }
.context-strip-item.coinmania strong { color: var(--green-soft); }
.context-strip-item.cycle strong { color: #5ce5ff; }
.context-strip-item.notice strong { color: var(--amber); }

/* === TODAY'S LESSON === */
.lesson-card { margin-top: 12px; padding: 16px 20px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(61,245,138,0.06), rgba(4,14,10,0.55) 60%); display: grid; grid-template-columns: 64px 1fr 170px; gap: 18px; align-items: center; }
.lesson-icon { width: 64px; height: 64px; border: 1px solid var(--line-strong); background: rgba(4,14,10,0.65); display: grid; place-items: center; font-size: 30px; line-height: 1; }
.lesson-body { min-width: 0; }
.lesson-label { display: block; font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--muted); letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 6px; }
.lesson-title { font-size: 15px; font-weight: 800; color: var(--green-soft); margin-bottom: 6px; letter-spacing: 0.03em; }
.lesson-body p { font-size: 12.5px; line-height: 1.55; color: var(--text); margin: 0; }
.lesson-value { padding: 12px 14px; border: 1px solid var(--line-strong); background: rgba(4,14,10,0.55); text-align: center; }
.lesson-value-label { display: block; font-family: "JetBrains Mono", monospace; font-size: 9px; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 4px; }
.lesson-value-num { font-family: "JetBrains Mono", monospace; font-size: 20px; font-weight: 800; color: var(--green-soft); display: block; }

/* Browser handles all scaling via viewport meta width=1720.
   Desktop renders full size, narrower screens / mobile auto-zoom to fit, pinch-zoom enabled. */

/* === SANDBOX (Phase 4 scenario simulator) === */
/* sandbox-toggle is now inline banner-btn */

.sandbox-panel { position: fixed; top: 90px; right: 18px; width: 340px; max-height: calc(100vh - 120px); overflow-y: auto; padding: 18px 20px; border: 1px solid var(--line-strong); background: linear-gradient(180deg, rgba(8, 22, 16, 0.97), rgba(4, 14, 10, 0.98)); box-shadow: -8px 12px 36px rgba(0, 0, 0, 0.55), 0 0 18px rgba(82, 162, 255, 0.1); z-index: 145; transform: translateX(120%); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.sandbox-panel.active { transform: translateX(0); }

.sandbox-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.sandbox-title { font-size: 13px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--green-soft); }
.sandbox-mode { font-family: "JetBrains Mono", monospace; font-size: 10px; color: #87caff; letter-spacing: 0.08em; text-transform: uppercase; }

.sandbox-intro { font-size: 11.5px; color: var(--muted); line-height: 1.45; margin-bottom: 14px; padding: 8px 10px; border-left: 2px solid #52a2ff; background: rgba(82, 162, 255, 0.06); }

.sandbox-slider { margin-bottom: 16px; }
.sandbox-slider-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.sandbox-slider-label { font-family: "Inter", sans-serif; font-size: 11px; font-weight: 800; color: var(--text); letter-spacing: 0.04em; }
.sandbox-slider-value { font-family: "JetBrains Mono", monospace; font-size: 13px; color: var(--green-soft); font-weight: 800; }
.sandbox-slider input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; background: var(--line); outline: none; cursor: pointer; }
.sandbox-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; background: var(--green); border: 2px solid var(--green-soft); cursor: grab; box-shadow: 0 0 8px rgba(61, 245, 138, 0.6); }
.sandbox-slider input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; background: var(--green); border: 2px solid var(--green-soft); cursor: grab; box-shadow: 0 0 8px rgba(61, 245, 138, 0.6); }
.sandbox-slider-note { margin-top: 4px; font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--muted); line-height: 1.3; }

.sandbox-result { margin-top: 16px; padding: 12px 14px; border: 1px dashed var(--line-strong); background: rgba(4, 14, 10, 0.55); }
.sandbox-result-label { display: block; font-family: "JetBrains Mono", monospace; font-size: 9px; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 6px; }
.sandbox-result-title { font-size: 13px; font-weight: 800; color: var(--green-soft); margin-bottom: 6px; letter-spacing: 0.02em; }
.sandbox-result-text { font-size: 12px; line-height: 1.5; color: var(--text); }

.sandbox-buttons { display: flex; gap: 8px; margin-top: 16px; }
.sandbox-btn { flex: 1; padding: 8px 12px; border: 1px solid var(--line-strong); background: rgba(4, 14, 10, 0.6); color: var(--green-soft); font-family: "Inter", sans-serif; font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.sandbox-btn:hover { background: rgba(61, 245, 138, 0.12); }
.sandbox-btn.primary { background: rgba(82, 162, 255, 0.18); border-color: #52a2ff; color: #87caff; }
.sandbox-btn.primary:hover { background: rgba(82, 162, 255, 0.28); }

body.sandbox-mode .needle { transition: transform 0.3s ease-out; }
body.sandbox-mode .professor { box-shadow: 0 0 0 2px rgba(82, 162, 255, 0.4), 0 0 18px rgba(82, 162, 255, 0.2); }
