    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html, body { width: 100%; }
    body {
      min-height: 100vh;
      background: #0d1117;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 28px;
      font-family: 'Segoe UI', system-ui, sans-serif;
    }
    h1 {
      color: #8b949e;
      font-size: 1rem;
      letter-spacing: 3px;
      text-transform: uppercase;
      margin-bottom: 12px;
    }
    .grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 24px;
      width: 80vw;
      max-width: 400px;
    }
    .btn {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      height: 110px;
      border-radius: 18px;
      font-size: 1.1rem;
      font-weight: 700;
      letter-spacing: 1px;
      text-decoration: none;
      border: 2px solid transparent;
      cursor: pointer;
      transition: transform 0.2s, box-shadow 0.2s, filter 0.2s;
      user-select: none;
      position: relative;
      overflow: hidden;
    }
    .btn .btn-icon { font-size: 1.5rem; transition: transform 0.2s; }
    .btn .btn-label { transition: transform 0.2s, opacity 0.2s; }
    .btn .btn-desc {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 6px 10px;
      font-size: 0.7rem;
      font-weight: 400;
      letter-spacing: 0.3px;
      opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.2s, transform 0.2s;
      background: rgba(0,0,0,0.35);
      text-align: center;
    }
    .btn:hover {
      transform: translateY(-4px) scale(1.02);
      filter: brightness(1.15);
      box-shadow: 0 16px 48px rgba(0,0,0,0.5);
    }
    .btn:hover .btn-icon { transform: scale(1.15); }
    .btn:hover .btn-desc { opacity: 1; transform: translateY(0); }
    .btn:active { transform: scale(0.97); filter: brightness(0.9); }
    .tcplistener    { background: #0d1f38; color: #60a5fa; border-color: #2563eb; }
    .dlmstranslator { background: #2e1a00; color: #fbbf24; border-color: #d97706; }
    .dlmsparser     { background: #1a0a2e; color: #c084fc; border-color: #9333ea; }
    .resendevent    { background: #0a2e2e; color: #22d3ee; border-color: #0891b2; }
