/*! © 2026 Noxx Labs. All rights reserved. Noxx™ and Noxx Labs™ are trademarks of Noxx Labs. Proprietary: no licence is granted to copy, modify, host or redistribute any part of this code. noxxreplays.co.uk · build 6.3.0-5243ab1 · c2e4060350 */

#focusPlanPanel:empty { display: none; }
.fp { margin: 0 0 1.6rem; }
.fp-head h2 { font-size: 1.45rem; line-height: 1.2; margin: 0.15rem 0 0.35rem; color: var(--text); }
.fp-prog .fp-head h2 { font-size: 1.15rem; }
.fp-k { font-size: 0.86rem; color: var(--text3); margin: 0; }
.fp-goal { font-size: 0.92rem; color: var(--text2); margin: 0 0 0.5rem; line-height: 1.45; }
.fp-goal b { color: var(--text); font-variant-numeric: tabular-nums; }
.fp-row { display: flex; align-items: center; gap: 0.6rem; font-size: 0.86rem; color: var(--text2); margin: 0.2rem 0 0.6rem; }
.fp-pips { display: inline-flex; gap: 4px; }
.fp-pips i { width: 18px; height: 6px; border-radius: 3px; background: var(--border2); }
.fp-pips i.on { background: var(--accent); }
.fp-cue { font-size: 0.9rem; color: var(--text); background: color-mix(in srgb, var(--accent) 8%, transparent); border-radius: 8px; padding: 0.5rem 0.7rem; margin: 0.4rem 0 1rem; }
.fp-cue span { display: block; font-size: 0.78rem; color: var(--text3); margin-bottom: 0.1rem; }
.fp-week { margin: 0 0 1.1rem; }
.fp-wk-h { display: flex; justify-content: space-between; gap: 0.6rem; flex-wrap: wrap; font-size: 0.86rem; color: var(--text3); margin-bottom: 0.45rem; }
.fp-wk-h b { color: var(--text); font-variant-numeric: tabular-nums; }
.fp-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.fp-day { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; padding: 0.45rem 0.2rem 0.55rem; border-radius: 8px; background: color-mix(in srgb, var(--text) 3%, transparent); min-height: 3.6rem; }
.fp-day.today { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent); }
.fp-day.later { opacity: 0.45; }
.fp-dn { font-size: 0.74rem; color: var(--text3); }
.fp-day.today .fp-dn { color: var(--text); font-weight: 600; }
.fp-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; max-width: 100%; }
.fp-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--border2); }
.fp-dot.hit { background: var(--accent); }
.fp-dot.miss { background: transparent; box-shadow: inset 0 0 0 2px var(--amber); }
.fp-dot.done { background: var(--green); }
.fp-dot.other, .fp-dot.none { background: var(--text3); opacity: 0.55; }
.fp-dot.empty { background: none; box-shadow: inset 0 0 0 1px var(--border2); opacity: 0.6; }
.fp-legend { display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; font-size: 0.76rem; color: var(--text3); margin-top: 0.45rem; }
.fp-legend span { display: inline-flex; align-items: center; gap: 0.3rem; }
.fp-legend .fp-dot { width: 8px; height: 8px; }
.fp-today { border-top: 1px solid var(--border); padding-top: 0.9rem; margin-bottom: 1rem; }
.fp-td-h { display: flex; justify-content: space-between; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.fp-td-h b { font-size: 1.02rem; color: var(--text); }
.fp-ok { font-size: 0.82rem; color: var(--text3); transition: color 200ms ease; }
.fp-today.all .fp-ok { color: var(--accent); font-weight: 600; }
.fp-lvl { font-size: 0.84rem; color: var(--text2); margin: 0.2rem 0 0.6rem; }
.fp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.fp-it label, .fp-it.games { display: grid; grid-template-columns: 1.3rem 3.6rem 1fr; gap: 0.55rem; align-items: start; padding: 0.55rem 0.4rem; border-radius: 8px; font-size: 0.9rem; line-height: 1.45; color: var(--text); cursor: pointer; }
.fp-it.games { cursor: default; color: var(--text2); }
@media (hover: hover) and (pointer: fine) { .fp-it label:hover { background: color-mix(in srgb, var(--text) 4%, transparent); } }
.fp-it input { width: 1.05rem; height: 1.05rem; margin: 0.15rem 0 0; accent-color: var(--accent); cursor: pointer; transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1); }
.fp-it input:active { transform: scale(0.9); }
.fp-it input:checked ~ span:last-child { color: var(--text3); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--text3) 60%, transparent); }
.fp-m { font: 600 0.78rem/1.8 var(--mono, monospace); color: var(--text3); font-variant-numeric: tabular-nums; }
.fp-w { display: block; font-size: 0.76rem; color: var(--text3); }
.fp-next { font-size: 0.88rem; color: var(--text2); margin: 0 0 0.8rem; line-height: 1.5; }
.fp-next span { font-size: 0.78rem; color: var(--text3); margin-right: 0.45rem; }
.fp-next b { color: var(--text); }
.fp-fixed { font-size: 0.86rem; color: var(--text2); margin-bottom: 0.8rem; }
.fp-fixed summary { cursor: pointer; color: var(--text2); }
.fp-fixed ul { list-style: none; margin: 0.5rem 0 0; padding: 0; }
.fp-fixed li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.3rem 0; border-bottom: 1px solid var(--border); }
.fp-fixed li b { color: var(--text); font-weight: 500; }
.fp-fixed li b::before { content: '✓ '; color: var(--green); }
.fp-fixed li span { color: var(--text3); white-space: nowrap; }
.fp-foot, .fp-wait { font-size: 0.8rem; color: var(--text3); margin: 0.4rem 0 1.2rem; line-height: 1.5; }
.fp-wait { font-size: 0.9rem; color: var(--text2); }
.fp-go { margin: 0.2rem 0 0.4rem; }
.fp-cele { display: flex; gap: 0.8rem; align-items: flex-start; background: color-mix(in srgb, var(--accent) 11%, transparent); border-radius: 12px; padding: 0.85rem 1rem; margin: 0 0 1.1rem;
  animation: fp-in 320ms cubic-bezier(0.23, 1, 0.32, 1) both; }
.fp-cele b { color: var(--text); }
.fp-cele p { margin: 0.2rem 0 0; font-size: 0.88rem; color: var(--text2); line-height: 1.45; }
.fp-check { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #111;
  animation: fp-pop 420ms cubic-bezier(0.34, 1.4, 0.64, 1) 120ms both; }
.fp-check path { stroke-dasharray: 24; stroke-dashoffset: 24; animation: fp-draw 360ms cubic-bezier(0.23, 1, 0.32, 1) 320ms forwards; }
@keyframes fp-in { from { opacity: 0; transform: translateY(6px); } }
@keyframes fp-pop { from { opacity: 0; transform: scale(0.6); } }
@keyframes fp-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .fp-cele { animation: fp-fade 200ms ease both; }
  .fp-check { animation: none; }
  .fp-check path { animation: none; stroke-dashoffset: 0; }
  @keyframes fp-fade { from { opacity: 0; } }
}
@media (max-width: 520px) {
  .fp-head h2 { font-size: 1.25rem; }
  .fp-it label { grid-template-columns: 1.3rem 1fr; }
  .fp-it label .fp-m { grid-column: 2; grid-row: 1; line-height: 1.4; }
  .fp-it label > span:last-child { grid-column: 2; }
  .fp-it.games { grid-template-columns: 1.3rem 1fr; }
  .fp-it.games .fp-m { display: none; }
  .fp-day { min-height: 3.2rem; }
}
