/* =========================================================
   CALCULATEUR DE SOL — SHRIMP DÉLICE
   Styles préfixés .sd- pour éviter les conflits de thème
   Couleurs : #45a700 (sol technique) / #228b22 (sol neutre)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap');

.sd-calc {
  --sd-bg: #fdfcf8;
  --sd-text: #1a2e1a;
  --sd-text-soft: #5d6963;
  --sd-border: #e7e9e2;
  --sd-shadow: 0 1px 2px rgba(26,46,26,.05), 0 12px 32px -12px rgba(34,139,34,.14);

  --tech-primary: #45a700;
  --tech-deep:    #3a8e00;
  --tech-soft:    #f1f9e8;
  --tech-mid:     #d4ecbc;

  --neut-primary: #228b22;
  --neut-deep:    #1a6b1a;
  --neut-soft:    #ecf5ec;
  --neut-mid:     #c2dfc2;

  --c-primary: var(--tech-primary);
  --c-deep:    var(--tech-deep);
  --c-soft:    var(--tech-soft);
  --c-mid:     var(--tech-mid);

  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--sd-text);
  background: var(--sd-bg);
  border: 1px solid var(--sd-border);
  border-radius: 14px;
  padding: 28px;
  max-width: 600px;
  margin: 32px auto;
  box-shadow: var(--sd-shadow);
  box-sizing: border-box;
  transition: border-color .5s ease;
  line-height: 1.5;
}
.sd-calc[data-mode="neutre"] {
  --c-primary: var(--neut-primary);
  --c-deep:    var(--neut-deep);
  --c-soft:    var(--neut-soft);
  --c-mid:     var(--neut-mid);
}
.sd-calc *,
.sd-calc *::before,
.sd-calc *::after { box-sizing: border-box; }

.sd-calc .sd-eyebrow {
  font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--c-primary); font-weight: 600; margin: 0 0 6px;
  transition: color .4s ease;
}
.sd-calc .sd-title {
  font-family: 'Fraunces', Georgia, "Times New Roman", serif;
  font-weight: 500; font-size: 26px; line-height: 1.15;
  margin: 0 0 6px; letter-spacing: -.01em; color: var(--sd-text);
}
.sd-calc .sd-subtitle {
  margin: 0 0 22px; color: var(--sd-text-soft);
  font-size: 14px; line-height: 1.5;
}

.sd-calc .sd-toggle {
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--c-soft);
  border-radius: 10px; padding: 4px; position: relative;
  margin-bottom: 22px;
  transition: background .4s ease;
}
.sd-calc .sd-toggle button {
  background: transparent; border: 0; padding: 11px 14px;
  cursor: pointer; font-family: inherit; font-size: 14px;
  font-weight: 500; color: var(--sd-text-soft);
  border-radius: 8px; transition: color .3s ease;
  position: relative; z-index: 1;
}
.sd-calc .sd-toggle button.active {
  color: white; font-weight: 600;
  text-shadow: 0 1px 2px rgba(0,0,0,.08);
}
.sd-calc .sd-toggle-indicator {
  position: absolute; top: 4px; bottom: 4px; left: 4px;
  width: calc(50% - 4px);
  background: linear-gradient(135deg, var(--c-primary), var(--c-deep));
  border-radius: 8px;
  box-shadow: 0 2px 6px -2px rgba(34,139,34,.4);
  transition: transform .4s cubic-bezier(.4,0,.2,1), background .4s ease;
}
.sd-calc[data-mode="neutre"] .sd-toggle-indicator { transform: translateX(100%); }

.sd-calc .sd-fields {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 10px; margin-bottom: 22px;
}
.sd-calc .sd-field { display: flex; flex-direction: column; gap: 6px; }
.sd-calc .sd-field label {
  font-size: 12px; color: var(--sd-text-soft); font-weight: 500;
}
.sd-calc .sd-input-wrap { position: relative; }
.sd-calc .sd-input-wrap input {
  width: 100%; border: 1px solid var(--sd-border);
  border-radius: 8px; padding: 11px 34px 11px 12px;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500; font-size: 17px; color: var(--sd-text);
  background: white;
  transition: border-color .2s ease, box-shadow .2s ease;
  -moz-appearance: textfield;
}
.sd-calc .sd-input-wrap input::-webkit-outer-spin-button,
.sd-calc .sd-input-wrap input::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.sd-calc .sd-input-wrap input:focus {
  outline: none; border-color: var(--c-primary);
  box-shadow: 0 0 0 3px var(--c-mid);
}
.sd-calc .sd-unit {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  font-size: 11px; color: var(--sd-text-soft);
  pointer-events: none; letter-spacing: .5px;
}

.sd-calc .sd-results {
  background: linear-gradient(135deg, var(--c-soft) 0%, white 100%);
  border: 1px solid var(--c-mid);
  border-radius: 12px; padding: 20px;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 20px; margin-bottom: 16px;
  transition: background .4s ease, border-color .4s ease;
}
.sd-calc .sd-result { display: flex; flex-direction: column; gap: 4px; }
.sd-calc .sd-result-label {
  font-size: 11px; color: var(--sd-text-soft);
  letter-spacing: .8px; text-transform: uppercase; font-weight: 500;
}
.sd-calc .sd-result-value {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500; font-size: 32px; line-height: 1;
  color: var(--c-deep); letter-spacing: -.02em;
  transition: color .4s ease;
}
.sd-calc .sd-result-value small {
  font-size: 14px; font-weight: 400;
  color: var(--sd-text-soft); margin-left: 3px;
}

.sd-calc .sd-bags {
  background: white; border: 1px solid var(--sd-border);
  border-radius: 12px; padding: 16px 18px; margin-bottom: 16px;
}
.sd-calc .sd-bags-title {
  font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase;
  color: var(--sd-text-soft); font-weight: 600; margin: 0 0 12px;
}
.sd-calc .sd-bag-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.sd-calc .sd-bag {
  text-align: center; padding: 12px 6px;
  background: var(--c-soft); border-radius: 8px;
  transition: background .4s ease;
}
.sd-calc .sd-bag-size {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500; font-size: 16px;
  color: var(--c-deep); margin: 0 0 2px;
  transition: color .4s ease;
}
.sd-calc .sd-bag-qty { font-size: 12px; color: var(--sd-text-soft); margin: 0; }
.sd-calc .sd-bag-qty strong { font-weight: 600; color: var(--sd-text); }

.sd-calc .sd-tip {
  display: flex; gap: 10px; padding: 12px 14px;
  background: var(--c-soft);
  border-left: 3px solid var(--c-primary);
  border-radius: 6px;
  font-size: 13px; line-height: 1.5; color: var(--sd-text);
  transition: background .4s ease, border-color .4s ease;
}
.sd-calc .sd-tip-icon { flex-shrink: 0; font-size: 16px; line-height: 1.4; }
.sd-calc .sd-tip strong { color: var(--c-deep); font-weight: 600; transition: color .4s ease; }

/* Tablette / mobile large */
@media (max-width: 480px) {
  .sd-calc { padding: 22px 18px; margin: 20px 8px; border-radius: 12px; }
  .sd-calc .sd-title { font-size: 22px; }
  .sd-calc .sd-toggle button { padding: 13px 12px; min-height: 44px; }
  .sd-calc .sd-fields { gap: 8px; }
  .sd-calc .sd-input-wrap input {
    font-size: 16px; /* ≥16px obligatoire pour empêcher le zoom auto sur iOS */
    padding: 11px 30px 11px 10px;
  }
  .sd-calc .sd-results { padding: 18px; gap: 14px; }
  .sd-calc .sd-result-value { font-size: 26px; }
  .sd-calc .sd-bag-grid { gap: 6px; }
  .sd-calc .sd-bag { padding: 10px 4px; }
  .sd-calc .sd-bag-size { font-size: 14px; }
}

/* Mobile compact (iPhone SE, petits Android) */
@media (max-width: 360px) {
  .sd-calc { padding: 18px 14px; margin: 16px 6px; }
  .sd-calc .sd-title { font-size: 20px; line-height: 1.2; }
  .sd-calc .sd-subtitle { font-size: 13px; margin-bottom: 18px; }
  .sd-calc .sd-toggle button { padding: 12px 8px; font-size: 13px; }
  .sd-calc .sd-input-wrap input { padding: 10px 26px 10px 8px; }
  .sd-calc .sd-unit { right: 8px; font-size: 10px; }
  .sd-calc .sd-results { padding: 16px; }
  .sd-calc .sd-result-value { font-size: 24px; }
  .sd-calc .sd-result-label { font-size: 10px; }
  .sd-calc .sd-bag-grid { grid-template-columns: 1fr 1fr; }
  .sd-calc .sd-bag-grid .sd-bag:nth-child(3) { grid-column: span 2; }
}
