/* outils.css â€” page outils : grille de cartes + rÃ©sultats */
.tools-wrap {
  /* marges gérées par .bloc-page */
}
.tools-title {
  font-family: monospace;
  font-size: 11px;
  color: rgba(240,235,220,0.3);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 16px;
}
.tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

/* Carte : base trÃ¨s arrondie, s'Ã©tire en rect. arrondi avec le contenu */
.card {
  background: rgba(0,0,0,0.6);
  border: 1px solid rgba(240,235,220,0.18);
  border-radius: 28px;
  padding: 20px 22px;
  backdrop-filter: blur(8px);
  font-family: monospace;
  box-shadow:
    0 4px 16px rgba(0,0,0,0.45),
    inset 0 1px 0 rgba(240,235,220,0.06);
  transition: border-color 0.25s, box-shadow 0.25s, transform 0.15s;
}
.card:hover {
  border-color: rgba(240,235,220,0.32);
  box-shadow:
    0 6px 22px rgba(0,0,0,0.55),
    inset 0 1px 0 rgba(240,235,220,0.10);
}

.card h2 {
  font-size: 11px;
  color: rgba(240,235,220,0.55);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 12px;
  text-align: center;
}

.input-row {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.card input[type=text],
.card select {
  flex: 1;
  background: rgba(0,0,0,0.5);
  border: 1px solid rgba(240,235,220,0.18);
  border-radius: 999px;          /* champs en pilule, cohÃ©rent avec la carte ronde */
  padding: 7px 14px;
  color: rgba(240,235,220,0.9);
  font-family: monospace;
  font-size: 12px;
  outline: none;
  min-width: 80px;
}
.card input:focus, .card select:focus {
  border-color: rgba(240,235,220,0.45);
}
.card select option { background: #111; }

.card button {
  background: rgba(240,235,220,0.08);
  border: 1px solid rgba(240,235,220,0.22);
  border-radius: 999px;          /* boutons en pilule */
  padding: 7px 16px;
  color: rgba(240,235,220,0.85);
  font-family: monospace;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
  white-space: nowrap;
}
.card button:hover {
  background: rgba(240,235,220,0.15);
  border-color: rgba(240,235,220,0.40);
}
.card button:active { transform: scale(0.97); }

.result {
  background: rgba(0,0,0,0.4);
  border: 1px solid rgba(240,235,220,0.07);
  border-radius: 18px;           /* harmonisÃ© avec l'esprit arrondi */
  padding: 12px 14px;
  min-height: 50px;
  max-height: 220px;
  overflow-y: auto;
  font-size: 11px;
  line-height: 1.75;
  color: rgba(240,235,220,0.6);
  white-space: pre-wrap;
  word-break: break-all;
}
.result .ok   { color: #7ec87e; }
.result .err  { color: #e07070; }
.result .info { color: rgba(240,235,220,0.3); }
.result .key  { color: rgba(240,235,220,0.85); }
.result .big  { font-size: 22px; color: rgba(240,235,220,0.95); display: block; margin-bottom: 4px; }
/* QR code : vignette dans la card */
.result img.qr {
  display: block;
  margin: 6px auto;
  width: 120px;
  height: 120px;
  border-radius: 12px;
  background: #fff;
  padding: 6px;
  cursor: zoom-in;
  transition: transform 0.15s;
}
.result img.qr:hover { transform: scale(1.05); }

/* Overlay popup */
.qr-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  cursor: zoom-out;
  backdrop-filter: blur(6px);
}
.qr-overlay img {
  display: block;
  width: min(70vmin, 600px);
  height: auto;
  background: #fff;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.6);
}
.qr-modal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  cursor: default;
}
.qr-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.qr-actions button {
  background: rgba(240,235,220,0.12);
  border: 1px solid rgba(240,235,220,0.30);
  border-radius: 999px;
  padding: 8px 16px;
  color: rgba(240,235,220,0.95);
  font-family: monospace;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.qr-actions button:hover {
  background: rgba(240,235,220,0.22);
  border-color: rgba(240,235,220,0.5);
}
.qr-modal:fullscreen {
  background: #000;
  justify-content: center;
  padding: 20px;
}
.qr-modal:fullscreen img {
  width: min(90vmin, 90vh);
  max-height: 80vh;
}
.qr-link {
  display: block;
  text-align: center;
  margin: 4px auto 0;
  max-width: 100%;
  font-family: monospace;
  font-size: 11px;
  color: rgba(240,235,220,0.7);
  word-break: break-all;
  text-decoration: none;
}
a.qr-link:hover {
  color: rgba(240,235,220,1);
  text-decoration: underline;
}
.qr-overlay .qr-link {
  font-size: 13px;
  color: rgba(240,235,220,0.85);
  max-width: 70vmin;
}