/* =========================
   GLOBAL
========================= */
body {
    background:#0b0b0b;
    color:#0f0;
    font-family: monospace;
    margin:100px;
}

/* =========================
   HEADER / TYPEWRITER
========================= */
h1 {
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:30px;
    font-family:'Press Start 2P', monospace;
    letter-spacing:3px;
    color:orange;
    text-shadow:0 0 6px rgba(255,165,0,0.6);
    margin-bottom:50px;
}
h1 .icon { margin-right:10px; position: relative; top: -5px; }
h1 .text { white-space:nowrap; }
h1 .cursor { margin-left:2px; animation:blink 0.8s infinite; }
@keyframes blink {0%,50% { opacity:1; } 51%,100% { opacity:0; }}

/* =========================
   BOXES
========================= */
.box, .box1 {
    background:#111;
    padding:15px;
    margin-bottom:15px;
    border-radius:8px;
    border:1px solid #0f0;
    box-shadow:0 0 6px #0f0, 0 0 12px rgba(0,255,0,0.2);
}
.box h3, .box1 h3 {
    margin-top:0;
    color:#afffaf;
    text-shadow:0 0 6px #0f0;
}

/* =========================
   STATUS OVERVIEW
========================= */
.status-overview {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:10px;
}
.status-badge {
    background:#0f0;
    color:#000;
    padding:4px 12px;
    border-radius:999px;
    font-weight:bold;
    box-shadow:0 0 6px #0f0;
    display:flex;
    align-items:center;
    gap:6px;
    font-size:0.85em;
    transition:all 0.2s ease;
}
.status-badge.inactive { background:#333; color:#888; box-shadow:none; }

/* =========================
   TG GRID
========================= */
.tg-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

/* =========================
   TG ITEMS
========================= */
.tg {
    background: #111;
    border: 1px solid #0f0;
    padding: 8px;
    border-radius: 6px;
    min-height: 70px;
    box-shadow: 0 0 6px #0f0, 0 0 12px rgba(0,255,0,0.2);
    transition: transform 0.15s ease, box-shadow 0.25s ease, background 0.25s ease;
    font-size: 0.9em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    color: #0f0;
 font-weight: bold; /* cała czcionka pogrubiona */
}

.tg:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 12px #0f0, 0 0 24px rgba(0,255,0,0.3);
}

.tg.active {
    background: #0f0;
    color: #000;
    border-color: #0f0;
    box-shadow: 0 0 8px #0f0, 0 0 16px rgba(0,255,0,0.3);
}

.tg.connected {
    background: orange;
    color: #111;
    border-color: #0f0;
    box-shadow: 0 0 6px #ffeb3b, 0 0 12px rgba(255,235,59,0.3);
}

.tg b {
    display: block;
    margin-bottom: 4px;
    font-weight: bold;
    font-size: 1em;
}

.tg div {
    font-size: 0.85em;
 font-weight: bold; /* tekst w div też pogrubiony */
}

/* =========================
   STATIONS GRID
========================= */
.stations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

/* =========================
   STATIONS
========================= */
.station {
    background: linear-gradient(145deg, #0b0b0b, #222);
    color: #0f0;
    padding: 6px 10px;
    border-radius: 4px;
    text-align: center;
    font-weight: bold;
    font-size: 0.85em;
    border: 1px solid #0f0;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s ease, box-shadow 0.25s ease;
}

.station:hover {
    background: #033;
    color: #afffaf;
    box-shadow: 0 0 8px #0f0, 0 0 16px rgba(0,255,0,0.2);
}

.station.tx {
    background: linear-gradient(145deg, #00ff88, #00b366);
    color: #000;
    font-size: 0.85em;
    text-align: center;
    font-weight: bold;
    padding: 6px 10px;
    border-radius: 4px;
    animation: pulseTx 1.2s infinite;
    box-shadow: 0 0 6px #00ff88, 0 0 12px rgba(0,255,136,0.25);
}

/* =========================
   PULSE ANIMATION STACJI TX
========================= */
@keyframes pulseTx {
    0%   { box-shadow:0 0 4px #00ff88, 0 0 12px rgba(0,255,136,0.25); }
    50%  { box-shadow:0 0 12px #00ff88, 0 0 24px rgba(0,255,136,0.3); }
    100% { box-shadow:0 0 4px #00ff88, 0 0 12px rgba(0,255,136,0.25); }
}

/* =========================
   TABLE / QSO
========================= */
table {
    width:100%;
    border-collapse:collapse;
    margin-top:10px;
    font-size:0.85em;
}
table th, table td { border:1px solid #0f0; padding:5px; text-align:center; }
table th { background:#030; color:#9f9; }
.qso-row-even { background:#0a0a0a; }
.qso-row-odd  { background:#111; }
table tr:hover { background:#033; }
.qso-latest { background:#060 !important; color:#fff; }

/* =========================
   TG NAMES
========================= */
#tg-names {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:8px;
    margin-top:10px;
}
#tg-names div {
    background:#222;
    border:1px solid #0f0;
    padding:6px;
    border-radius:5px;
    text-align:center;
    box-shadow:0 0 4px #0f0;
}

/* =========================
   FOOTER
========================= */
.main-footer {
    text-align:center;
    padding:10px 20px;
    font-size:12px;
    color:#0f0;
    background:#111;
    border-top:1px solid #0f0;
    border-radius:5px;
    margin-top:20px;
}
.main-footer .footer-small {
    margin-top:5px;
    font-size:9px;
    opacity:0.6;
}
.main-footer a { color:inherit; text-decoration:none; }

/* =========================
   LINKS (BOX1)
========================= */
.box1 a { color:#1976D2; text-decoration:none; font-weight:bold; }
.box1 a:hover { color:#42A5F5; text-decoration:underline; }

/* =========================
   INLINE BADGES
========================= */
.box-title-inline {
    display:flex;
    align-items:center;
    gap:8px;
}
.count-badge {
    background:#0f0;
    color:#000;
    padding:2px 8px;
    border-radius:999px;
    font-size:0.8em;
    font-weight:bold;
    box-shadow:0 0 6px #0f0;
}

.box3 {
    margin-bottom: 30px; /* odstęp pod TG list */
}

/* =========================
   TOOLTIP
========================= */
#tooltip {
    position:absolute;
    background:rgba(10,15,10,0.95);
    color:#c8ffc8;
    border:1px solid #0f0;
    padding:10px 14px;
    border-radius:8px;
    font-size:0.85em;
    white-space:pre-line;
    pointer-events:none;
    display:none;
    z-index:9999;
    max-width:320px;
    line-height:1.45;
    box-shadow:0 0 8px #0f0,0 0 16px rgba(0,255,0,0.25);
    animation:tooltipFade 0.15s ease-out;
    backdrop-filter:blur(3px);
}
@keyframes tooltipFade { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }

/* ===== TOOLTIP – TG ===== */
#tooltip.tg-tooltip {
  border-color: #00e5ff;
  box-shadow: 0 0 6px #00e5ff, 0 0 14px rgba(0,229,255,0.4);
  color: #e0f7fa;
  width: 260px;
  max-height: 160px;
  white-space: normal;
  word-wrap: break-word;
  overflow-y: auto;
  overflow-x: hidden;
}
#tooltip.tg-tooltip .tg-title {
  font-weight: bold;
  color: #00e5ff;
  margin-bottom: 4px;
}
#tooltip.tg-tooltip .tg-sep {
  height: 1px;
  margin: 4px 0;
  background: linear-gradient(to right, transparent, #00e5ff, transparent);
}
#tooltip.tg-tooltip .tg-desc {
  color: #b2ebf2;
  font-size: 0.9em;
  line-height: 1.3;
}

/* ===== RULEZ BUTTON ===== */
.rulez-btn {
    cursor: pointer;
    background: #ff9800;
    color: #000;
    box-shadow: 0 0 8px rgba(255,152,0,0.8);
}
.rulez-btn:hover {
    background: #ffb74d;
}

/* ===== MODAL ===== */
.rulez-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.rulez-window {
    background: #111;
    border: 1px solid #0f0;
    box-shadow: 0 0 15px #0f0;
    border-radius: 10px;
    width: 600px;
    max-width: 90%;
    max-height: 80%;
    padding: 15px;
    display: flex;
    flex-direction: column;
}

.rulez-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #0f0;
    font-weight: bold;
    margin-bottom: 10px;
}

.rulez-close {
    cursor: pointer;
    color: #f55;
    font-size: 18px;
}

.rulez-content {
    flex: 1;
    background: #000;
    border: 1px solid #0f0;
    padding: 10px;
    color: #afffaf;
    font-family: monospace;
    overflow-y: auto;
    white-space: pre-wrap;
}

.push-right {
    margin-left: auto;
}

/* =========================
   QSO TABLE COLORS
========================= */
#qso thead tr {
    background-color: #222;
    color: #0f0;
}
#qso tbody tr.qso-row-even {
    background-color: #1a1a1a;
    color: #0f0;
}
#qso tbody tr.qso-row-odd {
    background-color: #121212;
    color: #39ff14;
}
#qso tbody tr:hover {
    background-color: #333;
    color: #0f0;
}

