/* =====================================================================
   Calculateurs de plongée — styles (limités à .pl / .pl-*), variables --ot-*
   ===================================================================== */
.pl { --pl-accent: #0284c7; --pl-ok: #15803d; --pl-warn: #b45309; --pl-danger: #c81e1e; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pl { --pl-accent: #38bdf8; --pl-ok: #4ade80; --pl-warn: #fbbf24; --pl-danger: #f87171; }
}
:root[data-theme="dark"] .pl { --pl-accent: #38bdf8; --pl-ok: #4ade80; --pl-warn: #fbbf24; --pl-danger: #f87171; }

.pl-head h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); }
.pl-warning {
  display: flex; gap: 10px; align-items: flex-start; margin: 0 0 var(--ot-space);
  padding: 12px 16px; border-radius: var(--ot-radius-s); font-size: .92rem;
  border: 1px solid color-mix(in srgb, var(--pl-warn) 45%, transparent);
  background: color-mix(in srgb, var(--pl-warn) 10%, var(--ot-surface));
}
.pl-warning p { margin: 0; }

/* Réglages */
.pl-settings { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; margin-bottom: var(--ot-space); }
.pl-seg { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pl-seg > span { font-size: .85rem; font-weight: 600; color: var(--ot-text-soft); }

/* Cartes */
.pl-grid { display: grid; gap: var(--ot-space); align-items: start; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.pl-card { display: flex; flex-direction: column; gap: 12px; }
.pl-card h2 { font-size: 1.1rem; margin: 0; display: flex; align-items: center; gap: 8px; }
.pl-card h2 small { margin-left: auto; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px;
  color: var(--pl-accent); background: color-mix(in srgb, var(--pl-accent) 12%, transparent); }
.pl-card > p { margin: 0; font-size: .85rem; color: var(--ot-text-soft); }
.pl-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pl-fields .pl-wide { grid-column: 1 / -1; }
.pl-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pl-field label { font-size: .82rem; font-weight: 600; }
.pl-field .ot-input, .pl-field .ot-select { padding: 8px 10px; min-height: 40px; width: 100%; }
.pl-field input[type=range] { width: 100%; accent-color: var(--pl-accent); }
.pl-inline { display: flex; gap: 6px; flex-wrap: wrap; }
.pl-mini { min-height: 30px; padding: 3px 10px; font-size: .8rem; }

/* Résultats */
.pl-result {
  margin-top: auto; padding: 12px 14px; border-radius: var(--ot-radius-s);
  background: var(--ot-surface-2); border-left: 4px solid var(--pl-accent);
}
.pl-result__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ot-text-soft); font-weight: 700; }
.pl-result__value { font-size: 1.7rem; font-weight: 800; color: var(--pl-accent); line-height: 1.25; }
.pl-result__notes { font-size: .82rem; color: var(--ot-text-soft); }
.pl-result__notes p { margin: 2px 0 0; }
.pl-result[data-level="ok"] { border-left-color: var(--pl-ok); }
.pl-result[data-level="ok"] .pl-result__value { color: var(--pl-ok); }
.pl-result[data-level="warn"] { border-left-color: var(--pl-warn); }
.pl-result[data-level="warn"] .pl-result__value, .pl-result[data-level="warn"] .pl-result__notes p:first-child { color: var(--pl-warn); font-weight: 700; }
.pl-result[data-level="danger"] { border-left-color: var(--pl-danger); }
.pl-result[data-level="danger"] .pl-result__value, .pl-result[data-level="danger"] .pl-result__notes p:first-child { color: var(--pl-danger); font-weight: 700; }
.pl-status { min-height: 1.2em; margin: 0; font-size: .8rem; color: var(--pl-ok); font-weight: 600; }

.pl-sub { border-top: 1px solid var(--ot-border); padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.pl-sub h3 { margin: 0; font-size: .95rem; }

/* Aide */
.pl-help { margin-top: calc(var(--ot-space) * 2.5); }
.pl-help code { font-family: var(--ot-mono); font-size: .88em; background: var(--ot-surface-2); padding: 1px 5px; border-radius: 4px; }
.pl-help table { border-collapse: collapse; width: 100%; font-size: .9rem; margin: 0 0 1em; }
.pl-help th, .pl-help td { border-bottom: 1px solid var(--ot-border); padding: 6px 8px; text-align: left; vertical-align: top; }
.pl-help .pl-scroll { overflow-x: auto; }

/* Tables MN90 */
.pl-card--full { grid-column: 1 / -1; }
.pl-mn-cols { display: grid; gap: var(--ot-space); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); align-items: start; }
.pl-mn-cols > div { display: flex; flex-direction: column; gap: 10px; }
.pl-mn-cols h3 { margin: 0; font-size: .95rem; }
.pl-check { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9rem; cursor: pointer; }
.pl-check input { width: 18px; height: 18px; accent-color: var(--pl-accent); }
.pl-mn-table details { font-size: .85rem; }
.pl-mn-table summary { cursor: pointer; color: var(--pl-accent); font-weight: 600; }
.pl-mn-table table { border-collapse: collapse; margin-top: 8px; font-variant-numeric: tabular-nums; }
.pl-mn-table th, .pl-mn-table td { border-bottom: 1px solid var(--ot-border); padding: 3px 10px; text-align: right; white-space: nowrap; }
.pl-mn-table th:first-child, .pl-mn-table td:first-child { text-align: left; }
.pl-mn-table .pl-row-on td { background: color-mix(in srgb, var(--pl-accent) 18%, transparent); font-weight: 800; }
.pl-scroll { overflow-x: auto; }
.pl-source { font-size: .78rem; color: var(--ot-text-soft); margin: 0; }
.pl-stack { display: flex; flex-direction: column; gap: 10px; }
.pl-label { font-size: .82rem; font-weight: 600; }
