.planner-v2-hero {
  position:relative;
  margin:18px 0 14px;
  padding:17px 22px 13px;
  overflow:hidden;
  border:1px solid rgba(96,165,250,.3);
  border-radius:20px;
  background:
    radial-gradient(circle at 88% 12%,rgba(56,189,248,.2),transparent 30%),
    linear-gradient(140deg,rgba(30,64,175,.34),rgba(8,47,73,.28) 48%,rgba(15,23,42,.82));
  box-shadow:0 20px 52px rgba(2,6,23,.2);
}
.planner-v2-hero::after { content:""; position:absolute; width:220px; height:220px; right:-100px; bottom:-165px; border:36px solid rgba(125,211,252,.06); border-radius:50%; pointer-events:none; }
.planner-v2-hero-copy { position:relative; z-index:1; max-width:none; display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:24px; }
.planner-v2-eyebrow { grid-column:1; display:inline-flex; align-items:center; gap:8px; margin-bottom:6px; color:#7dd3fc; font-size:9.5px; font-weight:850; letter-spacing:1.25px; text-transform:uppercase; }
.planner-v2-eyebrow::before { content:""; width:24px; height:2px; border-radius:99px; background:#38bdf8; }
.planner-v2-hero h1 { grid-column:1; margin:0; color:#fff; font-size:clamp(24px,2.7vw,32px); line-height:1.08; letter-spacing:-1px; text-align:left; }
.planner-v2-hero p { grid-column:1; max-width:660px; margin:7px 0 0; color:#aebfd2; font-size:12px; line-height:1.5; }
.planner-v2-hero-actions { grid-column:2; grid-row:1 / 4; align-self:center; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin:0; }
.planner-v2-button { min-height:39px; padding:8px 12px; border:1px solid rgba(125,211,252,.3); border-radius:10px; display:inline-flex; align-items:center; justify-content:center; gap:8px; background:rgba(15,23,42,.5); color:#dbeafe; font:800 10.5px Inter,sans-serif; text-decoration:none; cursor:pointer; }
.planner-v2-button:hover { border-color:#60a5fa; color:#fff; transform:translateY(-1px); }
.planner-v2-button.primary { border-color:#3b82f6; background:#2563eb; color:#fff; box-shadow:0 12px 30px rgba(37,99,235,.28); }
.planner-v2-journey { position:relative; z-index:1; margin-top:15px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.planner-v2-stage { min-width:0; padding:8px 10px; border:1px solid rgba(148,163,184,.15); border-radius:10px; display:flex; align-items:center; gap:8px; background:rgba(2,6,23,.26); color:#8fa2ba; text-decoration:none; }
.planner-v2-stage-number { width:25px; height:25px; flex:0 0 auto; border-radius:8px; display:grid; place-items:center; background:rgba(148,163,184,.12); color:#bfd0e4; font-size:10px; font-weight:900; }
.planner-v2-stage span:last-child { min-width:0; overflow:hidden; font-size:10.5px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.planner-v2-stage.is-complete { border-color:rgba(52,211,153,.26); color:#d1fae5; background:rgba(16,185,129,.07); }
.planner-v2-stage.is-complete .planner-v2-stage-number { background:rgba(16,185,129,.18); color:#86efac; }
.planner-v2-progress { position:relative; z-index:1; margin-top:9px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; color:#90a4bc; font-size:9.5px; font-weight:750; }
.planner-v2-progress-track { height:5px; overflow:hidden; border-radius:99px; background:rgba(148,163,184,.13); }
.planner-v2-progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2563eb,#38bdf8,#34d399); transition:width .25s ease; }
body:not(.dive-day-mode) > .ambient-glow + .wrap > h1,
body:not(.dive-day-mode) > .ambient-glow + .wrap > p.sub { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Keep strong focus feedback fully visible inside animated dive sections. */
.dive-content:not([style*="display:none"]) { overflow:visible; }
.dive-content .field-box input:focus-visible,
.planner-v2-tools input:focus-visible,
.planner-v2-tools select:focus-visible {
  outline:0;
  border-color:#60a5fa;
  box-shadow:inset 0 0 0 2px rgba(96,165,250,.92),0 0 0 1px rgba(96,165,250,.18);
}
.dive-content .field-box:focus-within { border-radius:11px; filter:drop-shadow(0 5px 14px rgba(37,99,235,.16)); }

#main_grid { grid-template-columns:minmax(0,1.24fr) minmax(330px,.76fr); gap:20px; }
#params_card,#results_card { border-color:rgba(148,163,184,.17); background:linear-gradient(160deg,rgba(30,41,59,.78),rgba(19,30,49,.64)); }
#params_card > .section-title { min-height:42px; margin:-5px 0 14px; padding-bottom:11px; border-bottom:1px solid rgba(148,163,184,.12); }
#params_card > .section-title > span:first-child { color:#7dd3fc; font-size:11px; letter-spacing:1.1px; text-transform:uppercase; }
#params_card .step { border-color:rgba(148,163,184,.14); background:linear-gradient(160deg,rgba(255,255,255,.035),rgba(15,23,42,.16)); }
#params_card .step-header > span:first-child { color:#dbeafe; font-size:11px; letter-spacing:.8px; }
#results_card { position:sticky; top:82px; }
.planner-v2-summary { margin:-2px 0 18px; padding:17px; border:1px solid rgba(96,165,250,.22); border-radius:16px; background:linear-gradient(140deg,rgba(37,99,235,.14),rgba(14,165,233,.06)); }
.planner-v2-summary-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.planner-v2-summary-head strong { color:#fff; font-size:15px; }
.planner-v2-summary-head span { padding:5px 8px; border-radius:99px; background:rgba(251,191,36,.1); color:#fde68a; font-size:9px; font-weight:850; }
.planner-v2-summary-head span.is-ready { background:rgba(16,185,129,.12); color:#a7f3d0; }
.planner-v2-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.planner-v2-summary-grid div { padding:10px; border:1px solid rgba(148,163,184,.12); border-radius:10px; background:rgba(2,6,23,.2); }
.planner-v2-summary-grid small,.planner-v2-gas-stat small { display:block; color:#8194ab; font-size:9px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; }
.planner-v2-summary-grid b,.planner-v2-gas-stat b { display:block; margin-top:3px; overflow:hidden; color:#f1f5f9; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }

.planner-v2-tools { margin-top:14px; display:grid; gap:14px; }
.planner-v2-tools-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:6px 2px 0; }
.planner-v2-tools-heading span { color:#7dd3fc; font-size:10px; font-weight:850; letter-spacing:1.1px; text-transform:uppercase; }
.planner-v2-tools-heading p { margin:4px 0 0; color:#8195ad; font-size:11px; }
.planner-v2-tool-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.planner-v2-tool { min-width:0; padding:17px; border:1px solid rgba(148,163,184,.14); border-radius:15px; background:rgba(15,23,42,.34); }
.planner-v2-tool-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.planner-v2-tool h3 { margin:0; color:#f8fafc; font-size:15px; }
.planner-v2-tool-head p { margin:4px 0 0; color:#7f93ab; font-size:10.5px; line-height:1.45; }
.planner-v2-tool-badge { padding:5px 7px; border-radius:99px; background:rgba(59,130,246,.12); color:#93c5fd; font-size:8px; font-weight:850; text-transform:uppercase; white-space:nowrap; }
.planner-v2-tool-controls { display:flex; align-items:center; gap:6px; }
.planner-v2-tool-toggle { display:none; min-height:34px; padding:7px 10px; border:1px solid rgba(96,165,250,.26); border-radius:8px; background:rgba(37,99,235,.08); color:#bfdbfe; font:800 10px Inter,sans-serif; cursor:pointer; }
.planner-v2-fields { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.planner-v2-field { display:grid; gap:5px; margin:0; color:#aebfd2; font-size:9.5px; font-weight:800; }
.planner-v2-field input,.planner-v2-field select { min-width:0; min-height:40px; padding:9px 10px; border:1px solid rgba(148,163,184,.2); border-radius:9px; background:#0d1728; color:#f8fafc; font-size:12px; }
.planner-v2-gas-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.planner-v2-gas-stat { padding:10px; border:1px solid rgba(148,163,184,.12); border-radius:10px; background:rgba(2,6,23,.2); }
.planner-v2-gas-status { grid-column:1/-1; margin:0; padding:9px 10px; border-radius:9px; background:rgba(59,130,246,.08); color:#bfdbfe; font-size:10px; line-height:1.45; }
.planner-v2-gas-status.warn { background:rgba(245,158,11,.09); color:#fde68a; }
.planner-v2-tool-note { margin:10px 0 0; color:#70839a; font-size:9.5px; line-height:1.5; }
.planner-v2-gear { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.planner-v2-gear-item { min-height:38px; padding:8px 9px; border:1px solid rgba(148,163,184,.13); border-radius:9px; display:flex; align-items:center; gap:8px; background:rgba(2,6,23,.18); color:#cbd5e1; font-size:10.5px; font-weight:700; cursor:pointer; }
.planner-v2-gear-item:has(input:checked) { border-color:rgba(52,211,153,.26); background:rgba(16,185,129,.07); color:#d1fae5; }
.planner-v2-gear-item input { appearance:none; -webkit-appearance:none; width:18px; min-width:18px; height:18px; min-height:18px; margin:0; padding:0; flex:0 0 18px; border:2px solid #64748b; border-radius:50%; display:grid; place-items:center; background:#0d1728; box-shadow:inset 0 0 0 3px #0d1728; cursor:pointer; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.planner-v2-gear-item input:checked { border-color:#34d399; background:radial-gradient(circle,#ecfdf5 0 3px,#10b981 3.5px); box-shadow:0 0 0 3px rgba(52,211,153,.12); }
.planner-v2-gear-item input:focus-visible { outline:2px solid #93c5fd; outline-offset:2px; box-shadow:0 0 0 3px rgba(96,165,250,.2); }
.planner-v2-gear-add { display:grid; grid-template-columns:1fr auto; gap:7px; margin-top:10px; }
.planner-v2-gear-add input { min-width:0; min-height:39px; padding:9px 10px; border:1px solid rgba(148,163,184,.2); border-radius:9px; background:#0d1728; color:#f8fafc; font-size:12px; }
.planner-v2-gear-add button,.planner-v2-defaults { min-height:39px; padding:8px 10px; border:1px solid rgba(96,165,250,.25); border-radius:9px; background:rgba(37,99,235,.08); color:#bfdbfe; font:800 10px Inter,sans-serif; cursor:pointer; }
.planner-v2-defaults { margin-top:8px; width:100%; }

.planner-v2-dock { position:sticky; z-index:45; bottom:12px; margin:0 auto 24px; width:min(720px,calc(100% - 20px)); padding:8px; border:1px solid rgba(148,163,184,.22); border-radius:15px; display:flex; align-items:center; justify-content:center; gap:7px; background:rgba(15,23,42,.92); box-shadow:0 18px 50px rgba(2,6,23,.48); backdrop-filter:blur(18px); }
.planner-v2-dock button,.planner-v2-dock a { min-height:40px; padding:9px 13px; border:1px solid rgba(148,163,184,.2); border-radius:9px; display:inline-flex; align-items:center; justify-content:center; background:transparent; color:#dbeafe; font:800 10.5px Inter,sans-serif; text-decoration:none; cursor:pointer; }
.planner-v2-dock .primary { border-color:#3b82f6; background:#2563eb; color:#fff; }
.planner-v2-dock [aria-disabled="true"] { opacity:.48; cursor:not-allowed; }
.planner-v2-dock-status { min-width:0; margin-right:auto; padding-left:6px; color:#91a4bc; font-size:9.5px; }

@media(max-width:960px) {
  #main_grid { grid-template-columns:1fr; }
  #results_card { position:relative; top:auto; }
  .planner-v2-tool-grid { grid-template-columns:1fr; }
}
@media(max-width:700px) {
  .planner-v2-hero { margin-top:12px; padding:16px; border-radius:16px; }
  .planner-v2-hero-copy { grid-template-columns:1fr; }
  .planner-v2-hero h1 { font-size:26px; letter-spacing:-.8px; }
  .planner-v2-hero p { display:none; }
  .planner-v2-hero-actions { grid-column:1; grid-row:auto; justify-content:flex-start; margin-top:10px; }
  .planner-v2-button { min-height:39px; padding:8px 11px; font-size:10.5px; }
  .planner-v2-journey { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-top:12px; }
  .planner-v2-stage { padding:7px 5px; gap:5px; border-radius:9px; }
  .planner-v2-stage-number { width:20px; height:20px; border-radius:6px; font-size:8px; }
  .planner-v2-stage span:last-child { font-size:8px; }
  .planner-v2-tool-grid { grid-template-columns:1fr; }
  .planner-v2-tool { padding:14px; }
  .planner-v2-tool-head { align-items:center; margin-bottom:0; }
  .planner-v2-tool-head p { max-width:230px; }
  .planner-v2-tool-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .planner-v2-tool-body { padding-top:13px; }
  .planner-v2-tool.is-collapsed .planner-v2-tool-body { display:none; }
  .planner-v2-tool.is-collapsed .planner-v2-tool-head p { margin-bottom:0; }
  .planner-v2-fields,.planner-v2-gear { grid-template-columns:1fr 1fr; }
  .planner-v2-dock { position:static; width:100%; margin:0 0 18px; justify-content:stretch; overflow-x:auto; }
  .planner-v2-dock-status { display:none; }
  .planner-v2-dock button,.planner-v2-dock a { flex:1 0 auto; }
}
@media(max-width:470px) {
  .planner-v2-hero { padding:14px; }
  .planner-v2-hero p { font-size:11.5px; }
  .planner-v2-gas-results { grid-template-columns:1fr 1fr; }
  .planner-v2-tools-heading { align-items:flex-start; flex-direction:column; }
}
@media(max-width:350px) { .planner-v2-fields,.planner-v2-gear { grid-template-columns:1fr; } .planner-v2-stage span:last-child{display:none}.planner-v2-stage{justify-content:center} }

/* Readability floor for planning decisions and controls. */
.planner-v2-eyebrow,
.planner-v2-stage-number,
.planner-v2-stage span:last-child,
.planner-v2-progress,
#params_card > .section-title > span:first-child,
#params_card .step-header > span:first-child,
.planner-v2-summary-head span,
.planner-v2-summary-grid small,
.planner-v2-gas-stat small,
.planner-v2-tools-heading span,
.planner-v2-field,
.planner-v2-gas-status,
.planner-v2-tool-note,
.planner-v2-gear-item,
.planner-v2-dock-status,
.help,
.step .label,
.dive-name-input,
.dive-name-text,
.safety-title,
.safety-text,
.ss-text,
.saved-plan-meta,
.badge,
.prev-pill { font-size:12px !important; }
.planner-v2-hero p,
.planner-v2-tools-heading p,
.planner-v2-tool-head p { font-size:13px !important; }
.planner-v2-button,
.planner-v2-tool-toggle,
.planner-v2-gear-add button,
.planner-v2-defaults,
.planner-v2-dock button,
.planner-v2-dock a,
.btn-remove-dive { font-size:12px !important; }
.planner-v2-tool-badge,
.tip,
.ss-title { font-size:12px !important; }
.dtable th,
.dtable td,
.dtable th .sub-unit,
.dtable td .c-top,
.dtable td .c-bot { font-size:12px !important; }

@media(max-width:700px) {
  .planner-v2-journey { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .planner-v2-stage { padding:9px 5px; justify-content:center; }
  .planner-v2-stage-number { display:none; }
}

/* Quick Plan: one core workflow with optional tools and one action hierarchy. */
.planner-quick-header { position:relative; z-index:50; margin:16px 0 14px; padding:17px 0 18px; border:0; border-radius:18px; display:flex; align-items:center; justify-content:space-between; gap:22px; background:transparent; box-shadow:none; }
.planner-quick-copy { min-width:0; display:grid; }
.planner-quick-copy h1 { margin:3px 0 5px; color:#fff; font-size:clamp(25px,3vw,32px); line-height:1.08; letter-spacing:-.8px; text-align:left; }
.planner-quick-copy p { max-width:620px; margin:0; color:#aebfd2; font-size:13px; line-height:1.45; }
.planner-v2-eyebrow { margin:0; color:#7dd3fc; font-size:10px !important; letter-spacing:1.1px; }
.planner-quick-status { display:block; margin-top:8px; color:#8195ad; font-size:11px; font-weight:700; }
.planner-quick-actions { min-width:0; flex:0 1 auto; padding:0; overflow-x:auto; display:flex; align-items:center; gap:5px; border:0; border-radius:12px; background:transparent; scrollbar-width:none; }
.planner-quick-actions::-webkit-scrollbar { display:none; }
.planner-v2-button { min-height:38px; padding:8px 11px; border:1px solid transparent; border-radius:10px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; background:transparent; color:#b8c8da; font:800 11px Inter,sans-serif; text-decoration:none; cursor:pointer; }
.planner-v2-button:hover,.planner-v2-button:focus-visible { border-color:rgba(125,211,252,.24); background:rgba(96,165,250,.1); color:#fff; outline:none; }
.planner-v2-button.primary { border-color:#3b82f6; background:#2563eb; color:#fff; box-shadow:0 8px 20px rgba(37,99,235,.24); }
.planner-v2-button.danger { color:#fda4af; }
.planner-v2-button.danger:hover,.planner-v2-button.danger:focus-visible { border-color:rgba(248,113,113,.25); background:rgba(248,113,113,.09); }
.planner-v2-button:disabled { opacity:.42; cursor:not-allowed; }
.planner-v2-button[hidden] { display:none; }

#params_card > .section-title { display:none; }
#main_grid { grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr); gap:16px; align-items:start; }
#main_grid.table-mode { width:100%; grid-template-columns:minmax(0,1fr); }
#main_grid.table-mode #tables_card { width:100%; max-width:none; min-width:0; grid-column:1 / -1; }
#main_grid.table-mode #tables_card .tbl-scroll { max-width:100%; }
#params_card,#results_card { padding:18px; border-radius:17px; }
#params_card .steps { gap:0; }
#params_card .step { padding:0; border:0; border-radius:0; background:transparent; }
#planner_stage_setup { margin-bottom:17px; padding-bottom:17px !important; border-bottom:1px solid rgba(148,163,184,.14) !important; }
#params_card .step-header { min-height:32px; margin:0 0 10px; padding:0; }
#params_card .step-header > span:first-child { color:#dbeafe; font-size:11px !important; letter-spacing:.8px; }
#planner_stage_setup #config_content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 13px; }
#planner_stage_setup #config_content > .row { display:contents; margin:0; }
#planner_stage_setup .help { display:none; }
#planner_stage_setup label,#planner_stage_setup .control-label { margin-bottom:5px; font-size:11px; }
#planner_stage_setup input,#planner_stage_setup select { min-height:40px; font-size:12px; }
#planner_stage_setup .seg { min-height:40px; padding-inline:7px; font-size:11px; }
#step_dives .dive-controls { margin-top:10px; }
#step_dives .add-dive-btn { min-height:39px; font-size:11px; }
#results_card > .section-title { min-height:32px; margin:0 0 10px; color:#7dd3fc; font-size:11px; }

.planner-v2-tools { margin-top:17px; display:block; }
.planner-v2-tool { padding:0; overflow:hidden; border:0; border-radius:13px; background:rgba(15,23,42,.38); }
.planner-v2-tool:hover { background:rgba(15,23,42,.5); }
.planner-v2-tool-head { min-height:58px; margin:0 !important; padding:12px 13px; display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; cursor:pointer; }
.planner-v2-tool-head::-webkit-details-marker { display:none; }
.planner-v2-tool-head > span:first-child { min-width:0; display:grid; gap:3px; }
.planner-v2-tool-head strong { color:#e2e8f0; font-size:12px; }
.planner-v2-tool-head small { overflow:hidden; color:#8195ad; font-size:11px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.planner-v2-tool-head::after { content:"+"; color:#93c5fd; font-size:17px; font-weight:500; }
.planner-v2-tool[open] .planner-v2-tool-head { border-bottom:1px solid rgba(148,163,184,.13); }
.planner-v2-tool[open] .planner-v2-tool-head::after { content:"−"; }
.planner-v2-tool-badge { margin-left:auto; padding:4px 6px; font-size:10px !important; }
.planner-v2-tool-body { padding:13px; }
.planner-v2-field { font-size:11px !important; }
.planner-v2-summary-grid small,.planner-v2-gas-stat small { font-size:10px !important; }
.planner-v2-gas-status,.planner-v2-tool-note { font-size:11px !important; }
.dive-content .help,.saved-plan-meta,.ss-title,.safety-title { font-size:11px !important; }
.prev-pill,.badge,.tip { font-size:10px !important; }
.dtable th,.dtable td,.dtable th .sub-unit,.dtable td .c-top,.dtable td .c-bot { font-size:11px !important; }

@media(max-width:960px){ #main_grid{grid-template-columns:1fr} #results_card{position:relative;top:auto} }
@media(max-width:700px){
  .planner-quick-header { align-items:flex-start; flex-direction:column; gap:14px; margin-top:10px; padding:15px 0 16px; }
  .planner-quick-copy h1 { font-size:27px; }
  .planner-quick-copy p { font-size:12px; }
  .planner-quick-actions { width:100%; flex-wrap:wrap; overflow:visible; }
  .planner-v2-button:disabled { display:none; }
  #params_card,#results_card { padding:15px; }
  #planner_stage_setup #config_content { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .planner-v2-tool-head { min-height:56px; }
}
@media(max-width:360px){ #planner_stage_setup #config_content{grid-template-columns:1fr} }
