Main Page: Difference between revisions
More actions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
__NOEDITSECTION__ | __NOEDITSECTION__ | ||
< | <!-- ═══════════════════════════════════════════════════════════ | ||
SOURCE DCS — OPERATIONS HUB | |||
Design language: IBM Plex Mono / Orbitron · PROF + MFD modes | |||
Compatible with Citizen skin (wide layout) | |||
═══════════════════════════════════════════════════════════ --> | |||
<style> | |||
/* ── Tokens (PROF mode) ─────────────────────────────────── */ | |||
.sdcs-root { | |||
--bg: #f4f3f0; | |||
--bg2: #edecea; | |||
--bg3: #e5e4e0; | |||
--bg-card: #ffffff; | |||
--border: #c8c5bf; | |||
--border-strong:#9a9690; | |||
--text: #1a1917; | |||
--text-2: #4a4845; | |||
--text-3: #7a7875; | |||
--green: #1a5c2e; | |||
--amber: #7c5000; | |||
--red: #9b1c1c; | |||
--blue: #1a3a6b; | |||
--shadow: 0 1px 3px rgba(0,0,0,.10); | |||
--shadow-md: 0 4px 12px rgba(0,0,0,.12); | |||
--font-mono: 'IBM Plex Mono', ui-monospace, monospace; | |||
--font-hud: 'Orbitron', var(--font-mono); | |||
font-family: var(--font-mono); | |||
font-size: 13px; | |||
color: var(--text); | |||
line-height: 1.5; | |||
} | |||
/* ── Status bar (mirrors header / intel-row) ─────────────── */ | |||
.sdcs-statusbar { | |||
display: flex; | |||
align-items: center; | |||
gap: 0; | |||
height: 44px; | |||
background: var(--bg2); | |||
border: 1px solid var(--border-strong); | |||
border-left: 3px solid var(--green); | |||
margin-bottom: 16px; | |||
overflow-x: auto; | |||
} | |||
.sdcs-sb-block { | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
padding: 0 16px; | |||
border-right: 1px solid var(--border); | |||
height: 100%; | |||
white-space: nowrap; | |||
flex-shrink: 0; | |||
} | |||
.sdcs-sb-block:last-child { border-right: none; } | |||
.sdcs-sb-lbl { | |||
font-size: 7px; | |||
letter-spacing: 1.5px; | |||
color: var(--text-3); | |||
text-transform: uppercase; | |||
margin-bottom: 2px; | |||
} | |||
.sdcs-sb-val { | |||
font-size: 12px; | |||
font-weight: 600; | |||
color: var(--text); | |||
} | |||
.sdcs-sb-val.online { color: var(--green); } | |||
.sdcs-sb-links { | |||
margin-left: auto; | |||
padding: 0 16px; | |||
display: flex; | |||
gap: 14px; | |||
align-items: center; | |||
flex-shrink: 0; | |||
} | |||
.sdcs-sb-links a { | |||
font-size: 9px; | |||
letter-spacing: 1.5px; | |||
color: var(--text-3); | |||
text-decoration: none; | |||
text-transform: uppercase; | |||
border-bottom: 1px solid transparent; | |||
transition: color .15s, border-color .15s; | |||
} | |||
.sdcs-sb-links a:hover { color: var(--text); border-bottom-color: var(--text); } | |||
.sdcs-sb-sep { color: var(--border-strong); font-size: 9px; } | |||
/* ── Two-column grid ─────────────────────────────────────── */ | |||
.sdcs-grid { | |||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
gap: 12px; | |||
margin-bottom: 12px; | |||
} | |||
@media (max-width: 760px) { | |||
.sdcs-grid { grid-template-columns: 1fr; } | |||
} | |||
/* ── Panel (mirrors bg-card + border pattern) ────────────── */ | |||
.sdcs-panel { | |||
background: var(--bg-card); | |||
border: 1px solid var(--border-strong); | |||
box-shadow: var(--shadow); | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
/* ── Panel header (mirrors .card-top / .doc-section-title) ─ */ | |||
.sdcs-panel-head { | |||
display: flex; | |||
align-items: center; | |||
gap: 10px; | |||
padding: 8px 12px; | |||
background: var(--bg2); | |||
border-bottom: 1px solid var(--border-strong); | |||
flex-shrink: 0; | |||
} | |||
.sdcs-panel-accent { | |||
width: 3px; | |||
align-self: stretch; | |||
flex-shrink: 0; | |||
border-radius: 1px; | |||
} | |||
.sdcs-panel-title { | |||
font-family: var(--font-mono); | |||
font-size: 10px; | |||
font-weight: 700; | |||
letter-spacing: 2.5px; | |||
color: var(--text); | |||
text-transform: uppercase; | |||
flex: 1; | |||
} | |||
.sdcs-panel-tag { | |||
font-size: 7px; | |||
letter-spacing: 1.5px; | |||
padding: 2px 7px; | |||
border: 1px solid var(--border-strong); | |||
color: var(--text-3); | |||
text-transform: uppercase; | |||
white-space: nowrap; | |||
} | |||
/* ── Panel body ──────────────────────────────────────────── */ | |||
.sdcs-panel-body { | |||
padding: 10px 12px; | |||
display: flex; | |||
flex-direction: column; | |||
gap: 4px; | |||
flex: 1; | |||
} | |||
.sdcs-panel-desc { | |||
font-size: 10px; | |||
color: var(--text-2); | |||
line-height: 1.7; | |||
margin-bottom: 8px; | |||
} | |||
/* ── Link rows (mirrors .link-card compact) ──────────────── */ | |||
.sdcs-link-row { | |||
display: flex; | |||
align-items: center; | |||
gap: 10px; | |||
padding: 7px 0; | |||
border-bottom: 1px solid var(--border); | |||
text-decoration: none; | |||
color: inherit; | |||
cursor: pointer; | |||
} | |||
.sdcs-link-row:last-child { border-bottom: none; } | |||
.sdcs-link-row:hover .sdcs-link-title { color: var(--text); } | |||
.sdcs-link-row:hover .sdcs-link-arrow { color: var(--text); transform: translateX(2px); } | |||
.sdcs-link-icon { | |||
font-size: 14px; | |||
width: 22px; | |||
text-align: center; | |||
flex-shrink: 0; | |||
color: var(--text-3); | |||
} | |||
.sdcs-link-body { flex: 1; min-width: 0; } | |||
.sdcs-link-title { | |||
font-size: 10px; | |||
font-weight: 600; | |||
letter-spacing: 1.5px; | |||
color: var(--text-2); | |||
display: block; | |||
margin-bottom: 1px; | |||
} | |||
.sdcs-link-desc { | |||
font-size: 9px; | |||
color: var(--text-3); | |||
white-space: nowrap; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
} | |||
.sdcs-link-arrow { | |||
font-size: 12px; | |||
color: var(--border-strong); | |||
flex-shrink: 0; | |||
transition: color .15s, transform .15s; | |||
} | |||
/* ── Unit cards (mirrors .tanker-card layout) ────────────── */ | |||
.sdcs-unit-card { | |||
display: flex; | |||
align-items: stretch; | |||
border: 1px solid var(--border); | |||
background: var(--bg-card); | |||
box-shadow: var(--shadow); | |||
margin-bottom: 6px; | |||
overflow: hidden; | |||
} | |||
.sdcs-unit-card:last-child { margin-bottom: 0; } | |||
.sdcs-unit-stripe { | |||
width: 3px; | |||
flex-shrink: 0; | |||
background: var(--text-3); | |||
} | |||
.sdcs-unit-inner { | |||
padding: 8px 12px; | |||
flex: 1; | |||
min-width: 0; | |||
} | |||
.sdcs-unit-cs { | |||
font-size: 12px; | |||
font-weight: 700; | |||
color: var(--text); | |||
text-decoration: none; | |||
letter-spacing: .5px; | |||
} | |||
.sdcs-unit-cs:hover { color: var(--blue); } | |||
.sdcs-unit-acft { | |||
font-size: 9px; | |||
color: var(--text-3); | |||
margin-top: 2px; | |||
letter-spacing: 1px; | |||
} | |||
.sdcs-unit-badge { | |||
font-size: 8px; | |||
letter-spacing: 1.5px; | |||
padding: 2px 7px; | |||
border: 1px solid var(--border); | |||
color: var(--text-3); | |||
align-self: center; | |||
margin-right: 10px; | |||
flex-shrink: 0; | |||
} | |||
/* ── Campaign / Ops status block ─────────────────────────── */ | |||
.sdcs-ops-block { | |||
border: 1px solid var(--border); | |||
background: var(--bg2); | |||
padding: 10px 14px; | |||
margin-bottom: 6px; | |||
} | |||
.sdcs-ops-block:last-child { margin-bottom: 0; } | |||
.sdcs-ops-label { | |||
font-size: 8px; | |||
letter-spacing: 2px; | |||
color: var(--text-3); | |||
text-transform: uppercase; | |||
margin-bottom: 5px; | |||
padding-bottom: 4px; | |||
border-bottom: 1px solid var(--border); | |||
} | |||
.sdcs-ops-value { | |||
font-size: 11px; | |||
font-weight: 600; | |||
color: var(--text); | |||
} | |||
.sdcs-ops-sub { | |||
font-size: 9px; | |||
color: var(--text-2); | |||
margin-top: 3px; | |||
line-height: 1.6; | |||
} | |||
/* ── Full-width panels ───────────────────────────────────── */ | |||
.sdcs-full { margin-bottom: 12px; } | |||
/* ── Kv-row (mirrors docs.css .kv-row) ──────────────────── */ | |||
.sdcs-kv { | |||
display: flex; | |||
gap: 8px; | |||
padding: 4px 0; | |||
border-bottom: 1px solid var(--border); | |||
font-size: 11px; | |||
align-items: flex-start; | |||
} | |||
.sdcs-kv:last-child { border-bottom: none; } | |||
.sdcs-kv-k { | |||
color: var(--text-3); | |||
min-width: 140px; | |||
flex-shrink: 0; | |||
font-size: 10px; | |||
} | |||
.sdcs-kv-v { color: var(--text); font-weight: 500; } | |||
.sdcs-kv-v.freq { color: var(--blue); } | |||
.sdcs-kv-v.amber { color: var(--amber); } | |||
.sdcs-kv-v.green { color: var(--green); } | |||
/* ── Footer strip ─────────────────────────────────────────── */ | |||
.sdcs-footer { | |||
margin-top: 20px; | |||
padding: 12px 0; | |||
border-top: 1px solid var(--border); | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
gap: 12px; | |||
} | |||
.sdcs-footer-text { | |||
font-size: 9px; | |||
letter-spacing: 1.5px; | |||
color: var(--text-3); | |||
text-transform: uppercase; | |||
} | |||
.sdcs-footer-sep { color: var(--border-strong); font-size: 9px; } | |||
.sdcs-footer a { | |||
font-size: 9px; | |||
letter-spacing: 1.5px; | |||
color: var(--text-3); | |||
text-transform: uppercase; | |||
text-decoration: none; | |||
border-bottom: 1px solid transparent; | |||
} | |||
.sdcs-footer a:hover { color: var(--text); border-bottom-color: var(--text); } | |||
/* ── Google Fonts ─────────────────────────────────────────── */ | |||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Orbitron:wght@700;900&display=swap'); | |||
</style> | |||
<div class="sdcs-root"> | |||
<!-- ══ STATUS BAR ══════════════════════════════════════════ --> | |||
<div class="sdcs-statusbar"> | |||
<div class="sdcs-sb-block"> | |||
<span class="sdcs-sb-lbl">STATUS</span> | |||
<span class="sdcs-sb-val online">■ ONLINE</span> | |||
</div> | |||
<div class="sdcs-sb-block"> | |||
<span class="sdcs-sb-lbl">THEATER</span> | |||
<span class="sdcs-sb-val">SYRIA</span> | |||
</div> | |||
<div class="sdcs-sb-block"> | |||
<span class="sdcs-sb-lbl">SERVER</span> | |||
<span class="sdcs-sb-val">SOURCEDCS</span> | |||
</div> | |||
<div class="sdcs-sb-block"> | |||
<span class="sdcs-sb-lbl">CLASSIFICATION</span> | |||
<span class="sdcs-sb-val">AUTHORIZED PERSONNEL</span> | |||
</div> | |||
<div class="sdcs-sb-links"> | |||
[[Server Info/Server Rules|ROE]] | |||
<span class="sdcs-sb-sep">·</span> | |||
[[Server Info/Frequency Plan|FREQ PLAN]] | |||
<span class="sdcs-sb-sep">·</span> | |||
[[Server Info/Airfields|AIRFIELDS]] | |||
<span class="sdcs-sb-sep">·</span> | |||
[[Special:RecentChanges|RECENT CHANGES]] | |||
</div> | |||
</div> | </div> | ||
---- | <!-- ══ MAIN GRID ═══════════════════════════════════════════ --> | ||
<div class="sdcs-grid"> | |||
<!-- ── LEFT: ATO / ONBOARDING ──────────────────────────── --> | |||
<div> | |||
<!-- ATO BRIEF --> | |||
<div class="sdcs-panel sdcs-full"> | |||
<div class="sdcs-panel-head"> | |||
<div class="sdcs-panel-accent" style="background:#1a5c2e;"></div> | |||
<span class="sdcs-panel-title">ATO BRIEF — START HERE</span> | |||
<span class="sdcs-panel-tag">ACTIVE OPS</span> | |||
</div> | |||
<div class="sdcs-panel-body"> | |||
<p class="sdcs-panel-desc">Current operational picture — campaign context, tasking, and go/no-go items.</p> | |||
<div class="sdcs-ops-block"> | |||
<div class="sdcs-ops-label">CURRENT CAMPAIGN</div> | |||
<div class="sdcs-ops-value">[[Campaigns/Current|View Current ATO →]]</div> | |||
<div class="sdcs-ops-sub">[[Campaigns/Current/Tasking|Mission Tasking]] · [[Campaigns|Campaign Index]] · [[Operations/After Action Reports|AARs]]</div> | |||
</div> | |||
<div class="sdcs-ops-block"> | |||
<div class="sdcs-ops-label">GO / NO-GO</div> | |||
<div class="sdcs-ops-sub"> | |||
[[Server Info/Server Rules|Rules of Engagement]] · | |||
[[Server Info/Frequency Plan|Comms Plan]] · | |||
[[Server Info/Airfields|Recovery & Diverts]] | |||
</div> | |||
</div> | |||
<a class="sdcs-link-row" href="/atobrief/" target="_blank" rel="noopener"> | |||
<span class="sdcs-link-icon">⊕</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">OPEN ATO BRIEF APP</span> | |||
<span class="sdcs-link-desc">Load & present ATO/ACO/SPINS/COMMS packages — live room sync</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
</div> | |||
</div> | |||
<!-- FLIGHT OPS --> | |||
<div class="sdcs-panel sdcs-full"> | |||
<div class="sdcs-panel-head"> | |||
<div class="sdcs-panel-accent" style="background:#7a7875;"></div> | |||
<span class="sdcs-panel-title">FLIGHT OPS</span> | |||
<span class="sdcs-panel-tag">PROCEDURES</span> | |||
</div> | |||
<div class="sdcs-panel-body"> | |||
<a class="sdcs-link-row" href="[[General/Tactical Communication]]"> | |||
<span class="sdcs-link-icon">◉</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">TACTICAL COMMUNICATION</span> | |||
<span class="sdcs-link-desc">Brevity, radio format, and comm discipline</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[General/CATC Communications Guide]]"> | |||
<span class="sdcs-link-icon">◉</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">CATC COMMUNICATIONS GUIDE</span> | |||
<span class="sdcs-link-desc">Marshal / Tower / Carrier comms</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[General/Mission Requirements]]"> | |||
<span class="sdcs-link-icon">◉</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">MISSION REQUIREMENTS</span> | |||
<span class="sdcs-link-desc">Qualification and currency standards</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[Operations/Qualifications]]"> | |||
<span class="sdcs-link-icon">◉</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">QUALIFICATIONS / CHECKRIDES</span> | |||
<span class="sdcs-link-desc">Track certifications and syllabus progress</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
</div> | |||
</div> | |||
<div style="background:# | </div> | ||
</div> | <!-- ── RIGHT: ONBOARDING + UNITS ───────────────────────── --> | ||
<div> | |||
<!-- ONBOARDING --> | |||
<div class="sdcs-panel sdcs-full"> | |||
<div class="sdcs-panel-head"> | |||
<div class="sdcs-panel-accent" style="background:#1a3a6b;"></div> | |||
<span class="sdcs-panel-title">ONBOARDING</span> | |||
<span class="sdcs-panel-tag">NEW PILOTS</span> | |||
</div> | |||
<div class="sdcs-panel-body"> | |||
<p class="sdcs-panel-desc">Required reading and setup before your first flight operation.</p> | |||
<a class="sdcs-link-row" href="[[Guides/New Member Guide]]"> | |||
<span class="sdcs-link-icon">≡</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">NEW MEMBER GUIDE</span> | |||
<span class="sdcs-link-desc">Start here — rules, culture, and server access</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[Guides/DCS Settings]]"> | |||
<span class="sdcs-link-icon">≡</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">DCS SETTINGS</span> | |||
<span class="sdcs-link-desc">Recommended client configuration</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[Guides/Mod Installation]]"> | |||
<span class="sdcs-link-icon">≡</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">MOD INSTALLATION</span> | |||
<span class="sdcs-link-desc">Required and optional mods with install steps</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="[[Guides/SRS Setup]]"> | |||
<span class="sdcs-link-icon">≡</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">SRS SETUP</span> | |||
<span class="sdcs-link-desc">SimpleRadio-Standalone config and frequencies</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
</div> | |||
</div> | |||
<!-- ASSIGNED UNITS --> | |||
<div class="sdcs-panel sdcs-full"> | |||
<div class="sdcs-panel-head"> | |||
<div class="sdcs-panel-accent" style="background:#7a7875;"></div> | |||
<span class="sdcs-panel-title">ASSIGNED UNITS</span> | |||
<span class="sdcs-panel-tag">ORDER OF BATTLE</span> | |||
</div> | |||
<div class="sdcs-panel-body"> | |||
<div class="sdcs-unit-card"> | |||
<div class="sdcs-unit-stripe" style="background:#1a5c2e;"></div> | |||
<div class="sdcs-unit-inner"> | |||
<a class="sdcs-unit-cs" href="[[Squadrons/78th VMRS Shadow Knights]]">78th VMRS SHADOW KNIGHTS</a> | |||
<div class="sdcs-unit-acft">F-16C VIPER</div> | |||
</div> | |||
<div class="sdcs-unit-badge">CAP / BAI</div> | |||
</div> | |||
---- | <div class="sdcs-unit-card"> | ||
<div class="sdcs-unit-stripe" style="background:#1a3a6b;"></div> | |||
<div class="sdcs-unit-inner"> | |||
<a class="sdcs-unit-cs" href="[[Squadrons/14th VSFS Top Hatters]]">14th VSFS TOP HATTERS</a> | |||
<div class="sdcs-unit-acft">F/A-18C HORNET</div> | |||
</div> | |||
<div class="sdcs-unit-badge">STRIKE / CAS</div> | |||
</div> | |||
<div style="background:# | <div class="sdcs-unit-card"> | ||
=== | <div class="sdcs-unit-stripe" style="background:#7a7875;"></div> | ||
<div class="sdcs-unit-inner"> | |||
<a class="sdcs-unit-cs" href="[[Squadrons/509th VSFS Black Anvils]]">509th VSFS BLACK ANVILS</a> | |||
<div class="sdcs-unit-acft">TBD</div> | |||
</div> | |||
<div class="sdcs-unit-badge">TBD</div> | |||
</div> | |||
</div> | |||
</div> | </div> | ||
<div | </div> | ||
</div> | </div> | ||
<!-- ═══ END GRID ══════════════��═════════════════════════════ --> | |||
<div style="background:# | <!-- ══ TOOLS STRIP ═════════════════════════════════════════ --> | ||
<div class="sdcs-panel sdcs-full"> | |||
<div class="sdcs-panel-head"> | |||
<div class="sdcs-panel-accent" style="background:#9a9690;"></div> | |||
<span class="sdcs-panel-title">TOOLS & EXTERNAL RESOURCES</span> | |||
</div> | |||
<div class="sdcs-panel-body" style="flex-direction:row;flex-wrap:wrap;gap:0;"> | |||
<a class="sdcs-link-row" href="/atobrief/" target="_blank" rel="noopener" style="flex:1 1 260px;padding-right:16px;border-right:1px solid var(--border);border-bottom:none;margin-right:16px;"> | |||
<span class="sdcs-link-icon">⊕</span> | |||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">ATO BRIEF</span> | |||
<span class="sdcs-link-desc">Briefing app — load ATO/ACO/SPINS packages</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
<a class="sdcs-link-row" href="/asacs_link/" target="_blank" rel="noopener" style="flex:1 1 260px;padding-right:16px;border-right:1px solid var(--border);border-bottom:none;margin-right:16px;"> | |||
</ | <span class="sdcs-link-icon">◉</span> | ||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">ASACS LINK</span> | |||
<span class="sdcs-link-desc">Real-time GCI datalink server</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
< | <a class="sdcs-link-row" href="/tools/miztoyaml/" target="_blank" rel="noopener" style="flex:1 1 260px;border-bottom:none;"> | ||
=== | <span class="sdcs-link-icon">⟐</span> | ||
<span class="sdcs-link-body"> | |||
<span class="sdcs-link-title">MIZ TO YAML</span> | |||
<span class="sdcs-link-desc">Convert .miz to ATO BRIEF packages</span> | |||
</span> | |||
<span class="sdcs-link-arrow">→</span> | |||
</a> | |||
</div> | |||
</div> | </div> | ||
---- | <!-- ══ FOOTER ══════════════════════════════════════════════ --> | ||
<div class="sdcs-footer"> | |||
<span class="sdcs-footer-text">SOURCEDCS</span> | |||
<span class="sdcs-footer-sep">·</span> | |||
<a href="[[Special:AllPages]]">All Pages</a> | |||
<span class="sdcs-footer-sep">·</span> | |||
<a href="[[Special:RecentChanges]]">Recent Changes</a> | |||
<span class="sdcs-footer-sep">·</span> | |||
<a href="https://github.com/NikNam3/sourcedcs" target="_blank" rel="noopener">GitHub</a> | |||
</div> | |||
< | </div><!-- .sdcs-root --> | ||
Revision as of 18:53, 4 March 2026
<style>
/* ── Tokens (PROF mode) ─────────────────────────────────── */
.sdcs-root {
--bg: #f4f3f0; --bg2: #edecea; --bg3: #e5e4e0; --bg-card: #ffffff; --border: #c8c5bf; --border-strong:#9a9690; --text: #1a1917; --text-2: #4a4845; --text-3: #7a7875; --green: #1a5c2e; --amber: #7c5000; --red: #9b1c1c; --blue: #1a3a6b; --shadow: 0 1px 3px rgba(0,0,0,.10); --shadow-md: 0 4px 12px rgba(0,0,0,.12); --font-mono: 'IBM Plex Mono', ui-monospace, monospace; --font-hud: 'Orbitron', var(--font-mono);
font-family: var(--font-mono); font-size: 13px; color: var(--text); line-height: 1.5;
}
/* ── Status bar (mirrors header / intel-row) ─────────────── */ .sdcs-statusbar {
display: flex; align-items: center; gap: 0; height: 44px; background: var(--bg2); border: 1px solid var(--border-strong); border-left: 3px solid var(--green); margin-bottom: 16px; overflow-x: auto;
} .sdcs-sb-block {
display: flex; flex-direction: column; justify-content: center; padding: 0 16px; border-right: 1px solid var(--border); height: 100%; white-space: nowrap; flex-shrink: 0;
} .sdcs-sb-block:last-child { border-right: none; } .sdcs-sb-lbl {
font-size: 7px; letter-spacing: 1.5px; color: var(--text-3); text-transform: uppercase; margin-bottom: 2px;
} .sdcs-sb-val {
font-size: 12px; font-weight: 600; color: var(--text);
} .sdcs-sb-val.online { color: var(--green); } .sdcs-sb-links {
margin-left: auto; padding: 0 16px; display: flex; gap: 14px; align-items: center; flex-shrink: 0;
} .sdcs-sb-links a {
font-size: 9px; letter-spacing: 1.5px; color: var(--text-3); text-decoration: none; text-transform: uppercase; border-bottom: 1px solid transparent; transition: color .15s, border-color .15s;
} .sdcs-sb-links a:hover { color: var(--text); border-bottom-color: var(--text); } .sdcs-sb-sep { color: var(--border-strong); font-size: 9px; }
/* ── Two-column grid ─────────────────────────────────────── */ .sdcs-grid {
display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px;
} @media (max-width: 760px) {
.sdcs-grid { grid-template-columns: 1fr; }
}
/* ── Panel (mirrors bg-card + border pattern) ────────────── */ .sdcs-panel {
background: var(--bg-card); border: 1px solid var(--border-strong); box-shadow: var(--shadow); display: flex; flex-direction: column;
}
/* ── Panel header (mirrors .card-top / .doc-section-title) ─ */ .sdcs-panel-head {
display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg2); border-bottom: 1px solid var(--border-strong); flex-shrink: 0;
} .sdcs-panel-accent {
width: 3px; align-self: stretch; flex-shrink: 0; border-radius: 1px;
} .sdcs-panel-title {
font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: 2.5px; color: var(--text); text-transform: uppercase; flex: 1;
} .sdcs-panel-tag {
font-size: 7px; letter-spacing: 1.5px; padding: 2px 7px; border: 1px solid var(--border-strong); color: var(--text-3); text-transform: uppercase; white-space: nowrap;
}
/* ── Panel body ──────────────────────────────────────────── */ .sdcs-panel-body {
padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; flex: 1;
} .sdcs-panel-desc {
font-size: 10px; color: var(--text-2); line-height: 1.7; margin-bottom: 8px;
}
/* ── Link rows (mirrors .link-card compact) ──────────────── */ .sdcs-link-row {
display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; cursor: pointer;
} .sdcs-link-row:last-child { border-bottom: none; } .sdcs-link-row:hover .sdcs-link-title { color: var(--text); } .sdcs-link-row:hover .sdcs-link-arrow { color: var(--text); transform: translateX(2px); } .sdcs-link-icon {
font-size: 14px; width: 22px; text-align: center; flex-shrink: 0; color: var(--text-3);
} .sdcs-link-body { flex: 1; min-width: 0; } .sdcs-link-title {
font-size: 10px; font-weight: 600; letter-spacing: 1.5px; color: var(--text-2); display: block; margin-bottom: 1px;
} .sdcs-link-desc {
font-size: 9px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
} .sdcs-link-arrow {
font-size: 12px; color: var(--border-strong); flex-shrink: 0; transition: color .15s, transform .15s;
}
/* ── Unit cards (mirrors .tanker-card layout) ────────────── */ .sdcs-unit-card {
display: flex; align-items: stretch; border: 1px solid var(--border); background: var(--bg-card); box-shadow: var(--shadow); margin-bottom: 6px; overflow: hidden;
} .sdcs-unit-card:last-child { margin-bottom: 0; } .sdcs-unit-stripe {
width: 3px; flex-shrink: 0; background: var(--text-3);
} .sdcs-unit-inner {
padding: 8px 12px; flex: 1; min-width: 0;
} .sdcs-unit-cs {
font-size: 12px; font-weight: 700; color: var(--text); text-decoration: none; letter-spacing: .5px;
} .sdcs-unit-cs:hover { color: var(--blue); } .sdcs-unit-acft {
font-size: 9px; color: var(--text-3); margin-top: 2px; letter-spacing: 1px;
} .sdcs-unit-badge {
font-size: 8px; letter-spacing: 1.5px; padding: 2px 7px; border: 1px solid var(--border); color: var(--text-3); align-self: center; margin-right: 10px; flex-shrink: 0;
}
/* ── Campaign / Ops status block ─────────────────────────── */ .sdcs-ops-block {
border: 1px solid var(--border); background: var(--bg2); padding: 10px 14px; margin-bottom: 6px;
} .sdcs-ops-block:last-child { margin-bottom: 0; } .sdcs-ops-label {
font-size: 8px; letter-spacing: 2px; color: var(--text-3); text-transform: uppercase; margin-bottom: 5px; padding-bottom: 4px; border-bottom: 1px solid var(--border);
} .sdcs-ops-value {
font-size: 11px; font-weight: 600; color: var(--text);
} .sdcs-ops-sub {
font-size: 9px; color: var(--text-2); margin-top: 3px; line-height: 1.6;
}
/* ── Full-width panels ───────────────────────────────────── */ .sdcs-full { margin-bottom: 12px; }
/* ── Kv-row (mirrors docs.css .kv-row) ──────────────────── */ .sdcs-kv {
display: flex; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--border); font-size: 11px; align-items: flex-start;
} .sdcs-kv:last-child { border-bottom: none; } .sdcs-kv-k {
color: var(--text-3); min-width: 140px; flex-shrink: 0; font-size: 10px;
} .sdcs-kv-v { color: var(--text); font-weight: 500; } .sdcs-kv-v.freq { color: var(--blue); } .sdcs-kv-v.amber { color: var(--amber); } .sdcs-kv-v.green { color: var(--green); }
/* ── Footer strip ─────────────────────────────────────────── */ .sdcs-footer {
margin-top: 20px; padding: 12px 0; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: center; gap: 12px;
} .sdcs-footer-text {
font-size: 9px; letter-spacing: 1.5px; color: var(--text-3); text-transform: uppercase;
} .sdcs-footer-sep { color: var(--border-strong); font-size: 9px; } .sdcs-footer a {
font-size: 9px; letter-spacing: 1.5px; color: var(--text-3); text-transform: uppercase; text-decoration: none; border-bottom: 1px solid transparent;
} .sdcs-footer a:hover { color: var(--text); border-bottom-color: var(--text); }
/* ── Google Fonts ─────────────────────────────────────────── */ @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Orbitron:wght@700;900&display=swap'); </style>
ATO BRIEF — START HERE ACTIVE OPS
Current operational picture — campaign context, tasking, and go/no-go items.
<a class="sdcs-link-row" href="/atobrief/" target="_blank" rel="noopener">
OPEN ATO BRIEF APP
Load & present ATO/ACO/SPINS/COMMS packages — live room sync
→
</a>
FLIGHT OPS PROCEDURES
<a class="sdcs-link-row" href="General/Tactical Communication"> TACTICAL COMMUNICATION Brevity, radio format, and comm discipline → </a> <a class="sdcs-link-row" href="General/CATC Communications Guide"> CATC COMMUNICATIONS GUIDE Marshal / Tower / Carrier comms → </a> <a class="sdcs-link-row" href="General/Mission Requirements"> MISSION REQUIREMENTS Qualification and currency standards → </a> <a class="sdcs-link-row" href="Operations/Qualifications"> QUALIFICATIONS / CHECKRIDES Track certifications and syllabus progress → </a>
ONBOARDING NEW PILOTS
Required reading and setup before your first flight operation.
<a class="sdcs-link-row" href="Guides/New Member Guide"> NEW MEMBER GUIDE Start here — rules, culture, and server access → </a> <a class="sdcs-link-row" href="Guides/DCS Settings"> DCS SETTINGS Recommended client configuration → </a> <a class="sdcs-link-row" href="Guides/Mod Installation"> MOD INSTALLATION Required and optional mods with install steps → </a> <a class="sdcs-link-row" href="Guides/SRS Setup"> SRS SETUP SimpleRadio-Standalone config and frequencies → </a>
ASSIGNED UNITS ORDER OF BATTLE
<a class="sdcs-unit-cs" href="Squadrons/78th VMRS Shadow Knights">78th VMRS SHADOW KNIGHTS</a>
<a class="sdcs-unit-cs" href="Squadrons/14th VSFS Top Hatters">14th VSFS TOP HATTERS</a>
<a class="sdcs-unit-cs" href="Squadrons/509th VSFS Black Anvils">509th VSFS BLACK ANVILS</a>
TOOLS & EXTERNAL RESOURCES
<a class="sdcs-link-row" href="/atobrief/" target="_blank" rel="noopener" style="flex:1 1 260px;padding-right:16px;border-right:1px solid var(--border);border-bottom:none;margin-right:16px;">
ATO BRIEF
Briefing app — load ATO/ACO/SPINS packages
→
</a>
<a class="sdcs-link-row" href="/asacs_link/" target="_blank" rel="noopener" style="flex:1 1 260px;padding-right:16px;border-right:1px solid var(--border);border-bottom:none;margin-right:16px;">
ASACS LINK
Real-time GCI datalink server
→
</a>
<a class="sdcs-link-row" href="/tools/miztoyaml/" target="_blank" rel="noopener" style="flex:1 1 260px;border-bottom:none;">
MIZ TO YAML
Convert .miz to ATO BRIEF packages
→
</a>