/* Fishing Lives Core — form + notice fallback styles (theme extends these). */
.fl-hp{position:absolute!important;left:-9999px!important;height:0;overflow:hidden}
.fl-notice{padding:.85rem 1rem;border-left:4px solid;margin:0 0 1.25rem;border-radius:0 4px 4px 0;font-size:.95rem}
.fl-notice--success{border-color:#2e7d32;background:#eef6ee;color:#1d4d20}
.fl-notice--error{border-color:#b3402d;background:#faf0ed;color:#6e2416}
.fl-panel{margin:0 0 2rem}
.fl-form{display:block}
.fl-field{display:block;margin:0 0 1rem}
.fl-field__label{display:block;font-weight:600;margin-bottom:.3rem}
.fl-field__hint{display:block;font-size:.85rem;opacity:.75;margin-top:.25rem}
.fl-input{display:block;width:100%;max-width:34rem;padding:.6rem .7rem;border:1px solid #b9b2a4;border-radius:4px;font:inherit;background:#fff}
textarea.fl-input{max-width:40rem}
.fl-input:focus{outline:2px solid #16324a;outline-offset:1px}
.fl-check{display:block;margin:1rem 0;max-width:40rem;line-height:1.5}
.fl-check input{margin-right:.4rem}
.fl-btn{display:inline-block;padding:.7rem 1.4rem;border:0;border-radius:4px;background:#16324a;color:#f6f1e6;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.fl-btn:hover{background:#1f4664;color:#fff}
.fl-btn--ghost{background:transparent;color:#16324a;border:2px solid #16324a}
.fl-btn--ghost:hover{background:#16324a;color:#f6f1e6}
.fl-small{font-size:.85rem;opacity:.8}
.fl-sublist{list-style:none;margin:0;padding:0}
.fl-sublist li{padding:.55rem 0;border-bottom:1px solid rgba(0,0,0,.08)}
.fl-sub-type{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;background:#16324a;color:#f6f1e6;border-radius:3px;padding:.1rem .45rem;margin-right:.4rem}
.fl-sub-status{float:right;font-size:.8rem;padding:.1rem .5rem;border-radius:999px}
.fl-sub-status--pending{background:#f3e9cf;color:#6b5416}
.fl-sub-status--publish{background:#e3f0e3;color:#245c28}
.fl-sub-status--draft{background:#f4e2dd;color:#7a3527}

/* v1.0.1 additions */
.fl-sr{position:absolute!important;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.fl-rights{border:1px solid rgba(22,50,74,.2);border-radius:6px;padding:1rem 1.1rem;margin:0 0 1rem}
.fl-rights legend{padding:0 .4rem;font-weight:700}
.fl-rights .fl-check{margin:.35rem 0}
.fl-sub-actions{margin-left:.5rem;font-size:.85rem}
.fl-sub-actions a{margin-right:.6rem}
.fl-inline-form{display:inline}
.fl-linklike{background:none;border:0;padding:0;font:inherit;font-size:.85rem;color:#A6552F;text-decoration:underline;cursor:pointer}

/* ---------- Photograph lightbox (v1.1.2) ----------
   Progressive enhancement: the .fl-zoomable class is added by core.js, so with
   JavaScript off the gallery keeps its normal appearance and behaviour. */

.fl-gallery img.fl-zoomable{cursor:zoom-in}
.fl-gallery img.fl-zoomable:focus-visible{outline:3px solid #A6552F;outline-offset:2px}

.fl-lb[hidden]{display:none}
.fl-lb{
	position:fixed;inset:0;z-index:99999;
	display:flex;align-items:center;justify-content:center;
	background:rgba(9,22,33,.95);
	padding:3.5rem 4.5rem 1rem;
}
.fl-lb__inner{
	position:relative;z-index:1;
	display:flex;flex-direction:column;align-items:center;justify-content:center;
	gap:.75rem;width:100%;height:100%;min-height:0;
	pointer-events:none;              /* clicks fall through to the backdrop */
}
.fl-lb__figure{
	margin:0;display:flex;flex-direction:column;align-items:center;
	gap:.65rem;min-height:0;max-width:100%;
	pointer-events:auto;              /* except on the photograph itself */
}
.fl-lb__img{
	display:block;
	max-width:min(100%,1600px);
	max-height:calc(100vh - 11rem);
	width:auto;height:auto;
	object-fit:contain;               /* never cropped */
	background:#0d2130;
	border-radius:3px;
	box-shadow:0 10px 40px rgba(0,0,0,.5);
}
.fl-lb__cap{
	max-width:70ch;text-align:center;
	color:#E4EBF0;font-size:.9rem;line-height:1.5;
}
.fl-lb__cap:empty{display:none}
.fl-lb__cap strong{display:block;color:#fff;font-size:1rem;margin-bottom:.15rem}
.fl-lb__cap a{color:#F5BC9C}
.fl-lb__count{
	margin:0;color:#B9C6D0;font-size:.8rem;letter-spacing:.04em;
	pointer-events:auto;
}

.fl-lb__close,.fl-lb__nav{
	position:absolute;z-index:2;pointer-events:auto;
	display:flex;align-items:center;justify-content:center;
	background:rgba(13,33,48,.85);color:#F6F1E6;
	border:1px solid rgba(246,241,230,.35);
	border-radius:50%;cursor:pointer;
	font:inherit;line-height:1;
}
.fl-lb__close{top:-2.6rem;right:-3.4rem;width:2.75rem;height:2.75rem;font-size:1.4rem}
.fl-lb__nav{top:50%;transform:translateY(-50%);width:3rem;height:3rem;font-size:1.9rem}
.fl-lb__prev{left:-3.9rem}
.fl-lb__next{right:-3.9rem}
.fl-lb__close:hover,.fl-lb__nav:hover{background:#A6552F;border-color:#A6552F;color:#fff}
.fl-lb__close:focus-visible,.fl-lb__nav:focus-visible{outline:3px solid #F6F1E6;outline-offset:2px}
.fl-lb__nav[hidden]{display:none}

/* Scroll lock without a layout jump. */
html.fl-lb-open,body.fl-lb-open{overflow:hidden!important;touch-action:none}

@media (max-width:782px){
	/* Bottom padding reserves room for the navigation buttons, which sit inside
	   the viewport on small screens rather than off to the sides. */
	.fl-lb{padding:3.25rem .75rem 4.5rem}
	.fl-lb__img{max-height:calc(100vh - 16rem)}
	.fl-lb__close{top:-2.9rem;right:0;width:2.6rem;height:2.6rem}
	.fl-lb__nav{top:auto;bottom:-3.6rem;transform:none;width:2.9rem;height:2.9rem}
	.fl-lb__prev{left:calc(50% - 4.5rem)}
	.fl-lb__next{right:calc(50% - 4.5rem)}
	.fl-lb__cap{font-size:.85rem}
	.fl-lb__count{font-size:.75rem}
}

@media (prefers-reduced-motion:reduce){
	.fl-lb,.fl-lb *{transition:none!important;animation:none!important}
}

/* v1.1.4: client-side photograph preparation status. */
.fl-prep{display:block;margin-top:.4rem;font-size:.85rem;line-height:1.45}
.fl-prep--working{color:var(--muted,#5F6C76)}
.fl-prep--ok{color:#0a4b12}
.fl-prep--error{color:#8a1f22;font-weight:600}
.fl-form--busy{opacity:.75}
.fl-form--busy button[aria-busy=true]::after{content:" …"}

/* ---------- Vessel catalogue (v1.2.0) ---------- */
.fl-directory{margin-bottom:3rem}
.fl-dir-search{margin:0 0 1rem}
.fl-dir-search label{display:block;font-weight:700;margin-bottom:.35rem}
.fl-dir-search__row{display:flex;gap:.5rem;flex-wrap:wrap}
.fl-dir-search__row input[type=search]{flex:1 1 22rem;min-width:0;padding:.8rem 1rem;border:2px solid rgba(22,50,74,.25);border-radius:4px;font:inherit}
.fl-dir-search__hint{font-size:.85rem;color:var(--muted,#5F6C76);margin:.35rem 0 0}

.fl-dir-modes{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.fl-dir-mode{padding:.5rem .9rem;border:1px solid rgba(22,50,74,.25);border-radius:999px;text-decoration:none;font-size:.9rem}
.fl-dir-mode.is-active{background:var(--navy,#16324A);color:#fff;border-color:var(--navy,#16324A)}

.fl-az{display:flex;flex-wrap:wrap;gap:.25rem;margin:.75rem 0}
.fl-az__letter{display:inline-block;min-width:2rem;text-align:center;padding:.35rem .2rem;border:1px solid rgba(22,50,74,.2);border-radius:3px;text-decoration:none;font-weight:700}
.fl-az__letter.is-active{background:var(--copper,#A6552F);color:#fff;border-color:var(--copper,#A6552F)}

.fl-dir-filters{border:1px solid rgba(22,50,74,.2);border-radius:4px;margin:1rem 0;background:#fff}
.fl-dir-filters>summary{cursor:pointer;padding:.85rem 1rem;font-weight:700;list-style:none}
.fl-dir-filters>summary::-webkit-details-marker{display:none}
.fl-dir-filters>summary::after{content:" ▾";float:right}
.fl-dir-filters[open]>summary::after{content:" ▴"}
.fl-dir-filters__form{padding:0 1rem 1rem}
.fl-dir-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}
.fl-dir-field{margin:0;display:flex;flex-direction:column;gap:.25rem}
.fl-dir-field label{font-size:.85rem;font-weight:700}
.fl-dir-field select{padding:.55rem;border:1px solid rgba(22,50,74,.3);border-radius:3px;font:inherit;max-width:100%}
.fl-dir-filters__actions{margin:1rem 0 0;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.fl-dir-clear{font-size:.9rem}

.fl-dir-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0}
.fl-dir-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;background:#fff;border:1px solid rgba(22,50,74,.3);border-radius:999px;font-size:.85rem;text-decoration:none}
.fl-dir-chip__x{font-weight:700}
.fl-dir-chip--clear{background:var(--navy,#16324A);color:#fff;border-color:var(--navy,#16324A)}
.fl-dir-count{margin:.5rem 0 1rem;color:var(--muted,#5F6C76)}

.fl-card__plns{margin:.35rem 0;display:flex;flex-wrap:wrap;gap:.3rem}
.fl-pln{display:inline-block;padding:.15rem .5rem;border-radius:3px;font-size:.78rem;font-weight:700;letter-spacing:.03em}
.fl-pln--current{background:var(--navy,#16324A);color:#fff}
.fl-pln--former{background:#fff;color:var(--navy,#16324A);border:1px solid rgba(22,50,74,.35)}
.fl-pln--more{background:transparent;color:var(--muted,#5F6C76);font-weight:400}
.fl-card__foot{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0}
.fl-chip{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:rgba(22,50,74,.08);color:var(--navy,#16324A)}
.fl-card--vessel .fl-card__body{display:flex;flex-direction:column;gap:.1rem}

.fl-pln-grid{list-style:none;margin:1rem 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.fl-pln-cell a{display:block;padding:.8rem;border:1px solid rgba(22,50,74,.2);border-radius:4px;text-decoration:none;background:#fff}
.fl-pln-cell a:hover{border-color:var(--copper,#A6552F)}
.fl-pln-cell__code{display:block;font-size:1.3rem;font-weight:700;letter-spacing:.05em}
.fl-pln-cell__port{display:block;font-size:.85rem;color:var(--muted,#5F6C76)}
.fl-pln-cell__count{display:block;font-size:.78rem;margin-top:.25rem;color:var(--muted,#5F6C76)}

.fl-empty--directory{background:#fff;border:1px dashed rgba(22,50,74,.3);border-radius:4px;padding:1.5rem;text-align:center}
.fl-reg-table input[type=text]{width:100%}
.fl-reg-raw{background:#f6f7f7;color:#50575e}

@media (max-width:640px){
	.fl-dir-search__row input[type=search]{flex:1 1 100%}
	.fl-dir-modes{gap:.35rem}
	.fl-dir-mode{font-size:.82rem;padding:.45rem .7rem}
	.fl-dir-filters__grid{grid-template-columns:1fr}
	.fl-pln-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}

/* v1.3.0: "My boat is not listed" panel on the submission form. */
.fl-notlisted{margin:.75rem 0 1rem;padding:.9rem 1rem;border-left:3px solid var(--copper,#A6552F);background:rgba(166,85,47,.06);border-radius:0 4px 4px 0}
.fl-notlisted[hidden]{display:none}

/* ---------- Live presence (v1.4.0) ---------- */
.fl-presence-wrap{min-height:2.6rem;display:flex;justify-content:center;margin:1.5rem auto 2rem}
.fl-presence{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem;border-radius:999px;
	background:rgba(22,50,74,.07);border:1px solid rgba(22,50,74,.18);font-size:.85rem;color:#3C4A55}
.fl-presence[hidden]{display:none}
.fl-presence__dot{width:.5rem;height:.5rem;border-radius:50%;background:#2f7d43;flex:none}

/* ---------- Boat discussion (v1.4.0) ---------- */
.fl-discussion-section{padding:2.5rem 0}
.fl-disc-intro{max-width:70ch;color:var(--muted,#5F6C76)}
.fl-disc-list{list-style:none;margin:1.25rem 0;padding:0}
.fl-disc-list--depth-2,.fl-disc-list--depth-3{margin-left:1.25rem;padding-left:1rem;border-left:2px solid rgba(22,50,74,.15)}
.fl-disc-item{padding:.9rem 0;border-bottom:1px solid rgba(22,50,74,.1)}
.fl-disc-item:last-child{border-bottom:0}
.fl-disc-head{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.35rem}
.fl-disc-avatar{border-radius:50%;flex:none}
.fl-disc-author{font-weight:700}
.fl-disc-time,.fl-disc-edited{font-size:.8rem;color:var(--muted,#5F6C76)}
.fl-disc-body{max-width:70ch;line-height:1.6;overflow-wrap:break-word}
.fl-disc-body--withdrawn{color:var(--muted,#5F6C76);font-style:italic}
.fl-disc-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.4rem}
.fl-disc-actions .fl-linklike{font-size:.85rem}
.fl-disc-form{margin:1rem 0;max-width:60rem}
.fl-disc-form--inline{margin:.75rem 0 .25rem;padding-left:.75rem;border-left:2px solid rgba(166,85,47,.35)}
.fl-disc-form textarea{width:100%;padding:.75rem;border:2px solid rgba(22,50,74,.25);border-radius:4px;font:inherit;line-height:1.5}
.fl-disc-form textarea:focus-visible{outline:3px solid var(--copper,#A6552F);outline-offset:1px}
.fl-disc-label{display:block;font-weight:700;margin-bottom:.35rem}
.fl-disc-note{font-size:.8rem;color:var(--muted,#5F6C76);margin:.35rem 0 .6rem}
.fl-disc-login{margin-top:1rem}

/* ---------- Notifications (v1.4.0) ---------- */
.fl-badge{display:inline-block;background:var(--copper,#A6552F);color:#fff;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;vertical-align:middle}
.fl-notify-list{list-style:none;margin:.75rem 0 0;padding:0}
.fl-notify{padding:.6rem 0;border-bottom:1px solid rgba(22,50,74,.1);display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}
.fl-notify:last-child{border-bottom:0}
.fl-notify--unread{font-weight:600}
.fl-notify__time{font-size:.8rem;color:var(--muted,#5F6C76)}

@media (max-width:640px){
	.fl-disc-list--depth-2,.fl-disc-list--depth-3{margin-left:.5rem;padding-left:.6rem}
	.fl-disc-actions{gap:1rem}
	.fl-disc-actions .fl-linklike{padding:.25rem 0}
}

/* ---------- Featured Stories (v1.6.0) ---------- */
.fl-featured { margin: 2.5rem 0; }
.fl-featured h2 { margin-bottom: 1rem; }
.fl-featured__grid { display: grid; gap: 1.25rem; grid-template-columns: 2fr 1fr; align-items: start; }
.fl-featured__grid--solo { grid-template-columns: 1fr; }
.fl-featured__side { display: grid; gap: 1rem; }
.fl-feature { background: rgba(0,0,0,0.03); border-radius: 8px; overflow: hidden; }
.fl-feature__img { display: block; }
.fl-feature__img img { display: block; width: 100%; height: auto; }
.fl-feature__body { padding: 0.9rem 1.1rem 1.1rem; }
.fl-feature__title { margin: 0 0 0.25rem; }
.fl-feature__title a { text-decoration: none; }
.fl-feature__meta { margin: 0 0 0.5rem; font-size: 0.85em; opacity: 0.75; text-transform: uppercase; letter-spacing: 0.04em; }
.fl-feature__teaser { margin: 0 0 0.6rem; }
.fl-feature__more { margin: 0; font-weight: 600; }
.fl-feature--small .fl-feature__teaser { font-size: 0.92em; }
.fl-featured__all { margin-top: 1rem; }
.fl-featured-archive { display: grid; gap: 1.5rem; }
.fl-feature-banner { border-left: 4px solid currentColor; padding: 1rem 1.25rem; margin: 0 0 1.75rem; background: rgba(0,0,0,0.035); border-radius: 0 8px 8px 0; }
.fl-feature-banner__eyebrow { margin: 0 0 0.2rem; font-size: 0.8em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.7; }
.fl-feature-banner__title { margin: 0 0 0.5rem; }
.fl-feature-banner__text { margin: 0 0 0.5rem; padding: 0; border: 0; font-style: italic; }
.fl-feature-banner__note { margin: 0; font-size: 0.85em; opacity: 0.75; }
@media (max-width: 760px) {
	.fl-featured__grid { grid-template-columns: 1fr; }
}

/* ---------- Featured Stories discovery (v1.6.1) ---------- */
.fl-featured__cta { margin-top: 1.25rem; }
.fl-featured__cta .fl-btn, .fl-featured-explore .fl-btn {
	display: inline-block; padding: 0.55em 1.1em; border-radius: 6px;
	text-decoration: none; font-weight: 600; border: 2px solid currentColor;
}
.fl-featured-explore { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(0,0,0,0.12); }
.fl-featured-explore .fl-btn { margin-right: 0.5rem; }
.fl-menu-archive a { font-weight: 600; }

/* ---------- Homepage bridge + solid CTA (v1.7.4) ---------- */
#fl-featured-bridge { max-width: 1100px; margin: 0 auto; padding: 0 20px 8px; box-sizing: border-box; }
.fl-featured__cta .fl-btn {
	background: var(--copper, #A6552F);
	border-color: var(--copper, #A6552F);
	color: #fff;
}
.fl-featured__cta .fl-btn:hover,
.fl-featured__cta .fl-btn:focus {
	background: #8F4826;
	border-color: #8F4826;
	color: #fff;
}

/* ---------- Photo-first contribution flow (v1.8.0) ---------- */
.fl-photo-priority {
	border: 2px solid var(--copper, #A6552F);
	background: var(--cream, #F6F1E6);
	border-radius: 10px;
	padding: 1rem 1.1rem 0.4rem;
	margin: 0 0 1.1rem;
}
.fl-photo-priority__note { margin: 0 0 0.6rem; }
.fl-nophoto-note { margin: 0.2rem 0 1rem; }
.fl-photo-prompt {
	border: 1px dashed rgba(22, 50, 74, 0.35);
	background: var(--cream, #F6F1E6);
	border-radius: 10px;
	padding: 1.4rem 1.2rem;
	text-align: center;
	margin: 0.5rem 0 1.5rem;
}
.fl-photo-prompt p { margin: 0 0 0.8rem; }
.fl-photo-prompt .fl-btn {
	background: var(--copper, #A6552F);
	border-color: var(--copper, #A6552F);
	color: #fff;
	display: inline-block;
	padding: 0.55em 1.1em;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
}
