:root{
    --primary: #8c00ff;
    --primary-hover: #a000ff;
    --accent: #8c00ff;
    --text: #000;
    --text-invert: #eee;
    --input: #1f1f1f;
    --panel-border: #2b3050;
    --shadow: rgba(0, 0, 0, 0.25);
    --linear-bg: linear-gradient(-45deg, #000000eb, #262626eb, #000000eb);
}
    * {
      box-sizing: border-box;
    }

    body {
      min-height: 100vh;
      color: var(--text);
      display: grid;
    }

    .qr-app {
      width: 100%;
      max-width: 760px;
      background: var(--linear-bg);
      border: 1px solid var(--panel-border);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 28px;
      backdrop-filter: blur(10px);
      margin: 10px auto;
            color: var(--text-invert);
    }

    .qr-app h1 {
      margin: 0 0 8px;
      font-size: clamp(1.8rem, 3vw, 2.5rem);
      line-height: 1.1;
            color: var(--text-invert);
    }

    .qr-app p {
      margin: 0 0 22px;
      color: var(--text-invert);
      line-height: 1.6;
    }

    .controls {
      display: grid;
      gap: 14px;
    }

    .input-wrap {
      display: grid;
      gap: 8px;
    }

    label {
      font-weight: 700;
      font-size: 0.95rem;
    }

    input[type="url"],
    input[type="text"] {
      width: 100%;
      border: 1px solid #303458;
      background: var(--input);
      color: var(--text-invert);
      border-radius: 14px;
      padding: 14px 16px;
      font-size: 1rem;
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    input:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 4px rgba(140, 0, 255, 0.18);
    }

    .button-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    button {
      appearance: none;
      border: none;
      border-radius: 14px;
      padding: 13px 18px;
      font-size: 0.98rem;
      font-weight: 700;
      cursor: pointer;
      transition: transform 0.15s ease, opacity 0.15s ease, background 0.2s ease;
    }

    button:hover {
      transform: translateY(-1px);
    }

    button:active {
      transform: translateY(0);
    }

    .btn-primary {
      background: var(--primary);
      color: white;
    }

    .btn-primary:hover {
      background: var(--primary-hover);
    }

    .btn-secondary {
      background: rgba(140, 0, 255, 0.18);
      color: var(--text);
      border: 1px solid #34395f;
    }

    .btn-secondary:hover {
      background: #2b3050;
    }

    .btn-download {
      background: #1f7a43;
      color: white;
    }

    .btn-download:hover {
      background: #258f4d;
    }

    .status {
      min-height: 24px;
      font-size: 0.95rem;
      margin-top: 4px;
    }

    .status.error {
      color: var(--danger);
    }

    .status.success {
      color: var(--success);
    }

    .qr-output {
      margin-top: 24px;
      display: grid;
      place-items: center;
      padding: 24px;
      border-radius: 18px;
      border: 1px dashed #363b62;
      background: rgba(255, 255, 255, 0.02);
      min-height: 320px;
    }

    .qr-placeholder {
      text-align: center;
      color: var(--text-invert);
      line-height: 1.7;
      max-width: 300px;
      
    }

    #qrcode {
      display: inline-grid;
      place-items: center;
      background: white;
      padding: 16px;
      border-radius: 18px;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
    }

    #qrcode img,
    #qrcode canvas {
      display: block;
      max-width: 100%;
      height: auto;
    }

    .small-note {
      margin-top: 16px;
      font-size: 0.88rem;
      color: var(--text-invert);
      text-align: center;
    }

    @media (max-width: 640px) {
      .qr-app {
        padding: 20px;
      }

      .button-row {
        flex-direction: column;
      }

      .button-row button {
        width: 100%;
      }

      .qr-output {
        min-height: 280px;
        padding: 18px;
      }
    }
