/* Fritt spel och tävlingsregler i luffarschack */
.fp-figure{margin:18px 0;max-width:100%}
.fp-figure figcaption{font-size:14px;color:#535c70;margin-top:8px}
.fp-strip{display:flex;width:max-content;max-width:100%;border-left:1px solid #bcc7da;border-top:1px solid #bcc7da;background:#fff}
.fp-cell{display:grid;place-items:center;border-right:1px solid #bcc7da;border-bottom:1px solid #bcc7da;font:900 24px/1 Nunito,sans-serif;position:relative}
.fp-strip .fp-cell{width:44px;height:44px;flex:none}
.fp-rule{display:inline-block;margin:8px 0 16px;padding:12px 18px;border-radius:12px;background:#171d33;color:#fff;font-weight:800;font-size:18px}
.fp-moves{list-style:none;counter-reset:mv;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 20px}
.fp-moves li{counter-increment:mv;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;font-variant-numeric:tabular-nums}
.fp-moves li::before{content:counter(mv) '.';font-weight:700;color:#535c70}
.fp-move-coord{font-weight:900;color:#171d33}
.fp-note{font-size:14px;color:#535c70}
.fp-tabs,.fp-view{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.learning-widget [aria-pressed=true].button{background:#171d33;color:#fff;border-color:#171d33}
.learning-widget a{text-decoration:none}

/* Stationer */
.fp-stations{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;position:relative}
.fp-station{width:100%;min-height:72px;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;font:700 15px/1.25 Nunito,sans-serif;text-align:left;color:#171d33;cursor:pointer}
.fp-station:hover{border-color:#254bff}
.fp-station[aria-pressed=true]{border:2px solid #254bff;background:#eef2ff}
.fp-station-no{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#171d33;color:#fff;font-weight:900}
.fp-station-panel{padding:16px;border-radius:12px;background:#fff;border:1px solid #cbd5e1}
.fp-station-panel h4{margin:0 0 6px;font-size:18px}
.fp-chips-label{font-weight:800;margin:10px 0 6px}
.fp-rule-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.fp-rule-chips li{padding:4px 12px;border-radius:999px;background:#f6f9c2;color:#3d3d00;font-weight:700;font-size:14px}

/* Brädor */
.fp-board{display:grid;border-left:1px solid #aebcd0;border-top:1px solid #aebcd0;background:#fff;width:100%;max-width:420px;margin:12px 0}
.fp-board .fp-cell{aspect-ratio:1;font-size:clamp(16px,4.5vw,26px)}
.fp-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}
.fp-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}
.fp-board .fp-last{box-shadow:inset 0 0 0 3px #171d33;border-radius:50%;background:#f6f9c2}
.fp-result{padding:14px 16px;border-radius:12px;border-left:5px solid;background:#fff}
.fp-result strong{display:block;font-size:20px}
.fp-result p{margin:4px 0 0}
.fp-win{border-color:#1f7a45}.fp-win strong{color:#155c34}
.fp-none{border-color:#8a6d00}.fp-none strong{color:#5c4700}
.fp-banned{border-color:#b83a2a}.fp-banned strong{color:#9b2b1d}
.fp-opening-layout{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:20px;align-items:start}
.fp-board-small{max-width:340px}
.fp-stone-B::before,.fp-stone-W::before,.fp-stone-A::before{content:'';position:absolute;inset:12%;border-radius:50%}
.fp-stone-B::before{background:#171d33}
.fp-stone-W::before{background:#fff;box-shadow:inset 0 0 0 2px #171d33}
.fp-stone-A::before{background:#f6f9c2;border:2px dashed #171d33;inset:14%}
.fp-stone-label{position:relative;font:800 clamp(10px,2.6vw,13px)/1 Nunito,sans-serif}
.fp-stone-B .fp-stone-label{color:#fff}
.fp-stone-W .fp-stone-label,.fp-stone-A .fp-stone-label{color:#171d33}
.fp-step h4{margin:4px 0 8px;font-size:20px}
.fp-step-count{font-weight:700;color:#535c70;margin:0}
.fp-step-facts{margin:0;display:grid;gap:6px}
.fp-step-facts div,.fp-event dl div{display:grid;grid-template-columns:140px 1fr;gap:8px;border-bottom:1px solid #e1e6f0;padding-bottom:6px}
.fp-step-facts dt,.fp-event dt{font-weight:800}
.fp-step-facts dd,.fp-event dd{margin:0}

/* Checklista */
.fp-checks{list-style:none;padding:0;margin:12px 0;display:grid;gap:6px}
.fp-check{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 12px;border-radius:10px;background:#fff;border:1px solid #cbd5e1;cursor:pointer}
.fp-check input{width:22px;height:22px;accent-color:#254bff;flex:none}
.fp-check input:checked+span{color:#535c70;text-decoration:line-through}
.fp-check-status,.fp-clock-status,.fp-count{min-height:24px;font-weight:700;color:#302584}

/* Karta */
.fp-map-layout{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:20px;align-items:start}
.fp-map-wrap{position:relative;width:100%;max-width:300px}
.fp-map-wrap svg{display:block;width:100%;height:auto}
.fp-sweden{fill:#e8edf7;stroke:#254bff;stroke-width:1.2;stroke-linejoin:round}
.fp-map-caption{margin:6px 0 0;text-align:center}
.fp-marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-12px,-12px);width:24px;height:24px;padding:0;border:0;background:transparent;cursor:pointer;font:800 13px/1 Nunito,sans-serif;color:#171d33}
.fp-marker-dot{position:absolute;inset:3px;border-radius:50%;background:#ff6855;box-shadow:0 0 0 2px #fff,0 0 0 4px #171d33}
.fp-marker-label{position:absolute;top:50%;transform:translateY(-50%);background:#fff;padding:3px 6px;border-radius:6px;border:1px solid #cbd5e1;white-space:nowrap;pointer-events:none}
.fp-label-right .fp-marker-label{left:30px}
.fp-label-left .fp-marker-label{right:30px}
.fp-marker[aria-pressed=true] .fp-marker-dot{background:#254bff}
.fp-marker[aria-pressed=true] .fp-marker-label{background:#171d33;color:#fff;border-color:#171d33}
.fp-city-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fp-event-panel{display:grid;gap:12px}
.fp-event{padding:14px 16px;border-radius:12px;background:#fff;border:1px solid #cbd5e1}
.fp-event h4{margin:0 0 8px;font-size:18px}
.fp-event dl{margin:0 0 10px;display:grid;gap:6px}
.fp-event-link{font-weight:800;color:#254bff}
.fp-updated{font-size:13px;color:#535c70;margin:8px 0 0}

/* Klocka */
.fp-clock-faces{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.fp-face{padding:18px;border-radius:14px;border:2px solid #cbd5e1;background:#fff;display:grid;gap:4px;text-align:center}
.fp-face[data-side=black]{background:#f1f3f9}
.fp-face-name{font-weight:800}
.fp-face-time{font:900 clamp(34px,9vw,52px)/1.1 Nunito,sans-serif;font-variant-numeric:tabular-nums}
.fp-face-state{min-height:20px;font-size:14px;font-weight:700;color:#535c70}
.fp-face.fp-active{border:4px solid #254bff;padding:16px}
.fp-face.fp-active .fp-face-state{color:#254bff}
.fp-face.fp-flagged{border:4px solid #b83a2a;padding:16px}
.fp-face.fp-flagged .fp-face-state{color:#9b2b1d}

/* Kalender */
.fp-filters{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:end;margin:12px 0}
.fp-chips{display:flex;flex-wrap:wrap;gap:8px}
.fp-chip{min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;font:700 15px Nunito,sans-serif;color:#171d33;cursor:pointer}
.fp-chip[aria-pressed=true]{background:#171d33;color:#fff;border-color:#171d33}
.fp-select{display:grid;gap:4px;font-weight:700;font-size:14px}
.fp-select select{min-height:44px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:600 15px Nunito,sans-serif}
.fp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}

@media(max-width:900px){.fp-stations{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-opening-layout,.fp-map-layout{grid-template-columns:1fr}.fp-map-wrap{margin-inline:auto}}
@media(max-width:700px){.fp-strip .fp-cell{width:clamp(30px,10vw,44px);height:clamp(30px,10vw,44px);font-size:20px}.fp-step-facts div,.fp-event dl div{grid-template-columns:1fr;gap:2px}.fp-board-small{max-width:none}.fp-stations{grid-template-columns:1fr}}
@media(max-width:420px){.fp-clock-faces{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.fp-station,.fp-marker{transition:none}}
@media print{
 body.fp-printing *{visibility:hidden}
 body.fp-printing .fp-checklist,body.fp-printing .fp-checklist *{visibility:visible}
 body.fp-printing .fp-checklist{position:absolute;top:0;left:0;right:0;border:0;background:#fff}
 body.fp-printing .fp-checklist .lesson-buttons,body.fp-printing .fp-check-status{display:none}
}
