.ff-shell { padding-bottom: 7rem; }
.ff-hero { min-height: 430px; padding: clamp(1.5rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(270px, .7fr); align-items: center; gap: clamp(1.2rem, 4vw, 3rem); overflow: hidden; border-radius: 2rem; color: #fff; background: radial-gradient(circle at 84% 12%, rgba(213,163,38,.22), transparent 20rem), linear-gradient(135deg, #071b2d, #153B5B 60%, #245b80); box-shadow: var(--fp-shadow); }
.ff-hero h1 { margin: .75rem 0 1rem; font-size: clamp(2.4rem, 6vw, 5rem); line-height: .95; letter-spacing: -.06em; }
.ff-hero h1 span { color: #dbeaf5; }
.ff-hero p { max-width: 710px; color: #edf5fa; line-height: 1.65; }
.ff-stop { padding: 1.2rem; border: 1px solid rgba(255,255,255,.2); border-left: 5px solid var(--fp-gold); border-radius: 1rem; background: rgba(255,255,255,.08); }
.ff-stop strong { color: var(--fp-gold); }
.ff-stop p { margin-bottom: 0; font-size: .91rem; }
.ff-form { padding: clamp(1rem, 3vw, 1.5rem); border: 1px solid var(--fp-border); border-radius: 1.2rem; background: var(--fp-card); box-shadow: 0 15px 44px rgba(8,35,58,.08); }
.ff-result { margin-top: .9rem; padding: clamp(1rem, 3vw, 1.6rem); border: 1px solid var(--fp-border); border-top: 5px solid var(--fp-gold); border-radius: 1.2rem; background: var(--fp-card); box-shadow: 0 15px 44px rgba(8,35,58,.09); scroll-margin-top: 7rem; }
.ff-result h3 { margin: .55rem 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.ff-result p, .ff-result li { color: var(--fp-muted); line-height: 1.6; }
.ff-result ul { padding-left: 1.25rem; }
.ff-week-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.ff-week-card { padding: 1rem; border: 1px solid var(--fp-border); border-radius: 1rem; background: #edf4f8; }
.ff-week-card h4 { margin: 0 0 .25rem; }
.ff-week-card > p { margin: 0 0 .75rem; font-size: .86rem; }
.ff-session-list { display: grid; gap: .55rem; }
.ff-session { min-height: 52px; padding: .65rem; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .65rem; border: 1px solid var(--fp-border); border-radius: .75rem; background: var(--fp-card); cursor: pointer; touch-action: manipulation; }
.ff-session input { width: 22px; height: 22px; margin-top: .08rem; accent-color: var(--fp-olive); }
.ff-session strong, .ff-session span { display: block; }
.ff-session span { margin-top: .2rem; color: var(--fp-muted); font-size: .84rem; line-height: 1.45; }
.ff-session.is-complete { border-color: #4d7f57; background: #eaf5eb; }
.ff-session.is-complete strong { text-decoration: line-through; }
[data-nb-theme="dark"] .ff-form, [data-nb-theme="dark"] .ff-result, [data-nb-theme="dark"] .ff-session { background: var(--fp-card); }
[data-nb-theme="dark"] .ff-week-card { background: #153b56; }
[data-nb-theme="dark"] .ff-session.is-complete { background: #164331; }
@media (max-width: 780px) { .ff-week-grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .ff-hero { min-height: auto; padding: 2rem 1.15rem; grid-template-columns: 1fr; border-radius: 1.35rem; }
  .ff-form .fp-actions, .ff-form button[type="submit"] { width: 100%; }
  .ff-session { min-height: 56px; }
}
@media (prefers-reduced-motion: reduce) { .ff-session { transition: none; } }
