Auto-backup: 2026-03-27 23:00
This commit is contained in:
parent
0114e6fc99
commit
92260185de
5 changed files with 391 additions and 3 deletions
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"WebFetch(domain:localhost)",
|
||||||
|
"Bash(curl -s http://localhost:8080)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.3 MiB |
|
|
@ -35,12 +35,44 @@
|
||||||
<button id="btn-security" class="switch-btn">SECURITY-BYPASS</button>
|
<button id="btn-security" class="switch-btn">SECURITY-BYPASS</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="terminal-wrapper" style="margin-top: 30px;">
|
<!-- OPS DASHBOARD SIGN -->
|
||||||
|
<div id="ops-dashboard-sign">
|
||||||
|
<div class="ops-sign-header">
|
||||||
|
<span class="ops-blink-dot"></span>
|
||||||
|
<span class="ops-title">CHIRURGISCHES OPS-DASHBOARD</span>
|
||||||
|
<span class="ops-blink-dot"></span>
|
||||||
|
</div>
|
||||||
|
<div class="ops-sign-stats">
|
||||||
|
<div class="ops-stat-block">
|
||||||
|
<span class="ops-stat-label">HEUTE</span>
|
||||||
|
<span class="ops-tally">|||</span>
|
||||||
|
<span class="ops-stat-val">3 OPS</span>
|
||||||
|
</div>
|
||||||
|
<span class="ops-divider">◈</span>
|
||||||
|
<div class="ops-stat-block">
|
||||||
|
<span class="ops-stat-label">ERFOLGE</span>
|
||||||
|
<span class="ops-tally ops-half">|½</span>
|
||||||
|
<span class="ops-stat-val ops-warn">1.5</span>
|
||||||
|
</div>
|
||||||
|
<span class="ops-divider">◈</span>
|
||||||
|
<div class="ops-stat-block">
|
||||||
|
<span class="ops-stat-label">RESTE</span>
|
||||||
|
<span class="ops-stat-val ops-crit">KUEHLHAUS C</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ops-sign-hint">[ PROTOKOLL EINSEHEN ]</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="terminal-wrapper" style="margin-top: 0;">
|
||||||
<div class="terminal-topbar" style="display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 5px;">
|
<div class="terminal-topbar" style="display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 5px;">
|
||||||
<span style="color: var(--accent-gold); font-size: 0.8rem; letter-spacing: 1px;">// SECURE_TERMINAL_ACCESS</span>
|
<span style="color: var(--accent-gold); font-size: 0.8rem; letter-spacing: 1px;">// SECURE_TERMINAL_ACCESS</span>
|
||||||
<button id="btn-sfx" style="background: transparent; border: 1px solid #0f0; color: #0f0; font-family: 'Courier New', monospace; font-size: 0.7rem; cursor: pointer; padding: 2px 8px; transition: all 0.2s;">[ SFX: ON ]</button>
|
<button id="btn-sfx" style="background: transparent; border: 1px solid #0f0; color: #0f0; font-family: 'Courier New', monospace; font-size: 0.7rem; cursor: pointer; padding: 2px 8px; transition: all 0.2s;">[ SFX: ON ]</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="system-log" style="margin-top: 0;">
|
<div id="system-log" style="margin-top: 0;">
|
||||||
|
<div id="ops-panel">
|
||||||
|
<div id="ops-panel-vitals"></div>
|
||||||
|
<div id="ops-panel-log"></div>
|
||||||
|
</div>
|
||||||
<div id="log-output"></div>
|
<div id="log-output"></div>
|
||||||
<div class="terminal-input-line">
|
<div class="terminal-input-line">
|
||||||
<span class="prompt">></span>
|
<span class="prompt">></span>
|
||||||
|
|
@ -134,6 +166,17 @@
|
||||||
<div id="timeline-modal" class="timeline-hidden">
|
<div id="timeline-modal" class="timeline-hidden">
|
||||||
<button id="close-timeline">[X] CLOSE</button>
|
<button id="close-timeline">[X] CLOSE</button>
|
||||||
<h2 id="timeline-title" style="text-align: center; color: var(--accent-orange); margin-top: 20px;">HISTORISCHES ARCHIV</h2>
|
<h2 id="timeline-title" style="text-align: center; color: var(--accent-orange); margin-top: 20px;">HISTORISCHES ARCHIV</h2>
|
||||||
|
<div class="mutter-portrait-wrap">
|
||||||
|
<div class="mutter-mirror-frame">
|
||||||
|
<div class="mutter-mirror-inner">
|
||||||
|
<span class="mutter-mirror-deco top">⚙</span>
|
||||||
|
<span class="mutter-mirror-deco bottom">⚙</span>
|
||||||
|
<span class="mutter-mirror-deco left">⚙</span>
|
||||||
|
<span class="mutter-mirror-deco right">⚙</span>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/img/hp_muti_steampunk_02.jpg" alt="Die Matriarchin" class="mutter-mirror-img">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="timeline-track" class="timeline-track"></div>
|
<div id="timeline-track" class="timeline-track"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -765,6 +765,105 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
log('>> SYSTEM READY. WAITING FOR COMMANDS...');
|
log('>> SYSTEM READY. WAITING FOR COMMANDS...');
|
||||||
|
|
||||||
|
// --- OPS DASHBOARD ---
|
||||||
|
const opsDashSign = document.getElementById('ops-dashboard-sign');
|
||||||
|
const opsPanel = document.getElementById('ops-panel');
|
||||||
|
const opsPanelLog = document.getElementById('ops-panel-log');
|
||||||
|
const opsPanelVital = document.getElementById('ops-panel-vitals');
|
||||||
|
const terminalWrap = document.querySelector('.terminal-wrapper');
|
||||||
|
let opsOpen = false;
|
||||||
|
let opsTyped = false;
|
||||||
|
let vitalInterval = null;
|
||||||
|
|
||||||
|
const OPS_LOG_LINES = [
|
||||||
|
{ t: '╔══════════════════════════════════════════════════╗', cls: 'ops-line-dim' },
|
||||||
|
{ t: '║ CHIRURGISCHES PROTOKOLL — KLASSIFIZIERT: ROT ║', cls: 'ops-line-section' },
|
||||||
|
{ t: '╚══════════════════════════════════════════════════╝', cls: 'ops-line-dim' },
|
||||||
|
{ t: '', cls: '' },
|
||||||
|
{ t: '─── OP ALFA-7 ─────────────────────────────────────', cls: 'ops-line-section' },
|
||||||
|
{ t: ' PATIENT : KREATIVITAET.exe (v4.2-beta)', cls: 'ops-line-label' },
|
||||||
|
{ t: ' EINGRIFF : Herz-Transplant — Donor: MOTIVATION.sys', cls: '' },
|
||||||
|
{ t: ' BEFUND : Herz läuft. Richtung unbekannt. Absicht fraglich.', cls: '' },
|
||||||
|
{ t: ' STATUS : ████████░░ 82% KAPAZITÄT', cls: 'ops-line-ok' },
|
||||||
|
{ t: ' ERGEBNIS : 0.5 ERFOLGE (zählt als halber Sieg, ganz nach Wunsch)', cls: 'ops-line-label' },
|
||||||
|
{ t: '', cls: '' },
|
||||||
|
{ t: '─── OP BETA-12 ─────────────────────────────────────', cls: 'ops-line-section' },
|
||||||
|
{ t: ' PATIENT : SCHLAFRHYTHMUS.daemon (Version: veraltet)', cls: 'ops-line-label' },
|
||||||
|
{ t: ' EINGRIFF : Herz-Transplant — Donor: KAFFEE-KERN v9.1', cls: '' },
|
||||||
|
{ t: ' BEFUND : Donor inkompatibel. Koffein ≠ Blut. Überraschung: keiner.', cls: '' },
|
||||||
|
{ t: ' STATUS : ██████████ 100% — ABGESCHLOSSEN', cls: 'ops-line-crit' },
|
||||||
|
{ t: ' ERGEBNIS : TECHNISCH FEHLGESCHLAGEN. Patient läuft trotzdem.', cls: 'ops-line-label' },
|
||||||
|
{ t: '', cls: '' },
|
||||||
|
{ t: '════════════════════════════════════════════════════', cls: 'ops-line-dim' },
|
||||||
|
{ t: ' OPS: ||| 3 ERFOLGE: |½ 1.5 FEHLSCHL: |½ 1.5', cls: 'ops-line-section' },
|
||||||
|
{ t: ' RESTE: KUEHLHAUS C — ZUSTAND: STABIL / NUTZBAR', cls: 'ops-line-crit' },
|
||||||
|
{ t: ' NÄCHSTE OP: PROKRASTINATION.exe — ETA: IRGENDWANN', cls: 'ops-line-dim' },
|
||||||
|
{ t: '════════════════════════════════════════════════════', cls: 'ops-line-dim' },
|
||||||
|
];
|
||||||
|
|
||||||
|
const VITAL_FRAMES = [
|
||||||
|
'VITALMONITOR ▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▁▁▂▃▂▁▁▁▂▃▂▁▁▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▁▁▁▂▃▂▁▁▁▁▂▃▂▁▁▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▁▁▁▁▂▃▂▁▁▁▁▁▂▃▂▁▁ FLATLINE',
|
||||||
|
'VITALMONITOR ▁▁▁▁▁▁▁▁▂▃▂▁▁▁▁▁▁▁▁▁ FLATLINE',
|
||||||
|
];
|
||||||
|
|
||||||
|
function typeOpsLog() {
|
||||||
|
if (opsTyped) return;
|
||||||
|
opsTyped = true;
|
||||||
|
opsPanelLog.innerHTML = '';
|
||||||
|
let i = 0;
|
||||||
|
function typeLine() {
|
||||||
|
if (i >= OPS_LOG_LINES.length) return;
|
||||||
|
const { t, cls } = OPS_LOG_LINES[i++];
|
||||||
|
const span = document.createElement('span');
|
||||||
|
if (cls) span.className = cls;
|
||||||
|
span.textContent = t + '\n';
|
||||||
|
opsPanelLog.appendChild(span);
|
||||||
|
opsPanelLog.scrollTop = opsPanelLog.scrollHeight;
|
||||||
|
setTimeout(typeLine, t === '' ? 30 : 55);
|
||||||
|
}
|
||||||
|
typeLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
function startVitals() {
|
||||||
|
let frame = 0;
|
||||||
|
opsPanelVital.textContent = VITAL_FRAMES[0];
|
||||||
|
vitalInterval = setInterval(() => {
|
||||||
|
frame = (frame + 1) % VITAL_FRAMES.length;
|
||||||
|
opsPanelVital.textContent = VITAL_FRAMES[frame];
|
||||||
|
}, 220);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopVitals() {
|
||||||
|
clearInterval(vitalInterval);
|
||||||
|
vitalInterval = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opsDashSign) {
|
||||||
|
opsDashSign.addEventListener('click', () => {
|
||||||
|
opsOpen = !opsOpen;
|
||||||
|
if (opsOpen) {
|
||||||
|
opsPanel.classList.add('ops-open');
|
||||||
|
terminalWrap.classList.add('ops-expanded');
|
||||||
|
opsDashSign.querySelector('.ops-sign-hint').textContent = '[ PROTOKOLL SCHLIESSEN ]';
|
||||||
|
startVitals();
|
||||||
|
setTimeout(typeOpsLog, 300);
|
||||||
|
if (typeof playKeyClick === 'function') playKeyClick();
|
||||||
|
} else {
|
||||||
|
opsPanel.classList.remove('ops-open');
|
||||||
|
terminalWrap.classList.remove('ops-expanded');
|
||||||
|
opsDashSign.querySelector('.ops-sign-hint').textContent = '[ PROTOKOLL EINSEHEN ]';
|
||||||
|
stopVitals();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -279,11 +279,12 @@ body.mode-ghost .prompt {
|
||||||
color: #0f0;
|
color: #0f0;
|
||||||
font-family: 'Courier New', monospace;
|
font-family: 'Courier New', monospace;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-top: 30px;
|
margin-top: 0;
|
||||||
height: 250px; /* Mehr Platz für Input */
|
min-height: 250px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
box-shadow: inset 0 0 10px #000;
|
box-shadow: inset 0 0 10px #000;
|
||||||
|
transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#log-output {
|
#log-output {
|
||||||
|
|
@ -709,6 +710,88 @@ body.mode-anarchy .hero-image {
|
||||||
}
|
}
|
||||||
#close-timeline:hover { background: var(--accent-orange); color: #000; }
|
#close-timeline:hover { background: var(--accent-orange); color: #000; }
|
||||||
|
|
||||||
|
/* STEAMPUNK MIRROR PORTRAIT */
|
||||||
|
.mutter-portrait-wrap {
|
||||||
|
text-align: center;
|
||||||
|
margin: 24px 0 8px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.mutter-mirror-frame {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
padding: 18px;
|
||||||
|
background: radial-gradient(ellipse at center, rgba(212,175,55,0.08) 0%, transparent 70%);
|
||||||
|
}
|
||||||
|
.mutter-mirror-frame::before {
|
||||||
|
content: '⚙ ✦ ⚙ ✦ ⚙ ✦ ⚙';
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(212,175,55,0.35);
|
||||||
|
font-size: 0.65rem;
|
||||||
|
letter-spacing: 6px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.mutter-mirror-frame::after {
|
||||||
|
content: '⚙ ✦ ⚙ ✦ ⚙ ✦ ⚙';
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(212,175,55,0.35);
|
||||||
|
font-size: 0.65rem;
|
||||||
|
letter-spacing: 6px;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
.mutter-mirror-inner {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 50%;
|
||||||
|
padding: 5px;
|
||||||
|
background: conic-gradient(
|
||||||
|
#3a2200 0deg, #b87333 30deg, #d4af37 60deg, #8b5e00 90deg,
|
||||||
|
#b87333 120deg, #5c3a21 150deg, #d4af37 180deg, #b87333 210deg,
|
||||||
|
#3a2200 240deg, #d4af37 270deg, #b87333 300deg, #5c3a21 330deg,
|
||||||
|
#3a2200 360deg
|
||||||
|
);
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 2px rgba(212,175,55,0.15),
|
||||||
|
0 0 12px rgba(184,115,51,0.3),
|
||||||
|
inset 0 0 6px rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
.mutter-mirror-inner::before,
|
||||||
|
.mutter-mirror-inner::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
border-radius: 50%;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.mutter-mirror-inner::before {
|
||||||
|
inset: -9px;
|
||||||
|
border: 1px dashed rgba(212,175,55,0.2);
|
||||||
|
}
|
||||||
|
.mutter-mirror-inner::after {
|
||||||
|
inset: -16px;
|
||||||
|
border: 1px solid rgba(184,115,51,0.12);
|
||||||
|
}
|
||||||
|
.mutter-mirror-img {
|
||||||
|
display: block;
|
||||||
|
width: 150px;
|
||||||
|
height: 150px;
|
||||||
|
border-radius: 50%;
|
||||||
|
object-fit: cover;
|
||||||
|
opacity: 0.6;
|
||||||
|
filter: sepia(0.35) brightness(0.82) contrast(1.05);
|
||||||
|
}
|
||||||
|
.mutter-mirror-deco {
|
||||||
|
position: absolute;
|
||||||
|
color: rgba(212,175,55,0.4);
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.mutter-mirror-deco.top { top: 2px; left: 50%; transform: translateX(-50%); }
|
||||||
|
.mutter-mirror-deco.bottom { bottom: 2px; left: 50%; transform: translateX(-50%); }
|
||||||
|
.mutter-mirror-deco.left { left: 2px; top: 50%; transform: translateY(-50%); }
|
||||||
|
.mutter-mirror-deco.right { right: 2px; top: 50%; transform: translateY(-50%); }
|
||||||
|
|
||||||
.timeline-track {
|
.timeline-track {
|
||||||
position: relative; max-width: 800px; margin: 40px auto;
|
position: relative; max-width: 800px; margin: 40px auto;
|
||||||
}
|
}
|
||||||
|
|
@ -908,3 +991,158 @@ body.mode-time-warp {
|
||||||
filter: blur(0);
|
filter: blur(0);
|
||||||
transform: scale(1.02) translateZ(0);
|
transform: scale(1.02) translateZ(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ═══════════════════════════════════════
|
||||||
|
OPS DASHBOARD SIGN
|
||||||
|
═══════════════════════════════════════ */
|
||||||
|
#ops-dashboard-sign {
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 1px solid rgba(255,69,0,0.4);
|
||||||
|
border-bottom: none;
|
||||||
|
background: linear-gradient(180deg, rgba(20,5,0,0.95) 0%, rgba(10,2,0,0.98) 100%);
|
||||||
|
padding: 10px 16px 12px;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: border-color 0.3s, box-shadow 0.3s;
|
||||||
|
box-shadow: 0 0 18px rgba(255,69,0,0.08), inset 0 0 30px rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
#ops-dashboard-sign::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
0deg,
|
||||||
|
transparent,
|
||||||
|
transparent 3px,
|
||||||
|
rgba(255,69,0,0.015) 3px,
|
||||||
|
rgba(255,69,0,0.015) 4px
|
||||||
|
);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
#ops-dashboard-sign:hover {
|
||||||
|
border-color: rgba(255,69,0,0.7);
|
||||||
|
box-shadow: 0 0 28px rgba(255,69,0,0.18), inset 0 0 20px rgba(255,40,0,0.05);
|
||||||
|
}
|
||||||
|
.ops-sign-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 10px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
.ops-title {
|
||||||
|
font-size: 0.7rem;
|
||||||
|
letter-spacing: 4px;
|
||||||
|
color: rgba(255,100,0,0.7);
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.ops-blink-dot {
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #ff2200;
|
||||||
|
display: inline-block;
|
||||||
|
animation: blinker 1.1s step-end infinite;
|
||||||
|
box-shadow: 0 0 5px #ff2200;
|
||||||
|
}
|
||||||
|
.ops-blink-dot:last-child { animation-delay: 0.55s; }
|
||||||
|
.ops-sign-stats {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 14px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.ops-stat-block {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1px;
|
||||||
|
}
|
||||||
|
.ops-stat-label {
|
||||||
|
font-size: 0.5rem;
|
||||||
|
letter-spacing: 3px;
|
||||||
|
color: rgba(255,69,0,0.4);
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.ops-tally {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
color: rgba(255,69,0,0.55);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.ops-stat-val {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
color: rgba(200,200,200,0.6);
|
||||||
|
}
|
||||||
|
.ops-stat-val.ops-warn { color: rgba(255,200,0,0.65); }
|
||||||
|
.ops-stat-val.ops-crit { color: rgba(255,50,0,0.7); animation: blinker 2s infinite; }
|
||||||
|
.ops-divider {
|
||||||
|
color: rgba(255,69,0,0.2);
|
||||||
|
font-size: 0.7rem;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.ops-sign-hint {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 8px;
|
||||||
|
font-size: 0.55rem;
|
||||||
|
letter-spacing: 4px;
|
||||||
|
color: rgba(255,69,0,0.3);
|
||||||
|
transition: color 0.3s;
|
||||||
|
}
|
||||||
|
#ops-dashboard-sign:hover .ops-sign-hint { color: rgba(255,69,0,0.6); }
|
||||||
|
|
||||||
|
/* ═══════════════════════════════════════
|
||||||
|
OPS PANEL (inside terminal, expandable)
|
||||||
|
═══════════════════════════════════════ */
|
||||||
|
#ops-panel {
|
||||||
|
max-height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: max-height 0.55s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
border-bottom: 0px solid rgba(255,69,0,0);
|
||||||
|
}
|
||||||
|
#ops-panel.ops-open {
|
||||||
|
max-height: 420px;
|
||||||
|
border-bottom: 1px solid rgba(255,69,0,0.2);
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#ops-panel-vitals {
|
||||||
|
padding: 6px 0 2px;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
color: rgba(255,60,0,0.5);
|
||||||
|
white-space: pre;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#ops-panel-log {
|
||||||
|
padding: 4px 0 8px;
|
||||||
|
font-size: 0.72rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: rgba(200,180,130,0.75);
|
||||||
|
white-space: pre;
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: 340px;
|
||||||
|
}
|
||||||
|
#ops-panel-log .ops-line-section { color: rgba(255,69,0,0.55); }
|
||||||
|
#ops-panel-log .ops-line-label { color: rgba(212,175,55,0.6); }
|
||||||
|
#ops-panel-log .ops-line-crit { color: rgba(255,40,0,0.8); }
|
||||||
|
#ops-panel-log .ops-line-ok { color: rgba(0,220,80,0.6); }
|
||||||
|
#ops-panel-log .ops-line-dim { color: rgba(120,120,120,0.5); }
|
||||||
|
|
||||||
|
@keyframes vitals-scan {
|
||||||
|
0% { content: 'VITALMONITOR ▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
20% { content: 'VITALMONITOR ▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
40% { content: 'VITALMONITOR ▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
60% { content: 'VITALMONITOR ▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
80% { content: 'VITALMONITOR ▁▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
100% { content: 'VITALMONITOR ▁▁▁▁▁▁▂▃▂▁▃▂▁▁▁▁▁▁▁▁ FLATLINE'; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* terminal expands when ops panel is open */
|
||||||
|
.terminal-wrapper.ops-expanded #system-log {
|
||||||
|
transition: min-height 0.55s cubic-bezier(0.4,0,0.2,1);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue