/* ---------- Tools: dark, same family as Research/Store ---------- */
.dt_wrap { background:#0d0d12; padding:34px 22px 60px; }
.dt_inner { max-width:660px; margin:0 auto; }
.dt_kicker { margin:0 0 18px; font-size:14px; letter-spacing:0.05em; }
.dt_kicker a, .dt_kicker a:link, .dt_kicker a:visited { color:#888; text-decoration:none; }
.dt_kicker a:hover { color:#c7c7d1; }
.dt_kicker span { color:#c7c7d1; }
.dt_title { margin:0 0 12px; color:#fff; font-size:clamp(30px,4.6vw,40px); font-weight:700; line-height:1.1; }
.dt_lede { margin:0 0 30px; color:#c7c7d1; font-size:17px; line-height:1.65; }
.dt_lede a, .dt_lede a:link, .dt_lede a:visited { color:#c7c7d1; text-decoration:underline; }
.dt_lede a:hover { color:#fff; }

/* live-weather card */
.dt_live { background:#15151c; border:1px solid #23232e; border-radius:12px; padding:18px 20px; margin:0 0 30px; }
.dt_live .dt_row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.dt_live input[type=text] { flex:1; min-width:130px; font-size:16px; padding:10px 12px;
    background:#0d0d12; border:1px solid #2c2c3a; border-radius:8px; color:#eee; text-transform:uppercase; }
.dt_live input[type=text]:focus { outline:none; border-color:#DD1122; }
.dt_btn { font-size:15px; font-weight:600; padding:11px 18px; border:none; border-radius:8px;
    background:#DD1122; color:#fff; cursor:pointer; }
.dt_btn:hover { background:#f2273a; }
.dt_btn2 { background:transparent; border:1px solid #2c2c3a; color:#9a9aa6; }
.dt_btn2:hover { background:transparent; color:#fff; border-color:#9a9aa6; }
.dt_status { font-size:13.5px; color:#9a9aa6; margin-top:10px; line-height:1.5; min-height:1.2em; }
.dt_status strong { color:#c7c7d1; }
.dt_raw { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px; color:#6d6d7c;
    margin-top:6px; word-break:break-word; }

/* sliders */
.dt_ctrl { margin:0 0 22px; }
.dt_ctrl label { display:flex; justify-content:space-between; font-size:16px; font-weight:600;
    color:#c7c7d1; margin:0 0 6px; }
.dt_ctrl .dt_val { color:#fff; font-variant-numeric:tabular-nums; }
.dt_ctrl input[type=range] { width:100%; accent-color:#DD1122; height:6px; }
.dt_ctrl input[type=range]:disabled { opacity:0.5; cursor:default; }

/* readout */
.dt_readout { background:#15151c; border:1px solid #23232e; border-radius:12px;
    padding:26px 24px; margin:32px 0 22px; text-align:center; }
.dt_readout .dt_da { color:#9a9aa6; font-size:14px; letter-spacing:0.06em; text-transform:uppercase; }
.dt_readout .dt_da b { display:block; color:#fff; font-size:clamp(40px,9vw,54px); font-weight:700;
    letter-spacing:0; margin:8px 0 4px; font-variant-numeric:tabular-nums; }
.dt_canopy { color:#DD8891; font-size:17px; margin-top:14px; line-height:1.5; }
.dt_canopy b { color:#fff; }

/* intermediate math */
.dt_math { border-top:1px solid #23232e; margin-top:26px; padding-top:16px;
    color:#9a9aa6; font-size:15px; line-height:1.9; }
.dt_math .dt_row { display:flex; justify-content:space-between; }
.dt_math .dt_row span:last-child { color:#fff; font-weight:600; font-variant-numeric:tabular-nums; }

/* share */
.dt_share { margin:20px 0 0; text-align:center; }
.dt_sharebtn { font-size:14px; padding:9px 16px; border:1px solid #2c2c3a; border-radius:8px;
    background:transparent; color:#9a9aa6; cursor:pointer; }
.dt_sharebtn:hover { color:#fff; border-color:#9a9aa6; }

/* card headings (used by explorer + comparison) */
.dt_aptname { color:#fff; font-size:22px; font-weight:700; margin:0 0 2px; }
.dt_aptsub { color:#9a9aa6; font-size:15px; margin:0 0 16px; }
.dt_snapshot { color:#6d6d7c; font-size:12.5px; margin-top:14px; }

/* density-altitude scale legend: -3,000 (deep green) to 10,000 (near-black
   red); 0 lands at 23%, full red (5,000, the high-DA line) at 61.5% */
.dt_scale { margin:16px 0 2px; }
.dt_scale i { display:block; height:8px; border-radius:4px; margin:0;
  background:linear-gradient(90deg,
    hsl(130,72%,24%) 0%, hsl(130,72%,42%) 23%,
    hsl(70,72%,39%) 41%, hsl(30,72%,37%) 52%,
    hsl(0,72%,36%) 61.5%, hsl(355,72%,10%) 100%); }
.dt_scale div { position:relative; height:15px; margin:3px 0 0; }
.dt_scale span { position:absolute; margin:0; transform:translateX(-50%);
  color:#6d6d7c; font-size:10.5px; white-space:nowrap; }
.dt_scale span:first-child { transform:none; }
.dt_scale span:last-child { transform:translateX(-100%); }

/* small ghost buttons (group editor, column chips) */
.dt_gbtn { font-size:14px; padding:7px 12px; border:1px solid #2c2c3a; border-radius:8px;
  background:transparent; color:#9a9aa6; cursor:pointer; margin:0; }
.dt_gbtn:hover { color:#fff; border-color:#9a9aa6; }

/* section group labels */
.dt_group { margin:30px 0 14px; color:#9a9aa6; font-size:13px; font-weight:600;
    letter-spacing:0.07em; text-transform:uppercase; }

/* how it works + disclaimer */
.dt_how { margin:40px 0 0; color:#9a9aa6; font-size:15px; line-height:1.7; }
.dt_how a, .dt_how a:link, .dt_how a:visited { color:#c7c7d1; text-decoration:underline; }
.dt_how a:hover { color:#fff; }
.dt_note { margin:30px 0 0; padding-top:22px; border-top:1px solid #23232e;
    color:#9a9aa6; font-size:14px; line-height:1.7; }
.dt_note a, .dt_note a:link, .dt_note a:visited { color:#9a9aa6; text-decoration:underline; }
.dt_note a:hover { color:#c7c7d1; }

/* dossier card: range strips vs the famous 36 (airport explorer) */
.dt_dossrow { display:grid; grid-template-columns:minmax(110px,170px) 1fr minmax(72px,auto);
  gap:14px; align-items:center; padding:8px 0; border-bottom:1px solid #23232e; margin:0; }
.dt_dossrow:last-child { border-bottom:none; }
.dt_dossrow > span:first-child { color:#9a9aa8; font-size:13px; margin:0; }
.dt_dossrow > span:last-child { text-align:right; font-size:13px; font-weight:700; margin:0; }
.dt_dosstrip { position:relative; display:block; height:6px; background:#23232e;
  border-radius:3px; margin:0; }
.dt_dossdot { position:absolute; top:50%; width:13px; height:13px; border-radius:50%;
  transform:translate(-50%,-50%); margin:0; border:2px solid #15151d; box-sizing:border-box; }
