/* Z-242 /cpa/: калькулятор сближения для экипажа, телефон первым. Light-страница (как /pantry/): шапка/тема — по tokens.css;
   само приложение (#cpa) — свои тёмные цвета (читаемо на палубе) и ночной красный режим (#cpa.night). Поля ≥ 18 px, тап-цели ≥ 44 px. */
:root{--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);--sa-r:env(safe-area-inset-right,0px)}
.page-cpa{font-variant-numeric:lining-nums tabular-nums;padding-bottom:calc(24px + var(--sa-b))}
.page-cpa [hidden]{display:none!important}
.page-cpa .bar{box-sizing:border-box;height:calc(var(--header-h) + var(--sa-t));padding-top:var(--sa-t);
  padding-left:max(12px,var(--sa-l));padding-right:max(12px,var(--sa-r))}
.page-cpa .wrap{max-width:860px;padding-left:max(var(--gutter),var(--sa-l));padding-right:max(var(--gutter),var(--sa-r))}
.theme-btn{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:999px;
  border:1.5px solid var(--ink);background:none;color:var(--ink);cursor:pointer;padding:0}
.theme-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}
[data-theme=light] .theme-btn svg{transform:rotate(180deg)}
@media (max-width:420px){.page-cpa .bar .ticket--mini{display:none}}
.nojs{color:var(--muted)}

.cpa-head{padding-top:18px;padding-bottom:8px}
.cpa-head h1{font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.05}

/* приложение */
.cpa{--bg:#0b1015;--card:#141b22;--line:#26313c;--fg:#e6edf3;--mute:#9aa7b4;--acc:#4ea1ff;--us:#4ea1ff;--tg:#ffb547;--tg2:#d78cff;--tg3:#5fd3c4;
  --red:#ff4d4f;--yel:#ffc53d;--grn:#3ccf7a;--grid:#1d2730;
  background:var(--bg);color:var(--fg);border-radius:16px;padding:12px;margin-bottom:24px;font:16px/1.35 var(--font-text,system-ui,sans-serif)}
.cpa.night{--bg:#000;--card:#0d0000;--line:#330000;--fg:#ff3b30;--mute:#c02a20;--acc:#ff3b30;--us:#ff3b30;--tg:#ff6a4d;--tg2:#d0342a;--tg3:#ff8f80;
  --red:#ff2a1a;--yel:#ff6a4d;--grn:#b32418;--grid:#1a0000}
.cpa *{box-sizing:border-box}
.cpa-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px}
.cpa-tt{font-size:20px;font-weight:700}
.cpa button{font:inherit;font-size:17px;min-height:44px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer}
.cpa .card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;margin:0 0 10px}
.cpa .card h2{font:700 17px/1.2 var(--font-text,system-ui,sans-serif);margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--fg)}
.cpa .dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.cpa .grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cpa label{display:block;font-size:14px;color:var(--mute)}
.cpa input,.cpa textarea{width:100%;font:inherit;font-size:20px;padding:9px 8px;margin-top:2px;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:9px}
.cpa input.bad{border-color:var(--red)}
.cpa input.nm{font-size:18px;width:9em;display:inline;padding:4px 6px}
.cpa textarea{font-size:18px;margin-top:0}
.cpa .hint{font-size:13px;color:var(--mute);margin-top:2px;min-height:15px}
.cpa .hint.out{font-size:15px;min-height:20px}
.cpa .own-hint{font-size:15px;color:var(--fg)}
.cpa small{font-size:14px;color:var(--mute)}
.cpa code{font-size:.92em}
.cpa .row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.cpa .rng{justify-content:space-between;font-size:14px;color:var(--mute);margin:0 0 6px}
.cpa .avg{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:16px;color:var(--fg)}
.cpa .avg input{width:24px;height:24px;margin:0}
.cpa .shot-btn{display:block;text-align:center;font-size:19px;font-weight:700;color:var(--bg);background:var(--acc);border-radius:12px;padding:16px;margin:4px 0 6px;cursor:pointer}
.cpa input[type=range]{padding:0;border:0;background:none;height:44px;accent-color:var(--acc)}
.cpa #ttl{font-size:18px;font-weight:700;margin:8px 0 2px}
.cpa .verdict{border-radius:14px;padding:12px;margin:0 0 10px;color:#000;font-weight:700}
.cpa .verdict .big{font-size:24px}
.cpa .verdict.red{background:var(--red)}.cpa .verdict.yel{background:var(--yel)}.cpa .verdict.grn{background:var(--grn)}
.cpa .verdict.na{background:var(--line);color:var(--fg)}
.cpa.night .verdict{color:#000}.cpa.night .verdict.na{color:var(--fg)}
.cpa .res{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:16px;font-weight:500;margin-top:6px}
.cpa .res b{font-weight:800}
.cpa svg.sch{width:100%;height:auto;display:block;background:var(--bg);border-radius:10px}
.cpa svg.sch text{fill:var(--mute);font-size:12px}
.cpa .foot-note{display:block}

/* пример по умолчанию и «Как пользоваться» (Z-242) */
.cpa .demo{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;background:var(--card);border:1px dashed var(--acc);border-radius:12px;padding:8px 10px;margin:0 0 10px}
.cpa .demo[hidden]{display:none}
.cpa .demo p{flex:1 1 240px;margin:0;font-size:15px;line-height:1.3;color:var(--fg)}
.cpa .demo button{flex:none;font-size:15px}
.cpa .how{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0 0 10px}
.cpa .how summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;font-weight:700;font-size:17px;list-style:none}
.cpa .how summary::-webkit-details-marker{display:none}
.cpa .how[open] summary{border-bottom:1px solid var(--line)}
.cpa .how ol{margin:8px 0 6px;padding:0 12px 0 34px;font-size:16px;line-height:1.35}
.cpa .how li{margin:0 0 6px}
.cpa .how-anim{display:block;width:100%;max-width:420px;height:auto;margin:6px auto 10px;padding:0 6px}
.how-anim .ph{fill:none;stroke:var(--mute);stroke-width:2}.how-anim .pb{fill:var(--mute)}
.how-anim .fb{fill:var(--bg);stroke:var(--line)}.how-anim .fv{fill:var(--fg)}
.how-anim .sh{fill:var(--acc)}.how-anim .pb2{fill:var(--bg)}
.how-anim .us{fill:var(--us)}.how-anim .tg{fill:var(--tg)}.how-anim .th{fill:var(--acc)}
.how-anim .ln{stroke:var(--fg);stroke-width:2}
.how-anim .cp{stroke:var(--red);stroke-width:3;stroke-dasharray:5 3}
.how-anim .crs{stroke:var(--mute);stroke-dasharray:3 4;opacity:.6}
.how-anim .trk{stroke:var(--line);stroke-width:3;stroke-linecap:round}
